top of page

​ROS(ロボット制御システム)概要

ROSとは、
 

Robot Operating System (ROS) とは、ロボットのソフトウェア開発者向けにロボットアプリケーションの作成を支援するライブラリやツールを提供するロボット開発用のプラットフォームである。

ROSはその名に「Operating System」を含むが、Microsoft WindowsiOSのようなコンピュータオペレーティングシステム (OS) ではなく、既存のOS上で動くミドルウェアソフトウェアフレームワークの一種である。

2010年に最初のリリース版が公開された。

その後、非営利団体「オープンソースロボット財団」(現「オープンロボティクス」)が設立され、ROSの開発を主導する役割が引き継がれた。

オープンソースソフトウェアとして開発・公開されており、世界中から多くの人々が開発に参加している。

ROSの構成要素

ROS=Plumbing(通信)+Tools(ツール群)+Capabilities(機能群)+Ecosystem(エコシステム)

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は中止となった。
ROS1.png
ROS2.png
ROSを使ってロボットを開発するメリット

最も大きなROSのメリットはNavigation StackやMoveItなどのアプリケーションがオープンソースで提供されている点にある。
一定のカスタマイズが必要ではあるが、基本的な部分が提供されていることはアプリケーション開発の生産性を考慮する上で重要なポイントとなる。

①各種センサーがROSに対応している。

具体的には、「Intel RealSense」や「Microsoft Azure Kinect」などの3次元カメラ系各種や、話題のLiDAR(Light Detection and Ranging、ライダー)など、製品のリリース時点でROS用のドライバーが提供されることが多い。
このことから購入してすぐにROSに組み込み使用できるのは新しい製品の開発効率を考慮する上で重要なポイントとなる。
 
②ROSの各種パッケージがオープンソースソフトウェアとして数千個も公開されている。

新たなアプリケーションを自前で開発するより公開されているオープンソースを探す方が明らかに効率的である。
 
ROSのメリットを享受したいが、既にROS以外を用いてロボットの開発が進んでいる場合や、ROSに対応していないロボットの場合はどうすればいいのだろうか。例えば、幾つかのメーカーやベンダーは、ROSドライバーとしてROSと通信できるモジュールをロボットのコントローラーに組み込んで、ROSベースのシステムを外部から制御できるような仕組みに対応しており、ROS側とのインタフェースを確立してROSのメリットを享受できるようにしている。
 
以上のようなことから、ロボットメーカー各社も、今後のROS開発の動向には注目していく必要がある。

広がるROSの活用範囲

①例えば、

自動運転向けの「Autoware」、IoT(モノのインターネット)向けの「micro-ROS」、ドローン向けの「Dronecode」の基盤ソフトウェアとしてもROSが利用されている。
 
②変わったところでは、

ソニーのペットロボット「aibo」やYOODSの3Dカメラ「YCAM3D」などでもROSが使われている。

③更に

大手のITベンダーやツールベンダーがROSを活用したロボット開発を促進する開発環境を提供するようになっている。

クラウドサービスのAWS上で利用可能なロボットアプリケーション開発環境「AWS RoboMaker」やMathworksのモデルベース開発環境「MATLAB/Simulink」、そして次回の中編で紹介するNVIDIAのロボット開発シミュレーター「NVIDIA Omniverse Isaac Sim」など

まとめ

ROSにより制御されるロボットは、今後、将来に向けた各種のロボットの開発を容易にすることになる。
正にIoT技術によりロボット活用が実現されて、産業界や生活などに深く浸透してくるのは、時間の問題であると言える。


 
bottom of page