Only released in EOL distros:  

Package Summary

This package contains the different controllers and launch files for the Amigo simulation. To communicate with the gazebo simulator in real-time, the pr2_controller_manager infrastructure is used. A schematic overview is given in figure below:

alt text

The file controller_plugins.xml connects the libamigo_controllers library, which includes the different controller classes, to the pr2_controller_manager. With use of the spawner node in the pr2_controller_manager package, instances of these controllers can be spawned that have the possibility to communicate with the gazebo simulation.


Functionally the controllers manage Amigo's movement in simulation, that is to make sure its movements are as fast and precise as possible given the physical and practical limits. The controller library contains different controller classes that are used to spawn controllers which are configured with use of the parameter files from the package amigo_controller_configuration_gazebo. The different controller classes are as follows:


Publishes the odometry data of Amigo.

Published Topics

/tf (tf/tfMessage)
  • Transformation of frame /odom to /base_link
/odom (nav_msgs/Odometry)
  • Estimatation of the position and velocity of Amigo in free space


Controller that makes it possible to move the base of Amigo with use of velocity messages. It listens to twist messages and computes the efforts that needs to be put on the wheels.

Subscribed Topics

/cmd_vel (geometry_msgs/Twist)
  • Input twist message for Amigo


Generic controller which parses sensor_msgs/JointState messages and calculates the torques / forces on the corresponding joints. The controller also returns the current position of the joints as sensor_msgs/JointState messages. This generic controller is used as arm, gripper, spindle and head controller.

Subscribed Topics

/(controller_name)/references (sensor_msgs/JointState)
  • Reference joint states

Published Topics

/(controller_name)/measurements (sensor_msgs/JointState)
  • Current joint states

Additional documentation of the c++ files can be found as doxygen at <INSERT LINK HERE>

Launch files


This file loads the amigo_description, spawns it in gazebo and launches the gazebo-gui. Furthermore, it starts the pr2_controller_manager followed by the amigo simulation controllers (controllers.launch).


This file loads the parameter files from the amigo_controller_configuration_gazebo package and spawns the following controller nodes that communicate with the simulator via the pr2_controller_manager :

  • Basecontroller base_controller

  • Baseodometry base_odometry

  • Positioncontroller arm_left_controller

  • Positioncontroller arm_right_controller

  • Positioncontroller gripper_left_controller

  • Positioncontroller gripper_right_controller

  • Positioncontroller head_controller

  • Positioncontroller spindle_controller

Wiki: amigo_gazebo (last edited 2013-01-20 17:06:29 by SjoerdvandenDries)