はじめに
TurtleBot3のGazeboシミュレーション環境をROS2 Humbleで構築する手順を解説します。公式マニュアルに基づきつつ、コマンドの解説を加えて詳しく説明しています。
この記事を読めば、Ubuntu 22.04 LTS上でTurtleBot3をシミュレーション環境で動かせるようになると思います。
1.必要な環境
使用するソフトウェアとバージョン
- OS:Ubuntu 22.04 LTS
- ROS2のバージョン:Humble
2 パッケージのインストール
2.1 システムのアップデート
まずはパッケージをアップデートして最新にします。
apt update
でリポジトリ情報を最新化し、apt upgrade
でインストール済みのパッケージを更新します。
$ sudo apt update
$ sudo apt upgrade
2.2 Gazeboシミュレータのインストール
以下のコマンドでROS2関連のシミュレーションパッケージをインストールします。gazebo-*
はGazeboの主要パッケージ一式をインストールします。
$ sudo apt install ros-humble-gazebo-*
2.3 シミュレーション関連パッケージのインストール
以下のコマンドでROS2関連のパッケージをインストールします。
-
cartographer
: SLAM (地図作成) 用のパッケージ -
dynamixel-sdk
: Dynamixelモーター制御用SDK -
turtlebot3-msgs
: TurtleBot3専用メッセージ定義 -
turtlebot3
: TurtleBot3の主要ライブラリ
$ sudo apt install ros-humble-cartographer
$ sudo apt install ros-humble-cartographer-ros
$ sudo apt install ros-humble-dynamixel-sdk
$ sudo apt install ros-humble-turtlebot3-msgs
$ sudo apt install ros-humble-turtlebot3
2.4 ワークスペースの作成とシミューレーション用レポジトリのクローン
シミューレーション環境を構築するために、専用のワークスペースを作成します。
$ mkdir -p ~/turtlebot3_ws/src
TurtleBot3のシミュレーション用リポジトリをクローンします。--depth 1
は履歴の少ない軽量なクローンを作成するオプションなので無くても全く問題ないです。
$ git clone --depth 1 -b humble https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
クローン後、以下のコマンドでビルドを実行します。
-
colcon build
はROS2の標準ビルドツールです。 -
--symlink-install
によりシンボリックリンクを使用した軽量インストールが行われます。
$ cd ~/turtlebot3_ws && colcon build --symlink-install
### 2.4 Turtlebot3モデルの設定
シミューレーションで使用するTurtlebot3のモデルを指定します。`burger`は軽量なTurtleBot3モデルの一つです。他に`waffle`や`waffle_pi`も選択可能です。
```bash
$ export TURTLEBOT3_MODEL=burger
$ ros2 launch turtlebot3_gazebo empty_world.launch.py
$ export TURTLEBOT3_MODEL=waffle
$ ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
$ echo 'export ROS_DOMAIN_ID=30 #TURTLEBOT3' >> ~/.bashrc
$ source ~/.bashrc
3. Gazeboシミューレーションの起動
3.1 空の世界で起動
以下のコマンドでGazeboを起動し、空のシミュレーション環境を立ち上げます。empty_world.launch.py
は空のシミュレーション空間を生成します。
$ export TURTLEBOT3_MODEL=waffle
$ ros2 launch turtlebot3_gazebo empty_world.launch.py
3.2 デフォルトのTurtlebot3環境で起動
以下のコマンドでTurtleBot3専用のワールドを起動します。turtlebot3_world.launch.py
はTurtleBot3用に構築されたマップ上でシミュレーションを行います。
青い円はLidarが測定されているエリアを表しています。
$ export TURTLEBOT3_MODEL=waffle
$ ros2 launch turtlebot3_gazebo turtlebot3_world.launch.py
おわりに
Turtlebot3
を無事起動できるようになったので、次はナビゲーションに取り組みたいと思います。
参考サイト