LoginSignup
11
12

More than 1 year has passed since last update.

Docker上のROS2 Foxy環境でNavigation2を動かす

Last updated at Posted at 2021-04-30

はじめに

以前ubuntu20.04上のROS2 Foxy環境にTurtlebot3のシミュレーション環境とNavigation2をインストールしてNavigation2を動かす記事を書きました。

執筆時現在Navigation2 ドキュメントのGetting Startedの方法でTurtlebot3パッケージをインストールして簡単にNavigation2が動かせるようになっていたので、今回はubuntu20.04環境がない方向けにDocker上にROS2 Foxy環境を構築してNavigation2を実行する方法を書きます。

動作環境

Dockerが動く環境であればubuntuでもMacでもWindowsでも何でも可。
Docker自体のインストール方法については省略します。

docker-ros2-desktop-vncでROS2環境の構築

Docker上のROS2 Foxy環境構築にはTiryohさんが公開している
docker-ros2-desktop-vncを使用します。

こちらubuntu-desktop-lxde-vncを使ってブラウザ上でGazeboやrvizも動くGUIのROS2環境がコマンド1行で構築できる非常に便利なリポジトリです。

Dockerが使える環境で以下のコマンドを実行

$ docker run -p 6080:80 --shm-size=512m tiryoh/ros2-desktop-vnc:foxy

最初はImageのダウンロードをするので時間がかかります。(全部で4.8GBくらい)
以下実行後画面

docker run -p 6080:80 --shm-size=512m tiryoh/ros2-desktop-vnc:foxy
Unable to find image 'tiryoh/ros2-desktop-vnc:foxy' locally
foxy: Pulling from tiryoh/ros2-desktop-vnc
a70d879fa598: Pull complete 
c4394a92d1f8: Pull complete 
10e6159c56c0: Pull complete 
54ce6fc330e9: Pull complete 
1956e2222f9d: Pull complete 
1c994628a0c6: Pull complete 
e56a311ab0d9: Pull complete 

ダウンロードが終わったらブラウザを開いて、以下アドレスにアクセス

http://127.0.0.1:6080/

こんな感じの画面になります。

Screenshot from 2021-04-30 18-20-23.png

ROS2とGazeboの動作確認

左下メニューのSystem ToolsLXTerminalからターミナル起動

Screenshot from 2021-04-30 18-31-51.png

適当なGazeboデモを実行

$ gazebo /opt/ros/foxy/share/gazebo_plugins/worlds/gazebo_ros_camera_demo.world 

Gazeboが起動してモデルが動いていれば成功

Screenshot from 2021-04-30 20-33-26.png

Navigation2とTurtlebot3パッケージのインストール

Navigation2のインストール

$ sudo apt install ros-foxy-navigation2
$ sudo apt install ros-foxy-nav2-bringup

Turtlebot3パッケージのインストール

$ sudo apt install ros-foxy-turtlebot3*

Turtlebot3の環境変数の設定

source /opt/ros/foxy/setup.bash
export TURTLEBOT3_MODEL=waffle
export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:/opt/ros/foxy/share/turtlebot3_gazebo/models

Navigation2の実行

以下を実行してTurtlebot3 GazeboワールドとNavigation2を起動
最初はモデルの読み込みに時間がかかります。

$ ros2 launch nav2_bringup tb3_simulation_launch.py

rviz2とGazeboが起動したらあとはNavigation2ドキュメント通り
rviz2上で2D Pose Estimateをクリックして地図上の位置をドラックして初期位置を指定、
Navigaton2 Goalをクリックして地図上の移動したい場所をドラックしてゴールを指定。

Gazebo上のモデルが指定したゴールに向かって動き出せば成功です。

Screenshot from 2021-04-30 20-53-21.png

参考

11
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12