Claude에서 열기ChatGPT에서 열기
https://rainbowrobotics.github.io/RBQ/llms-full.txt 는 Rainbow Robotics RBQ 4족 로봇 매뉴얼 전문입니다. 읽고 이 문서를 근거로 한국어로 답변해 주세요.
AI 답변은 부정확할 수 있습니다. 안전·정비 항목은 매뉴얼 원문을 확인하세요.
한국어
https://rainbowrobotics.github.io/RBQ/llms-full.txt 는 Rainbow Robotics RBQ 4족 로봇 매뉴얼 전문입니다. 읽고 이 문서를 근거로 한국어로 답변해 주세요.
AI 답변은 부정확할 수 있습니다. 안전·정비 항목은 매뉴얼 원문을 확인하세요.
한국어
RBQ Python SDK (rbq_sdk/python/)는 C++ SDK와 동일한 CycloneDDS 인프라를 Python으로 래핑한 패키지(rbq_sdk_py)입니다.
SportClient API와 DDS 채널 유틸리티를 순수 Python으로 제공합니다.
rbq_sdk/python/
├── rbq_sdk_py/
│ ├── core/
│ │ └── channel.py # ChannelFactoryInitialize, ChannelPublisher, ChannelSubscriber
│ └── sport/
│ ├── sport_client.py # SportClient — Network 서비스 Python 바인딩
│ └── sport_api.py # ID_DEFAULT_MODE, ID_RUNNING_MODE, ID_CLIMB_MODE 상수
└── example/
├── sport/
│ ├── rbq_sport_client.py # SportClient 명령 터미널 CLI
│ ├── rbq_sport_client_joy.py # 조이스틱 기반 SportClient
│ ├── rbq_high_level.py # 고수준 명령 예제
│ ├── rbq_low_level.py # 저수준 명령 예제
│ └── rbq_target_go.py # 목표 지점 이동 예제
└── idl/
└── _rbq_idl.py # 생성된 Python IDL 바인딩예제 안내:
rbq_high_level.py,rbq_low_level.py,rbq_target_go.py,rbq_sport_client.py,rbq_sport_client_joy.py예제는 모두example/sport/에서 사용할 수 있습니다.
| 항목 | 최소 버전 |
|---|---|
| OS | Ubuntu 22.04 |
| Python | 3.8 이상 |
| CycloneDDS Python 바인딩 | rbq_sdk/python/pyproject.toml로 설치 |
cd rbq_sdk/python
pip install -e .from rbq_sdk_py.core.channel import ChannelFactoryInitialize
# 네트워크 인터페이스 지정 (예: "eth0")
ChannelFactoryInitialize(0, nic)인터페이스를 None으로 전달하거나 두 번째 인수를 생략하면 CycloneDDS가 자동 감지합니다.
from rbq_sdk_py.sport.sport_client import SportClient
sport = SportClient()
sport.Init()
sport.BalanceStand()
sport.Move(vx=0.5, vy=0.0, vyaw=0.0)
sport.SwitchGait(ID_DEFAULT_MODE)
sport.Damp()from rbq_sdk_py.core.channel import ChannelPublisher
from _rbq_idl import HighLevelCommand_, Bool_
pub = ChannelPublisher("rt/rbq/cmd/high_level", HighLevelCommand_)
pub.Init()
msg = HighLevelCommand_()
msg.gait_state = 1
msg.vel_x = 0.5
pub.Write(msg)from rbq_sdk_py.core.channel import ChannelSubscriber
from _rbq_idl import Imu_
def on_imu(sample):
print(sample.angular_velocity.x)
sub = ChannelSubscriber("rt/rbq/imu", Imu_)
sub.Init(handler=on_imu, queueLen=4)/dev/input/js*) Python 예제는 외부 의존성 없이 Linux 조이스틱 이벤트를 직접 읽는 자체 Joy 클래스를 포함합니다:
joy = Joy("/dev/input/js0")
joy.open()
while True:
joy.poll()
lx = deadzone(joy.ax[AXIS_LX], DEADZONE)
ly = deadzone(joy.ax[AXIS_LY], DEADZONE)
joy.end_frame()
time.sleep(0.01)pick_joy_path(argv) 헬퍼는 연결된 게임패드를 자동 감지합니다 (Logitech/Xbox/Wireless 이름 우선, 이후 첫 번째 /dev/input/js* 노드 사용).
| 예제 | 설명 |
|---|---|
| Sport Client (Python) | SportClient 명령 터미널 CLI |
| Sport Client 조이스틱 (Python) | 게임패드 기반 SportClient — 전체 버튼 매핑 |