PR2 / pr2_common

45 stars 79 forks source link

new collision meshes exhibit incorrect behavior in the collision (ros ticket #4365) #185

Closed ahendrix closed 11 years ago

ahendrix commented 11 years ago

There's a test in arm_navigation_tests/tests/planning_environment/planning_environment_tests.launch that places a small cube in the middle of the r_wrist_roll_link and tests for collision. The primary purpose of the test is to make sure that collision is being detected properly and in the correct locations. On pr2_description trunk no collision is detected until I make the box .03m on a side, at which point collision is detected and in the correct locations. The screenshot shows the results with a .03m box and the new meshes. A .02m or .01m box will not collide. On pr_description/latest this test passes with a .01m block with collisions detected at the proper places.

This test involves many modules, and the errors may either be in the new collision meshes themselves, the code that transforms the meshes into the convex meshes that actually get used in collision checking, or the way the code treats the meshes.

trac data:

ahendrix commented 11 years ago

[hsu] does it matter if you offset the .01m box so that it coincides with the mesh surface rather than being at the center of the wrist_flex mesh?

ahendrix commented 11 years ago

[gjones] Yes, it matters. The test may seem artificial, but if .01m boxes from the collision map are placed entirely within a volume of the robot at points that don't intersect a mesh surface we definitely want that to register as a collision.

ahendrix commented 11 years ago

[hsu] it looks like current ODE collision detection (OPCODE) checks only intersection of trimesh surface triangles with other objects. Maybe someone can take a look at gimpact?

ahendrix commented 11 years ago

[hsu] please reopen ticket if this collision detection functionality is needed.