moveit / moveit_tutorials

A sphinx-based centralized documentation repo for MoveIt
https://moveit.github.io/moveit_tutorials/
BSD 3-Clause "New" or "Revised" License
476 stars 693 forks source link

Getting an unexpected result when running the planning_scene_tutorial #769

Open Siva552 opened 1 year ago

Siva552 commented 1 year ago

Description

Getting an unexpected result when running the planning_scene_tutorial. In the test 5 in this tutorial, manually set the Panda arm to a position where we know internal (self) collisions do happe, In the planning_scene_tutorial.cpp, line 146, joint_values is set to : std::vector joint_values = { 0.0, 0.0, 0.0, -2.9, 0.0, 1.4, 0.0 }; it will cause collision between panda_hand and panda_link1, but I can't get a result like: ros.moveit_tutorials: Test 5: Current state is in self collision

Your environment

Steps to reproduce

run code: roslaunch moveit_tutorials planning_scene_tutorial.launch

Expected behaviour

ros.moveit_tutorials: Test 1: Current state is not in self collision
ros.moveit_tutorials: Test 2: Current state is not in self collision
ros.moveit_tutorials: Test 3: Current state is not in self collision
ros.moveit_tutorials: Test 4: Current state is valid
ros.moveit_tutorials: Test 5: Current state is in self collision
ros.moveit_tutorials: Contact between: panda_leftfinger and panda_link1
ros.moveit_tutorials: Contact between: panda_link1 and panda_rightfinger
ros.moveit_tutorials: Test 6: Current state is not in self collision
ros.moveit_tutorials: Test 7: Current state is not in self collision
ros.moveit_tutorials: Test 8: Random state is not constrained
ros.moveit_tutorials: Test 9: Random state is not constrained
ros.moveit_tutorials: Test 10: Random state is not constrained
ros.moveit_tutorials: Test 11: Random state is feasible
ros.moveit_tutorials: Test 12: Random state is not valid

Backtrace or Console output

[ INFO] [1681115621.534864854]: Loading robot model 'panda'...
[ INFO] [1681115621.563244509]: Test 1: Current state is not in self collision
[ INFO] [1681115621.563491164]: Test 2: Current state is not in self collision
[ INFO] [1681115621.563564121]: Test 3: Current state is not in self collision
[ INFO] [1681115621.563575475]: Test 4: Current state is valid
[ INFO] [1681115621.563646603]: Test 5: Current state is not in self collision
[ INFO] [1681115621.563733357]: Test 6: Current state is not in self collision
[ INFO] [1681115621.563794649]: Test 7: Current state is not in self collision
[ INFO] [1681115621.563900628]: Test 8: Random state is not constrained
[ INFO] [1681115621.563918051]: Test 9: Random state is not constrained
[ INFO] [1681115621.563925184]: Test 10: Random state is not constrained
[ INFO] [1681115621.563933467]: Test 11: Random state is feasible
[ INFO] [1681115621.564040858]: Test 12: Random state is not valid

planning_scene.checkSelfCollision() can't check the collision between "panda_hand" and "panda";

When I modify the planning_scene_tutorial.cpp line 132 from: collision_request.group_name = "panda_hand"; to: collision_request.group_name = "hand"; I get the output:

[ INFO] [1681117062.724151205]: Loading robot model 'panda'...
[ INFO] [1681117062.750503109]: Test 1: Current state is not in self collision
[ INFO] [1681117062.750633888]: Test 2: Current state is not in self collision
[ INFO] [1681117062.750693233]: Test 3: Current state is not in self collision
[ INFO] [1681117062.750701906]: Test 4: Current state is valid
[ INFO] [1681117062.750870107]: Test 5: Current state is in self collision
[ INFO] [1681117062.750876436]: Contact between: panda_hand_sc and panda_link1_sc
[ INFO] [1681117062.750880993]: Contact between: panda_hand_sc and panda_link2_sc
[ INFO] [1681117062.750995770]: Test 6: Current state is not in self collision
[ INFO] [1681117062.751060956]: Test 7: Current state is not in self collision
[ INFO] [1681117062.751139760]: Test 8: Random state is not constrained
[ INFO] [1681117062.751153857]: Test 9: Random state is not constrained
[ INFO] [1681117062.751159856]: Test 10: Random state is not constrained
[ INFO] [1681117062.751167032]: Test 11: Random state is feasible
[ INFO] [1681117062.751253498]: Test 12: Random state is not valid

I don't what happened why collision can't be checked when collision_request.group_name = "panda_hand",and why it can checked when collision_request.group_name = "hand"? why the output is :

Contact between: panda_hand_sc and panda_link1_sc
Contact between: panda_hand_sc and panda_link2_sc

not:

ros.moveit_tutorials: Contact between: panda_leftfinger and panda_link1
ros.moveit_tutorials: Contact between: panda_link1 and panda_rightfinger

I'm so sure there is no collision in panda_link2

thank you.

welcome[bot] commented 1 year ago

Thanks for reporting an issue. Because we're a volunteer community, providing a pull request with suggested changes is always welcomed.

He11oworldd commented 1 day ago

Hi, I have the same problem as yours, have you solved it?