소형 이족 로봇 Microduck 구축 및 구동 가이드
AI-FanGe/Microduck-build-tutorial
GitHub마이크로덕은 라즈베리 파이 Zero 2 W를 제어기로 활용하여, 강화 학습 기반의 보행 정책을 다이나믹셀 서보 모터에 구현한 소형 이족 로봇 프로젝트입니다.
- MuJoCo 시뮬레이션에서 학습된 AI 모델(ONNX)을 실제 임베디드 시스템에 성공적으로 이식하여, 하드웨어 제어부터 보행까지 전 과정을 완성한 것이 핵심 성과입니다.
- 본 가이드는 하드웨어 BOM, 배선도, OS 이미지 플래싱부터 원격 SSH 및 무두(Headless) 모드까지 로봇 구현의 전 과정을 상세히 다루는 실용적인 자료입니다.
- 라즈베리 파이, 다이나믹셀 서보, IMU 등 다양한 임베디드 장치에 대한 하드웨어 지식과 강화 학습(RL) 이해가 필수적인 고난도 프로젝트입니다.
Microduck은 Raspberry Pi Zero 2 W를 제어기로 활용하는 소형 이족 로봇 프로젝트입니다. 소프트웨어적으로는 두 부분으로 구성되는데, `microduck/` 폴더에는 IMU 데이터 읽기, 키보드/게임패드 입력 처리, Dynamixel 서보 구동 및 ONNX 보행 정책을 로드하는 배포 코드가 포함되어 있습니다. 반면, `mjlab_microduck/`는 MuJoCo/MjLab 기반의 훈련 환경으로, 실제 로봇에 적용할 `walk.onnx` 모델을 훈련하고 내보내는 역할을 합니다.
하드웨어 구성 요소로는 Raspberry Pi Zero 2 W, Dynamixel XL330-M288-T 서보 모터(총 14개), OpenRB-150 서보 제어판, 그리고 BNO08x 계열의 IMU 센서 등이 필요합니다. 배선 시에는 ID 매핑에 따라 각 서보를 연결해야 하며, 전원 공급은 완성된 6V 충전식 배터리를 사용하고, Raspberry Pi는 별도의 5V 전원을 받아야 합니다.
초기 구동을 위해서는 `microduck.img.xz` 이미지를 microSD 카드에 플래싱하는 과정이 필수적입니다. 이후 Wi-Fi 설정을 완료하고 SSH로 원격 접속하여 제어 코드를 실행합니다. 로봇의 동작은 키보드 입력이나 블루투스 게임패드를 통해 제어되며, 무두(Headless) 모드에서는 2.4GHz 블루투스 안정성을 위해 Wi-Fi가 자동으로 비활성화되는 특징이 있습니다.
용어 풀이
- 강화 학습
- 행동의 결과에 보상을 주면서 더 나은 행동을 익히게 하는 학습 방법.