
— MRPT、ROS、Gazebo が切り開く自由な未来 —
ソフトウェアにおいて「汎用性」と「柔軟性」は非常に重要な特性です。特に、自由かつオープンソースのソフトウェアではその傾向が強くなります。
しかし、ロボット分野ではそれを実現することが一層困難です。なぜなら、ロボットごとに搭載されるセンサー、カメラ、コントローラー、アームなどの構成が異なり、それぞれがロボット用ソフトウェアの限界を押し広げていくからです。
ロボットの開発ではシミュレーターも存在します(本記事でも後ほど紹介します)が、その課題は「現実世界をどれだけ忠実に再現できるか」という点に移ります。
ロボティクスの分野は、テクノロジーの中でも特に重要な領域のひとつです。たとえば、世界の人口が高齢化する中で、誰が工場や建設現場などの職場を支えるのでしょうか? また、私たちが年を重ねて体が不自由になったとき、誰が私たちの世話をしてくれるのでしょうか?
Open Source Robotics Alliance(OSRA)の開発者アドボケートであるキャサリン・スコット氏は、ロボティクス開発では「高次の影響(higher order effects)」を考慮する必要があると指摘します。
これは物理学に由来する概念です。スコット氏は次のような例を挙げます。
「車輪をシミュレーションする場合、一次効果(first order effect)は単純な転がり運動です。二次効果(second order effect)は、走行中にタイヤが熱を帯びて粘着性が変化すること、アクセルを踏んだ際にホイールが変形すること、または加速による風の抵抗といった現象です。」
本記事では、3つの重要なフリーソフトウェアプロジェクトを取り上げます。
それは、Mobile Robot Programming Toolkit(MRPT)、Robot Operating System(ROS)、そしてロボットシミュレーターのGazeboです。
MRPTについてはプロジェクトリーダーのホセ・ルイス・ブランコ=クララコ氏、ROSとGazeboについては前述のスコット氏に取材しました。
本記事ではROSよりも先にMRPTを紹介します。その理由は、MRPTが2005年という早い時期に開発を開始したからです。
MRPTは数年間にわたり非常に人気のあるフレームワークであり、この分野の大手企業にも採用されていました。成長の勢いは以前ほどではありませんが、ブランコ氏によると現在も新しいユーザーを獲得し続けているといいます。
ブランコ氏が語る**MRPTの最大の強みは「柔軟性」**です。
20年前に収集されたデータセットでも、現在のMRPT上で問題なく動作します。
さらに、このフレームワークで作成されたマップ(建物や敷地などの地図情報)はすべて互換性を保っています。
(マップはロボットが自分の位置を特定し、どこへ向かうべきかを判断するための重要な要素です。)
MRPTは移植性の高いC++データ構造を採用しており、さまざまなロボットやアーキテクチャで利用できます。もちろん、ROSとの相互運用も可能です。
MRPTが登場した当初は、さまざまなロボット、センサー、カメラなどに対応するドライバーが次々と開発されました。
ブランコ氏によれば、典型的なコントリビューターは大学のロボティクス研究室に所属する学生とのことです。
ライブラリの設計と豊富なサンプルコードの提供により、ドライバーや拡張機能を容易に作成できるのです。
品質管理には他のプロジェクトと同様に、単体テストや統合テストといった標準的な手法が用いられています。
しかしロボティクスの場合、シミュレーター上のテストだけでは実機での動作を完全に保証することはできません。
そのため可能な限り、実際のロボットを使って変更点を検証します。
ただし、実機があっても追加の課題が残ります。たとえば、カメラやセンサー用ソフトウェアの正確な動作を確認するには、人間が出力結果を目視で確認する必要があります。
そのため、デバイスを所有しているテスターがデータセットを収集し、それをもとに開発者が実機を持たなくてもテストできるようにしています。
たとえば、地図を読み取りロボットを移動させるソフトウェアでは、シミュレーター上のロボットが記録データの実機と同じ位置に到達するかを確認できます。
また、移動に要したステップ数やホイールの回転量なども比較できます。
センサーの場合、データセットには実際に取得されたデータが記録されるため、それを使ってソフトウェアの検証が可能です。
MRPTが誕生して数年後の2007〜2008年ごろ、Willow Garageという著名な研究グループがロボティクスソフトウェアの分断を解消するために新たなフレームワーク「ROS(Robot Operating System)」を開発しました。
現在ではROSは業界標準のフレームワークとなり、巨大なプロジェクト群を支えています。
代表的な例として、工場の大型ロボット向けの「ROS-Industrial」や、自動運転技術を扱う「Autoware」があります。
2014年頃、Willow Garageは非営利団体Open Source Robotics Foundation(OSRF)を設立し、ROSの運営を引き継ぎました。
その後、プロジェクトの収益を確保するために営利企業Open Source Robotics Corporation(OSRC)を設立。
このOSRCは2022年にIntrinsic(Googleの親会社Alphabet傘下)によって買収されました。
さらに2024年、財団は支援者や貢献者からなる会員組織**Open Source Robotics Alliance(OSRA)**を設立しています。
ROSはプログラミング言語のような大規模プロジェクトと同様に、OSRFが管理するコア部分と、ROS-IndustrialやAutowareなど外部組織が開発する多数のパッケージから構成されています。
MRPTとは異なり、ROSでは独自のデータ型が定義されています。
スコット氏によると、2024年5月にサポートが終了したROS 1では、通信プロトコルをすべて独自に実装していたため、保守負担が大きく、柔軟性が制限されていたそうです。
先に述べたように、ロボットの多様性に対応するには、より柔軟な仕組みが必要でした。
そのためROS 2では、基本機能(パブリッシュ/サブスクライブなど)に抽象化レイヤーを導入し、ミドルウェアを差し替え可能にしています。
最初に採用されたプロトコルはOMG Data-Distribution Service(DDS)で、その後Eclipse Zenohなどにも対応が拡張されました。
ROSは毎年7〜8回の国際会議を開催しており、次回はシンガポールで行われる予定です。
Gazeboは、風の影響など、ロボットの動作に関係するあらゆる環境要素を再現するために常に改良が続けられています。
スコット氏は、ROSとGazeboを用いたDARPAチャレンジの事例を紹介してくれました。
このチャレンジでは、DARPA(米国国防高等研究計画局)がワシントン州にある未完成・放棄された原子力発電所の地図と仕様を作成しました。
参加者の目的は、その建物内を探索し、撤去が必要な物体を特定することでした。
まず、参加チームはGazebo上でコードを開発しました。
その後、成功したチームはDARPAから資金援助を受け、実際のロボットを製作して原子力発電所内でテストを行いました。
ロボティクスは、センシング、動作、安全性、未知の環境への適応など、テクノロジーにおける最も複雑で厄介な課題が集約された分野です。
自由かつオープンソースのソフトウェアは、そうした課題に挑戦する開発者たちに力を与え、私たちが実際に利用できるロボットの創造を可能にしています。
You are currently viewing a placeholder content from Vimeo. To access the actual content, click the button below. Please note that doing so will share data with third-party providers.
More InformationYou are currently viewing a placeholder content from YouTube. To access the actual content, click the button below. Please note that doing so will share data with third-party providers.
More InformationYou need to load content from reCAPTCHA to submit the form. Please note that doing so will share data with third-party providers.
More InformationYou need to load content from reCAPTCHA to submit the form. Please note that doing so will share data with third-party providers.
More Information