WSL2 + Ubuntu 22.04 + ROS2 Humble + uv 環境構築メモ
WSL2 上で ROS2 Humble と Python 仮想環境管理ツール uv を共存させた開発環境のセットアップ手順をまとめました。
CUDA 関連の設定は省略しています(必要な方は 元記事 を参照)。
参考リンクの寄せ集めなので、新しいことはほとんどありませんが、自分用のセットアップメモとして書いておきます。
その他開発で便利な gh による GitHub 連携や、 ros2-aliases も導入します。
参考リンク
- https://qiita.com/kccs_yoshiteru-imamura/items/66155f9e54e2a86ec212
- https://qiita.com/ginyoku102/items/781f81f95cf913b4e39a
- https://zenn.dev/headwaters/articles/90171506eeead8
Ubuntu 22.04 のインストール
PowerShell で以下を実行します。
cd ~
mkdir wsl
cd wsl
Invoke-WebRequest https://cloud-images.ubuntu.com/wsl/releases/22.04/20240304/ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz -OutFile ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz
wsl --import Ubuntu-22.04-ros2 C:\Users\[USER]\wsl C:\Users\[User]\wsl\ubuntu-jammy-wsl-amd64-wsl.rootfs.tar.gz
ここではディストリビューション名を Ubuntu-22.04-ros2 としています。
[USER]は自身のWindowsのユーザーネームに置換してください。
wsl --install -d Ubuntu-22.04 でインストールすることも可能ですが、この方法であればディストリビューション名を変えることで同一マシン上に複数OSを準備することができ、便利です。
起動:
wsl -d Ubuntu-22.04-ros2
ユーザ作成と sudo 権限付与
adduser yourname
gpasswd -a yourname sudo
systemd 有効化設定
/etc/wsl.conf を編集します。
sudo nano /etc/wsl.conf
内容を以下のように変更します。
[boot]
systemd=true
[user]
default=yourname
ctrl+O -> Enter -> ctrl+Xで保存します。
保存後、exitと打って PowerShell に戻り WSL を再起動します。
wsl -t Ubuntu-22.04-ros2
wsl -d Ubuntu-22.04-ros2
ROS2 Humble のインストール
sudo apt install -y software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install -y curl
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
sudo apt update
sudo apt upgrade -y
sudo apt install -y ros-humble-desktop ros-dev-tools ros-humble-rqt-*
CUDA 関連の設定を行う場合はこの後に追加してください。
ワークスペース作成とビルド確認
cd
mkdir -p ros2_ws/src
cd ros2_ws
sudo rosdep init
rosdep update
source /opt/ros/humble/setup.bash
colcon build
確認:
ros2 run demo_nodes_cpp talker
Publisher が起動すれば OK です。
ros2-aliases の導入
ROS2 コマンドのショートカットを提供するツールです。
ros2-aliases (GitHub)
sudo apt install fzf
git clone https://github.com/kimushun1101/ros2-aliases.git $HOME/.local/ros2-aliases
echo 'source $HOME/.local/ros2-aliases/ros2_aliases.bash' >> ~/.bashrc
source ~/.bashrc
setenvfile
例:cb → colcon build
ヘルプ:rahelp
GitHub CLI の導入
GitHub と連携してリポジトリ操作を行うには gh コマンドが便利です。
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) && sudo mkdir -p -m 755 /etc/apt/keyrings && out=$(mktemp) && wget -nv -O$out https://cli.github.com/packages/githubcli-archive-keyring.gpg && cat $out | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && sudo mkdir -p -m 755 /etc/apt/sources.list.d && echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null && sudo apt update && sudo apt install gh -y
インストール後にログイン:
gh auth login
選択肢は以下のみたいな感じに進むのがいいと思います。
GitHub.com -> SSH -> Login with a web browser
uv の導入(Python 仮想環境管理)
uv は超高速な Python 仮想環境管理ツールです。
curl -LsSf https://astral.sh/uv/install.sh | sh
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
再起動後に更新:
uv self update
VSCode の Python 拡張が仮想環境を自動で有効化する場合があります。
自動切り替えが不要な場合は、VSCode の設定から無効化できます。
uv と ROS2 の共存時の注意
ROS2 の python パッケージは実環境に置く必要があるので、uv の仮想環境との共存には一工夫必要です。
-
新規パッケージを作成する場合
→ 参考: 新規パッケージの作成 -
既存パッケージを clone & build する場合
→ 参考: 既存パッケージのビルド
まとめ
- Ubuntu 22.04 の WSL2 環境を構築
- ROS2 Humble 導入
- ros2-aliases で CLI 操作を効率化
- gh で GitHub 操作を統合
- uv で Python 仮想環境管理
CUDA を追加すれば、GPU活用も可能です。
他ツールについても必要に応じて随時追記予定です。