Simple-Robotics/aligator
A versatile and efficient C++ library for real-time constrained trajectory optimization
Aligator – 机器人的轨迹优化库
它是什么
Aligator 是一个开源的 C++ 库(附有 Python API),提供工具来制定并解决机器人和其它动态系统的最优控制/轨迹优化问题。它实现了快速、受限的求解器,例如 ProxDDP 和 FeasibleDDP,可用于运动规划、模型预测控制和最优状态估计。
主要功能
| 功能 | 详细说明 |
|---|---|
| 建模接口 | 在 C++(或通过 Python)中逐节点建立最优控制问题。 |
| 求解器 | 近端 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 便利性的机器人研究人员和工程师而设计。
相关
- 项目
- 项目
- 项目
- 项目
- 项目