Driver Tutorials

Driver Tutorials#

What you’ll do

  • Driver 기반 예제를 통해 주행 명령 송신과 상태 수신(큐 처리) 패턴을 익힙니다.

Prerequisites

Next


Driver는 UART I/O를 전용 스레드에서 처리하고, 사용자 코드는 setCommand(v, omega)를 이용하여 명령을 업데이트 합니다.

빌드 (CMake)#

SDK 루트에서 빌드합니다.

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j

실행#

예제 실행 파일은 build/ 아래에 생성됩니다.

./build/driver_demo /dev/ttyKMC 5
./build/driver_observe /dev/ttyKMC 5
./build/driver_read_allstate /dev/ttyKMC 5
./build/high_rate_control /dev/ttyKMC 5 1000000 100 50

주요 API#

용어

SDK API

설명

명령 입력

setCommand(v, ω)
setCommandCurvature(v, κ)

주행 목표값을 업데이트합니다. 단위는 각각 \(v\)(\(\mathrm{m/s}\)), \(\omega\)(\(\mathrm{rad/s}\)), \(\kappa\)(\(\mathrm{m}^{-1}\))입니다.

속도 요청

Driver::Options::vehicle_speed_rate_hz
VehicleSpeed (tryPopMessage())

설정한 주기로 차량의 중심 속도를 읽어 큐로 전달합니다. 메인 루프에서는 큐에서 VehicleSpeed를 꺼내 사용합니다.

보조 명령

poll_battery, poll_allstate
requestBatteryOnce(), requestAllStateOnce()

배터리 전압/AllState 등 차량과 모터의 데이터를 읽습니다. 주기 폴링 또는 1회 요청을 사용할 수 있습니다.

옵션 필드(주기/타임아웃 등) 정의는 Driver::Options에 정리되어 있습니다.