ロボット用のソフトウェアプラットフォーム。名前に"Operating System"を含んでいるがWindowsやiosのようなコンピュータのOSではなく、既存のOS上で動作するミドルウェアやソフトウェアフレームワークの一種。オープンソースソフトウェアとして開発・公開されている。分散処理フレームワークであり、ロボティクス向けの豊富なライブラリ群を利用可能、シミュレーションツールやデバックツールなど高機能な開発ツールを使えることなどが主な特徴。
構成要素
What is ROS exactly? (ROSとは正確にはなんですか?)という質問に対するROSプロジェクトに参画するBrian Gerkeyの回答より
ROS=Plumbing(通信) + Tools(ツール群) + Capabilities(機能群) + Ecosystem(エコシステム)
Plumbing(通信) | ROSは、迅速で容易に分散コンピューティングシステムを構築できるよう設計された、配信-購読型のメッセージ通信基盤を提供する。 |
---|---|
Tools(ツール群) | ROSは、分散コンピューティングシステムの設定・起動・監視・デバッグ・可視化・ログ取得・テスト・停止を行う広範囲にわたるツールを提供する。 |
Capabilities(機能群) | ROSは、移動・マニピュレーション・知覚といった機能をロボットに実装する多様なライブラリ群を提供する。 |
Ecosystem(エコシステム(開発コミュニティ)) | ROSは、統合とドキュメンテーションに重点をおき、大規模コミュニティにより支えられ進歩している。ROSのコミュニティサイトであるros.orgは、世界中の開発者から提供された大量のROSパッケージを取得し学習出来るワンストップサービスである。 |
代表的なツール群
ロボットの姿勢やセンサから得られたデータ、プログラム内で計算されたデータなどを可視化するツール。複数のロボットやユニットを同じ仮想空間上に可視化することも可能で、生産ライン全体の視覚的な状況把握にも役立つ。
ROSに標準的に使用されるシミュレータ。
ロボット外部の環境をシミュレータ上に構築することができ、様々な状況におけるカメラやセンサの働き、ロボットの挙動などの確認に役立つ。
ROSで標準的に使用される軌道計算ライブラリ。
アーム先端の目標座標と目標姿勢を指定することで、現在の座標及び姿勢から、目標座標及び目標姿勢までの軌道を計算し、その軌道を実現する各関節角の時系列データを計算できる。rvizを使うことで、グラフィカルに目標座標と目標姿勢を指定することも可能。