콘텐츠로 이동

XM10 Extension Module SDK v2.1.1

릴리즈 날짜: 2026-04-04 | 대상 HW: Rev1.1 / Rev2.0 | KIT H10 FW: v2.3.0+


Highlights

  • 새 부트로더(AGR_Bootloader) 최초 도입 — PhAI Studio 로 USB 를 통해 펌웨어를 업로드
  • 듀얼 HW 리비전 SDK 동시 배포 — Rev1.1과 Rev2.0 SDK를 단일 릴리즈에 포함
  • 예제 44개 — 입문부터 고급 제어(Impedance, CPG, ILC, MRAC, DOB 등)까지 완전한 학습 경로
  • PhAI Studio 연동 강화 — Total Data Packet 자동 전송 + User Custom 채널
  • xm_api_freertos 신규 — 백그라운드 태스크 API
  • 디버깅 완전 지원 — Live Expression · 브레이크포인트가 정상 동작

다운로드

SDK (레포에 포함)

항목 경로 설명
SDK Rev1.1 XM10_SDK/Rev1.1/Extension_Module/ PCB Rev1.1 전용 프로젝트
SDK Rev2.0 XM10_SDK/Rev2.0/Extension_Module/ PCB Rev2.0 전용 프로젝트 (ETH, PSRAM, RTC 추가)

Release 첨부 파일

파일 설명 비고
AGR_Bootloader.bin XM10 부트로더 바이너리 (v1.1.0) 0x08000000에 프로그래밍
SUIT_CM_APP_X_X_X.bin KIT H10 CM 펌웨어 H10 FW 업데이트 가이드 참조
SUIT_SAM10_APP_X_X_X.bin KIT H10 MD(SAM10) 펌웨어 동일 가이드 참조
SUIT_ESP32_FW_X_X_X.bin KIT H10 ESP32 펌웨어 동일 가이드 참조
ContentsFiles.zip SD카드 Contents 파일 (FSM/MotionMap/RobotSetting) 별도 업데이트

도구

도구 링크
PhAI Studio (FW Upload, 센서 모니터링) studio.onephai.com
STM32CubeProgrammer (부트로더 최초 설치) st.com

v2.0.1 대비 전체 변경 사항

신규 기능

새 부트로더 (신규)

  • PhAI Studio 로 USB 를 통해 펌웨어 업로드 (USB FTP)
  • 자동 백업 + 롤백 (3회 부팅 실패 시 이전 버전으로 자동 복원)
  • CRC-32 펌웨어 무결성 검증
  • Rev1.1 / Rev2.0 단일 부트로더 바이너리 (보드 리비전을 자동으로 구별)
  • 상세 가이드: docs/bootloader/README.md

듀얼 HW 리비전 SDK

  • XM10_SDK/Rev1.1/ — PCB Rev1.1 전용 (CAN-FD only)
  • XM10_SDK/Rev2.0/ — PCB Rev2.0 전용 (CAN-FD + Ethernet + PSRAM + RTC)
  • 각 SDK는 자체 완결형 STM32CubeIDE 프로젝트 (Import 후 바로 빌드 가능)

xm_api_freertos — 백그라운드 태스크 API (신규)

  • XM_BgTask_Create() — 1kHz 제어 루프를 방해하지 않고 무거운 연산을 별도 태스크에서 실행
  • 이 태스크는 제어 루프보다 낮은 우선순위로 돌기 때문에 제어 루프에 영향이 없습니다
  • 백그라운드 태스크에서 XM_SetAssistTorque 등 제어 API 호출 금지 (데이터 공유는 volatile)

빌드 마무리 자동화

  • STM32CubeIDE 로 빌드하면 마무리 단계가 자동으로 실행되어 업로드용 파일을 만듭니다 (Python 필요)
  • 최종 출력: XM10_X_X_X_X.bin (PhAI Studio 업로드용 패키징 바이너리)

예제 대규모 확장 (20개 → 44개)

  • Physical AI 토크 제어 시리즈 (Ex.20~33): Impedance, Gravity Comp, CPG, Gait Phase Adaptive, Virtual Constraint, Stance Stiffness, ILC, MRAC, Admittance, Bilateral, FF/FB Hybrid, Friction DOB, GRF Gait Intent, Kinesthetic Teaching
  • MSC 로깅 시리즈 (Ex.10~10c): Basic → Custom Struct → Advanced (Rolling, Markers)
  • Gait Analysis 로깅 (Ex.34): H10 보행 데이터 자동 수집 + Python 디코더
  • Ex.35 MultiLayer Transparent Control — 다층 투명 제어 (신규)
  • Ex.36 OnDevice Kinesthetic Learning — 온디바이스 동작 학습 (신규)

PhAI Studio 연동 강화

  • Total Data Packet (Module ID 0x20, 365B): 시스템이 1kHz 로 자동 전송
  • User Custom 채널 (Module ID 0xF0~0xFE): XM_SetUsbCustomMeta() + XM_SendUsbDataWithId()
  • Auto-Stream: USB 연결 시 자동 스트리밍 시작 (별도 시작 명령 불필요)

개선 사항

Total Data Packet

  • CAN-FD 채널 1·2 의 통신 상태 진단 값이 각각 들어갑니다
  • timestamp_ms → xm_loop_count 변경 (제어 루프 실행 횟수 — 루프가 막히면 알 수 있음)

