Sending a moveit_msgs::RobotTrajectory msg from the MoveGroup node to an arm controller

2,288 views
Skip to first unread message

mfr...@vt.edu

unread,
Feb 20, 2014, 9:54:23 AM2/20/14
to moveit...@googlegroups.com
Hey everyone,

I have created my own custom arm manipulator and want to send a motion plan that moveit created to the actual arm controller. I read through http://moveit.ros.org/wiki/Executing_Trajectories_with_MoveIt! and understand how a RobotTrajectory msg gets created once a motion plan is created by moveit. I also understand that I need to use the moveit_simple_controller_manager  plugin to account for the arm controller from the movegroup node side. However I do not understand how the RobotTrajectory msg gets sent to the  moveit_simple_controller_manager. Then, I understand that I need to define the arm controller in the movegroup config package using the .yaml extension, as well as update the move_group.launch to use the moveit_controller_manager. Next, I understand that within the  moveit_simple_controller_manager that I have to use the follow_joint_trajectory action in order to send the RobotTrajectory msg from the movegroup node to the arm controller. However I have a couple problems with understanding the steps that need to be taken for that process to happen. For one thing do I need to create an arm controller ros node that handles the RobotTrajectory msg? If so what packages do I need to use in order for the arm controller ros node to interface with the actual arm that takes serial type commands? Would I need to use ros_control & and ros_controllers as dependencies? 

Also in stead of sending the trajectory to the actual arm controller, I was hoping to find a way of sending the trajectory to Gazebo. I used http://gazebosim.org/wiki/Tutorials/1.9/ROS_Control_with_Gazebo  to try to understand how that would work, but I wasnt sure how the movegroup node would interface with the ros_control node and allow for gazebo to get the trajectory at the end. 

I assume many of these questions could be confusing, and its because I am still new arm manipulation and how to create an infrastructure that uses the ROS meta OS. If any of the assumptions I made above are not true please feel free to correct me as well.


Thanks ,
Mike 

Sachin Chitta

unread,
Feb 23, 2014, 9:04:39 PM2/23/14
to Michael Francis, moveit-users
Hi Mike,

Follow the new tutorial on integrating controllers here: http://docs.ros.org/api/pr2_moveit_tutorials/html/planning/src/doc/controller_configuration.html

It walks through the configuration process for configuring MoveIt! for your robot - this will work with Gazebo and with your own robot as well.

