ナビゲーションスタック
オドメトリ、センサ・ストリーム、及び目標姿勢からの情報を取り込んで、移動ベースに送信される安全な速度指令を出力するA 2次元ナビゲーションスタック。
ワークス
ボックスの中央に位置し、ナビゲーションの全体的な企画を担当し、move_baseノードです。ノード内のいくつかの白丸は、プラグインではなく、別のノードです。灰色の正方形は、オプションの一部です。ブルーボックスは、情報が与えられたとの情報は、オドメトリとしてなどに、自分のプラットフォームに依存しなければならないです。
入力:
/tf
:ロボットの様々な関節との間の関係、およびオドムマップとの関係等odom
:情報オドメーター/map
:map_serverまたはgmappingまたはkartoによって提供することができますsensor
:他のセンサからのデータ
出力:
- cmd_vel:シャーシの制御情報
move_base
異常行動を取り扱う、世界計画(静的)、地域計画(ダイナミック):move_baseは、3つの機能を持っています
真ん中は、実際に、それは我々が指定する必要があることの3つのインタフェースを持って、move_baseです。
- ベースローカルプランナー
- ベースグローバル・プランナー
- 回復動作
costmap
正確には、costmapはちょうどマップ全体のメンテナンスコストそのプラグインのmove_base。前述のマップはグローバルであり、ここではマップだけでナビゲートします。唯一の経路計画のためのcostmapは、2つ(グローバル及びloacl)、多層、2次元を有しています。
マルチレイヤは、特にそれが持っているどのように多くの層、一般的に次の三つを選択することができますがあります。
- 静的な層
、実際には、あなたが直接購読することができ、静的な情報の前にマップ/マップトピックを参照して、その情報が保存されています - 障害物層
それによってマップを生成する障害物センサ走査電流に応じては、動的です。3D点群投影のサポート - インフレ率層は、
ロボットは、独自のボリュームを持っているので、この層の意義は、それが衝突を避けるために、安全な範囲内でロボットのターンを確保するために、拡張マップを可能にするということです。
MapServer
ロボットが地図を提供するために使用され、多くの場合、AMCLと組み合わせて使用されています。MapServerの提供マップAMCLで現在の位置を決定しました。
Gmapping、karto及び他の類似の構造におけるノードとSLAM。
共通コマンド
$ rosrun map_server map_server my_map.yaml # 启动map_server, 发布地图
$ rosrun map_server map_server [-f my_map] # 保存地图
AMCL
前フレームとに似たSLAMアルゴリズム
AMCL HAVEは、予測して補正を行うために自分の位置をずらし、次のように動作します:
ソースを記入してください。
本論文では、「AndroidのOSは、はじめに」MOOCの中国の大学をまとめた
リンク:リンク。
ビデオキャプチャプログラムからの写真