MoveIt! with Gazebo, using MoveItSimpleControllerManager, joint_trajectory_controller
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?
If anyone could help with formatting XML in questions as well, that'd be great. The < param > tags don't seem to be displaying >.<
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.Thanks - the list thing, that's what I was missing.
Have you solved the problem:MoveItSimpleControllerManager: Action client not connected: arm_r_controller/follow_joint_trajectory? I have the same trouble.