初めに
今回は、wsl2上にubuntu22.04とROS2を導入し、外部のpcをトピック通信を行う。
条件
- 外部pc側にはROS2を導入済み
- 外部pcのIPアドレスは固定済み
wsl2にubuntuを導入する。
- windows PowerShellを管理者として実行
- 以下のコードを打ち込み、インストール開始
wsl --install
- インストール後、ubuntuのユーザー名と新しいパスワードを打ち込んで終了。再起動する。
wsl2にROS2を導入する
- localeの設定
locale # check for UTF-8
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
locale # verify settings
- sourceのセットアップ
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
- ros2のインストール
sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop
- 環境変数のセットアップ
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source .bashrc
wsl2のmirrormodeの設定
- cmdを開いて、以下のコマンドでwslを更新します。
wsl --update
wsl --update --pre-release
- c:/User/<ユーザー名>の中の.wslconfigに(なければ作ってください)以下のように書き換えてネットワークをミラーモードに変更する。
[wsl2]
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
- ファイルを保存したらwsl2を再起動。
wsl --shutdown
ファイアウォールに規則を追加
-
ファイアウォールの影響で外部pcをトピック通信できないので設定を変更する。
-
どちらの項目も「これらのIPアドレス」に変更し、「追加」のボタンからwsl2のIPアドレスと外部pcのIPアドレスを各々入力する