Microduck Robot●microduck-robot.com

Microduck Robot / DOCS

Microduck Robot 기술 문서: 조립, 제어 및 AI

Arduino UNO Q 기반 Microduck Robot을 조립하고 점검할 때 참고할 문서입니다. Arduino 보드 설명서, Luwu Dynamics의 조립 및 런타임 자료, Pollen Robotics의 원본 설계를 바탕으로 단계마다 확인할 항목을 정리했습니다.

Arduino UNO Q 초기 설정과 연결 확인

데이터를 전송할 수 있는 USB-C 케이블로 Arduino UNO Q를 연결한 뒤 Arduino App Lab에서 해당 보드를 선택합니다. 초기 설정을 마치고, 필요하면 LED 예제를 실행해 보드가 응답하는지 확인한 다음 예제를 종료합니다.

보드와 컴퓨터를 같은 로컬 네트워크에 연결하고 Network Info에 표시된 실제 IP 주소를 기록합니다. 선택한 런타임 버전에 맞게 Bridge를 준비하고 앱을 실행한 뒤, 보드 IP의 9527 포트에서 모터 제어 페이지를 엽니다. 페이지가 열리는지와 Bridge를 통해 모터 상태를 읽을 수 있는지를 각각 확인합니다.

서보 ID를 실제 장착 위치에 대응시키기

배선을 바꾸기 전에 전원을 끕니다. ID를 설정할 때는 서보를 한 개씩 연결합니다. 스캔으로 현재 ID를 확인하고 목표 ID를 지정한 뒤 다시 스캔해 변경 사항을 확인합니다.

참조 ID 범위는 왼쪽 다리 10~14, 오른쪽 다리 20~24, 머리와 목 30~33, 입 34입니다. 각 서보에 ID를 표시하고 실제 장착 위치도 기록합니다. 버스의 중복 ID나 좌우 장착 오류는 관절 제어에 영향을 줍니다.

부품 방향, 체결 위치와 케이블 여유 확인

조립 전에 키트 버전과 BOM을 대조하고 3D 프린팅 부품의 베어링 자리와 서보 장착부에 부품이 맞는지 확인합니다. 좌우 링크, 서보 혼, 나사 위치를 구분하고 비슷한 부품은 장착 위치별로 분류합니다.

외장을 닫기 전에 움직이는 부품이 서로 간섭하지 않는지, 케이블이 눌리거나 당겨지지 않는지, 서보 라벨이 장착 기록과 일치하는지 확인합니다. 보드 리비전이 다르면 해당 리비전의 사양을 확인한 뒤 연결합니다.

첫 동작 시험과 문제 구간 확인

로봇을 지지해 발이 바닥에 닿지 않도록 한 상태에서 지정한 관절이 예상대로 움직이는지 확인합니다. 기본 자세가 정상이라면 주변을 정리한 평평한 바닥에서 작은 움직임부터 시험합니다. 관절이 걸리거나 예상치 못하게 움직이거나 피드백이 갱신되지 않으면 멈춥니다.

제어 페이지가 열리지 않으면 IP 주소, 포트, 네트워크 및 앱 실행 상태를 확인합니다. 페이지가 열리지만 서보가 보이지 않으면 Bridge와 진단 화면을 확인한 뒤, 전원을 끄고 전원 연결, 커넥터 체결 상태, ID를 점검합니다. 도움을 요청할 때는 키트 및 앱 버전, 관절 ID, 재현 절차, 오류 메시지를 함께 기록합니다.

기본 런타임 진단과 관절 영점 보정

App Lab에서 보드용 라이브러리 다운로드를 마치고 앱을 중지합니다. UNO Q에서 앱이 실제로 설치된 디렉터리로 이동해 python3 tools/prepare-bridge.py를 실행한 다음 sudo bash tools/router-2m.sh를 실행합니다. 완료되면 App Lab에서 Run을 선택합니다.

기본 런타임의 현재 master는 모터 토크가 해제된 Inference only 모드로 시작합니다. 동작을 지시하기 전에 진단 화면에서 서보 15/15개와 IMU가 온라인 상태이며 피드백이 갱신되는지 확인합니다.

로봇을 지지한 상태에서 관절 하나를 기계적 영점에 맞추고 해당 관절의 Set center & hold를 누릅니다. 위치 유지가 시작될 때 서보가 움직일 수 있습니다. 모든 관절을 보정한 뒤 해당 로봇의 data/zero_pos.json을 백업합니다. 영점 자세와 Default pose는 용도가 다르며, 토크를 끄면 로봇이 쓰러질 수 있으므로 몸체를 지지한 상태에서 조작합니다.

AI 카메라, 오디오 및 ToF를 각각 점검하기

AI 브랜치용 App Lab ZIP을 사용하고 공개된 SHA-256 값과 대조합니다. 업데이트 전에 앱과 데이터를 백업하고 해당 버전의 절차에 따라 Bridge와 USB Host를 설정합니다. USB Host로 전환하면 USB 또는 ADB 연결이 끊길 수 있으므로 먼저 네트워크로 접속할 수 있는지 확인합니다.

App Lab의 Import App으로 검증한 ZIP을 가져오고, 모든 앱을 중지한 뒤 Wi-Fi를 통한 SSH 연결을 확인합니다. UNO Q의 실제 AI 앱 디렉터리에서 bash tools/install-ai-support.sh, sudo bash tools/router-2m.sh 순서로 실행합니다. 이후 App Lab에서 네트워크를 통해 앱을 실행합니다.

AI 화면은 보드의 기본 IP 주소에서, 모터 제어 페이지는 9527 포트에서 엽니다. 마이크, 스피커, 카메라를 각각 시험하고 음성 기능에 필요한 계정 연동과 에이전트 선택을 확인합니다. ToF는 선택 기능입니다. 해당 브랜치가 지정하는 VL53L5CX와 VL53L8CX를 구분하고 모델, 기판, 커넥터 및 드라이버를 확인한 뒤 실제 거리 값이 정상인지 점검합니다.

ToF를 점검할 때 /api/tof/status에서 거리 측정 중인지, fresh=true인지, seq가 증가하는지, valid_zones가 0보다 큰지 확인한 후 장애물 회피를 시험합니다.

별도 컴퓨터에서 학습하고 ONNX 모델 확인하기

Arduino UNO Q 구성용 학습 환경을 CUDA 지원 컴퓨터에서 실행합니다. 시뮬레이션에서 목표 작업을 시험하고 ONNX로 내보냅니다. 모델을 로드하기 전에 런타임이 기대하는 관절 순서, 관측값의 구성과 순서, 정규화가 학습 설정과 일치하는지 확인합니다.

하드웨어 리비전, 런타임과 학습 코드 리비전, 보정 날짜, 모델 체크섬을 함께 기록합니다. 실물에서 처음 시험할 때는 로봇을 지지하고 관절 움직임이나 센서값이 예상과 다르면 멈춥니다.

Microduck 원본 설계와 Arduino UNO Q 적용판 구분

Microduck의 원본 설계는 Pollen Robotics의 프로젝트입니다. 이 문서는 Luwu Dynamics의 하드웨어와 런타임 자료에 기반한 Arduino UNO Q 적용판을 다룹니다.

부품, 소프트웨어 또는 학습된 모델을 선택할 때는 컨트롤러와 기판 버전, 서보 배치, 관절 순서 및 보정 데이터가 한 구성에 맞는지 확인합니다. 외형이 비슷한 다른 구성의 설정이나 모델을 적용하기 전에 해당 버전의 사양을 확인합니다.

프로젝트 출처

문의하기