pr2_power_board Documentation


This provides a ROS node for the PR2 Power Board.

pr2_power_board provides a ROS interface to the power board used on the PR2 Robot. It sends out periodic requests for status updates to the specified IP address only. The update rate can be controlled with a parameter.


List of nodes:

  • power_board_control



$ power_node [-address=dotted.IP.address]
  • address : poll this specific IP address.

    Execute this to communicate with the power board. It will listen on all interfaces and send command messages out on the appropriate interface.

$ power_node --address=

Poll the power board at the given IP address. The power board acquires it's address via DHCP.

ROS topics

Publishes to (name / type):

  • "/diagnostic" / diagnostic_msgs::DiagnosticArray : The standard diagnostic status message format for self reporting. To view this use the package runtime_monitor's wxmonitor
  • "/power_board_state" / pr2_msgs::PowerBoardState : A simple message reporting the status of the power board in a message format that is easy to use.

ROS services

  • "power_board_control": passes ROS messages on to the power board hardware. (Old format requires serial number)
  • "power_board_control2": passes ROS messages on to the power board hardware. (New format, no serial number required)

ROS Parameters

  • "power_node/sample_frequency": Frequency to poll the hardware, default is 10Hz.

Command-line tools

  • send_command simple script to send a command
  • view_power gui to view the state and control a power board


send_command will send a command over ROS to the power_node which will then execute it.
Thus send_command requires a power_node to be operating.


$ ./send_command serial_number breaker_number command flags
  • serial_number of the board you want to control
  • breaker_number (0 | 1 | 2)
  • command = (start | stop | reset | disable)
  • flags are used to invoke special conditions in the power board, normally this should be zero
$ rosrun pr2_power_board send_command 1000 1 start 0

Turns on circuit 1 on board with serial number 1000.


This will start up a gui to allow viewing and commanding of the power board. This simply provides a graphical interface to the power_node over ROS. Without the power_node running this will do nothing.

Choose the appropriate board with the drop-box. The list is dynamically populated based on the messages heard by the power_node. If the power_node stops receiving messages from a Power Board then it's time stamps will become stale and the gui with gray out, indicating communication with the Power Board has been lost.

Author(s): Curt Meyers, Blaise Gassend
autogenerated on Sat May 22 2021 02:20:21