系列文章目錄
前言
許多現代控制方法,如模型預測控制(model-predictive control),在很大程度上依賴于實時解決優化問題。特別是,高效解決優化控制問題的能力使復雜機器人系統在實現高動態行為(highly dynamic behaviors)方面取得了許多最新突破。以實時性能(real-time performance)解決這些優化問題的能力極具挑戰性,目前是機器人學(robotics)、航空航天(aerospace)、運籌學(operations research)、金融學(finance)等眾多學科中一個非常活躍的研究領域。為了讓那些可能不具備非線性優化(nonlinear optimization)、動力學(dynamics)或控制(control)方面必要背景的從業人員更容易使用這些功能強大的方法,機器人社區開發了幾款開源軟件包,專門用于設置和解決最優控制問題。本教程式研討會面向廣大聽眾,旨在讓社區了解這些軟件包的優點,并重點介紹現代最優控制技術最近取得的成功。
一、求解器
1.1?TrajectoryOptimization.jl
卡內基梅隆大學機器人探索實驗室用 Julia 編程語言開發了一套工具,用于設置和解決軌跡優化(trajectory optimization)問題。他們的核心求解器 ALTRO 使用迭代 LQR (iLQR) 和增強拉格朗日法 (augmented Lagrangian method,ALM) 來處理一般路徑約束,并結合主動集方法(active-set method)來完善解決方案。盡管 ALTRO 是用高級編程語言編寫的,但它在凸規劃(convex programs)、二階錐規劃(second-order cone programs)和一般非線性軌跡優化(general nonlinear trajectory optimization)問題上的表現令人印象深刻。它能原生處理三維旋轉,在李代數(Lie algebra)上執行優化,并使用單位四元數(unit quaternions)作為全局參數化(global parameterization)。
1.2?OCS2
OCS2 是專為切換系統(Switched Systems)優化控制(Optimal Control of Switched Systems,OCS2)定制的 C++ 工具箱。該工具箱提供了連續時間域(稱為 SLQ)和離散時間域(稱為 iLQR)中微分動態規劃(Differential Dynamic Programming,DDP)算法的高效實現。OCS2 通過增強拉格朗日法(augmented Lagrangian)和松弛障礙法處理一般路徑約束。為便于在機器人任務(robotic tasks)中應用 OCS2,它為用戶提供了額外的工具,以便根據 URDF 模型設置系統動力學(如運動學或動力學模型)和成本/約束(如避免自碰撞(self-collision avoidance)和末端執行器跟蹤(end-effector tracking))。該庫還提供了一個自動微分(automatic differentiation)工具,用于計算系統動力學(dynamics)、約束(constraints)和成本(cost)的導數。該工具箱的實現高效且數值穩定(numerically stable),加上其用戶友好的界面,為在機載計算能力有限的眾多機器人應用中以 MPC 方式部署該工具箱鋪平了道路。
1.3?Crocoddyl
Crocoddyl 是一種優化控制求解器,用于機械臂(manipulator)和足式機器人(legged robots)的全身模型預測控制(whole-body model predictive control)。它從一開始就建立在前端(成本和約束圖(graph of cost and constraints)、積分器(integration)、函數及其導數的評估)和后端(數值約束求解器(numerical constrained solver))的分離之上。在提供通用接口的同時,前端主要基于剛體動力學庫 Pinocchio,該庫使 Crocoddyl 能夠非常高效地評估成本、動力學及其導數,并提供代碼生成整個計算的可能性。對于足式機器人,接觸約束條件可直接在機器人動力學內部處理,并采用獨創算法求解,從而實現穩健高效的評估。評估圖的構建遵循 "先離散,后求解 "(discretize first, solve second)的方法,實現了后端和前端的完全解耦。我們提出了幾種后端求解器,它們大多是 DDP 算法的變體。主要的 DDP 求解器實現了多重射擊策略(multiple shooting strategy)和盒式約束(box constraints)。我們正在發布一個等式/不等式約束增強拉格朗日求解器(equality/inequality-constraint augmented Lagrangian solver)和一個能夠考慮外部參數(如接觸位置(contact location)、定時(timings)或編碼設計參數(codesign parameters))的求解器。Crocoddyl 已用于在仿人機器人、機械臂和四足機器人上實現帶有低級扭矩伺服(low-level torque servo)的在線全身模型預測控制(online whole-body model predictive control)。將提出復制控制器的指導原則。Crocoddyl 也是一項基于開放源代碼和 BSD-3 許可的國際合作項目。它由法國國家科學研究中心(LAAS-CNRS)、巴黎英瑞亞公司(Inria Paris)、愛丁堡大學、牛津大學、特倫托大學、馬克斯-普朗克研究所或紐約大學牽頭開發。我們很高興為新用戶提供指導,也歡迎大家為我們提供幫助。
1.4?SCP Toolbox
序列凸規劃(Sequential Convex Programming,SCP)工具箱是一個 Julia 庫,它為一套實時序列凸編程(SCP)算法提供了解析器 - 求解器接口。高級優化控制問題解析器為用戶提供了使用以下算法解決通用非凸軌跡問題(generic nonconvex trajectory problems)的能力: LCvx、SCvx、PTR 和 GuSTO。這些算法已應用于航空航天和機器人獨立研究問題,可能與 NASA、SpaceX、Blue Origin 和 Masten Space Systems 等組織相關。該工具箱源于一篇最新的綜合教程論文,介紹了無損凸化和 SCP 算法的理論與實踐。除初學者教程外,該工具箱還提供了 8 個預定義示例,包括四旋翼飛行、NASA 阿波羅交會、火星著陸和 SpaceX 星際飛船著陸翻轉