(57)【要約】      （修正有）【課題】信頼性が高く、精度を向上させることのできる自律移動装置の制御方法を提供する。【解決手段】自己を移動させる移動手段３と、自己の周囲の環境情報を取得するセンサ２と、移動手段３を制御して自己を移動させる制御装置４と、地図情報を有する記憶部７とを備えた自律移動装置１の制御方法であって、制御装置４は、環境情報および地図情報に基づきパーティクルフィルタを用いて確率的手法により推定された自己位置を示す第一推定情報を第一自己位置推定部５１で算出し、環境情報および地図情報に基づきラインマッチングを用いてマッチング手法により推定された自己位置を示す第二推定情報を第二自己位置推定部５２で算出し、第一推定情報と第二推定情報に基づき統合関数を用いて統合情報を統合部９で算出し、統合情報に基づいて移動手段３を制御して自己を移動させる。【選択図】図１
2016024598.tif 000002
【特許請求の範囲】
【請求項１】
自己を移動させる移動手段と、自己の周囲の環境情報を取得するセンサと、前記移動手段を制御して自己を移動させる制御装置と、地図情報を有する記憶部とを備えた自律移動装置の制御方法であって、
前記制御装置は、前記環境情報および前記地図情報に基づきパーティクルフィルタを用いて確率的手法により推定された自己位置を示す第一推定情報を第一自己位置推定部で算出し、前記環境情報および前記地図情報に基づきラインマッチングを用いてマッチング手法により推定された自己位置を示す第二推定情報を第二自己位置推定部で算出し、前記第一推定情報と前記第二推定情報に基づき統合関数を用いて統合情報を統合部で算出し、前記統合情報に基づいて前記移動手段を制御して自己を移動させる、
自律移動装置の制御方法。
【請求項２】
前記統合関数として、ニューラルネットワークを用いた、
請求項１に記載の自律移動装置の制御方法。
【請求項３】
前記ニューラルネットワークとして、シグモイド関数を持つニューロン素子を２層重ねた３層ニューラルネットワークを用いた、
請求項２に記載の自律移動装置の制御方法。
【請求項４】
前記第一推定情報における前記ニューラルネットワークの入力値として、前記第一推定情報のＸ座標値、Ｙ座標値、向きを示す値、共分散値を用い、前記第二推定情報における前記ニューラルネットワークの入力値として、前記第二推定情報のＸ座標値、Ｙ座標値、向きを示す値、マッチング率を用いる、
請求項２または３に記載の自律移動装置の制御方法。
【請求項５】
前記統合関数は、前記第一推定情報および前記第二推定情報を入力値として学習器による学習により算出される、
請求項１〜４いずれか１項に記載の自律移動装置の制御方法。
【請求項６】
前記地図情報に設定された複数のエリア毎にニューラルネットワークによる学習を行う、
請求項５に記載の自律移動装置の制御方法。
【請求項７】
前記学習器による学習は、シミュレータ環境内で仮想的な自律移動装置の移動動作により導出して行う、
請求項５または６に記載の自律移動装置の制御方法。
【請求項８】
前記学習器による学習は、実環境内において実動作時よりも低速で自己を動作させながら目的地へ移動する移動動作を実行して行う、
請求項５または６に記載の自律移動装置の制御方法。
【請求項９】
前記学習器による学習は、実環境内に一時的に配置されたランドマークを用いて行う、
請求項５または６に記載の自律移動装置の制御方法。
【請求項１０】
前記パーティクルフィルタを用いた確率的手法は、リサンプリング処理の後、得られたパーティクルの集合に対してノイズを付加して新たなパーティクルの集合を取得する処理を含み、前記第一推定情報と前記第二推定情報の差分が一定範囲以内である場合、前記ノイズの大きさを小さくする、
請求項１〜９のいずれか１項に記載の自律移動装置の制御方法。
【請求項１１】
前記学習器は、前記パーティクルフィルタを用いて算出されたパーティクルの分布が収束していない状態では、前記第二推定情報のみを入力値として用いる、
請求項５または６に記載の自律移動装置の制御方法。
【請求項１２】
前記第一自己位置推定部は、前記パーティクルフィルタを用いて算出されたパーティクルの分布が収束していない状態において前記パーティクルが複数のクラスターを形成している場合、前記第二推定情報に最も近い前記クラスター内のパーティクルを用いて前記第一推定情報を算出する、
請求項５または６に記載の自律移動装置の制御方法。
【請求項１３】
前記学習器は、前記ラインセグメントマッチングにより算出したマッチング率が高い場合は前記第二推定情報を学習結果として用い、前記マッチング率が低いとともに前記パーティクルフィルタを用いて算出されたパーティクルの分散値が小さい場合は前記第一推定情報を学習結果として用いる、
請求項５または６に記載の自律移動装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、目的地までの自律移動を行う自律移動装置に関するものである。
【背景技術】
【０００２】
従来の自律移動装置としては、自己位置を推定するための推定手段を２つ備え、一方の推定手段の推定結果に基づき、もう一方の推定手段の推定結果を初期化することで、推定された自己位置の信頼性、つまり、推定された自己位置と実際の自己位置との一致度合いを向上させる方法が考案されていた（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１６６８２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述した特許文献１に示す方法は、２つの推定手段の推定結果に大きな差異がある場合に、より信頼性の高い一方の手段の結果によって、もう一方の手段を初期化することで信頼性の向上を実現しているが、２つの推定手段の推定結果の差異が小さい場合、２つの推定手段の推定結果を用いた自己位置の推定精度の向上を実現することができない可能性がある。
【０００５】
そこで本発明は、２つの推定手段の推定結果を用いた場合でも自己位置の推定精度を向上させることのできる自律移動装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の自律移動装置の制御方法は、自己を移動させる移動手段と、自己の周囲の環境情報を取得するセンサと、前記移動手段を制御して自己を移動させる制御装置と、地図情報を有する記憶部とを備えた自律移動装置の制御方法であって、前記制御装置は、前記環境情報および前記地図情報に基づきパーティクルフィルタを用いて確率的手法により推定された自己位置を示す第一推定情報を第一自己位置推定部で算出し、前記環境情報および前記地図情報に基づきラインマッチングを用いてマッチング手法により推定された自己位置を示す第二推定情報を第二自己位置推定部で算出し、前記第一推定情報と前記第二推定情報に基づき統合関数を用いて統合情報を統合部で算出し、前記統合情報に基づいて前記移動手段を制御して自己を移動させることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、２つの推定手段の推定結果を用いた場合でも自己位置の精度の高い位置推定が可能となる。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の実施の形態１に係る自律移動装置の全体構成図である。
【図２】図２は、本発明の実施の形態１に係る自律移動装置の斜視図である。
【図３】図３は、本発明の実施の形態１において第一推定情報を用いて自己位置情報を更新する場合を示す説明図である。
【図４】図４は、本発明の実施の形態１において第二推定情報を算出する場合を示す説明図である。
【図５】図５は、本発明の実施の形態１における統合部による自己位置の推定情報の算出のフローチャートである。
【図６】図６は、本発明の実施の形態１におけるニューラルネットワークの説明図である。
【図７】図７は、本発明の実施の形態１におけるニューラルネットワークの学習のフローチャートである。
【図８】図８は、本発明の実施の形態１における最急降下法の説明図である。
【図９】図９は、本発明の実施の形態１におけるシミュレータを用いた学習データ作成の説明図である。
【図１０】図１０は、本発明の実施の形態４におけるパーティクルフィルタの精度向上方法に関する説明図である。
【図１１】図１１は、本発明の実施の形態４におけるパーティクルフィルタとラインセグメントマッチングの推定位置の差分の説明図である。
【図１２】図１２は、本発明の実施の形態５におけるパーティクルフィルタにおけるクラスター形成の説明図である。
【図１３】図１３は、本発明の実施の形態６における走行経路中を一旦停止など繰り返しながら目的地へ向かう自律移動装置の軌跡の説明図である。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態に係る自律移動装置について、図面を参照して説明する。
【００１０】
（実施の形態１）
自律移動装置１は、図１に示すように、自己の周囲空間に存在する障害物の位置情報などを含む環境情報を取得するセンサ２と、自己を移動させる移動手段３と、センサ２によって取得した環境情報（センサ情報）を基に移動手段３を制御する制御装置４と、これらに電力を供給する電池８とを備える。
【００１１】
本実施の形態の自律移動装置１の基本的な動作としては、走行情報に基づいて更新部が自己位置情報を更新し、逐次更新される自己位置情報に基づいて制御することで、目的地まで移動する。
【００１２】
制御装置４は、記憶部７と、自己位置を示す第一推定情報を推定により算出する第一自己位置推定部５１と、自己位置を示す第二推定情報を推定により算出する第二自己位置推定部５２と、第三自己位置推定部５３と、第一推定情報と第二推定情報などの複数の推定情報を用いて自己位置を示す統合情報を算出する統合部９と、地図情報を用いて目的地までの経路を生成する経路生成部６と、学習データを基に学習する学習器１０と、統合情報などを用いて記憶部７に記憶されている自己位置情報を更新する更新部１１を備える。記憶部７は、制御パラメータや地図情報、自己位置情報、取得した環境情報（センサ情報）、走行情報等を記憶する。第一自己位置推定部５１は、センサ２からの環境情報と地図情報を用いて、第一推定情報を算出する。自己位置を示す第三推定情報を算出する第三自己位置推定部５３は、統合部９を学習する際に必要に応じて自己位置を推定する。
【００１３】
ここで、自己位置を示す推定情報とは、自律移動装置１が記憶部７に記憶している自己の位置を示す自己位置情報を、更新部１１が更新するための情報である。また、自己位置情報の更新とは、統合情報などに含まれる自己位置情報と対応する情報を用いて、記憶部７に記憶されていた自己位置情報を新しい情報に置き換えることである。
【００１４】
センサ２は、例えば、図２に示すように、自律移動装置１の走行面Ｐに平行な計測平面２Ｐ内に存在する障害物の情報を取得する。
【００１５】
センサ２としては、例えば、平面内をスキャンするレーザレーダを挙示することができる。センサ２（レーザレーダ）は、進行方向前方のスキャン平面である半円形の計測平面２Ｐにおいて、予め定められた一定角度範囲内でレーザビームを揺動させ、障害物までの距離や障害物までの方向（角度）を取得することができるセンサである。センサ２は、例えば、測定可能距離の上限が３０ｍで、レーザビームを振る範囲が自律移動装置１の進行方向を中心に左右±９０゜の角度範囲であり、当該角度範囲内において０．５゜毎に測距する。センサ２は、例えば、一定の制御周期のもとで間欠的にスキャンを行って、１回のスキャン毎に取得する距離データ、および、当該距離データを取得したときのスキャン角度の集合を、環境情報（センサ情報）として記憶部７に記憶させる。環境情報は、センサ２により所定の角度毎に検出された障害物の距離に基づき得られた障害物（本実施の形態においては廊下の壁）の情報である。なお、環境情報には、その他の情報、例えば各スキャンを区別する区別情報（例えば時刻情報）などが含まれていても良い。
【００１６】
なお、上記のセンサ構成、センサの例は、本実施の形態を実現する一つの例であって、これらに限定されるわけではなく、種々のセンサを用いることができる。
【００１７】
移動手段３は、例えば電池８で駆動するモータと駆動輪などで構成される。このモータには、モータの回転数や回転速度を計測するエンコーダが走行情報取得手段３１として設けられている。制御装置４は、走行情報取得手段３１としてのエンコーダの出力によって所定時間間隔毎に自律移動装置１の移動距離や移動方向などが含まれる走行情報を取得することができる。得られた走行情報は、記憶部７に記憶される。記憶された走行情報は、適宜、デッドレコニング（推定航法）などにおいて参照される。
【００１８】
走行情報は、基準位置を基準とした座標系において相対位置や相対的な移動方向を含む情報である。基準位置は、例えば、自律移動装置１が移動を開始したときの位置である。相対位置は、基準位置に対する相対的な位置を示す。
【００１９】
自己位置情報は、記憶部７に記憶された走行情報を用いたデッドレコニングにより逐次更新される。さらに、自己位置情報は、後述の統合部９により算出された統合情報によっても更新される。デッドレコニングは、例えば、５０ｍｓｅｃ程度の短いサンプリング周期で実施され、更新部１１は、走行情報に基づき自己位置情報を例えば５０ｍｓｅｃの間隔で更新する。統合部９による統合情報による自己位置情報の更新は、例えば、１０００ｍｓｅｃ程度の長いサンプリング周期で実施され、更新部１１は、統合情報に基づき自己位置情報を例えば１０００ｍｓｅｃの間隔で更新する。つまり、更新部１１において、統合情報に基づく自己位置情報の更新は、走行情報に基づく更新の間隔よりも長い間隔である。
【００２０】
第一自己位置推定部５１は、環境情報（センサ情報）と地図情報を用いて、確率的手法に基づき自己位置を示す第一推定情報を、推定により算出する。ここで、確率的手法は、例えばベイズ理論を用いた手法である。本実施の形態では、第一自己位置推定部５１での確率的手法として、パーティクル（粒子）フィルタを用いる。パーティクルフィルタを用いた第一推定情報の算出においては、第一推定情報は、パーティクルと呼ばれるサンプル集合が分布した状態で表現される。これらパーティクルの推定、更新、リサンプリング等により、第一推定情報の算出が所定の時間間隔で行われる。すなわち、第一自己位置推定部５１は、パーティクルフィルタを用いて自律移動装置１の自己の位置を推定し、第一推定情報を算出する。
【００２１】
図３は、本発明の実施の形態において、第一自己位置推定部により算出された第一推定情報を用いて自己位置情報を更新する場合を示す説明図である。図３に示す更新前の自律移動装置１の自己位置情報１０１は、例えば走行情報に基づいて更新されたものであり、図３中において二点鎖線で示したものである。更新前の自己位置情報１０１における環境情報は、図３中において二点鎖線の直線で示した環境情報２０１として表されるものである。一方、図３中に示される実線の直線は、地図情報に含まれる廊下の壁を示す情報であり、対応地図情報３０１である。このように、第一推定情報による更新前の自己位置情報１０１に基づくセンサ２からの環境情報２０１と、対応地図情報３０１とが乖離している場合が発生する可能性がある。そこで、本実施の形態では、第一自己位置推定部５１によりパーティクルフィルタを用いて複数のパーティクル１０２を算出し、このパーティクル１０２を用いた推定結果を用いることで、図３中において実線で示した第一推定情報１１１を算出して、自己位置の推定精度を向上させている。例えば、第一自己位置推定部５１は、複数のパーティクル１０２の平均値を用いてＸ座標値、Ｙ座標値、向きを示す値、共分散の値等を含む第一推定情報を算出する。
【００２２】
なお、第一推定情報は、更新前の自己位置情報との差分などであってもよい。
【００２３】
第二自己位置推定部５２は、センサ２からの環境情報と地図情報を用いて、第一自己位置推定部５１とは異なる手法に基づいて第二推定情報を算出する。本実施の形態の第二自己位置推定部５２は、センサ２から得られる環境情報から抽出されたラインセグメントを用い、この抽出されたラインセグメントを地図情報に含まれるラインセグメントとラインマッチングを行うことで、第二推定情報を算出する。すなわち、本実施の形態におけるラインマッチングとは、センサ２からの環境情報から取得したラインと、地図情報に含まれるラインとを比較マッチングする、マッチング手法の一例である。
【００２４】
図４は、本発明の実施の形態において、第二自己位置推定部により第二推定情報を算出する場合を示す説明図である。図４に示す更新前の自律移動装置１の自己位置情報１０１は、例えば走行情報に基づいて更新されたものであり、図４中において二点鎖線で示したものである。図４中には、更新前の自己位置情報１０１において抽出されたラインセグメント４０１と、地図情報から抽出された対応ラインセグメント５０１とを表している。第二自己位置推定部５２は、図４中に二点鎖線の線分で示された環境情報によるラインセグメント４０１と、地図情報から抽出された対応ラインセグメント５０１とを比較し、ラインセグメント４０１と対応ラインセグメント５０１とが一定の距離、一定の角度以内であればマッチングさせ、第二推定情報を算出する。第二推定情報は、Ｘ座標値、Ｙ座標値、向きを示す値、マッチング率を含む情報である。マッチング率は、ラインセグメント４０１と対応ラインセグメント５０１とがどの程度一致しているかを示す値である。第二自己位置推定部５２によるラインマッチングを用いることで、図４中において実線で示した第二推定情報１５１を算出して、自己位置の推定精度を向上させている。
【００２５】
なお、第二推定情報は、更新前の自己位置情報との差分などであってもかまわない。
【００２６】
図５を用いて、本発明の実施の形態における第一推定情報と第二推定情報を用いた統合部９による統合情報の算出方法を説明する。統合部９による統合情報の算出は、前述のように、デッドレコニングに基づく自己位置情報の更新周期よりも長い周期で実施され、得られた統合情報により、自己位置情報は更新される。
【００２７】
制御装置４は、自律移動装置１が移動中、比較的長いサンプリング周期ごとに以下の処理を実施する。
【００２８】
はじめに、第一自己位置推定部５１により第一推定情報を算出する（Ａ１）。次に、第二自己位置推定部５２により第二推定情報を算出する（Ａ２）。次に、統合部９は、第一推定情報と第二推定情報を入力値として、学習器１０によって学習された学習データを用いて算出された統合関数を用いて推定される自己位置を示す統合情報を算出する（Ａ３）。更新部１１は、統合部９によって得られた統合情報によって、自律移動装置１の現在の自己位置を示す自己位置情報を更新する。
【００２９】
本実施の形態においては、統合関数として、ニューラルネットワークを用いている。ニューラルネットワークは、周知のように、学習能力を持ち、非線形関数で表現することができ、制御、予測、診断など、多くの分野で用いられている。
【００３０】
図６を用いて、本実施の形態におけるニューラルネットワークの構造、入力値、出力値について説明する。ニューラルネットワークには多くの構造が考案されているが、本実施の形態においては、シグモイド関数を持つニューロン素子を２層（中間層、出力層）重ねた３層ニューラルネットワークを用いる。図６に示すように、入力値としては、第一推定情報と第二推定情報とに含まれる値を用いる。出力値は統合情報である。中間層のユニット数は、例えば１０個としている。出力層のユニット数は、出力値と同じであり、出力値を、自律移動装置１のＸ座標値、Ｙ座標値、向きを示す値とした場合、３つとなる。各層の間は重みによって結合されており、これらの重みは、後述の学習器１０によるニューラルネットワークの学習によって求められる。第一推定情報における入力値としては、第一推定情報に含まれるＸ座標値、Ｙ座標値、向きを示す値、共分散値を用い、第二推定情報における入力値としては、第二推定情報に含まれるＸ座標値、Ｙ座標値、向きを示す値、マッチング率を用いる。
【００３１】
なお、第一自己位置推定部５１による第一推定情報の算出において、パーティクルフィルタによる計算結果が収束していない場合には、統合部９による統合情報の算出を実施せず、第二推定情報に基づき自己位置情報を更新することもできる。これは、パーティクルフィルタはパーティクルを分布させた後に、パーティクルが一箇所に集合する（収束する）までに時間を要し、この間は、パーティクルフィルタによる結果には大きな誤差が含まれている可能性があることを防ぐためである。パーティクルフィルタによる計算が収束しているかどうかの判断は、第一推定情報の分散が一定値以下である、あるいは、第一推定情報の最小値と最大値の差が一定値以下（例えば、Ｘ座標値の差分が２ｍ以内かつ、Ｙ座標値の差分が２ｍ以内）であるかによって判断する。
【００３２】
次に、ニューラルネットワークを学習器１０によって学習する方法について述べる。ニューラルネットワークを備えた統合部９により自己位置情報を更新するための精度の高い統合情報を算出するためには、ニューラルネットワークの学習が必要となる。学習は、各層間の重みを決定するための計算を意味する。重みとは、図６に示したように、各層の間の各ユニットを関連づけるパラメータのことである。学習には、入力値と出力値の組み合わせの学習データを用いる。本実施の形態においては、シミュレータにより取得したデータを用いてニューラルネットワークを一旦学習させ、その後、自律移動装置１を実際の環境で走行させて取得したデータを用いてニューラルネットワークを再度学習させる方法を用いている。
【００３３】
図７は、上記のニューラルネットワークの学習のフローチャートを示している。はじめに、後述のシミュレータを用いて、学習に必要なデータを取得し、そのデータを学習データとしてニューラルネットワークに学習させる（Ｂ１）。一般的に、ニューラルネットワークを学習させるときの、重みの初期値、学習係数、などに関して、最適なパラメータは存在せず、ニューラルネットワークを適用するモデルに対して試行錯誤的に設定する必要があるといわれている。本実施の形態においても、シミュレータを用いた学習においては、重みの初期値、学習係数などを試行錯誤的に設定し、学習の誤差（入力値と出力値の誤差）が一定の範囲内に入るまで、学習パラメータを変えつつ、学習を行うものとする。次に、自律移動装置１の動作により取得したデータを用いてニューラルネットワークを学習する（Ｂ２）。ここで、シミュレータを用いているのは、一般的に動作テストを実施することができる時間は短い場合が多いため、自律移動装置１を実際に走行させて学習データを取得して学習する時間が短くなり、取得されるデータ量が不足する場合があるための対策である。具体的には、本実施の形態では、実機である自律移動装置１の動作により取得したデータを用いたニューラルネットワークの学習において、シミュレータを用いて学習した際の結果であるニューラルネットワークの重みを初期値とし、学習パラメータもその際と同様の値を用いて、初期値にシミュレータを用いて学習した結果を用いる。これにより、学習の時間を短縮することが可能であり、実機動作により取得したデータを用いたニューラルネットワークの学習は、実際の走行現場に合わせて、重みを微調整することができ、自律移動装置１の導入時に、短時間で、かつ、精度の高い学習結果を生成することが可能となる。
【００３４】
学習データを用いたニューラルネットワークの学習方法について説明する。上記記載の階層型のニューラルネットワークでは、学習データを用いてバックプロパゲーション法（誤差逆伝播法）により学習し、内部の結合状態（重み）を調整して決定した重み係数を記憶部７に記憶する。バックプロパゲーション法による学習アルゴリズムの中核は、最急降下法による入力値と出力値の誤差最小化である。最急降下法による最小解の探索の問題点としては、大域的最小解を得ることができず、学習結果が局所最適解の取得に陥ってしまうことがあげられる。図８は、重みに対する入力値と出力値の誤差の関係を示す例である。重みの初期値設定や、学習係数の設定によっては、図８で示す、大局的な最適解が得られず、局所的な最適解を得る結果となり、入力値と出力値の誤差が大きく残ってしまう可能性がある。そこで、本実施の形態では、シミュレータにより取得したデータを用いてニューラルネットワークを試行錯誤的に学習させることで、局所的な最適解ではなく、大局的な最適解を取得することを可能としている。
【００３５】
なお、本実施の形態では、シミュレータにより取得したデータを用いてニューラルネットワークを一旦学習させた後、自律移動装置１を実際の環境で走行させて取得したデータを用いてニューラルネットワークを再度学習させる方法について述べたが、自律移動装置１の走行環境に複雑な形状の障害物が少ない場合など、シミュレータにより取得したデータによる学習と、自律移動装置１を実際の環境で走行させて取得したデータを用いた学習との間に大きな差異がない場合などは、どちらか一方の学習のみとすることも可能である。
【００３６】
シミュレータの動作概要を、図９を用いて説明する。シミュレータ６００は、自律移動装置１の移動を計算機上の仮想環境でシミュレートするものである。シミュレータ６００による動作は、自律移動シミュレータ６０１と仮想自律移動装置６０２から構成される。仮想自律移動装置６０２は、自律移動装置１における移動手段３とセンサ２を実際には保有せず、これらの機能を計算機上で自律移動シミュレータ６０１により実現するものである。自律移動シミュレータ６０１は、センサ２、移動手段３、記憶部７の動作をシミュレートする。より具体的には、自律移動シミュレータ６０１は、仮想自律移動装置６０２から取得した移動手段３への指令値と同様の制御値によって、制御パラメータに従って、仮想環境内で自己（仮想的な自律移動装置）を移動させ、仮想環境内での仮想的な自律移動装置１の位置や向きを示す仮想自己位置情報６１１を算出する。自律移動シミュレータ６０１は、この仮想自己位置情報６１１と地図情報６１２から、仮想自己位置情報６１１に対応する位置に自律移動装置１が存在した場合に取得されるセンサ２から得られるであろう仮想環境情報６１３を計算し、この結果を仮想自律移動装置６０２へ送信する。仮想自律移動装置６０２は自律移動シミュレータ６０１から取得した仮想環境情報６１３に基づいて、仮想自己位置情報６１１を算出する。仮想自律移動装置６０２は、上記シミュレートを、目的地へ到着するまで実施することで、仮想環境上で目的地までの移動を行う。この際、一定頻度で、第一自己位置推定部５１によって取得した第一推定情報と、第二自己位置推定部５２によって取得した第二推定情報と、仮想自律移動装置６０２が自律移動シミュレータ６０１から取得した仮想自己位置情報６１１を記憶部に記憶する。そして、これら第一推定情報と第二推定情報を学習データの入力値、仮想自己位置情報６１１を第三推定情報として学習データの出力値とする。これは、仮想自己位置情報６１１は、自律移動シミュレータ６０１の自己の位置に対応しており、自己位置の真値であるという考えに基づく。また、上記の学習データの取得においては、地図情報をさまざまに設定（例えば、仮想障害物６２２を配置）する、あるいは、自律移動シミュレータ６０１と仮想自律移動装置６０２の地図情報にズレを生じさせるなどして、実際の環境で起こりえる状況をさまざまに設定することで、多様な環境に対応できる学習データを取得することができる。
【００３７】
上記のように、シミュレータ６００を用いることで、自律移動装置１を実際に走行させることなく、計算機上で学習データを取得できる。
【００３８】
次に、学習データを自律移動装置１の実環境内での移動動作により取得する方法について説明する。自律移動装置１を実環境で走行させ、目的地に到着するまでに一定頻度で記憶した第一自己位置推定部５１によって算出した第一推定情報と、第二自己位置推定部５２によって算出した第二推定情報を、学習データの入力値とする。学習データの出力値には、第一推定情報、および、第二推定情報よりも信頼性の高い推定情報を用いる。本実施の形態では、第一推定情報と第二推定情報よりも信頼性の高い第三推定情報を取得するために、例えば走行テストを実施している際に実環境内に配置したランドマークを用いて第三推定情報の算出を行っている。第三推定情報は、第三自己位置推定部５３を用いて算出される。実環境に配置するランドマークとしては、例えば、反射板を挙示することができる。反射板を実環境に配置することで、例えば、センサ２としてレーザレーダを用いた場合、反射板の存在する方向および反射板までの距離を示す環境情報を精度よく取得するとともに、反射板に反射されたビームを受光した際のビームの強度などからそのビームが反射板からの反射であることを検知し、他の環境情報から区別することできる。反射板の位置を複数取得できた場合には、三角測量の原理により、自律移動装置１の第三推定情報を精度よく取得できる。そして、自己の位置を示す精度の高い情報として第三推定情報を学習データの出力データとして用い、ニューラルネットワークの学習を実施する。学習が完了した後は、ランドマークはとりはずし、以降、学習済みの統合部９を用いて統合情報を算出する。このようにすることで、自律移動装置１が、実際の環境を走行して取得した環境情報を基に学習を実施することができるため、実際の走行環境に適した学習を実施することができる。
【００３９】
なお、ランドマークの設置は、自己位置情報の更新をより精度よく実施したい場所で多く設置することが望ましい。自己位置情報の更新をより精度よく実施したい場所とは、例えば、自律移動装置１の移動開始地点、到着地点（目的地）、通路が交差するような交差点、ドアが設置されている付近、自律移動装置１が搭乗する可能性のあるエレベータ付近などである。多く設置することとは、例えば、２〜３ｍ間隔で反射板を設置することである。こうすることで、自律移動装置１の到着精度向上、ドア部等の確実な通過が可能となる。また、新しいランドマークからの反射をセンサ２が取得する毎に学習器１０による学習を行う。
【００４０】
以上の実施例では、第一自己位置推定部５１としてパーティクルフィルタを用い、第二自己位置推定部５２としてラインマッチングを用いた手法を説明しているが、条件に応じて、推定手段はこれらに限られず、カルマンフィルタ、ＩＣＰアルゴリズム (Iterative Closest Point Algorithm)など、多種の推定手段を用いることが可能であり、また、これらを３つ以上組み合わせることも可能である。
【００４１】
なお、本実施の形態では、ランドマークを用いた三角測量による方法を第三自己位置推定部５３の第三推定情報の算出方法として説明しているが、第三自己位置推定部５３の第三推定情報の算出方法はこの手段に限定されず、たとえば、環境情報から恒久的に配置される障害物のエッジなどの特徴部分を抽出して、それら特徴部分を用いた三角測量による第三推定情報の算出など、種々の方法を採用することが可能である。
【００４２】
（実施の形態２）
実施の形態２は、統合部９の学習結果の異なる統合関数を複数保有し、統合部９による統合情報の算出に用いる統合関数を自律移動装置１が走行するエリアによって変更できるようにすることが特徴である。これ以外は、前述の実施の形態１と同様であるため、説明は省略する。
【００４３】
本実施の形態は、より具体的には、地図情報を複数のエリアに予め区切り、そのエリアごとで学習データを用意し、エリアごとで前述のニューラルネットワークなどの統合関数の学習を実施し、エリアごとで異なる学習結果の統合関数を作成している。
【００４４】
こうすることで、環境によって異なる学習結果となる可能性のある複数の統合関数を、エリアごとに設定できるため、より精度の高い自己位置情報に基づいた走行が可能となる。エリアの設定は、より簡単には、地図情報を格子状（例えば、５ｍ四方のマス目）に区切り、各格子を一つのエリアとすることで実現できる。
【００４５】
（実施の形態３）
実施の形態３は、シミュレータを用いて取得した学習データを用いたニューラルネットワークの学習と、実際の現場である実環境で自律移動装置１を走行させて取得した学習データを用いたニューラルネットワークの学習において、補正の範囲の制限に差を設けていることを特徴とする。これ以外は、前述の実施の形態１と同様であるため、説明は省略する。
【００４６】
シミュレータを用いて取得した学習データを用いたニューラルネットワークの学習においては、重みの初期値はランダム生成した値などを用いるため、学習結果の重みと、初期値の重みには大きな差が発生する可能性があり、補正の範囲を大きく設定する必要がある。一方、実環境で自律移動装置１を走行させて取得した学習データを用いたニューラルネットワークの学習においては、すでにシミュレータを用いて取得した学習データを用いたニューラルネットワークの学習結果（重み）を初期値として学習を開始するため、重みの値が大きくことなることは望ましくない。そのため、重みの補正の範囲は小さく設定する必要がある。このように、実際の現場を走行させて取得した学習データを用いたニューラルネットワークの学習と、シミュレータを用いて取得した学習データを用いたニューラルネットワークの学習結果との補正の範囲を変えることで、位置精度がを悪化することを防止できる。
【００４７】
（実施の形態４）
実施の形態４は、パーティクルフィルタを用いて第一自己位置推定部５１が算出した第一推定情報と、ラインセグメントマッチングを用いて第二自己位置推定部５２が算出した第二推定情報を、ニューラルネットワークを用いて統合部９が統合して統合情報を算出する方法において、パーティクルフィルタの推定精度を高めることで、統合情報に基づき更新された自己位置情報の精度を高める方法である。これ以外は、前述の実施の形態１と同様であるため、説明は省略する。
【００４８】
パーティクルフィルタは、パーティクルの推定、更新、リサンプリングを実施する過程において、リサンプリング処理の後、得られたパーティクルの集合に対してノイズを付加して新たなパーティクルの集合を取得する処理を含む。そのため、ノイズを大きくするとパーティクルの分布は広がり、ノイズを小さくするとパーティクルの分布は小さくなる。したがって、ノイズを大きくすると、位置推定のロバスト性は上がるが精度が下がり、逆に、ノイズを小さくすると、位置推定のロバスト性は下がるが、精度は上がる。
【００４９】
図１０で（ａ）を付した側は、ノイズを大きく設定した場合のパーティクル１０２の広がり具合を示し、図１０で（ｂ）を付した側は、ノイズを小さく設定した場合のパーティクルの広がり具合を示している。このように、ノイズを小さくすることで、パーティクルの分散値は小さくなる。
【００５０】
図１１を用いて、ノイズを小さく設定する条件を説明する。本実施の形態では、パーティクルフィルタによって算出した第一推定情報７０１と、ラインセグメントマッチングによって算出した第二推定情報７０２の差分が小さいとき、パーティクルフィルタのノイズを小さくする。より具体的には、パーティクルの広がり７０３の中にラインセグメントマッチングの推定結果である第二推定情報７０２が含まれる場合（図１１中（ａ）側の状態）、ノイズを小さくする。一方、パーティクルの広がり７０３の中にラインセグメントマッチングの推定結果である第二推定情報７０２が含まれない場合（図１１中（ｂ）側の状態）、ノイズは変化させないものとする。このように構成することで、パーティクルフィルタを用いた第一推定情報の精度が向上し、結果として、ニューラルネットワークを用いた統合情報の精度を向上させ、統合情報を用いて更新された自己位置情報の精度を向上させることができる。
【００５１】
（実施の形態５）
実施の形態５は、パーティクルフィルタを用いて第一自己位置推定部５１が算出した第一推定情報と、ラインセグメントマッチングを用いて第二自己位置推定部５２が算出した第二推定情報を、ニューラルネットワークを用いて統合部９が統合する統合情報の算出方法において、パーティクルフィルタによるパーティクルの分布が収束していない状態においても、第一推定情報を算出して統合部９による統合情報の算出を実現する方法である。これ以外は、前述の実施の形態１と同様であるため、説明は省略する。
【００５２】
パーティクルフィルタは、前述のように、パーティクルが一箇所に集合する（パーティクルの分布が収束する）までに時間を要する。そして、収束に至っていないパーティクルの分布を用いて算出された第一推定情報には大きな誤差が含まれている可能性がある。一方で、パーティクルの分布が収束するまでの過程において、パーティクルがいくつかの場所に集合し、それぞれクラスターを形成することが見出されている。本実施の形態では、パーティクルの分布が収束していない状態でもクラスターを用いて精度の高い第一推定情報を算出している。パーティクルフィルタは、初期状態では、パーティクル１０２を環境中に分布させることが一般的であり（図１２中（ａ）側に示す）、その後、計算過程で、クラスター８００を形成することがある（図１２中（ｂ）側に示す）。クラスター８００とは、パーティクル１０２が一定距離の中に存在しているパーティクル１０２の集合のことである。この状態において、複数のクラスター８００から第二推定情報７０２に近い（例えば最も近い）クラスター８００を抽出し、抽出されたクラスター８００内のパーティクル１０２に基づいて第一推定情報７１１を算出する。そして得られた第一推定情報７１１と、第二推定情報７０２を用いて、統合部９により統合情報を算出する。
【００５３】
こうすることで、パーティクル１０２の分布が収束に至っていない状態であっても、第二推定情報とクラスターを用いて算出された第一推定情報を用いることで、統合部９による統合情報の算出が可能となり、パーティクルフィルタの結果である第一推定情報を統合部９が利用できない時間を削減することができる。
【００５４】
（実施の形態６）
実施の形態６は、所定の時間帯において、学習データを自律移動装置１の実環境内での移動動作により取得する方法である。これ以外は、前述の実施の形態１と同様のため、説明は省略する。一般的に、日々、自律移動装置１が通常に移動している場合、第一推定情報および第二推定情報より精度のよい第三推定情報を導出することは困難である。そこで、本実施の形態では、学習データ取得時間（例えば、人などが居ない深夜などの時間帯）を設定し、学習データ取得時間に自律移動装置１を移動させて第三推定情報を取得している。
【００５５】
本実施の形態では、第三推定情報を第一自己位置推定部５１と第二自己位置推定部５２とによって算出する。具体的には、学習データ取得時間（人などが居ない時間）において、自律移動装置１を低速で、あるいは、間欠的に一旦停止を繰り返しながら移動させる。そして、低速で連続的に自律移動装置１が移動する場合は、一定時間間隔（または、走行情報に基づく一定距離間隔）で、間欠的に自律移動装置１が移動する場合は、自律移動装置１が停止中にセンサ２により環境情報を取得しておき、当該環境情報に基づき第一自己位置推定部５１により第一推定情報を、第二自己位置推定部５２により第二推定情報を算出する。こうすることで、自律移動装置１が通常速度（例えば、設定される許容最高速度１ｍ／ｓ）で走行するときよりも、環境情報を正確に取得できるようになり、計算時間に余裕を持って第一推定情報や第二推定情報を算出でき、これらに基づいて第三推定情報を導出することができる。図１３は、経路上を所定の間隔に定められた情報取得位置Ｓで環境情報を取得しながら目的地まで移動する様子を示している。一定間隔は、例えば、２ｍや１０秒などである。
【００５６】
なお、このとき、ラインセグメントマッチングのマッチング率が高い場合、ラインセグメントマッチングの結果である第二推定情報を第三推定情報としてもよい。また、ラインセグメントマッチングのマッチング率が低く、パーティクルフィルタの分散値が小さい場合、パーティクルフィルタの第一推定情報を第三推定情報としてもよい。
【００５７】
また、上記実施と同時に、自律移動装置１の移動途中で取得した環境情報に加え、仮想的な障害物の位置情報が反映された仮想的な環境情報を用いて、第一自己位置推定部５１によって第一推定情報を算出し、第二自己位置推定部５２によって第二推定情報を算出し、このデータを学習データの入力値とする。学習データの出力値には、前述の、第三推定情報を用いる。こうすることで、実際には人などの障害物がない環境において、人などの障害物がある状態を模擬した状態での第一推定情報や第二推定情報を算出することができ、より現実の状況に近い学習データを得ることができる。
【００５８】
なお、仮想的な障害物は、あらかじめ設定した障害物の位置の軌跡を用いることもでき、また、自律移動装置１が通常走行した場合に取得した、障害物の位置の軌跡の記録を用いてもよい。
【産業上の利用可能性】
【００５９】
本発明に係る自律移動装置は、例えば、病院内などのように多種多様な障害物が存在する環境で走行する必要がある場合に利用できる。
【符号の説明】
【００６０】
１  自律移動装置
２  センサ
３  移動手段
４  制御装置
６  経路生成部
７  記憶部
８  電池
９  統合部
１０  学習器
１１  更新部
３１  走行情報取得手段
５１  第一自己位置推定部
５２  第二自己位置推定部
５３  第三自己位置推定部
【図１】
2016024598.tif 000003
【図２】
2016024598.tif 000004
【図３】
2016024598.tif 000005
【図４】
2016024598.tif 000006
【図５】
2016024598.tif 000007
【図６】
2016024598.tif 000008
【図７】
2016024598.tif 000009
【図８】
2016024598.tif 000010
【図９】
2016024598.tif 000011
【図１０】
2016024598.tif 000012
【図１１】
2016024598.tif 000013
【図１２】
2016024598.tif 000014
【図１３】
2016024598.tif 000015