0
$\begingroup$

Rosanswers logo

Hello,

I’m using panda arm with moveit. I want to create the planning group which will include all the joints in my robot. Currently i have created two planning groups as suggested in this tutorial.

When i simply add all joints in one planning group i get error of group is not a chain, no kinmetic solver is instantiated for this group.

I want to plan trajectory for whole panda robot i.e. arm and gripper together. I tried various ways such as

  1. adding all joints in a group
  2. adding chain which includes base and tip links etc

I have referred this and this previous questions too, but i couldn’t come up with a planning group which will let me plan trajectory for whole panda robot.

Can anyone suggest me why the planning group including all the joints gives me error which can be seen below?? and how can i rectify it??

Update 1

Here is the main URDF file, which includes arm and hand xacro files.

Here is the SRDF file (created when i include all the joints of panda robot in one planning group)

Relevant Error lines from terminal

You can start planning now!

[ INFO] [1552464458.084260463]: Loading robot model 'panda'...
[ WARN] [1552464458.084320265]: Skipping virtual joint 'virtual_joint' because its child frame 'panda_link0' does not match the URDF frame 'world'
[ INFO] [1552464458.084338894]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ INFO] [1552464458.159456831]: Loading robot model 'panda'...
[ WARN] [1552464458.159490871]: Skipping virtual joint 'virtual_joint' because its child frame 'panda_link0' does not match the URDF frame 'world'
[ INFO] [1552464458.159505494]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ERROR] [1552464458.162638812]: Group 'panda_arm' is not a chain
[ERROR] [1552464458.162676424]: failed to initialized caching plugin
[ERROR] [1552464458.162696757]: Kinematics solver of type 'cached_ik_kinematics_plugin/CachedKDLKinematicsPlugin' could not be initialized for group 'panda_arm'
[ERROR] [1552464458.162950656]: Kinematics solver could not be instantiated for joint group panda_arm.
[ INFO] [1552464458.209491415]: Starting scene monitor
[ INFO] [1552464458.222512226]: Listening to '/move_group/monitored_planning_scene'
[ INFO] [1552464458.727591546]: No active joints or end effectors found for group 'hand'. Make sure that kinematics.yaml is loaded in this node's namespace.
[ INFO] [1552464458.728529359]: No active joints or end effectors found for group 'hand'. Make sure that kinematics.yaml is loaded in this node's namespace.
[ INFO] [1552464458.728837948]: Constructing new MoveGroup connection for group 'hand' in namespace ''
[ INFO] [1552464459.725851190]: Ready to take commands for planning group hand.
[ INFO] [1552464459.726127065]: Looking around: no
[ INFO] [1552464459.726254093]: Replanning: no

Originally posted by mvish7 on ROS Answers with karma: 104 on 2019-03-12

Post score: 0


Original comments

Comment by fvd on 2019-03-13:
You should post the SRDF and URDF you are using as well as the error message

Comment by fvd on 2019-03-13:
To clarify: The guide to create a trajectory with MoveIt is in the tutorials. This is a Q&A site, so you need to post a question that can have a meaningful answer. "Can someone help me?" is not a question that can be answered in this format. By contrast, "Why is this thing that I tried not working?" can be answered.

Comment by mvish7 on 2019-03-13:
@fvd: Apologies for inappropriate framing of my question. You are right and i don't expect to get full fledged guidance on this forum but only hints on what's going wrong? Could you please have a look at the update part of the question?? If there is any tutorial available on planning trajectory for arm + gripper, can you please point me that resource??

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

The error message telling you that the planning group is not a chain appears because you added all of the joints of the robot to it, including both finger joints. Your SRDF looks like this:

<group name="panda_arm">
    <joint name="fixed_base" />
    <joint name="panda_joint1" />
    <joint name="panda_joint2" />
    <joint name="panda_joint3" />
    <joint name="panda_joint4" />
    <joint name="panda_joint5" />
    <joint name="panda_joint6" />
    <joint name="panda_joint7" />
    <joint name="panda_joint8" />
    <joint name="panda_hand_joint" />
    <joint name="panda_finger_joint1" />
    <joint name="panda_finger_joint2" />
</group>

But according to the tutorial you linked, it needs to look like this:

<group name="panda_arm">
    <joint name="fixed_base" />
    <joint name="panda_joint1" />
    <joint name="panda_joint2" />
    <joint name="panda_joint3" />
    <joint name="panda_joint4" />
    <joint name="panda_joint5" />
    <joint name="panda_joint6" />
    <joint name="panda_joint7" />
    <joint name="panda_joint8" />
</group>

The two finger joints are both attached to the hand_joint, so the group you created is not a linear chain without forks. Most IK solvers in MoveIt only work on chains, which is why this is a requirement.


Originally posted by fvd with karma: 2180 on 2019-03-19

This answer was ACCEPTED on the original site

Post score: 2


Original comments

Comment by gvdhoorn on 2019-03-19:\

Most motion planners in MoveIt only work on chains, which is why this is a requirement.

planners or IK solvers?

Comment by fvd on 2019-03-19:
I only know that for IK solvers, and OMPL should be agnostic I think. Edited.

Comment by mvish7 on 2019-03-20:
@fvd: Thank you for pointing out. I wanted to create the group which can actuate all joints in robot at once but i missed the trick about kinematic chains and branches. Now i have created two groups as per tutorials and i could actuate the gripper joints.

Comment by dubao996 on 2020-12-08:

i have done as you suggest do,but i still wrong

Comment by fvd on 2020-12-08:
Comments are not meant for new questions. Please post your own question referencing this one and add more details.

Comment by dubao996 on 2020-12-08:
ok,thank you

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.