狠狠撸

狠狠撸Share a Scribd company logo
SLAM実習
宮本 信彦
国立研究開発法人産業技術総合研究所
インダストリアルCPS研究センター
ソフトウェアプラットフォーム研究チーム
2
2
資料
? 「WEBページ」フォルダのHTMLファイルを開く
– チュートリアル(SLAM実習) _ OpenRTM-aist.html
? もしくは以下のリンク
– https://openrtm.org/openrtm/ja/node/7098
移動ロボットの制御
3
デッドレコニング (Dead
Reckoning): 車輪のエンコーダや
ジャイロ等内界センサのみ利用す
る自己位置を推定手法。誤差が蓄
積するため長時間使用できない。
オドメトリ(Odometry) と呼ばれ
ることもある。
ナビゲーション(Navigation): 現
在位置を推定しながらロボットを目
的地まで移動させること。
内界センサ:車輪の角速度やジャ
イロ等ロボットの内部の情報を計
測するセンサ
外界センサ:レーザーや音波、カ
メラ、GPS等ロボットの外部の情
報を取得するセンサ
SLAM (スラムと読む、
Simultaneous Localization
and Mapping) :外界センサを
用いて、ロボット周辺のマップを
作成しながら同時に自己位置も推
定する技術。センサには、レーザ
ー(2次元、3次元)やカメラ、音
波などが用いられる。相対位置を
比較的安定的に推定できる。
パスプランニング (Path
Planning) :与えられたマップ上
で、現在位置から目的地までの経路
を計画する方法。
自己位置推定 (Localization, ロ
ーカリゼーション、ローカライゼ
ーション) :種々のセンサを利用
し、ロボットの現在の位置を推定
する技術。移動ロボットを制御す
るために最も基本的かつ必要とさ
れる技術。
? SLAM (Simultaneous Localization and
Mapping)
– 「自己位置推定とマッピングの同時実行」
? SLAM=「スラム」と読む
– 外界センサを用いて、ロボット周辺のマップを作
成しながら同時に自己位置も推定する技術。
– センサには、レーザー(2次元、3次元)やカメラ、
音波などが用いられる。
– 相対位置を比較的安定的に推定できる。
4
外界の情報を利用するので、オドメトリとは異なり誤差が蓄積せず、
大域的に自己位置を正確に推定できる
SLAMとは?
? MRPT:Mobile Robot Programming Toolkit
– https://www.mrpt.org/
– 本講習会で使用するライブラリ
– 様々なSLAMアルゴリズム、マップ形式を包含し
たSLAMライブラリ集
– ここでは、2Dレーザセンサを利用したアルゴリズ
ムを仕様
5
SLAMライブラリ
? LiDAR
– レーザー測距センサ
– レーザ光を発し対象物まで
の距離を測定反るセンタ
– RasPiMouseに搭載してい
るものは、全方向、2次元的
に計測可能
? ※小さなチャック付き袋に、LiDAR固
定用ねじが2本入っていますので走ら
せるとき固定してください。
? 無くさないよう注意してください
6
LiDAR
=Laser Imaging Detection and Ranging
LiDAR搭載版RaspberryPiマウス
? 以下の部品を組み立てます。
? 一旦Raspberry Piをシャットダウンしてバッテリー(もしく
は電源ケーブル)を取り外した状態で作業してください
– RaspberryPiのシャットダウンは真ん中のボタンを3秒ほど押し
て30秒ほど待つ。その後スイッチをオフにする。
7
LiDARの取り付け
タッピングビス Raspberry Piマウス LiDAR
? Raspberry Piマウス底面のねじをはずす
? スペーサーを回して外す
8
LiDARの取り付け
基盤部分をフレームごとずらす
? センサ基盤をはずす
9
LiDARの取り付け
? LiDARをRaspberry Piマウスの上部分に載せる
? LiDARとRaspberryPiマウスをビスで固定する
10
LiDARの取り付け
? Raspberry PiのUSBポートに接続する
11
LiDARの取り付け
? 外したパーツを戻せば完成
? ※危ないのでLiDARの土台部分を持たないようにしてください。
? LiDARの取り付け作業が完了したら、RaspberryPiの電源スイッチをオン
にしてアクセスポイントに接続してください。
12
LiDARの取り付け
この部分を持って運ばないようにする。
13
作業手順
1. 地図作成 (Mapper)
2. 自己位置推定 (Localization)
3. 経路生成?移動 (Navigation)
地図作成を行う。地図作成に必要な右
のコンポーネントを起動し接続、ジョ
イスティックでRasPiMouseを移動さ
せ、環境をLiDARで計測し、地図を作
成する。
地図の作成が完了したら、システム構
成を変更し、自己位置推定を自動的に
行う構成に変更する。
経路生成と移動を行うコンポーネント
を新たに起動し、地図内に適当な目的
位置を指定、現在の場所から、目的位
置までの経路を生成、移動ロボットを
移動させる。
地図作成実習
14
15
作業内容
? NavigationManagerの起動
– RTM_Tutorial.zipを展開したフォルダ内のNavigationフォ
ルダ
– 以下のバッチファイル(シェルスクリプト)を実行する
? NavigationManager.bat(Windows)
? NavigationManager.sh(Ubuntu)
– 以下のGUIが起動する。
16
RTCの起動、ポートの接続
? Mapperシステムの起動
– WEBブラウザでMapperのStartボタンを押す
– ネームサーバーに以下のRTCが登録されている状態になる
? Mapper_MRPT0
? RaspberryPiMouseRTC0
? RPLiderRTC0
? NavigationManager0
17
RTCの起動、ポートの接続
? Mapperシステムの起動
– RTCの起動を確認したら「Back to the top page.」を押す
– ポートの接続
? WEBブラウザからMapperのConnectボタンを押す。
18
RTCの起動、ポートの接続
? NavigationManagerのポートを接続する
19
RTCの起動、ポートの接続
コンポーネント名 ポート名 コンポーネント名 ポート名
NavigationManager0 mapperService Mapper_MRPT0 gridMapper
NavigationManager0 currentPose Mapper_MRPT0 estimatedPose
NavigationManager0 targetVelocity RaspberryPiMouseRTC0 target_velocity_in
NavigationManager0 range RPLiderRTC0 range
? RTCをアクティブ化する
? Raspberry Piマウスのモーター電源をオンにする
– 2つのトグルスイッチのうちの外側のスイッチ
20
システムの実行
? NavigationManagerのStart Mappingボタンを押す。
? ジョイスティックパネルを操作することでRaspberry Piマウスが
移動し地図生成を行う。
21
システムの実行
かなりゆっくり動かさないと上手く
地図作成できません。
Velocity Xを下げる(スライダーを左
に動かす)ことで調整してください。
? NavigationManagerのStop Mappingボタンを押す。
? NavigationManagerのSave Mappingボタンを押す。
22
システムの終了
? 地図情報の保存先としてNavigationフォルダにファイル名
testMapで保存する。
? WEBブラウザからMapperのStopボタンを押してRTCを終了する
23
システムの終了
開くボタンを押すと
保存される。
ナビゲーション実習
24
25
作業内容
? MapServerの起動(Navigationフォルダ)
– 以下のバッチファイル(シェルスクリプト)を実行する
? MapServer.bat(Windows)
? MapServer.sh(Ubuntu)
? PathPlanシステムの起動
– WEBブラウザでPathPlanのStartボタンを押す
26
RTCの起動、ポートの接続
? PathPlanシステムの起動
– ネームサーバーに以下のRTCが登録されている状態になる
? Localization_MRPT0
? PatgPanner_MRPT0
? RaspberryPiMouseRTC0
? RPLiderRTC0
? SimplePathFollower0
? MapServer0
? NavigationManager0
27
RTCの起動、ポートの接続
? NavigationManager、MapServerのポートを接続する
28
RTCの起動、ポートの接続
コンポーネント名 ポート名 コンポーネント名 ポート名
NavigationManager0 mapServer MapServer0 mapServer
NavigationManager0 pathPlanner PathPlanner_MRPT0 pathPlanner
NavigationManager0 pathFollower SimplePathFollower0 PathFollower
NavigationManager0 currentPose Localization_MRPT0 estimatedPose
NavigationManager0 range RPLiderRTC0 range
MapServer0 mapServer Localization_MRPT mapServer
? RTCをアクティブ化する
? Raspberry Piマウスのモーター電源をオンにする
29
システムの実行
? Raspberry Piマウスの目標位置、目標姿勢角を設定する
– NavigationManagerの地図上をクリックする
? 以下の画面で目標角度を設定する。
30
システムの実行
地図上に目標位置
が表示される
適当な場所を
クリックすると中
心から延びる赤
い線の角度が
変化する 角度を設定したら
OKをクリックする
地図の白い範囲(障害物のない範囲)
のどこかをクリックする
? 経路を計画する
– NavigationManagerのPlan Pathボタンをクリックする
? 経路追従を行う
– NavigationManagerのFollowボタンを
クリックする
– Raspberry Piマウスが目的地に向かって
移動する
31
システムの実行
経路が表示される
? WEBブラウザからPathPlanのStopボタンを押してRTCを終了す
る
? モーター電源のスイッチをオフにする
? Raspberry Piをシャットダウンする(真ん中のボタン長押し)
? Raspberry Pi電源のスイッチをオフにする
? LiDARを取り外して元の状態に戻す
32
システムの終了

More Related Content

厂濒补尘実习