Gait & Status Reference
Complete reference for the gait IDs and the rbq_msgs/RobotStatus fields used across ROS 2 topics and SDK calls.
Gait State IDs
Set via /rbq/cmd/switch_gait (Sub) or the gait_state field of rbq_msgs/HighLevelCommand; the current value is reported on /rbq/robot_status → gait_id (Pub). Commands and status share one gait enum — every id below means the same thing whether you send it on HighLevelCommand.gait_state or read it back from robot_status.gait_id.
Standard gaits
Sent on HighLevelCommand.gait_state / switch_gait, and reported back unchanged on robot_status.gait_id.
| ID | Constant | Description |
|---|---|---|
-2 | STATE_FALL | Fall Mode — triggered upon unexpected loss of balance |
-1 | STATE_OFF | Control Off — all actuators disabled |
0 | STATE_SIT | Sitting — low posture, resting on the ground |
1 | STATE_STAND | Standing — neutral posture, ready to walk |
2 | STATE_AIM | Aim Mode — aiming posture for targeting |
3 | STATE_WALK | Walk Mode — walking trot gait |
4 | STATE_STAIRS | Stairs Mode — stair-adaptive gait using the camera sensor |
5 | STATE_WAVE | Wave Mode — walking wave gait |
6 | STATE_RUN | Run Mode — high-speed gait (if supported) |
RL-based gaits
RL gaits use learned locomotion policies (ONNX inference via RLWalk).
| ID | Constant | Description |
|---|---|---|
30 | STATE_RL_TROT | RL trot (standard learned gait) |
31 | STATE_RL_FRONT_WALK | RL forward walking |
33 | STATE_RL_LEFT_WALK | RL left-side walking |
34 | STATE_RL_RIGHT_WALK | RL right-side walking |
35 | STATE_RL_BOUND | RL bounding |
36 | STATE_RL_PACE | RL pace gait |
37 | STATE_RL_PRONK | RL pronking |
38 | STATE_RL_3LEG_HR | RL 3-leg: hind-right lifted |
39 | STATE_RL_3LEG_HL | RL 3-leg: hind-left lifted |
40 | STATE_RL_3LEG_FR | RL 3-leg: front-right lifted |
41 | STATE_RL_3LEG_FL | RL 3-leg: front-left lifted |
42 | STATE_RL_TROT_VISION | RL trot with vision-guided obstacle avoidance |
45 | STATE_RL_TROT_RUN | RL high-speed trot |
46 | STATE_RL_SILENT | RL silent (low-noise) gait |
47 | STATE_RL_STAIRS | RL stair gait |
RL gait availability
RL gaits require a loaded policy file and the RLWalk process to be running. Not all ids are available on every robot configuration.
Robot Status Fields (/rbq/robot_status)
Published as rbq_msgs/RobotStatus on /rbq/robot_status (Pub, ~500 Hz). Every entry below is a flat field of the message.
State flags (bool)
| ROS field | Meaning |
|---|---|
con_start | Motor control loop is running |
ready_pos | Robot reached ready position |
ground_pos | Robot is in ground/sit position |
force_con | Force control mode active |
ext_joy | External joystick input active |
is_standing | Robot is standing |
can_check | CAN communication verified with all joints |
find_home | Encoder homing complete on all joints |
Gait & docking
| ROS field | Type | Meaning |
|---|---|---|
gait_id | int8 | Current active gait (see Gait State IDs) |
docking_state | int8 | Docking sequence state (see the docking-state table in the Topic Reference) |
System flags (bool)
| ROS field | Meaning |
|---|---|
is_fall | Robot has detected a fall |
imu_success | IMU connected and data valid |
Typical initialization sequence
Monitor these flags after sending /rbq/cmd/auto_start:
can_check → true (CAN verified)
find_home → true (encoders homed)
con_start → true (control running)
gait_id → 0 (STATE_SIT, ready for commands)Once all three flags are true, the robot accepts gait and motion commands.
