1.1: ROSの歴史#
ここでは、ROSの歴史とともにROSの概要を説明します。
ROSの歴史#
ROSはスタンフォードに大学在籍中だったKeenan WyrobekとEric Bergerが個人的なプロジェクトとしてロボット工学の長年の問題とされてきた「車輪の再開発」を解消する取り組みとして始まりました。
車輪の再開発とは
他の人や企業が開発して広く周知されている技術を独自に設計・製作すること。類語に「二番煎じ」がある。
ロボット工学には長く二つの大きな問題がありました。
- 複雑なロボティクスアルゴリズムを移植・統合のために割かれるリソースが非常に大きい。
- 作成されたシステムを運用する時間が開発期間に対して少ない。
ロボット工学は、ソフトウェア(C++やPython2など)とハードウェア(USB接続やPCIe接続、SPI、CANなど)の両方のアップデートの影響を受けるため、同じプログラムを長期間メンテナンスすることがかなり難しいです。
実際、彼らが投資家に売り込むために使用したスライドではさまざまなプロジェクト例を挙げ、それらのプロジェクトうち大半がシステムの再開発に費やされていることを表しています。
この課題を解決するためにプログラムの相互通信が可能なフレームワーク(PersonalRoboticsProgram)を作成しました。このフレームワークに基づいて作成したプログラム同士が共通の形式を使用した通信を行うことで様々なハードウェアの違いを吸収できるシステムの構築が可能となりました。
ROSのようなフレームワークは何も斬新はシステムではありませんでした(UrbiやSONYのOpen-Rなど)。ただし、ROS以外のフレームワークは有料であったがゆえにフレームワークを支えるべきコミュニティが育たなかったと言われています。
ROSはWillow Garage社によっておよそ6年もの間開発されました。Willow Garage社はKeenanとEricのアイデアに関心を示し、資金提供を行ったためです。2010年にROS1.0がリリースを行いました。
Turtlebot#
オープンソースであったROSの人気を押し上げたのが「Turtlebot」です。これまでのロボットは数十万〜数百万が当然とされ、他方から新しいツールを導入するのはコストの観点から難しい問題でした。
Turtlebotはコストの問題を解決し、ROSの機能を手軽に試せるセンサやアクチュエータを備えたロボットです。
ROS2#
ROSは急速に広まり、多くの開発者に使用されるロボットツールとなりましたが、産業用のロボットを構築するファームウェアとしては欠点が多くありました。ロボット本体やセンサを対応させるためには、それをリリースした企業の協力が不可欠ですが、以下の求められた機能を満たさないが故にサポートされなかったものもあります。
求められた機能
- セキュリティ
- リアルタイムサポート
- 単一のサーバー(=roscore)
- ライセンス
これらの問題を解決するためにAPIを一から作り直したROSがROS2です。将来的にROS2への移行が求められ、2025年のUbuntu FocalのEOL(End of Life = 保守/サポート終了)に伴いROS1がEOLとなります。
ROS2はDDS規格(Data Distribution Service for Real-time Systems 分散システムの出版-購読型システム)をサポートしています。DDS規格はリアルタイム性・機密性・分散の3つの特徴を持ち、roscoreの削除とリアルタイム性・セキュリティの問題を解決しました。
その他ROSコミュニティ#
「ロボット」は様々な形があり、それぞれに異なったフレームワークが必要な場合があります。以下の組織は各分野に特化したOSSを管理し、コミュニティを持っています。
- Autoware Foundation
- 自動運転モビリティを可能にするオープンソースソフトウェア「Autoware」をサポートする非営利団体です。
- F1 Tenth
- 2016年にペンシルベニア大学で設立された研究者・エンジニア・自立システム愛好家の国際的コミュニティです。
- microROS
- 非常に制約の多いマイコンでROS2アプリケーションを動作させるためのソフトウェアを提供しています。
- Movelt
- ロボットアームの高度な動作を構築するツールを提供しています。Moveltはほとんどのロボットアームでサポートされています。
- NAV2
- 経路計画を行うツールを提供しています。
- OpenCV
- 画像処理のライブラリを提供しています。
- Open Robotics
- ROS1、ROS2、Gazeboシミュレーター、Ignitionシミュレーターを開発・提供しています。
- PX4
- ドローンや無人機のための飛行制御ソフトウェアを提供しています。
- ROS-Industrial
- 産業関連のハードウェアおよびアプリケーションを提供するプロジェクトです。
ROSCONというROSの学術会議が毎年開催されています。日本でもROSCON JPが開催されており、学生・企業問わずオープンなディスカッションが行われています。
日本では、その他にもROS Japan UG という日本のROSコミュニティが定期的にLT会を開いています。
この章の参考文献#
https://www.theconstructsim.com/history-ros/
https://www.ros.org/blog/community/
https://rosjp.connpass.com/