ROSのツールの1つであるRVizの実行例 | |
初版 | 2007年 |
---|---|
最新版 |
Iron Irwini[1]
/ 2023年5月23日 |
最新評価版 |
Jazzy Jalisco (ROS 2)[2]
|
リポジトリ | |
プログラミング 言語 | C++, Python, and Lisp |
対応OS | |
対応言語 | |
サポート状況 | サポート中(開発中) |
種別 | ロボットソフトウェアプラットフォーム |
ライセンス | |
公式サイト |
www |
Robot Operating System (ROS) とは、ロボット用のソフトウェアプラットフォームである。ROSはその名に「Operating System」を含むが、Microsoft WindowsやiOSのようなコンピュータのオペレーティングシステム (OS) ではなく、既存のOS上で動くミドルウェアやソフトウェアフレームワークの一種であり、「メタオペレーティングシステム」 (meta-operating system) とも説明される。
ROSはロボットソフトウェアの共同開発を世界規模で推進することを目指している。スタンフォード大学の学生が開発した「Switchyard」プロジェクトを起源にもち、それを引き継いだアメリカのウィローガレージ社が2007年に本格開発を開始し、2010年に最初のリリース版が公開された。その後、非営利団体「オープンソースロボット財団」(現「オープンロボティクス」)が設立され、ROSの開発を主導する役割が引き継がれた。オープンソースソフトウェアとして開発・公開されており、世界中から多くの人々が開発に参加している。
ROSが動作するOSはUbuntuやLinux MintなどのLinuxが中心で、macOS、Windows、Androidでも一部の機能が対応している。ハードウェアの抽象化、低レベルのデバイス制御、汎用的な機能の実装、プロセス間のメッセージ通信、パッケージ管理などを行うほか、ソフトウェアの開発や実行などのためのツールやライブラリを提供する。分散コンピューティングシステムとして設計され、ロボットに必要な様々な計算を複数のプロセスで並列的に行う。各プロセスは単独または複数のコンピュータ上で実行可能であり、処理結果を相互に送受信しながら、1つの大きなソフトウェアシステムとして動作する。ROSのソフトウェアは「コアユーティリティ」と「パッケージ」に分かれており、ユーザは使いたい機能のパッケージを選択してインストールすることで、ロボットに必要な各種機能を利用できる。パッケージは自作することが可能で、ROSはC++やPythonをはじめ、LispやJavaなど多数のプログラミング言語をサポートしている。
ROSを搭載したロボットは、移動ロボットやロボットアームのほか、ヒューマノイド、自動運転車や無人航空機(ドローン)、自律型無人潜水機などと様々である。学術研究を主な対象として開発が始まったROSだが、次第に産業用途にも利用範囲が広がり、ROSを搭載したロボットが製品化され市場に登場するようになっている。新たな利用領域に求められる機能を実装するため、ROSの次世代バージョンである「ROS 2」の開発・リリースも始まっている。