Skip to content

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_statusgait_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.

IDConstantDescription
-2STATE_FALLFall Mode — triggered upon unexpected loss of balance
-1STATE_OFFControl Off — all actuators disabled
0STATE_SITSitting — low posture, resting on the ground
1STATE_STANDStanding — neutral posture, ready to walk
2STATE_AIMAim Mode — aiming posture for targeting
3STATE_WALKWalk Mode — walking trot gait
4STATE_STAIRSStairs Mode — stair-adaptive gait using the camera sensor
5STATE_WAVEWave Mode — walking wave gait
6STATE_RUNRun Mode — high-speed gait (if supported)

RL-based gaits

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

IDConstantDescription
30STATE_RL_TROTRL trot (standard learned gait)
31STATE_RL_FRONT_WALKRL forward walking
33STATE_RL_LEFT_WALKRL left-side walking
34STATE_RL_RIGHT_WALKRL right-side walking
35STATE_RL_BOUNDRL bounding
36STATE_RL_PACERL pace gait
37STATE_RL_PRONKRL pronking
38STATE_RL_3LEG_HRRL 3-leg: hind-right lifted
39STATE_RL_3LEG_HLRL 3-leg: hind-left lifted
40STATE_RL_3LEG_FRRL 3-leg: front-right lifted
41STATE_RL_3LEG_FLRL 3-leg: front-left lifted
42STATE_RL_TROT_VISIONRL trot with vision-guided obstacle avoidance
45STATE_RL_TROT_RUNRL high-speed trot
46STATE_RL_SILENTRL silent (low-noise) gait
47STATE_RL_STAIRSRL 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 fieldMeaning
con_startMotor control loop is running
ready_posRobot reached ready position
ground_posRobot is in ground/sit position
force_conForce control mode active
ext_joyExternal joystick input active
is_standingRobot is standing
can_checkCAN communication verified with all joints
find_homeEncoder homing complete on all joints

Gait & docking

ROS fieldTypeMeaning
gait_idint8Current active gait (see Gait State IDs)
docking_stateint8Docking sequence state (see the docking-state table in the Topic Reference)

System flags (bool)

ROS fieldMeaning
is_fallRobot has detected a fall
imu_successIMU 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.

This user manual is intended for RBQ users.