Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot place EggCracked on a receptacles #302

Open
jaejaywoo opened this issue Sep 16, 2019 · 4 comments
Open

Cannot place EggCracked on a receptacles #302

jaejaywoo opened this issue Sep 16, 2019 · 4 comments

Comments

@jaejaywoo
Copy link

Hi,

Is there some way that I can force some objects to be placed on a receptacle (i.e. EggCracked on Plate or EggCracked on Pan)? Some floor plans like FloorPlan28 works but for some other floor plans like FloorPlan1, I cannot make that happen.

Thank you.

@winthos
Copy link
Collaborator

winthos commented Sep 16, 2019

This might be due to different receptacles having slightly smaller "receptacle zones" than others. If the plate or pan you are trying to put the cracked egg into is one of the smaller variants, there is a chance it will fail to be placed when using the PutObject action.

Could you provide more details like object coordinates, and the specific floorplan and UniqueID of objects that are failing so I can try and track down the cause of this?

@jaejaywoo
Copy link
Author

Hi @winthos . Thanks for the response. Here are some details of the objects and the floor plan:

  • Floor plan : FloorPlan1
  • Plate:
    • objectId = 'Plate|+00.96|+01.65|-02.61'
    • position = {'x': 0.955994368, 'y': 1.646131, 'z': -2.60619974}
  • Pan:
    • objectId = 'Pan|+00.72|+00.90|-02.42'
    • position = {'x': -2.004253, 'y': 0.8275, 'z': 1.30138755}
  • EggCracked :
    • objectId = 'Egg|-02.00|+00.83|+01.30|EggCracked_0'
    • position = {'x': -2.004253, 'y': 0.8275, 'z': 1.30138755}

When I try to put the cracked egg on these two receptacles, it does not work in this floor plan (although some other floor plans do). Also besides this, there seems to be some issues with Bowl receptacle as well. For example, in the Floorplan1, I cannot place Apple and Tomato in the bowl unless they are sliced. I will also put the details of these objects as well just in case:

  • Floor plan : FloorPlan1
  • Bowl:
    • objectId = 'Bowl|+00.27|+01.10|-00.75'
    • position = {'x': 0.2731861, 'y': 1.1, 'z': -0.753285348}
  • Apple:
    • objectId = 'Apple|-00.47|+01.15|+00.48'
    • position = {'x': -0.465135336, 'y': 1.1541, 'z': 0.475644678}
  • Tomato:
    • objectId = 'Tomato|-00.39|+01.14|-00.81'
    • position = {'x': -0.385065615, 'y': 1.13703358, 'z': -0.8120054}

@winthos
Copy link
Collaborator

winthos commented Sep 17, 2019

So looking at those examples, this seems to be working as intended. So all receptacle objects have a "receptacle box" zone that can allow objects to be placed in. Bowls and Plates, due to being circular, have boxes that don't encompass the entirety of their usable surface area. Because of this, using the PutObject action, which teleports the object to the target receptacle and places it perfectly flush with the surface, can often fail due to the unique shapes of Bowls and Plates.

Bowls additionally have collision around the curve of the bowl, which makes it difficult to place larger objects. This is why sliced fruit, which are very small, can fit more easily into bowls.

While the automatic PutObject action is limited by these colliders and bounds, you can attempt to drop a held item by using a combination of the MoveHand and DropObject actions to let an egg or apple simply fall into the bowl/plate using physics to resolve where it ends up.

@jaejaywoo
Copy link
Author

Thank you for the response @winthos . So whether the certain object is Putdown-able on some receptacle using PutObject action depends on the physical shape of the receptacle. Is there a way to know which objects are Putdown-able to which receptacle without manually trying them all?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants