isl-org / spear

SPEAR: A Simulator for Photorealistic Embodied AI Research
MIT License
221 stars 15 forks source link

Incorrect Collision Box for OpenBot Wheel #24

Closed rwang15 closed 1 year ago

rwang15 commented 2 years ago

OpenBot wheel does not collide with wall correctly in x-y plane. The wheel might go through wall. image

When use pxvis colllision command to visualize collision box, there are two geometry: CB from USkeletalMeshComponent (pink sphere), and CB from UWheeledVehicleMovementComponent (black mesh). Hoever, neither of them collide correctly with the wall, and only the base_link collides with the wall correctly.

rwang15 commented 2 years ago

When the skeletal mesh is used as VehicleMovement, bones marked as wheel disable their original collision box. For UWheeledVehicleMovementComponent, wheel decides their z-axis position by raycast. However, it does not work properly in x-y plane.

In order to provide proper collision behavior, we add four box to base_link that wrap wheel meshes. They does not perfectly match wheel mesh, but should gives us proper accuracy and avoid weird wall penetration behavior. image

comment about how wheel collision works in PhysX The wheel collision works very differently from comment static mesh. Current fix might not be the best way to do it, and we might look for a better solution if necessary.

mikeroberts3000 commented 1 year ago

The solution described here seems reasonable. This issue is more of a comment on a working solution, rather than an open issue. @rwang15 can we close this?