Moveit! with mobile robots - using the planar link

2,066 views
Skip to first unread message

steven i.

unread,
Mar 5, 2015, 6:38:39 PM3/5/15
to moveit...@googlegroups.com
Hi Guys

I was searching the group and the internet in general for examples where Moveit! was not only used to plan for a robot's arm, but also for its mobile base but didn't find anything at all. Is there really nothing out there?

How am I supposed to work with the <virtual_joint type="planar"....> feature? How to set it up ->the planners? Does it work at all (yet)? And if so, what type of message does it output? If I setup my srdf to have a virtual, planar link that is not set as non-actuated, I get warnings about missing joint_name/x, joint_name/y and joint_name/z information on the /joint_states topic, am I correct to suspect that the planar link is split up in 3 link messages with these names that are transmitted just as commands for arm joints?

Thanks a lot

ps, on a side note: is there indeed no package with a TrajectoryActionServer and a control node out there for trajectory following with a velocity-controlled, holonomic mobile robot, do I have to write one myself?

Dave Coleman

unread,
Mar 6, 2015, 3:37:07 PM3/6/15
to steven i., moveit-users
I believe that feature was never finished - the focus has been on fixed-based arms. The navigation stack has been the standard for base planning, though I would like to see that change.

- dave

steven i.

unread,
Mar 6, 2015, 9:39:19 PM3/6/15
to moveit...@googlegroups.com
Hmm, that is unfortunate! - Using the navigation stack it sounds like I'm gonna have a hard time to synchronize the base movement with the movement of the arm. That is, I'll have to make an additional effort to have my controller fulfilling the trajectory timing constraints.

steven i.

unread,
Mar 7, 2015, 8:30:30 PM3/7/15
to moveit...@googlegroups.com
The topics Issues with custom robot and Planning for moving the PR2 base in a scene with OMPL and planar virtual joint and the answers by Ioan Sucan tell me that MoveIt! should be able to plan for the base as well. However, none of them give any useful information about how to set up the configurations.
I have a working setup where I can plan and execute movements for the arm if I set the base as being fixed. However if I define my virtual_joint as "planar" and try to do controlling, I get the error the "The complete state of the robot is not yet known.  Missing virtual_joint_name/x, virtual_joint_name/y, virtual_joint_name/theta" warning and planning failes. If I setup a fake publisher that publishes the odometry data as fake states on those topics, I get a stream of even worse "Joint 'virtual_joint_name/x' not found in model 'my_robot'" errors. What to do? Can I at least get a trajectory for the base out of MoveIt for which I then can provide my own means for execution?

Ryan Luna

unread,
Mar 9, 2015, 11:04:44 AM3/9/15
to steven i., moveit...@googlegroups.com
It is possible to plan for virtual joint(s).  You just need to add them to one or more planning groups.

Changing the virtual joint values is a different matter.  Since the virtual joint is not part of the URDF, the joint state publisher will post the error you describe if you try to set the values in the usual way.  As far as I can tell, you must broadcast the tf for the virtual joint manually to move the robot relative to the world.  These frames are found in the MultiDOF portion of the trajectory.

Ryan

Ke Wang

unread,
Aug 19, 2015, 10:06:39 AM8/19/15
to MoveIt! Users
Hi:

Just as Ryan said, you can broadcast TF, or you can add virtual joints in URDF file and use moveit_setup_assistant to add them to a group.

Ke
Reply all
Reply to author
Forward
0 new messages