Note: This tutorial assumes that you have completed the previous tutorials: [ja/turtlebot_navigation/Tutorials/Build a map with SLAM|TurtleBotによるSLAMを用いた地図作成]], . |
Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags. |
既知の地図を用いたTurtleBotの自律ナビゲーション
Description: このチュートリアルでは既知の地図を用いてTurtleBotでナビゲーションを行う方法について述べます.Tutorial Level: BEGINNER
Contents
事前準備
このチュートリアルは以前のチュートリアルで作成したような, 作業環境の地図がすでにあることを前提としています.
ここでは, turtlebotの起動チュートリアルに既に慣れていることを前提としています. もし, Createの台車を使っている場合, 正確なキャリブレーションによってパフォーマンスが大幅に改善されることがあるため, TurtleBotのオドメトリとジャイロのキャリブレーション を参考にしてください.
amclアプリを立ち上げる.
TurtleBot上での操作
生成した地図ファイルの中を通り抜けるナビゲーション用のデモアプリを実行する.
roslaunch turtlebot_navigation amcl_demo.launch map_file:=/tmp/my_map.yaml
ワークステーション上での操作
ここでは, ワークステーション上にROSがあり, ROS_MASTER_URIがTurtleBotに設定されていることを前提としています.
rvizを立ち上げます:
# Pre-Groovy rosrun rviz rviz -d `rospack find turtlebot_navigation`/nav_rviz.vcg # Groovy or later roslaunch turtlebot_rviz_launchers view_navigation.launch
RVIZ内
TurtleBotの自己位置設定
起動時, TurtleBotは自分がどこにいるかを知りません. 大まかな地図情報での位置を提供するために:
1. "2D Pose Estimate" のボタンをクリックします.
2. TurtleBotが存在すべきの大まかな位置をクリックし, TurtleBotが向いている方向にドラッグします.
TurtleBotの仮定の位置として矢印の集合が表示されます.レーザースキャンは、ほぼ壁に沿って地図上に並ぶはずです。もしこれがきちんと一列に並ばない場合は、この手順を繰り返します。
==== テレ・オペレーション(遠隔操縦) ===
テレオペレーションはナビゲーションスタックと並行して実行することが可能 です. 指令が送られると, 自律的な挙動をオーバーライドします.
ナビゲーションの目的地を指定する
位置推定が成されているTurtleBotでは, 環境内での自律的なプランニングが可能です.
目的地を指定するには:
1. "2D Nav Goal"のボタンをクリックします.
地図上でTurtleBotを移動させたい場所をクリックし, TurtleBotを最終的に向かせたい方向にドラッグします.
経路, もしくは目的地が塞がれてしまっている場合, プランニングは失敗します.
もしロボットが目的地に到達する前に止めたい場合, 現在地をゴールとして指定してやります.
注意 TurtleBot1 である iRobot Create は 比較的脆弱なモータで構成されています. 障害物に逆らった動きを度を越えてロボットにさせてしまうと, 駆動系に永久的なダメージを引き起こす可能性があります. ダッシュボードの"Stop"ボタン, バンパセンサの実装などのアップグレードが近い将来あることでしょう.
このチュートリアルを実行している様子:
次に
TurtleBot Follower または TurtleBotのメインページ に戻る.