ロボット」の定義
ROSとはRobot Operating System(ロボット・オペレーティング・システム)の略だが、ROSとは何かを理解するためには、まずロボットとは何かを定義する必要がある。このブログで言うロボットとは、人間の継続的なインタラクションやインフラによる誘導を必要とせず、自律的に環境内を移動できる乗り物や物体のことである。ロボットは、搭載されたセンサーからのフィードバックに基づき、自ら決定を下すことができなければならない。
したがって、ロボットは自律型フルーツピッカーからホテルの廊下清掃ロボットまで、どんなものでもあり得る。しかし、自立航行が必要なことに変わりはない。
ROSはどのように機能するのか?
その名前とは裏腹に、ROSは厳密にはオペレーティング・システムではない。ロボットシステム上で動作するソフトウェアを開発するためのフレームワークを提供する、オープンソースのライブラリーとツールのセットだ。その上で動作するメインのオペレーティング・システムが必要で、通常はUbuntuのようなLinuxベースのシステムだ。そして、ROSレイヤーを使用することで、ロボット用のプログラムを作成する際に必要なハードウェアの抽象化やその他の一般的な機能を実現することができる。
しかし、ROSが開発者にとって魅力的なのはなぜだろうか?
1) オープンソースで広く利用されている
ROSは、オープンソースの利点と普及により、ロボットプログラミングの標準の1つに成長しました。また、アカデミアから始まったROS環境は、企業での利用も増えています。多くのOxTS 顧客は、商用製品のノードやドライバを開発し、この共通プラットフォーム上で簡単に統合できるようにしています。
2) 多くのセンサーに対応
ROSがサポートするセンサーのリストには、多くのLiDARシステム、ステレオカメラ、サーマルカメラ、RGBカメラ、フォース/トルクセンサー、モーターコントローラー、OxTSのような測位システム、慣性ナビゲーションシステム(v4.0など)が含まれます。 RT3000 v4
3) 低い参入障壁
広く採用され、普遍的な規格であるおかげで、ロボットアプリケーションを作るための参入障壁は大幅に下がり、コミュニティはより相互に結びついています。コードは異なるロボットシステムにも容易に移植でき、開発者は使用するハードウェアメーカーごとにゼロから基礎を固める必要はないのです。
ROSは何に使われているのか?
ROSは一般的に、幅広く多様なアプリケーションで使用されている。今日見られるROSのユースケースの多くは、「人間の補助」が望まれるアプリケーションである。そのため、自律走行車や産業用・医療用ロボットを製造するエンジニアがROSフレームワークを使用している。もちろん、研究や教育も一般的にROSを使用して、これらのアプリケーションの製品開発に役立てています。
このセクションでは、なぜこれらのアプリケーションがROSを使用するのかについて説明する。
自律走行ナビゲーション
ADASの爆発的な普及の後 ADAS(先進運転支援)機能が2000年代前半から半ばにかけて自動車に搭載されるようになった後、この進化の自然な次のステップは完全な自律走行機能である。
要するに、自律走行車は単なるロボットの一種である。機能的に安全であるためには、車両は自分がどこにいるのか、どこへ向かっているのか、どのようにしてそこへ到達するのか(計画された経路を維持するのか)を知り、途中で遭遇する障害物を回避する必要がある。
そのためには、車両はLiDAR、ホイールスピード、カメラ、そしてもちろんGPSやINSのようなナビゲーションシステムなど、複数のセンサーからのデータを使用し、受け取った情報に基づいて行動する必要があります。そのため、ROSはこのユースケースにとって重要なフレームワークとなります。ROSは、エンジニアに各センサーのデータを扱う能力を与え、センサーからのフィードバックに基づいて、モーターからの応答を生成するアルゴリズムを作成するからです。
ハードウェアの統合だけでなく、ROSはシミュレーション、パスの可視化、テストとデバッグ、データロギング、再利用性にも役立つ。
産業用ロボット
ROSのもう一つの使用例は、産業用ロボットアプリケーションである。自律走行車と同様に、例えば倉庫や港湾で稼働するロボットは、小規模ではあるが、人間の介入を必要とせずに、その環境を正確かつ安全にナビゲートする必要がある。
産業環境では、ロボットは求められるタスクに応じてさまざまな形や大きさになる。AGV(自律走行型無人搬送車)は在庫の運搬に使われるかもしれないし、小型のロボットは、自律走行型掃除機がホテルで稼働するのと同じように、工場の床を清掃するために配備されるかもしれない。しかし、ひとつだけ一貫していることがある。それは、さまざまな環境で動作する必要性である。
複数の環境で活動するためには、センサー・フュージョン・アプローチが必要であり、そのためROSは上記と同じ理由で非常に重要である。
医療用ロボット
医療界は現在、数多くの課題に直面している。一般的な人口は高齢化し、労働力は減少している。つまり、移動の補助やリハビリの練習など、より単純で反復可能な作業をロボットに任せることは、実に明確なメリットがあるということだ。
この場合、ルートが反復可能である限り、ROSはロボットが事前に計画したルートを確実に守るために使用することができる。知覚アルゴリズムは、ロボットの事故を確実に回避するためにも使用できる。
移動とリハビリテーションの用途に加え、ロボットは医療ロボット工学の分野でも使用することができ、患者の観察結果を系統的にチェックし、異常が確認された場合には訓練を受けたスタッフに警告を発することができる。
ROSでOxTS システムを使用する
OxTS では ドライバを開発しました。用のドライバを開発しました。このドライバは、OxTS INS デバイスからのライブ NCOM ナビゲーション・データをデコードし、このデータを他の ROS 互換デバイスで使用可能なフォーマットで公開できるパッケージのコレクションを提供します。これにより、OxTS デバイスをより広範な ROS ネットワークに簡単に統合し、ナビゲーションおよび制御アプリケーションに測位、ローカライゼーション、ダイナミクスデータを提供することができます。
また、NCOMデータのデコードとは独立して動作する別のパッケージも開発しました。ROS 2GAD "と呼ばれるこのノードは、LiDARやカメラのようなROS環境の他のセンサーからデータを受け取り、私たちのGAD(Generic Aiding Data)フォーマットに変換することができます。
OxTS GNSSと組み合わせた(またはGNSSの代わりに)慣性による汎用補助は、位置、速度、姿勢などの測定値を提供することでナビゲーションエンジンを補助するために使用できる外部センサーの迅速な統合を可能にするために開発されたインターフェースである。
ROSメッセージを標準のGADフォーマットに変換することで、データはOxTS ナビゲーションエンジンに直接渡すことができ、そこで慣性データおよびGNSSなどの他の補助ソースと組み合わされる。
自律型ロボットナビゲーション ソリューション概要
AMRは、ロボットの位置と向きを記録するだけでなく、屋内でも屋外でも動作するツールである。
このソリューション概要では、自律移動ロボットのローカライゼーションのソースを決定する際に、お客様に検討いただくことをお勧めする点について説明します。
ソリューション概要をお読みください。適切なロボットローカリゼーションソリューションがAMRプロジェクトにどのように役立つのか、プロジェクトに着手する前に自問自答すべき重要な質問を含めてご覧いただけます。
ROSプロジェクトのサポート
ロボット工学および自律性アプリケーションにおけるOxTS システムの使用に関する詳細、または ROS を介したジェネリック エイディングと外部センサーを統合する方法については、今すぐ弊社までお問い合わせください。