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 绑定,可用于新最优控制算法的研究。

快速开始

  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 便利性的机器人研究人员和工程师而设计。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目