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
ROS Distro: noetic
OS Version: Ubuntu 20.04
Source or Binary build?
binary: noetic
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
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
Backtrace or Console output
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:
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 :
not:
I'm so sure there is no collision in panda_link2
thank you.