Gait & Status Reference
Complete reference for gait IDs and robot status word bits used across ROS 2 topics and SDK calls.
Gait State IDs
Used by /rbq/motion/switchGait (Sub) and returned in /rbq/status/robot_status → gait_id (Pub).
Standard gaits
| ID | Name | Description |
|---|---|---|
-3 | FALL_RECOVERY | Recovering from a fall — triggered automatically |
-2 | FALL_MODE | Robot has fallen; awaiting recovery command |
-1 | CONTROL_OFF | Motor control disabled |
0 | SITTING | Sitting position (default after startup) |
1 | STANDING | Standing still, four legs on ground |
2 | AIMING | Aiming posture (arm or PTZ targeting) |
3 | TROTTING | Standard trot gait — main walking mode |
4 | TROT_STAIRS | Stair-climbing trot |
5 | WAVING | Wave motion (front leg gesture) |
6 | TROT_RUNNING | High-speed running trot |
7 | DOOR_OPENING | Door-push behavior with front leg |
8 | ZMP_INITIALIZING | ZMP balance calibration in progress |
9 | MANIPULATION | Arm manipulation mode |
10 | DOCKING | Auto-docking to charging station |
RL-based gaits
RL gaits use learned locomotion policies (ONNX inference via RLWalk).
| ID | Name | Description |
|---|---|---|
30 | RL_TROT | RL trot (standard learned gait) |
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-side walking |
35 | RL_BOUND | RL bounding |
36 | RL_PACE | RL pace gait |
37 | RL_PRONK | RL pronking |
38 | RL_3LEG_HR | RL 3-leg: hind-right lifted |
39 | RL_3LEG_HL | RL 3-leg: hind-left lifted |
40 | RL_3LEG_FR | RL 3-leg: front-right lifted |
41 | RL_3LEG_FL | RL 3-leg: front-left lifted |
42 | RL_TROT_VISION | RL trot with vision-guided obstacle avoidance |
43 | RL_WHEEL_TROT | RL wheeled trot |
44 | RL_WHEEL_TROT_VISION | RL wheeled trot with vision |
45 | RL_TROT_RUN | RL high-speed trot |
46 | RL_SILENT | RL silent (low-noise) gait |
47 | RL_TROT_VISION_SLOW | RL slow trot with vision |
48 | RL_WALK | RL walk |
53 | RL_TROT_SYMM | RL symmetric trot |
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 Word (STAT_WORD)
Published in /rbq/status/robot_status as individual boolean and integer fields.
Boolean flags (byte 0)
| Field | ROS field name | Meaning |
|---|---|---|
CON_START | con_start | Motion control loop is running |
READY_POS | ready_pos | Robot reached ready position |
GROUND_POS | ground_pos | Robot is in ground/sit position |
FORCE_CON | force_con | Force control mode active |
EXT_JOY | ext_joy | External joystick input active |
IS_STANDING | is_standing | Robot is standing (any standing gait) |
CAN_CHECK | can_check | CAN communication verified with all joints |
FIND_HOME | find_home | Encoder homing complete on all joints |
Integer fields (bytes 1–2)
| Field | ROS field name | Type | Meaning |
|---|---|---|---|
GAIT_ID | gait_id | int8 | Current active gait (see table above) |
DOCKING_STAT | docking_state | int8 | Docking sequence state |
Attachment flags (bytes 3–4)
| Bit | Meaning |
|---|---|
| 0 | Arm attached |
| 1 | RCWS attached |
| 2 | RCGS attached |
| 3 | CCTV camera 1 attached |
| 4 | Thermal camera attached |
| 5 | KCMVP module attached |
| 6 | Wi-Fi module attached |
| 7 | LTE module attached |
| 8 | PTZ camera attached |
System flags (byte 5)
| Field | ROS field name | Meaning |
|---|---|---|
IS_FALL | is_fall | Robot has detected a fall |
IMU_SUCCESS | imu_success | IMU data valid |
DQ_SUCCESS | dq_success | Joint encoder data valid |
KEY_MAPPING | key_mapping | Keyboard/joystick mapping active |
Manipulator Status Word (MANI_STAT_WORD)
Published in /rbq/status/robot_status under manipulator-specific fields (arm models only).
Boolean flags (byte 0)
| Field | Meaning |
|---|---|
CAN_CHECK | Arm CAN communication verified |
BRAKE_RELEASE | Joint brakes released |
CON_START | Arm control loop running |
IS_PACKING_POS | Arm in packed/folded position |
IS_READY_POS | Arm in ready position |
IS_HOME_POS | Arm at home position |
IS_STRAIGHT_POS | Arm fully extended |
Integer fields (bytes 1–2)
| Field | Meaning |
|---|---|
MOTION_CMD | Current arm motion command ID |
MISSION_TYPE | Current manipulation mission type |
Control flags (byte 3)
| Field | Meaning |
|---|---|
CHICKEN_HEAD | Head stabilization (camera gyro-lock) active |
MANUAL_CONTROL | Arm in manual joystick control mode |
LOCK_POSITION | Arm position locked (won't accept new targets) |
Typical initialization sequence
Monitor these flags after sending /rbq/motion/autoStart:
can_check → true (CAN verified)
find_home → true (encoders homed)
con_start → true (control running)
gait_id → 0 (SITTING, ready for commands)Once all three flags are true, the robot accepts gait and motion commands.
