Skip to content

Target Go — Python 예제

소스: rbq_sdk/python/example/sport/rbq_target_go.py

C++ Target Go의 Python 포팅입니다. rt/rbq/cmd/target_goTargetGo 메시지를 한 번 발행해 로봇이 목표 자세(x, y, 방향)로 선택한 보행으로 걸어가도록 명령합니다.

동작 방식

  1. 명령행에서 interface와 선택 인자 x y theta gait mode를 읽습니다.
  2. ChannelFactoryInitialize(0, interface) 호출 후 ChannelPublisher("rt/rbq/cmd/target_go", TargetGo_)를 생성합니다.
  3. DDS 디스커버리를 ~0.5초 기다린 뒤 TargetGo_ 메시지를 채워 한 번 발행하고, 보낸 값을 출력한 뒤 종료합니다.

로봇 측 QuadWalk 보행 엔진이 이 토픽을 구독해 실제 보행을 수행합니다.

사전 요구사항

  • rbq_sdk_py import 가능 — Python SDK 개요 참조.
  • 로봇 스택이 실행 중(시뮬레이터 또는 하드웨어)이며 동일 DDS 인터페이스 사용.
  • 먼저 로봇이 전원 ON / 제어 시작 및 기립 상태여야 합니다. 아니면 QuadWalk가 Can't Receive cmd: CON_START first로 거부합니다.

실행

bash
cd RBQ/rbq_sdk/python/example/sport
python3 rbq_target_go.py <networkInterface> [x] [y] [theta_deg] [gait] [mode]
# 시뮬레이터, wave 보행으로 1 m 전진:
python3 rbq_target_go.py lo 1.0 0.0 0.0 0 0

인자·보행(gait)·모드(mode)는 C++ 버전과 동일합니다. 실행 중인 로봇/심과 같은 인터페이스를 쓰세요(Image Echo 인터페이스 설명 참고 — lo는 멀티캐스트 미지원인 경우가 많음).

출력 예시

[rbq_target_go] published: gait=0 mode=0 x=1.0 y=0.0 theta=0.0

MuJoCo 시뮬레이터로 검증함 — QuadWalk가 rt/rbq/cmd/target_go에서 명령을 수신합니다(제어 시작 전이면 Can't Receive cmd: CON_START first 출력 후, 시작하면 보행).

This user manual is intended for RBQ users.