説明

自己位置推定装置および自己位置推定方法

【課題】高サンプリング周期で、高精度に自己位置を推定することが可能な自己位置推定装置を提供する。
【解決手段】本発明の自己位置推定装置は、移動機構を備え、所定の空間を移動可能な自律移動装置の移動機構による動作情報を検出する内界センサ、および所定の空間内に関する空間情報を検出する外界センサによる検出結果に基づいて、第1のサンプリング周期で自己位置を推定する第1の自己位置推定部と、第1の自己位置推定部による自己位置推定結果と、内界センサにより検出された自律移動装置の動作情報とに基づいて、第1のサンプリング周期よりも高いサンプリング周期で自己位置を推定する第2の自己位置推定部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自己位置推定装置および自己位置推定方法に関し、より詳細には、作業空間を自律的に移動可能な自律移動装置の自己位置推定装置および自己位置推定方法に関する。
【背景技術】
【0002】
近年、自律的に移動し、様々な作業を行うロボットが実現されつつある。このような自律移動型ロボットには、例えば、原子力プラント等におけるメンテナンス作業や災害現場での救助作業、宇宙空間での作業等のように、人間の立ち入りが困難な環境での作業の遂行が期待されている。
【0003】
一方で、自律移動ロボットを家庭内へ導入し、家庭内でユーザの介助を行わせることについても、期待が高まっている。例えば、高齢者や車椅子利用者の生活支援として、ユーザにとっては身体的に困難を伴う作業を自律移動型ロボットに代行させることで、ユーザの負荷を軽減することができる。
【0004】
ロボットが部屋等の所定の空間内を自律的に移動できるためには、自己の存在する環境を認識して空間内における自己位置を推定し、自己の移動経路を特定できることが必要である。自己位置を推定するための手法としては、例えば、下記非特許文献1には、カメラの位置や姿勢とカメラの画像に映る特徴点の位置とを同時に推定可能なSLAM(Simultaneous Localization And Mapping)とよばれる技術を応用して、実空間内に存在する物体の3次元位置を表現する環境マップを動的に生成する手法が記載されている。なお、単眼カメラを用いたSLAM技術の基本的な原理は、下記非特許文献1において説明されている。
【0005】
従来にも、上記のSLAMを用いた手法やその他の手法を用いて、高精度な自己位置推定を行う方法はあった。例えば、特許文献1には、複数の全方位カメラを用いて移動ロボットの位置を認識する方法が開示されている。また、特許文献2には、環境内に配置されたマーカを検出することでロボットの位置を認識することの可能な移動ロボットが開示されている。特許文献3には、姿勢回転偏差の時間的変化量を用いて自己位置を推定する方法が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2008−229834号公報
【特許文献2】特開2006−346767号公報
【特許文献3】特許第4246696号公報
【非特許文献】
【0007】
【非特許文献1】Andrew J.Davison, “Real-Time Simultaneous Localization and Mapping with a Single Camera”, Proceedings of the 9th IEEE International Conference on Computer Vision Volume 2, 2003, pp.1403-1410
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、いずれの方法も、例えば特許文献1のようにセンサの特性上、低いサンプリング周期でしか情報を取得できなかったり、アルゴリズムの特性上、演算に多くの時間が必要とするものであったりした。このため、これらの方法により自己位置推定を行った場合、遅れを伴い、低いサンプリング周期でしか自己位置推定値を取得することができないという問題があった。一方、ロボットの移動機構から検出される駆動量を用いて、比較的高いサンプリング周期で自己位置推定値を取得することも可能である。かかる方法では、ロボットの初期位置からの差に基づき自己位置を推定するため、移動するにつれて初期位置からの誤差が増加し、高精度な自己位置推定をすることができない。また、移動機構のスリップ等によっても、検出値と実際の動きとの差が生じて、推定精度が低下する可能性がある。
【0009】
また、ロボットの運動制御等のように、1ms、あるいはそれ以下の周期で演算を行うシステムの制御において、上記方法による自己位置推定値をそのまま用いると、不連続な値として入力されてしまい、制御精度を阻害する要因となってしまう。さらに、自己位置推定値をもとに、環境物体を認識する場合においては、自己位置推定値の更新が遅れると正確な環境物体の位置を取得することができなくなる。
【0010】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、高サンプリング周期で、高精度に自己位置を推定することが可能な、新規かつ改良された自己位置推定装置および自己位置推定方法を提供することにある。
【課題を解決するための手段】
【0011】
上記課題を解決するために、本発明のある観点によれば、移動機構を備え、所定の空間を移動可能な自律移動装置の移動機構による動作情報を検出する内界センサ、および所定の空間内に関する空間情報を検出する外界センサによる検出結果に基づいて、第1のサンプリング周期で自己位置を推定する第1の自己位置推定部と、第1の自己位置推定部による自己位置推定結果と、内界センサにより検出された自律移動装置の動作情報とに基づいて、第1のサンプリング周期よりも高いサンプリング周期で自己位置を推定する第2の自己位置推定部と、を備える、自己位置推定装置が提供される。
【0012】
自己位置推定装置は、空間内の空間情報を環境マップとして記憶する記憶部をさらに備えることもできる。第1の自己位置推定部は、環境マップの空間情報、内界センサの検出値および外界センサの検出値に基づいて、自律移動装置の空間における自己位置を推定する位置推定部と、位置推定部により推定された自己位置と、外界センサの検出値とに基づいて、記憶部の環境マップを更新する更新部と、を備える。
【0013】
外界センサは、自律移動装置から空間内に存在する物体までの距離を取得する距離センサであり、第1の自己位置推定部は、距離センサの位置姿勢と当該距離センサによる測距値に基づき認識された物体の位置とを同時に推定するSLAMを用いて、環境マップを動的に生成してもよい。
【0014】
第2の自己位置推定部は、内界センサの検出値に基づく時間発展モデルと、第1の自己位置推定部により推定された自律移動装置の自己位置に基づく観測モデルとを備える拡張カルマンフィルタを用いて、自律移動装置の空間における自己位置を推定してもよい。
【0015】
第2の自己位置推定部は、第1の自己位置推定部により推定された自己位置結果に内界センサの検出値を加算した加算値を用いて、観測モデルを生成してもよい。
【0016】
内界センサは、自律移動装置の駆動機構の駆動量を検出する位置センサであってもよい。
【0017】
第1のサンプリング周期は、外界センサの検出周期とし、第2のサンプリング周期は、内界センサの検出周期としてもよい。
【0018】
また、上記課題を解決するために、本発明の別の観点によれば、移動機構を備え、所定の空間を移動可能な自律移動装置の移動機構による動作情報を検出する内界センサ、および所定の空間内に関する空間情報を検出する外界センサによる検出結果に基づいて、第1の自己位置推定部によって、第1のサンプリング周期で自己位置を推定するステップと、第2の自己位置推定部による自己位置推定結果と、内界センサにより検出された自律移動装置の動作情報とに基づいて、第2の自己位置推定部によって、第1のサンプリング周期よりも高いサンプリング周期で自己位置を推定するステップと、を含む、自己位置推定方法が提供される。
【発明の効果】
【0019】
以上説明したように本発明によれば、高サンプリング周期で、高精度に自己位置を推定することが可能な、自己位置推定装置および自己位置推定方法を提供することができる。
【図面の簡単な説明】
【0020】
【図1】本発明の実施形態に係る自己位置推定装置による自律移動ロボットの自己位置推定の概略を説明する説明図である。
【図2】同実施形態に係る自己位置推定装置の機能構成を示すブロック図である。
【図3】同実施形態に係る自己位置推定装置による自己位置推定方法を示すフローチャートである。
【図4】同実施形態に係る自己位置推定装置による自己位置推定方法を示すシーケンス図である。
【図5】EKF自己位置推定部による自己位置推定値の算出手段を示す説明図である。
【図6】同実施形態に係る自己位置推定装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【0021】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0022】
なお、説明は以下の順序で行うものとする。
1.自己位置推定装置による自己位置推定の概要
2.自己位置推定装置の構成
3.自己位置推定方法
4.ハードウェア構成例
【0023】
<1.自己位置推定装置による自己位置推定の概要>
まず、図1に基づいて、本実施形態に係る自己位置推定装置100を用いた空間における自己位置推定の概略について説明する。なお、図1は、本実施形態に係る自己位置推定装置100による自律移動ロボット10の自己位置推定の概略を説明する説明図である。
【0024】
本実施形態に係る自己位置推定装置100は、自己の存在する空間において自己の位置を推定する装置である。例えば、図1に示すように、部屋に存在する自律移動型ロボット(以下、単に「ロボット」とも称する。)10が、部屋のどの位置に存在するかを自己位置推定装置100によって推定することができる。自律移動型ロボット10は、移動機構(例えば、図2に示す車輪14)と、空間を認識するための物体までの距離(測距値)を取得する距離センサ(例えば、図2に示すレーザレンジファインダ12)とを備えている。ロボット10は、移動機構の駆動量と取得した測距値とを用いて自己位置推定装置100により自己位置を推定することで、部屋を自律的に移動することが可能となる。
【0025】
また、自己位置推定装置100は、距離センサにより認識された物体情報に基づいて、部屋の状況を表す環境マップを生成する。環境マップには、机1やタンス3等のような、部屋内で認識された物体の位置や形状、重量等の物体に関する情報が記憶されている。ロボット10は、このような環境マップを参照することで、自己の存在する空間の状態を認識して、目的に沿った移動経路を決定することができる。
【0026】
このとき、ロボット10の動作の精度を高めるためには、自己の存在する空間における自己位置を正しく認識し、ロボット10を動作させるための制御量を正確に算出する必要がある。ロボット10の運動制御や自己位置推定値に基づく物体認識においては、高サンプリング周期で制御量を算出する必要があるため、自己位置推定値の更新も高サンプリング周期で行う必要がある。本実施形態に係る自己位置推定装置100は、このようなロボット10の動作制御にも適用可能な、高サンプリング周期で、高精度に自己位置推定値を算出できるものである。以下、図2〜図5に基づいて、本実施形態に係る自己位置推定装置100およびこれによる自己位置推定方法について詳細に説明する。
【0027】
<2.自己位置推定装置の構成>
まず、図2に基づいて、本実施形態に係る自己位置推定装置100の機能構成について説明する。なお、図2は、本実施形態に係る自己位置推定装置100の機能構成を示すブロック図である。
【0028】
自己位置推定装置100は、図2に示すように、車輪エンコーダ取得部110と、SLAM自己位置推定部120と、環境マップ記憶部130と、EKF自己位置推定部140と、運動制御部150とを備える。
【0029】
車輪エンコーダ取得部110は、自律移動型ロボット10の移動機構による動作情報を検出する内界センサである。本実施形態に係る自律移動型ロボット10は、移動機構として複数の車輪14を備えている。各車輪14には、車輪14を回転駆動するアクチュエータの回転を検出するエンコーダが設けられている。車輪エンコーダ取得部110は、車輪14に設けられたエンコーダの検出値(エンコーダ値)を取得する。そして、車輪エンコーダ取得部110は、検出値をSLAM自己位置推定部120およびEKF自己位置推定部140へ出力する。
【0030】
SLAM自己位置推定部120は、上述したSLAMを利用して、環境マップ、内界センサおよび外界センサの検出結果に基づき、自己位置推定値を算出する。SLAM自己位置推定部120は、自己位置推定を行う位置推定部122と、環境マップ記憶部130に記憶された環境マップを更新する環境マップ更新部124とからなる。
【0031】
位置推定部122は、まず、内界センサである車輪14に設けられたエンコーダの値を取得する車輪エンコーダ取得部110の取得値から車輪速度を算出し、解析的に自己位置を更新する。その後、位置推定部122は、外界センサであるレーザレンジファインダ12により検出された測距値と、環境マップ記憶部130の環境マップとのマッチングを行い、SLAM自己位置推定部120における最終的な自己位置推定値を算出する。位置推定部122による自己位置推定は、低いサンプリング周期、例えば100msで自己位置を推定する。位置推定部122により算出された自己位置推定値は、環境マップ更新部124およびEKF自己位置推定部140へ出力される。
【0032】
環境マップ更新部124は、レーザレンジファインダ12により検出された測距値と、位置推定部122により推定された自己位置推定値とに基づき、環境マップを更新する。環境マップ更新部124は、入力されたレーザレンジファインダ12の測距値および自己位置推定値とから、空間内の物体の位置姿勢を算出し、環境マップ記憶部130の環境マップを更新する。
【0033】
環境マップ記憶部130は、実空間内に存在する物体の3次元位置を表現する環境マップを記憶する。環境マップは、例えば、レーザレンジファインダ12やカメラ(図示せず。)によって撮影された画像から認識された物体(例えば、机1やタンス3等)の情報を記憶する。物体の情報としては、例えば、三次元形状や位置、姿勢情報等がある。
【0034】
EKF自己位置推定部140は、SLAM自己位置推定部120により算出された自己位置推定値と、内界センサである車輪14に設けられたエンコーダの値を取得する車輪エンコーダ取得部110の取得値とに基づいて、自己位置推定値を算出する。EKF自己位置推定部140は、拡張カルマンフィルタ(Extended Kalman Filter;EKF)を用いて、高サンプリング周期で高精度な自己位置推定を行う。
【0035】
拡張カルマンフィルタは、内界センサの検出値に基づく時間発展モデルと、SLAM自己位置推定部120において算出された自己位置推定値に基づく観測モデルとを有する。EKF自己位置推定部140は、時間発展モデルと観測モデルとの同定を行うことにより、自己位置推定値を算出することができる。EKF自己位置推定部140での自己位置推定は、車輪エンコーダ取得部110の取得タイミング(例えば、1ms周期)で行われる。なお、EKF自己位置推定部140による自己位置推定処理の詳細については後述する。EKF自己位置推定部140により算出された自己位置推定値は、運動制御部150に出力される。
【0036】
運動制御部150は、EKF自己位置推定部140により算出された自己位置推定値を用いて、自律移動型ロボット10の運動制御を行う。運動制御部150は、ロボット10に所望の動作を行わせるための運動制御値を算出し、当該運動制御値に基づいてロボット10の車輪14を回転するモータ等の駆動機構(図示せず。)を駆動させる。
【0037】
<3.自己位置推定方法>
次に、図3〜図5に基づいて、本実施形態に係る自己位置推定装置100による自己位置推定方法について説明する。図3は、本実施形態に係る自己位置推定装置100による自己位置推定方法を示すフローチャートである。図4は、本実施形態に係る自己位置推定装置100による自己位置推定方法を示すシーケンス図である。図5は、EKF自己位置推定部140による自己位置推定値の算出手段を示す説明図である。
【0038】
自己位置推定装置100による自己位置推定方法では、図3に示すように、まず、車輪エンコーダ取得部110により、車輪14の回転位置を測定するエンコーダの検出値(エンコーダ値)を取得する(ステップS100)。車輪エンコーダ取得部110は、ロボット10の移動機構である車輪14の回転位置をエンコーダにより検出し、エンコーダ値としてSLAM自己位置推定部120およびEKF自己位置推定部140へ出力する。
【0039】
ここで、図4に示すように、車輪エンコーダ取得部110は、高サンプリング周期、例えば1msでエンコーダ値を取得することができる。車輪エンコーダ取得部110は、出力先の自己位置推定の処理周期に応じて、取得したエンコーダ値を出力する。すなわち、本実施形態においては、低サンプリング周期(例えば100ms)で自己位置推定を行うSLAM自己位置推定部120に対しては100msごとに、車輪エンコーダ取得部110からSLAM自己位置推定部120へエンコーダ値が出力される。一方、高サンプリング周期(例えば1ms)で自己位置推定を行うEKF自己位置推定部140に対しては1msごとに、車輪エンコーダ取得部110からEKF自己位置推定部140へエンコーダ値が出力される。
【0040】
一方、レーザレンジファインダ12は、ロボット10から空間内に存在する物体までの距離を測距値として取得する(ステップS110)。レーザレンジファインダ12は、エンコーダのように高いサンプリング周期で検出値を取得することができず、例えば図4に示すように、比較的低いサンプリング周期、例えば100ms周期で測距値を取得する。レーザレンジファインダ12は、取得した測距値を、SLAM自己位置推定部120へ出力する。
【0041】
SLAM自己位置推定部120は、レーザレンジファインダ12による測距値が入力されたタイミングで、自己位置推定処理を実行する(ステップS120)。SLAM自己位置推定部120は、図4に示すように、レーザレンジファインダ12による測距値と、この測距値の測定時点における車輪エンコーダ取得部110のエンコーダ値とに基づいて、自己位置推定処理を行う。SLAMによる自己位置推定処理は、例えば上記非特許文献1に記載の技術を用いて行うことができる。SLAM自己位置推定部120により算出された自己位置推定値は、EKF自己位置推定部140へ出力される。
【0042】
そして、EKF自己位置推定部140は、拡張カルマンフィルタの原理に基づき、SLAM自己位置推定部120により算出された自己位置推定値と、車輪エンコーダ取得部110によるエンコーダ値とを用いて、自己位置推定値を算出する(ステップS130)。上述したように、エンコーダ値は高サンプリング周期で取得可能であるが、レーザレンジファインダ12による測距値はこれより低いサンプリング周期でしか取得することができない。したがって、SLAMを用いる場合、高精度に自己位置を推定することができる一方、ロボット10の運動制御等、リアルタイムが要求される状況においては、より高いサンプリング周期で自己位置を推定できることが望ましい。そこで、EKF自己位置推定部140は、高サンプリング周期で取得可能なエンコーダ値と、SLAM自己位置推定部120により高精度に推定された自己位置推定値とに基づき、高サンプリング周期で高精度な自己位置推定値を取得することを可能とする。
【0043】
EKF自己位置推定部140は、拡張カルマンフィルタを用いてロボット10の自己位置推定値を算出するにあたり、まず、エンコーダ値に基づくオドメトリ出力値を算出する。オドメトリ出力値は、車輪エンコーダ取得部110から入力されたロボット10の車輪14の回転位置より算出される、車輪14の速度や角速度等である。EKF自己位置推定部140は、このオドメトリ出力値を、エンコーダのサンプリング周期で算出することが可能である。そして、EKF自己位置推定部140は、オドメトリ出力値に基づき拡張カルマンフィルタの時間発展モデルを構築する。
【0044】
また、EKF自己位置推定部140は、オドメトリ出力値をSALM自己位置推定部120により算出されたSLAMによる自己位置推定値に加算する処理を行う。図4および図5に示すように、EKF自己位置推定部140は、オドメトリ出力値とSLAMによる自己位置推定値とを融合し、自己位置推定値を算出するが、これらの値の取得タイミングは相違する。このため、SLAMによる自己位置推定値をそのまま利用すると、かかる値が不連続な値として拡張カルマンフィルタに入力されることになる。
【0045】
そこで、SLAM自己位置推定部120による自己位置推定値に、EKF自己位置推定部140による自己位置推定処理に用いるエンコーダのオドメトリ出力値と同一の値を、SLAM自己位置推定部120による自己位置推定値に加算する。これにより、SLAM自己位置推定部120により推定された時点の自己位置推定値からのロボット10の移動を含めた値が、エンコーダのサンプリング周期と同じ周期(例えば、1ms)で取得される。この取得値に基づき、観測モデルが構築される。したがって、EKF自己位置推定部140は、同一タイミングで取得された値に基づくモデルより、自己位置推定値を算出することができる。
【0046】
EKF自己位置推定部140は、内界センサである車輪14の検出値に基づく時間発展モデルと、SLAM自己位置推定部120において算出された自己位置推定値に基づく観測モデルとを有する拡張カルマンフィルタを用いて、自己位置推定値を算出する。拡張カルマンフィルタは、誤差のある観測値を用いて動的システムの状態を推定するためのオブザーバである。拡張カルマンフィルタは、前時刻の推定状態から現時刻の推定状態を算出する予測フェーズと現時刻の観測結果を用いて推定値を補正する更新フェーズとからなり、入力値xt−1、Pt−1、u、yから出力値x、Pを得る。予測フェーズおよび更新フェーズは、公知の下記数式1〜5によって表される。
【0047】
【数1】

