Turtlebot3/Raspberry4版の製作(2号機)SLAM操作:e-Manual【9.1】~

Turtlebot3/2号機には、Lidar は搭載していないので SLAM 操作はできませんが、リモートPCも ROS・melodic にバージョンアップしているので
ここは、1号機を使ってリモートPCの機能確認をします。

【 9.1:SLAMノードを実行 】
PC:$ roscore
PC:$ssh jun@192.168.1.100 (1号機)
PW:ja3dxa

R1:$ roslaunch turtlebot3_bringup turtlebot3_robot.launch

ここで RViz を個別に実行する場合は、下記のいずれかを選択します。
  $ rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_gmapping.rviz
  $ rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_cartographer.rviz
  $ rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_hector.rviz
  $ rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_karto.rviz
  $ rviz -d `rospack find turtlebot3_slam`/rviz/turtlebot3_frontier_exploration.rviz

PC:$ export TURTLEBOT3_MODEL=burger  すでに宣言済みなので不要
PC:$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping

ここでは、Gmappingパッケージを使用しています。


右下の計測できていない部分は、私の影です。
ロボットは事務所の机の上に置いて計測しているので、ほぼ四方の壁が計測できています。


【 9.2:Teleoperationノードの実行 】
新しいターミナルを開き、遠隔操作ノードを実行します。次のコマンドを使用すると、ロボットを制御してSLAM操作を手動で実行できます。
速度の変化が速すぎたり、回転が速すぎたりするような激しい動きを避けることが重要です。
ロボットを使用して地図を作成する場合、ロボットは測定する環境の隅々までスキャンする必要があります。
クリーンなマップを作成するにはいくつかの経験が必要です。そのため、SLAMを複数回練習して、方法を習得しましょう。

 PC:$ export TURTLEBOT3_MODEL=burger      これは「~/.bashrc」で宣言済みなので不要
 PC:$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

前後、左右回転キーを使って地図を作成していきます。未計測部分がなくなるまでロボットを移動させて完璧な地図を作成します。
地図作成において、細かなパラメーター設定を行う事で地図作成内容が変わってきます。(今回は標準設定のままで作成)


【 9.4:地図の保存 】
すべての作業が完了したので、map_saverノードを実行してマップファイルを作成しましょう。
マップは、ロボットのオドメトリ、tf情報、およびロボットの移動時のセンサーのスキャン情報に基づいて描画されます。

 PC:$ rosrun map_server map_saver -f ~/map

map.pgm 、 map.yaml は、ユーザのホームフォルダのマップのフォルダに保存されます


以下は、map.pgm です。



右上はガラス扉、中央部には扉の無いロッカーに物が入っている。
その下は、事務机だがロボットのLidar部は事務机の足の部分しか見えていない。左上の抜けている部分は奥の作業場で未計測です。


【 10:Navigation 】
ナビゲーションとは、特定の環境でロボットを1つの場所から指定した目的地に移動することです。
このためには、指定された環境の家具、オブジェクト、壁のジオメトリ情報を含むマップが必要です。
前のSLAMセクションで説明したように、マップはセンサーによって取得された距離情報とロボット自体のポーズ情報を使用して作成されました。

ナビゲーションでは、マップ、ロボットのエンコーダー、IMUセンサー、および距離センサーを使用して、ロボットが現在のポーズからマップ上の
指定された目標ポーズに移動できるようにします。このタスクを実行する手順は次のとおりです。

【 10.1:Navigationノードの実行 】
 PC:$ roscore
 PC:$ssh jun@192.168.1.100
    PW:ja3dxa
 R1:$ roslaunch turtlebot3_bringup turtlebot3_robot.launch

 PC:$ export TURTLEBOT3_MODEL=burger
 PC:$ roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml

上記のコマンドを実行すると、可視化ツールRVizも実行されます。RVizを個別に実行する場合は、次のコマンドを使用します。
    PC:$ rviz -d `rospack find turtlebot3_navigation`/rviz/turtlebot3_navigation.rviz