moveit / moveit

:robot: The MoveIt motion planning framework
http://moveit.ros.org
BSD 3-Clause "New" or "Revised" License
1.69k stars 946 forks source link

Planning groups can only contain chains #1357

Closed christian-rauch closed 5 years ago

christian-rauch commented 5 years ago

Description

MoveIt! now expects that a planning group only contains joints that are in a chain, i.e. it will print an error like Group 'all' is not a chain if the group all is a superset of a chain. I generated a MoveIt! configuration using the setup assistant with ROS melodic and this used to work before with version 0.9.

Your environment

Steps to reproduce

  1. generate a MoveIt! configuration with a planning group that contains all joints
  2. run MoveIt! version 0.10.8

Expected/Actual behaviour

Previously, MoveIt! (version 0.9) was loading the planning group and created a chain from root-frame to the common parent frame of the leaf-frames. This changed and I am not able to use this group.

When did this behaviour change and how can I revert to the old behaviour?

rhaschke commented 5 years ago

Could you please report the exact error message. I'm using a bimanual robot composed from several sub groups and this definitely still works. Looks like your error message comes from a IK solver. Which one are you using?

christian-rauch commented 5 years ago

The full message, e.g. when running demo.launch, is:

[ERROR] [1550688524.963909221]: Group 'all' is not a chain
[ERROR] [1550688524.963939963]: Kinematics solver of type 'kdl_kinematics_plugin/KDLKinematicsPlugin' could not be initialized for group 'all'
[ERROR] [1550688524.963969462]: Kinematics solver could not be instantiated for joint group all.
rhaschke commented 5 years ago

That's what I assumed: The kinematics solver (KDL) expects your group to be a chain. It was like this (implicitly) since ages, but I made the check more explicit now. Please verity that the IK solver also moved "non-group" joints before.

christian-rauch commented 5 years ago

Ok, good to know. I will just add another planning group for this purpose and figure out how to load it as the default planning group.