ロボットアプリケーション開発のROS2とは

ROS2の紹介

Robot Operation System(ROS)の次世代バージョンであるROS2は、非常に大きな目標を掲げたロボットアプリケーション開発のためのミドルウェアです。

ROS2はROSが持つハードウェア抽象化、デバイスドライバ、ライブラリ、視覚化ツール、メッセージ通信、パッケージ管理のすべての機能に加え、ROS2の追加機能としてセキュリティ、リアルタイム制御、ネットワーク品質制御、複数ロボットの同時利用、商業サポートも備えるように設計されています。これからは、ロボットアプリケーションを製品化する上で、ROS2をまったく使わずに実現することは、もはやほぼ不可能といっても良いでしょう。ROS、ROS2の普及に伴い、その適用範囲は自動運転や、工場の生産工程自動化、クラウドロボティクスにも拡大しています。

図1Autowareを使った自動運転
図1 Autowareを使った自動運転
https://github.com/autowarefoundation/autowareより転載
図2MoveItによる干渉回避を伴う動作計画
図2 MoveItによる干渉回避を伴う動作計画
http://docs.ros.org/indigo/api/moveit_tutorials/html/より転載
図3AWS RoboMakerによるGazeboシミュレーション結果のウェブブラウザー確認
図3 AWS RoboMakerによるGazeboシミュレーション結果のウェブブラウザー確認
https://aws.amazon.com/jp/blogs/news/aws-robomaker-develop-test-deploy-and-manage-intelligent-robotics-apps/より転載

ROS2をはじめるには

ROS2をはじめるには、モダンC++かPython3のプログラミング能力が必要になります。本書を先に手にとって、わからないところをその場で調べていくのでも構いませんが、知識が体系的にまとまった書籍をあらかじめ読まれることをお勧めします。

また、ROS2はロボットアプリケーション開発のためのミドルウェアですので、ROSに対応したロボットが手元にあると、さらに学びの幅が広がります。本書で取り扱った自動掃除ロボットRoombaの廉価モデルを購入されるのも良いですし、ROS公式サポートの移動ロボットプログラミングの入門機であるTurtleBot3もお勧めです。

ご予算に限りがある方でしたら、シミュレータで始めることもできます。ROS2はGazeboというロボットシミュレータに対応しています。

これからのROS2

ROS2の開発には全世界の多くの企業、個人開発者が開発に携わっています。加えて、2018年9月にROS2のTechnical Steering Committeeという委員会も発足されました。この組織はROS2のロードマップの策定や、中核となるツールやライブラリの開発、重要課題の議論を行います。列挙された委員の所属や顔ぶれからも、ROS2はロボットアプリケーション開発のための成功が約束されたようなミドルウェアだといえます。

日本は現在、課題先進国と呼ばれています。少子高齢化などの社会的要因により、ロボットの導入にも積極的です。すでに活用が進んでいる製造業以外にも、ロボットの活躍すべき場所はたくさんあるはずです。汚かったり、危なかったり、きつかったりする作業はロボットに任せて、人はより創造的な仕事に打ち込みましょう。そのきっかけとして本書から少しでも何かを汲み取ってもらえれば幸いです。

近藤豊(こんどうゆたか)

株式会社Preferred Networks エンジニア。ROS Japan Users Group を主催。奈良先端科学技術大学院大学 情報科学研究科 博士後期課程 修了 博士(工学)。
ホームページ:https://www.youtalk.jp/
Twitter:@youtalk