[2020年2月18日追記] 2020年1月版を公開しています。
先日開催された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
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
まとめ
2019年4月22日時点でのROS 2 Crystal Clemmysのインストール方法について、Dockerイメージについて簡単に紹介しました。
公式のインストール方法を紹介しているページだけ読んで環境を用意すると足りないパッケージが出てくることがあるのと、インストールには手間がかかるので、インストールスクリプトを用意しました。インストールスクリプトを利用してROS2をインストールしたDockerイメージを用意しました。今回紹介したインストールスクリプト、Dockerfile、Dockerイメージはすべて公開しています。
あとがき
蛇足ですがアイキャッチに設定したこの画像は昨年末に購入したROS2パーカーの写真です。残念ながら今はもう売ってないみたいです。
編集履歴
2020年2月18日
2020年1月版を公開したのでそのページへのリンクを追加
2020年4月12日
WordPressのアップデートに伴いレイアウト変更(コンテンツそのものに変更はありません)
コメント
コメント一覧 (1件)
[…] この記事は2019年4月に書いた「[2019年4月版] ROS2の環境構築方法」の改訂版です。 […]