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 바인딩 덕분에 새로운 최적 제어 알고리즘 연구.
시작하기
- Conda로 설치(권장):
conda install -c conda-forge aligator - 또는 경량 패키지 관리자 Pixi를 사용하여 소스에서 빌드:
또는 저장소를 클론하고 CMake/Ninja로 컴파일합니다.pixi run test # 종속성 설치, 구성, 빌드 및 테스트 실행 - 예제 실행 – 저장소에는 문제 정의, 솔버 생성, 최적 궤적 검색 방법을 보여주는 C++ 및 Python 예제 프로그램이 포함되어 있습니다.
- 고급 사용법 – 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 편의성을 모두 갖춘 빠르고 제약 조건이 있는 최적 제어 솔버가 필요한 로봇 공학 연구자와 엔지니어를 위한 진정한 프로덕션 등급 궤적 최적화 라이브러리입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트