連載
» 2017年10月27日 09時00分 公開

超速解説:単なる“ロボット用OS”ではない「ROS(Robot Operating System)」の概要と新世代の「ROS 2.0」 (2/3)

[大原 雄介,TechFactory]

分散制御に長じた制御の必要性

 ロボットの制御には分散制御方式が適していると説明したが、問題は既存のRTOSや組み込みLinuxが、必ずしもこうした分散制御方式をうまく扱えないことだ。従来モデルをそのまま利用すると、分散したプロセッサ間はネットワーク経由での接続となりオーバーヘッドも大きい。同期を取るメカニズムも十分とはいえない。

 既存の枠組みで言えば、むしろHPC(ハイパフォーマンスコンピューティング)向けの複数ノード/並列コンピューティング実装手段であるMPI(Message Passing Interface)の方が求めている機能に近い。しかし、こちらはもともとがHPC向けということもあり、そのままロボット制御に使うにはやはり無理がある。こうした背景もあって、ロボット向けOSが生まれてきた。

あのロボットが私のハードウェア予算を食っている!

ロボット開発」に関するさらに詳しい情報をお求めの方は、MONOistに掲載された記事を再編集した無料電子ブックレット『あのロボットが私のハードウェア予算を食っている!』をぜひご覧ください。「未知の地形を滑らかに歩かせる」を例に、エンベデッドシステム化するロボットについて考えます。 ⇒ダウンロードはこちら


 国内だと、電子技術総合研究所(現在の産総研)で1998年から開発が始まった「ART-Linux」であろう。2013年3月末で産総研における開発と保守は終了しているが、現在もオープンソースの形で公開されており、誰でもこれを入手してシステムを構築できる。

 最近ではPepperに搭載された仏アルデバランの「NAOqi」も有名である。あるいは冒頭に出てきたクラタスに採用されている「V-Sido OS」。こちらはアスラテックより提供されるが、そもそもV-Sido OSの開発者である吉崎航氏がクラタス開発者の1人であり、V-Sido OSなしにはクラタスは構築できなかった。

photo ソフトバンクの「Pepper」

 産業向けとしては、日本ロボット工業会が2002年に提唱した「ORiN」(Open Robot/Resource interface for the Network)が、その後はORiN協議会によってメンテナンスされている。OSではないが「RT-middleware」(Robot Technology middleware)と呼ばれるロボット制御用のミドルウェア用の規格も提唱され、これはOMGにより標準規格化もなされた。

 RT-middlewareは産総研による「OpenRTM-aist」の他、NET Framework上で動作する「OpenRTM.NET」やAndroidに対応した「RTM on Android」など各種プラットフォーム向けに移植されている。

 こうした動きは日本だけはない。「YARP」(Yet Another Robot Platform)「The Orocos Project」などはOSというよりミドルウェアだが、ロボット制御に必要なものがまとまったライブラリ群+αである。また、Arduinoでロボット制御を行う「ROBOTC」といったものまである。ただ、そうした中で一番有名なのが、冒頭に紹介したROSである。

現在も進化するROS

 ROSはもともと、SAIL(Stanford Artificial Intelligence Laboratory:スタンフォード人工知能研究所)が「STAIR」(STanford AI Robot)というロボットを開発するために開発したものである。

 このSTAIRの開発にはWillow Garageという会社が協力しており、ROSの開発は同社が主体となっていた。その後、Willow Garageは2012年にOSRF(Open Source Robotics Foundation)を設立してROSの管理を移管。以後はこのOSRFがオープンソースでROSの開発とメンテナンスを行っている。

 このROSそのものは基本的にUbuntuの上で動作する。対応するハードウェアは非常に多く(一覧はこちらを見てもらうのが早い)、加えて自分で作成したロボットをROSで制御する、というケースも多い。そして、ROSの特徴の1つはソフトウェアライブラリの多さである。一覧はこちらから見ることができるが、現時点での推奨リリースであるKinetic Kameに対応したものだけでこれだけある。

 ROSそのものも順次更新されており、2010年1月に初公開されたROS 1.0以降、Box Turtle、C Turtle、Diamondback……とアップデートされている。執筆時点での最新は2017年5月にリリースされたLunar Loggerheadであるが、その前のKinetic Kameが安定しており、2021年までのサポート(Lunar Loggerheadは2018年まで)があることから、現在はKinetic Kameの利用が推奨されている。


Copyright © ITmedia, Inc. All Rights Reserved.

Loading