今回は、ロボットとOSSとの関係についてご紹介したいと思います。
ロボットといっても最近よく聞くRPA(Robotic Process Automation )のようなソフトウェアのことではなく、工場の自動化を助ける産業用ロボットなどのことです。そのロボットを作るためのソフトウェアが存在するわけですが、今回はその中でOSSの果たす役割についてご紹介したいと思います。
オープンソースのロボット開発フレームワーク “ROS”の拡大
ロボットを動かすためのシステムで代表的なものに「ROS」というものがあります。
ROSは、Robot Operating Systemの略です。名前に「Operating System」が含まれていますが、OSではなく開発ツールやライブラリを含めたロボットシステムを開発するためのフレームワークで、オープンソースとして公開されています。
米国スタンフォード大学で開発された「Switchyard」プロジェクトをベースに米国のWillow Garage社が2007年に本格的に開発を開始し、2010年に最初のリリース版が公開されましたが、その後Open Source Robotics Foundation(オープンソース・ロボティクス財団)、通称『OSRF』というNPOに引き継がれ管理されています。
なお、OSRFは、2017年5月に名称を「オープンロボティクス」と変更しています。このROSが動作するOSは、UbuntuなどのLinuxが中心で、特にUbuntuでは、パッケージ管理システムを活用してインストールができます。また、開発チームがテストで実施していることもあり、多く利用されています。
分散システムに拡張できるというROSの特徴
ROSの特徴の大きなものとして、簡単に分散型システムを構築できることが挙げられます。それぞれの機能を有したソフトウェアをノードと呼ばれるプロセスを複数同時に実行し、ノード間のデータはネットワーク経由で通信するシステムになっています。
これにより、複数マシンでの分散システムに自然と拡張できるようになりますし、たとえシステムのあるプロセスが動作しなくなっても、システム全体が動作しなくなることがなくなります。
商業利用等に期待できるROS2という次世代バージョン
ROSは、リリース以降順調に適用範囲も学術分野にとどまらず製造・農業・商業分野に広めてきましたが、機能的に不十分な部分も目立つようになってきました。
主にPR2というロボットに対応するために開発されてきたこともあり、近年の産業用ロボットとして求められるニーズ(複数ロボット、リアルタイムシステム等)に対応できないため、次世代バージョンを開発することとし2017年12月に「ROS2」をリリースしました。
このROS2を活用することで、今後商業利用へ大きく展開されることが期待されています。
インテックの”RDBOX”
2019年4月に(株)インテックが、ロボット開発者向けの開発・管理ユーティリティ「RDBOX」をオープンソースとして公開しました。
この「RDBOX」をインストールした機器をインターネットとサービスロボットの間に設置するだけで、ROSロボットに最適化したKubernetesクラスタとセキュアで拡張性の高いWi-Fiネットワークの自動構築が可能になります。
ただし、現在サポートしているプラットフォームはAWSおよびオンプレミス環境になります。また、DockerおよびKubernetesを用いることにより、ローリングアップデートやロールバックなどの高度な自動配信・自動運用を実現することが可能になります。
簡単にRaspberry Pi(ラズパイ)上でこのROSを動かすことできます。このラズパイをIoT端末として、今後ますます活用されていくことが予想される中で、このROSやROS2の重要さが増していくことになると思います。
(※)本文中記載の会社名、商品名、ロゴは各社の商標、または登録商標です。