ロボット開発に有用とされるROSだが、習得には対応ロボットを入手した方が手っ取り早い。利用開始までの手順と、併用したいツールやデバッガも紹介する。
ひとくちに「ロボットを作る」といっても、判断と制御、駆動を備えたロボットを作るのはかなり骨が折れる。その負担を軽減するフレームワークとして開発されたのが「ROS」(Robot Operating System)だ。ROS概論として、これまでにROSのあらまし、なぜロボット制御でROSが好まれるかというあたりを解説してきたが、今回は実際にROSを使ってみる手順をご紹介したい。
・ROS(Robot Operating System)概論(2):ロボットに使われる分散処理、なぜ「ROS」が好まれるのか
・ROS(Robot Operating System)概論(1):ロボット開発で注目される「ROS」(Robot Operating System)とは何か
まずハードウェアについてだが、ROSを使うと言うことは、基本的には何らかのロボットを動かす、ということになる。もちろん、このロボットをフルスクラッチで作る事も可能(というか、その目的でROSが作られた)だが、既にROSをサポートしているロボットもある。ROS.orgには(ロボットで無いものも混じっているが)、こうしたROSをサポートしたロボットハードウェアの一覧があり、ROSの習得を考えるならば、対応ロボットを入手してROSを使うほうが手っ取り早い。
国内で言えば、プレンプロジェクトのヒューマノイドロボット「PLEN」にはROS対応の制御ボードが用意されているし、また、iRobotの「ルンバ」やソニーの「AIBO」をROSで制御するといった、ROS対応でないロボットをROSで制御する、という試みもある(アイロボットルンバ ロボット開発コミュニティ) (Conectando el Robot AIBO a ROS)。
リファレンスというわけでもないが、ROSで制御する標準的な例として多く使われているのが「TurtleBot」で、国内でもいくつかの代理店、ショップが取り扱いをしている。このTurtleBotはオープンハードウェアということで設計図が完全に公開されており、自分で設計図を見ながら作る事も可能だ。
対応ロボットの中で比較的入手しやすい製品として挙げられるのは、「LEGO Mindstorms」シリーズだろうか。ROS対応という意味では現行「EV3」の前製品であるNXTが広く知られているが、EV3にROSを移植する試みも始まっているのでこれにトライしても良いし、NXTを市場で探すという手もあるだろう。
さて、ロボット(というか、制御する対象)が決まったら、次にROSを動かすプラットフォームの選定である。ロボットの中には、その中のコントローラーで直接ROSが走るケースもあるが、先ほどのAIBOやMindstormsの制御などの場合、別にROSを動かすコントローラーが必要となる。先のTurtleBotの場合、ノートPCを乗せて使う形を想定しており、このノートPCがプラットフォームになる。
プラットフォームは現時点で最新となる「ROS Jade Turtle」の場合、x86系では「Ubuntu 15.04/14.10/14.04」、ARM系では「Ubuntu 14.04 LTS」などとなっている。ARMの場合は使うデバイスごとに細かく利用できる環境が異なるので、こちらを参照されたい。x86の場合は、まずそれぞれ所定のUbuntuをインストール、起動した後にapt-getでROSのパッケージを入手、インストールし、初期化と環境設定を行えば完了となる。手順についてはROS.orgのこちらに詳しいので、ここでは割愛する。
ちなみに最終的なターゲットを小さいパッケージに収めたい、ということであればRaspberry Pi 2やIntel Edisonなど物理的に小さなプラットフォームが魅力的に見えるだろう。しかし、最初からこれを選ぶと開発がやりにくくなることが多い。なので、開発段階ではもう少し(物理的に)大きく、ノートPCなど汎用的なものを選び、開発がある程度進んだ段階で最終的なターゲットに移植する、という方が賢明だと思われる。
Copyright © ITmedia, Inc. All Rights Reserved.