ROSシステムの設計目標
ロボット工学の急速な進歩と複雑化に伴い、コードの再利用性とモジュール性への要求はますます緊急性を増している。オープンソースのロボットシステムの中には、このようなニーズを十分に満たすことができないものもあった。2007年、ウィロー・ガレージはオープンソースのロボット・オペレーティング・システム(ROS)をリリースし、ロボット研究コミュニティにおける学習と採用の波に一気に火をつけた。
The ROS system originated from a collaboration between a 2007 project at Stanford University’s Artificial Intelligence Laboratory and Willow Garage’s Personal Robots Program. After 2008, development was led by Willow Garage. With the remarkable feats of early ROS robots like the PR2—such as folding clothes, plugging in devices, and preparing breakfast—ROS gained increasing attention. Willow Garage expressed its ambition to leverage open-source development to transform PR2 into a “universal” robot.
PR2 came with a hefty price tag, retailing for $400,000 in 2011. It is now primarily used for research. Equipped with two arms, each featuring seven joints, PR2’s end effectors are grasping grippers. Mobility is provided by four wheels mounted on its base. High-resolution cameras, laser rangefinders, inertial measurement units, tactile sensors, and other advanced sensing equipment are mounted on the PR2’s head, chest, elbows, and grippers. Two 8-core computers at the base serve as the control and communication hub for the robot’s hardware. Both computers run Ubuntu and ROS.
ROSの設計目標
ROSはオープンソースで、ロボットの二次オペレーティングシステムとして機能する。ハードウェアの抽象化、低レベルのドライバ管理、共有関数の実行、プログラム間のメッセージング、パッケージ管理など、オペレーティングシステムと同様の機能を提供する。また、マルチロボット協調プログラムの取得、構築、記述、実行のためのツールやライブラリも提供する。ROSはオープンソースであり、ロボットのバックエンドオペレーティングシステム(二次オペレーティングシステム)として機能する。ハードウェアの抽象化、低レベルドライバの管理、共有関数の実行、プログラム間のメッセージング、パッケージ管理など、オペレーティングシステムと同様の機能を提供する。また、マルチロボット協調プログラムの取得、構築、書き込み、実行のためのユーティリティプログラムやライブラリも提供する。
ROSの主な特徴
ROSランタイムアーキテクチャは、ROS通信モジュールを利用してモジュール間の疎結合ピアツーピアネットワーク接続を確立する処理フレームワークである。サービスベースの同期RPC(Remote Procedure Call)通信、トピックベースの非同期データフロー通信、パラメータサーバーへのデータ保存など、いくつかの通信タイプを実装している。しかし、ROS自体は本質的にリアルタイム機能を持っていない。
活性酸素の主な特徴は以下のようにまとめられる:
-
ピアツーピア・デザイン
ROSを使用するシステムは、複数の異なるホストにまたがって存在し、ピアツーピア・トポロジーを介して動作中に通信する一連のプロセスで構成される。中央サーバーに基づくソフトウェアフレームワークもマルチプロセスおよびマルチホスト環境の利点を達成することができますが、これらのフレームワークは、コンピュータが異なるネットワークを介して接続されている場合、中央のデータサーバーで問題が発生します。ROSを使用するシステムは、複数の異なるホスト上に存在し、ピアツーピア・トポロジーを介して動作中に通信する一連のプロセスで構成される。中央サーバーをベースとするソフトウェアフレームワークも、マルチプロセスとマルチホスト環境の利点を実現することができますが、これらのフレームワークでは、コンピュータが異なるネットワークを介して接続されている場合、中央のデータサーバーで問題が発生します。
-
多言語サポート
コードを書くとき、多くのプログラマーは特定のプログラミング言語を好む傾向がある。これらの嗜好は、各言語でのプログラミングに費やした時間、デバッグの効果、構文、実行効率、さまざまな技術的・文化的考察などの要因に起因する。これらの問題に対処するため、私たちはROSを言語に中立なフレームワークとして設計しました。ROSは現在、C++、Python、Octave、LISPを含む多数の異なる言語をサポートしており、他の言語用の複数のインターフェース実装も含まれています。
ROSの独自性は、より深いレベルではなく、主にメッセージ通信レイヤーに現れている。エンド・ツー・エンドの接続と設定は、XML-RPCメカニズムを使用して実装されており、ほとんどの主要なプログラミング言語用に十分に文書化された実装も含まれています。私たちは、ROSが他の言語向けにC言語に基づいたインターフェースを提供するのではなく、それぞれの構文規則に合わせて、様々な言語間でより自然に実装されることを目指しています。しかし、新しい言語のサポートをカプセル化するために既存のライブラリを活用することが便利な場合もあります。例えば、OctaveクライアントはC++ラッパー・ライブラリを使用して実装されている。
To support cross-language development, ROS employs a simple, language-agnostic interface definition language (IDL) to describe message exchanges between modules. The IDL uses concise text to define each message’s structure and allows message composition. For example, the following diagram illustrates a point message described using IDL:
各言語のコードジェネレータは、対応するネイティブコードファイルを生成します。メッセージの送受信中、ROSはこれらのファイルを自動的にコンパイルし、並列実行します。3行のIDLファイルは自動的に137行のC++コード、96行のPythonコード、81行のLispコード、99行のOctaveコードに展開されます。メッセージは単純なテキスト・ファイルから自動的に生成されるので、新しいメッセージ・タイプを簡単に列挙することができる。本稿執筆時点で、既知のROSベースのコード・ライブラリには400を超えるメッセージ・タイプが含まれている。これらのメッセージはセンサー・データを送信し、オブジェクトが周囲の環境を検知できるようにする。
その結果、言語にとらわれないメッセージ・ハンドリングが可能になり、複数の言語を自由に組み合わせられるようになった。
-
合理化と統合
既存のロボット工学ソフトウェア・エンジニアリング・プロジェクトの多くは、プロジェクト外で再利用可能なドライバやアルゴリズムを含んでいる。しかし、残念なことに、様々な理由により、ほとんどのコードの中間層は過度に雑然としており、その機能を抽出してプロトタイピングの域を超えて適用することは困難である。
この傾向に対抗するため、すべてのドライバーとアルゴリズムをROSの依存関係から独立したスタンドアロン・ライブラリに徐々に進化させることを奨励している。ROSで構築されたシステムはモジュール性を特徴としており、各モジュール内のコードを個別にコンパイルすることができる。コンパイルに使用されるCMakeツールは、ミニマリズムの概念を促進する。ROSは基本的に複雑なコードをライブラリ内にカプセル化し、ライブラリの機能を実証するための小さなアプリケーションのみを作成する。これにより、単純なコードを移植し、プロトタイピングを超えて再利用することができる。新たな利点として、コードがライブラリに分散されている場合、単体テストが大幅に容易になる。1つのテストプログラムで、ライブラリ内の複数の機能を検証することができます。
ROSは、既存の多くのオープンソースプロジェクトからのコードを活用している。例えば、Playerプロジェクトからはドライバ、モーションコントロール、シミュレーションコードを、OpenCVからはビジョンアルゴリズムを、OpenRAVEからはプランニングアルゴリズムを、その他多数借用している。それぞれの事例において、ROSは多様な設定オプションを提供し、最小限のラッパーと修正を適用しながら、ソフトウェアコンポーネント間のデータ通信を容易にします。ROSはコミュニティによるメンテナンスを通じて継続的に進化し、他のソフトウェア・ライブラリからの更新やアプリケーション・パッチをソースコードに組み込んでいる。
-
総合ツールキット
複雑なROSソフトウェアフレームワークを管理するために、大規模な開発・実行環境を構築するのではなく、カーネルとして設計し、多様なROSコンポーネントをコンパイルして実行するための多数のユーティリティを活用した。これらのツールは、ソースコード構造の整理、設定パラメータの取得と設定、エンドツーエンドのトポロジー接続の可視化、帯域幅使用量の測定、情報データの鮮明な描写、ドキュメントの自動生成など、さまざまなタスクを処理する。グローバルクロックやコントローラモジュールのレコーダといったコアサービスはテスト済みだが、それでもすべてのコードのモジュール化を目指している。私たちは、安定性と管理の複雑さの軽減という利点に比べれば、効率性の損失ははるかに大きいと考えています。
-
フリー&オープンソース
ROSのソースコードはすべて公開されています。これにより、ROSソフトウェアのあらゆるレベルでのデバッグが必然的に促進され、継続的にエラーが修正されると信じています。Microsoft Robotics StudioやWebotsのような非オープンソースソフトウェアは多くの称賛に値する特性を持っていますが、オープンソースプラットフォームは依然としてかけがえのないものであると私たちは主張しています。これは、ハードウェアとソフトウェアのすべてのレベルが同時に設計され、デバッグされる場合に特に当てはまります。ROSのソースコードはすべて公開されています。これにより、ROSソフトウェアのあらゆるレベルでのデバッグが必然的に促進され、継続的にエラーが修正されると考えています。Microsoft Robotics StudioやWebotsのような非オープンソースソフトウェアも多くの称賛に値する特性を持っていますが、オープンソースプラットフォームはかけがえのないものだと考えています。あらゆるレベルのハードウェアとソフトウェアが同時に設計され、デバッグされる場合は特にそうです。
市販されている代表的なROSロボット
市販されているROSを使用した代表的なロボットは、このオープンソースのフレームワークがいかに多様なアプリケーションをサポートしているかを示している。例えば 移動ロボット such as TurtleBot and Husarion ROS bot are widely used for education and research; service robots like Fetch and PR2 highlight advanced manipulation and navigation capabilities; while industrial platforms such as Clearpath’s Husky demonstrate ROS integration in rugged environments. These examples reflect the flexibility and scalability of ROS in both academic and commercial robotics.
以下に代表的な四足歩行型ROSロボット、車輪型ROSロボット、追従型ROSロボットを挙げる。
Best Quadruped Robots Powered by ROS
| コプメイ名 | 国名 | ロボット写真 | 申し込み | 公式ウェブサイト |
| ユニツリー・ロボティクス | 中国 | ![]() |
教育、研究、産業 | https://www.unitree.com/go2 |
| Boston Dynamics | アメリカ | ![]() |
工業検査 | https://bostondynamics.com/products/spot/ |
ROSを使用した車輪型ロボットトップ5
| コプメイ名 | 国名 | ロボット写真 | プレイロード | 公式ウェブサイト |
| MiR | デンマーク | ![]() |
600kg | https://www.mobile-industrial-robots.com |
| ロボットニク・ロボット | スペイン | ![]() |
150キロ | https://bostondynamics.com/products/spot/ |
| ロボトニク | スペイン | ![]() |
250キロ | |
| クリアパス・ロボティクス | カナダ | ![]() |
100kg | https://clearpathrobotics.com |
| Fデータロボット | 中国 | ![]() |
1000KG | https://www. fdatabot.com |
Best Tracked Robots with ROS Integration
| コプメイ名 | 国名 | ロボット写真 | 申し込み | 公式ウェブサイト |
| スーパードロイド
ロボット |
カナダ | ![]() |
戦術ロボット 戦術ロボット | https://www.superdroidrobots.com/store/tracked-robots |








