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

Gazebo and MoveIt! MoveitSimpleControllerManager and sending joint trajectory messages

asked 2013-08-07 22:08:40 -0600

cdrwolfe gravatar image

updated 2013-11-14 10:42:10 -0600

tfoote gravatar image

Hi

I've been working my way through the MoveIt! tutorials and have been having some problems with the Gazebo integration.

I'm simply trying to plan and execute a command in MoveIt! and have it displayed on the Gazebo simulator, in this case using the Fanuc m10ia model.

I have had to use the MoveItSimpleControllerManager instead of the Pr2controller, (also if any one else is using this I believe there is an error with the spelling, as it is listed as Simple_MoveIt_Controller_Manager and not MoveIt_Simple_Controller_Manager).

Anyway, upon running roslaunch fanuc_m10ia_moveit_config moveit_planning_execution.launch I get any error saying:

[ INFO] [1375734277.680123500, 1255.832000000]: MoveitSimpleControllerManager:     Waiting for moveit_simple_controller/follow_joint_trajectory to come up
[ERROR] [1375734283.338320976, 1260.832000000]: MoveitSimpleControllerManager: Action client not connected: moveit_simple_controller/follow_joint_trajectory

Is there some step I have missed, or some node / service I should have started that I am unaware of?

Here is some additional information

Controllers.yaml

controller_manager_ns: moveit_simple_controller_manager
controller_list:
  - name: moveit_simple_controller
    type: FollowJointTrajectory
    action_ns: follow_joint_trajectory
    default: true
    joints:
      - joint_1
      - joint_2
      - joint_3
      - joint_4
      - joint_5
      - joint_6
      - joint_6-tool0

moveit_planning_execution.launch

<launch>
   # The planning and execution components of MoveIt! configured to 
   # publish the current configuration of the robot (simulated or real)
   # and the current state of the world as seen by the planner
   <include file="$(find fanuc_m10ia_moveit_config)/launch/move_group.launch">
      <arg name="publish_monitored_planning_scene" value="true" />
   </include>
   # The visualization component of MoveIt!
   <include file="$(find fanuc_m10ia_moveit_config)/launch/moveit_rviz.launch"/>
</launch>

fanuc_m10ia_controller_manager.launch

<launch>
 <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)" />
 <rosparam file="$(find fanuc_m10ia_moveit_config)/config/controllers.yaml"/>
</launch>

Any help is appreciated. (Apologies for the cross post)

Cdr

edit retag flag offensive close merge delete

Comments

Where is the naming/spelling error? On the wiki? In the docs? Could you provide a link?

fergs gravatar image fergs  ( 2013-08-10 12:29:21 -0600 )edit

Hmm, if I'm honest I can't quite remember, after failing to get the pr2_controller to work I managed to search out the simple_moveit_controller through google. I imagine it is linked to the Maxwell package though looking at it now it seems to not be the case. however you can see in this link where it was previously named differently. I Imagine I copied and experimented with this before remaining it to the correct title. https://github.com/ros-planning/moveit_commander/issues/3

cdrwolfe gravatar image cdrwolfe  ( 2013-08-11 06:58:07 -0600 )edit

You'll probably need to post more details about your configuration to get further help. Perhaps you can post your controller_manager.launch, moveit_planning_execution.launch, and controllers.yaml files?

Jeremy Zoss gravatar image Jeremy Zoss  ( 2013-08-11 19:17:52 -0600 )edit

SimpleMoveit was before we moved this to the new moveit_plugins repository, back when it was in my personal repository.

fergs gravatar image fergs  ( 2013-08-11 21:45:59 -0600 )edit

Updated to add more details

cdrwolfe gravatar image cdrwolfe  ( 2013-08-12 07:29:52 -0600 )edit

hello, I also encounter this problem, do you solve the problem?

yin gravatar image yin  ( 2016-11-28 07:17:39 -0600 )edit

make sure you have all the packages installed. A good way to check is to cd into the src/'your_robot' directory and type "rosdep install -r --from-paths . "

tudler88 gravatar image tudler88  ( 2016-11-30 13:10:53 -0600 )edit

3 Answers

Sort by ยป oldest newest most voted
5

answered 2013-08-12 08:29:03 -0600

updated 2013-08-15 11:19:14 -0600

It's unclear from your launch files and topic listing, but it's worth checking to make sure:

MoveIt requires that your robot-interface nodes provide a FollowJointTrajectory action. Have you provided this action in one of your robot nodes?

The controller manager files specify how to connect MoveIt to this action (which joints, what namespace/topic names, etc.), but a controller_manager does not provide the action itself.

  • For the PR2 nodes, this action is provided by the arm controller nodes (see here).
  • For ROS-Industrial nodes, this action is typically provided by the joint_trajectory_action node in the industrial_robot_client package. See, for example, here and here.

