ロボットミドルウェアとは、複雑なロボット制御ソフトウェアシステムで使用されるミドルウェアのことである。
これは、ロボット製作者が特定の問題領域に集中しやすくするための「ソフトウェアの接着剤」と表現できます。[ 2 ]
ロボットミドルウェアに関するプロジェクトは多種多様に存在するが、どれも主流ではなく、実際、多くのロボットシステムはミドルウェアを全く使用していない。[ 3 ]ミドルウェア製品は、さまざまな標準、技術、アプローチに依存しているため、使用や相互運用が難しく、開発者によってはシステムを独自に統合することを好む場合もある。[ 3 ]
Playerプロジェクト(旧称Player/Stageプロジェクト)は、ロボット工学とセンサーシステムの研究のためのフリーソフトウェアを作成するプロジェクトです。 [ 4 ]その構成要素には、 PlayerネットワークサーバーとStageロボットプラットフォームシミュレータが含まれます。正確な統計を取得することは困難ですが、Playerは研究および高等教育において最も人気のあるオープンソースのロボットインターフェースの1つです。[ 5 ]主要なインテリジェントロボット工学のジャーナルや会議のほとんどは、PlayerとStageを使用した実際のロボット実験とシミュレーションロボット実験を特集した論文を定期的に掲載しています。
RTミドルウェアは、分散オブジェクト技術に基づいたロボットの共通プラットフォーム標準です。[ 6 ] RTミドルウェアは、RTコンポーネントと呼ばれるさまざまなネットワーク対応ロボット要素を統合することで、さまざまなネットワークロボットシステムの構築をサポートします。RTコンポーネントの仕様標準は、オブジェクト管理グループ(OMG)によって議論され、定義されています。[ 7 ]
Urbiは、ロボット工学や複雑なシステム向けのアプリケーション開発に使用される、C++で記述されたオープンソースのクロスプラットフォームソフトウェアプラットフォームです。UObject分散C++コンポーネントアーキテクチャをベースとしています。また、並列処理とイベント駆動型のスクリプト言語であるurbiscriptオーケストレーション言語も含まれています。UObjectコンポーネントはurbiscriptにプラグインでき、スクリプトによって相互作用やデータ交換を指定できるネイティブオブジェクトとして動作します。UObjectはurbiscriptインタープリタにリンクすることも、別のスレッド、別のプロセス、ローカルネットワーク上のマシン、または遠隔ネットワーク上のマシンで「リモート」モードで自律プロセスとして実行することもできます。
Miroは、 CORBA (Common Object Request Broker Architecture)技術に基づいた、モバイルロボット制御のための分散オブジェクト指向フレームワークです。Miroのコアコンポーネントは、OSに依存しないプロセス間、ネットワーク、リアルタイム通信のためのオブジェクト指向マルチプラットフォームフレームワークであるACE(Adaptive Communications Environment)の支援を受けて開発されました。これらのコンポーネントは、高性能かつリアルタイムなアプリケーション向けに設計されたCORBA実装であるTAO(The ACE ORB)をORB(Object Request Broker)として使用しています。現在サポートされているプラットフォームには、Pioneers、B21、一部のロボットサッカーロボット、およびさまざまなロボットセンサーが含まれます。[ 8 ]
オルカは、その目標を次のように説明している。
彼らはまた、「成功するためには、このような目的を持つフレームワークは、汎用的で柔軟かつ拡張可能でなければならず、商用アプリケーションでの使用に十分堅牢で高性能かつフル機能であると同時に、大学の研究環境での実験に十分シンプルである必要がある」と述べている。[ 9 ]
彼らは自分たちのアプローチを次のように説明している。
Orcaソフトウェアは、LGPLおよびGPLライセンスに基づいてリリースされています。
OpenRDKは、疎結合モジュールの開発を目的とした、ロボット工学向けのオープンソースソフトウェアフレームワークです。透過的な並行処理管理、プロセス間(ソケット経由)およびプロセス内(共有メモリ経由)のブラックボードベースの通信、そして入出力データポートの概念的なシステム設計を可能にするリンク技術を提供します。シミュレータや汎用ロボットドライバへの接続モジュールも用意されています。
Rock(Robot Construction Kit)は、ロボットシステム開発のためのソフトウェアフレームワークです。基盤となるコンポーネントモデルは、Orocos RTT(Real Time Toolkit)に基づいています。Rockは、研究および産業分野における幅広い用途に対応する、高性能かつ信頼性の高いロボットシステムのセットアップと運用に必要なすべてのツールを提供します。すぐに使用できるドライバとモジュールが豊富に用意されており、新しいコンポーネントを追加することで容易に拡張できます。
ISAAC(NVIDIA Isaac Software Development Kit、SDK)は、人工知能搭載ロボットの開発と展開を加速するための開発者ツールボックスです。SDKには、Isaac Robot Engine、高性能ロボットアルゴリズム(知覚とナビゲーションを実行するため)を含むパッケージ、およびハードウェアリファレンスアプリケーションが含まれています。Isaac Simは、仮想ロボットラボであり、高忠実度3Dワールドシミュレータです。コストとリスクを削減することで、ロボットの研究、設計、開発を加速します。開発者は、詳細で非常にリアルなシナリオでロボットを迅速かつ容易にトレーニングおよびテストできます。GitHubには、サポートされているハードウェアプラットフォーム(BOMの詳細を含む)を備えたオープンソースのコミュニティバージョンがあります。詳細はkaya-robotを参照してください。
ROS ( Robot Operating System ) は、異種混在のコンピュータクラスタ上でロボットソフトウェアを開発するためのソフトウェアフレームワークの集合体です。ROS は、ハードウェア抽象化、低レベルのデバイス制御、一般的に使用される機能の実装、プロセス間のメッセージパッシング、パッケージ管理などの標準的なオペレーティングシステムサービスを提供します。
YARPは、ロボット内のセンサー、プロセッサ、アクチュエータを相互接続するためにC++で記述されたオープンソースのソフトウェアパッケージです。
DDX (Dynamic Data eXchange)は、 CSIROが開発した( Linux / BSD / Unix ) ミドルウェアで、分散ロボットコントローラに軽量なリアルタイムの公開/購読サービスを提供します。DDX は、効率的な共有メモリ機構を介して、プログラムの連合が実行時にデータを共有できるようにします。複数のマシンはグローバルなネーミングサービスによってリンクでき、必要に応じてマシン間でデータがマルチキャストされます。 [ 10 ] DDX は、ドラグライン、LHD トラック、掘削機、岩石破砕機など、多数の大型鉱山機械を自動化するために開発されました。