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

[2020年2月18日追記] 2020年1月版を公開しています。

あわせて読みたい
[2020年1月版] ROS2の環境構築方法 この記事は2019年4月に書いた「[2019年4月版] ROS2の環境構築方法」の改訂版です。 https://memoteki.net/archives/2150 以下の3つを紹介します。 オフィシャルなインス...

先日開催された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
GitHub
GitHub - Tiryoh/ros2_setup_scripts_ubuntu: 🔧 unofficial ROS 2 install/setup scripts for Ubuntu 🔧 unofficial ROS 2 install/setup scripts for Ubuntu - Tiryoh/ros2_setup_scripts_ubuntu

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
GitHub
GitHub - Tiryoh/docker-ros2: unofficial ROS 2 Dockerfile unofficial ROS 2 Dockerfile. Contribute to Tiryoh/docker-ros2 development by creating an account on GitHub.
あわせて読みたい

まとめ

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

あとがき

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

編集履歴

2020年2月18日

2020年1月版を公開したのでそのページへのリンクを追加

2020年4月12日

WordPressのアップデートに伴いレイアウト変更(コンテンツそのものに変更はありません)

この記事が気に入ったら
フォローしてね!

よかったらシェアしていただけると励みになります!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Memotekiの管理人です。このブログには学んだことや共有しておきたいことをマイペースにメモしていきます。2020年からは日記も書き始めました。

コメント

コメント一覧 (1件)

コメントする


reCaptcha の認証期間が終了しました。ページを再読み込みしてください。

目次