MENU
アーカイブ

WSL2とDockerを使ってROS2を実行するやり方を紹介します

WIndowsのPCでROS2を使うために、WSL2とDockerを利用してみました。

gazeboやrVizなどを使ってSLAMをやってみたのでそのやり方を紹介します。

目次

WSL2とUbuntuのセッティング

PowerShellを管理者で起動して、以下を実行してWSL2をインストールします。

スクロールできます
wsl –install

続いて、Ubuntuをインストールします。

スクロールできます
wsl –install -d Ubuntu-22.04

Ubuntuをインストールしたらまずは以下を実行します。

スクロールできます
sudo apt update && sudo apt upgrade -y

Docker Desktopのインストール

以下の公式サイトからインストーラをダウンロードします。

URL:https://www.docker.com/ja-jp/

Windows版にはAMD64とARM64がありますが、Intel CPUはAMD64になります。

ARMベースのCPU以外は全てAMD64でいいみたいです。

Docker Desktopを起動して左下にEngine runningと出ている状態で以下を実行します。

スクロールできます
docker run -it \
–name ros2_gazebo \
–net=host \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
osrf/ros:humble-desktop

gazeboの実行

以下を実行して必要なものをインストールします。

スクロールできます
apt update
apt install -y gazebo
apt install -y ros-humble-turtlebot3*
apt install -y ros-humble-gazebo-ros-pkgs

ROS環境を読み込みます。

スクロールできます
source /opt/ros/humble/setup.bash

環境変数を設定してモデルを指定します。

スクロールできます
export TURTLEBOT3_MODEL=burger

続いて、以下を実行します。

スクロールできます
ros2 launch turtlebot3_gazebo empty_world.launch.py

これでロボットが表示されたgazeboのウィンドウが開きました。

ロボットを操作

別ターミナルを起動して以下を実行します。

スクロールできます
docker exec -it ros2_gazebo bash
source /opt/ros/humble/setup.bash
export TURTLEBOT3_MODEL=burger
ros2 run turtlebot3_teleop teleop_keyboard

ターミナル上で以下のキーを押すとgazebo上のロボットを操作することが出来ます。

スクロールできます
w → 前進
x → 後退
a → 左回転
d → 右回転
s → 停止

続いて、ロボットのセンサ情報を可視化するためのrVizを起動します。

さらに別ターミナルを起動して以下を実行します。

スクロールできます
docker exec -it ros2_gazebo bash
source /opt/ros/humble/setup.bash
export TURTLEBOT3_MODEL=burger
rviz2

gazeboから情報を受け取るために設定ファイルを読み込みます。

rViz上の左上にあるメニューで以下を選択します。

スクロールできます
File → Open Config

以下のファイルを選択します。

スクロールできます
/opt/ros/humble/share/turtlebot3_gazebo/rviz/tb3_gazebo.rviz

この状態でgazebo上でロボットを動かすとrVizでセンサ情報を可視化することが出来ます。

SLAM

地図を作成するために以下を実行します。

スクロールできます
ros2 launch turtlebot3_cartographer cartographer.launch.py use_sim_time:=True

ターミナル上で以下のキーを押すとgazebo上のロボットを操作することが出来ます。

地図が作成で着たら以下を実行して保存します。

スクロールできます
ros2 run nav2_map_server map_saver_cli -f ~/my_map

保存した地図を使用するようにNavigation2を起動するために以下を実行します。

これを実行するときは新しいターミナルを立ち上げて実行します。

スクロールできます
ros2 launch turtlebot3_navigation2 navigation2.launch.py \
map:=~/my_map.yaml use_sim_time:=True

rViz上で、ロボットの初期位置を設定するためにツールバー上にある2D Pose Estimateをまずクリックし、続いてロボットの位置をマップ上でクリックし、ドラッグして向きを合わせます。

最後に、ゴールを指定するため、Nav2 Goal をクリックしてからマップ上をクリック&ドラッグします。

これでロボットが自動で動き出したので、SLAMを実行することができました。

まとめ

WindowsのPC上でROS2を実行し、gazeboとrViz等を駆使してSLAMをシミュレーション上で実行することが出来ました。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次