ROS2の紹介
Robot Operation System(ROS)の次世代バージョンであるROS2は、非常に大きな目標を掲げたロボットアプリケーション開発のためのミドルウェアです。
ROS2はROSが持つハードウェア抽象化、デバイスドライバ、ライブラリ、視覚化ツール、メッセージ通信、パッケージ管理のすべての機能に加え、ROS2の追加機能としてセキュリティ、リアルタイム制御、ネットワーク品質制御、複数ロボットの同時利用、商業サポートも備えるように設計されています。これからは、ロボットアプリケーションを製品化する上で、ROS2をまったく使わずに実現することは、もはやほぼ不可能といっても良いでしょう。ROS、ROS2の普及に伴い、その適用範囲は自動運転や、工場の生産工程自動化、クラウドロボティクスにも拡大しています。
図1Autowareを使った自動運転
※https://github.com/autowarefoundation/autowareより転載
図2MoveItによる干渉回避を伴う動作計画
※http://docs.ros.org/indigo/api/moveit_tutorials/html/より転載
図3AWS 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はロボットアプリケーション開発のための成功が約束されたようなミドルウェアだといえます。
日本は現在、課題先進国と呼ばれています。少子高齢化などの社会的要因により、ロボットの導入にも積極的です。すでに活用が進んでいる製造業以外にも、ロボットの活躍すべき場所はたくさんあるはずです。汚かったり、危なかったり、きつかったりする作業はロボットに任せて、人はより創造的な仕事に打ち込みましょう。そのきっかけとして本書から少しでも何かを汲み取ってもらえれば幸いです。