GitHub

pollen-robotics/microduck — A Tiny biped duck robot 🦆

pollen-robotics/microduck: 작은 이족 보행 오리 로봇

Microduck은 Rockchip RK3566에서 동작하는 약 25cm, 800g 크기의 이족 보행 로봇입니다. Rust 데몬들이 15개 서보를 제어하며, 강화학습 정책으로 걷기와 물체 집기 등을 수행합니다. 업데이트 검증과 롤백 기능, MuJoCo 시뮬레이션 실행 환경도 제공합니다.

에디터 노트

작은 로봇의 동작 소개에 그치지 않고 제어 데몬과 업데이트 절차, 시뮬레이터까지 한 저장소에서 다룹니다. 특히 업데이트를 서명 검증과 상태 확인에 묶고 실패 시 롤백하도록 설계한 점은 실제 하드웨어에서 소프트웨어를 배포하는 문제를 구체적으로 다룹니다. 다만 학습 과정과 sim2real 절차는 별도 microduck_rl 저장소에 있고, 이 저장소의 설명만으로는 정책의 성능이나 실제 환경에서의 안정성을 판단할 수 없습니다. 커뮤니티 댓글도 없어 사용 경험이나 구현에 대한 별도 검증은 확인되지 않습니다. 여기서 확인되는 범위는 하드웨어 사양과 소프트웨어 구성, 문서화된 기능입니다.

AI 요약

Microduck은 강화학습 정책으로 움직이는 소형 이족 보행 오리 로봇입니다. 본 저장소에는 로봇에서 실행하는 소프트웨어와 개발·운영 문서가 담겨 있으며, 정책 학습 코드는 별도 저장소인 microduck_rl에서 관리합니다.

하드웨어와 제어

로봇은 높이 약 25cm, 무게 800g이며 Rockchip RK3566 보드에서 실행됩니다. 50Hz 제어 루프가 신경망 정책을 사용해 15개 서보를 구동합니다. 걷기 외에도 게임패드 조작, 물체 집기, 넘어졌다 일어서기, 공 차기, 전진 구르기, 음성 재생을 지원합니다. 바퀴를 장착하면 롤러 모드에서 다른 정책을 불러옵니다.

소프트웨어 구성

프로젝트는 Rust와 단일 워크스페이스로 구성되며 별도 프레임워크를 사용하지 않습니다. robotd가 제어 루프와 모터 버스를 담당하고 updaterd는 서명된 릴리스를 설치합니다. 업데이트 뒤 로봇 상태가 비정상이면 updaterd가 이전 버전으로 되돌립니다. configd는 Wi-Fi와 기기 정체성을, btd는 블루투스 연결을, padd는 게임패드를 담당합니다. mediad는 WebRTC로 카메라 영상을 전송하고 tofd는 깊이 센서를 제공합니다. 각 데몬은 Unix 소켓을 통해 JSON-RPC 계약으로 통신하며 앱, 콘솔, 게임패드와 스크립트가 같은 호출을 사용합니다.

학습과 개발

정책은 별도 프로젝트 microduck_rl에서 MuJoCo와 PPO로 학습합니다. 시뮬레이션에서 실제 로봇으로 옮기는 절차와 도메인 무작위화, ONNX 내보내기를 다룹니다. 실제 로봇이 없어도 scripts/duck-sim으로 본 저장소의 데몬을 MuJoCo 몸체에 연결해 실행할 수 있습니다. 문서에는 명령어와 게임패드 조작, 개발 보드 설정, 브랜치 빌드, SSH 설치, 업데이트와 롤백 절차가 포함됩니다.

운영과 업데이트

updaterd는 릴리스를 검증하고 로봇 상태를 확인한 뒤 업데이트를 적용하며, 문제가 생기면 되돌립니다. 문서에는 버전 고정과 로그 확인도 안내합니다. 설계 문서는 구성 요소별 선택 이유를 설명하고 프로젝트 문서는 해결되지 않은 문제를 기록합니다.

원문: GitHub / 번역·요약: Trawling