leggedrobotics/ocs2
Optimal Control for Switched Systems
解决的问题
OCS2 提供了一个用于制定和解决非线性最优控制问题的 C++ 工具箱,专门为机器人领域的实时模型预测控制 (MPC) 而设计。它解决了在通常具有有限车载计算能力的机器人平台上实现数值稳定且高效控制的挑战。
工作原理
该工具箱使用多种求解器(包括 SLQ、iLQR、SQP、SLP 和 IPM)来处理最优控制问题。它支持带有模式调度 (mode schedules) 和跳跃映射 (jump maps) 的切换系统 OCP。为了简化机器人设置,它与 URDF 模型集成,以定义系统动力学、代价函数和约束条件(例如自我碰撞避免)。它还具有用于计算导数的自动微分功能,并提供用于部署的 ROS 接口。
适用对象
专为需要为复杂机器人系统(如足式机器人、四旋翼飞行器或移动机械臂)实现实时 MPC 的机器人工程师和研究人员设计。
亮点
- 多种求解器:支持包括 SLQ、iLQR、SQP、SLP 和 IPM 在内的广泛算法。
- 切换系统支持:使用模式调度和跳跃映射处理单域和多域问题。
- 约束处理:通过增广拉格朗日法 (Augmented Lagrangian) 和松弛障碍函数法 (relaxed barrier methods) 管理硬约束和软约束。
- 机器人工具:包括通过 Pinocchio 实现的 URDF-to-model 助手,以及通过 HPP-FCL 实现的自我碰撞约束。
- ROS 集成:为 ROS 1 和 ROS 2 提供专用的消息、节点和可视化工具。
- 自动微分:利用 CppAD 计算系统动力学和代价函数的导数。
相关
- 项目
- 项目
- 项目
- 项目
- 项目