- Important note (July 2021): this library is currently only scarcely maintained,
- it may take a while until we respond to bugs or feature requests.
これは、ロボット工学における制御、推定、最適化、動作計画のための効率的な C++ ライブラリである Control Toolbox です。
Wiki へのリンク、クイックスタート!
詳細なドキュメントはこちらからご覧ください。
これは ADRL Control Toolbox (「CT」) であり、効率的なモデリング、制御、推定、軌道の最適化、およびモデルの予測制御のためのオープンソース C++ ライブラリです。 CT は幅広いクラスの動的システムに適用できますが、ロボット工学向けに特別に設計された追加のモデリング ツールを備えています。このページでは、その一般的な概念と主要な構成要素の概要を説明し、選択したアプリケーション例を紹介します。
このライブラリには、コントローラーを設計および評価し、動的システムをモデル化し、最適な制御問題を解決するためのいくつかのツールが含まれています。 CT は、次の機能を念頭に置いて設計されました。
システムとダイナミクス:
軌道最適化、最適制御、(非線形)モデル予測制御:
パフォーマンス:
ロボット モデリング、剛体の運動学および力学:
自動微分:
Control Toolbox は、飛行ロボット、歩行ロボット、地上ロボットのハードウェアおよびシミュレーション制御タスクに使用されてきました。
四足動物の歩行の最適化など、もう少し複雑な最適化の例が ct_ros で利用できます。
制御コミュニティとロボットコミュニティの両方の研究者と実践者に共通するタスクは、システムをモデル化し、運動方程式を実装し、モデルベースのコントローラ、推定器、計画アルゴリズムなどを設計することです。遅かれ早かれ、効率的な実装という問題に直面することになります。 、導関数情報の計算、コスト関数と制約の定式化、またはモデル予測制御方式でのコントローラーの実行。
Control Toolbox は、これらのタスクのために特別に設計されています。これは完全に C++ で書かれており、ロボットやその他の作動ハードウェア上でオンライン (ループ内) で実行できる効率の高いコードに重点を置いています。 CT の主な貢献は、単純な LQR 参照実装から制約付きモデルの予測制御に至るまで、最適な制御アルゴリズムの実装です。 CT は自動微分 (Auto-Diff) をサポートしており、任意のスカラー関数およびベクトル値関数の導関数コードを生成できます。ツールボックスは使いやすさを念頭に置いて設計されており、ユーザーは非線形モデル予測制御 (NMPC) や数値最適制御などの高度な概念を最小限の労力で簡単に適用できます。当社は最先端の Auto-Diff 互換ロボット モデリング ソフトウェアへのインターフェイスを提供しますが、他のすべてのモジュールは特定のモデリング フレームワークから独立しているため、コードを既存の C/C++ コードまたはライブラリとインターフェイスできます。
CT は、多数のハードウェア実験、デモンストレーション、学術出版物など、さまざまなプロジェクトで使用されて成功しています。ハードウェア アプリケーションの例としては、衝突回避によるオンライン軌道の最適化 cite Giftthaler2017autodiff、四足動物の軌道最適化 cite neunert:2017:ral およびモバイル マニピュレーター cite Giftthaler2017efficient、地上ロボットの NMPC cite neunert2017mpc および UAV cite neunert16hexrotor などがあります。このプロジェクトはチューリッヒ工科大学の Agile & Dexterous Robotics Lab で行われた研究に由来していますが、より多くのアプリケーションとアルゴリズムの分野をカバーするために継続的に拡張されています。
ソフトウェアはロボット システムの重要な構成要素の 1 つであり、ロボット用のソフトウェア ツールとライブラリの作成には多大な努力が払われています。しかし、制御、特に数値最適制御に関しては、迅速な開発に使いやすく、オンラインでの使用に十分な効率を兼ね備えた、利用可能なオープンソース ツールはあまりありません。数値最適制御および軌道最適化用の成熟したツールボックスは存在しますが、それらは高度に特殊化されたスタンドアロン ツールであるため、他のアプリケーションには十分な柔軟性が提供されません。ここで CT が活躍します。CT は、オンライン操作を可能にする効率を最適化しながら、制御方法の迅速な開発と評価に必要なツールを提供するためにゼロから設計されました。制御に重点が置かれていますが、提供されるツールはシミュレーション、推定、または最適化アプリケーションにも使用できます。
他のロボット ソフトウェアとは対照的に、CT は厳密な統合アプリケーションではありませんが、まさに文字通りのツールボックスとして見ることができます。目の前のタスクを解決するために使用したり組み合わせたりできるさまざまなツールが提供されます。使いやすさは設計時の主要な基準であり、アプリケーション例が提供されていますが、CT の使用には依然としてプログラミングと制御の知識が必要です。ただし、ユーザーは、線形代数や数値手法に関する深い経験を必要とする標準手法の実装から解放されます。さらに、共通の定義とタイプを使用することにより、システム、コントローラー、インテグレーターなどのさまざまなコンポーネント間のシームレスな統合が提供され、迅速なプロトタイピングが可能になります。
CT の主な焦点は効率であるため、CT は完全に C++ で実装されています。 CT は統合アプリケーションではなくツールボックスとして設計されているため、ユーザーに最大限の柔軟性を提供するよう努めました。したがって、ROS などの特定のミドルウェアに関連付けられることはなく、依存関係は最小限に抑えられます。 CT に不可欠な 2 つの依存関係は、Eigen と Kindr (Eigen に基づく) です。 Eigen は、標準的な行列演算とより高度な線形代数手法の非常に効率的な実装を提供するため、C++ の線形代数の事実上の標準であるため、この Eigen への依存関係は意図的なものです。 Kindr はヘッダーのみの運動学ライブラリであり、その上に構築され、四元数、オイラー角、回転行列などのさまざまな回転表現のデータ型を提供します。
Control Toolbox は 3 つの主要モジュールで構成されています。コア ( ct_core
) モジュール、最適制御 ( ct_optcon
) モジュール、および剛体ダイナミクス ( ct_rbd
) モジュール。モジュール間には明確な階層があります。つまり、モジュールはこの順序で相互に依存します。たとえば、optcon または rbd モジュールなしでコア モジュールを使用できます。
ct_core
) モジュールは、一般的な型定義と数学的ツールを提供します。たとえば、ほとんどのデータ型定義、システムとコントローラーの定義に加え、微分方程式の数値積分器などの基本機能が含まれています。ct_optcon
) モジュールは、コア モジュールの上に構築され、最適制御問題を定義および解決するためのインフラストラクチャを追加します。これには、コスト関数、制約、ソルバー バックエンド、および一般的な MPC ラッパーを定義するための機能が含まれています。ct_rbd
) モジュールは、Rigid Body Dynamics システムをモデリングするためのツールと、 ct_core
およびct_optcon
データ型とのインターフェイスを提供します。サンプルだけでなくテスト用に、四足歩行、ロボット アーム、通常のクアッドローター、吊り下げ荷重のあるクアッドローターなどのさまざまなロボット モデルを含むモデル モジュール ( ct_models
) も提供します。
4 つの異なるメイン モジュールについては、以下で詳しく説明します。
コントロール ツールボックスの使用を開始するには、doxygen を使用してリポジトリ ドキュメントを構築し、「はじめに」チュートリアルに従ってください。
このソフトウェアは、2014 年から 2018 年にかけて、スイス連邦工科大学チューリッヒ校の Agile & Dexterous Robotics Lab で開発されました。その間、開発は、ジョナスへの SNF 教授賞を通じたスイス国立科学財団 (SNF) からの資金援助によって可能になりました。 Buchli と National Competence Centers in Research (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 で見つけることができます。
このツールボックスは、次の学術出版物で使用されているか、その実現に役立っています。
マルクス・ギフトターラー、ミヒャエル・ノイナート、マルクス・ストーブル、ヨナス・ブフリ。 「The Control Toolbox - ロボット工学、最適およびモデル予測制御のためのオープンソース C++ ライブラリ」。 IEEE Simpar 2018 (最優秀学生論文賞)。 arXiv プレプリント
マルクス・ギフトターラー、ミヒャエル・ノイナート、マルクス・ストーブル、ヨナス・ブフリ、モーリッツ・ディール。 「非線形最適制御のための反復ガウスニュートン撮影法のファミリー」。 IROS 2018.arXiv プレプリント
ヤン・カリウス、ルネ・ランフトル、ヴラドレン・コルトゥン、マルコ・ヒュッター。 「暗黙的なハードコンタクトによる軌道の最適化」。 IEEE Robotics and Automation Letters 3、no. 4 (2018): 3316-3323。
ミヒャエル・ノイナート、マルクス・ストイブレ、マルクス・ギフトターラー、ダリオ・ベリコーソ、ヤン・カリウス、クリスチャン・ゲーリング、マルコ・ヒュッター、ヨナス・ブフリ。 「四足動物の接触による全身モデル予測制御」。 IEEE Robotics and Automation Letters、2017。arXiv プレプリント
マルクス・ギフトターラーとヨナス・ブフリ。 「等価制約付き反復線形二次最適制御への投影アプローチ」。 2017 IEEE-RAS ヒューマノイド ロボット国際会議、11 月 15 ~ 17 日、英国バーミンガム。 IEEE エクスプロア
マルクス・ギフトターラー、ミヒャエル・ノイナート、マルクス・ストイブレ、マルコ・フリジェリオ、クラウディオ・セミーニ、ヨナス・ブフリ。 「最適な制御と推定のための剛体ダイナミクスの自動微分」、Advanced Robotics、SIMPAR 特集号。 2017 年 11 月。arXiv プレプリント
マイケル・ノイナート、マルクス・ギフトターラー、マルコ・フリジェリオ、クラウディオ・セミーニ、ヨナス・ブフリ。 「制御、最適化、推定のための剛体ダイナミクスの高速微分」、自律ロボットのシミュレーション、モデリング、プログラミングに関する 2016 IEEE 国際会議、サンフランシスコ。 (最優秀論文賞)。 IEEE エクスプロア
Michael Neunert、Farbod Farshidian、Alexander W. Winkler、Jonas Buchli 「四足動物の接触による軌跡の最適化と四足動物の自動歩行検出」、IEEE Robotics and Automation Letters、IEEE Xplore
マイケル・ノイナート、セドリック・ド・クルーザ、ファドリ・ファーラー、ミナ・カメル、ファルボド・ファルシディアン、ローランド・ジークヴァルト、ヨナス・ブフリ。 「統合軌道の最適化と追跡のための高速非線形モデル予測制御」、2016 IEEE International Conference on Robotics and Automation (ICRA)、IEEE Xplore
マルクス・ギフトターラー、ファーボード・ファルシディアン、ティモシー・サンディ、ルーカス・シュターデルマン、ヨナス・ブフリ。 「最適制御を使用した非ホロノミック制約を備えたモバイル マニピュレーターの効率的な運動学計画」、ロボティクスとオートメーションに関する IEEE 国際会議、2017 年、シンガポール。 arXiv プレプリント
マーカス・ギフトターラー、ティモシー・サンディ、キャスリン・ドーフラー、イアン・ブルックス、マーク・バッキンガム、ゴンサロ・レイ、マティアス・コーラー、ファビオ・グラマジオ、ジョナス・ブフリ。 「1:1 スケールのモバイル ロボット製造: In situ Fabricator」。建設ロボット工学、Springer Journal no. 41693 arXiv プレプリント
ティモシー・サンディ、マルクス・ギフトターラー、キャスリン・デルフラー、マティアス・コーラー、ヨナス・ブフリ。 「Autonomous Repositioning and Localization of an In situ Fabricator」、IEEE International Conference on Robotics and Automation 2016、ストックホルム、スウェーデン。 IEEE エクスプロア
マイケル・ノイナート、ファーボッド・ファルシディアン、ジョナス・ブフリ (2014)。適応型リアルタイム非線形モデル予測モーション制御。 IROS 2014 におけるロボット動作の計画と制御における機械学習に関するワークショップのプレプリント