ROSとは/ROS2とは
1.ROSとは何か
ROSとは、Robot Operating System(ロボットオペレーティングシステム)のことであり、ロボット開発のために必要な一連のライブラリとツール群、さらにはユーザと開発者を繋ぐオープンなコミュニティを含む統合的ソフトウェアプラットフォームのことです。
具体的には、ハードウェアの抽象化、デバイスドライバ、各種開発言語用のライブラリ、視覚化ツールをはじめとするデバッガー、メッセージ通信やパッケージ管理、Wikiサイトによる情報提供やQ&Aサイトなどが提供されています。
ROSの大きな特徴としてROSコミュニティと呼ばれる大規模なエコシステムが出来上がっていることが挙げられます。世界中の膨大な人数の利用者がインターネットを介していつでも、どこでも問題が生じれば対応してくれるシステムが出来上がっているのです。
2.ROS1からROS2へ
爆発的な普及に繋がったROSですが、様々なロボットにROSが使われるようになり、研究者以外の利用者が増えるといくつかの問題が見えてきました。そこで、2014年に開発が始まったのが次世代バージョンのROSとも言えるROS2です。
ROS2はROSのコンセプトは引き継ぐもののコア部分に仕様変更を加え、下記に挙げるような大幅なバージョンアップを計画しました。
- 複数台ロボットを同時に制御
- 組込み系のマイコンなど多様なプラットフォームへの対応
- 通信品質確保(QoS)やリアルタイム通信の機能を標準でサポート
- 研究室レベルから商品レベルへの対応
中でも大きな特徴として、システム全体における通信のボトルネック解消の目的でDDS(Data Distribution Service)という仕組みが新たに採用されました。DDSは従来のROSと同じ配信・購読型の仕組みを継承しつつ、QoS やリアルタイムの通信を保証しています。
また、OMGで標準仕様が規定されていることもありドキュメントが豊富で企業ユーザが製品に使用するハードルが低くなっています。DDSを採用したROS2によりROSの時代には問題になっていた低品質なネットワーク環境でもロボットを動かすことが可能になると期待されています。
ROS2は2017年に最初の正式版がリリースされ、徐々に安定したバージョンが提供されるようになってきましたが、まだ不安定でバグも少なからず含まれます。ROS2は世界中の開発者が日々アップデートをしており1年に複数回のバージョンアップが実施されることもあります。
▽続きはこちら
書籍『ロボットプログラミングROS2入門』