【0048】
ここで、xは状態推定値、Pは誤差の共分散、uは制御値、yは観測値、g()は状態予測、h()は観測予測、Aは時間発展モデルのヤコビ行列、Cは観測モデルのヤコビ行列、Rは時間発展モデルの共分散、Qは観測モデルの共分散、Kはカルマンゲインを示す。
【0049】
具体的には、EKF自己位置推定部140は、図5に示すように、車輪エンコーダ取得部110によるエンコーダ値から算出される車輪速度(オドメトリ出力値)に基づく時間発展モデルにより、オドメトリ自己位置推定を行う。時間発展モデルは、下記数式6により表される。
【0050】
【数2】

【0051】
ここで、xはx軸方向における位置、yはy軸方向における位置、θは旋回角度であり、x=(x、y、θ)である。また、vは並進速度、wは回転速度、εは分散を示す。すなわち、数式6では、オドメトリ出力値に基づき推定された時刻tにおける自己位置推定値を表している。
【0052】
また、EKF自己位置推定部140は、SLAM自己位置推定部120による自己位置推定値よりロボット10の位置および方位を取得し、推定されたロボット10の位置および方位、そして車輪速度に基づく観測モデルにより、SLAM自己位置推定を行う。観測モデルは、下記数式7により表される。
【0053】
【数3】

