Gait & Status Reference
ROS 2 topic과 SDK에서 사용하는 Gait ID 및 rbq_msgs/RobotStatus 필드의 전체 레퍼런스입니다.
Gait State ID
/rbq/cmd/switch_gait (Sub) 또는 rbq_msgs/HighLevelCommand의 gait_state 필드로 전환하고, 현재 값은 /rbq/robot_status → gait_id (Pub)로 확인합니다. 명령과 상태는 하나의 gait enum을 공유하므로, 아래 id는 HighLevelCommand.gait_state로 보낼 때와 robot_status.gait_id로 읽을 때 모두 같은 의미입니다.
표준 Gait
HighLevelCommand.gait_state / switch_gait으로 보내며, robot_status.gait_id로 그대로 보고됩니다.
| ID | 상수 | 설명 |
|---|---|---|
-2 | STATE_FALL | Fall Mode — 예기치 않은 균형 상실로 트리거 |
-1 | STATE_OFF | Control Off — 모든 액추에이터 비활성 |
0 | STATE_SIT | Sitting — 낮은 자세, 지면에 착지 |
1 | STATE_STAND | Standing — 중립 자세, 보행 준비 |
2 | STATE_AIM | Aim Mode — 타게팅용 조준 자세 |
3 | STATE_WALK | Walk Mode — 트롯 보행 |
4 | STATE_STAIRS | Stairs Mode — 카메라 센서를 사용하는 계단 적응 보행 |
5 | STATE_WAVE | Wave Mode — 웨이브 보행 |
6 | STATE_RUN | Run Mode — 고속 보행 (지원 시) |
RL Gait
학습된 보행 정책을 사용하는 Gait입니다 (ONNX 추론, RLWalk 프로세스 필요).
| ID | 상수 | 설명 |
|---|---|---|
30 | STATE_RL_TROT | RL trot (기본 학습 보행) |
31 | STATE_RL_FRONT_WALK | RL 전진 보행 |
33 | STATE_RL_LEFT_WALK | RL 좌측 보행 |
34 | STATE_RL_RIGHT_WALK | RL 우측 보행 |
35 | STATE_RL_BOUND | RL bounding |
36 | STATE_RL_PACE | RL pace |
37 | STATE_RL_PRONK | RL pronk |
38 | STATE_RL_3LEG_HR | RL 3족 보행: 뒤-우측 다리 들기 |
39 | STATE_RL_3LEG_HL | RL 3족 보행: 뒤-좌측 다리 들기 |
40 | STATE_RL_3LEG_FR | RL 3족 보행: 앞-우측 다리 들기 |
41 | STATE_RL_3LEG_FL | RL 3족 보행: 앞-좌측 다리 들기 |
42 | STATE_RL_TROT_VISION | RL trot + 비전 장애물 회피 |
45 | STATE_RL_TROT_RUN | RL 고속 trot |
46 | STATE_RL_SILENT | RL 저소음 보행 |
47 | STATE_RL_STAIRS | RL 계단 보행 |
RL Gait 사용 조건
정책 파일이 로드되어 있고 RLWalk 프로세스가 실행 중이어야 합니다. 로봇 구성에 따라 사용 가능한 id가 다를 수 있습니다.
로봇 상태 필드 (/rbq/robot_status)
rbq_msgs/RobotStatus 타입으로 /rbq/robot_status에 발행됩니다 (Pub, ~500 Hz). 아래 항목은 모두 메시지의 평면(flat) 필드입니다.
상태 플래그 (bool)
| ROS 필드명 | 설명 |
|---|---|
con_start | 모터 제어 루프 실행 중 |
ready_pos | 준비 자세 도달 |
ground_pos | 지면/앉기 자세 |
force_con | 힘 제어 모드 활성 |
ext_joy | 외부 조이스틱 입력 활성 |
is_standing | 로봇이 서 있음 |
can_check | 전체 관절 CAN 통신 확인 완료 |
find_home | 전체 관절 엔코더 홈 탐색 완료 |
Gait & 도킹
| ROS 필드명 | 타입 | 설명 |
|---|---|---|
gait_id | int8 | 현재 활성 Gait (Gait State ID 참조) |
docking_state | int8 | 도킹 시퀀스 상태 (토픽 레퍼런스의 도킹 상태 표 참조) |
시스템 플래그 (bool)
| ROS 필드명 | 설명 |
|---|---|
is_fall | 낙하 감지됨 |
imu_success | IMU 연결·데이터 정상 |
초기화 시퀀스 확인
/rbq/cmd/auto_start를 발행한 후 아래 순서로 플래그가 올라옵니다:
can_check → true (CAN 통신 확인)
find_home → true (엔코더 홈 탐색 완료)
con_start → true (제어 루프 시작)
gait_id → 0 (STATE_SIT — 명령 수신 가능)세 플래그가 모두 true가 된 후 Gait 전환 및 이동 명령을 보낼 수 있습니다.
