Collision is not detected with cylinder model
I am testing the arm_navigation's collision detection for a virtual object added to the planning scene and a virtual object attached to the robot. When using CYLINDER models, the collision detection fails; the results are OK when using BOX models. Using CYLINDER models is better in my case, so if somebody knows the reason, please tell me.
Here is the detail:
- Based on the tutorial: http://wiki.ros.org/arm_navigation/Tutorials
- I modified a bit because of the difference of ROS version.
- My ROS version: Groovy
- Robot: Simulated PR2
- Language: Python
First, I added a virtual CYLINDER object to the planning scene through the /environment_server/set_planning_scene_diff service. Also, I attached a virtual CYLINDER object to the robot's left gripper. Then, I checked the collision during moving the robot's arm through the planning_scene_validity_server/get_state_validity service.
It could detect collisions between 1. the robot's body and the virtual scene object, and 2. the virtual robot's object and the robot's body. However, it could not detect collisions between the virtual robot's object and the virtual scene object. I tested to change the SetPlanningSceneDiffRequest.operations.collision_operations parameter, but it did not work.
Here is a video to show this problem: http://youtu.be/oRmfEwKrD9s (CYLINDER case)
By changing the objects to BOX models, it works as I expected.
The video is here: http://youtu.be/YH-MAvbKm9M (BOX case)
Many thanks!
Update: Combinations of (CYLINDER and BOX) or (BOX and CYLINDER) work well. Only the (CYLINDER and CYLINDER) case is weird.
I know this was a bug I reported way back in the day. No idea what became of it or even where I reported it.
Thanks for the information.