ROS 2 Eloquent ElusorをOS X Catalinaで動かす

投稿者: | 2020年1月2日

概要

2019年11月にROS 2 Eloquent Elusorがリリースされました。

アップデート内容の例を以下にあげます。

  • XML記法でのlaunch対応
  • geometry_msgs/msg/Quaternion.msgのwのデフォルト値が1になった(←地味に嬉しい)
  • rvizで表示可能なメッセージが増えた
  • Mac OS Xのサポート対象バージョンの変更

実際に使用してみたところ、setup.zsh実行速度が格段に上がっています。
Dashingでは3〜5秒程度読み込みに時間がかかっており、~/.zprofileで自動ロードさせるのが躊躇われる遅さでした が、Eloquentでは1秒以下になっています。(※Catalinaではデフォルトのシェルがbashからzshに変更になりました!)
これが改善されるだけでも開発中のストレスが軽減されるので、Eloquentに乗り換えることにしました。

また、Mac OS XのサポートしているバージョンがDashingではSierraでしたが、EloquentではMojaveに変わっています。
(最新のCatalinaはサポートしてくれないんですね…)

(2020年1月1日時点)
下記の環境でEloquentをインストールしました。

  • iMac 27-inch (2019)
  • Mac OS X Catalina 10.15.2(19C57)

基本的には

  1. brew update & brew upgradeで最新の状態にする。
  2. Eloquentのバイナリパッケージをインストールする。
    ただしsetup.bashではなくsetup.zshになる点に注意!
  3. assimpのバージョンを4.1にダウングレードする。

の手順でOKです。
assimpのダウングレードについては以下内容を実施してください。

assimpのダウングレード

assimpの最新バージョンが5.0となっていますが、エラーが出るので4.1にダウングレードします。

find /usr/local/Homebrew/Library/Taps -name "*assimp*"
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/
git log assimp.rb

brew uninstall --force assimp

# install Ver4.1.0 
git checkout 461abb9c49c87c4841f75d1f592ac39d4f1ad15f assimp.rb

brew install assimp
brew pin assimp

おまけ

自分の環境でのみ起きた問題。必要に応じて試してみてください。

python3

PYTHONPATHの設定がおかしくなったのか、モジュールをimportしてくれなくなった。
無理やり再インストールして対応。

brew uninstall --ignore-dependencies python3
brew install python3

setup.zshしたときのwarningが煩い

setup.zshをロードするたびにrti_connext_ddsがインストールされてないと言われる。
(そもそもrti_connext_dds-5.3.1は32bitアプリケーションなので、Catalinaではインストールすらできないですし!)

% source ~/ros2_eloquent/ros2-osx/setup.zsh
[connext_cmake_module] Warning: The location at which Connext was found when the workspace was built [[/Applications/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.

ターミナルを開く毎にこれが表示されるのは流石に煩わしいので、出力先を/dev/nullにして非表示にしました。

source ~/ros2_eloquent/ros2-osx/setup.zsh 2> /dev/null
source ~/ros2_ws/install/local_setup.zsh 2> /dev/null

(2020/5/3追記)

# cmake 3.16.2
brew uninstall --ignore-dependencies --force cmake
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
git checkout 5f471c89725e76d4a40eb5a0eeb29a461a5c1633 cmake.rb
brew install cmake
brew pin cmake

# poco 1.9.4
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/
brew uninstall --force poco
git checkout 055f2f99de581160b142c3ccad392766e7b99d28 poco.rb
brew install poco
brew pin poco

# tinyxml2 7.0.1
cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula
brew uninstall --force tinyxml2
git checkout cf0ae2997643a562804dc26e14bf3813b13ae1b3 tinyxml2.rb
brew install tinyxml2
brew pin tinyxml2

# openssl
# ref: https://qiita.com/kunit/items/0aef44d5e522abde1f9c
brew uninstall openssl
brew tap-new $USER/old-openssl
brew extract --version=1.0.2t openssl $USER/old-openssl
brew install openssl@1.0.2t

ln -s /usr/local/opt/openssl@1.0.2t/lib/libssl.1.0.0.dylib /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
ln -s /usr/local/opt/openssl@1.0.2t/lib/libcrypto.1.0.0.dylib /usr/local/opt/openssl/lib/libcrypto.1.0.0.dylib


 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です