【0054】
ここで、uは直前のSLAM自己位置推定時刻、δは分散を示す。すなわち、数式7では、SLAM自己位置推定値に基づき推定された時刻tにおける自己位置推定値を表している。ここで、数式7の右辺第1項括弧内の2項よりわかるように、時刻t−uにおいて算出されたSLAM自己位置推定値(左側の項)に、時刻t−u+1から現時刻tまでの車輪14による移動距離(右側の項)が加算されている(図5の積分器における加算処理)。このようにして、拡張カルマンフィルタの2つのモデルの同期を取り、推定精度を高めるようにしている。
【0055】
EKF自己位置推定部140は、数式6および7より表されるモデルを用いて、数式1〜5に基づきロボット10の空間内における推定位置を算出する。このように、EKF自己位置推定部140は、高精度のSLAMによる自己位置推定値と、高いサンプリング周期で取得されるオドメトリ出力値とを用いて、高精度かつ高サンプリング周期で自己位置を推定することができる。
【0056】
その後、EKF自己位置推定部140は、算出した自己位置推定値を運動制御部150へ出力する。運動制御部150は、EKF自己位置推定部140により推定された自己位置に基づき、ロボット10が移動・作業するための駆動機構の制御値を算出し、ロボット10の制御を行う(ステップS140)。
【0057】
以上、本実施形態に係る自己位置推定装置100による自己位置推定方法について説明した。かかる方法によれば、低サンプリング周期でのSLAMを用いた自己位置推定結果と、高サンプリング周期で取得可能な車輪エンコーダ取得部110からのオドメトリ出力とを拡張カルマンフィルタによって融合する。これにより、低サンプリング周期で推定された自己位置推定結果を、より実位置に近いものに補正することができ、高サンプリング周期で高精度な自己位置推定を行うことが可能となる。
【0058】
また、本実施形態の自己位置推定方法では、SLAMによる自己位置推定結果をEKF自己位置推定部140に入力する前に、車輪エンコーダ取得部110からのオドメトリ出力を加算する。これにより、EKF自己位置推定部140による自己位置推定結果が不連続な値とならず、この自己位置推定値を用いたロボット10の運動制御等の制御を高精度に行うことが可能となる。
【0059】
<4.ハードウェア構成例>
本実施形態にかかる自己位置推定装置100による一部の処理は、ハードウェアにより実行させることもでき、ソフトウェアによって実行させることもできる。この場合、自己位置推定装置100は、図6に示すようなコンピュータとして構成することもできる。以下、図6に基づいて、本実施形態に係る自己位置推定装置100の一ハードウェア構成例について説明する。
【0060】
本実施形態にかかる入力ユニットを構成する自己位置推定装置100は、上述したように、コンピュータ等の情報処理装置により実現することができ、マニピュレータ10を備える自律分散型ロボットに設けることができる。自己位置推定装置100は、図6に示すように、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、ホストバス104aとを備える。また、自己位置推定装置100は、ブリッジ104と、外部バス104bと、インタフェース105と、入力装置106と、出力装置107と、ストレージ装置(HDD)108と、ドライブ109と、接続ポート111と、通信装置113とを備える。
【0061】
CPU101は、演算処理装置および制御装置として機能し、各種プログラムに従って自己位置推定装置100内の動作全般を制御する。また、CPU101は、マイクロプロセッサであってもよい。ROM102は、CPU101が使用するプログラムや演算パラメータ等を記憶する。RAM103は、CPU101の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはCPUバスなどから構成されるホストバス104aにより相互に接続されている。
【0062】
ホストバス104aは、ブリッジ104を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス104bに接続されている。なお、必ずしもホストバス104a、ブリッジ104および外部バス104bを分離構成する必要はなく、一のバスにこれらの機能を実装してもよい。
【0063】
入力装置106は、マウス、キーボード、タッチパネル、ボタン、マイク、スイッチおよびレバーなどユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、CPU101に出力する入力制御回路などから構成されている。ユーザは、該入力装置106を操作することにより、ロボットの自己位置推定装置100に対して各種のデータを入力したり処理動作を指示したりすることができる。
【0064】
出力装置107は、例えば、液晶ディスプレイ(LCD)装置、OLED(Organic Light Emitting Diode)装置およびランプなどの表示装置や、スピーカなどの音声出力装置を含む。
【0065】
ストレージ装置108は、自己位置推定装置100の記憶部の一例であり、データ格納用の装置である。ストレージ装置108は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置などを含んでもよい。ストレージ装置108は、例えば、HDD(Hard Disk Drive)で構成される。このストレージ装置108は、ハードディスクを駆動し、CPU101が実行するプログラムや各種データを格納する。
【0066】
ドライブ109は、記憶媒体用リーダライタであり、自己位置推定装置100に内蔵、あるいは外付けされる。ドライブ109は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体に記録されている情報を読み出して、RAM103に出力する。
【0067】
接続ポート111は、外部機器と接続されるインタフェースであって、例えばUSB(Universal Serial Bus)などによりデータ伝送可能な外部機器との接続口である。また、通信装置113は、例えば、通信網15に接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置112は、無線LAN(Local Area Network)対応通信装置であっても、ワイヤレスUSB対応通信装置であっても、有線による通信を行うワイヤー通信装置であってもよい。
【0068】
なお、本実施形態に係る自己位置推定装置100は、必ずしも図6に示すハードウェアを備える必要はない。例えば、入力装置106や表示装置107、ストレージ装置108、ドライブ109、接続ポート111、通信装置113等については、自己位置推定装置100とは別の装置として、自己位置推定装置100と接続して使用できるようにしてもよい。
【0069】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【0070】
例えば、上記実施形態では、SLAMによる自己位置推定値と内界センサによるオドメトリ出力値とを、拡張カルマンフィルタを用いて融合したが、本発明はかかる例に限定されない。例えば、拡張カルマンフィルタの代わりに、パーティクルフィルタ等を用いてもよい。なお、パーティクルフィルタを利用すると計算量が莫大に増加するため、拡張カルマンフィルタを用いるのが好適である。
【0071】
また、上記実施形態では、外界センサとしてレーザレンジファインダ12を用いたが、本発明はかかる例に限定されず、例えばステレオカメラ等を用いてもよい。
【0072】
さらに、上記実施形態では、SLAM自己位置推定部120による自己位置推定処理を100ms周期で行い、EKF自己位置推定部130による自己位置推定処理を1ms周期で行ったが、本発明はかかる例に限定されない。EKF自己位置推定部140のサンプリング周期がSLAM自己位置推定部120のサンプリング周期よりも高い場合に、本発明は適用可能である。
【符号の説明】
【0073】
10 自律移動型ロボット
12 レーザレンジファインダ
14 車輪
100 自己位置推定装置
110 車輪エンコーダ取得部
120 SLAM自己位置推定部
122 位置推定部
124 環境マップ更新部
130 環境マップ記憶部
140 EKF自己位置推定部
150 運動制御部


