ros2shellを実行しても,(ros1 noetic py3) になる

myAGV上でros2shellを実行しても,なぜか(ros1 noetic py3)の環境になる不都合です.
たぶん,myagv_ros2でcolcon buildするところを,間違えてcolcon_ws上でcolcon buildしちゃったからだと思います.
しかも,ros1の環境下で実行しちゃったのが原因ですね.
とすると,正しくは,

# ● 手順 0:クリーンな状態のシェルを開く
Shellenv -i HOME="$HOME" USER="$USER" TERM="$TERM" bash --noprofile --norcShow more lines
# ● 手順 1:ROS2 だけを読み込む
Shellsource /opt/ros/galactic/setup.bashShow more lines
# ● 手順 2:ワークスペースへ
Shellcd ~/colcon_wsrm -rf build install logShow more lines
# ● 手順 3:ROS2 専用として再ビルド
Shellcolcon build --symlink-install

これで直るはずです.

以下は,対処療法でしたので無視して下さい.

er@er:~$ ros2shell 
MYCOBOT_ROS_2_INIT = 1
ros2-init
ROS_DISTRO was set to 'noetic' before. Please make sure that the environment does not mix paths from different distributions.
ROS_DISTRO was set to 'galactic' before. Please make sure that the environment does not mix paths from different distributions.
(ros1 noetic py3)er@er:~$

なんでだろうと思って~/.bashrcを眺めてみると,

(ros1 noetic py3)er@er:~$ tail -n10 .bashrc
		. /etc/bash_completion
	fi
fi
source ~/myagv_ros/devel/setup.bash
source ~/myagv_ros/devel/setup.bash

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
source ~/myagv_ros/devel/setup.bash

なんかsource ~/myagv_ros/devel/setup.bashが3つも書かれています….
これらをros-initの関数の中に移動させればOKです.
お行儀良くしておきましょうか.

ros-init()
{
        source /opt/ros/noetic/setup.bash
        if [ -f ~/catkin_ws/devel/setup.bash ]; then
                source ~/catkin_ws/devel/setup.bash
        fi
        if [ -f ~/myagv_ros/devel/setup.bash ]; then
                source ~/myagv_ros/devel/setup.bash
        fi

違った.
以下のsetup.bashも関係していました.
local_setup.bashへ書き換えましょう.

ros2-init()
{
        source /opt/ros/galactic/setup.bash
        if [ -f ~/colcon_ws/install/local_setup.bash ]; then
                source ~/colcon_ws/install/local_setup.bash
                if [ "$MYCOBOT_ROS_2_COMMANDS" != "" ]; then
                        echo "$MYCOBOT_ROS_2_COMMANDS"
                        eval "$MYCOBOT_ROS_2_COMMANDS"
                        exit
                fi
        fi
}

コメントを残す

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

*