ROS 2 Topic Reference
Complete reference of all ROS 2 topics published and subscribed by the rbq_driver node.
- Pub — robot publishes, your node subscribes
- Sub — your node publishes, robot subscribes
Custom message types (rbq_msgs/*) require sourcing the workspace:
source ros2/install/setup.bashMotion Commands
/rbq/motion/autoStart
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Full initialization sequence: CAN check → Find Home → Control Start. Robot must be in the correct initial pose. Monitor progress via /rbq/status/robot_status (can_check, find_home, con_start flags). |
/rbq/motion/canCheck
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Verify CAN communication with all motor controllers. Result reflected in robot_status.can_check. |
/rbq/motion/findHome
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Run encoder homing for all joints. Result reflected in robot_status.find_home. |
/rbq/motion/switchGait
| Field | Value |
|---|---|
| Type | std_msgs/Int8 |
| Direction | Sub |
| Description | Switch to the target gait by gait_id. See Gait State Reference below. |
/rbq/motion/switchControlMode
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | true → HighLevel Command mode (accepts /rbq/motion/cmd_highLevel). false → Joystick mode (default). |
/rbq/motion/emergency
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Immediately set all joints to high-damping mode. Robot collapses instantly. Sit the robot down first if testing. |
/rbq/motion/recoveryFlex
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Recovery from Fall mode. Executes specific joint movements to return to sitting posture. Only accepted in Fall mode (gait_id: -2). |
/rbq/motion/recoveryErrorClear
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Clear recoverable error flags without executing a full recovery motion. |
/rbq/motion/staticLock
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Lock all joints at the current position using position control. |
/rbq/motion/staticReady
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Transition to the ready posture using static position control (no dynamic balance). |
/rbq/motion/staticGround
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Transition to the ground/sitting posture using static position control. |
/rbq/motion/docking
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Sub |
| Description | Start auto-docking sequence with default options (wave gait + blind). Robot must be in Standing mode and the rear camera must see the ArUco marker (≤ 5 m). Monitor via robot_status.docking_state. |
/rbq/motion/docking_mode
| Field | Value |
|---|---|
| Type | std_msgs/Int8MultiArray |
| Direction | Sub |
| Description | Start auto-docking with explicit options. data[0]: walk mode — 0 = wave (default), 1 = trot. data[1]: vision mode — 0 = blind (default), 1 = vision height feedback (trot only). |
/rbq/motion/setBodyHeight
| Field | Value |
|---|---|
| Type | std_msgs/Char |
| Direction | Sub |
| Description | Adjust body height offset. Value 0–255 maps to [-0.15, +0.05] m from default. |
/rbq/motion/setFootHeight
| Field | Value |
|---|---|
| Type | std_msgs/Char |
| Direction | Sub |
| Description | Adjust swing foot lift height. Value 0–255 maps to [-0.06, +0.04] m from default. |
/rbq/motion/setMaxSpeed
| Field | Value |
|---|---|
| Type | std_msgs/Char |
| Direction | Sub |
| Description | Adjust the maximum walking speed scale. Value range: 0–255. |
/rbq/motion/additional_payload_params
| Field | Value |
|---|---|
| Type | std_msgs/Float64MultiArray |
| Direction | Sub |
| Description | Set external payload parameters for CoM compensation. data: [mass_kg, com_x, com_y, com_z] (meters). Used when carrying additional loads. |
Gait State Reference
gait_id | Name | Description |
|---|---|---|
-3 | Fall Recovery | Automatically triggered after fall detection |
-2 | Fall Mode | Triggered by unexpected loss of balance |
-1 | Control Off | All actuators disabled |
0 | Sitting | Low posture, resting on ground |
1 | Standing | Neutral posture, ready to walk |
2 | Aim Mode | Aiming posture for targeting |
3 | Walk (Trot) | MPC trot gait |
4 | Stairs | Stair-adaptive gait (uses camera) |
5 | Wave | Slow walking gait |
6 | Run | High-speed gait |
7 | Door Opening | Front leg door-push motion |
8 | ZMP Initializing | ZMP calibration in progress |
9 | Manipulation | Arm manipulation mode |
10 | Docking | Automatic charging station docking |
30 | RL Trot | Reinforcement Learning trot |
31 | RL Front Walk | RL forward walking |
32 | RL Hind Walk | RL backward walking |
33 | RL Left Walk | RL left-side walking |
34 | RL Right Walk | RL right-biased walk |
35 | RL Bound | RL bounding gait |
36 | RL Pace | RL pace gait |
37 | RL Pronk | RL pronk gait |
38–41 | RL 3-Leg | RL 3-legged gaits (HR, HL, FR, FL) |
42 | RL Trot Vision | RL trot with vision integration |
45 | RL Trot Run | RL high-speed trot |
46 | RL Silent | RL silent gait |
48 | RL Walk Vision | RL walk with terrain height feedback (height/pitch adjustable) |
49 | RL Walk | RL walk (height/pitch adjustable) |

Commands available per gait state:
The second column shows commands available only in that state. Common commands and power control are always available regardless of gait state.
| Gait State | Mode-Specific Commands | Common Commands | Power Control |
|---|---|---|---|
| Control Off | rbq/motion/autoStart | rbq/powerControl/setPortState | |
| Sitting | rbq/motion/canCheck | rbq/motion/switchGaitrbq/motion/cmd_highLevelrbq/motion/emergencyrbq/motion/staticLockrbq/motion/staticReadyrbq/motion/staticGroundrbq/motion/switchControlMode | |
| Standing | rbq/motion/cmd_navigateTorbq/stateEstimation/comEstimationCompensationrbq/motion/dockingrbq/motion/docking_mode | ||
| Walk / Stairs / Run / RL | — | ||
| Wave | rbq/motion/cmd_navigateTo | ||
| Fall Mode | rbq/motion/recoveryFlexrbq/motion/switchGait (gait_id: 1) | ||
High-Level Control
/rbq/motion/cmd_highLevel
| Field | Value |
|---|---|
| Type | rbq_msgs/HighLevelCommand |
| Direction | Sub |
| Description | Velocity and posture command. Behavior and valid ranges depend on the current gait. Requires HighLevel mode (switchControlMode: true). |
Fields:
| Field | Type | Unit | Description |
|---|---|---|---|
header | std_msgs/Header | — | ROS header with timestamp |
identifier | string | — | Optional label for logging/tracking |
roll | float64 | deg | Body roll. Standing [-25, +25] |
pitch | float64 | deg | Body pitch. Standing [-20, +20], Walk (body tilt angle), RL Walk [-25, +25] |
yaw | float64 | deg | Body yaw twist. Standing [-25, +25] |
vel_x | float64 | m/s | Forward speed. Walk [-1.0, +1.2] / Run [-1.0, +1.8] / RL Trot [-1.5, +2.0] / RL Walk [-1.5, +2.5] / Stairs [-1.0, +1.0] |
vel_y | float64 | m/s | Lateral speed. Walk [-0.4, +0.4] / Run [-0.6, +0.6] / RL Trot [-1.0, +1.0] / RL Walk [-1.0, +1.0] / Stairs [-0.4, +0.4] |
omega_z | float64 | deg/s | Yaw rate. Walk [-75, +75] / Stairs [-17, +17] / Wave [-20, +20] / RL Walk [-86, +86] |
delta_body_h | float64 | m | Body height offset from default. Standing/Walk [-0.15, +0.05] / RL Walk [-0.25, +0.10] |
delta_foot_h | float64 | m | Swing foot lift offset. [-0.06, +0.04] |
gait_state | int8 | — | Target gait ID (see Gait State Reference) |
gait_transition | bool | — | true = transition to gait_state first, then apply command |
Example commands:
# Walk forward at 0.5 m/s (gait_id: 3 = TROTTING)
ros2 topic pub --once /rbq/motion/cmd_highLevel rbq_msgs/msg/HighLevelCommand \
'{header: {stamp: {sec: 0, nanosec: 0}, frame_id: "base"},
identifier: "walk_fwd", roll: 0.0, pitch: 0.0, yaw: 0.0,
vel_x: 0.5, vel_y: 0.0, omega_z: 0.0,
delta_body_h: 0.0, delta_foot_h: 0.0,
gait_state: 3, gait_transition: false}'
# Rotate in place at 30°/s
ros2 topic pub --once /rbq/motion/cmd_highLevel rbq_msgs/msg/HighLevelCommand \
'{header: {stamp: {sec: 0, nanosec: 0}, frame_id: "base"},
identifier: "turn", roll: 0.0, pitch: 0.0, yaw: 0.0,
vel_x: 0.0, vel_y: 0.0, omega_z: 30.0,
delta_body_h: 0.0, delta_foot_h: 0.0,
gait_state: 3, gait_transition: false}'
# Stop (zero velocity)
ros2 topic pub --once /rbq/motion/cmd_highLevel rbq_msgs/msg/HighLevelCommand \
'{header: {stamp: {sec: 0, nanosec: 0}, frame_id: "base"},
identifier: "stop", roll: 0.0, pitch: 0.0, yaw: 0.0,
vel_x: 0.0, vel_y: 0.0, omega_z: 0.0,
delta_body_h: 0.0, delta_foot_h: 0.0,
gait_state: 3, gait_transition: false}'
# Custom standing posture (roll: 15°, pitch: 30°, yaw: 20°)
ros2 topic pub --once /rbq/motion/cmd_highLevel rbq_msgs/msg/HighLevelCommand \
'{header: {stamp: {sec: 0, nanosec: 0}, frame_id: "base"},
identifier: "standing_pose", roll: 15.0, pitch: 30.0, yaw: 20.0,
vel_x: 0.0, vel_y: 0.0, omega_z: 0.0,
delta_body_h: 0.0, delta_foot_h: 0.0,
gait_state: 1, gait_transition: true}'/rbq/motion/cmd_navigateTo
| Field | Value |
|---|---|
| Type | geometry_msgs/PoseStamped |
| Direction | Sub |
| Description | Move to an absolute world-frame pose. pose.position sets the target (x, y) in meters. pose.orientation sets the target yaw as a quaternion. Available in Standing and Wave modes. |
/rbq/stateEstimation/comEstimationCompensation
| Field | Value |
|---|---|
| Type | std_msgs/Char |
| Direction | Sub |
| Description | Trigger CoM calibration in Standing mode. Searches along the X-axis to improve walking stability. Call after stand() before walking. |
Robot Status
/rbq/status/robot_status
| Field | Value |
|---|---|
| Type | rbq_msgs/RobotStatus |
| Direction | Pub |
| Hz | 50 |
| Description | Overall robot status flags, gait state, and docking progress. |
Fields:
| Field | Type | Description |
|---|---|---|
header | std_msgs/Header | ROS header |
con_start | bool | Motor control enabled |
ready_pos | bool | Robot is in ready position |
ground_pos | bool | Robot is in ground/sitting position |
force_con | bool | Force control mode active |
ext_joy | bool | External joystick connected |
is_standing | bool | Robot is physically standing |
can_check | bool | CAN communication verified |
find_home | bool | Encoder homing complete |
gait_id | int8 | Current gait (see Gait State Reference) |
is_fall | bool | Fall detected |
docking_state | int8 | Docking progress (see table below) |
imu_success | bool | IMU connected and operational |
Docking State Values:
| Value | Constant | Description |
|---|---|---|
-6 | DOCKING_MAX_FAIL_CNT_REACHED | Max retry count (10×) reached — aborted |
-5 | DOCKING_MARKER_POS_INVALID_ROTATION | Marker rotation > ±40° — aborted |
-4 | DOCKING_MARKER_POS_INVALID_TOO_FAR | Marker > 5 m — aborted |
-3 | DOCKING_MARKER_POS_INVALID_WRONG_DIR | Marker detected on front side — aborted |
-2 | DOCKING_MARKER_NOT_FOUND | Marker not found — aborted |
-1 | DOCKING_FAILED | Docking failed — auto retry |
0 | DOCKING_OPERATION_MODE | Normal operation (not docking) |
1 | DOCKING_APPROACH_OFFSET | Stage 1: offset approach |
2 | DOCKING_APPROACH | Stage 2: direct approach |
3 | DOCKING_APPROACH_WIDE | Stage 3: wide-stance approach |
4 | DOCKING_SIT_DOWN | Sitting down to connect |
5 | DOCKING_SUCCESS | Docked — charger physically connected |
6 | DOCKING_SUCCESS_CHARGING | Docked and charging |
7 | DOCKING_SUCCESS_NO_CHARGING | Docked but not charging |
/rbq/status/comm_connected
| Field | Value |
|---|---|
| Type | std_msgs/Bool |
| Direction | Pub |
| Description | true when the communication module is connected to the robot. |
State Estimation
/rbq/stateEstimation/odometry
| Field | Value |
|---|---|
| Type | nav_msgs/Odometry |
| Direction | Pub |
| Hz | 50 |
| Description | Body pose and velocity in the world frame. Origin resets at driver start. Fused from IMU and leg odometry. |
/rbq/stateEstimation/robotVelocity
| Field | Value |
|---|---|
| Type | geometry_msgs/VelocityStamped |
| Direction | Pub |
| Hz | 50 |
| Description | Linear and angular velocity expressed in the body frame. +X = forward, +Y = left, +Z = up. |
/rbq/stateEstimation/footStates
| Field | Value |
|---|---|
| Type | rbq_msgs/FootStates |
| Direction | Pub |
| Hz | 50 |
| Description | Foot positions, velocities, and contact states for all 4 legs relative to the body center frame. |
Fields:
| Field | Type | Description |
|---|---|---|
header | std_msgs/Header | ROS header |
foot_position_rt_body[] | geometry_msgs/Point[4] | Foot position relative to body center. +X=forward, +Y=left, +Z=up |
foot_velocity_rt_body[] | geometry_msgs/Point[4] | Foot velocity relative to body frame |
contact[] | uint8[4] | Contact state: 0=Unknown, 1=Contact, 2=Lost |
force[] | float64[4] | Estimated contact force [N] |
Leg order: [0] = Hind-Right, [1] = Hind-Left, [2] = Front-Right, [3] = Front-Left
Sensor Feedback
/rbq/imu/IMU_state
| Field | Value |
|---|---|
| Type | sensor_msgs/Imu |
| Direction | Pub |
| Hz | 200 |
| Description | Raw IMU data. Sensor offset from body center: (0.00665, 0.0, -0.0404) m. Frame: +X = forward, +Y = left, +Z = up. Angular velocity range ±2000 °/s, acceleration range ±16 g. |
/rbq/joint/joint_states
| Field | Value |
|---|---|
| Type | sensor_msgs/JointState |
| Direction | Pub |
| Hz | 50 |
| Description | Joint positions [rad], velocities [rad/s], and efforts [Nm] for all 12 joints in standard ROS format. |
/rbq/joint/joint_status
| Field | Value |
|---|---|
| Type | rbq_msgs/JointStatus |
| Direction | Pub |
| Hz | 50 |
| Description | Detailed per-joint status: connection, temperature, motor error flags, gains, and process ownership. All arrays have 12 elements. |
Joint order: [0]HRR [1]HRP [2]HRK [3]HLR [4]HLP [5]HLK [6]FRR [7]FRP [8]FRK [9]FLR [10]FLP [11]FLK
Fields:
| Field | Type | Unit | Description |
|---|---|---|---|
connected[] | bool[12] | — | CAN connection status |
temperature[] | int8[12] | °C | Control board temperature |
motor_temp[] | int8[12] | °C | Motor winding temperature |
status_fet | bool[12] | — | FET driver ON |
status_run | bool[12] | — | Control loop running |
status_init | bool[12] | — | Initialization complete |
status_jam | bool[12] | — | JAM error (joint blocked) |
status_cur | bool[12] | — | Over-current error |
status_big | bool[12] | — | Large position error |
status_tmp | bool[12] | — | Over-temperature error |
status_ps1 | bool[12] | — | Lower position limit reached |
status_ps2 | bool[12] | — | Upper position limit reached |
position_ref[] | float32[12] | rad | Reference (target) position |
position_enc[] | float32[12] | rad | Encoder (measured) position |
velocity[] | float32[12] | rad/s | Joint angular velocity |
torque_ref[] | float32[12] | Nm | Reference torque |
current[] | float32[12] | A | Motor current |
kp[] | float32[12] | Nm/rad | Position gain |
kd[] | float32[12] | Nm·s/rad | Damping gain |
owner[] | int32[12] | — | Process ID owning each joint |
Torque limits: Roll/Pitch ±104 Nm — Knee −70 / +140 Nm
Power Control
/rbq/powerControl/battery_status
| Field | Value |
|---|---|
| Type | rbq_msgs/BatteryState |
| Direction | Pub |
| Hz | 10 |
| Description | Battery voltage, current, charge percentage, temperatures, and status code. |
Fields:
| Field | Type | Description |
|---|---|---|
header | std_msgs/Header | ROS header |
identifier | string | Battery identifier string |
charge_percentage | float64 | State of charge [0.0, 100.0] % |
voltage | float64 | Pack voltage [V] |
current | float64 | Load current [A] (negative = discharging) |
temperatures[] | float64[] | Temperature sensor readings [°C] |
status | uint8 | 0=Unknown 1=Missing 2=Charging 3=Discharging 4=Booting |
/rbq/powerControl/setPortState
| Field | Value |
|---|---|
| Type | std_msgs/Int8MultiArray |
| Direction | Sub |
| Description | Toggle a PDU power port. data: [port_id, state] — state: 1=ON, 0=OFF. |
Port ID Reference:
port_id | Port |
|---|---|
0 (0x00) | 48 V — Leg actuators |
1 (0x01) | 48 V — Add-on device (top) |
2 (0x02) | 48 V — External port (top) |
16 (0x10) | 12 V — Vision PC (internal) |
17 (0x11) | 12 V — LAN comm port (top) |
18 (0x12) | 12 V — LiDAR port (top) |
19 (0x13) | 12 V — CCTV port (top) |
20 (0x14) | 12 V — Thermal cam port (top) |
21 (0x15) | 12 V — IR LED (front/rear panel) |
22 (0x16) | 12 V — Speaker amplifier |
32 (0x20) | 5 V — Camera USB hub |
33 (0x21) | 5 V — Audio / side-cam USB hub |
// PDU port ID enum (used as data[0] in setPortState)
enum PDU_PORT_IDs_e : unsigned char {
PDU_PORT_48V_LEG = 0x00, // Leg actuators
PDU_PORT_48V_ADD = 0x01, // Add-on device
PDU_PORT_48V_EXT = 0x02, // External port
PDU_PORT_12V_VisionPC = 0x10, // Vision PC
PDU_PORT_12V_COMM = 0x11, // LAN comm port
PDU_PORT_12V_Lidar = 0x12, // LiDAR port
PDU_PORT_12V_CCTV = 0x13, // CCTV port
PDU_PORT_12V_THER = 0x14, // Thermal camera
PDU_PORT_12V_IRLed = 0x15, // IR LED
PDU_PORT_12V_Speaker = 0x16, // Speaker amplifier
PDU_PORT_5V_CAMERAS = 0x20, // Camera USB hub
PDU_PORT_5V_AUDIO_SIDE_CAM_USBHUB = 0x21, // Audio/side-cam USB hub
};Example: turn on 12V LiDAR port (PDU_PORT_12V_Lidar = 0x12 → decimal 18)
ros2 topic pub --once /rbq/powerControl/setPortState std_msgs/msg/Int8MultiArray "{data: [18, 1]}"Vision — Camera Sensors
All camera topics are published by the robot (Pub). Each sensor provides raw images, compressed images, and calibration info.
Bottom Cameras — sensor_bottom_{N} (N = 0, 1, 2, 3)
Four downward-facing depth sensors mounted under the robot body.
| Field | Value |
|---|---|
| Type | sensor_msgs/Image · sensor_msgs/CompressedImage · sensor_msgs/CameraInfo |
| Direction | Pub |
| Description | Depth and IR streams from each bottom sensor. Replace {N} with 0–3. |
| Topic | Type | Description |
|---|---|---|
/rbq/vision/sensor_bottom_{N}/depth | sensor_msgs/Image | Raw 16-bit depth image (mm, 16UC1) |
/rbq/vision/sensor_bottom_{N}/depth/compressed | sensor_msgs/CompressedImage | Compressed depth |
/rbq/vision/sensor_bottom_{N}/depth/camera_info | sensor_msgs/CameraInfo | Depth intrinsics + distortion |
/rbq/vision/sensor_bottom_{N}/ir | sensor_msgs/Image | Raw IR image |
/rbq/vision/sensor_bottom_{N}/ir/compressed | sensor_msgs/CompressedImage | Compressed IR |
/rbq/vision/sensor_bottom_{N}/ir/camera_info | sensor_msgs/CameraInfo | IR intrinsics + distortion |
Front Camera — sensor_front
| Field | Value |
|---|---|
| Type | sensor_msgs/Image · sensor_msgs/CompressedImage · sensor_msgs/CameraInfo |
| Direction | Pub |
| Description | RGB, IR, and Depth streams from the front-facing RGB-D sensor. |
| Topic | Type | Description |
|---|---|---|
/rbq/vision/sensor_front/rgb | sensor_msgs/Image | Raw RGB image |
/rbq/vision/sensor_front/rgb/compressed | sensor_msgs/CompressedImage | Compressed RGB |
/rbq/vision/sensor_front/rgb/camera_info | sensor_msgs/CameraInfo | RGB intrinsics |
/rbq/vision/sensor_front/ir | sensor_msgs/Image | Raw IR image |
/rbq/vision/sensor_front/ir/compressed | sensor_msgs/CompressedImage | Compressed IR |
/rbq/vision/sensor_front/ir/camera_info | sensor_msgs/CameraInfo | IR intrinsics |
/rbq/vision/sensor_front/depth | sensor_msgs/Image | Raw 16-bit depth image |
/rbq/vision/sensor_front/depth/compressed | sensor_msgs/CompressedImage | Compressed depth |
/rbq/vision/sensor_front/depth/camera_info | sensor_msgs/CameraInfo | Depth intrinsics |
Rear Camera — sensor_rear
| Field | Value |
|---|---|
| Type | sensor_msgs/Image · sensor_msgs/CompressedImage · sensor_msgs/CameraInfo |
| Direction | Pub |
| Description | RGB, IR, and Depth streams from the rear-facing RGB-D sensor. Also used for ArUco marker detection during docking. |
| Topic | Type | Description |
|---|---|---|
/rbq/vision/sensor_rear/rgb | sensor_msgs/Image | Raw RGB image |
/rbq/vision/sensor_rear/rgb/compressed | sensor_msgs/CompressedImage | Compressed RGB |
/rbq/vision/sensor_rear/rgb/camera_info | sensor_msgs/CameraInfo | RGB intrinsics |
/rbq/vision/sensor_rear/ir | sensor_msgs/Image | Raw IR image |
/rbq/vision/sensor_rear/ir/compressed | sensor_msgs/CompressedImage | Compressed IR |
/rbq/vision/sensor_rear/ir/camera_info | sensor_msgs/CameraInfo | IR intrinsics |
/rbq/vision/sensor_rear/depth | sensor_msgs/Image | Raw 16-bit depth image |
/rbq/vision/sensor_rear/depth/compressed | sensor_msgs/CompressedImage | Compressed depth |
/rbq/vision/sensor_rear/depth/camera_info | sensor_msgs/CameraInfo | Depth intrinsics |
PTZ Camera
/rbq/ptzCamera/setPanTiltZoom
| Field | Value |
|---|---|
| Type | std_msgs/Float32MultiArray |
| Direction | Sub |
| Description | PTZ camera control. data: [pan, tilt, zoom]. Pan and Tilt in degrees. Zoom is a scale factor (1.0 = 1×). |
TF & Navigation
/tf
| Field | Value |
|---|---|
| Type | tf2_msgs/TFMessage |
| Direction | Pub |
| Description | Dynamic transforms broadcast at runtime: odom → base_link, body → leg links, body → sensor frames. |
/tf_static
| Field | Value |
|---|---|
| Type | tf2_msgs/TFMessage |
| Direction | Pub |
| Description | Static transforms from the URDF: fixed sensor mount offsets and rigid link relationships. Published once on startup. |
/joy
| Field | Value |
|---|---|
| Type | sensor_msgs/Joy |
| Direction | Sub |
| Description | Joystick input passthrough to the robot in Joystick mode. Axes [0–5]: left-X, left-Y, right-X, right-Y, L2, R2. Buttons [0–15]. |
Topic Subscription Examples
# Robot status (50 Hz)
ros2 topic echo --once /rbq/status/robot_status
# Joint status (50 Hz)
ros2 topic echo --once /rbq/joint/joint_status
# IMU data (200 Hz)
ros2 topic echo --once /rbq/imu/IMU_state
# Battery state (10 Hz)
ros2 topic echo --once /rbq/powerControl/battery_status
# Foot contact states (50 Hz)
ros2 topic echo --once /rbq/stateEstimation/footStates
# Odometry (50 Hz)
ros2 topic echo --once /rbq/stateEstimation/odometry