[2019年4月版] ROS2の環境構築方法

先日開催されたROS Japan UG #29のROS2講習会に参加してきました。

ネット上に出ているROS2の環境構築方法は意外と古い話が多かったので、2019年4月22日時点でのROS 2 Crystal Clemmysの環境構築に関する話(インストールについて、Dockerイメージについて)をまとめておきます。

ROS2講習会

今回のROS2講習会ではROS1との違いやROS2の特徴の紹介をしていただき、その後は実際にコードを書きながらROS2の使い方を体験しました。関係者の皆様、ありがとうございました!

ROS2の売りの1つにLinux、Windows、macOSに対応していることが挙げられますが、現状はUbuntu以外ではインストールにスキルを要するような印象です(個人の感想です)。
Ubuntu以外も対応していないわけではないですが、手順が複雑だったりして一筋縄ではいかないようです。近くで困っていた方に対して少しだけお手伝いさせていただきました。ちなみに私はmacOS上にUbuntuの仮想マシンを用意してその仮想マシンの中で作業していました。
おそらく、今後開催されるROS2講習会では、ROS2の使い方そのものに集中できるよう、UbuntuにROS2をインストールしておいた方がよいのではないかと思います。それから、Anaconda/MinicondaがインストールされているとPythonのPATHの都合でcmakeしたときにエンコーディングのエラーが出る場合があるようです。

ROS2のインストール方法

基本的にはROS IndexのInstallationのページを参照してインストールを進めて行けば問題ありません。
Ubuntuユーザの場合はUbuntu 18.04をインストールした環境にDebian Packageをインストールするのが楽でよいと思います。
パッケージをビルドするにはcolconと呼ばれるツールを使用するのですが、2019年4月22日現在、colconはROS Indexのインストール方法に従ってROS2をインストールするだけではインストールされません。colconのチュートリアルの最初でインストールするようになっているようです。

ROS2のインストールスクリプト

とりあえず、安定して使えるようになるまでは頻繁に環境構築をする機会があると思います。毎回公式のドキュメントに書いてあるコマンドを1行ずつコピペしていくのは手間がかかるので、UbuntuにROS2をインストールするのに必要なコマンドをまとめたスクリプトを用意し、せっかくなので公開しました。
colconのインストールもこのスクリプトで行えます。
使用するOSが64bitのUbuntuの場合、こちらのリポジトリをダウンロードしてスクリプトを実行すれば、比較的簡単にROS2をインストールすることができると思います。

git clone https://github.com/Tiryoh/ros2_setup_scripts_ubuntu.git
cd ros2_setup_scripts_ubuntu && ./run.sh
Tiryoh/ros2_setup_scripts_ubuntu
unofficial ROS2 install script for Ubuntu. Contribute to Tiryoh/ros2_setup_scripts_ubuntu development by creating an account on GitHub.

ROS2のDockerイメージ

ROS2もROS1と同じようにOSRFが管理しているDockerイメージが公開されています。ただ、2019年4月22日現在、**Experimental** Docker Imagesであり、頻繁にアップデートがなされています。

osrf/ros2:nightlyの2019年4月20日のバージョンsha256:b3718d4bcf42f50b5a1fbeeef3a30c349a3adbfe0844e211006f0d41a414aa0dでは
source /opt/ros/crystal/setup.bashを実行すると以下の警告が出ます。

[connext_cmake_module] Warning: The location at which Connext was found when the workspace was built [[/opt/rti.com/rti_connext_dds-5.3.1]] does not point to a valid directory, and the NDDSHOME environment variable has not been set. Support for Connext will not be available.

さらに、ros2/examplesをダウンロードしてcolcon buildしようとすると以下のエラーに遭遇します。

CMake Error at CMakeLists.txt:26 (rclcpp_register_node_plugins):
   Unknown CMake command "rclcpp_register_node_plugins".

さすがにDockerでROS2が使えないのは少し不便なので、公開したインストールスクリプトを実行するDockerfileとそのイメージを公開しました。

DockerがインストールされたUbuntuでTerminalを開いて、以下のコマンドを入力すれば環境に応じてarm64ならばtiryoh/ros2:arm64v8-crystalが、amd64ならばtiryoh/ros2:x64-crystalがダウンロードされます。つまり、Raspberry PiでもIntel CPUが搭載されたマシンでも同じコマンドでそれぞれに適したイメージがダウンロードできます。Docker Hub便利。

docker run -it tiryoh/ros2:crystal
Tiryoh/docker_ros2
unofficial ROS2 Dockerfile. Contribute to Tiryoh/docker_ros2 development by creating an account on GitHub.
Docker Hub

まとめ

2019年4月22日時点でのROS 2 Crystal Clemmysのインストール方法について、Dockerイメージについて簡単に紹介しました。
公式のインストール方法を紹介しているページだけ読んで環境を用意すると足りないパッケージが出てくることがあるのと、インストールには手間がかかるので、インストールスクリプトを用意しました。インストールスクリプトを利用してROS2をインストールしたDockerイメージを用意しました。今回紹介したインストールスクリプト、Dockerfile、Dockerイメージはすべて公開しています。

あとがき

蛇足ですがアイキャッチに設定したこの画像は昨年末に購入したROS2パーカーの写真です。残念ながら今はもう売ってないみたいです。

How-to
スポンサーリンク
ぜひこのエントリをシェアしてください!

Memotekiの管理人です。このブログには学んだことや共有しておきたいことをマイペースにメモしていきます。

Tiryohをフォローする
Memoteki

コメント