빌드 시스템

  • 디버깅 정상 동작: 디버그 심볼이 들어간 libXM_Lib.a 로 Live Expression 과 브레이크포인트가 정상 동작합니다 (Rev1.1: 66MB, Rev2.0: 88MB)
  • Flash 바이너리 크기에는 영향이 없습니다 (디버그 심볼은 .elf 에만 포함)
  • 링커 설정 복원: v2.0.1 에서 고친 실행 중 메모리 손상 문제가 v2.1.0 에서 다시 생겼던 것을 바로잡았습니다 (CubeIDE 프로젝트와 CMakeLists.txt 모두 반영)
  • CMakeLists.txt 정리: 쓰지 않는 경로 제거, 폴더 이름 대소문자 수정 (Xsens → XSENS)
  • 새 CubeMX(6.13 이상)로 만든 프로젝트와도 호환되도록 시작 코드 보강

예제 튜닝

  • Ex.11 Passive Mode / Ex.12 Active Assist Mode: Homing 가속도 4→2 deg/s², IVectorKpKd (6,1)→(6,6), PVectorReset 추가

KIT H10 FW 변경 사항 (v2.3.0 기반)

H10 CM 펌웨어 주요 수정: - BLE 앱 모드 동기화: BLE 앱에서 모드를 바꾸면 H10 의 CM 이 즉시 따라갑니다 - XM10 ↔ CM CAN-FD 동기화 개선 - 보행 분석 카운터 추가: 보행 분석 후처리 횟수 값을 외부에서 읽을 수 있게 했습니다 - 왼쪽 IMU 데이터 수정: 왼쪽 IMU 데이터가 잘못 연결되던 오류를 고쳤습니다

H10 FW 업데이트 방법: docs/kit-h10-firmware/README.md 참조

삭제

  • user_app.c 루트 복사본 삭제 (XM_Apps/User_Algorithm/에서만 관리)

호환성 매트릭스

컴포넌트 최소 버전 권장 버전 비고
XM10 FW (이 SDK) v2.1.1 v2.1.1 Rev1.1/Rev2.0 별도 libXM_Lib.a
XM10 부트로더 v1.1.0 v1.1.0 단일 바이너리 (Rev1.1/Rev2.0 공통)
KIT H10 CM v2.3.0 v2.3.0+ BLE 동기화 수정 포함
KIT H10 ESP32 v2.3.0 v2.3.0+
KIT H10 SAM10/MD v2.3.0 v2.3.0+
ContentsFiles 2025.02 최신 SD카드 업데이트
STM32CubeIDE v1.13.2 v1.14.1+ GCC 13.3 필요
Python 3.8+ 3.12+ 빌드 마무리 단계용
PhAI Studio — 최신 studio.onephai.com

빠른 시작 가이드

1. 부트로더 설치 (최초 1회)

상세: docs/bootloader/README.md

  1. STM32CubeProgrammer로 Full Chip Erase
  2. AGR_Bootloader.bin을 0x08000000에 프로그래밍

2. SDK 프로젝트 열기

  1. Releases 에서 본인 보드 Rev 의 ZIP (Rev1.1.zip / Rev2.0.zip) 을 다운로드 후 압축 해제
  2. STM32CubeIDE에서 Import → Existing Projects into Workspace
  3. 압축 해제한 폴더 (.project 파일이 있는 곳) 선택
  4. Build (Ctrl+B) — 빌드 마무리 단계가 자동으로 실행됩니다

3. 펌웨어 업로드

  • 개발 중: STM32CubeIDE Debug (F11) — SWD, Start address 0x08040000
  • 배포 시: PhAI Studio → FW Upload → XM10_X_X_X_X.bin 선택

4. KIT H10 FW 업데이트

상세: docs/kit-h10-firmware/README.md

첨부된 H10 FW 바이너리를 USB 메모리에 복사 후 H10에 연결하여 업데이트합니다.


알려진 이슈

  • Rev1.1 SDK 는 일부 메모리 영역 사용량이 98.65% 에 달합니다. 대용량 버퍼를 만들 때는 주의가 필요합니다.
  • 빌드 후 version.h 의 버전이 릴리즈 버전과 같은지 확인하세요 (버전은 현재 폴더의 git tag 를 기준으로 정해집니다).
  • 빌드 마무리 단계에서 Python 이 PATH 에 있어야 합니다. STM32CubeIDE 재시작 후에도 인식되지 않으면 시스템 환경변수를 확인하세요.
  • libXM_Lib.a 는 디버그 심볼 때문에 66~88MB 이지만, 최종 Flash 바이너리 크기에는 영향이 없습니다.

v2.1.0 (Pre-Release) 사용자 안내

v2.1.0에서 발견된 2가지 문제가 v2.1.1에서 수정되었습니다: 1. 링커 설정 누락 → 실행 중 메모리가 손상될 수 있었음 2. 디버그 심볼이 없는 빌드 → Live Expression, 브레이크포인트 미동작

반드시 v2.1.1을 사용하세요.


이 릴리즈는 Angel Robotics의 Physical AI 플랫폼 XM10 Extension Module을 위한 것입니다.