はじめに
TurtleBot3(waffle pi)をROS2で動かした際の忘備録(3)です
本ページでは実機を使ってSLAM/Navigationをテストします
https://qiita.com/pez/items/1d3d15b3911d5dab1702
【下記の状態からを想定しています】
・ホストPCにVirtualBox+Ubuntuが導入済み(下記別記事参照)
https://qiita.com/pez/items/a3ef1855f7e1e0ed3dfd
・ホストPCにROS(ROS2 Foxy)がインストール済み(下記別記事参照)
https://qiita.com/pez/items/1df36628524ff40a3d93
・TurtleBot3セットアップ済み(下記別記事参照)
https://qiita.com/pez/items/1d3d15b3911d5dab1702
環境
ホストPC (Panasonic Let's Note CF-FV)
・OS: Windows11 Pro (64bit)
・VirtualBox: 6.1.38 (Ubuntu20.04.5, GUI環境)
・ROS: ROS2 Foxy
ロボット
・TurtleBot3 waffle pi (Raspberry Pi 3B+)
または
・TurtleBot3 burger (Raspberry Pi 3B+)
SLAMのテスト
TurtleBot3にSSH接続して立ち上げます
$ ssh ubuntu@[(例)192.168.**.** (turtlebotのIPアドレスを調べて接続)
※接続できたら
$ ros2 launch turtlebot3_bringup robot.launch.py
別のターミナルを立ち上げてロボットの操作を行えるようにします
teleop(キーボード操作)を使う場合は下記
※自分で作った my_teleop や my_gamepad を使ってもよい
$ ros2 run turtlebot3_teleop teleop_keyboard
動かせるようになったら下記で地図作成を開始します
$ ros2 launch turtlebot3_cartographer cartographer.launch.py
ロボットを動かしながら周辺地図を作成していきます.
ロボットの種類・その他環境によるかもしれませんが,かなりゆっくり動かさないとうまく作成できないかもしれません.
地図の保存
$ ros2 run nav2_map_server map_saver_cli -f ~/map
※mapの部分は任意の名前でOK,「~/」を入れるとホームディレクトリ直下に保存される
ナビゲーションのテスト
※SLAMで地図が保存された後を想定しています
ナビゲーションノードを立ち上げる
$ ros2 launch turtlebot3_navigation2 navigation2.launch.py map:=$HOME/map.yaml
※map.yaml の部分はmapを保存した時の「自分でつけた名前」.yaml とする.
操作方法
1.「2D Pose Estimate」ボタンをクリック
2. 現在ロボットのいる位置をクリックして緑色の矢印をロボットが向いている方向に合わせる
3.「Navigation2 Goal」ボタンをクリック
4. ロボットを移動させたい位置をクリックして緑色の矢印を最終的にロボットに向かせたい方向に合わせる
ロボットが目的地に動いたら成功