概要 |
自律ロボットの構成において、不確実性を含む状況下で,自己位置を推論する技術 は重要である.しかし,飛行ロボットでは,ペイロードの制約から,位置推定に必要なセンサ群を,十分に搭載することができない.そこで本研究では,群飛行ロボットによる協調位置推定システムを提案する.複数台の飛行ロボットがお互いの環境情報を共有することで,位置推定の向上を図る.位置推定手法には,確率論的なアプローチであるMonte Carlo Localizationを応用し,飛行ロボットに適用する. |
システム構成 |
![]() |
図1:システム構成図 |
本研究では群飛行ロボットの自律移動のための自己位置推定システムを構築する. システムの基本構成は図1に示すように,主に飛行ロボット,カメラ画像受信機,制御信号送信機,ホストコンピュータの4つから構成される. 飛行ロボットにはカメラが搭載されおり,カメラから撮影された画像をカメラ画像受信機で受信し,A/D変換を通してホストコンピュータに送れらる. 飛行ロボットには,市販の屋内用ラジコン飛行船(株)タカラ ドリームフォース02 スカイシップ)を用いる. ラジコン飛行船は浮力を得るためのエンベロープ部とモータ,プロペラ,制御信号受信機,バッテリ(ニッケル水素電池)を統合した駆動部から構成される. さらに外界の情報を得るために,小型ワイヤレスカメラ(カメラ部)を搭載する. カメラはカメラモジュールと画像送信機が一体になっている. |
位置推定手法 |
本研究では,カメラ座標系でのlandmarkの位置情報から,ワールド座標系での飛行ロボットの位置(カメラの位置)を推定する. 一般的にロボットは,行動に伴って自己位置推定の数値計算などに誤差を蓄積していく. この誤差が蓄積されていくと,ロボットは自身の状態を正しく判断できなくなってしまう. そこで,本研究では,確率的な位置推定手法として,Monte Carlo Localization(MCL)を用いる. MCLはロボットの状態をサンプルセットによる確率分布で表し,センサデータに基づき,この確率分布(サンプルセット)を更新していくことで,ロボットの位置を推定する. 本研究では,ロボットの位置をlandmarkを中心とした円の円周近傍に分布するサンプルで表現する. 従ってサンプルセットは図2に示すような円環状の分布になる. |
![]() |
図2:サンプルセット |
観測データが得られた時に,
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() 観測データ
![]() ![]() として与えられる. |
![]() |
図3:各サンプルとLandmarkの位置関係(XY平面) |
![]() |
図4:各サンプルとLandmarkの位置関係(XZ平面) |
また![]() ![]() として与えられる. 観測データに従って ![]() ![]() ここで ![]() ![]() として与えられる.よって各サンプルは,その位置に応じたヨー角 ![]() |
![]() |
図5:各サンプルのヨー角 |
さらに,各サンプルはそのサンプルがどの円環に属するかの情報を保つため,円環の中心座標を保存しておく. つまり最後に観測したワールド座標系でのlandmarkの位置を記憶しておく. ![]() この情報は後の協調位置推定で用いる. |
協調位置推定手法 |
協調位置推定では,それぞれの位置の確率分布を共有するだけでなく,他の飛行ロボットを観測したときの相対位置関係を利用する. 相対位置関係を確率分布として与え,それぞれの飛行ロボットの存在確率分布と照らし合わせることで,飛行ロボットの位置を推定する. 具体的な処理の流れは以下の通りである.ここでは,2台の飛行ロボットを用いた場合について述べる. 2台の飛行ロボットの場合の協調位置推定の手順は,以下の通りである.
|
![]() |
図6:他の飛行ロボットを観測した場合 |
飛行ロボット1が飛行ロボット2を観測した場合(図6参照),飛行ロボット1と飛行ロボット2の相対距離![]() ![]() ここで, ![]() また,このとき飛行ロボット1のカメラ方向ベクトルに対して,飛行ロボット2が存在する方向ベクトルとのなす角 ![]() ![]() である(飛行ロボット1のカメラ方向ベクトルを基準とする). 以上の飛行ロボット1における飛行ロボット2の観測情報と,観測した時点での飛行ロボット1の状態(位置 ![]() ![]() ![]() ![]() ![]() となる. このようにして,飛行ロボット1の観測データから飛行ロボット2の座標が求まる. 各飛行ロボットの位置は確率分布によって表現されているので,(飛行ロボット1による飛行ロボット2の)観測データに基づいた飛行ロボット2の位置も確率分布になる. |
![]() |
図7:他の飛行ロボットを観測した場合 |
この観測に基づく他の飛行ロボットの存在確率分布を,次の例を用いて求める. 図7のように飛行ロボット1がlandmark1と飛行ロボットを同時に観測したとする. この場合,(飛行ロボット1の観測データから得られる)飛行ロボット2の存在確率分布は次のように求めることができる. 先ずlandmark1の観測結果から飛行ロボット1の自己位置推定を行い,飛行ロボット1の状態を表すサンプルセットをつくる. この中から任意のサンプル ![]() ![]() ![]() 次に飛行ロボット2とlandmark1の距離を次式で計算する. ![]() |
![]() |
図8:他の飛行ロボットを観測した場合 |
ここで![]() ![]() つまり飛行ロボット2の存在確率分布は,landmark1を中心に半径 ![]() この確率分布を用いて飛行ロボット2のサンプルセットの重要度を更新する. 飛行ロボット2が正しい自己位置推定を行えた場合,飛行ロボット1が飛行ロボット2を観測することで,飛行ロボット1自身の存在確率分布も正しい位置へと収束させることができる.なぜなら飛行ロボット1は飛行ロボット2を介してlandmark2の情報を得ているからである(図8参照). ここで飛行ロボット2の位置が定まった場合,飛行ロボット1の位置は,飛行ロボット2を中心として半径 ![]() この確率分布により飛行ロボット1のサンプルセットの重要度を更新することで,飛行ロボット1の位置の不確かさを減少させることができる. |