ROS入門チュートリアル(XII) - ナビゲーション

ナビゲーションスタック

ナビゲーションスタック

オドメトリ、センサ・ストリーム、及び目標姿勢からの情報を取り込んで、移動ベースに送信される安全な速度指令を出力する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の中国の大学をまとめた
リンク:リンク
ビデオキャプチャプログラムからの写真

公開された43元の記事 ウォン称賛20 ビュー1465

おすすめ

転載: blog.csdn.net/Chen_2018k/article/details/104391233