bosch_skin: safe_base_controller | skin_config | skin_dashboard | skin_demo_movebase | skin_driver | skin_safe_base

Package Summary

The safe_base_controller only moves/turns the base if movement/turning in this direction is allowed. It subscribes to the command_limits topic where max and min velocities greater than zero must be published in order for the controller to allow movement.

Safe Base Controller

The safe_base_controller is a modified base_controller for the PR2. It subscribes to a topic where velocity limits for the base can be specified (implemented in a deadman manner, limits greater than zero have to be periodically granted otherwise the limit will timeout and the base stop).

To use this controller the robot has to be started with the safe_base_controller in the package path. This can be either achieved by checking out and compiling the package as the ros user or by starting the robot with sudo robot start -e. See controller_manager help for more info.

Once the robot has been started and the controller is visible (rosrun pr2_controller_manager pr2_controller_manager list-types) you can start the safe_base_controller with the provided launch file.



The safe_base_controller "node" is started by the controller manager as a realtime controller. Below only new parameters are listed, the ones already included in the original base_controller are omitted.

Subscribed Topics

command (geometry_msgs/Twist)
  • Message which contains the requested velocities with which the base should drive.
command_limits (safe_base_controller/TwistLimits)
  • Specifies the maximum velocities the base is allowed to drive. Needs to be send constantly otherwise base will not be allowed to move.


~timeout_vel_limits (seconds)
  • When the last command_limits message is older than timeout, the base is stopped. (Similar to the parameter timeout which stops the base if no new command message arrives.)

Wiki: safe_base_controller (last edited 2011-01-10 21:17:00 by SebastianHaug)