ドイツ航空宇宙センター (DLR) のロボット工学・メカトロニクス研究所による、モデルベース デザインを使用した自律型ヒューマノイド ロボットの開発
課題
53 の自由度がある、2 本の手をもつモバイル ヒューマノイド ロボット向けの制御システムの開発
ソリューション
MATLAB および Simulink を使用したモデルベース デザインを使用した、コントローラーおよびプラントのモデル化、HIL テストおよびリアルタイム処理向けのコードの生成、軌跡の最適化、センサー キャリブレーションの自動化
結果
- プログラミングの欠陥が排除
- 複雑な機能を数時間で実装
- 学生による高度なコントロールの開発が可能
Deutsches Zentrum für Luft- und Rundfahrt (DLR、ドイツ航空宇宙センター) のロボット工学・メカトロニクス研究所 (RMC) のエンジニアおよび研究者は、環境を学習し、環境と対話することが可能なロボットの開発を行っています。その中には Agile Justin という、2 本の手をもつ世界最先端のヒューマノイド ロボットがあります。Agile Justin には上半身に 19、手に 26、モバイル プラットフォームに 8、全部で 53 の自由度があります。頭部のステレオ カメラと RGB-D センサー、すべての関節のトルク センサー、指の肌の触覚センサーが環境を感知します。
DLR RMC チームは、Agile Justin の高度なコントロール、キャリブレーションおよびパス計画のアルゴリズム開発に、MATLAB® および Simulink® を使用したモデルベース デザインを利用しました。
DLR の自律型学習ロボット ラボの責任者である Berthold Bäuml 氏は次のように述べています。「MATLAB および Simulink を使用したモデルベース デザインは、高度なロボット システムの設計に必要な、幅広いソフトウェア ドメインをカバーします。」「これにより、複雑なメカトロニクス システムおよびコントローラーのシミュレーション、リアルタイム HIL テスト、信号および画像処理、データ解析と可視化のためのコード生成が可能です。
課題
高度なヒューマノイド ロボットには、さまざまなセンサーからの入力を迅速に処理し、連続軌跡を計画し、何十個もある関節の動きを同時に管理する制御システムが必要です。
最初は、DLR RMC エンジニアは、ロボットの手と腕の制御アルゴリズムを別個に C/C++ で作成していました。指先から肩まで、すべての自由度の 1 つの制御ループを作成し始めると、そのシステムは非常に複雑で、手作業でコーディングできないことがわかりました。
DLR はロボット ソフトウェア フレームワーク aRDx を新たに開発し、この挑戦に対応しようとしましたが、設計モデルからコードを自動的に生成して、ハードウェアインザループ (HIL) テストを実行することができるツールも必要でした。さらに、大学院生がロボット制御システムを独自に、迅速に開発するために使用できるツールが必要でした。
ソリューション
DLR RMC は、Agile Justin やその他の自律型ロボット向けの高度な制御システムの開発のために MATLAB および Simulink を使用したモデルベース デザインを採用しました。
個々の関節用に、チームは微分方程式を使用したプラント モデルを作成しました。これは Simulink に S-Function として組み込まれました。
Simulink および Control System Toolbox™ を使用して、比例-積分-微分 (PID) コントローラーを作成し、シミュレーションによって制御パラメーターを調整しました。
Simulink Coder™ を使用して、コントローラー モデルから C コードを生成し、それを QNX リアルタイム オペレーティング システムを実行する PC に配布しました。HIL テストにより、関節装置の大幅な弾性やモーター トルクの非線形性だけでなく、センサー ノイズと精度を補正することができました。
制御設計の検証後、チームは生産ターゲットである Texas Instruments™ 社製 DSP 向けの C コードを生成しました。
そして胴体や腕などの複数の関節をもつ Agile Justin のコンポーネント用のモーション コントローラーを開発しました。さらに複雑な、大きくて重いメカニズムのダイナミクスを処理するために、デカルト インピーダンスの制御システムを Simulink で設計しました。
単関節コントローラーと同様に、Simulink でパラメーターを調整し、Simulink Coder を使用して HIL テスト用のコードを生成しました。
テスト中は、Stateflow® を使用して、バスケットを握ったり持ち上げたりなどのタスクの順序を設定しました。
制約付きの非線形最適化を実行して体全体の動きを計画するために、Optimization Toolbox™ で利用可能な逐次二次計画法のアルゴリズムを適用しました。
チームは、ステレオ カメラおよび RGB-D カメラから取得した画像から手のマーカーを特定するために、MATLAB で Image Processing Toolbox™ を使用して、自動キャリブレーション アルゴリズムを開発しました。このアルゴリズムは、Signal Processing Toolbox™ のバタワース フィルターを使用して、マーカーの位置推定からノイズを削除します。
DLR は、Agile Justin が環境から学習する機能を強化するために、モデルベース デザインを使用して新しいコントローラーを開発しています。
結果
- プログラミングの欠陥が排除. Bäuml 氏は次のように述べています。「Simulink Coder を使用したコード生成によって、制御設計を C/C+ で手作業でコーディングしていた時に取り込まれたプログラミングの欠陥が排除されました。」「手作業でのコーディングを試みていた時よりもさらに複雑なアルゴリズムの設計を行っているにもかかわらず、機能面での欠陥が約 80% 削減されました。」
- 複雑な機能を数時間で実装. Bäuml 氏は次のように述べています。「投げる動きの場合、Justin のコントローラーは 20 の自由度を連携させて、最適な TCP 軌跡を生成します。」「MATLAB、Simulink および Optimization Toolbox を使用して、この作業をある日の午後に行いました。」
- 学生による高度なコントロールの開発が可能. Bäuml 氏は次のように述べています。「モデルベース デザインを使用するとコードを作成する必要がないため、私たちと共にたった 6 か月働いただけのエンジニアリングの学生が、53 の自由度をもつロボット向けの高度なコントロールを開発できます。」「Simulink によって複数のフィードバック ループの相互作用に対処でき、複雑なアルゴリズムをグラフィカルに構築および実行できます。」