ロボットアプリケーション開発事例(SLAM&Navigationロボット)
移動プラットフォーム向けの機能ソフトウェアモジュールを組み込んだアプリケーションの開発事例をご紹介致します。
  • 人追従ロボット
  • SLAM&Navigationロボット
  • RFIDマッピングロボット
ロボットアプリケーション開発事例(SLAM&Navigationロボット)

開発事例ムービー

「SLAM&Navigationロボット」による自動未開地探索・自動地図作成

「移動ロボット環境シミュレータ」を使ってのアルゴリズム開発。

実機での「SLAM&Navigationロボット」。 自動未開地探索・自動地図作成の様子。

 
 

構成

構成図

使用要素

  • 台車(Blackship 2輪Version)
    • 速度・角速度指示入力
    • エンコーダ出力→オドメトリ計算
  • レーザーレンジセンサ(HOKUYO Top-URG)
    • 270度、1081サンプル出力
    • オドメトリ確率付マッチングによる自己位置推定

シミュレータの使用

シミュレータによるソフトウェア実装を行いました。


  • 台車シミュレータ
    (Blackship 2輪Version)
    • 速度・角速度指示入力
    • エンコーダ出力→オドメトリ計算
  • レーザーレンジセンサシミュレータ
    (HOKUYO Top-URG)
    • 270度、1081サンプル出力
      (実機合わせした誤差出力付き)
    • 障害物(壁、荷物等)の定義
シミュレータ環境にて初期ソフトウェア実装→シミュレータ環境にて実装・デバッグ・修正(トライアンドエラー)の繰り返しを行う→実機にて動作確認、微調整

機能

機能1:

ゲームパッドによるマニュアル操作+地図作成

機能2:

未開地自動探索+地図作成

機能3:

自動巡回ナビゲーション

地図ができた後に、移動可能場所を巡回する
領域分割をして、ほぼ同じ確率でそれぞれの領域を通るように制御

60分後 効率よくほぼ全域を通過
効率よくほぼ全域を通過

機能4:

指定位置巡回機能

  • 各指定位置を自動でずっと周回する。
  • 各指定位置まで行くと、そこで入力があるまで停止し、入力があると次の指定位置まで移動する。

上記2択から選択可能

機能5:

障害物変化検出機能

巡回中の障害物変化検出

その他機能

その他1:

地図、スタート位置、巡回指定位置の保存・読込機能

その他2:

設定ファイルの項目

使用台車の指定(use_minimo) 2輪BS(デフォルト) / Mini-Mo
グリッドのスケール(GRID_METER) (1)
グリッドの移動可能グリッド判定用カウント(gridcleancount) (2)
※ (2) / ((1) x 100 x (1) x 100) = 移動可能グリッドになるために必要なレーザーサンプルの割合 < 1.0
最小移動可能幅(GRID_DIV)
台車の幅(car_radius)
ホイール径(car_wheelr)
エンコーダ(car_count1rot) (count/rotation)
オドメトリ計算の調整用係数(Kodoxy, Kodotheta)
最大移動速度(maxspeed)
最大転回速度(maxturn)
経路更新時間間隔(?)
経路沿い進行時の先をみる度合い(nextgridcnt)
未開地への経路更新時間間隔(frontierupdate_usec)
巡回経路更新時間間隔(roundupdate_usec)
巡回経路更新のON/OFF (roundupdate) (’マッチング地図の更新’or‘グリッド障害物の更新’がONのときに影響を受ける)
巡回グリッド単位(round_grids_w, round_grids_h)
レーザー設置オフセット(lrfpos x y z) (m)
レーザーマッチングの幅(matchx, matchy, matcha)
レーザーマッチングのdx,dy,da (matchx_div, matchy_div, matcha_div)
レーザースキャンデータの角度オフセット (scanradadd)
無障害物領域塗りつぶしのON/OFF (drawcleararea)
マッチング地図の更新 ON/OFF (writematchmap)
グリッド障害物の更新 ON/OFF (writegridobs)  (’マッチング地図の更新’がOFFのとき、グリッド単位で障害物変化を有効にするか)
グリッド障害物(GridObstacle)イベント ON/OFF (eventgridobs)
指定場所巡回時の、入力待ちのON/OFF (useloopbutton)
地図セーブファイル名 (savemapfile)
地図ロードファイル名 (loadmapfile)
マッチング係数 (matchodo_priority)
レーザーマッチングのON/OFF (domatching)
エンコーダからのオドメトリ計算のON/OFF (doodometry)
スタート位置 (startpos)
通信先の指定 (connect ip port)
ゲームパッド入力の係数(padk_x, padk_y)

その他3:

外部IF

TCP/IP通信にて、外部アプリがTSLAMの機能切り替えや、TSLAMの内部ステータスやイベントを受け取れるIF

機能切り替え

  • ゲームパッドによるマニュアル操作+地図作成
  • 未開地自動探索+地図作成
  • 自動巡回
  • 指定位置巡回

サブ機能切り替え

  • 地図更新有効無効
  • イベント取得
  • 未開地探索終了イベント
  • 巡回地点通過イベント

ステータス取得

  • オドメトリ

地図情報取得

その他4:

ゲームパッド キー割り当て

ゲームパッド キー割り当て


Copyright 2009 Segway Japan, Ltd. All rights reserved.