Navigation メモ1です。
■It is meant for both differential drive and holonomic wheeled robots only. It assumes that the mobile base is controlled by sending desired velocity commands to achieve in the form of: x velocity, y velocity, theta velocity.
■It requires a planar laser mounted somewhere on the mobile base. This laser is used for map building and localization.
■The Navigation Stack was developed on a square robot, so its performance will be best on robots that are nearly square or circular. It does work on robots of arbitrary shapes and sizes, but it may have difficulty with large rectangular robots in narrow spaces like doorways.
■差動駆動とホロノミック車輪付きロボットの両方を対象としています。 それは、x速度、y速度、シータ速度の形式で達成するために、所望の速度コマンドを送信することによってモバイルベースが制御されることを前提としています。
■モバイルベースのどこかに平面レーザーを取り付ける必要があります。 このレーザーは、マップの構築とローカリゼーションに使用されます。
■ナビゲーションスタックは正方形のロボットで開発されたため、ほぼ正方形または円形のロボットで最高のパフォーマンスが得られます。 任意の形状とサイズのロボットで動作しますが、出入口のような狭いスペースにある大きな長方形のロボットでは困難な場合があります。
http://wiki.ros.org/navigation
■地図作成
地図作成に関わる技術としてはSLAMを用います。ROSのSLAMパッケージを用いるとSLAMの知識が無くても地図作成ができ、またTurtleBot3用のROSのSLAMパッケージやマニュアルも公開されています。
TurtleBot3に搭載されているLiDARで環境の2次元スキャンをし、移動しながら地図を作っていきます。SLAMにはいくつか種類があるのですが、今回は最も有名なgmappingを使いました。gmappingの処理内容としては、パーティクルフィルタを用いて自己位置推定すると同時に、その自己位置情報をもとに地図を作成していきます。
■ナビゲーション
ナビゲーションに関しても、TurtleBot3用のROSパッケージやマニュアルがあります。
ゴール位置までのナビゲーションをするために、地図やセンサ情報をもとにしたコストマップを作成し、そのコスト情報をもとに経路計画をします。これらは大域的な処理と局所的な処理に分けられます。
大域的な処理としては、予め作っておいた地図情報を元に壁や障害物があるところにコストを高くし、コストが閾値を超えないような経路を計画します。局所的な処理としては、走行時に得られたLiDARのセンサ情報から人や以前なかった障害物を検知してリアルタイムで経路を補正します。
サイト引用
(https://proc-cpuinfo.fixstars.com/2018/11/turtlebot3-navigation/)
■Navigation 各パラメータについて
http://wiki.ros.org/navigation/Tutorials/Navigation%20Tuning%20Guide
■参考文献
turtlebot3
https://proc-cpuinfo.fixstars.com/2018/11/turtlebot3-navigation/