MonteCarloLocalizationLRF (自己位置推定RTC)

概要

本コンポーネントは、OpenHRP3から取得したシュミュレーションのLRF距離データ、オドメトリ情報から、モンテカルロ位置推定を利用した地図とのマッチングを行い自己位置を推定するコンポーネントです。

LRFから取得した距離データとスタート地点データ、タイヤの回転角から現在位置を推定したオドメトリデータを入力し、推定自己位置姿勢を出力します。

外部の地図管理RTCと接続しなかった場合、ローカルに持っているPGM形式の地図データを利用し、自己位置推定を行います。

本コンポーネントは、移動知能モジュール群に含まれます。

../../_images/montecarlolocalizationlrf.png

動作確認OS

  • Linux Ubuntu10.04 LTS
  • Windows 7

依存ライブラリ

  • OpenRTM-aist : OpenRTM-aist-1.0.0-RELEASE(C++) または OpenRTM-aist-1.1.0-RELEASE(C++)
  • GTK+ toolkit : 2.x (GUIが必要な場合のみ)
  • OpenCV : OpenCV-2.0以上

データポート

名前 フローポート データ型 説明
RangeData InPort TimedLongSeq 距離データ列[mm]
CurrentPosInit InPort IIS::TimedPose2D 初期化用の自己位置 [m, m, rad]
Odometry InPort IIS::TimedPose2D オドメトリ[m, m, rad]
CurrentPos OutPort IIS::TimedPose2D 推定された現在位置、姿勢 [m, m, rad]
LocationInfo ServicePort   自己位置情報(未使用)
LRFInfo ServicePort   LRF情報
MapInfo ServicePort   地図情報

コンフィギュレーション

名前 データ型 デフォルト値 設定範囲 説明
_num_particles double 300 無し 位置推定に利用するパーティクル数
_def_pos_x_m double 3.4 無し 初期位置[m]
_def_pos_y_m double 7.7 無し 初期位置[m]
_def_pos_theta_deg double 180.0 無し 初期姿勢[deg]
_std_pos_x_m double 0.5 無し 初期探索時の位置x[m]
_std_pos_y_m double 0.5 無し 初期探索時の位置y[m]
_std_pos_theta_deg double 10.0 無し 初期姿勢の標準偏差[deg]
_m_per_pixel double 0.04 無し ウィンドウに表示する時の解像度[m/pixel]
_screen_offset_x short -200 無し ウィンドウに表示する時の中心座標x[pixel]
_screen_offset_y short 150 無し ウィンドウに表示する時の中心座標y[pixel]
_map_format string OCCUPANCY_GRID_MAP 無し 地図データのフォーマットを指定 POINT_MAP、LINE_MAP、OCCUPANCY_GRID_MAPから選択
_map_filename string mapdata/RTCcenterUnifiedMap.pgm 無し 地図データファイルへのパス
_x_coord_front_lrf_info bool 1 無し LRF情報取得ポート(LRFInfo)の座標系の向き 1:X軸正面、0:Y軸正面
_x_coord_front_current_pos_init bool 1   現在位置取得ポート(CurrentPosInit)の座標系の向き1:X軸正面、0:Y軸正面
_x_coord_front_current_pos bool 0 無し 現在位置送信ポート(CurrentPos)の座標系の向き 1:X軸正面、0:Y軸正面
_x_coord_front_odometry bool 1 無し オドメトリ取得ポート(Odometry)の座標系の向き1:X軸正面、0:Y軸正面
_offsetfov double 0 無し 計測範囲のオフセット
_scanAngle double 47 無し 計測範囲[rad]
_scanStep double 0.004363323 無し 計測解像度[rad]