Target Go — Python 예제
소스: rbq_sdk/python/example/sport/rbq_target_go.py
C++ Target Go의 Python 포팅입니다. rt/rbq/cmd/target_go에 TargetGo 메시지를 한 번 발행해 로봇이 목표 자세(x, y, 방향)로 선택한 보행으로 걸어가도록 명령합니다.
동작 방식
- 명령행에서
interface와 선택 인자x y theta gait mode를 읽습니다. ChannelFactoryInitialize(0, interface)호출 후ChannelPublisher("rt/rbq/cmd/target_go", TargetGo_)를 생성합니다.- DDS 디스커버리를 ~0.5초 기다린 뒤
TargetGo_메시지를 채워 한 번 발행하고, 보낸 값을 출력한 뒤 종료합니다.
로봇 측 QuadWalk 보행 엔진이 이 토픽을 구독해 실제 보행을 수행합니다.
사전 요구사항
rbq_sdk_pyimport 가능 — 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.0MuJoCo 시뮬레이터로 검증함 — QuadWalk가 rt/rbq/cmd/target_go에서 명령을 수신합니다(제어 시작 전이면 Can't Receive cmd: CON_START first 출력 후, 시작하면 보행).
