Skip to content

Getting an unexpected result when running the planning_scene_tutorial #769

Open
@Siva552

Description

@Siva552

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

  • 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

I'm so sure there is no collision in panda_link2

thank you.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions