拙著「ROS2とPythonで作って学ぶAIロボット入門」(講談社)を授業で使用する場合の講義資料のたたき台です.教科書 [第4章 ナビゲーション] の[4.3.3節 シミュレータとリアルロボットを動かす方法 (p.109)]に相当します.今回は、シミュレータGAZEBOを使い、Turtlebot3を動かします。TurtleBot3 e-Manualを参考にしています.
1. 準 備(教科書用Dockerイメージを使う場合は作業不用)
- これからの演習で必要になるパッケージを次のコマンドでインストールします。
- Gazeboのインストール
$ sudo apt install gazebo11 ros-foxy-gazebo-ros-pkgs
- Navigation2のインストール
$ sudo apt install ros-foxy-navigation2
$ sudo apt install ros-foxy-nav2-bringup
- Turtlebot3関連パッケージのインストール
$ source ~/.bashrc
$ sudo apt install ros-foxy-dynamixel-sdk
$ sudo apt install ros-foxy-turtlebot3-msgs
$ sudo apt install ros-foxy-turtlebot3
$ cd ~/colcon_ws/src
$ git clone -b foxy-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git
$ cd ~/colcon_ws
$ colcon build --symlink-install
- Gazeboのインストール
2. 設 定
VSCodiumを使って~/.bashrcの最後(124行)に次の1行を追加して保存する。exportは環境変数を設定するコマンド。ここでは、TURTLEBOT3_MODELをburgerに設定している。なお、上の準備でインストールしたTurtlebot3パッケージには、ロボットがburger、waffle、waffle_piの3種類ある。ここでは、一番シンプルなburgerを選択する。burgerは私の研究室にも3台ある。
export TURTLEBOT3_MODEL=burger
- 設定を反映するためにsourceコマンドを実行する。
$ source ~/.bashrc
3. Simulator GAZEBOを動かそう
次のコマンドでROS2のシミュレータGazeboを起動する。
- $
ros2 launch turtlebot3_gazebo empty_world.launch.py
初回の起動はネットからモデルを取得するので、私の環境で5分程度かかった。しばらくすると次のようなウインドウが開く。図の青い円はLIDARが到達する範囲を示している。シミュレータの環境がempty_worldだけにロボット以外は何も存在しない環境である。格子が1辺1mなのでBurgerが搭載しているLIDARは3.5m届く。マウスでドラッグするとシミュレータの視点を変えることができる。下の画面が拡大してBurgerを表示したもの。実際のBurgerよりモデルが単純化されているのは残念。
次に、別の端末を開き、次のコマンドを入力するとキーボードからロボットを操縦するためにturtlebot3_teleopパッケージのteleop_keyboardノードを起動する。
- $
ros2 run turtlebot3_teleop teleop_keyboard
端末に下のように表示される。w a s d x キーでロボットを操作できる。いずれかのキーを押してロボットを動かそう!マウスのカーソルがturtlebot3_teleop_key.launchを起動した端末上になければ動かないので注意。
- w:前進。増速
- a:左回転。増速
- s/スペースキー:ストップ
- d:右回転。減速
- x:後進。減速。
お疲れ様!
コメント