ロボットを動かす場合、ROS(Robot Operating System)というミドルウェアを使うと効率的です。ROSには、ロボットを動かすときに必要な、モーターやセンサーなどのハードウェアの制御を行うデバイスドライバや、ロボットの基本的な動きや位置確認などの処理やプロセス間通信を行うライブラリや、データを可視化したり、3次元シミュレーションを行ったり、ログを出力したり、開発に必要なツールが含まれています。ROSは、オープンソースで開発されていますので、誰でも自由に使うことができます。
ROSは、Linuxのディストリビューションの一つである、Ubuntu上で動作します。しかも、同じUbuntuでも、バージョンによって、対応しているROSが決まっています。ROSのプログラムをソースからビルドして他のバーションで動かすには、かなりのスキルが必要となります。
また、Ubuntuには、LTS( Long Term Support)と呼ばれる5年間の長期サポートが行われるバージョンが、2年毎の偶数バーションに提供されています。そのため、UbuntuのLTS版対応のROSが良く使われています。
新しく「ROS2 Cristal」もリリースされていますが、ROSと互換性がないため、2019年7月の段階では、未対応のROS上で動作しているパッケージも多いです。というわけで、このページでは、「Ubuntu 18.04 TLS」+「ROS Melodic」と、「Ubuntu 16.04 TLS」+「ROS Kinetic」の2つのバージョンを使っています。「ROS Kinetic」も利用しているのは、ROS関連の書籍などは、Melodicに対応していないため、両方の環境を使って動作確認を行っています。
ROSのバージョン | 対応するOSのバージョン |
---|---|
ROS2 Cristal | Ubuntu 18.04 LTS、Ubuntu 16.04 LTS、MacOS-X、Windows |
ROS Melodic | Ubuntu 18.04 LTS |
ROS Kinetic | Ubuntu 16.04 LTS |
ROS Indigo | Ubuntu 14.04 LTS |