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

» 2021年01月28日 10時00分 公開
[富士ソフトMONOist]

活発な国内外でのROS関連の活動

 加えて、国内外でROSに関連するさまざまな活動が活発になっていることも取り上げておきたい。

 まずは「ROS-Industrialコンソーシアム」だ。ROSを産業用途に用いる際の技術的な問題を参加メンバー企業間で共有し、メンバー内の企業がパッケージやソリューションを提供する国際的なコンソーシアムで、日本からも数社が参加している(コンソーシアムの参加企業はWebサイトで確認できる)。

 欧州では「ROSIN」というプロジェクトをEUの助成金を活用して設立しており、ROS-IndustrialコンソーシアムにおけるEUの役割を主導的なものにしようとしている。

 日本におけるROSの活動では、「ロボット革命・産業IoTイニシアティブ協会(RRI)」のワーキンググループ3(ロボットイノベーションワーキンググループ)内に調査検討員会を立ち上げており、ROSなどのオープンソースを利用した次世代ソフトウェア開発手法や移動ロボット評価手法など議論する各種委員会を開催している(2019年の活動結果については、「2019年度ロボットイノベーションWG調査検討委員会(活動成果)」公開についてからダウンロードできる)。

 また、ROSの日本のコミュニティーとしてはROS Japan Users Groupがある。定期的にイベントを開催しており、ROSに関する技術的な勉強会などを実施し、メンバーも増加傾向である。ROSに関して興味を持っている方は、RRIとROS Japan Users Groupの両方に参加することをお勧めする。

ROS1からROS2へ

 ここからは、近年におけるROSの進化について解説する。

 ROSは、学術研究を主な対象として開発が始まった。しかし、ROSの利用が盛んになり、次第に商用にも利用が広がったこともあり、ROSの商用利用を目的とした次世代バージョン「ROS 2」が開発され、2017年8月に正式リリースされた。このROS 2の登場によって現在のROSは2つの系統が存在しており、それらを区別するために大本のROSを「ROS1」、新たにリリースされたROS 2を「ROS2」と呼んでいる。

 ROS1の開発は、ROSのLTS(Long Term Support)版の最新バージョンである「Noetic(Noetic Ninjemys)」を最後に終了しており、そのサポートは2025年5月までとなっている。現在、ROS全体の開発のメインストリームはROS2に移行しており、ROS2のLTS版の最新バージョンは「Foxy(Foxy Fitzroy)」となっている。

ROS2で実装された機能や特徴

 ここからは、ROS1の主要なコンセプトを引き継ぎ、ROS1の経験を基にROS2で実装された主要な機能や特徴を解説する。

(1)スクラッチ開発

 ROS1を使用した開発では商用利用に耐えられる品質にならないといわれていたが、ROS2はスクラッチで一から作り直したことで、商用利用も可能な品質の製品開発を確保している(ROS1の商用利用においても、製品開発者の努力により品質を向上させ製品化を実現したものもある)。

(2)DDS採用

 米国の国防総省や金融システムで採用され信頼性が実証されている通信ミドルウェアのDDS(Data Distribution Service)を採用し、DDSベンダーを選択できるようになっている。ROS2の次バージョンである「Galactic Geochelone」では、統合開発環境(IDE)の開発元で有名なEclipse FoundationのEclipse IoT Projectが開発している「CycloneDDS」がデフォルトのDDSとなる。

(3)マスターレス化

 ROS1ではマスターが単一障害点になっていたが、ROS2ではマスターレス化して単一障害点を排除している。

(4)ライフサイクル実装

 ROS1でしばしば問題になるノードの起動順などを制御できるように、ノードに状態を設け、状態による制御を可能としている。

(5)リアルタイム制御

 ノードプログラミングでのリアルタイム制御に対応した。また、リアルタイムOS(RTOS)と緊密に連携するように設計されている。

(6)マルチプラットフォーム対応

 ROS1で対応していたOSプラットフォームはUbuntuだけだったが、ROS2ではUbuntu以外のOSプラットフォームでも開発ができるようになり、Windows 10やmacOSにも対応している。

 これらの他にもいろいろと変更が加えられている。ROSの2大パッケージといわれているNavigation Stack、MoveItなどのアプリケーションも、ROS2に対応して「Navigation2」「MoveIt2」となるだけでなく、新たな機能を実装し、商用利用できる性能や品質を目指して開発が進められている。

Copyright © ITmedia, Inc. All Rights Reserved.