potblog

技術メモとかガジェットレビューとか

ROSの概要と事例とメリットについて

ROSとは

ROSとは Robot Operating System の略で、ロボット開発のための様々なソフトウェアの集合のこと。
ROSは OS と付いているが、いわゆるLinuxWindowsといったOSではない。
基本的には、以下の総称と考えれば良い。

  1. 位置づけとしてはUnixベースのOS(WindowsでないOS)で動作するミドルウェア
  2. プロセス間通信のための通信ライブラリ
  3. プログラムをコンパイルするためのビルドシステム

雑に言えば誰でも利用可能なロボット開発ツールの一つである。

ROSを用いて開発されたロボットの事例

  • Amazon Roboticsの物流補助ロボット
    自律移動ロボットによるAmazon物流センターの自動化・省人化を目指す。

  • Sonyaibo
    2017年に販売された家庭向けロボットaiboには多数のセンサとアクチュエータが搭載されており、それらの処理はROSで行われる。

  • 自動運転に関わる研究所
    自動運転の研究開発の1手法としてROSが用いられている。

  • darpa robotics challenge
    アメリカ国防総省が主催する災害救助用のロボット競技大会。
    優勝賞金が2.5億円と巨額である。
    自動ロボットを用意して車の運転やドアを開けて建物内に入るなどのタスクをクリアさせる競技である。
    DRC2015では参加した23チーム中18チームがROSを用いていた。

  • FANUCの多軸ロボットを利用したトマト収穫ロボット
    f:id:potblog:20180107173520p:plain

  • ROS industrialを利用した多軸ロボットによる研磨のデモ
    ROSではすでに多くの技術が開発されている。
    それらを多軸ロボットの制御に利用して商用利用する企業がある。
    その技術デモ
    f:id:potblog:20180107173857p:plain

ROSが必要とされるアプリケーション

以上より知的なロボットの開発にROSの利用が目立つ。

では逆に知的でない(規模の小さい)ロボットではどのように開発されるだろうか。

小規模なロボットの例を以下に挙げる。
この例ではロボットを動かしているのは組み込みシステムによく利用される小型プロセッサのマイコンである。
マイコンにプログラムを書き込み、ロボットの制御を行う。
この例ではロボットの制御がマイコンで十分達成可能なのでROSを使う必要はない。
f:id:potblog:20180107004050j:plain

ただ規模が大きくなり、マイコンなどでは対応しきれなくなった場合がある。一例として

  • 画像処理
  • 自己位置推定
  • 協調制御

などが挙げられる。
それらの技術を組み合わせるロボットにはPCを搭載してROSを利用すると開発の時間短縮に繋がる。

f:id:potblog:20180107004053j:plain

ROSを利用することのメリット

  1. 世界中の研究者が作成したソフトウェアを使用できる
    ROSを使う事の最大のメリットは、世界中のROSユーザが作成したソフトを使用できることである
    Willow GarageはROSで作成されたソフトウェアをROS Repositoryという形で公開することを推奨しており、現在2000以上のソフトウェアが公開されている。
    Browsing packages for lunar
    その中には、自律ロボットで使用される代表的なセンサ(レーザセンサ、カメラ、IMU、トルクセンサなど)の通信用ソフトウェアや、代表的な自律移動ロボットのアルゴリズムのソフトウェアなども多数公開されている。

  2. 強力なデバッグツールが提供されている
    ロボットのソフトウェアは複雑になりがちである。
    ROSのノードとして、それぞれのロボットの機能を分割していった場合、最終的に一台のロボットを構成するノードは数十個にもなることがある。
    しかし、そのような時でもROSはそれらの複数のノードを管理したり、可視化するツールであるroslaunchやrqt_graphが用意されている。

  3. データのロギング&解析機能が提供されている
    ロボットの開発をする時に、非常に重要な機能の一つがデータのロギング&解析機能である。
    一般的にロボットは、複数のセンサを有していることが多く、それらのセンサの情報を統合して制御を行う。
    ROSではrosbagというデータロギングツールが提供されている。
    このツールを使用すると、ROSのストリーム上で送信されたすべてのトピックが自動的にタイムスタンプと共に保存され、一つの.bagというファイルに保存される。
    画像でも、レーザの点群でもすべてバイナリファイルに保存される。

  4. 物理シミュレータを内包している
    ROSは物理シミュレータのGazeboを内包している。
    Gazeboなどのシミュレーションの最終目標は、現実と遜色ない環境をシミュレートすることである。
    とくにGazeboでは、ROSで開発されたプログラムをシミュレータ用に編集することなく使用でき、Gazebo上でシミュレートすることができるようにする事を目標に製作されている。
    つまり、現実のロボットとGazeboのシミュレーションロボットに完全な互換性を持たせることを目標として開発された物理シミュレータである。
    実機と同じ機能を持ったシミュレーションを作りたい場合などに利用できる。