JP5793851B2 - 位置推定方法、位置推定装置及びプログラム - Google Patents

位置推定方法、位置推定装置及びプログラム Download PDF

Info

Publication number
JP5793851B2
JP5793851B2 JP2010250319A JP2010250319A JP5793851B2 JP 5793851 B2 JP5793851 B2 JP 5793851B2 JP 2010250319 A JP2010250319 A JP 2010250319A JP 2010250319 A JP2010250319 A JP 2010250319A JP 5793851 B2 JP5793851 B2 JP 5793851B2
Authority
JP
Japan
Prior art keywords
estimation
unit
data
electronic device
static map
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010250319A
Other languages
English (en)
Other versions
JP2012103819A (ja
Inventor
彬 陳
彬 陳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010250319A priority Critical patent/JP5793851B2/ja
Publication of JP2012103819A publication Critical patent/JP2012103819A/ja
Application granted granted Critical
Publication of JP5793851B2 publication Critical patent/JP5793851B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、位置推定方法、位置推定装置及びプログラムに関する。
近年、公共施設等で人にサービスを提供する自律移動型(又は、自律走行型)の知能ロボットが開発されている。このような知能ロボットは、サービスロボットとも呼ばれる。このようなサービスロボットの活用は、ロボット技術の進歩に伴い増えることが予想される。サービスロボットでは、予め決められたタスクを実行してサービスを提供するため、施設内で例えば指定されたサービスポイント間を自律移動することが求められる。ロボットを自律移動させるナビゲーションの分野では、SLAM(Simultaneous Localization And Mapping)等の技術を利用して、事前に作成され地図に基づいてサービスロボットが自己位置を推定する(例えば、非特許文献1)。
しかし、サービスロボットが同一施設内でサービスの質を低下させることなくサービスを提供するためには、環境変化により自己位置推定の精度が劣化することを防ぐことが望ましい。例えば、ショッピングセンタ内では、商品の種類の入れ替え、商品棚の撤去や増設、一時的に開催されるイベント等によって、環境地図が変化する。静止物体の配置が変化し得る環境は、非静的環境と呼ばれる(例えば、非特許文献2)。このような非静的環境において、サーボスロボットの導入時(即ち、サービスロボットが施設内に配備される時)に作成された地図のみに基づいた自己位置推定を行ったのでは、自己位置推定の精度が低下してしまい、自己位置推定が破綻する可能性もある。又、環境が変化する度にSLAM等の技術を利用して地図を作成し直すのでは、環境変化に応じて地図を逐次更新する必要が生じ、地図更新処理によるロボットシステムへの負荷が増大し、ロボットシステムの維持費(即ち、メンテナンスコスト)も増加してしまう。
このように、サービスロボットの導入時に作成された環境全体の地図にも基づいて、非静的環境に適した自己位置推定を行うことが望まれている。又、事前に作成した環境の地図に基づいて自己位置推定を行う際に、環境の変化に拘わらず自己位置推定の精度と安定さを維持することも望まれている。
非静的環境下での自己位置推定方式は、例えば以下の3種類の方式に分類することができる。
第1の自己位置推定方式では、環境内の移動物体(即ち、移動している物や人)をセンサで検出してトラキングし、センサの計測データから移動物体を除去して自己位置推定や地図の作成を行う。
第2の自己位置推定方式では、環境全体を静的領域と非静的領域に分け、センサの計測データを静的領域データと非静的領域データに分類する。この場合、レーザレンジファインダ(LRF) でスキャンしたレンジデータから可動物体の配置の変化を検出して、対応するレンジデータを計測データから除去して自己位置推定を行うことも提案されている(例えば、非特許文献2)。又、環境内での移動物体の移動頻度をパラメータ化し、移動尤度を設定してグリッドマップに書き込み、レイアウト確率マップを作成することも提案されている(例えば、非特許文献4)。この場合、ロボットが移動する際に、センサの計測データをレイアウト確率マップと照合して観測尤度を計算できるが、環境内の物体に関しての事前知識が必要であり、例えばショッピングセンタのような大規模な予測困難な環境での実用性は低い。更に、環境の地図を異なるタイミングで複数作成し、EM(Expectation Maximization)アルゴリズムに従って複数の地図間の差分処理と自己位置推定処理を繰り返して環境を動的領域と静的領域を分離することも提案されている(例えば、非特許文献7,8)。しかし、この場合は差分処理及び自己位置推定処理の2つの処理が互いに前回の処理結果を利用して次回の処理を行うため、いずれかの処理結果に比較的大きな誤差が発生すると、最終的には自己位置推定が破綻してしまう。
第3の自己位置推定方式では、環境の地図を異なるタイミングで複数作成し、複数の地図で環境レイアウトの変化を表現する。環境レイアウトとは、環境内の物や人の配置を指す。サービスロボットの自律走行時に、複数の地図から最適なものを選択して自己位置推定に利用する。環境レイアウトの変化の頻繁な局所領域は、複数のサブローカル地図を組み合わせることにより表現することが提案されている(例えば、非特許文献5)。これらのサブローカル地図は、夫々が対応する環境レイアウトを表し、学習によって獲得できる。サービスロボットの自律移動時に、最適なサブローカル地図を選択できれば自己位置推定の精度を向上できる。異なるタイミングで作成された複数の地図に、重要度を表すタイムスケールパラメータを付加しておき、重要度が比較的高い複数地図を照合することで自己位置推定を行うことも提案されている(例えば、非特許文献3)。しかし、あり得る全ての環境変化を事前に予測することが困難な場合には、自己位置推定の精度の向上は期待できない。
上記の自己位置推定方式の多くは、シミュレーションの環境で自己位置推定を行うものである。しかし、実環境の中では、環境レイアウトが変化する物体や領域の予測が困難であるため、上記の自己位置推定方式の多くは実用性が低い。このため、環境変換に関する事前の予測、或いは、事前の知識に依存せずに自己位置推定の精度を向上可能な自己位置推定技術が望まれている。
特開平7−72924号公報 特開2008−71352号公報 特表2010−511957号公報 特開2008−165275号公報
D.Austin and K. Kouzoubov, "Robust, Long Term Navigation of a Mobile Robot", Proc. of IARP/IEERAS Joint Workshop on Technical Challenges for Dependable Robots in Human Environments, October, LAS-CNRS, Toulouse, France, 2002 田中完爾, 木室義彦, 岡田伸廣, 近藤英二,「非静的環境における確率的アプローチによる変化検出と自己位置推定」, 電子情報通信学会論文誌 D-II, Vol.J88-D-II, No.5, pp.854-863, (社)電子情報通信学会 2005 P. Biber and T. Duckett, "Experimental Analysis of Sample-Based Maps for Long-Term SLAM", International Journal of Robotics Research, Vol.28, Issue 1, pp.20-33, January 2009 A. Ramirez-Serrano, H. Liu and G. C. Pettinaro, "Mobile robot localization in quasi-dynamic environments", Industrial Robot: An International Journal, Vol.35, No.3, pp.246-258, 2008 C. Stachniss and W. Burgard, "Mobile Robot Mapping and Localization in Non-Static Environments", Proc. of the National Conference on Artificial Intelligence (AAAI), Pittsburgh PA, USA, 2005 Denis Wolf and G. S. Sukhatme, "Online Simultaneous Localization and Mapping in Dynamic Environments", Proc. of the Intl. Conference on Robotics and Automation (ICRA), New Orleans, Louisiana, Apr. 2004 C.-C. Wang, C. Thorpe, and S. Thrun, "Online Simultaneous Localization and Mapping with Detection and Tracking of Moving Objects: Theory and Results from a Ground Vehicle in Crowded Urban Areas", Proc. of the International Conference on Robotics and Automation (ICRA), pp.842-849, 2003 D. Hahnel, R. Triebel, W. Burgard and S. Thrun, "Map Building with Mobile Robots in Dynamic Environments", Proc. of the International Conference on Robotics and Automation (ICRA), pp.1557-1563, 2003. A. I. Eliazar and R. Parr,"DP-SLAM2.0," IEEE 2004 International Conference on Robotics and Automation (ICRA), Vol.2, pp.1314-1320, 2004
従来の位置推定方法では、環境変化に関する事前の予測、或いは、事前の知識に依存せずに自己位置推定の精度を向上することは難しいという問題があった。
そこで、本発明は、環境変化に関する事前の予測、或いは、事前の知識に依存せずに自己位置推定の精度を向上可能な位置推定方法、位置推定装置及びプログラムを提供することを目的とする。
本発明の一観点によれば、コンピュータによる電子装置の位置推定方法であって、前記コンピュータが、内的センサの観測情報と、外的センサの観測情報と、前記電子装置が導入される環境の静的地図のデータとに基づいて推定した前記電子装置の位置と姿勢を含む移動履歴を取得して記憶部に一時的に格納する移動履歴取得工程と、前記コンピュータが、前記移動履歴及び前記外的センサの観測情報に基づき前記電子装置の移動中に実時間で作成された非静的地図のデータと、前記静的地図のデータとの照合に基づいて、前記電子装置の自己位置と前記電子装置の周囲の周辺地図を推定する推定工程を含み、前記推定工程は、前記コンピュータに含まれる第1の推定部により前記コンピュータが、移動開始コマンドに応答して、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴を入力して逐時に前記電子装置の位置と姿勢を推定して更新する初期段階での自己位置推定処理のループを開始する初期化工程と、前記コンピュータに含まれ前記初期化工程では待機状態にある第2、第3、及び第4の推定部を起動する条件を判断し、前記条件が満たされると前記初期段階での前記自己位置推定処理を終了して、前記電子装置の位置のサンプルセットを含む推定結果を前記第2、第3、及び第4の推定部に同時に出力する切替工程とを実行し、前記第1の推定部により、前記コンピュータが、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴に基づいて前記電子装置の移動中に実時間で前記非静的地図のデータを作成し、前記第2の推定部により、前記コンピュータが、前記静的地図のデータ、前記移動履歴、及び前記非静的地図のデータを入力として、前記非静的地図のデータと前記外的センサの観測情報とを合わせた観測情報と、前記静的地図のデータとに基づいて前記電子装置の自己位置を推定し、前記第3の推定部により、前記コンピュータが、前記移動履歴、前記静的地図のデータ、及び前記非静的地図のデータを入力として、前記外的センサの観測情報と、前記静的地図のデータと前記非静的地図のデータとを合わせた地図のデータとに基づいて前記電子装置の自己位置を推定して前記非静的地図のデータを更新し、前記第4の推定部により、前記コンピュータが、前記第2の推定部から得られる推定された前記自己位置及び前記第3の推定部から得られる推定された前記自己位置に基づき、前記電子装置の現在位置と姿勢を統合した統合処理結果を出力し、前記第2及び第3の推定部の各々は、前記第4の推定部が出力した前記統合処理結果のフィードバックを受けると、前記統合処理結果に基づいて各自の自己位置の推定を更新する位置推定方法が提供される。
本発明の一観点によれば、外的センサの観測情報、電子装置が導入される環境の静的地図のデータ、及び前記電子装置の移動履歴に基づいて前記電子装置の移動中に実時間で非静的地図のデータを作成する第1の推定部と、前記移動履歴は、内的センサの観測情報と、前記外的センサの観測情報と、前記静的地図のデータとに基づいて推定した前記電子装置の位置と姿勢を含み、前記静的地図のデータ、前記移動履歴、及び前記非静的地図のデータを入力として、前記非静的地図のデータと前記外的センサの観測情報とを合わせた観測情報と、前記静的地図のデータとに基づいて前記電子装置の自己位置を推定する第2の推定部と、前記移動履歴、前記静的地図のデータ、及び前記非静的地図のデータを入力して前記外的センサの観測情報と、前記静的地図のデータと前記非静的地図のデータとを合わせた地図のデータとに基づいて前記電子装置の自己位置を推定して前記非静的地図のデータを更新する第3の推定部と、前記第2推定部から得られる推定された前記自己位置及び前記第3の推定部から得られる前記自己位置に基づき、前記電子装置の現在位置と姿勢を統合した統合処理結果を出力する前記第4の推定部を備え、前記第1の推定部は、移動開始コマンドに応答して、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴を入力して逐時に前記電子装置の位置と姿勢を推定して更新する初期段階での自己位置推定処理のループを開始し、前記初期段階での前記自己位置推定処理のループの開始時には待機状態にある前記第2、第3、及び第4の推定部を起動する条件を判断し、前記条件が満たされると前記初期段階での前記自己位置推定処理を終了して、前記電子装置の位置のサンプルセットを含む推定結果を前記第2、第3、及び第4の推定部に同時に出力し、前記第2及び第3の推定部の各々は、前記第4の推定部が出力した前記統合処理結果のフィードバックを受けると、前記統合処理結果に基づいて各自の自己位置の推定を更新する位置推定装置が提供される。
本発明の一観点によれば、コンピュータに電子装置の位置を推定させるプログラムであって、内的センサの観測情報と、外的センサの観測情報と、前記電子装置が導入される環境の静的地図のデータとに基づいて推定した前記電子装置の位置と姿勢を含む移動履歴を取得して記憶部に一時的に格納する移動履歴取得手順と、前記移動履歴及び前記外的センサの観測情報に基づき前記電子装置の移動中に実時間で作成された非静的地図のデータと、前記静的地図のデータとの照合に基づいて、前記電子装置の自己位置と前記電子装置の周囲の周辺地図を推定する推定手順を前記コンピュータに実行させ、前記推定手順は、前記プログラムで実現される第1の推定部により前記コンピュータが、移動開始コマンドに応答して、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴を入力して逐時に前記電子装置の位置と姿勢を推定して更新する初期段階での自己位置推定処理のループを開始する初期化手順と、前記プログラムで実現され前記初期化手順では待機状態にある第2、第3、及び第4の推定部を起動する条件を判断し、前記条件が満たされると前記初期段階での前記自己位置推定処理を終了して、前記電子装置の位置のサンプルセットを含む推定結果を前記第2、第3、及び第4の推定部に同時に出力する切替手順とを実行し、前記第1の推定部により、前記コンピュータが、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴に基づいて前記電子装置の移動中に実時間で前記非静的地図のデータを作成し、前記第2の推定部により、前記コンピュータが、前記静的地図のデータ、前記移動履歴、及び前記非静的地図のデータを入力として、前記非静的地図のデータと前記外的センサの観測情報とを合わせた観測情報と、前記静的地図のデータとに基づいて前記電子装置の自己位置を推定し、前記第3の推定部により、前記コンピュータが、前記移動履歴、前記静的地図のデータ、及び前記非静的地図のデータを入力として、前記外的センサの観測情報と、前記静的地図のデータと前記非静的地図のデータとを合わせた地図のデータとに基づいて前記電子装置の自己位置を推定して前記非静的地図のデータを更新し、前記第4の推定部により、前記コンピュータが、前記第2の推定部から得られる推定された前記自己位置及び前記第3の推定部から得られる推定された前記自己位置に基づき、前記電子装置の現在位置と姿勢を統合した統合処理結果を出力し、前記第2及び第3の推定部の各々は、前記第4の推定部が出力した前記統合処理結果のフィードバックを受けると、前記統合処理結果に基づいて各自の自己位置の推定を更新するプログラムが提供される。
開示の位置推定方法、位置推定装置及びプログラムによれば、環境変化に関する事前の予測、或いは、事前の知識に依存せずに自己位置推定の精度を向上することができる。
本発明の一実施例における自律走行型のロボットの構成の一例を示す図である。 走行系制御CPUとナビゲーションCPUが実行する処理の一例を説明する図である。 移動履歴のデータの一例を説明する図である。 非静的地図の一例を説明する図である。 自己位置と地図の推定タスクが用いるアルゴリズムの一例を説明する図である。 自己位置と地図の推定タスクが用いるアルゴリズムの一例をより詳細に説明する図である。 自己位置推定の安定性を説明する図である。 従来の処理モジュールの一例を搭載した比較例のロボットと、図6に示す処理モジュールを搭載したロボット1により得られた自己位置推定が成功した頻度の分布を示す図である。 自己位置と地図の推定タスクが用いるアルゴリズムの他の例を詳細に説明する図である。 区間信念度を説明する図である。 ロボットの遠隔操作を説明する図である。
開示の位置推定方法、位置推定装置及びプログラムでは、電子装置の移動履歴を取得して一時的に格納する。又、電子装置の移動履歴と外的センサの観測情報と電子装置が導入される環境の静的地図のデータと、前記電子装置の移動中に実時間で作成された非静的地図のデータとに基づいて、電子装置の自己位置とその周囲の周辺地図を推定する。
更に、電子装置の自己位置とその周辺地図に基づいて、設定された経路に従って電子装置が目的地まで移動するための目標経路を生成しても良い。
以下に、開示の位置推定方法、位置推定装置及びプログラムの各実施例を図面と共に説明する。
先ず、本発明の一実施例における位置推定方法の一例について説明する。位置推定方法は、例えば自律移動型のロボットが自己位置推定を行うのに用いることができる。
一般的に、例えば自律移動型のロボットがある業務を行う(例えば、サービスを提供する)ために、新しい環境に導入される際には、先ず環境の地図を作成する。又、ロボットが業務を行うためのアプリケーションを開発する際には、作成した環境の地図の座標系を参照して、ロボットの作業場所、ロボットの移動先の目標地点、ロボットの移動経路等を座標形式で指定する。
しかし、環境レイアウトの変化に適応するために環境の地図を更新すると、新しく作成した更新後の地図と元の更新前の地図との間に差が生じる。地図の更新回数が多くなると、最新の地図が元の地図と大きく異なってしまう。このような場合、ロボットが業務を行うためのアプリケーションでの座標値を最新の地図に基づいて指定し直す必要が生じ、アプリケーションのメンテナンスが煩雑になり、メンテナンスに時間とコストがかかってしまう。
そこで、本実施例では、アプリケーションのメンテナンス作業を軽減するために、元の地図と推定された最新地図を同時に用いて自己位置推定を行う。つまり、環境レイアウトに変化をもたらす領域や物体等に関する情報を事前に作成して自己位置推定に用いることはない。自己位置推定は、以下の3つの処理モジュール(又は、処理部)を用いて行うことができる。
第1の推定モジュールは、静的地図に基づいて第1の自己位置推定手順を実行する。静的地図とは、ロボットを環境に導入する際に作成された、更新されない地図である。第1の自己位置推定手順で用いる観測情報は、後述する第2の推定モジュールで作成した仮想センサの観測(以下、仮想観測とも言う)と、実センサの観測(以下、実観測とも言う)を含む。仮想観測には、第2の推定モジュールで作成(即ち、推定)された最新地図が用いられる。このように、環境の静的地図の拘束によって最新地図を推定し、推定した最新地図を仮想観測として利用することで、最新の実観測と同時に、静的地図との照合によって自己位置推定を行う。第1の自己位置推定手順が行う自己位置推定は、矢印の左側を入力、矢印の右側を出力とすると、以下のような関係で表すことができる。
(仮想観測+実観測)× 静的地図 → 自己位置推定
第2の推定モジュールは、非静的地図作成手順と第2の自己位置推定手順を実行する。第2の推定モジュールは、最新の実観測と地図情報に基づいて最新地図を作成(即ち、推定)しながら自己位置推定を行う。この場合の地図情報は、第1の推定モジュールで用いる静的地図と、最新の非静的地図との組み合わせである。非静的地図とは、ロボットが移動している間に実時間で作成される地図であり、最新の非静的地図が最新地図となる。第2の自己位置推定手順が行う自己位置推定は、矢印の左側を入力、矢印の右側を出力とすると、以下のような関係で表すことができる。
実観測 × (静的地図+非静的地図) → 自己位置推定 + 最新地図
統合モジュールは、上記第1及び第2の推定モジュールによって得られた推定結果を統合し、より高い精度で自己位置推定を行う。
上記第1及び第2の推定モジュール(又は、推定部)は、例えば2つの無香粒子フィルタ(又は、アンセンテッドパーティクルフィルタ(UPF:Unscented Particle Filter))で形成可能である。この場合、2つのUPFは、非静的地図の作成と、静的地図に基づく自己位置推定を並行に行う。非静的地図を作成するUPFでは、与えられた静的地図を事前条件として、環境レイアウトの地図と現在位置を推定する。一方、静的地図に基づく自己位置推定を行うUPFでは、レーザレンジファインダ(LRF:Laser Range Finder)等の計測装置から得られる計測データと最新地図(即ち、最新の非静的地図)を観測データとして、静的地図と照合することによって各パーティクルを評価する。統合モジュール(又は、統合部)は、例えば無香カルマンフィルタ(又は、アンセンテッドカルマンフィルタ(UKF:Unscented Kalman Filter))で形成可能である。この場合、UKFは、上記2つのUPFからの推定結果を統合すると共に、統合結果を各UPFへ配分(又は、フィードバック)する。これにより、2つのUPFは、統合結果を新たな観測情報として利用することでパーティクルの状態を更新できる。
図1は、本発明の一実施例における自律走行型のロボットの構成の一例を示す図である。ロボット1は、ナビゲーションCPU11、走行制御CPU12、台車13、センサ部14、入出力部15、及び記憶部16を有する。入出力部15は、利用者がロボット1に情報やコマンドを入力する入力部(図示せず)と、ロボット1から利用者へ情報を出力する出力部(図示せず)を含む。入力部は、例えばキーボード等の操作部、マイクロホン等を含む。一方、出力部は、表示部、スピーカ等を含む。CPU11,12は、単一の計算機(又は、コンピュータ)を形成しても、別々の計算機(又は、コンピュータ)を形成しても良い。尚、ロボット1には、周知の構成を有し周知の動作を行うロボットアーム(図示せず)や、外部のサーバ(図示せず)等と通信するためのアンテナや送受信部を含む通信部(図示せず)を更に有しても良い。
記憶部16は、CPU11,12が実行するプログラムを含む各種プログラム、及びCPU11,12が実行する演算の中間データ、後述する静的地図及び非静的地図のデータ等を含む各種データを格納する。記憶部16は、コンピュータ読み取り可能な記憶媒体により形成可能である。コンピュータ読み取り可能な記憶媒体は、一例として、磁気記録媒体、光記録媒体、光磁気記録媒体、ディスクを記録媒体として用いるディスク装置、ROM(Read Only Memory)等を含む半導体記憶装置等を含む。ディスクを記録媒体として用いるディスク装置には、例えばHDD(Hard Disk Drive)が使用可能である。又、記憶部16は、複数の記憶装置で形成されていても良く、この場合、アクセス速度の異なる記憶装置を含んでも良い。
台車13は、ジャイロセンサ131、センサ・エンコーダ132、モータ133、及び車輪134を有する。ジャイロセンサ131は、車輪134の回転量を計測して走行制御CPU12に出力し、センサ・エンコーダ132は、車輪134の回転数を検出して走行制御CPU12に出力する。ジャイロセンサ131及びセンサ・エンコーダ132は、内的センサを形成する。モータ133は、走行制御CPU12からのコマンドに基づいて車輪134を直接、或いは、ギア機構(図示せず)を介して回転する。モータ133は、複数設けられていても良く、台車13の移動方向を決めるステアリング部(図示せず)を駆動しても良い。モータ133、ギア機構、及びステアリング部等は、ロボット1の走行を制御する走行制御系を形成する。
走行制御CPU12は、台車13の移動を制御して例えばナビゲーションCPU11により指示された目標経路を追従させたり、台車13内のジャイロセンサ131の出力情報及びセンサ・エンコーダ132の出力情報に基づいて台車13、即ち、ロボット1の姿勢と現在位置を推定する。
センサ部14は、カメラ141及び距離センサ142を有する。カメラ141は、例えば撮影画像から周知の方法で視覚的ランドマークを抽出してロボット1の3次元位置を計測するステレオカメラで形成可能である。距離センサ142は、周囲環境への距離を周知の方法で計測する例えばLRF等の計測装置で形成可能である。カメラ141及び距離センサ142は、外的センサを形成する。
ナビゲーションCPU11は、内的センサ(ジャイロセンサ131、センサ・エンコーダ132)及び外的センサ(カメラ141及び距離センサ142)の出力情報に基づいて、ロボット1の現在位置を推定する。又、ナビゲーションCPU11は、推定したロボット1の現在位置に基づいて、ロボット1の移動を計画する。
本実施例における位置推定装置は、図1に示す如きハードウェア構成を有するロボット1のナビゲーションCPU11、即ち、ナビゲーション部の一部として搭載されていても良く、ロボット1が自律移動を行う際に自己位置推定を行う。
図2は、走行系制御CPU12とナビゲーションCPU11が実行する処理の一例を説明する図である。走行制御CPU12は、内的センサの出力情報に基づいて台車13、即ち、ロボット1の移動に関する情報を処理する。一方、ナビゲーションCPU11は、外的センサの出力情報に基づいてロボット1の自己位置推定と移動を計画する。
走行系制御CPU12が実行するタスク(又は、処理)には、自己位置推定タスクST21と経路追従タスクST22が含まれる。自己位置推定タスクST21は、内的センサを形成するジャイロセンサ131及びエンコーダ132の出力情報に基づいてロボット1の姿勢と現在位置を推定し、例えば記憶部16に格納する。自己位置推定タスクST21が行う推定は、外的センサの出力情報を用いないため、推定誤差はロボット1の移動距離に応じて拡大する。経路追従タスクST22は、ナビゲーションCPU11から指示された目標経路(又は、目標軌跡)を追従するようにモータ133を制御する。
ナビゲーションCPU11が実行するタスク(又は、処理)には、移動履歴取得タスクST11と、自己位置と地図の推定タスクST12と、経路計画タスクST13が含まれる。移動履歴取得タスクST11は、自己位置と地図の推定タスクST12の処理周期が走行制御CPU12の自己位置推定タスクST21の処理周期より長い場合に自己位置と地図の推定処理を行う間にロボット1の移動履歴が失われてしまうことがないように、比較的速い処理周期で走行制御CPU12を介して記憶部16をアクセスして、ロボット1の移動履歴を取得して例えば記憶部16内に一時的に格納する。自己位置と地図の推定タスクST12は、移動履歴取得タスクST11が取得して記憶部16に格納されたロボット1の移動履歴と、外的センサを形成するカメラ141及び距離センサ142の出力情報と、例えば記憶部16に格納されたロボット1がサービスを提供する環境の全体的な静的地図のデータに基づいて、ロボット1の自己位置(即ち、現在位置)と周囲のローカル地図(又は、周辺地図)を推定する。経路計画タスクST13は、例えば利用者が入出力部15の入力部から設定した経路に従って、障害物等を回避しながらロボット1を目的地まで移動させるための目標経路をロボット1の自己位置と周囲のローカル地図に基づいて生成し、走行制御CPU12へ指示する。
図2に示す自己位置と地図の推定タスクST12は、例えば図5に示すアルゴリズムに基づいて自己位置と地図の推定処理を行うことができる。図5は、自己位置と地図の推定タスクST12が用いるアルゴリズムの一例を説明する図である。図5は、自己位置と地図の推定タスクST12の処理を実行するPF(Particle Filter)推定部20、UPF(Unscented Particle Filter)推定部21、UPF推定部22、及びUKF(Unscented Kalman Filter)推定部23を示す。PF推定部20は、初期化、予測、更新、及び切替ステップを実行し、初期段階でのロボット1の自己位置推定及び各推定部21〜23の初期化のためのデータの準備を行う。UPF推定部21は、初期化、予測、及び更新ステップを実行し、静的地図を用いた自己位置推定を行う。UPF推定部22は、初期化、予測、及び更新ステップを実行し、非静的地図の作成と自己位置推定を行う。UKF推定部23は、初期化、予測、及び更新ステップを実行し、統合処理推定を行う。図5中、「D」が付されたポートはダイナミック情報入力ポート、「M」が付されたポートは地図データ入力ポート、「O」が付されたポートは観測情報入力ポート、左下がりのハッチングが付されたポートはその他の情報入力ポート、右下がりのハッチングが付されたポートは推定結果の出力ポートを夫々示す。又、括弧<>内は入出力データの内容を示す。
先ず、PF推定部20の初期化ステップに移動開始コマンドが入力されると、初期段階での自己位置推定処理のループが開始する。この例では、外的センサ(例えば、距離センサ142)の出力情報(LRFデータ)、静的地図、及びロボット1の移動履歴である相対移動量を入力して、逐時にロボット1の位置と姿勢を予測(即ち、推定)して更新する。この時、他の推定部21〜23は待機状態にある。
次に、PF推定部20の切替ステップで他の推定部21〜23を起動する条件を判断する。起動条件が満たされれば、初期段階での自己位置推定処理を終了して、ロボット1の位置のサンプルセットを処理結果として出力する。この処理結果は、静的地図を用いた自己位置推定を行うUPF推定部21、非静的地図の作成と自己位置推定を行うUPF部22、及び統合処理を行うUKF推定部23に同時に供給され、各推定部21〜23の処理が開始される。
UPF推定部21は、静的地図及び相対移動量に加え、UPF推定部22の生成物である非静的地図を仮想センサの観測情報として入力し、更に、実センサの観測情報、即ち、外的センサ(カメラ141及び距離センサ142)の観測情報(ランドマークデータ及びLRFデータ)と合わせて自己位置推定を行う。ただし、初期の段階では、非静的地図はまだ作成されていないため、実センサの観測情報のみを使用して自己位置推定を行う。又、UKF推定部23からのフィードバック情報がある場合には、このフィードバック情報を用いて自己位置推定を更新する。
UPF推定部22では、相対移動量に加え、静的地図と非静的地図を同時に利用して実センサの観測情報、即ち、外的センサ(距離センサ142)の観測情報(LRFデータ)に基づいて自己位置推定を行い、非静的地図を更新する。
UKF推定部23では、UPF推定部21,22から得られる推定したロボット1の現在位置と姿勢を利用して統合処理を行う。統合処理の結果、即ち、UKF推定部23が推定したロボット1の現在位置及び姿勢は、UPF推定部21,22にフィードバックする。各推定部21,22は、UKF推定部23からのフィードバック情報を受け取ると、各自の自己位置推定を更新する。
次に、図2に示す自己位置と地図の推定タスクST12が用いるアルゴリズムを、図6と共により詳細に説明する。図6は、自己位置と地図の推定タスクST12が用いるアルゴリズムの一例をより詳細に説明する図である。図6中、「観測」なるブロックは観測情報が格納される観測記憶領域、「地図」なるブロックは地図データが格納される地図記憶領域を示し、これらの記憶領域は例えば記憶部16内に形成可能である。又、記憶部16が複数の記憶装置で形成されている場合、各処理モジュール(又は、処理部)がアクセスする記憶領域は、各モジュール内に設けた記憶装置で形成しても良いことは言うまでもない。
図6は、自己位置と地図の推定タスクST12を実行する7つの処理モジュール(又は、処理部)を示す。7つの処理モジュールには、移動履歴取得部41、地図管理部42、センサ管理部43、PF推定部44、UPF推定部45,46、及びUKF推定部47が含まれる。推定部44〜47は、図5に示す推定部20〜23に相当する。
移動履歴取得部41は、走行制御CPU12にアクセスしてロボット1の移動履歴を取得して例えば記憶部16に格納する。地図管理部42は、ロボット1がサービスを提供する環境の全体的な静的地図、及びロボット1が移動する際に作成された最新の地図(即ち、非静的地図)を管理する。管理される静的地図及び非静的地図は、例えば記憶部16に格納される。センサ管理部43は、外的センサ(例えば、カメラ141、距離センサ142等)の計測データを管理する。管理される計測データは、例えば記憶部16に格納される。PF推定部44は、初期段階での自己位置推定を行い、自己位置推定の結果は他の推定部45〜47の状態の初期化に用いられる。
UPF推定部45は、静的地図に基づいて自己位置推定を行う。UPF推定部46は、静的地図に基づいて自己位置及び非静的地図を推定する。UKF推定部47は、UPF推定部45とUPF推定部46の推定結果を統合して、より高い精度の自己位置推定を行う。更に、UKF推定部47は、推定結果を統合した結果を各UPF推定部45,46にフィードバックして反映させることで、各UPF推定部45,46の推定誤差を軽減する。
以下に、上記7つの処理部41〜47が行う処理の詳細を説明する。
移動履歴取得部41:
UPF推定部45,46及びUKF推定部47の処理時間をtとすると、移動履歴取得部41は推定部45〜47より速い周期で走行制御CPU12にアクセスして、時刻tから時刻t+1の間のロボット1の移動履歴(即ち、位置と姿勢の履歴、以下位置姿勢履歴とも言う)を記憶部16から取得する。図3(a)に示すように、時刻tと時刻t+1に取得したロボット1の位置姿勢履歴のデータのインデックスを夫々kt, kt+1とし、位置姿勢履歴のデータを次式(1)で表すものとする。図3は、移動履歴のデータの一例を説明する図である。
便宜上、以下の説明では上記相対移動系列を簡略化してUt+1と表記する。相対移動系列Ut+1は、図6に示す移動履歴情報保存メモリ411に格納される。この移動履歴情報保存メモリ411は、例えば記憶部16により形成可能である。
ロボット1の相対移動量ukについての不確かさ(Uncertainty)Mkは、式(9)〜式(12)に従って計算できる。
時刻tから時刻t+1の間のロボット1の相対移動系列Utとその不確かさMtは、式(13)及び式(14) のようにまとめることができる。
ロボット1がある環境下である程度の期間に運用された場合、環境のレイアウトが導入前に比べて変化している可能性がある。このため、静的地図421のみの自己位置推定は不十分であり、ロボット1が移動している間に最新の地図を実時間で作成することが望ましい。非静的地図423は、このように実時間に作成された地図である。図4は、非静的地図423の一例を説明する図である。非静的地図423は、図4に示す如く非静的近辺地図423A及び非静的周辺地図423Bを含む。非静的近辺地図423A及び非静的執念地図423Bは、図6に示す近周辺地図マネージャ423Cにより管理される。
非静的近辺地図423Aは、ロボット1を中心とした近辺エリアのレイアウト地図である。非静的近辺地図423Aは、例えば記憶部16の近辺地図記憶領域に格納される。非静的近辺地図423Aは、推定部45〜47により比較的頻繁に利用されているため、記憶部16を形成する比較的高速アクセス可能な記憶装置に格納しても良い。
非静的周辺地図423Bは、非静的地図423から非静的近辺地図423Aを取り除いた地図である。非静的周辺地図423Bは、例えば記憶部16の周辺地図記憶領域に格納される。非静的周辺地図423Bは、推定部45〜47が比較的頻繁に利用するものではないので、記憶部16を形成する記憶装置のうち比較的アクセス速度の遅い記憶装置に格納しても良い。
近周辺地図マネージャ423Cは、ロボット1の移動により、非静的近辺地図423Aであったデータが非静的周辺地図423Bのデータになったり、非静的周辺地図324Bであったデータが非静的近辺地図423Aのデータになったりすることを判断して、非静的近辺地図423Aになったデータを記憶部16の周辺地図記憶領域から削除して近辺地図記憶領域にコピーする。又、非静的周辺地図423Bになったデータを記憶部16の近辺地図記憶領域から削除して、周辺地図記憶領域に移す。
PF推定部44:
PF推定部44は、パーティクル初期化部441、タイマ更新部442、パーティクル状態予測部443、パーティクル状態評価部444、切替器445、コピー部446、及び現在位置推定値取得部447を有する。
PF推定部44は、初期段階でのロボット1の自己位置推定及び各推定部45〜47の初期化のためのデータの準備を行う。
タイマ更新部442は、PF推定部44の時刻tをインクリメントして、t=t+1に設定する。パーティクル状態予測部443は、移動履歴情報保存メモリ411からロボット1の相対移動系列Ut+1とその不確かさMt+1を取得して、UPF推定部45,46への移動制御系列とする。ロボット1の運動モデルと共に後述する方法により、パーティクル状態初期化部441で初期化したパーティクル状態(t=1の場合)、又は、後述するPF推定部44内のリサンプリングで得られたパーティクル状態(t>1の場合)を更新する。
パーティクル状態評価部444は、パーティクル状態の評価値を次式(15)に従って計算する。
切替器445は、PF推定部44の処理を中断し、PF推定部44の推定結果をUPF推定部45、UPF推定部46、及びUKF 推定部3の初期化データとして、各推定部45〜47の処理を発動するためのスイッチの機能を有する。切替器445は、例えば現在の時刻tは既定の時刻Tth より大きいかを判断する処理を行う。t>Tthの場合は、UPF推定部45、UPF推定部46、及びUPF推定部3の処理に進む。t<=Tthの場合は、PF推定部44のタイマ更新部442の処理に戻る。
現在位置とパーティクルセットのコピー部446は、UPF推定部45、UPF推定部46、及びUKF推定部47に渡すためのデータとパーティクルセットをコピーして例えば記憶部16に格納する。現在位置推定値取得部447は、式(16)〜式(18)に従って最大評価値を持っているパーティクルの状態をこのPF推定部44の推定結果とする。
UPF推定部45は、パーティクル状態初期化部451、タイマ更新部452、パーティクル状態予測部453、パーティクル状態評価部454、現在位置推定値取得部455、パーティクル状態更新部456、及びリサンプリング部457を有する。
UPF推定部45は、初期化、予測、及び更新ステップを実行し、静的地図を用いた自己位置推定を行う。つまり、UPF推定部45は、2種類の地図(静的地図及びランドマーク地図)と3種類のセンサ観測データ(視覚ランドマークデータ、最新のLRF計測データ、及び非静的近辺地図453Aのデータ)を入力として、ロボット1の自己位置をUPFを用いて推定する。
タイマ更新部452は、UPF推定部45の時刻tをインクリメントして、t=t+1に設定する。パーティクル状態予測部453は、移動履歴情報保存メモリ411からロボット1の相対移動系列Ut+1とその不確かさMt+1を取得して、UPF推定部45への移動制御系列とする。パーティクルの予測更新と共に後述する方法により、パーティクル状態初期化部451で初期化したパーティクル状態(t=1の場合)、又は、後述するリサンプリング部457で得られたパーティクル状態(t>1の場合)を更新する。
パーティクル状態評価部454は、パーティクル状態の評価値を次式(19)に従って計算する。
現在位置推定値取得部455は、式(20)〜式(22)に従って最大評価値を持っているパーティクルの状態をこのUPF推定部45の推定結果とする。UPF推定部45の推測結果は、UKF推定部47に入力される観測情報として出力される。
UPF推定部46は、パーティクル状態初期化部461、タイマ更新部462、パーティクル状態予測部463、パーティクル状態評価及び地図更新部464、現在位置推定値取得部455、パーティクル状態更新部466、及びリサンプリング部467を有する。
UPF推定部46は、初期化、予測、及び更新ステップを実行し、非静的地図の作成と自己位置推定を行う。つまり、UPF推定部45は、2種類の地図(静的地図421及びランドマーク地図422)と3種類のセンサ観測データ(視覚ランドマークデータ、最新のLRF計測データ、及び非静的近辺地図423Aのデータ)を入力として、ロボット1の自己位置をUPFを用いて推定する。
タイマ更新更新部462は、UPF推定部46の時刻tをt=t+1にインクリメントする。パーティクル状態予測部463は、移動履歴情報保存メモリ411からロボット1の相対移動系列Ut+1とその不確かさMt+1を取得して、UPF推定部46への移動制御系列とする。パーティクルの予測更新と共に後述する方法により、パーティクル状態初期化部461で初期化したパーティクル状態(t=1の場合)、又は、後述するリサンプリング部467で得られたパーティクル状態(t>1の場合)を更新する。
パーティクル状態更新部465は、UKF推定部47からの推定結果をUPF推定部46の観測情報とし、各パーティクルの状態をパーティクルの観測更新と共に後述する方法により更新する。
現在位置推定値取得部466は、式(25)〜式(28)に従って最大評価値を持っているパーティクルの状態をこのUPF推定部46の推定結果とする。UPF推定部46の推測結果は、UKF推定部47に入力される観測情報として出力される。
UKF推定部47は、初期化部471、タイマ更新部472、状態予測部473、状態更新部474、統合後の位置情報取得部475、及び位置情報の配分器476を有する。
UKF推定部47は、初期化、予測、及び更新ステップを実行し、統合処理推定を行う。つまり、UKF推定部47は、UPF推定部45とUPF推定部46の推定結果を観測情報として統合し、UKFを用いてロボット1の位置姿勢状態をより高い精度で推定する。更に、UKF推定部47は、その推定結果を各UPF推定部45,46にフィードバックして反映させ、各UPF推定部45,46のパーティクル状態を更新する。以下の説明では、UKF推定部47の状態を(3x0, 3Σ0)で表す。
初期化部471は、現在位置とパーティクルセットのコピー部446で記憶部16に格納されたPF推定部44で推定したロボット1の位置姿勢及び共分散行列を用いてUKF推定部47の状態(3x0, 3Σ0)を設定する。タイマ更新部472は、UKF推定部47の時刻tをt=t+1にインクリメントする。
状態予測部473は、式(29), (30)で表される、UPF推定部45とUPF推定部46の推定結果(1xt+1, 1Σt+1)、(2xt+1, 2Σt+1)を観測情報として取得する。
又、状態予測部473は、式(31), (32)で表される拡張行列を形成する。
更に、状態予測部473は、式(31), (32)で表される拡張行列から式(33), (34)で表されるシグマポイント(sigma point)を生成する。シグマポイントの数はL3である。
状態予測部473は、シグマポイントを用いて式(35), (36)で表される状態を予測する。
状態更新部474は、式(37)〜式(39)に従ってシグマポイントを用いて観測情報を予測する。
又、状態更新部474は、式(40)〜式(43)に従って状態を更新する。
統合後の位置情報取得部475は、UPF推定部45,46の推定結果を統合し、統合後の位置姿勢状態は次式(44)で表す平均値と共分散行列3Σt+1で表される。統合後の位置姿勢状態は、モータ133を含むロボット1の走行制御系に出力されて走行制御系を制御する。
位置情報の配分器476は、式(45), (46)に従ってUKF推定部47の推定結果をUPF推定部45,46にフィードバックされる観測情報に変換する。
次に、ロボット1の運動モデルの計算式について説明する。時刻t+1にUPF推定部45,46に移動制御系列Ut+1を入力した場合、ロボット1の位置姿勢状態は式(47)〜式(49)で表せる。式(47)〜式(49)は、便宜上式(52)のようにまとめて表すことができる。
UPF45,46におけるパーティクルの予測更新は、時刻tにおけるn番目のパーティクルの状態をnxt、不確かさをnΣtとして、以下のステップST1,ST2に従って行える。
ステップST1では、拡張行列の計算アンセンテッド(Unscented)変換処理中に、シグマポイントの計算を行う。この例では、パーティクルの状態は式(53)に従って計算でき、拡張行列は式(54)に従って計算できる。
ステップST2では、 シグマポイントによるロボット1の位置姿勢状態の予測拡張行列から式(55)に基づいてシグマポイントを求め、式(52)で表される運動モデルgに代入して、シグマポイントの状態を式(56)のように更新する。次に、各シグマポイントの重み付き平均と共分散行列を式(57),式(58)に基づいて求める。最後に、式(57),式(58) に基づいて得られた結果を平均と分散行列としたガウス分布からランダムサンプルを抽出する。抽出されたランダムサンプルは、パーティクルの新しい状態となる。
パーティクルの観測更新は、以下のように行うことができる。UPF推定部55,56の観測情報をzt+1で表すと、zt+1=3xt+1となる。ここで、3xt+1は式(44)で表されるUKF推定部57の推定結果である。又、観測の不確かさをQt+1で表すと、Qt+1=3Σt+1となる。そこで、UPF推定部55,56に観測情報が入力された場合には、式(60)〜式(62)によってパーティクルの状態を更新する。
次に、図6に示す処理モジュール(又は、処理部)が実行するステップ(又は、手順)S1〜S72について説明する。
ステップS1では、PF推定部44のパーティクル状態初期化部441が開始コマンドに応答してパーティクル状態を初期化し、時間tをt=0に設定する。ステップS2では、PF推定部44のタイマ更新部442がタイマの時間tをt=t+1に更新する。この場合のタイマ更新部442の入力データは、現在の時間t及びパーティクルセットの初期状態を含む。
ステップS3では、センサ管理部43のLRFデータ保持部431が距離センサ142から計測データ(以下、LRFデータとも言う)を読み込み、記憶部16の計測データ記憶領域に格納する。ステップS4では、LRFデータ保持部431により記憶部16の計測データ記憶領域に格納されたLRFデータをPF推定部44が参照可能(又は、アクセス可能)な記憶部16内の観測記憶領域(図6中、「観測」なるブロックで示す)にコピーする。ステップS5では、センサ管理部43の画像データ保持部432がカメラ141から画像データを取得し、記憶部16内の画像データ記憶領域に格納する。この場合の画像データ保持部432の入力データは、画像、ステレオビジョンで計測したレンジデータ、ランドマーク特徴点の位置と特徴ベクトル等の画像データを含む。ステップS6では、センサ管理部43のランドマーク計測部433が画像データ保持部432が取得して記憶部16の画像データ記憶領域に格納した画像データから1つ以上のランドマークを検出して、各ランドマークの3次元位置を計測する。この場合のランドマーク計測部433の入力データは、画像データ保持部432が取得した画像データを含む。
ステップS7では、ランドマーク計測部433が計測したランドマークの情報をPF推定部44が参照可能な記憶部16内の観測記憶領域にコピーする。ステップS8では、地図管理部42の静的地図421からロボット1の静的近辺地図データを抽出してPF推定部44が参照可能な記憶部16内の地図記憶領域(図6中、「地図」なるブロックで示す)にコピーする。この場合の地図管理部42の入力データは、静的近辺地図データ(又は、静的レイアウト地図データ)を含む。ステップS9では、地図管理部42のランドマーク地図422からロボット1の静的近辺地図データを抽出してPF推定部44が参照可能な記憶部16内の地図記憶領域にコピーする。この場合の地図管理部42の入力データは、ランドマーク地図データを含む。
尚、観測記憶領域及び地図記憶領域は、夫々PF推定部44内に設けられた記憶領域であっても良い。
ステップS10では、移動履歴取得部41の移動履歴情報保存メモリ411に保存されているロボット1の移動履歴情報をPF推定部44内のパーティクル状態予測部443に入力する。この場合のパーティクル状態予測部443の入力データは、ロボット1の移動履歴を示す移動軌跡(点列)を含む。ステップS11では、パーティクル予測部443が時刻t+1におけるPF推定部44のパーティクル状態を予測する。この場合のパーティクル予測部443の入力データは、パーティクルの状態を含む。
ステップS12では、PF推定部44のパーティクル状態評価部444が記憶部16内の地図記憶領域に格納された地図データを入力する。ステップS13では、PF推定部44のパーティクル情報評価部444が記憶部16内の観測記憶領域に格納された観測データを入力する。この場合のパーティクル情報評価部444の入力データは、LRFデータ、ランドマークデータ等の観測データを含む。ステップS14では、PF推定部44のパーティクル状態評価部444が各パーティクルの状態を評価する。この場合のパーティクル状態評価部444の入力データは、パーティクル状態予測部443で予測されたパーティクルセットの状態を含む。
ステップS15では、PF推定部44の現在位置推定値取得部447が評価されたパーティクルの確率密度分布からPF推定部44の推定結果を記憶部16の推定値記憶領域にコピーする。この場合の現在位置推定値取得部447の入力データは、パーティクル状態とその評価値、推定した現在の位置と姿勢の情報を含む。ステップS16では、PF推定部44の切替器445が現在の時刻tが既定時刻より前であるか否かを判定し、規定時刻より前であり判定結果がYESであると処理はステップS2へ戻る。この場合の切替器445の入力データは、パーティクル状態とその評価値を含む。又、ステップS17では、切替器445が現在の時刻tが既定時刻以降であり判定結果がNOであると、処理はステップS18へ進む。この場合の切替器445の入力データも、パーティクル状態とその評価値を含む。
ステップS18では、UPF推定部45のパーティクル状態初期化部451がパーティクル状態を初期化して時間tをt=0に設定する。この場合のパーティクル状態初期化部451の入力データは、パーティクル状態とその評価値を含む。ステップS19では、UPF推定部46のパーティクル状態初期化部461がパーティクル状態を初期化して時間tをt=0に設定する。この場合のパーティクル状態初期化部461の入力データは、パーティクル状態とその評価値を含む。ステップS20では、UKF推定部47のパーティクル状態初期化部471がパーティクル状態を初期化し、時間tをt=0に設定する。この場合のパーティクル状態初期化部471の入力データは、パーティクル状態とその評価値を含む。
ステップS21では、UPF推定部45のタイマ更新部452がタイマを更新してt=t+1とする。この場合のタイマ更新部452の入力データは、現在の時刻tを含む。ステップS22では、UPF推定部46のタイマ更新部462がタイマを更新してt=t+1とする。この場合のタイマ更新部462の入力データは、現在の時刻tを含む。ステップS23では、UKF推定部47のタイマ更新部472がタイマを更新してt=t+1とする。この場合のタイマ更新部472の入力データは、現在の時刻tを含む。
ステップS24では、センサ管理部43のLRFデータ保持部431が距離センサ142からLRFデータを読み込み、記憶部16の計測データ記憶領域に格納する。ステップS25では、LRFデータ保持部431により記憶部16の計測データ記憶領域に格納されたLRFデータをUPF推定部45が参照可能な記憶部16内の観測記憶領域(図6中、「観測」なるブロックで示す)にコピーする。ステップS26では、LRFデータ保持部431により記憶部16の計測データ記憶領域に格納されたLRFデータをUPF推定部46が参照可能な記憶部16内の観測記憶領域(図6中、「観測」なるブロックで示す)にコピーする。
ステップS27では、センサ管理部43の画像データ保持部432がカメラ141から画像データを取得し、記憶部16内の画像データ記憶領域に格納する。この場合の画像データ保持部432の入力データは、画像、ステレオビジョンで計測したレンジデータ、ランドマーク特徴点の位置と特徴ベクトル等の画像データを含む。ステップS28では、センサ管理部43のランドマーク計測部433が画像データ保持部432が取得して記憶部16の画像データ記憶領域に格納した画像データから1つ以上のランドマークを検出して、各ランドマークの3次元位置を計測する。この場合のランドマーク計測部433の入力データは、画像データ保持部432が取得した画像データを含む。ステップS29では、ランドマーク計測部433が計測したランドマークの情報をUPF推定部45が参照可能な記憶部16内の観測記憶領域にコピーする。この場合に観測記憶領域にコピーされるデータは、計測したランドマークの3次元位置情報を含む。ステップS30では、地図管理部42の静的地図421からロボット1の静的近辺地図データを抽出してPF推定部45が参照可能な記憶部16内の地図記憶領域(図6中、「地図」なるブロックで示す)にコピーする。この場合に地図記憶領域にコピーされるデータは、静的近辺地図データ(又は、静的レイアウト地図データ)を含む。ステップS31では、地図管理部42の静的地図421からロボット1の静的近辺地図データを抽出してPF推定部46が参照可能な記憶部16内の地図記憶領域(図6中、「地図」なるブロックで示す)にコピーする。この場合に地図記憶領域にコピーされるデータは、静的近辺地図データ(又は、静的レイアウト地図データ)を含む。
ステップS32では、地図管理部42のランドマーク地図422からロボット1の静的近辺地図データを抽出してUPF推定部45が参照可能な記憶部16内の地図記憶領域にコピーする。この場合に地図記憶領域にコピーされるデータは、ランドマーク地図データを含む。
ステップS33では、地図管理部42の近周辺地図マネージャ423Cから非静的周辺地図423Bにアクセスする。この場合の近周辺地図マネージャ423Cの入力データは、非静的地図423のレイアウト地図データを含む。ステップS34では近周辺地図マネージャ423Cがロボット1の近辺エリアに関する非静的近辺地図423Aを取得する。この場合の近周辺地図マネージャ423Cの入力データは、非静的地図423のレイアウト地図データを含む。
ステップS35では、非静的近辺地図423をUPF推定部45が参照可能な記憶部16内の観測記憶領域(図6中、「観測」なるブロックで示す)にコピーする。この場合に観測記憶領域にコピーされるデータは、センサの計測データを含む。ステップS36では、非静的近辺地図423をUPF推定部46が参照可能な記憶部16内の地図記憶領域(図6中、「地図」なるブロックで示す)にコピーする。この場合に地図記憶領域にコピーされるデータは、地図データを含む。
ステップS37では、移動履歴情報保存メモリ411に保存されているロボット1の移動履歴情報をUPF推定部45のパーティクル状態予測部453に入力する。この場合のパーティクル状態予測部453の入力データは、ロボット1の移動軌跡(離散時間で計測した点列の座標)を含む。ステップS38では、移動履歴情報保存メモリ411に保存されているロボット1の移動履歴情報をUPF推定部46のパーティクル状態予測部463に入力する。この場合のパーティクル状態予測部463の入力データは、ロボット1の移動軌跡(離散時間で計測した点列の座標)を含む。ステップS39では、移動履歴情報保存メモリ411に保存されているロボット1の移動履歴情報をUKF推定部47の状態予測部473に入力する。この場合の状態予測部473の入力データは、ロボット1の移動軌跡(離散時間で計測した点列の座標)を含む。
ステップS40では、パーティクル状態予測部453が時刻t+1におけるUPF推定部45のパーティクル状態を予測する。この場合のパーティクル状態予測部453の入力データは、ロボット1の移動軌跡(離散時間で計測した点列の座標)を含む。ステップS41では、パーティクル状態評価部454が新しいパーティクルの状態をUPF推定部45が参照可能な記憶部16内のパーティクル状態記憶領域(図6中、「パーティクル状態」なるブロックで示す)に保存する。
ステップS42では、UPF推定部45のパーティクル状態評価部454が記憶部16内の地図記憶領域から地図データを入力する。ステップS43では、UPF推定部45のパーティクル状態評価部454が記憶部16内の観測記憶領域から観測データ情報を入力する。ステップS44では、パーティクル状態評価部454がUPF推定部45の各パーティクルの状態を評価する。ステップS45では、現在位置推定値取得部455が評価されたパーティクルの確率密度分布からUPF推定部45の推定結果を記憶部16内の推定値記憶領域にコピーする。この場合に推定値記憶領域にコピーされるデータは、パーティクル状態とその評価値、推定した現在位置と姿勢の情報を含む。
ステップS46では、パーティクル状態予測部463が時刻t+1におけるUPF推定部46のパーティクル状態を予測する。ステップS47では、パーティクル状態予測部463が新しいパーティクルの状態をUPF推定部46が参照可能な記憶部16内のパーティクル状態記憶領域(図6中、「パーティクル状態」なるブロックで示す)に保存する。
ステップS48では、UPF推定部46のパーティクル状態評価及び地図更新部464が記憶部16内の地図記憶領域から地図データを入力する。ステップS49では、UPF推定部46のパーティクル状態評価及び地図更新部464が記憶部16内の観測記憶領域から観測データを入力する。ステップS50では、パーティクル状態評価及び地図更新部464がUPF推定部46の各パーティクルの状態を評価する。
ステップS51では、現在位置推定値取得部466が評価されたパーティクルの確率密度分布からUPF推定部46の推定結果を記憶部16内の推定値記憶領域にコピーする。この場合に推定値記憶領域にコピーされるデータは、パーティクル状態とその評価値、推定した現在の位置と姿勢の情報を含む。ステップS52では、UPF推定部46のパーティクル状態評価及び地図更新部464で更新した地図データを地図管理部42内の非静的近辺地図423Aにコピーする。
ステップS53では、近周辺地図マネージャ423Cが非静的近辺地図423Aにアクセスする。ステップS54では、アクセスした非静的近辺地図423Aにロボット1の周辺エリア内となる地図データがあれば、近周辺地図マネージャ423Cがその地図データを非静的周辺地図423Bにアップロードする。
ステップS55では、UPF推定部45の推定結果をUKF推定部47が参照可能な記憶部16内の観測記憶領域にコピーする。この場合に観測記憶領域にコピーされるデータは、推定したロボット1の現在位置と姿勢の情報を含む。ステップS56では、UPF推定部46の推定結果をUKF推定部47が参照可能な記憶部16内の観測記憶領域にコピーする。この場合に観測記憶領域にコピーされるデータは、推定したロボット1の現在位置と姿勢の情報を含む。
ステップS57では、UKF推定部47の状態予測部473が記憶部16内の観測記憶領域から観測データを入力する。この場合の状態予測部473の入力データは、センサの計測データを含む。ステップS58では、状態予測部473が運動モデルを用いてUKF推定部47の状態を予測する。この場合の状態予測部473の入力データは、ロボット1の現在位置と姿勢に情報を含む。ステップS59では、状態更新部474が観測モデルを用いてUKF推定部47の状態を更新する。この場合の状態更新部474の入力データは、ロボット1の現在位置と姿勢の情報を含む。ステップS60では、統合後の位置情報取得部475が更新したUKF推定部47の状態を記憶部16内の統合後記憶領域にコピーする。この場合の統合後の位置情報取得部475の入力データは、ロボット1の現在位置と姿勢の情報を含む。ステップS61では、統合後の位置情報取得部475がUKF推定部47の推定結果をモータ133を含む走行制御系に出力する。この場合のモータ133を含む走行制御系の入力データは、ロボット1の現在位置と姿勢の情報を含む。
ステップS62では、統合後の位置情報取得部475がUKF推定部47の推定結果を位置情報配分器476にコピーする。この場合の位置情報分配器476の入力データは、ロボット1の現在位置と姿勢の情報を含む。ステップS63では、位置情報分配器476がUKF推定部47の推定結果の情報をUFK推定部47内のタイマ更新部473に配分する。この場合のタイマ更新部473の入力データは、ロボット1の現在位置と姿勢の情報を含む。
ステップS64では、位置情報分配器476がUKF推定部47の推定結果の情報をUPF推定部45に配分するため、UPF推定部45が参照可能な記憶部16内の観測記憶領域にコピーする。ステップS65では、位置情報分配器476がUKF推定部47の推定結果の情報をUPF推定部46へ推定結果の情報を配分するため、UPF推定部46が参照可能な記憶部16内の観測記憶領域にコピーする。
ステップS66では、UPF推定部45のパーティクル状態更新部456が記憶部16内の観測記憶領域から観測データを入力する。この場合のパーティクル状態更新部456の入力データは、ロボット1の現在位置と姿勢の情報を含む。ステップS67では、パーティクル状態更新部456がUPF推定部45の各パーティクルの状態を更新する。ステップS68では、リサンプリング部457が状態が更新されたUPF推定部45のパーティクルの離散的確率密度分布(Discrete Probability Density Distribution)からリサンプリングを行い、新しいパーティクルセットを生成する。
ステップS69では、UPF推定部46のパーティクル状態更新部465が記憶部16内の観測記憶領域から観測データを入力する。この場合のパーティクル状態更新部465の入力データは、ロボット1の現在位置と姿勢の情報を含む。ステップS70では、パーティクル状態更新部465がUPF推定部46の各パーティクルの状態を更新する。ステップS71では、リサンプリング部467が状態が更新されたUPF推定部46のパーティクルの離散的確率密度分布からリサンプリングを行い、新しいパーティクルセットを生成する。
ステップS72では、リサンプリング部457によるリサンプリング後に処理をS21へ戻し、タイマ更新部452によるタイマの更新により次の処理サイクルへ進む。同様に、ステップS73では、リサンプリング部467によるリサンプリング後に処理をS22へ戻し、タイマ更新部462によるタイマの更新により次の処理サイクルへ進む。
図6に示す例によれば、最新の地図を高速に作成することができる。静的地図が無い場合に、ある計算機とテストデータに基づいて地図を自動作成したところ、地図の自動作成時間は約1.6秒であった。一方、同じ計算機と同じテストデータに基づいて、図6に示す処理モジュールを用いた場合、地図の自動作成時間は約0.2秒であった。
又、図6に示す例によれば、自己位置推定の安定性を向上することができる。図7は、自己位置推定の安定性を説明する図である。図7中、レイアウト変更エリアLAではロボットを例えばショッピングセンタに導入後にレイアウトが変更されており、実線で示す推定移動軌跡MLを経て現在位置PPに到達したものとする。図7(a)は、非静的地図を成しない従来の処理モジュールの一例を搭載した比較例のロボットによる推定移動軌跡を示す。比較例のロボットの場合、レイアウト変更エリアLAの変更に対応できないため、エリアEA内では比較例のロボットの移動軌跡が間違って推定されてしまうことがわかる。これに対し、図7(b)は、図6に示す処理モジュールを搭載されたロボット1による推定移動軌跡を示す。図6に示す処理モジュールを搭載されたロボット1の場合、レイアウト変更エリアLAの変更に対応できるため、エリアCA内のロボット1の移動軌跡が正しく推定されることが確認された。
更に、図6に示す例によれば、レイアウトが変化する環境の中でも安定して自己位置推定を行うことができる。図8は、環境レイアウトに変化をもたらす領域や物体等に関する情報を事前に作成せずに自己位置推定を行う従来の処理モジュールの一例を搭載した比較例のロボットと、同じく環境レイアウトに変化をもたらす領域や物体等に関する情報を事前に作成せずに自己位置推定を行うものの図6に示す処理モジュールを搭載したロボット1の両方をあるショッピングセンタ内で1ヶ月間仮運用し、その間に得られた自己位置推定が成功した頻度の分布を示す図である。図8中、縦軸は自己位置推定の成功率(%)を示し、横軸は日数(日)を示す。ロボット1をショッピングセンタに導入した時点T1以降の前段階では、新しい地図を使って自己位置推定を行うため、比較例のロボットの場合も図6に示す処理モジュールを搭載したロボット1の場合も、自己位置の成功率は略100%であった。一方、レイアウトの変更時T2以後は、実際のレイアウトが局所的に事前地図と一致しないため、比較例のロボットによる自己位置推定の成功率が低下した。しかし、時点T3で上記時点T1以降の前段階の状態にあり図6に示す処理モジュールを搭載したロボット1をショッピングセンタに導入したところ、ロボット1による自己位置推定の成功率は略100%まで回復することが確認できた。
又、推定部44,45,46では、移動履歴取得部41の移動履歴情報保存メモリ411に保存されているロボット1の移動履歴情報(移動軌跡(点列)を含む)をパーティクルの状態予測に用いるので、パーティクルの状態予測を高精度に行うことができる。
PF推定部44は、静的地図との整合性をある程度取ったパーティクルのみを保存するので、最初に作成した非静的地図と静的地図の地図データが一致する度合いを比較的高く設定することができる。
UPF推定部44,45は、実センサの計測データを時間的に累積処理して得られた非静的地図を観測情報として静的地図と照合するので、環境の局所的変化による自己位置推定への影響を抑制することができる。又、非静的地図と静的地図との照合により、自動的に作成した非静的地図と静的地図の地図データが一致する度合いを比較的高く設定することができる。
更に、UKF推定部47は、統合した推定結果を各UPF推定部45,46へフィードバックするので、各UPF推定部45,46の自己位置推定精度を向上させることができ、静的地図と非静的地図との整合性を取ってUKF推定部47自体の自己位置推定精度を更に向上することができる。
次に、図2に示す自己位置と地図の推定タスクST12が用いる他のアルゴリズムを、図9と共により詳細に説明する。図9は、自己位置と地図の推定タスクST12が用いるアルゴリズムの他の例を詳細に説明する図である。図9中、図6と同一部分には同一符号を付し、その説明は省略する。
図9に示す例では、UKFを利用したUKF推定部47の代わりに、信念度(Belief)の統合を利用した信念度統合部247が設けられている。信念度統合部247は、UPF推定部45とUPF推定部46で推定したパーティクルの離散的な確率密度分布に基づいて計算した信念度のセットを統合して、推論によって真値を推定する。
UPF推定部45−1は、状態の離散的確率分布取得部455−1、期待値計算部458−1、及び確率分布修正部458−2を有する。サンプル区間信念度生成部1451、上下限確率分布関数生成部1452、上下限確率分布逆関数算出部1453、及び逆関数離散化部1454の少なくとも一部は、UPF推定部45−1内に設けられていても、信念度統合部247内に設けられていても良い。後述するように、UPF推定部45−1の期待値計算部458−1は、期待値をモータ133を含むロボット1の走行制御系に出力する。
UPF推定部46−1は、状態の離散的確率分布取得部466−1、期待値計算部468−1、及び確率分布修正部468−2を有する。サンプル区間信念度生成部1461、上下限確率分布関数生成部1462、上下限確率分布逆関数算出部1463、及び逆関数離散化部1464の少なくとも一部は、UPF推定部46−1内に設けられていても、信念度統合部247内に設けられていても良い。
信念度統合部247は、離散的上下限確率分布関数統合部2471、統合した上下限確率分布逆関数算出部2472、統合した上下限確率分布逆関数離散化部2473、及び送信データ抽出部2474を有する。
図9に示す処理モジュール(又は、処理部)が実行するステップ(又は、手順)S101〜S183について説明する。
図9において、ステップS101〜S119,S121,S122,S124〜S138,S140〜S144,S146〜S150は、図6に示すステップS1〜S19,S21,S22,S24〜S38,S40〜S44,S46〜S50と同様である。図9に示す例では、図6に示すステップS20,S23,S39が含まれない。
図9に示すステップS145では、UPF推定部45−1の状態の離散的確率分布取得部455−1が評価されたパーティクルの状態の離散的確率密度分布を記憶部16内の確率分布記憶領域にコピーする。この場合に確率分布記憶領域にコピーされるデータは、パーティクル状態とその評価値と確率密度分布、推定した現在の位置と姿勢の情報を含む。又、ステップS151では、UPF推定部46−1の状態の離散的確率分布取得部466−1が評価されたパーティクルの状態の離散的確率密度分布を記憶部16内の確率分布記憶領域にコピーする。この場合に確率分布記憶領域にコピーされるデータは、パーティクル状態とその評価値と確率密度分布、推定した現在の位置と姿勢の情報を含む。
ステップS152では、UPF推定部46のパーティクル状態評価及び地図更新部464で更新した地図データを地図管理部42内の非静的近辺地図423Aにコピーする。ステップS153では、近周辺地図マネージャ423Cが非静的近辺地図423Aにアクセスする。ステップS154では、アクセスした非静的近辺地図423Aにロボット1の周辺エリア内となる地図データがあれば、近周辺地図マネージャ423Cがその地図データを非静的周辺地図423Bにアップロードする。
ステップS155では、サンプル区間信念度生成部1451が記憶部16内の確率分布領域に格納された離散的確率密度分布に基づいてサンプル区間信念度を生成する。パーティクルの状態区間の信念度(Belief)の形成について説明すると、パーティクルフィルタで推定を行う際、観測対象の状態の確率密度分布は一般的に図10(a)のようなベイジアン(Bayesian)理論に従った方式で表せるので、尤度(Likelihood)をw、状態をxで示すと、確率密度の信念度は{x;w}で表すことができる。このように、1つの状態量に対して1つの評価値である尤度が付与される。図10は、区間信念度を説明する図である。
この例では、デンプスター・シェーファー(Dempster-Shafer)理論にもとづいて、ベイジアン方式の表現の信念度を状態量の区間の信念度に置き換える。即ち、1つの状態量の区間(以下、状態区間と言う)に対して1つの評価値である尤度を付与する。図10(b)は各パーティクルの状態区間の信念度の表現形式を説明する図であり、状態区間の信念度は、パーティクル状態の不確かさσを考慮して{[a,b];w}で表される。ここで、a=x−σ,b=x+σである。パーティクルの状態値は状態空間上では1つのポイントのみを示しており、ポイントの近辺の状態は無視されている。区間信念度を導入することによって、特定のポイントだけを考慮するのではなく、そのポイントの近隣領域(又は、集合)をも同時に考慮することができる。
つまり、確率密度分布{x;w}は状態空間上の1つのポイント(x)だけに対しての尤度を示しており、ポイントの近傍の状態は無視される。これに対し、区間信念度{[a,b];w}を導入することにより、特定のポイントxだけを考慮するのではなく、ポイントの近傍領域をも同時に考慮することができる。これにより、後述する上下限確率密度関数を利用して、他のパーティクルフィルタから得られた上下限確率密度関数との統合が可能となる。
ステップS157では、上下限確率分布逆関数生成部1453が上下限確率分布関数生成部1452で生成された上下限確率関数の逆関数を生成する。ステップS156で生成した上下限確率関数は離散的であるため、生成した逆関数も離散的である。
ステップS158では、逆関数離散化部1454が上下限確率関数の逆関数を以下のように離散化する。
ステップS159では、逆関数離散化部1454が送信データ{D}を信念度統合部247に送信する。
ステップS170では、UPF推定部45−1の確率分布修正部458−2が観測記憶領域にコピーされたデータを修正する。具体的には、先ず、パーティクルフィルタが推定した離散的確率密度分布{x;w}を取得して区間信念度{[a,b];w}に書き直す。ただし、a=x−σ,b=x+σである。次に、以下に示す式に従って重みwを修正し、修正後の離散確率密度分布を{x;π}とする。
ステップS171では、UPF推定部45−1の期待値計算部458−1が修正後の確率密度分布{x;π}を用いて、重み平均を計算して真値の推定値、即ち、期待値とする。ステップS172では、期待値計算部458−1が期待値をモータ133を含むロボット1の走行制御系に出力して走行制御系を制御する。
ステップS173では、期待値計算部458−1が期待値をパーティクル状態更新部456に出力する。ステップS174では、パーティクル状態更新部456が期待値に基づいてパーティクルの状態を新しいパーティクルの状態に更新する。ステップS175では、リサンプリング部457が新しいパーティクルの状態と重みπに基づいて新しいパーティクルのリサンプリングを行う。
ステップS176では、送信データ抽出部2474が送信記憶領域にコピーされたデータをUPF推定部46−1がアクセス可能な観測記憶領域にコピーする。ステップS177では、送信データ抽出部2474が送信記憶領域にコピーされたデータをUPF推定部45−1がアクセス可能な観測記憶領域にコピーする。
ステップS178では、UPF推定部46−1の確率分布修正部468−2が観測記憶領域にコピーされたデータを修正する。具体的には、先ず、パーティクルフィルタが推定した離散的確率密度分布{x;w}を取得して区間信念度{[a,b];w}に書き直す。ただし、a=x−σ,b=x+σである。上記ステップS170と共に説明した式に従って重みwを修正し、修正後の離散確率密度分布を{x;π}とする。ステップS179では、UPF推定部46−1の期待値計算部468−1が修正後の確率密度分布{x;π}を用いて、重み平均を計算して真値の推定値、即ち、期待値とする。
ステップS179では、期待値計算部468−1が期待値をパーティクル状態更新部456に出力する。ステップS180では、パーティクル状態更新部465が期待値に基づいてパーティクルの状態を新しいパーティクルの状態に更新する。ステップS181では、リサンプリング部467が新しいパーティクルの状態と重みπに基づいて新しいパーティクルのリサンプリングを行う。
ステップS182では、リサンプリング部457によるリサンプリング後に処理をS121へ戻し、UPF推定部45−1のタイマ更新部452によるタイマの更新により次の処理サイクルへ進む。同様に、ステップS183では、リサンプリング部467によるリサンプリング後に処理をS22へ戻し、UPF推定部46−1のタイマ更新部462によるタイマの更新により次の処理サイクルへ進む。
図9に示す例によれば、図6に示す例の場合と同様の効果を得ることができる。又、信念度統合部247では、離散的な確率密度分布から生成した信念度を統合しているため、図6に示す例と比較すると、非ガウス分布の状態に対してもより精度の高い推定結果が得られる。
図11は、ロボットの遠隔操作を説明する図である。ロボット1は、図11に示すように、サーバ(又はセンタ)901と通信可能な構成を有し、サーバ901からサービスの提供タイミング等を遠隔操作により制御されるものであっても良い。サーバ901は、メモリ902、通信部903、及びCPU904を有する。図11では、説明の便宜上、ロボット1内の通信部801以外の部分の図示は省略するが、通信部801は例えば図1に示すナビゲーションCPU11及び走行制御CPU12の少なくとも一方に接続されている。
上記の各例では、ロボット1が自己位置推定に用いる各種データがロボット1内の記憶部16に格納されているものとしたが、少なくともデータの一部をロボット1の制御及び管理を司るサーバ901内の記憶部902に格納しても良い。この場合、ロボット1の通信部801は、例えば無線ネットワーク911を介してサーバ901の通信部903と通信することで、自己位置推定に用いる各種データを取得すれば良い。サーバ901内の記憶部902に格納可能なデータには、観測記憶領域、地図記憶領域、近辺地図記憶領域、周辺地図記憶領域、計測データ記憶領域、画像データ記憶領域、推定値記憶領域、パーティクル状態記憶領域、統合後記憶領域、確率分布記憶領域、及び送信記憶領域等の記憶部16に格納されるデータが含まれる。又、図6又は図9に示す地図管理部43の機能の少なくとも一部をサーバ901側で実現するようにしても良い。自己位置推定に用いる各種データの少なくとも一部をサーバ901側に格納することで、ロボット1内で必要となる記憶容量を減らし、ロボット1内で必要となるデータ管理の負荷を低減可能となる。
開示の位置推定方法、位置推定装置及びプログラムの適用は、上記実施例の如き自律移動型のロボットに限定されるものではなく、各種自律移動型の装置や、携帯型の電子装置、例えば携帯電話、携帯端末、携帯型パーソナルコンピュータ等にも適用可能であることは言うまでもない。
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータによる電子装置の位置推定方法であって、
前記コンピュータが、前記電子装置の移動履歴を取得して記憶部に一時的に格納する移動履歴取得工程と、
前記コンピュータが、前記電子装置の移動履歴と、外的センサの観測情報と、前記電子装置が導入される環境の静的地図のデータと、前記電子装置の移動中に実時間で作成された非静的地図のデータに基づいて、前記電子装置の自己位置と前記電子装置の周囲の周辺地図を推定する推定工程
を含むことを特徴とする、位置推定方法。
(付記2)
前記推定工程は、前記コンピュータに含まれる第1の推定部により前記コンピュータが、
移動開始コマンドに応答して、前記外的センサの観測情報、前記静的地図、及び前記電子装置の移動履歴を入力して逐時に前記電子装置の位置と姿勢を推定して更新する初期段階での自己位置推定処理のループを開始する初期化工程と、
前記コンピュータに含まれ前記初期化工程では待機状態にある第2〜第4の推定部を起動する条件を判断し、前記条件が満たされると前記初期段階での自己位置推定処理を終了して、前記電子装置の位置のサンプルセットを含む推定結果を前記第2〜第4の推定部に同時に出力する切替工程を含むことを特徴とする、付記1記載の位置推定方法。
(付記3)
第1の推定部では、前記コンピュータが、前記外的センサの観測情報及び前記静的地図に基づいて前記電子装置の移動中に実時間で非静的地図を作成し、
前記第2の推定部では、前記コンピュータが、前記静的地図、前記移動履歴、及び前記非静的地図に基づいて前記電子装置の自己位置を推定し、
前記第3の推定部では、前記コンピュータが、前記移動履歴、前記静的地図、及び前記非静的地図を入力して前記外的センサの観測情報に基づいて前記電子装置の自己位置を推定して前記非静的地図を更新し、
前記第4の推定部では、前記コンピュータが、前記第2及び第3の推定部から得られる推定された前記電子装置の現在位置と姿勢を統合した統合処理結果を出力することを特徴とする、付記2記載の位置推定方法。
(付記4)
前記第2及び第3の推定部の各々は、前記第4の推定部が出力した前記統合処理結果のフィードバックを受けると、前記統合処理結果に基づいて各自の自己位置の推定を更新することを特徴とする、付記3記載の位置推定方法。
(付記5)
前記第1の推定部はパーティクルフィルタ(PF)を用いた推定を行い、
前記第2及び第3の推定部は夫々無香粒子フィルタ(UPF)を用いた推定を行い、
前記第4の推定部は無香カルマンフィルタ(UKF)を用いた推定を行うことを特徴とする、付記2乃至4のいずれか1項記載の位置推定方法。
(付記6)
前記コンピュータが、前記電子装置の自己位置と前記周辺地図に基づいて、設定された経路に従って前記電子装置が目的地まで移動するための目標経路を生成して出力する経路計画工程
を更に含むことを特徴とする、付記1乃至5のいずれか1項記載の位置推定方法。
(付記7)
外的センサの観測情報及び電子装置が導入される環境の静的地図に基づいて前記電子装置の移動中に実時間で非静的地図を作成する第1の推定部と、
前記静的地図、前記電子装置の移動履歴、及び前記非静的地図に基づいて前記電子装置の自己位置を推定する第2の推定部と、
前記移動履歴、前記静的地図、及び前記非静的地図を入力して前記外的センサの観測情報に基づいて前記電子装置の自己位置を推定して前記非静的地図を更新する第3の推定部と、
前記第2及び第3の推定部から得られる推定された前記電子装置の現在位置と姿勢を統合した統合処理結果を出力する前記第4の推定部
を備えたことを特徴とする、位置推定装置。
(付記8)
前記第1の推定部は、
移動開始コマンドに応答して、前記外的センサの観測情報、前記静的地図、及び前記電子装置の移動履歴を入力して逐時に前記電子装置の位置と姿勢を推定して更新する初期段階での自己位置推定処理のループを開始し、
前記初期化工程では待機状態にある前記第2〜第4の推定部を起動する条件を判断し、前記条件が満たされると前記初期段階での自己位置推定処理を終了して、前記電子装置の位置のサンプルセットを含む推定結果を前記第2〜第4の推定部に同時に出力することを特徴とする、付記7記載の位置推定装置。
(付記9)
前記第2及び第3の推定部の各々は、前記第4の推定部が出力した前記統合処理結果のフィードバックを受けると、前記統合処理結果に基づいて各自の自己位置の推定を更新することを特徴とする、付記8記載の位置推定装置。
(付記10)
前記第1の推定部はパーティクルフィルタ(PF)を有し、
前記第2及び第3の推定部は夫々無香粒子フィルタ(UPF)を有し、
前記第4の推定部は無香カルマンフィルタ(UKF)を有することを特徴とする、付記7乃至9のいずれか1項記載の位置推定装置。
(付記11)
コンピュータに電子装置の位置を推定させるプログラムであって、
前記電子装置の移動履歴を取得して記憶部に一時的に格納する移動履歴取得手順と、
前記電子装置の移動履歴と、外的センサの観測情報と、前記電子装置が導入される環境の静的地図のデータと、前記電子装置の移動中に実時間で作成された非静的地図のデータに基づいて、前記電子装置の自己位置と前記電子装置の周囲の周辺地図を推定する推定手順
を前記コンピュータに実行させることを特徴とする、プログラム。
(付記12)
前記推定手順は、前記プログラムで実現される第1の推定部により前記コンピュータが、
移動開始コマンドに応答して、前記外的センサの観測情報、前記静的地図、及び前記電子装置の移動履歴を入力して逐時に前記電子装置の位置と姿勢を推定して更新する初期段階での自己位置推定処理のループを開始する初期化手順と、
前記プログラムで実現され前記初期化手順では待機状態にある第2〜第4の推定部を起動する条件を判断し、前記条件が満たされると前記初期段階での自己位置推定処理を終了して、前記電子装置の位置のサンプルセットを含む推定結果を前記第2〜第4の推定部に同時に出力する切替手順
を実行することを特徴とする、付記11記載のプログラム。
(付記13)
第1の推定部により、前記コンピュータが、前記外的センサの観測情報及び前記静的地図に基づいて前記電子装置の移動中に実時間で非静的地図を作成し、
前記第2の推定部により、前記コンピュータが、前記静的地図、前記移動履歴、及び前記非静的地図に基づいて前記電子装置の自己位置を推定し、
前記第3の推定部により、前記コンピュータが、前記移動履歴、前記静的地図、及び前記非静的地図を入力して前記外的センサの観測情報に基づいて前記電子装置の自己位置を推定して前記非静的地図を更新し、
前記第4の推定部により、前記コンピュータが、前記第2及び第3の推定部から得られる推定された前記電子装置の現在位置と姿勢を統合した統合処理結果を出力することを特徴とする、付記12記載のプログラム。
(付記14)
前記第2及び第3の推定部の各々は、前記第4の推定部が出力した前記統合処理結果のフィードバックを受けると、前記統合処理結果に基づいて各自の自己位置の推定を更新することを特徴とする、付記13記載のプログラム。
(付記15)
前記第1の推定部はパーティクルフィルタ(PF)を用いた推定を行い、
前記第2及び第3の推定部は夫々無香粒子フィルタ(UPF)を用いた推定を行い、
前記第4の推定部は無香カルマンフィルタ(UKF)を用いた推定を行うことを特徴とする、付記12乃至14のいずれか1項記載のプログラム。
(付記16)
前記電子装置の自己位置と前記周辺地図に基づいて、設定された経路に従って前記電子装置が目的地まで移動するための目標経路を生成して出力する経路計画手順
を更に前記コンピュータに実行させることを特徴とする、付記11乃至15のいずれか1項記載のプログラム。
以上、開示の位置推定方法、位置推定装置及びプログラムを実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
1 ロボット
11 ナビゲーションCPU
12 走行制御CPU
13 台車
14 センサ部
15 入出力部
16 記憶部
20,44 PF推定部
21,22,45,45−1,46,46−1 UPF推定部
23,47 UKF推定部
247 信念度統合部

Claims (4)

  1. コンピュータに電子装置の位置を推定させるプログラムであって、
    内的センサの観測情報と、外的センサの観測情報と、前記電子装置が導入される環境の静的地図のデータとに基づいて推定した前記電子装置の位置と姿勢を含む移動履歴を取得して記憶部に一時的に格納する移動履歴取得手順と、
    前記移動履歴及び前記外的センサの観測情報に基づき前記電子装置の移動中に実時間で作成された非静的地図のデータと、前記静的地図のデータとの照合に基づいて、前記電子装置の自己位置と前記電子装置の周囲の周辺地図を推定する推定手順
    を前記コンピュータに実行させ
    前記推定手順は、前記プログラムで実現される第1の推定部により前記コンピュータが、
    移動開始コマンドに応答して、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴を入力して逐時に前記電子装置の位置と姿勢を推定して更新する初期段階での自己位置推定処理のループを開始する初期化手順と、
    前記プログラムで実現され前記初期化手順では待機状態にある第2、第3、及び第4の推定部を起動する条件を判断し、前記条件が満たされると前記初期段階での前記自己位置推定処理を終了して、前記電子装置の位置のサンプルセットを含む推定結果を前記第2、第3、及び第4の推定部に同時に出力する切替手順と
    を実行し、
    前記第1の推定部により、前記コンピュータが、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴に基づいて前記電子装置の移動中に実時間で前記非静的地図のデータを作成し、
    前記第2の推定部により、前記コンピュータが、前記静的地図のデータ、前記移動履歴、及び前記非静的地図のデータを入力として、前記非静的地図のデータと前記外的センサの観測情報とを合わせた観測情報と、前記静的地図のデータとに基づいて前記電子装置の自己位置を推定し、
    前記第3の推定部により、前記コンピュータが、前記移動履歴、前記静的地図のデータ、及び前記非静的地図のデータを入力として、前記外的センサの観測情報と、前記静的地図のデータと前記非静的地図のデータとを合わせた地図のデータとに基づいて前記電子装置の自己位置を推定して前記非静的地図のデータを更新し、
    前記第4の推定部により、前記コンピュータが、前記第2の推定部から得られる推定された前記自己位置及び前記第3の推定部から得られる推定された前記自己位置に基づき、前記電子装置の現在位置と姿勢を統合した統合処理結果を出力し、
    前記第2及び第3の推定部の各々は、前記第4の推定部が出力した前記統合処理結果のフィードバックを受けると、前記統合処理結果に基づいて各自の自己位置の推定を更新することを特徴とする、プログラム。
  2. 前記第1の推定部はパーティクルフィルタ(PF)を用いた推定を行い、
    前記第2及び第3の推定部は夫々無香粒子フィルタ(UPF)を用いた推定を行い、
    前記第4の推定部は無香カルマンフィルタ(UKF)を用いた推定を行うことを特徴とする、請求項記載のプログラム。
  3. 外的センサの観測情報、電子装置が導入される環境の静的地図のデータ、及び前記電子装置の移動履歴に基づいて前記電子装置の移動中に実時間で非静的地図のデータを作成する第1の推定部と、
    前記移動履歴は、内的センサの観測情報と、前記外的センサの観測情報と、前記静的地図のデータとに基づいて推定した前記電子装置の位置と姿勢を含み、
    前記静的地図のデータ、前記移動履歴、及び前記非静的地図のデータを入力として、前記非静的地図のデータと前記外的センサの観測情報とを合わせた観測情報と、前記静的地図のデータとに基づいて前記電子装置の自己位置を推定する第2の推定部と、
    前記移動履歴、前記静的地図のデータ、及び前記非静的地図のデータを入力して前記外的センサの観測情報と、前記静的地図のデータと前記非静的地図のデータとを合わせた地図のデータとに基づいて前記電子装置の自己位置を推定して前記非静的地図のデータを更新する第3の推定部と、
    前記第2推定部から得られる推定された前記自己位置及び前記第3の推定部から得られる前記自己位置に基づき、前記電子装置の現在位置と姿勢を統合した統合処理結果を出力する前記第4の推定部
    を備え、
    前記第1の推定部は、
    移動開始コマンドに応答して、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴を入力して逐時に前記電子装置の位置と姿勢を推定して更新する初期段階での自己位置推定処理のループを開始し、
    前記初期段階での前記自己位置推定処理のループの開始時には待機状態にある前記第2、第3、及び第4の推定部を起動する条件を判断し、前記条件が満たされると前記初期段階での前記自己位置推定処理を終了して、前記電子装置の位置のサンプルセットを含む推定結果を前記第2、第3、及び第4の推定部に同時に出力し、
    前記第2及び第3の推定部の各々は、前記第4の推定部が出力した前記統合処理結果のフィードバックを受けると、前記統合処理結果に基づいて各自の自己位置の推定を更新することを特徴とする、位置推定装置。
  4. コンピュータによる電子装置の位置推定方法であって、
    前記コンピュータが、内的センサの観測情報と、外的センサの観測情報と、前記電子装置が導入される環境の静的地図のデータとに基づいて推定した前記電子装置の位置と姿勢を含む移動履歴を取得して記憶部に一時的に格納する移動履歴取得工程と、
    前記コンピュータが、前記移動履歴及び前記外的センサの観測情報に基づき前記電子装置の移動中に実時間で作成された非静的地図のデータと、前記静的地図のデータとの照合に基づいて、前記電子装置の自己位置と前記電子装置の周囲の周辺地図を推定する推定工程
    を含み
    前記推定工程は、前記コンピュータに含まれる第1の推定部により前記コンピュータが、
    移動開始コマンドに応答して、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴を入力して逐時に前記電子装置の位置と姿勢を推定して更新する初期段階での自己位置推定処理のループを開始する初期化工程と、
    前記コンピュータに含まれ前記初期化工程では待機状態にある第2、第3、及び第4の推定部を起動する条件を判断し、前記条件が満たされると前記初期段階での前記自己位置推定処理を終了して、前記電子装置の位置のサンプルセットを含む推定結果を前記第2、第3、及び第4の推定部に同時に出力する切替工程と
    を実行し、
    前記第1の推定部により、前記コンピュータが、前記外的センサの観測情報、前記静的地図のデータ、及び前記移動履歴に基づいて前記電子装置の移動中に実時間で前記非静的地図のデータを作成し、
    前記第2の推定部により、前記コンピュータが、前記静的地図のデータ、前記移動履歴、及び前記非静的地図のデータを入力として、前記非静的地図のデータと前記外的センサの観測情報とを合わせた観測情報と、前記静的地図のデータとに基づいて前記電子装置の自己位置を推定し、
    前記第3の推定部により、前記コンピュータが、前記移動履歴、前記静的地図のデータ、及び前記非静的地図のデータを入力として、前記外的センサの観測情報と、前記静的地図のデータと前記非静的地図のデータとを合わせた地図のデータとに基づいて前記電子装置の自己位置を推定して前記非静的地図のデータを更新し、
    前記第4の推定部により、前記コンピュータが、前記第2の推定部から得られる推定された前記自己位置及び前記第3の推定部から得られる推定された前記自己位置に基づき、前記電子装置の現在位置と姿勢を統合した統合処理結果を出力し、
    前記第2及び第3の推定部の各々は、前記第4の推定部が出力した前記統合処理結果のフィードバックを受けると、前記統合処理結果に基づいて各自の自己位置の推定を更新することを特徴とする、位置推定方法。
JP2010250319A 2010-11-08 2010-11-08 位置推定方法、位置推定装置及びプログラム Expired - Fee Related JP5793851B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010250319A JP5793851B2 (ja) 2010-11-08 2010-11-08 位置推定方法、位置推定装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010250319A JP5793851B2 (ja) 2010-11-08 2010-11-08 位置推定方法、位置推定装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2012103819A JP2012103819A (ja) 2012-05-31
JP5793851B2 true JP5793851B2 (ja) 2015-10-14

Family

ID=46394162

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010250319A Expired - Fee Related JP5793851B2 (ja) 2010-11-08 2010-11-08 位置推定方法、位置推定装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5793851B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019525342A (ja) * 2016-08-05 2019-09-05 ロブアート ゲーエムベーハーROBART GmbH 自律移動ロボッを制御する方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3734394A1 (en) * 2015-05-23 2020-11-04 SZ DJI Technology Co., Ltd. Sensor fusion using inertial and image sensors
JP6320542B2 (ja) 2015-05-23 2018-05-09 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd 初期構成を有する複数のセンサを有する可動物体に対する1または複数の外部パラメータを推定する方法、システム、及びプログラム
JP6775263B2 (ja) * 2016-12-02 2020-10-28 深▲せん▼前海達闥云端智能科技有限公司Cloudminds (Shenzhen) Robotics Systems Co.,Ltd. 測位方法及び装置
WO2019098002A1 (ja) * 2017-11-20 2019-05-23 ソニー株式会社 情報処理装置、情報処理方法、プログラム、及び移動体
JP6800918B2 (ja) * 2018-07-12 2020-12-16 エスゼット ディージェイアイ テクノロジー カンパニー リミテッドSz Dji Technology Co.,Ltd エラー回復を実行するための方法、システム、及びプログラム
JP2021056764A (ja) * 2019-09-30 2021-04-08 日本電産株式会社 移動体
WO2022186354A1 (ja) * 2021-03-03 2022-09-09 株式会社Preferred Networks 情報処理装置および自律移動ロボット
KR102478451B1 (ko) * 2021-05-04 2022-12-19 국방과학연구소 연산 장치 및 이를 이용한 시스템의 상태 추정 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009193240A (ja) * 2008-02-13 2009-08-27 Toyota Motor Corp 移動ロボット及び環境地図の生成方法
KR101503903B1 (ko) * 2008-09-16 2015-03-19 삼성전자 주식회사 이동 로봇의 지도 구성 장치 및 방법
JP5298741B2 (ja) * 2008-10-01 2013-09-25 村田機械株式会社 自律移動装置
JP2011209203A (ja) * 2010-03-30 2011-10-20 Sony Corp 自己位置推定装置および自己位置推定方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019525342A (ja) * 2016-08-05 2019-09-05 ロブアート ゲーエムベーハーROBART GmbH 自律移動ロボッを制御する方法
JP7073336B2 (ja) 2016-08-05 2022-05-23 ロブアート ゲーエムベーハー 自律移動ロボットを制御する方法

Also Published As

Publication number Publication date
JP2012103819A (ja) 2012-05-31

Similar Documents

Publication Publication Date Title
JP5793851B2 (ja) 位置推定方法、位置推定装置及びプログラム
CN111771141B (zh) 自动驾驶车辆中使用3d cnn网络进行解决方案推断的lidar定位
CN111771135B (zh) 自动驾驶车辆中使用rnn和lstm进行时间平滑的lidar定位
CN111971574B (zh) 用于自动驾驶车辆的lidar定位的基于深度学习的特征提取
Wurm et al. Bridging the gap between feature-and grid-based SLAM
JP6855524B2 (ja) 低速特徴からのメトリック表現の教師なし学習
Xu et al. Novel hybrid of LS-SVM and Kalman filter for GPS/INS integration
JP2013534616A (ja) 画像センサおよび運動または位置センサから生じたデータを融合するための方法およびシステム
CN110118560A (zh) 一种基于lstm和多传感器融合的室内定位方法
JP2012064131A (ja) 地図生成装置、地図生成方法、移動体の移動方法、及びロボット装置
Malleswaran et al. A novel approach to the integration of GPS and INS using recurrent neural networks with evolutionary optimization techniques
KR20130073476A (ko) 이동 장치 및 이동 장치의 위치 인식 방법
KR102238522B1 (ko) 3차원 공간에 대응되는 맵을 생성하는 차량 및 방법
CN111145251A (zh) 一种机器人及其同步定位与建图方法和计算机存储设备
Guizilini et al. Dynamic hilbert maps: Real-time occupancy predictions in changing environments
Indelman Towards cooperative multi-robot belief space planning in unknown environments
Zhao et al. Improved Rao-Blackwellised particle filter based on randomly weighted particle swarm optimization
Garcia et al. Portable multi-hypothesis Monte Carlo localization for mobile robots
Grzonka et al. Look-ahead proposals for robust grid-based slam with rao-blackwellized particle filters
Revanth et al. Simultaneous localization and mapping of mobile robot using GMapping algorithm
Zhang et al. An adaptive artificial potential function approach for geometric sensing
CN113671942A (zh) 用于控制机器人的设备和方法
Hsu et al. Enhanced simultaneous localization and mapping (ESLAM) for mobile robots
Garzón et al. Pedestrian Trajectory Prediction in Large Infrastructures-A Long-term Approach based on Path Planning
Yoshimura et al. Highlighted map for mobile robot localization and its generation based on reinforcement learning

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140730

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150501

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150515

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150714

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150727

R150 Certificate of patent or registration of utility model

Ref document number: 5793851

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees