baxter_core_msgs

Summary

baxter_core_msgs
Version:

1.2.0

Description:

Messages and Services required for communication with the Baxter Research Robot from Rethink Robotics.

Maintainers:
  • Rethink Robotics Inc. <rsdk DOT support AT rethinkrobotics DOT com>
Licenses:
  • BSD
Urls:
Authors:
  • Rethink Robotics Inc.
BuildDepends:
BuildtoolDepends:
 
BuildExportDepends:
 
ExecDepends:

Types

Message types

baxter_core_msgs/DigitalIOState
Field:
  • state (int8) –
  • isInputOnly (bool) –
Constant:
  • OFF (int8):0
  • ON (int8):1
  • PRESSED (int8):1
  • UNPRESSED (int8):0
int8 state
bool isInputOnly

int8 OFF = 0
int8 ON  = 1
int8 PRESSED = 1
int8 UNPRESSED = 0
baxter_core_msgs/JointCommand
Field:
  • mode (int32) –
  • command[] (float64) –
  • names[] (string) –
Constant:
  • POSITION_MODE (int32):1
  • VELOCITY_MODE (int32):2
  • TORQUE_MODE (int32):3
  • RAW_POSITION_MODE (int32):4
int32 mode
float64[] command
string[]  names

int32 POSITION_MODE=1
int32 VELOCITY_MODE=2
int32 TORQUE_MODE=3
int32 RAW_POSITION_MODE=4
baxter_core_msgs/EndEffectorCommand
Field:
  • id (uint32) –
  • command (string) –
  • args (string) –
  • sender (string) –
  • sequence (uint32) –
Constant:
  • CMD_NO_OP (string):no_op
  • CMD_SET (string):set
  • CMD_CONFIGURE (string):configure
  • CMD_REBOOT (string):reboot
  • CMD_RESET (string):reset
  • CMD_CALIBRATE (string):calibrate
  • CMD_CLEAR_CALIBRATION (string):clear_calibration
  • CMD_PREPARE_TO_GRIP (string):prepare_to_grip
  • CMD_GRIP (string):grip
  • CMD_RELEASE (string):release
  • CMD_GO (string):go
  • CMD_STOP (string):stop

# Command to be sent to an end effector

## Command to be sent to an end effector
uint32 id       # target end effector id
string command  # operation to perform
# Well known commands:
string   CMD_NO_OP           = no_op
string   CMD_SET             = set
string   CMD_CONFIGURE       = configure
string   CMD_REBOOT          = reboot
string   CMD_RESET           = reset
string   CMD_CALIBRATE       = calibrate
string   CMD_CLEAR_CALIBRATION = clear_calibration
string   CMD_PREPARE_TO_GRIP = prepare_to_grip
string   CMD_GRIP            = grip
string   CMD_RELEASE         = release
string   CMD_GO              = go
string   CMD_STOP            = stop
#
string args     # JSON arguments to the command
#
string sender   # optional identifier, returned in state when the command is handled
uint32 sequence # optional sequence number, return in state when the command is handled
baxter_core_msgs/AnalogIOState
Field:
  • timestamp (time) –
  • value (float64) –
  • isInputOnly (bool) –
time timestamp
float64 value
bool isInputOnly
baxter_core_msgs/EndpointStates
Field:
string[] names
EndpointState[] states
baxter_core_msgs/EndEffectorState
Field:
  • timestamp (time) –
  • id (uint32) –
  • enabled (uint8) –
  • calibrated (uint8) –
  • ready (uint8) –
  • moving (uint8) –
  • gripping (uint8) –
  • missed (uint8) –
  • error (uint8) –
  • reverse (uint8) –
  • position (float32) –
  • force (float32) –
  • state (string) –
  • command (string) –
  • command_sender (string) –
  • command_sequence (uint32) –
Constant:
  • STATE_FALSE (uint8):0
  • STATE_TRUE (uint8):1
  • STATE_UNKNOWN (uint8):2
  • POSITION_CLOSED (float32):0.0
  • POSITION_OPEN (float32):100.0
  • FORCE_MIN (float32):0.0
  • FORCE_MAX (float32):100.0
#
time timestamp              # time when state was updated
uint32 id                   # EndEffectorId
#
# The following State fields are tristate: 0 = false; 1 = true; 2 = unknown/unsupported
  uint8   STATE_FALSE = 0
  uint8   STATE_TRUE = 1
  uint8   STATE_UNKNOWN = 2
#
uint8   enabled             # true if enabled
uint8   calibrated          # true if calibration has completed
uint8   ready               # true if ready for another command
uint8   moving              # true if moving
uint8   gripping            # true if gripping
uint8   missed              # true if GRIP/GOTO/SET was commanded and the gripper reaches the end of travel
uint8   error               # true if the gripper is in an error state
uint8   reverse             # true if the gripper is in reverse mode
#
float32 position            # position as a percentage of the max position;      0=closed - 100=open
#
  float32 POSITION_CLOSED = 0.0
  float32 POSITION_OPEN   = 100.0
#
float32 force               # force as a percentage of max force;                0=none   - 100=max
#
  float32 FORCE_MIN = 0.0
  float32 FORCE_MAX = 100.0
#
string state                # JSON: other state information
#
string command              # from the last command message
string command_sender
uint32 command_sequence
#
baxter_core_msgs/HeadState
Field:
  • pan (float32) –
  • isTurning (bool) –
  • isNodding (bool) –
  • isPanEnabled (bool) –
float32 pan
bool isTurning
bool isNodding
bool isPanEnabled
baxter_core_msgs/HeadPanCommand
Field:
  • target (float32) –
  • speed_ratio (float32) –
  • enable_pan_request (uint8) –
Constant:
  • MAX_SPEED_RATIO (float32):1.0
  • MIN_SPEED_RATIO (float32):0.0
  • REQUEST_PAN_DISABLE (uint8):0
  • REQUEST_PAN_ENABLE (uint8):1
  • REQUEST_PAN_VOID (uint8):2
float32 target              # radians for target, 0 str
float32 speed_ratio         # Percentage of max speed [0-1]
#
  float32 MAX_SPEED_RATIO = 1.0
  float32 MIN_SPEED_RATIO = 0.0
#
uint8   enable_pan_request  # override automatic pan enable/disable
# enable_pan_request is tristate: 0 = disable pan; 1 = enable pan; 2 = don't change pan
  uint8   REQUEST_PAN_DISABLE = 0
  uint8   REQUEST_PAN_ENABLE = 1
  uint8   REQUEST_PAN_VOID = 2
#
baxter_core_msgs/CameraControl
Field:
  • id (int32) –
  • value (int32) –
Constant:
  • CAMERA_CONTROL_EXPOSURE (int32):100
  • CAMERA_CONTROL_GAIN (int32):101
  • CAMERA_CONTROL_WHITE_BALANCE_R (int32):102
  • CAMERA_CONTROL_WHITE_BALANCE_G (int32):103
  • CAMERA_CONTROL_WHITE_BALANCE_B (int32):104
  • CAMERA_CONTROL_WINDOW_X (int32):105
  • CAMERA_CONTROL_WINDOW_Y (int32):106
  • CAMERA_CONTROL_FLIP (int32):107
  • CAMERA_CONTROL_MIRROR (int32):108
  • CAMERA_CONTROL_RESOLUTION_HALF (int32):109
int32   id
int32   value

int32 CAMERA_CONTROL_EXPOSURE=100
int32 CAMERA_CONTROL_GAIN=101
int32 CAMERA_CONTROL_WHITE_BALANCE_R=102
int32 CAMERA_CONTROL_WHITE_BALANCE_G=103
int32 CAMERA_CONTROL_WHITE_BALANCE_B=104
int32 CAMERA_CONTROL_WINDOW_X=105
int32 CAMERA_CONTROL_WINDOW_Y=106
int32 CAMERA_CONTROL_FLIP=107
int32 CAMERA_CONTROL_MIRROR=108
int32 CAMERA_CONTROL_RESOLUTION_HALF=109
baxter_core_msgs/CollisionAvoidanceState
Field:
  • header (std_msgs/Header) –
  • other_arm (bool) –
  • collision_object[] (string) –
std_msgs/Header header
bool other_arm
string[] collision_object
baxter_core_msgs/AnalogIOStates
Field:
string[]         names
AnalogIOState[] states
baxter_core_msgs/EndEffectorProperties
Field:
  • id (uint32) –
  • ui_type (uint8) –
  • manufacturer (string) –
  • product (string) –
  • serial_number (string) –
  • hardware_rev (string) –
  • firmware_rev (string) –
  • firmware_date (string) –
  • has_calibration (bool) –
  • controls_grip (bool) –
  • senses_grip (bool) –
  • reverses_grip (bool) –
  • controls_force (bool) –
  • senses_force (bool) –
  • controls_position (bool) –
  • senses_position (bool) –
  • properties (string) –
Constant:
  • NO_GRIPPER (uint8):0
  • SUCTION_CUP_GRIPPER (uint8):1
  • ELECTRIC_GRIPPER (uint8):2
  • PASSIVE_GRIPPER (uint8):3
uint32 id               # EndEffectorId
uint8  ui_type
    # End Effector type enumeration, for the UI:
    uint8  NO_GRIPPER = 0
    uint8  SUCTION_CUP_GRIPPER = 1
    uint8  ELECTRIC_GRIPPER = 2
    uint8  PASSIVE_GRIPPER = 3
string manufacturer     # Manufacturer name
string product          # Product name
string serial_number    # Serial number, optional
string hardware_rev     # Hardware revision, optional
string firmware_rev     # Firmware revision, optional
string firmware_date    # Firmware date, optional
#
# End Effector Capabilities
bool   has_calibration  # true if the gripper has calibration
bool   controls_grip    # true if the gripper has grip/release control
bool   senses_grip      # true if the gripper has grip sense
bool   reverses_grip    # true if the gripper has reverse-grip mode

bool   controls_force   # true if the gripper has force control
bool   senses_force     # true if the gripper has force sense

bool   controls_position # true if the gripper has position control
bool   senses_position   # true if the gripper has position sense
#
string properties       # JSON; other properties
baxter_core_msgs/URDFConfiguration
Field:
  • time (time) –
  • link (string) –
  • joint (string) –
  • urdf (string) –

# URDF Configuration

## URDF Configuration
time time      # time the message was created, serves as a sequence number
               # time should be changed only when the content changes.
string link    # parent link name
string joint   # joint to configure
               # link + joint + time uniquely identifies a configuration.
string urdf    # XML or JSON-encoded URDF data.  This should be a URDF fragment
               # describing the entire subtree for the given joint attached
               # to the given parent link. If this field is empty the joint
               # is removed from the parent link.
baxter_core_msgs/NavigatorStates
Field:

used when publishing multiple navigators

# used when publishing multiple navigators
string[]         names
NavigatorState[] states
baxter_core_msgs/EndpointState
Field:
Header header
geometry_msgs/Pose   pose
geometry_msgs/Twist  twist
geometry_msgs/Wrench wrench
baxter_core_msgs/AnalogOutputCommand
Field:
  • name (string) –
  • value (uint16) –

#the name of the output

##the name of the output
string name  
##the value to set output 
uint16 value   
baxter_core_msgs/AssemblyState
Field:
  • ready (bool) –
  • enabled (bool) –
  • stopped (bool) –
  • error (bool) –
  • estop_button (uint8) –
  • estop_source (uint8) –
Constant:
  • ESTOP_BUTTON_UNPRESSED (uint8):0
  • ESTOP_BUTTON_PRESSED (uint8):1
  • ESTOP_BUTTON_UNKNOWN (uint8):2
  • ESTOP_BUTTON_RELEASED (uint8):3
  • ESTOP_SOURCE_NONE (uint8):0
  • ESTOP_SOURCE_USER (uint8):1
  • ESTOP_SOURCE_UNKNOWN (uint8):2
  • ESTOP_SOURCE_FAULT (uint8):3
  • ESTOP_SOURCE_BRAIN (uint8):4