In your topic list, I see topics related to this action under both follow_joint_tractory/goal and /moveit_simple_controller/follow_joint_trajectory/*, so there may be some conflict there.

Edit:
As a side note: Is there any reason in particular that you need to use gazebo? For many cases, the basic rviz visualization is adequate. Have you looked at the ROS-Industrial set of packages? These packages include a good framework already for working with faunc robots, including the m10ia. These packages include the launch files necessary to bring up the joint_trajectory_action, but don't have any hooks into gazebo.

edit flag offensive delete link more

Comments

Hmm I don't believe I have provided some call up to FollowJointTrajectory action, and I'm not entirely sure how. I'm using the fanuc_experimental package and the fanuc_m10ia_fanuc_config within it. I've been trying to follow the quickstart tutorial in http://moveit.ros.org/wiki/PR2/Gazebo/Quick_Start. There was no mention of setting up a FollowJointTrajectory action within this. Would I somehow have to call this <node pkg="industrial_robot_client" type="follow_joint_trajectory_action" name="follow_joint_trajectory_action"/> in one of my launch files? Also the topic "follow_joint_tractory/goal" doesn't exist, it was an error i made when pasting in the topic details, sorry about that

cdrwolfe gravatar image cdrwolfe  ( 2013-08-15 08:57:27 -0600 )edit

There's no mention of this in the PR2 tutorial, because it's handled by the PR2's arm_controller, as I mentioned above. For the moveit_simple_controller, you'll need to provide your own. Your launch-file suggestion is on-target, but you'll need to make sure that the moveit_simple_controller config file is set to look for your action in the correct namespace and topic names.

Jeremy Zoss gravatar image Jeremy Zoss  ( 2013-08-15 09:28:05 -0600 )edit

Thanks Jeremy, that will teach me to mix two things together and jump to far ahead :) I think i'll go back over the PR2 controllers, get a better understanding of how they work and then look to get the moveit_simple_controller working later on and post what I can come up with

cdrwolfe gravatar image cdrwolfe  ( 2013-08-15 10:56:56 -0600 )edit

In answer to EDIT* I eventually will need to have more than one robotic platform working with others in a collaborative way. The example I gave above was with some turtlebots working with the fanuc arm to do a simple task. Now i may be ignorant in this regard but I assumed this would require the more complex physics found within Gazebo, and the possibility of multiple robotic platforms working together, than would be available within Rviz, though I could be wrong

cdrwolfe gravatar image cdrwolfe  ( 2013-08-15 11:46:10 -0600 )edit
1

answered 2013-08-10 15:05:26 -0600

updated 2013-08-10 16:54:01 -0600

Do you need gazebo ( a physics sim) or will rviz meet your needs (a kinematic sim). The ROS-I tutorial walks through the rviz setup (including controllers). http://ros.org/wiki/Industrial/Tutorials/Create_a_MoveIt_Pkg_for_an_Industrial_Robot

edit flag offensive delete link more

Comments

Ideally yes,I would. It would be nice to set up a system where I could have my Fanuc robotic arm interacting with two turtlebit2 platforms in a simple task, i.e collecting cans, moving them to a designated area and having the robotic arm perform pick and place to deposit them elsewhere. I say simple task of course knowing it is nothing but :) I would also like to use the MoveIt! framework to help perform this task

cdrwolfe gravatar image cdrwolfe  ( 2013-08-11 07:04:25 -0600 )edit
0

answered 2013-08-10 12:32:03 -0600

fergs gravatar image

Do you have a FollowJointTrajectoryAction available in your drivers for the Fanuc? If so, what is the name? I doubt it is called 'moveit_simple_controller/follow_joint_trajectory'. I would suggest doing a:

rostopic list

And looking for */follow_joint_trajectory/goal. Or post a link to where the drivers came from so we can find the action name.

edit flag offensive delete link more

Comments

Well at the moment all i was trying to do was follow the moveit gazebo quick tutorial. In this instance trying to get it so that the planning and execution performed on the MoveIt! rviz planner would migrate down to Gazebo and move the arm there. In this case I load up gazebo 'roslaunch fanuc_gazebo fanuc.launch' and then load up MoveIt 'roslaunch fanuc_m10ia_moveit_config moveit_planning_execution.launch'

cdrwolfe gravatar image cdrwolfe  ( 2013-08-11 07:40:11 -0600 )edit

Rostopic list shows follow_joint_tractory/goal /clock /gazebo/link_states /gazebo/model_states /gazebo/parameter_descriptions /gazebo/parameter_updates /gazebo/set_link_state /gazebo/set_model_state /move_group/display_contacts /move_group/display_planned_path /move_group/monitored_planning_scene /move_group/ompl/parameter_descriptions /move_group/ompl/parameter_updates /move_group/planning_scene_monitor/parameter_descriptions /move_group/planning_scene_monitor/parameter_updates /moveit_simple_controller/follow_joint_trajectory/cancel /moveit_simple_controller/follow_joint_trajectory/feedback /moveit_simple_controller/follow_joint_trajectory/goal /moveit_simple_controller/follow_joint_trajectory/result /moveit_simple_controller/follow_joint_trajectory/status /rosout /rosout_agg /tf /tf_static

cdrwolfe gravatar image cdrwolfe  ( 2013-08-11 07:41:28 -0600 )edit

based on those topics, I would suggest setting 'name' to 'follow_joint_trajectory' and not setting an action_ns in your controllers.yaml.

fergs gravatar image fergs  ( 2013-08-11 21:52:48 -0600 )edit

no luck i'm afraid still the same result

cdrwolfe gravatar image cdrwolfe  ( 2013-08-12 09:54:29 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2013-08-07 22:08:40 -0600

Seen: 11,013 times

Last updated: Nov 28 '16