- Important note (July 2021): this library is currently only scarcely maintained,
- it may take a while until we respond to bugs or feature requests.
這是 Control Toolbox,一個用於機器人控制、估計、最佳化和運動規劃的高效 C++ 函式庫。
連結到維基,快速入門!
在這裡找到詳細的文件。
這就是 ADRL 控制工具箱(「CT」),一個用於高效建模、控制、估計、軌跡優化和模型預測控制的開源 C++ 庫。 CT 適用於廣泛的動態系統,但具有專為機器人設計的附加建模工具。本頁概述了其一般概念、主要建構模組並重點介紹了選定的應用範例。
本函式庫包含多種用於設計和評估控制器、動態系統建模和解決最優控制問題的工具。 CT 的設計考慮了以下特點:
系統和動力學:
軌跡最佳化、最佳控制和(非線性)模型預測控制:
表現:
機器人建模、剛體運動學與動力學:
自動微分:
控制工具箱已用於飛行、行走和地面機器人的硬體和模擬控制任務。
ct_ros 中提供了稍微複雜的最佳化範例,包括四足動物的步態最佳化。
控制和機器人領域的研究人員和從業者的一項常見任務是對系統進行建模、實現運動方程式以及設計基於模型的控制器、估計器、規劃演算法等。計算導數訊息,制定成本函數和約束或以模型預測控制方式運行控制器。
控制工具箱是專門為這些任務而設計的。它完全用 C++ 編寫,重點是可以在機器人或其他驅動硬體上線上(循環)運行的高效程式碼。 CT 的主要貢獻是其最優控制演算法的實現,涵蓋從簡單的 LQR 參考實現到約束模型預測控制的範圍。 CT 支援自動微分 (Auto-Diff),並允許為任意標量和向量值函數產生導數程式碼。我們在設計工具箱時考慮到了可用性,使用戶能夠輕鬆、輕鬆地應用非線性模型預測控制 (NMPC) 或數值最佳控制等先進概念。雖然我們提供了與最先進的 Auto-Diff 相容機器人建模軟體的接口,但所有其他模組都獨立於特定的建模框架,允許程式碼與現有的 C/C++ 程式碼或函式庫接口。
CT已成功應用於各種不同的項目,包括大量的硬體實驗、演示和學術出版物。範例硬體應用程式包括避免碰撞的線上軌跡最佳化citegifthaler2017autodiff、四足動物軌跡優化citeneunert:2017:ral和移動操縱器citegifthaler2017efficient以及地面機器人citeneunert2017mpc和無人機citeneunert16hexrotorneunert16hexrotor上的NM。該計畫源自於蘇黎世聯邦理工學院敏捷靈巧機器人實驗室的研究,但不斷擴展以涵蓋更多應用和演算法領域。
軟體是機器人系統的關鍵建構模組之一,人們在創建機器人軟體工具和庫方面付出了巨大的努力。然而,當涉及到控制,特別是數值最佳控制時,沒有太多可用的開源工具既易於快速開發又足夠高效用於線上使用。雖然存在用於數值最佳控制和軌跡最佳化的成熟工具箱,但它們是高度專業化的獨立工具,無法為其他應用程式提供足夠的靈活性。這就是 CT 發揮作用的地方。雖然重點在於控制,但所提供的工具也可用於模擬、估計或最佳化應用。
與其他機器人軟體相比,CT 並不是一個嚴格的整合應用程序,而是可以直接視為一個工具箱:它提供了各種可以使用和組合的工具來解決手頭上的任務。雖然易用性一直是設計過程中的主要標準,並提供了應用範例,但使用 CT 仍然需要程式設計和控制知識。然而,它使用戶無需實施需要深入了解線性代數或數值方法的標準方法。此外,透過使用通用定義和類型,可以提供系統、控制器或集成器等不同組件之間的無縫集成,從而實現快速原型設計。
CT 的主要關注點是效率,這就是它完全用 C++ 實現的原因。由於 CT 被設計為一個工具箱而不是一個整合應用程序,因此我們試圖為使用者提供最大的靈活性。因此,它不依賴 ROS 等特定中間件,並且依賴性保持在最低限度。 CT 的兩個基本依賴項是 Eigen 和 Kindr(基於 Eigen)。這種 Eigen 依賴性是有意為之的,因為 Eigen 是 C++ 中線性代數的事實上的標準,因為它提供了標準矩陣運算的高效實現以及更高級的線性代數方法。 Kindr 是一個僅包含頭檔的運動學函式庫,它建構在它的基礎上,並為不同的旋轉表示(例如四元數、歐拉角或旋轉矩陣)提供資料類型。
控制工具箱由三個主要模組組成。核心 ( ct_core
) 模組、最佳控制 ( ct_optcon
) 模組和剛體動力學 ( ct_rbd
) 模組。模組之間有清晰的層次結構。這意味著,模組按此順序相互依賴,例如,您可以使用核心模組而不使用 optcon 或 rbd 模組。
ct_core
) 模組提供通用類型定義和數學工具。例如,它包含大多數資料類型定義、系統和控制器的定義以及微分方程數值積分器等基本功能。ct_optcon
) 模組建構在核心模組之上,並添加了用於定義和解決最佳控制問題的基礎架構。它包含定義成本函數、限制條件、求解器後端和通用 MPC 包裝器的功能。ct_rbd
) 模組提供了用於對剛體動力學系統進行建模的工具以及與ct_core
和ct_optcon
資料類型的介面。為了進行測試和範例,我們還提供了模型模組 ( ct_models
),其中包含各種機器人模型,包括四足動物、機械手臂、普通四旋翼飛行器和帶有懸掛負載的四旋翼飛行器。
以下詳細介紹這四個不同的主要模組。
要開始使用控制工具箱,請使用 doxygen 建立儲存庫文件並遵循「入門」教學。
該軟體於 2014 年至 2018 年間在瑞士蘇黎世聯邦理工學院的敏捷與靈巧機器人實驗室開發。 Buchli 和國家機器人和數位製造研究中心(NCCR)。
Control Toolbox 是根據 BSD-2 條款授權發布的。請參閱 LICENCE.txt 和 NOTICE.txt
@article{adrlCT,
title={The control toolbox — An open-source C++ library for robotics, optimal and model predictive control},
author={Markus Giftthaler and Michael Neunert and Markus St{"a}uble and Jonas Buchli},
journal={2018 IEEE International Conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR)},
year={2018},
pages={123-129}
}
v2.3 之前的早期版本託管在 bitbucket 上,可以在 https://bitbucket.org/adrlab/ct/wiki/Home 找到它們
此工具箱已用於或協助實現以下學術出版物:
馬庫斯·吉夫塔勒、邁克爾·諾伊納特、馬庫斯·施陶布爾和喬納斯·布赫利。 「控制工具箱 - 用於機器人、最優和模型預測控制的開源 C++ 庫」。 IEEE Simpar 2018(最佳學生論文獎)。 arXiv 預印本
馬庫斯·吉夫塔勒、邁克爾·諾伊納特、馬庫斯·施陶布爾、喬納斯·布赫利和莫里茨·迪爾。 「非線性最優控制的迭代高斯-牛頓射擊方法系列」。 IROS 2018。
揚·卡里烏斯、雷內·蘭福特、弗拉德倫·科爾通和馬可·哈特。 “透過隱式硬接觸進行軌跡優化。” IEEE 機器人與自動化快報 3,編號。 4(2018):3316-3323。
麥可·諾伊納特、馬庫斯·施陶布爾、馬庫斯·吉夫塔勒、達裡奧·貝利科索、珍·卡里烏斯、克里斯蒂安·格林、馬可·哈特和喬納斯·布赫利。 「透過四足動物的接觸進行全身模型預測控制」。 IEEE 機器人與自動化快報,2017 年。
馬庫斯·吉夫塔勒和喬納斯·布赫利。 「等式約束迭代線性二次最佳控制的投影方法」。 2017 年 IEEE-RAS 國際人形機器人會議,11 月 15 日至 17 日,英國伯明罕。 IEEE探索
馬庫斯·吉夫塔勒、邁克爾·諾伊納特、馬庫斯·施陶布爾、馬可·弗里傑裡奧、克勞迪奧·塞米尼和喬納斯·布赫利。 “用於最優控制和估計的剛體動力學自動微分”,高級機器人學,SIMPAR 特刊。 2017 年 11 月。
麥可·諾伊納特、馬庫斯·吉夫塔勒、馬可·弗里傑裡奧、克勞迪奧·塞米尼和喬納斯·布赫利。 “用於控制、優化和估計的剛體動力學的快速導數”,2016 年 IEEE 國際自主機器人模擬、建模和程式設計會議,舊金山。 (最佳論文獎)。 IEEE探索
Michael Neunert、Farbod Farshidian、Alexander W. Winkler、Jonas Buchli“透過四足動物的接觸和自動步態發現進行軌跡優化”,IEEE 機器人與自動化快報、IEEE Xplore
麥可·諾伊納特、塞德里克·德·克魯薩、法德里·富勒、米娜·卡梅爾、法博德·法什迪安、羅蘭·西格沃特、喬納斯·布赫利。 “用於統一軌跡優化和追蹤的快速非線性模型預測控制”,2016年IEEE機器人與自動化國際會議(ICRA),IEEE Xplore
馬庫斯·吉夫塔勒、法博德·法爾希迪安、提摩西·桑迪、盧卡斯·斯塔德爾曼和喬納斯·布赫利。 “使用最優控制對具有非完整約束的移動機械手進行高效運動規劃”,IEEE 國際機器人與自動化會議,2017 年,新加坡。 arXiv 預印本
馬庫斯·吉夫塔勒、提摩西·桑迪、凱瑟琳·多弗勒、伊恩·布魯克斯、馬克·白金漢、貢薩洛·雷伊、馬蒂亞斯·科勒、法比奧·格拉馬齊奧和喬納斯·布赫利。 「1:1 比例的移動機器人製造:原位製造機」。建築機器人,施普林格雜誌第 1 號。 41693 arXiv 預印本
蒂莫西·桑迪、馬庫斯·吉夫塔勒、凱瑟琳·多弗勒、馬蒂亞斯·科勒和喬納斯·布赫利。 “原位製造商的自主重新定位和本地化”,2016 年 IEEE 國際機器人與自動化會議,瑞典斯德哥爾摩。 IEEE探索
麥可‧諾伊納特、法博德‧法什迪安、喬納斯‧布赫利 (2014)。自適應即時非線性模型預測運動控制。 IROS 2014 機器人運動規劃與控制機器學習研討會預印本