Skip to content

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_statusgait_id (Pub).

Standard gaits

IDNameDescription
-3FALL_RECOVERYRecovering from a fall — triggered automatically
-2FALL_MODERobot has fallen; awaiting recovery command
-1CONTROL_OFFMotor control disabled
0SITTINGSitting position (default after startup)
1STANDINGStanding still, four legs on ground
2AIMINGAiming posture (arm or PTZ targeting)
3TROTTINGStandard trot gait — main walking mode
4TROT_STAIRSStair-climbing trot
5WAVINGWave motion (front leg gesture)
6TROT_RUNNINGHigh-speed running trot
7DOOR_OPENINGDoor-push behavior with front leg
8ZMP_INITIALIZINGZMP balance calibration in progress
9MANIPULATIONArm manipulation mode
10DOCKINGAuto-docking to charging station

RL-based gaits

RL gaits use learned locomotion policies (ONNX inference via RLWalk).

IDNameDescription
30RL_TROTRL trot (standard learned gait)
31RL_FRONT_WALKRL forward walking
32RL_HIND_WALKRL backward walking
33RL_LEFT_WALKRL left-side walking
34RL_RIGHT_WALKRL right-side walking
35RL_BOUNDRL bounding
36RL_PACERL pace gait
37RL_PRONKRL pronking
38RL_3LEG_HRRL 3-leg: hind-right lifted
39RL_3LEG_HLRL 3-leg: hind-left lifted
40RL_3LEG_FRRL 3-leg: front-right lifted
41RL_3LEG_FLRL 3-leg: front-left lifted
42RL_TROT_VISIONRL trot with vision-guided obstacle avoidance
43RL_WHEEL_TROTRL wheeled trot
44RL_WHEEL_TROT_VISIONRL wheeled trot with vision
45RL_TROT_RUNRL high-speed trot
46RL_SILENTRL silent (low-noise) gait
47RL_TROT_VISION_SLOWRL slow trot with vision
48RL_WALKRL walk
53RL_TROT_SYMMRL 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)

FieldROS field nameMeaning
CON_STARTcon_startMotion control loop is running
READY_POSready_posRobot reached ready position
GROUND_POSground_posRobot is in ground/sit position
FORCE_CONforce_conForce control mode active
EXT_JOYext_joyExternal joystick input active
IS_STANDINGis_standingRobot is standing (any standing gait)
CAN_CHECKcan_checkCAN communication verified with all joints
FIND_HOMEfind_homeEncoder homing complete on all joints

Integer fields (bytes 1–2)

FieldROS field nameTypeMeaning
GAIT_IDgait_idint8Current active gait (see table above)
DOCKING_STATdocking_stateint8Docking sequence state

Attachment flags (bytes 3–4)

BitMeaning
0Arm attached
1RCWS attached
2RCGS attached
3CCTV camera 1 attached
4Thermal camera attached
5KCMVP module attached
6Wi-Fi module attached
7LTE module attached
8PTZ camera attached

System flags (byte 5)

FieldROS field nameMeaning
IS_FALLis_fallRobot has detected a fall
IMU_SUCCESSimu_successIMU data valid
DQ_SUCCESSdq_successJoint encoder data valid
KEY_MAPPINGkey_mappingKeyboard/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)

FieldMeaning
CAN_CHECKArm CAN communication verified
BRAKE_RELEASEJoint brakes released
CON_STARTArm control loop running
IS_PACKING_POSArm in packed/folded position
IS_READY_POSArm in ready position
IS_HOME_POSArm at home position
IS_STRAIGHT_POSArm fully extended

Integer fields (bytes 1–2)

FieldMeaning
MOTION_CMDCurrent arm motion command ID
MISSION_TYPECurrent manipulation mission type

Control flags (byte 3)

FieldMeaning
CHICKEN_HEADHead stabilization (camera gyro-lock) active
MANUAL_CONTROLArm in manual joystick control mode
LOCK_POSITIONArm 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.

This user manual is intended for RBQ users.