ロボット開発プラットフォーム「ROS」はどのように進化してきたのか:ROSを使ってロスなくロボット開発(前編)(2/4 ページ)
ロボットの開発に広く利用されるようになっているロボット開発プラットフォーム「ROS(Robot Operating System)」の活用について解説する本連載。今回は、ROSがオープンソースソフトウェアとしてどのように進化してきたのについて紹介する。
データから見たROSの広がり
ROSの利用がどのように広がってきたかを客観的に見るためにデータを調べてみた。
オープンソースソフトウェアなので正確な利用者数を測ることは困難だが、ROS関連のソフトウェアや文書を公開しているWebサイト「ROS.org」では、2011年から毎年、「ROS Community Metrics」という統計データを公表している。それによると、ROSパッケージのダウンロード数は、2011年の4517件から2020年には3855万4145件となり、10年間で約8500倍にも増加している。
「Number of ROS Users」では、利用ユーザー数も右肩上がりのグラフを示し、全世界的にROSの利用者数が増加していることが伺える。
また、ROSのユーザー数などを公開しているWebサイト「ROS Metrics」では、国別のROSパッケージのダウンロード数ランキングも掲載されている。上位の国はいずれもロボットを主要な産業と位置付けており、ROSへの関心度が高いことが伺える。日本は、米国、中国、ドイツに次いで4番目と上位にランキングされ、日本でもROSの利用が多いことが分かる。
ROSの構成要素
ROSを表すときによく使われる式として、以下のようなものがある※)。
ROS=Plumbing(通信)+Tools(ツール群)+Capabilities(機能群)+Ecosystem(エコシステム)
※)What is ROS exactly? Middleware, Framework, Operating System? (2011/12/6 Brian Gerkey)
実装されているミドルウェアそのものを指したり、メタオペレーティングシステムと呼ばれたりすることもあるが、ROSはこの式にあるようにプラットフォーム全体を指す。
Plumbing(通信)
ロボットの処理に向いているとされている分散システムを実現するために、ノード間の通信として出版購読型(publish/subscribe)を採用している。
Tools(ツール群)
ロボットを視覚化し動作計画のデバッグなどに使える「RViz」、先に挙げたロボットの動力学環境シミュレーターのGazebo、GUIユーティリティーツールの「rqt」、ビルドシステムなどのツール群が用意されている。
Capabilities(機能群)
ロボットの有用な機能がまとめられたライブラリやパッケージがあり、「Navigation Stack」「MoveIt」はROSの2大パッケージといわれている。
Ecosystem(エコシステム)
チュートリアルを含む各言語に対応した「ROS Wiki」、ROSについて質問できる「ROS Answers」、ROSのことについて議論できる「ROS Discourse」や、年1回開催されるイベント「ROScon」(日本では「ROScon JP」)などがあり、活発な活動が繰り広げられている。なお、2020年のROSconは「ROS Wolrd 2020」と名称を変更してオンラインで開催されたが、ROScon JPは中止となった。
ROSが、ロボット開発プラットフォームとして、グローバルでデファクトスタンダードになり得た一番の要因は、エコシステムとしてユーザーコミュニティーの拡充に注力した結果であり、今後もさらに発展していくだろう。
Copyright © ITmedia, Inc. All Rights Reserved.