【特許請求の範囲】
【請求項1】
移動機構を備え、所定の空間を移動可能な自律移動装置の前記移動機構による動作情報を検出する内界センサ、および前記所定の空間内に関する空間情報を検出する外界センサによる検出結果に基づいて、第1のサンプリング周期で自己位置を推定する第1の自己位置推定部と、
前記第1の自己位置推定部による自己位置推定結果と、前記内界センサにより検出された前記自律移動装置の動作情報とに基づいて、前記第1のサンプリング周期よりも高いサンプリング周期で自己位置を推定する第2の自己位置推定部と、
を備える、自己位置推定装置。
【請求項2】
前記空間内の空間情報を環境マップとして記憶する記憶部をさらに備え、
前記第1の自己位置推定部は、
前記環境マップの空間情報、前記内界センサの検出値および前記外界センサの検出値に基づいて、前記自律移動装置の前記空間における自己位置を推定する位置推定部と、
前記位置推定部により推定された自己位置と、前記外界センサの検出値とに基づいて、前記記憶部の環境マップを更新する更新部と、
を備える、請求項1に記載の自己位置推定装置。
【請求項3】
前記外界センサは、前記自律移動装置から前記空間内に存在する物体までの距離を取得する距離センサであり、
前記第1の自己位置推定部は、前記距離センサの位置姿勢と当該距離センサによる測距値に基づき認識された物体の位置とを同時に推定するSLAMを用いて、前記環境マップを動的に生成する、請求項2に記載の自己位置推定装置。
【請求項4】
前記第2の自己位置推定部は、前記内界センサの検出値に基づく時間発展モデルと、前記第1の自己位置推定部により推定された前記自律移動装置の自己位置に基づく観測モデルとを備える拡張カルマンフィルタを用いて、前記自律移動装置の前記空間における自己位置を推定する、請求項1〜3のいずれか1項に記載の自己位置推定装置。
【請求項5】
前記第2の自己位置推定部は、前記第1の自己位置推定部により推定された自己位置結果に前記内界センサの検出値を加算した加算値を用いて、前記観測モデルを生成する、請求項4に記載の自己位置推定装置。
【請求項6】
前記内界センサは、前記自律移動装置の駆動機構の駆動量を検出する位置センサである、請求項1に記載の自己位置推定装置。
【請求項7】
前記第1のサンプリング周期は、前記外界センサの検出周期であり、
前記第2のサンプリング周期は、前記内界センサの検出周期である、請求項1に記載の自己位置推定装置。
【請求項8】
移動機構を備え、所定の空間を移動可能な自律移動装置の前記移動機構による動作情報を検出する内界センサ、および前記所定の空間内に関する空間情報を検出する外界センサによる検出結果に基づいて、第1の自己位置推定部によって、第1のサンプリング周期で自己位置を推定するステップと、
前記前記第2の自己位置推定部による自己位置推定結果と、前記内界センサにより検出された前記自律移動装置の動作情報とに基づいて、第2の自己位置推定部によって、前記第1のサンプリング周期よりも高いサンプリング周期で自己位置を推定するステップと、
を含む、自己位置推定方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−209203(P2011−209203A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2010−78891(P2010−78891)
【出願日】平成22年3月30日(2010.3.30)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】