検索
連載

ロボット開発プラットフォーム「ROS」はどのように進化してきたのかROSを使ってロスなくロボット開発(前編)(4/4 ページ)

ロボットの開発に広く利用されるようになっているロボット開発プラットフォーム「ROS(Robot Operating System)」の活用について解説する本連載。今回は、ROSがオープンソースソフトウェアとしてどのように進化してきたのについて紹介する。

Share
Tweet
LINE
Hatena
前のページへ |       

ROSを使ってロボットを開発するメリット

 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開発の動向には注目しているのではないだろうか。

 以下に、大手ロボットメーカーがGitHubで公開しているROSドライバーを挙げておこう。

ROS1とROS2のどちらを選ぶべきか

 ここまでROSのメリットを解説したが、現時点では検討しなければならない課題がある。それは、新規開発する時にROS1とROS2のどちらを選択するべきかという課題である。筆者の個人的な見解だが、現時点ではROS2を選択するべきだと考える。その理由は2つある。

 1つは、Pythonの対応バージョンの問題だ。Python2系のサポートは2020年3月で既に終了しているが、ROS1はPython2系で開発されたアプリケーションなどが多い。(ROS1 NoeticでROS1自体はPython3系に対応している)。なお、ROS2で提供されていなかったり、まだβ版だったりするROS1のアプリケーションも存在するが、その場合も「ROS bridge」を使えばROS2で利用することができる。筆者が所属する富士ソフトでも、ROS bridgeを使ってROS2のシステムでROS1のアプリケーションを使用した事例がある。

 もう1つは、前述したようにROS2は商用利用を目的として開発されており、商用利用に耐えられる品質が高いソフトウェアを利用できるという点である。

 ただし、これらは新規で開発する場合についてであり、既にROS1で開発されているものをわざわざROS2に移行すべきだとは思っていないので注意していただきたい。

広がるROSの活用範囲

 ここまでROSについていろいろと解説してきたが、ROSはそのポテンシャルから活用範囲を縦横に広げつつある。

 例えば、自動運転向けの「Autoware」、IoT(モノのインターネット)向けの「micro-ROS」、ドローン向けの「Dronecode」の基盤ソフトウェアとしてもROSが利用されている。また、変わったところでは、ソニーのペットロボット「aibo」やYOODSの3Dカメラ「YCAM3D」などでもROSが使われている。

ソニーの「aibo」やYOODSの「YCAM3D」にもROSが用いられている
ソニーの「aibo」(左)やYOODSの「YCAM3D」(右)にもROSが用いられている(クリックで拡大) 出典:ソニー、YOODS

 さらに、大手のITベンダーやツールベンダーがROSを活用したロボット開発を促進する開発環境を提供するようになっている。クラウドサービスのAWS上で利用可能なロボットアプリケーション開発環境「AWS RoboMaker」やMathworksのモデルベース開発環境「MATLAB/Simulink」、そして次回の中編で紹介するNVIDIAのロボット開発シミュレーター「NVIDIA Omniverse Isaac Sim」などだ。



 今回は、ロボット開発プラットフォームとしてROSがどのように進化してきたかを紹介した。次回の中編では、ROSの活用シーンとしてのシミュレーターとの連携について解説する。

筆者プロフィール

富士ソフト AI・ロボット開発 R&Dチーム

富士ソフトでAI・ロボット開発の調査研究を主務として、最新技術の調査・社内外へのセミナー等に対応し、AI・ロボット開発の最新技術の習得および普及のため活動している。

富士ソフトhttps://www.fsi.co.jp/

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る