ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Correctly configuring end effectors for moveit

asked 2014-04-09 17:14:42 -0600

St3am gravatar image

updated 2014-04-10 06:34:47 -0600

I've created a new robot model for integration with moveit and am having trouble getting moveit to recognize the end effectors. I've generated the SRDF as well as other configuration files with the moveit setup assistant, and then launch the demo automatically generated along with my own node called servo capture. In my node I wait for rviz to come up, instantiate a move group similar to the PR2 move group interface tutorial, and then have a listener callback that sets a goal when a point is published from rviz. When the callback executes an error is displayed right after I print confirmation that the point was received:

[ INFO] [1397094975.183158794]: Got new goal: [1.72786,2.13589,0.553876]
[ERROR] [1397094975.183266964]: No end-effector to set the pose for
[ INFO] [1397094975.184236157]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[ WARN] [1397094975.186156762]: No goal constraints specified. There is no problem to solve.

I've tried printing out the parent link name and and end effector name but both member functions to do so return empty strings.

Of the different ways I've configuring my planning groups in the setup assistant, the most reasonable one I could come up with is in the background below. With my current understanding the end effector group should have no links in common with its parent, be a child group of the arm, and defined as an end effector attached to the last link of the arm. It also needs to have its own kinematics solver written if it is not a chain, I've avoided this problem by just fixing the non chain components. If I launch the demo launch file which starts a joint publisher, transform publisher, state publisher, move group server and rviz, they should provide all resources necessary to run a fully functional move group interface node. If something was wrong with the end effector description I would still expect that the end of the chain link for the arm would at least be the default end effector. Is there anything in the above that seems like a misunderstanding?

Background:

Here is a visualization of the URDF:

image description

And here is how I have the arm configured in the SRDF (through the setup assistant):

<group name="arm">
    <link name="base_link" />
    <link name="base" />
    <link name="shoulder" />
    <link name="arm" />
    <link name="boom0" />
    <link name="boom1" />
    <link name="boom2" />
    <link name="boom3" />
    <link name="boom4" />
    <link name="boom5" />
    <link name="boom6" />
    <link name="boom7" />
    <link name="boom8" />
    <link name="boom9" />
    <link name="boom10" />
    <link name="boom_cap" />
    <joint name="base_link_to_base" />
    <joint name="base_to_shoulder" />
    <joint name="shoulder_to_arm" />
    <joint name="arm_to_boom" />
    <joint name="boom0_to_boom1" />
    <joint name="boom1_to_boom2" />
    <joint name="boom2_to_boom3" />
    <joint name="boom3_to_boom4" />
    <joint name="boom4_to_boom5" />
    <joint name="boom5_to_boom6" />
    <joint name="boom6_to_boom7" />
    <joint name="boom7_to_boom8" />
    <joint name="boom8_to_boom9" />
    <joint name="boom9_to_boom10" />
    <joint name="boom_to_boom_cap" />
    <chain base_link="base" tip_link="boom_cap" />
    <group name="electrostatic_gripper" />
</group>
<group name="electrostatic_gripper">
    <link name="top_pad" />
    <link name="left_pad" />
    <link name="right_pad" />
    <link name="bottom_pad" />
    <link name ...
(more)
edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2014-04-11 13:12:10 -0600

Dave Coleman gravatar image

In

<group name="arm">

You have links, joints, subgroups, and chains included. Just choose one - I suggest chains - and don't include the gripper subgroup, that is not considered part of the arm. See where that gets you.

edit flag offensive delete link more

Comments

Thanks Dave, both of those suggestions ended up being part of the fix.

St3am gravatar image St3am  ( 2014-04-13 18:12:41 -0600 )edit
1

answered 2014-04-13 18:11:54 -0600

St3am gravatar image

The main problem seems to be that the virtual joint I had defined didn't have an existing parent reference frame, deleting it allowed me to move forward with a simplified version of the model. I tried Dave's suggestions after I got the simpler model working, having the end effector subgroup as part of the parent group caused the same problem as the virtual joint. Either the joints or the links could be doubly defined with the chains without causing a problem. Having all three defined caused rviz to crash without an informative error after the gripper subgroup and virtual joint were removed.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2014-04-09 17:14:42 -0600

Seen: 6,510 times

Last updated: Apr 13 '14