オープンソースロボティクス - 百科事典
オープンソースロボティクスは、オープンソースのハードウェアと無料およびオープンソースのソフトウェアで開発されたロボットの一種です。設計図、回路図、ソースコードを公に共有することで、オープンデザイン運動やメーカー運動、オープンサイエンスと密接に関連しています。
要件
オープンソースロボティクスは、ハードウェアの情報が簡単に判別できるため、他者が簡単に再構築できることを意味します。これに対応して、設計には一般的に簡単に入手可能な標準的なサブコンポーネントとツールを使用するようにし、構築プロセスには材料請求書や詳細な(「IKEAスタイル」の)ステップバイステップの組み立ておよびテスト指示書が含まれる必要があります。(CADファイルだけでは十分ではなく、組み立てまたはテストを実行する手順を示しません)。これらの要件は、一般的なオープンソースハードウェアに標準的に適用されており、さまざまなライセンス、認証、特にレビューされたジャーナル「オープンハードウェアジャーナル」および「ハードウェアX」によって形式化されています。
ソフトウェアのライセンス要件は、他のオープンソースソフトウェアと同じです。ただし、実際のロボットシステムで実際に使用できるソフトウェアコンポーネントには、通常、ロボティクスミッドウェアコミュニティ標準で定義された他のソフトウェアと互換性が必要です。
ハードウェアシステム
これまでの応用には以下のようなものがあります:
ロボットアーム、例えばPARAやThor
車輪式移動ロボット。例えばOpenScout
四脚ロボット、例えばOpen Dynamic Robot Initiative
UAVクワッドコプター(ドローン)、例えばAgilicious
ホモイドロボット、例えばiCub、Berkeley Humanoid Lite
自律走行車、例えばOpenPodcar(→パーソナル・ラピッド・トランジット)
ロボット魚、例えばOpenFish
研究所ロボティクス、例えば化学液体処理
垂直農場
スワームロボット、例えばHeRoSwarm
家事:掃除、床拭き、芝刈り
ロボットスポーツ(ロボット格闘や自律レーシング)
教育
ハードウェアサブコンポーネント
ほとんどのオープンソースハードウェアの定義では、モジュール設計に非オープンサブコンポーネントを使用することを許可していますが、それらが簡単に入手可能である必要があります。しかし、多くの設計は、最終的に完全にオープンな設計に達するまで、可能な限り多くのサブコンポーネントにオープン性を推し進めようと試みています。
オープンハードウェアマニュアル駆動車両およびそのサブコンポーネント、例えばOpen Source Ecologyのものは、よく始めのステップとして使用され、自動化システムで拡張されています。
オープンサブコンポーネントには、ArduinoやRISC-Vなどのオープンソースのコンピューティングハードウェア、Open Source Motor ControllerやODriveなどのオープンソースのモーターやドライバーが含まれます。
オープンハードウェアロボティクスインターフェースボードは、ミッドウェアソフトウェアと物理ハードウェア間のインターフェースを簡素化できます。
ソフトウェアサブコンポーネント
= メディアウエア =
ロボティクスメディアウエアは、多くの他のソフトウェアコンポーネントを結びつけるソフトウェアです。ロボティクスでは、これは特に標準化されたメッセージパスプロトコルを持つリアルタイムコミュニケーションシステムを意味します。最も普及しているオープンソースメディアウエアは、ロボットオペレーティングシステムであるROS2バージョン2です。他の選択肢にはROS1、YARP(iCub、URBI、Orcaで使用)、URBI、Orcaも含まれます。オープンソースメディアウエアは、特にLinuxのUbuntuディストリビューション上でオープンソースオペレーティングシステムで通常実行されます。
= ドライバーソフトウェア =
ほとんどのロボットセンサーやアクチュエータは、ソフトウェアドライバが必要です。このレベルでのオープンソースソフトウェアの標準化は少ないため、各ハードウェアデバイスが異なるためです。クローズドハードウェアに対するオープンドライバーの作成は難しいことです。これは低レベルプログラミングとリバースエンジニアリングの両方が必要だからです。
= シミュレーションソフトウェア =
オープンソースロボティクスシミュレーターにはGazebo、MuJoCo、Webotsがあります。適切なミッドウェアインターフェースを備えたオープンソース3Dゲームエンジン、例えばGodotも、時々シミュレータとして使用されます。
= 自动化ソフトウェア =
AIレベルでは、多くの標準アルゴリズムがROS2などのオープンソースソフトウェア実装があります。主要なコンポーネントには以下のようなものがあります:
YOLOオブジェクト検出器などの機械ビジョンシステム
3D測量
ナビゲーション、SLAMや計画(nav2)
moveIt2などのアーム逆運動学
コミュニティ
ロボット設計の建設および共有の人気が増している最初のサインは、メーカーカルチャーコミュニティで見られました。最初は遠隔操作車両(例えばロボット格闘)のための小さな競技から始まり、Sparkyなどの自律テレプレゼンスロボットの建設に進み、オープンオートマトンプロジェクトなどの真のロボット(自ら決定を行うことができるロボット)へと発展しました。いくつかの商用会社もシンプルなロボットを作るキットを生産しています。
コミュニティは、オープンソースハードウェアライセンス、認証、およびレビューされた出版物を取り入れ、ソースが正しく恒久的にコミュニティの定義の下で利用可能であることを確認し、その確認を行っています。これらのプロセスは、商業化や他のプレッシャーのためにオープンソースと宣言されたが実際にはその約束に反した多くの歴史的プロジェクトがあるため、非常に重要です。
他のオープンソースハードウェアと同様に、コミュニティは「組み立ての容易さ」の正確な基準について引き続き議論しています。一般的な基準は、設計が技術大学の学生によって数日で典型的なファブラボツールを使用して組み立てられるべきであることです。しかし、これらのサブテームの定義もまた議論されることがあります。
他のオープンソースハードウェアよりも、オープンソースロボティクスは通常、大きなソフトウェア要素を含み、ソフトウェアおよびハードウェアエンジニアの両方を必要とします。オープンソースの概念は、オープンソースソフトウェアよりもハードウェアでより確立されていますので、ロボティクスはこれらの概念を共有し、ソフトウェアからハードウェアへの移行が可能な分野です。
オープンソースロボティクスのコミュニティは多様で、幅広い背景を持っていますが、大きなサブコミュニティはROSミッドウェアを使用し、年次のROSCon会議でROS自体やその上に構築された自動化コンポーネントの開発について議論します。
参考文献