In both cases, you will need a FollowJointTrajectoryAction already implemented on your robot - this is the way that move_group connects to the controllers on your robot (see the first figure on this page for a description of the MoveIt! architecture: http://moveit.ros.org/documentation/concepts/#System_Architecture). Using ros_control and Gazebo, you can get this action easily by configuring it in YAML. On your own hardware though, you will have to implement this yourself (or use ros_control). This implementation is currently non-trivial and I would encourage you to look at the ROS control documentation for more information.

Hope this helps,

Best Regards,
Sachin


Adolfo Rodríguez Tsouroukdissian

unread,
Feb 24, 2014, 3:28:26 AM2/24/14
to Sachin Chitta, Michael Francis, moveit-users
On Mon, Feb 24, 2014 at 3:04 AM, Sachin Chitta <robot....@gmail.com> wrote:
Hi Mike,

Follow the new tutorial on integrating controllers here: http://docs.ros.org/api/pr2_moveit_tutorials/html/planning/src/doc/controller_configuration.html

It walks through the configuration process for configuring MoveIt! for your robot - this will work with Gazebo and with your own robot as well.

In both cases, you will need a FollowJointTrajectoryAction already implemented on your robot - this is the way that move_group connects to the controllers on your robot (see the first figure on this page for a description of the MoveIt! architecture: http://moveit.ros.org/documentation/concepts/#System_Architecture). Using ros_control and Gazebo, you can get this action easily by configuring it in YAML. On your own hardware though, you will have to implement this yourself (or use ros_control). This implementation is currently non-trivial and I would encourage you to look at the ROS control documentation for more information.

Mike,

Complementing Sachin's response, this is what you should know if you decide to go down the ros_control path:

- You need an abstraction of your robot that exposes the available joints and their hardware interfaces. For Gazebo, you can use gazebo_ros_control. The current release (i.e., released binaries) only supports effort-controlled joints, but position- and velocity-controlled joints are available if you build from source. For your real robot, you'd have to implement this abstraction for your hardware.

- The controller that implements the FollowJointTrajectoryAction lives in the joint_trajectory_controller package. You only need a YAML file to configure it, and use the controller_manager's service API to (un)load and start/stop it.

Adolfo.


Hope this helps,

Best Regards,
Sachin




On Thu, Feb 20, 2014 at 6:54 AM, <mfr...@vt.edu> wrote:
Hey everyone,

I have created my own custom arm manipulator and want to send a motion plan that moveit created to the actual arm controller. I read through http://moveit.ros.org/wiki/Executing_Trajectories_with_MoveIt! and understand how a RobotTrajectory msg gets created once a motion plan is created by moveit. I also understand that I need to use the moveit_simple_controller_manager  plugin to account for the arm controller from the movegroup node side. However I do not understand how the RobotTrajectory msg gets sent to the  moveit_simple_controller_manager. Then, I understand that I need to define the arm controller in the movegroup config package using the .yaml extension, as well as update the move_group.launch to use the moveit_controller_manager. Next, I understand that within the  moveit_simple_controller_manager that I have to use the follow_joint_trajectory action in order to send the RobotTrajectory msg from the movegroup node to the arm controller. However I have a couple problems with understanding the steps that need to be taken for that process to happen. For one thing do I need to create an arm controller ros node that handles the RobotTrajectory msg? If so what packages do I need to use in order for the arm controller ros node to interface with the actual arm that takes serial type commands? Would I need to use ros_control & and ros_controllers as dependencies? 

Also in stead of sending the trajectory to the actual arm controller, I was hoping to find a way of sending the trajectory to Gazebo. I used http://gazebosim.org/wiki/Tutorials/1.9/ROS_Control_with_Gazebo  to try to understand how that would work, but I wasnt sure how the movegroup node would interface with the ros_control node and allow for gazebo to get the trajectory at the end. 

I assume many of these questions could be confusing, and its because I am still new arm manipulation and how to create an infrastructure that uses the ROS meta OS. If any of the assumptions I made above are not true please feel free to correct me as well.


Thanks ,
Mike 




--
Adolfo Rodríguez Tsouroukdissian
Senior robotics engineer
adolfo.r...@pal-robotics.com
http://www.pal-robotics.com

PAL ROBOTICS S.L
c/ Pujades 77-79, 4º4ª
08005 Barcelona, Spain.
Tel. +34.93.414.53.47
Fax.+34.93.209.11.09
Skype: adolfo.pal-robotics
Facebook - Twitter - PAL Robotics YouTube Channel

AVISO DE CONFIDENCIALIDAD: Este mensaje y sus documentos adjuntos, pueden contener información privilegiada y/o confidencial que está dirigida exclusivamente a su destinatario. Si usted recibe este mensaje y no es el destinatario indicado, o el empleado encargado de su entrega a dicha persona, por favor, notifíquelo inmediatamente y remita el mensaje original a la dirección de correo electrónico indicada. Cualquier copia, uso o distribución no autorizados de esta comunicación queda estrictamente prohibida.

CONFIDENTIALITY NOTICE: This e-mail and the accompanying document(s) may contain confidential information which is privileged and intended only for the individual or entity to whom they are addressed.  If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or use of this e-mail and/or accompanying document(s) is strictly prohibited.  If you have received this e-mail in error, please immediately notify the sender at the above e-mail address.
Message has been deleted

mfr...@vt.edu

unread,
Feb 24, 2014, 12:58:13 PM2/24/14
to moveit...@googlegroups.com, Sachin Chitta, Michael Francis, adolfo.r...@pal-robotics.com
Hey Sachin & Adolfo,

Thanks for responding to my message. First Sachin, I followed the tutorial that was posted  on http://docs.ros.org/api/pr2_moveit_tutorials/html/planning/src/doc/controller_configuration.html, I made sure to set the "fake execution" argument to false. I assumed this would make the move_group node access the controllers.yaml file instead of the fake_controller.yaml file. I made sure to check both the trajectory & moveit_controller_manager launch files to make sure that they were also looking at the correct controller config file, and controller manager. However when I ran the move_group.launch file I got this error "Unknown substitution command [my robot moveit config pack name]  Valid commands are ['find', 'env', 'optenv', 'anon', 'arg']". This issue only occurred when I set the fake_execution argument to false in the move_group.launch file. If  I had set it to true, the move_group.launch file would run successfully. However I did not have access to the controllers.yaml file instead fake_controllers.yaml was used and  I verified that using the rostopic list command. My question is why is it when trying to use the actual controllers versus the fake controllers causing my move_group.launch file to not run? 

Next,  I am still having trouble understanding how to use the joint_trajectory_controller package. From what I can understand (After reading the pr2_controller tutorials) I can create a controller package that would have dependencies of joint_trajectory_controller and create a jointtrajectory action server from with a node of that package which would receive the robottrajectory msg from the moveit_controller_manager.  Then the node will communicate with the actual robot, is this correct?

Finally, I tired creating a package that used the dependencies ros_control and ros_controller packages by following the tutorial on http://gazebosim.org/wiki/Tutorials/1.9/ROS_Control_with_Gazebo but I kept getting an error saying 

CMake Error at /opt/ros/hydro/share/catkin/cmake/catkinConfig.cmake:72 (find_package):
  Could not find a configuration file for package ros_control.

 Set ros_control_DIR to the directory containing a CMake configuration
  file for ros_control.  The file will have one of the following names:
     ros_controlConfig.cmake
    ros_control-config.cmake


CMake Error at /opt/ros/hydro/share/catkin/cmake/catkinConfig.cmake:72 (find_package):
  Could not find a configuration file for package ros_controllers.

 Set ros_controllers_DIR to the directory containing a CMake configuration
  file for ros_controllers.  The file will have one of the following names:

ros_controllersConfig.cmake
    ros_controllers-config.cmake

When I remove the packages from the Cmakelist.txt "find_package" line the created package gets complied. However when I run the launch file from the package I get this message: 

[INFO] [WallTime: 1393262845.109880] [0.000000] Controller Spawner: Waiting for service controller_manager/load_controller
[WARN] [WallTime: 1393262875.363566] [41.470000] Controller Spawner couldn't find the expected controller_manager ROS interface.


Is this a problem with ros_control, because I defined the yaml file like the tutorial asked me to. 

mfr...@vt.edu

unread,
Feb 24, 2014, 2:40:52 PM2/24/14
to moveit...@googlegroups.com, Sachin Chitta, Michael Francis, adolfo.r...@pal-robotics.com
Another thing to mention is that I installed ros_control and ros_controllers from source and debian, and my gazebo_ros is installed via deb packages. I did see one problem when running my gazebo_ros package  to get my robot model on gazebo:

Failed to create robot simulation interface loader: rospack could not find the gazebo_ros_control package containing gazebo_ros_control::RobotHWSim

I am not sure why this package is missing. 

Adolfo Rodríguez Tsouroukdissian

unread,
Feb 25, 2014, 3:40:29 AM2/25/14
to Michael Francis, moveit-users
On Mon, Feb 24, 2014 at 6:57 PM, <mfr...@vt.edu> wrote:
Hey Sachin & Adolfo,

Thanks for responding to my message. First Sachin, I followed the tutorial that was posted  on http://docs.ros.org/api/pr2_moveit_tutorials/html/planning/src/doc/controller_configuration.html, I made sure to set the "fake execution" argument to false. I assumed this would make the move_group node access the controllers.yaml file instead of the fake_controller.yaml file. I made sure to check both the trajectory & moveit_controller_manager launch files to make sure that they were also looking at the correct controller config file, and controller manager. However when I ran the move_group.launch file I got this error "Unknown substitution command [my robot moveit config pack name]  Valid commands are ['find', 'env', 'optenv', 'anon', 'arg']".

There seems to be a syntax error in your launch files. From the output, I could guess that instead of 'my robot moveit config pack name', you should have something along the lines of $(find myrobot_moveit_config). The fake execution flag is used in an if-unless conditional, so when set to true, parts of the launch sequence are omitted, and the error does not show up.
 
This issue only occurred when I set the fake_execution argument to false in the move_group.launch file. If  I had set it to true, the move_group.launch file would run successfully. However I did not have access to the controllers.yaml file instead fake_controllers.yaml was used and  I verified that using the rostopic list command. My question is why is it when trying to use the actual controllers versus the fake controllers causing my move_group.launch file to not run? 

Next,  I am still having trouble understanding how to use the joint_trajectory_controller package. From what I can understand (After reading the pr2_controller tutorials) I can create a controller package that would have dependencies of joint_trajectory_controller and create a jointtrajectory action server from with a node of that package which would receive the robottrajectory msg from the moveit_controller_manager.  Then the node will communicate with the actual robot, is this correct?

The MoveIt! setup when fake execution is set to false will instantiate a FollowJointTrajectory action _client_ namespaced according to the 'name' and 'action_ns' specified in your controllers.yaml file, i.e., the action goal topic being name/action_ns/goal.

OTOH, the ros_control side should instantiate a controller exposing a  FollowJointTrajectory action _server_ in the above namespace, so client and server can talk. To do this, you should:
- Have a running controller manager tied to your robot hardware abstraction, like the one offered by gazebo_ros_control.
- Load a joint_trajectory_controller configuration to the ROS parameter server, and spawn it using the controller_manager ROS service interface, or the convenience spawner script (used in this example, you can also run 'rosrun controller_manager spawner' without further arguments to get usage info).

You should make sure that the joint_trajectory_controller is indeed up and running, and that its namespace coincides with what MoveIt! is expecting.


Finally, I tired creating a package that used the dependencies ros_control and ros_controller packages by following the tutorial on http://gazebosim.org/wiki/Tutorials/1.9/ROS_Control_with_Gazebo but I kept getting an error saying 

CMake Error at /opt/ros/hydro/share/catkin/cmake/catkinConfig.cmake:72 (find_package):
  Could not find a configuration file for package ros_control.

 Set ros_control_DIR to the directory containing a CMake configuration
  file for ros_control.  The file will have one of the following names:
     ros_controlConfig.cmake
    ros_control-config.cmake


CMake Error at /opt/ros/hydro/share/catkin/cmake/catkinConfig.cmake:72 (find_package):
  Could not find a configuration file for package ros_controllers.

 Set ros_controllers_DIR to the directory containing a CMake configuration
  file for ros_controllers.  The file will have one of the following names:

ros_controllersConfig.cmake
    ros_controllers-config.cmake

When I remove the packages from the Cmakelist.txt "find_package" line the created package gets complied. However when I run the launch file from the package I get this message: 

[INFO] [WallTime: 1393262845.109880] [0.000000] Controller Spawner: Waiting for service controller_manager/load_controller
[WARN] [WallTime: 1393262875.363566] [41.470000] Controller Spawner couldn't find the expected controller_manager ROS interface.

You are either not launching the controller_manager, or startup is taking too long (slow machine?) so the spawner times out before the controller_manager services become available.


Is this a problem with ros_control, because I defined the yaml file like the tutorial asked me to. 

Do you have ros_control and ros_controllers installed in your system?, is your ROS workspace configured to find them?, i.e., can you 'roscd ros_control' and 'roscd ros_controllers'?.

mfr...@vt.edu

unread,
Feb 25, 2014, 4:56:29 PM2/25/14
to moveit...@googlegroups.com, Michael Francis, adolfo.r...@pal-robotics.com
Hey Adolfo,

Thanks for responding! You where correct about one of my launch files having a syntax error which was causing my movegroup node to not access my controllers.yaml file. After fixing that problem , I was able to get the movegroup node running however i got this error:

[ INFO] [1393361974.553823271]: Constructing new MoveGroup connection for group 'arm'
[ INFO] [1393361975.685338329]: MoveitSimpleControllerManager: Waiting for arm_controller/follow_joint_trajectory to come up
[ERROR] [1393361980.685604294]: MoveitSimpleControllerManager: Action client not connected: arm_controller/follow_joint_trajectory
[ INFO] [1393361980.696513480]: Returned 0 controllers in list
[ INFO] [1393361980.707610274]: Trajectory execution is managing controllers

The movegroup node still got created , but I do not think the moveit simple controller manager was able to use arm_Controller I defined in my controllers.yaml. Also when you say to "- Have a running controller manager tied to your robot hardware abstraction, like the one offered by gazebo_ros_control."  Are you saying that I need to have two control managers one on the moviet side(action client) and another on the robot hardware abstraction side (action server)?


This is line I used to create joint_trajectory_controller ros node in order for the controller manager to get created for gazebo_ros_control 
<node name="joint_trajectory_controller" pkg="controller_manager" type="spawner" respawn="false"
    output="screen" ns="arm_controller/follow_joint_trajectory" args="joint1_position_controller joint2_position_controller joint3_position_controller joint4_position_controller  joint_state_controller"/>

Is this correct?

Finally I made sure that ros_control and ros_controllers are installed via source by using roscd and finding it. 

Thanks again for all the help, I am just trying to connect the dots and its been tough so I apologize if these questions dont make sense or are dumb.

Mike 

Adolfo Rodríguez Tsouroukdissian

unread,
Feb 26, 2014, 5:36:09 AM2/26/14
to Michael Francis, moveit-users
On Tue, Feb 25, 2014 at 10:56 PM, <mfr...@vt.edu> wrote:
Hey Adolfo,

Thanks for responding! You where correct about one of my launch files having a syntax error which was causing my movegroup node to not access my controllers.yaml file. After fixing that problem , I was able to get the movegroup node running however i got this error:

[ INFO] [1393361974.553823271]: Constructing new MoveGroup connection for group 'arm'
[ INFO] [1393361975.685338329]: MoveitSimpleControllerManager: Waiting for arm_controller/follow_joint_trajectory to come up
[ERROR] [1393361980.685604294]: MoveitSimpleControllerManager: Action client not connected: arm_controller/follow_joint_trajectory
[ INFO] [1393361980.696513480]: Returned 0 controllers in list
[ INFO] [1393361980.707610274]: Trajectory execution is managing controllers

The movegroup node still got created , but I do not think the moveit simple controller manager was able to use arm_Controller I defined in my controllers.yaml. Also when you say to "- Have a running controller manager tied to your robot hardware abstraction, like the one offered by gazebo_ros_control."  Are you saying that I need to have two control managers one on the moviet side(action client) and another on the robot hardware abstraction side (action server)?

Yes, kind of. The MoveItSimpleControllerManager is a bit of a misnomer, it's not a controller manager per-se, but rather an interface to the actual controllers. From Fergs' answer in [1] "...the MoveItSimpleControllerManager ... turns the RobotTrajectory into a call to a control_msgs/FollowJointTrajectoryAction action server". You seem to have the MoveIt! end of things working, now comes the ros_control side of things.

The actual controller_manager lives in a different node, and is typically not lauched by the MoveIt! launch files. The controller manager is a lower level functionality that stands in itself even in the absence of MoveIt!. It lives in your robot hardware abstraction. When using Gazebo, it's a Gazebo plugin.



This is line I used to create joint_trajectory_controller ros node in order for the controller manager to get created for gazebo_ros_control 
<node name="joint_trajectory_controller" pkg="controller_manager" type="spawner" respawn="false"
    output="screen" ns="arm_controller/follow_joint_trajectory" args="joint1_position_controller joint2_position_controller joint3_position_controller joint4_position_controller  joint_state_controller"/>


This only loads+starts the joint trajectory controller, but assumes an already running controller_manager. When using Gazebo, you can load the gazebo_ros_control plugin from your URDF, as in [2]. Let me emphasize: Make sure your namespaces match!, in your case you might want to leave the <robotNamespace> element empty.

[1] http://answers.ros.org/question/84806/using-moveit-to-actually-control-a-robot/
[2] https://github.com/ros-simulation/gazebo_ros_demos/blob/master/rrbot_description/urdf/rrbot.gazebo#L6

 
Is this correct?

Finally I made sure that ros_control and ros_controllers are installed via source by using roscd and finding it. 

Thanks again for all the help, I am just trying to connect the dots and its been tough so I apologize if these questions dont make sense or are dumb.

These are all good questions. They only highlight the need of a set of step-by-step tutorials to walk you through this process, which exemplify how to connect the dots. Dave Coleman has already done a great job in starting this effort, and it's input like yours that brings to light the items that need further work. So, keep on asking :-)

Adolfo.

mfr...@vt.edu

unread,
Feb 27, 2014, 3:26:02 PM2/27/14
to moveit...@googlegroups.com, Michael Francis, adolfo.r...@pal-robotics.com
Hey Adolfo,

Thanks for the feed back as always! I wanted to say that  I am running a instance of the gazebo_ros_control to create an instance of a control manager , by creating it in my urdf file with my arm's model. : 

<robot>
...
(end of the model description)

<gazebo>
  <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
  </plugin>
</gazebo>

</robot>
In my urdf I also make sure to define the transmission tags for each joint like gazebo ros conrtol tutorials asks for.
When running the the demo.launch file that gets created through the moveit_config package it creates an instance of a move_group node (amongst other things) and it uses the urdf file that I described above, therefore an instance of a gazebo_ros_control controller manager should be up (can I see this using rostopic list, or under ROS parameters?). So the fact that I am getting the error "[ERROR] [1393361980.685604294]: MoveitSimpleControllerManager: Action client not connected: arm_controller/follow_joint_trajectoryconcerns me because I thought the gazebo plugin got loaded, but you are saying that it didnt load the controller manager which is why I am seeing the error. Am I missing something with creating the controller manager?  

Also in reference to that error,when it says it couldnt find "arm_controller/follow_joint_trajectory" does that mean I need to have on the gazebo side an action_ns definition somewhere in my gazebo_ros_controllers.yaml file? The moveit_config_controllers.yaml file and the gazebo_ros_controllers.yaml file are different btw and do not have  similarities in terms of type(moveit: FollowJointTrajectory, gazebo:effort_controllers/JointPositionController). 

Next when I run robot_gazebo robot_world.launch (alone) to start up gazebo and spawn my urdf model  I see this "Error [ModelDatabase.cc:384] Unable to parse model.config for model[http://gazebosim.org/models/construction_cone]". I do not see this error when I run the moveit_config demo.launch in parallel though, and the model only shows up in gazebo when running both in parallel, 

Finally, in terms of hardware interface definition in the transmission tag for my urdf is should I use JointCommandInterface , or JointStateInterface? Because my gazebo_ros_controllers.yaml is using the effort_controllers/jointPositionController type. So after launching  robot_gazebo robot_world.launch in parallel the model comes up, but I get this error 
[FATAL] [1393518280.507950494, 0.260000000]: No matching hardware interface found for 'JointCommandInterface
[FATAL] [1393518280.508031867, 0.260000000]: Could not initialize robot simulation interface

Does that mean the definition is incorrect? 

Anyways thanks so much as always

Mike

mfr...@vt.edu

unread,
Feb 27, 2014, 4:45:30 PM2/27/14
to moveit...@googlegroups.com, Michael Francis, adolfo.r...@pal-robotics.com
Hey 

I wanted to note 2 more things

1. The hardware interface EffortJointInterface  works so that when I run robot_gazbo robot_world.launch no errors show up and I successfully load gazebo_ros_control, however I am not sure why I cant use the other two cause I have installed ros_control via deb package and source. Also even though gazebo is working I still cannot spawn the Joint_trajectory_controller which tells me that the gazebo_ros_control controller manager isnt up. 

2. As I learn more about the control manager that gazebo_ros_control makes, how can I make sure that it is creating a action server to listen for msgs from the moveit simple controller manager? 

Thanks
Mike

Adolfo Rodríguez Tsouroukdissian

unread,
Mar 3, 2014, 4:55:15 AM3/3/14
to Michael Francis, moveit-users
On Thu, Feb 27, 2014 at 9:26 PM, <mfr...@vt.edu> wrote:
Hey Adolfo,

Thanks for the feed back as always! I wanted to say that  I am running a instance of the gazebo_ros_control to create an instance of a control manager , by creating it in my urdf file with my arm's model. : 

<robot>
...
(end of the model description)

<gazebo>
  <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
  </plugin>
</gazebo>

</robot>
In my urdf I also make sure to define the transmission tags for each joint like gazebo ros conrtol tutorials asks for.
When running the the demo.launch file that gets created through the moveit_config package it creates an instance of a move_group node (amongst other things) and it uses the urdf file that I described above, therefore an instance of a gazebo_ros_control controller manager should be up (can I see this using rostopic list, or under ROS parameters?).

At this point you need to debug the ros_control side of things, so don't even bother about launching your MoveIt! nodes until you get it resolved. The ros_control controller manager has a service API, so doing

rosservice list | grep controller_manager

Should return something like:

/controller_manager/list_controller_types
/controller_manager/list_controllers
/controller_manager/load_controller
/controller_manager/reload_controller_libraries
/controller_manager/switch_controller
/controller_manager/unload_controller

If nothing is returned, then the plugin is not loading correctly. If you prefer a graphical interface, Kelsey Hawkins recently added the rqt_controller_manager plugin for introspecting the controller_manager.

Lastly, since it is now evident that your current problems don't concern MoveIt!, you might consider taking this part of the discussion to the robot-control ROS sig

https://groups.google.com/forum/?fromgroups#!forum/ros-sig-robot-control

HTH,

Adolfo.

mfr...@vt.edu

unread,
Mar 5, 2014, 4:03:35 PM3/5/14
to moveit...@googlegroups.com, Michael Francis, adolfo.r...@pal-robotics.com
Hey,

I have posted my concerns on the ros_control google group forum (https://groups.google.com/forum/?fromgroups#!topic/ros-sig-robot-control/gMU383xm-v8). But basically I do not think that the plugin is working. How do I verify that the plugin is not working without using rosservice? Also I do not need to define my own action server in order to send over the motion plan from moveit to gazebo correct? Thats what the plugin is suppose to do? Finally, I cannot find  the definition of the gazebo_ros_control controller.yaml, I cannot see what parameters of this file mean.

Thanks
Mike 

Adolfo Rodríguez Tsouroukdissian

unread,
Mar 6, 2014, 3:48:22 AM3/6/14
to Michael Francis, moveit-users
On Wed, Mar 5, 2014 at 10:03 PM, <mfr...@vt.edu> wrote:
Hey,

I have posted my concerns on the ros_control google group forum (https://groups.google.com/forum/?fromgroups#!topic/ros-sig-robot-control/gMU383xm-v8). But basically I do not think that the plugin is working. How do I verify that the plugin is not working without using rosservice? Also I do not need to define my own action server in order to send over the motion plan from moveit to gazebo correct? Thats what the plugin is suppose to do? Finally, I cannot find  the definition of the gazebo_ros_control controller.yaml, I cannot see what parameters of this file mean.

Mike,

I replied to your question on the robot-control list. I suggest to revive this thread once your controllers are running, and if you encounter MoveIt! related issues.

Cheers,

Adolfo.
Reply all
Reply to author
Forward
0 new messages