Simple-Robotics/aligator

A versatile and efficient C++ library for real-time constrained trajectory optimization

Aligator – 로봇 공학을 위한 궤적 최적화 라이브러리


개요

Aligator는 로봇 및 기타 동적 시스템을 위한 최적 제어/궤적 최적화 문제를 공식화하고 해결하는 도구를 제공하는 오픈 소스 C++ 라이브러리(Python API 포함)입니다. ProxDDP 및 FeasibleDDP와 같은 빠르고 제약 조건이 있는 솔버를 구현하며, 모션 계획, 모델 예측 제어, 최적 상태 추정에 사용할 수 있습니다.

주요 기능

기능 세부 사항
모델링 인터페이스 C++(또는 Python을 통해)에서 노드별로 최적 제어 문제를 구축합니다.
솔버 Proximal DDP(ProxDDP) 및 FeasibleDDP. 둘 다 제약 조건을 효율적으로 처리합니다.
선형 대수 백엔드 솔버 내부에서 발생하는 선형 시스템을 위한 다양한 분해 루틴.
강체 동역학 지원 Pinocchio 라이브러리와 직접 통합(해석적 도함수 포함).
Crocoddyl 호환성 Crocoddyl 궤적 최적화 라이브러리의 프론트엔드로 작동할 수 있습니다.
Python API Python에서 공식화 프로토타입을 만들거나 솔버를 실행할 수 있어 빠른 실험과 배포에 유용합니다.
병렬/CPU 최적화 OpenMP 기반 병렬 처리 및 기타 CPU 수준 조정(고급 사용자 가이드 참조).

일반적인 사용 사례

  • 보행 로봇, 휴머노이드 또는 조작 로봇을 위한 모션 생성 및 계획.
  • 궤적을 높은 빈도로 다시 계산해야 하는 모델 예측 제어(MPC).
  • 동일한 DDP 메커니즘을 재사용할 수 있는 최적 상태 추정(예: 평활화).
  • 깔끔한 C++ API와 Python 바인딩 덕분에 새로운 최적 제어 알고리즘 연구.

시작하기

  1. Conda로 설치(권장):
    conda install -c conda-forge aligator
    
  2. 또는 경량 패키지 관리자 Pixi를 사용하여 소스에서 빌드:
    pixi run test   # 종속성 설치, 구성, 빌드 및 테스트 실행
    
    또는 저장소를 클론하고 CMake/Ninja로 컴파일합니다.
  3. 예제 실행 – 저장소에는 문제 정의, 솔버 생성, 최적 궤적 검색 방법을 보여주는 C++ 및 Python 예제 프로그램이 포함되어 있습니다.
  4. 고급 사용법 – CMake 통합, Python 확장 모듈 생성 또는 병렬 실행 활성화에 대해서는 고급 사용자 가이드를 참조하세요.

성능 및 벤치마킹

별도의 저장소인 aligator‑bench에는 다른 솔버와의 비교 벤치마크가 포함되어 있습니다. 이 라이브러리는 OpenMP와 효율적인 선형 대수 백엔드(Eigen, mimalloc 등)를 활용하여 실시간 사용을 위해 설계되었습니다.

관리자

핵심 팀은 Inria 및 LAAS‑CNRS에 기반을 두고 있으며, Willow 및 Gepetto 연구소의 기여자가 참여하고 있습니다. 이 프로젝트는 허용적인 BSD‑2‑Clause 라이선스로 배포됩니다.

인용 방법

연구에서 Aligator를 사용하는 경우 저장소 자체를 인용하고, ProxDDP 알고리즘에 대해서는 README에 나열된 IEEE T‑Robotics 논문(2025)을 인용하세요.


결론: Aligator는 C++ 성능과 Python 편의성을 모두 갖춘 빠르고 제약 조건이 있는 최적 제어 솔버가 필요한 로봇 공학 연구자와 엔지니어를 위한 진정한 프로덕션 등급 궤적 최적화 라이브러리입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트