ロボットアプリケーション開発事例(SLAM&Navigationロボット)
移動プラットフォーム向けの機能ソフトウェアモジュールを組み込んだアプリケーションの開発事例をご紹介致します。
    ロボットアプリケーション開発事例(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.