ROS/ROS2 環境変数あるある
1台のPCにROS/ROS2の複数のディストリビューションがインストールされていて, 環境変数を切り替えながら使っていませんか?
自分の場合,趣味のプロジェクトで使っているディストリビューションがバラバラで
melodic
dashing
eloquent
を使い分ける必要があります.
環境変数の切り替え,どうしてる?
以前,こんなツイートを見かけました.
よし。 pic.twitter.com/ae45uxPsXJ
— Namihei Adachi (@7oei) January 3, 2020
みんな環境変数切り替えで苦労してる. 考えることは一緒!
ちなみに自分は.bashrc
に下のように書いて一番上のexport
をコメントアウトで切り替えてました.
今思うと超ガバガバでウケる(ウケない)
export CHOOSE_ROS_DISTRO=dashing #export CHOOSE_ROS_DISTRO=melodic #export CHOOSE_ROS_DISTRO=eloquent if [ $CHOOSE_ROS_DISTRO = melodic ]; then source /opt/ros/melodic/setup.bash source ~/catkin_ws/devel/setup.bash elif [ $CHOOSE_ROS_DISTRO = dashing ]; then source /opt/ros/dashing/setup.bash source ~/ros2_dashing_ws/install/local_setup.bash elif [ $CHOOSE_ROS_DISTRO = eloquent ]; then source /opt/ros/eloquent/setup.bash source ~/ros2_eloquent_ws/install/local_setup.bash fi
神ツール現る
なんと,ROS2本の著者であるyoutalk氏がROS/ROS2の環境変数管理ツールを作っていたみたいです. github.com
ROSJPのLT大会でも発表されてたみたいですね
ROS / ROS 2開発生産性向上ツール - Speaker Deck
複数のディストリビューションだけでなく複数のワークスペースも考えられていて素晴らしい!
使い方は簡単で
chdistro dashing ~/ros2_ws
のようにchdistro
コマンドの後にディストリビューションとワークスペースを指定するだけです.
よく使うワークスペースにはエイリアスをかけておけば環境切り替えが爆速になりそうです.
神ツールに補完をつける
素晴らしいchdistro
ですが,入力補完がないのでディストリビューションやワークスペースのパスを全て入力する必要があります.
ということで補完スクリプトを作りました.
/etc/bash-completion
に配置すると勝手に読み込まれるはずです.
ディストリビューションは/opt/ros
にインストールされているものを補完し,
ワークスペースは$HOME
以下のディレクトリを補完してくれるようになっています.
本家の方にも補完を取り入れるようにはたらきかけているのでデフォルトで補完が出るようになるかも知れませんね.