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

MoveIt! with Gazebo, using MoveItSimpleControllerManager, joint_trajectory_controller

asked 2017-06-29 08:00:38 -0500

PhydeauxLeChien gravatar image

updated 2017-06-29 09:53:31 -0500

Hi,

I am trying to use MoveIt! to control a simulated robot in Gazebo, and am at a loss as to how to proceed. The only documentation / tutorial I can find on the subject is this one, which is 4 years old and works only for a specific robot, that comes with all the necessary controllers.

My understanding so far:

  • The MoveItSimpleControllerManager plugin should 'convert' MoveIt! executions to FollowJointTrajectory action calls. I have included the plugin in myrobot_moveit_controller_manager.launch (adapted from the demo.launch generated by the MoveIt! setup assistant) with:

    <!-- Set the param that trajectory_execution_manager needs to find the controller plugin -->
    <arg name="moveit_controller_manager" default="moveit_simple_controller_manager/MoveItSimpleControllerManager" />
    <param name="moveit_controller_manager" value="$(arg moveit_controller_manager)"/>
    
    <arg name="controller_manager_name" default="moveit_simple_controller_manager" />
    <param name="controller_manager_name" value="$(arg controller_manager_name)" />
    
    <arg name="use_controller_manager" default="true" />
    <param name="use_controller_manager" value="$(arg use_controller_manager)" />
    
    <!-- load controller_list -->
    <rosparam file="$(find myrobot_moveit_config)/config/controllers.yaml"/>
    
  • The joint_trajectory_controller from ros_controllers should implement the action server required for the FollowJointTrajectory calls, and actuate the joints in Gazebo accordingly via the libgazebo_ros_control plugin for Gazebo. I am trying to spawn the controller with:

    <node name="controller_spawner"
          pkg="controller_manager"
          type="spawner"
          respawn="false"
          output="screen"
          ns="/myrobot"
          args="joint_state_controller joint_trajectory_controller"/>
    

The problem:

When I run the above launch files as well as the Gazebo one (which also uploads the robot description to the param server), I get the following output in the MoveIt! terminal:

[FATAL] [1498731799.850090680, 16.100000000]: Parameter '~moveit_controller_manager' not specified. This is needed to identify the plugin to use for interacting with controllers. No paths can be executed.

I'm using ROS Indigo with Ubuntu 14.04.

Could some-one let me know if my overall understanding is flawed, and what might cause the above error message?

Thanks.


Update:

I fixed the above error message by putting the first set of XML tags inside the namespace of the move_group node, with:

<group ns="move_group"> ... </group>

Now the controller manager seems to be connected, but I get the following error messages. When I start the MoveIt! node:

[ERROR] [1498747248.394583362, 16.231000000]: MoveItSimpleControllerManager: Action client not connected: arm_r_controller/follow_joint_trajectory

And when I attempt to execute a trajectory:

[ERROR] [1498747328.213270503, 70.727000000]: Unable to identify any set of controllers that can actuate the specified joints: [ ... ]

It was my understanding that MoveItSimpleControllerManager was the 'action client' - is this wrong?

edit retag flag offensive close merge delete

Comments

If anyone could help with formatting XML in questions as well, that'd be great. The < param > tags don't seem to be displaying >.<

PhydeauxLeChien gravatar image PhydeauxLeChien  ( 2017-06-29 07:46:50 -0500 )edit

Use the Preformatted Text button (the one with 101010 on it). Keep in mind that when formatting text that is part of a list, you'll have to increase indentation level (ie: prefix more spaces), as it's relative to the indentation level of the surrounding text.

gvdhoorn gravatar image gvdhoorn  ( 2017-06-29 09:10:18 -0500 )edit

Thanks - the list thing, that's what I was missing.

PhydeauxLeChien gravatar image PhydeauxLeChien  ( 2017-06-29 09:37:23 -0500 )edit

Have you solved the problem:MoveItSimpleControllerManager: Action client not connected: arm_r_controller/follow_joint_trajectory? I have the same trouble.

yyf gravatar image yyf  ( 2017-09-27 03:14:05 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2017-09-27 12:47:57 -0500

v4hn gravatar image

The problem is that your MoveIt controller manager expects a ROS action at arm_r_controller/follow_joint_trajectory, but that does not exist. run rostopic list | grep goal and find the FollowTrajectoryAction that is setup with your gazebo ros_control plugin.

You can either change the topic in the gazebo configuration or in the controllers.yaml.

edit flag offensive delete link more
-1

answered 2017-07-03 09:30:46 -0500

Alberto E. gravatar image

It looks to me like you may have an error in the controllers.yaml configuration file, assuming that the controllers of the robot are being loaded correctly, but I would need more information. I suggest you to have a look at this video, since it explains exactly what you are trying to do.

Greetings!

edit flag offensive delete link more

Comments

2

@Alberto E.: could I please ask you to include the main part of the solution to @PhydeauxLeChien in your answer? If the video you link to ever disappears (which is not that uncommon actually), your answer will be useless.

gvdhoorn gravatar image gvdhoorn  ( 2017-07-04 02:16:37 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2017-06-29 07:38:16 -0500

Seen: 3,147 times

Last updated: Sep 27 '17