bool ready               # true if enabled and ready to operate, e.g., not homing
bool enabled             # true if enabled
bool stopped             # true if stopped -- e-stop asserted
bool error               # true if a component of the assembly has an error
#
# The following are specific to the robot top-level assembly:
uint8  estop_button      # One of the following:
  uint8   ESTOP_BUTTON_UNPRESSED = 0   # Robot is not stopped and button is not pressed
  uint8   ESTOP_BUTTON_PRESSED   = 1
  uint8   ESTOP_BUTTON_UNKNOWN   = 2   # STATE_UNKNOWN when estop was asserted by a non-user source
  uint8   ESTOP_BUTTON_RELEASED  = 3   # Was pressed, is now known to be released, but robot is still stopped.
#
uint8  estop_source      # If stopped is true, the source of the e-stop.  One of the following:
  uint8  ESTOP_SOURCE_NONE      = 0   # e-stop is not asserted
  uint8  ESTOP_SOURCE_USER      = 1   # e-stop source is user input (the red button)
  uint8  ESTOP_SOURCE_UNKNOWN   = 2   # e-stop source is unknown
  uint8  ESTOP_SOURCE_FAULT     = 3   # MotorController asserted e-stop in response to a joint fault
  uint8  ESTOP_SOURCE_BRAIN     = 4   # MotorController asserted e-stop in response to a lapse of the brain heartbeat
baxter_core_msgs/CameraSettings
Field:
int32           width
int32           height
float32         fps
CameraControl[] controls
baxter_core_msgs/RobustControllerStatus
Field:
  • isEnabled (bool) –
  • complete (int32) –
  • controlUid (string) –
  • timedOut (bool) –
  • errorCodes[] (string) –
  • labels[] (string) –
Constant:
  • NOT_COMPLETE (int32):0
  • COMPLETE_W_FAILURE (int32):1
  • COMPLETE_W_SUCCESS (int32):2

True if the RC is enabled and running, false if not.

# True if the RC is enabled and running, false if not.
bool isEnabled

# The state of the RC with respect to its completion goal.  One of
# NOT_COMPLETE, COMPLETE_W_FAILURE, or COMPLETE_W_SUCCESS
int32 complete
int32 NOT_COMPLETE = 0
int32 COMPLETE_W_FAILURE = 1
int32 COMPLETE_W_SUCCESS = 2

# Identifies the sender of the Enable message that the RC is using for its
# commands.  This should correspond to the "uid" field of a recently published
# RC *Enable message.
string controlUid

# Set to true when the RC self-disables as a result of too much time elapsing
# without receiving an Enable message.
bool timedOut

# A list of relevant error codes.  Error codes are defined by the individual
# robust controllers, consult a robust controller's documentation to see what
# error codes it generates.
string[] errorCodes

# A list of current labels for the RC's current state. For example, "fastapproach",
# "slowapproach", etc. Used primarily for the blended RCs, other RCs can leave this
# blank. This will probably contains just one label, but it could contain multiple labels
# in the future.
string[] labels
baxter_core_msgs/CollisionDetectionState
Field:
std_msgs/Header header
bool collision_state
baxter_core_msgs/AssemblyStates
Field:
string[] names
AssemblyState[] states
baxter_core_msgs/SEAJointState
Field:
  • header (std_msgs/Header) –
  • name[] (string) –
  • commanded_position[] (float64) –
  • commanded_velocity[] (float64) –
  • commanded_acceleration[] (float64) –
  • commanded_effort[] (float64) –
  • actual_position[] (float64) –
  • actual_velocity[] (float64) –
  • actual_effort[] (float64) –
  • gravity_model_effort[] (float64) –
  • gravity_only[] (float64) –
  • hysteresis_model_effort[] (float64) –
  • crosstalk_model_effort[] (float64) –
  • hystState (float64) –

This is a message that holds data to describe the state of a set of torque controlled joints.

The state of each joint (revolute or prismatic) is defined by:
  • the position of the joint (rad or m),
  • the velocity of the joint (rad/s or m/s) and
  • the effort that is applied in the joint (Nm or N).

Each joint is uniquely identified by its name The header specifies the time at which the joint states were recorded. All the joint states in one message have to be recorded at the same time.

This message consists of a multiple arrays, one for each part of the joint state. The goal is to make each of the fields optional. When e.g. your joints have no effort associated with them, you can leave the effort array empty.

