Skip to content

RBQ API 개요

RBQ API는 개발자가 RBQ 사족보행 로봇을 제어하고 상호작용할 수 있는 포괄적인 C++ 인터페이스를 제공합니다. 멀티프로세스 환경에서 저수준 실시간 제어와 고수준 행동 명령을 모두 지원하도록 설계되었습니다.

C++ 문서

C++ 문서 보기

프로세스 ID (모션 소유권)

RBQ_API 인스턴스를 생성할 때 프로세스 ID를 제공해야 합니다:

cpp
RBQ_API api(20);  // 사용자 애플리케이션용 프로세스 ID (20-39 범위)

이 ID는 모션 소유권 메커니즘을 사용하여 안전한 멀티프로세스 제어를 보장하며, 각 관절은 소유자 프로세스에 의해서만 제어될 수 있습니다.

⚠️ 관절 명령을 보내기 전에 항상 setMotionOwner()를 호출하세요.


API 구조 요약

카테고리구성요소설명
제어Joint저수준 관절 제어: 위치, 토크, 게인 (Kp/Kd)
startMoveJoint() / stopMoveJoint()관절별 조그 모션 시작/중지
lockUnlockJoint()수동 조작을 위한 관절 잠금/해제
센서IMU자세 (쿼터니언/RPY), 자이로, 가속도 접근
getBatteryVoltage()배터리 전압 읽기 (내부 전용)
게임패드GamepadLogitech F710 게임패드 입력 접근: 조그, 트리거, 버튼
고수준 모션motionStaticReady() / motionDynamicWalk()미리 정의된 로봇 행동

관절 제어 API (RBQ_API::Joint)

센서 값 읽기

함수설명
getPos()관절 위치 읽기 (rad)
getVel()관절 속도 읽기 (rad/s)
getTorque()관절 토크 읽기 (Nm)
getGainKp() / getGainKd()현재 Kp/Kd 게인 읽기

명령 전송

함수설명
setMotionOwner()관절 제어권 획득
setPosRef()관절 위치 목표 설정
setTorqueRef()토크 목표 설정 (Nm)
setGainKp() / setGainKd()양자화를 통한 제어 게인 설정

✅ 각 관절은 제어 명령을 받기 위해 소유자 프로세스가 있어야 합니다.


IMU 센서 API (RBQ_API::IMU)

로봇의 자세와 운동 상태에 대한 접근을 제공합니다.

함수출력
getQuaternion()Eigen 쿼터니언으로 자세 (w, x, y, z)
getRPY()롤, 피치, 요 (ZYX 오일러 각도, 라디안)
getGyro()각속도 (rad/s) (X, Y, Z)
getAcc()선형 가속도 (m/s²) (X, Y, Z)

게임패드 API (RBQ_API::Gamepad)

원격 조작을 위한 Logitech F710 (X 모드) 지원.

타입함수설명
조이스틱getLeftJogX/Y(), getRightJogX/Y()범위: [-1.0, 1.0]
트리거getLeftTrigger(), getRightTrigger()범위: [0.0, 1.0]
버튼getButtonState(Button::X)눌렸을 때 true 반환

내장 모션 프로그램

미리 정의된 로봇 행동을 쉽게 트리거할 수 있습니다:

함수설명
motionStaticReady()준비 자세로 이동
motionStaticGround()바닥에 눕는 자세
motionDynamicWalk()동적 보행 시작
motionDynamicRun()동적 달리기 시작
motionDynamicAim()조작/비전을 위한 조준 자세
motionDynamicStairs()계단 오르기 모션
motionDynamicHealthCheck()진단 모션

This user manual is intended for RBQ users.