歴史
目次
概略
ROSの期限はスタンフォード大学生が開発したSwitchyardというシステムです。
Switchyardはロボットの制御に関する計算を並列処理することを前提として内部通信を行うシステムであり、分散型ロボットシステムに適したものでした。
2007年に現在のROSが誕生します。開発したのはOpenCVの開発支援なども行ったWillo 2010年に初めのディストリビューションとなる “ROS Box Turtle” が公開された。
ROSはLinuxと同じようにディストリビューションとしてリリースされていくこととなる。
2012年に非営利オープンソースロボット財団(Open Source Robotics Foundation; OSRF)が設立され、ROSの研究開発はOSRFに引き継がれることとなる。これと同時に “ROS Hydro Medusa” がリリースされた。
そして2017年、既存のROSとは完全に切り離されて開発された “ROS2” の正式リリースバージョン “Ardent Apalone” がリリースされた。
ROSからROS2へ
ROSを使ったことがないのであまり詳しいことは言えませんが、できる限り説明したいと思います。
ROS1とROS2は名前と思想こそ似ていますが、システムとしては全くの別物です。これからはROS2がスタンダードになっていくと思います。学習をはじめたいという人は、ROS2から始めることをお勧めします。
communication
ROSでは必ずマスターノードを介して通信しなければいけなかったところを、すべてのnode間で通信ができるようになりました。
この通信方式をDDSと呼びます。
DDS通信の導入により通信がより柔軟に、堅牢になったそうです。
リアルタイム性
ROS2ではROS1に比べリアルタイム性を重視した通信設計をしています。
これがQoS(Quality of Service)です。publisher, subscriberにたいしてQoSを設定することで、内容が大事なのか、スピードが大事なのかというパラメータを設定することが可能になりました。
それでもなお、完全なリアルタイムとは呼べませんが、時間遅れの問題はかなり解決されたのではないかと思っています。
マルチプラットフォーム
Windows, MacOSでも使うことができます。あんまり信頼してませんが。
ROS2のディストリビューション
ROS2は様々なディストリビューションがあります。大抵Ubuntuのバージョンがある程度新しくなると新しいROS2のディストリビューションが出るイメージです。
Linuxのディストリビューションとは異なり、ROS2のディストリビューションは互いに大きな違いはありません。現在最もサポートされているディストリビューションを使うことをお勧めします。
よく出てくるディストリビューションは次の通りです。
- Kinetic
ROS1で最も使われているディストリビューションです。ROS1のドキュメントを探すと大抵Kineticで出てきます。 -
Foxy ROS2のしばらく前のディストリビューションですUbuntu 20.04に対応しています。
-
Humble
いま最もサポートが厚いディストリビューションです。Ubuntu22.04に対応しています。
公式サポートは2027年までとされていますが、長期サポートを目的として安定性重視で作られたディストリビューションなので、しばらくは使えると思います。 - Jazzy
最近使われ始めたディストリビューションです。Ubuntu 24.04に対応しています。