All arrays in this message should have the same size, or be empty. This is the only way to uniquely associate the joint name with the correct states.

# This is a message that holds data to describe the state of a set of torque controlled joints.
#
# The state of each joint (revolute or prismatic) is defined by:
#  * the position of the joint (rad or m),
#  * the velocity of the joint (rad/s or m/s) and
#  * the effort that is applied in the joint (Nm or N).
#
# Each joint is uniquely identified by its name
# The header specifies the time at which the joint states were recorded. All the joint states
# in one message have to be recorded at the same time.
#
# This message consists of a multiple arrays, one for each part of the joint state.
# The goal is to make each of the fields optional. When e.g. your joints have no
# effort associated with them, you can leave the effort array empty.
#
# All arrays in this message should have the same size, or be empty.
# This is the only way to uniquely associate the joint name with the correct
# states.


Header header

string[]  name
float64[] commanded_position
float64[] commanded_velocity
float64[] commanded_acceleration
float64[] commanded_effort
float64[] actual_position
float64[] actual_velocity
float64[] actual_effort
# This includes the inertial feed forward torques when applicable.
float64[] gravity_model_effort
# This is the torque required to hold the arm against gravity returned by KDL
# if the arm was stationary.  This does not include inertial feed forward
# torques (even when we have them) or any of the corrections (i.e. spring
# hysteresis, crosstalk, etc) we make to the KDL model.
float64[] gravity_only
float64[] hysteresis_model_effort
float64[] crosstalk_model_effort
float64   hystState
baxter_core_msgs/DigitalOutputCommand
Field:
  • name (string) –
  • value (bool) –

#the name of the output

##the name of the output
string name  
##the value to set output 
bool value   
baxter_core_msgs/NavigatorState
Field:
  • button_names[] (string) –
  • buttons[] (bool) –
  • wheel (uint8) –
  • light_names[] (string) –
  • lights[] (bool) –

buttons

# buttons
string[] button_names
bool[] buttons

# wheel position
uint8   wheel

# true if the light is on, false if not
# lights map to button names
string[] light_names
bool[] lights
baxter_core_msgs/DigitalIOStates
Field:
string[]         names
DigitalIOState[] states

Service types

baxter_core_msgs/SolvePositionIK
Field (Request):
 
Constant (Request):
 
  • SEED_AUTO (uint8):0
  • SEED_USER (uint8):1
  • SEED_CURRENT (uint8):2
  • SEED_NS_MAP (uint8):3
Field (Response):
 
Constant (Response):
 
  • RESULT_INVALID (uint8):0

Endpoint Pose(s) to request Inverse-Kinematics joint solutions for.

# Endpoint Pose(s) to request Inverse-Kinematics joint solutions for.
geometry_msgs/PoseStamped[] pose_stamp

# (optional) Joint Angle Seed(s) for IK solver.
# * specify a JointState seed for each pose_stamp, using name[] and position[]
# * empty arrays or a non-default seed_mode will cause user seed to not be used
sensor_msgs/JointState[] seed_angles

# Seed Type Mode
# * default (SEED_AUTO) mode: iterate through seed types until first valid
#                             solution is found
# * setting any other mode:   try only that seed type
uint8 SEED_AUTO    = 0
uint8 SEED_USER    = 1
uint8 SEED_CURRENT = 2
uint8 SEED_NS_MAP  = 3

uint8 seed_mode
---
# joints[i]      == joint angle solution for each pose_state[i]
sensor_msgs/JointState[] joints

# NOTE: isValid will be deprecated by result_type in future versions
bool[] isValid

# result_type[i] == seed type used to find valid solution, joints[i];
# otherwise,     == RESULT_INVALID (no valid solution found).
uint8 RESULT_INVALID = 0
uint8[] result_type
baxter_core_msgs/OpenCamera
Field (Request):
 
Field (Response):
 
  • err (int32) –
string          name
CameraSettings  settings
---
int32           err
baxter_core_msgs/CloseCamera
Field (Request):
 
  • name (string) –
Field (Response):
 
  • err (int32) –
string          name
---
int32           err
baxter_core_msgs/ListCameras
Field (Response):
 
  • cameras[] (string) –
---
string[]    cameras