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 計算系統動力學與代價函數的導數。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案