APMRobotics / 공개 기술 자료실APM Robotics

보행 제어·학습·시뮬레이션

조사일: 2026-10-16. 아래 라이선스는 주 코드 기준이며 모델·의존성·서브모듈에는 별도 조건이 있을 수 있다.

모델 기반 제어

프로젝트 역할 기반·요구 조건 라이선스 채택 판단
CHAMP 보행 생성·IK·ROS 연결·Gazebo README는 ROS Kinetic/Melodic 중심, 실제 모터 인터페이스 필요 BSD-3-Clause 간결한 기준 제어기 참고. ROS 2 포팅 비용 고려
Cheetah-Software MIT Cheetah 계열 제어·시뮬레이터 C++·플랫폼 전용 저수준 코드 MIT MPC·동역학·제어 구조 연구용. 하드웨어 이식 필요
OCS2 최적 제어·MPC 도구 및 로봇 예제 로봇 동역학·비용함수·접촉 제약 정의 필요 BSD-3-Clause 자체 로봇 MPC를 개발할 때 검토
legged_control NMPC+WBC+상태 추정·실물 연결 OCS2·ROS 1 ros-control·Gazebo BSD-3-Clause 공식 지원 종료. 구조 참고 또는 버전 고정 재현
Solo Solo 로봇 저수준 인터페이스 ODRI 보드·의존 패키지·실시간 구동 환경 BSD-3-Clause Solo 계열 실제 구동 연결용

CHAMP의 로봇 설정·URDF 지원과 실제 로봇 전체 기능 지원을 구분한다. 공개 모델만으로 모터 드라이버나 토크 대역폭까지 확보되지는 않는다. CHAMP 로봇 구성 목록

legged_control README에는 지원 종료가 명시되어 있다. OCS2는 그와 별개의 저장소이므로 동일하게 지원 종료됐다고 판단하지 않는다. legged_control 공지

강화학습·물리·모델

프로젝트 제공 범위 실행·연결 조건 라이선스·상태
MuJoCo 접촉·관절 동역학 물리 엔진, MJX 등 MJCF 모델, 액추에이터·접촉 설정 필요 Apache-2.0
MuJoCo Menagerie 정리된 로봇 모델·메시·예제 장면 모델 폴더별 사용 조건 확인 공통 코드 Apache-2.0, 모델별 별도
MuJoCo Playground GPU 로봇 학습·sim-to-real 예제 JAX/MJX, 학습에 맞는 가속기·환경 필요 Apache-2.0, 일부 텍스처 CC0
Isaac Lab 병렬 로봇 학습, 지형·센서·학습기 연결 선택한 릴리스·백엔드에 맞는 OS·GPU·의존성 필요 주 프레임워크 BSD-3-Clause, mimic Apache-2.0
rsl_rl GPU 중심 강화학습 알고리즘 환경 인터페이스·PyTorch·호환 버전 필요 주 코드 BSD-3-Clause
legged_gym Isaac Gym 기반 보행 학습 환경 구형 Python·PyTorch·Isaac Gym 조합 주 코드 BSD-3-Clause, 제한적 지원
Unitree ROS 2 Unitree 실물 통신·제어 예제 대상 기종·SDK·DDS·네트워크 구성 확인 BSD-3-Clause, 연결용 소프트웨어

legged_gym은 공식적으로 Isaac Lab 이관과 제한적 지원을 안내한다. 신규 시작은 Isaac Lab이나 현재 사용하는 MJX 경로를 먼저 검토하고, 논문 재현이라면 legged_gym과 당시 의존 버전을 함께 고정한다. 이관 공지

Isaac Lab의 조사 시점 기본 브랜치는 3.0.0과 여러 백엔드를 안내한다. APM의 기존 코드는 2.3.2/Isaac Sim 5.1 조합이므로 최신 브랜치를 덮어 설치하지 않는다. Isaac Sim을 쓰는 경로의 실행 조건과 에셋 권리는 별도다. 공식 호환·라이선스 안내, APM 기존 버전

제어 방식을 고르는 기준

  1. 첫 걷기: 보행 주기 → 발 궤적 → IK → 위치 PD. Pupper v1·CHAMP에서 구조를 읽는다.
  2. 외란·지면 대응 연구: 상태 추정 → 접촉 계획 → MPC → WBC → 토크+PD. Cheetah·OCS2·legged_control을 비교한다.
  3. 학습 보행: 관측·보상·종료 조건·도메인 무작위화 → 병렬 학습 → 별도 평가 → 실물 이식. Playground·Isaac Lab을 검토한다.

이 순서는 개발 제안이다. 위치 서보 로봇에 토크 제어용 정책을 그대로 넣거나, 다른 로봇용 정책을 관절 이름만 바꿔 적용하는 방식은 적절하지 않다. 질량·관성·기어비·모터 응답·관측 순서·제어 주기가 달라진다.