(57)【特許請求の範囲】
【請求項１】
走行部を有する移動体の移動量を推定する移動量推定装置であって、
前記移動体の周囲に存在する物体を所定の座標上に投影した投影物体像を形成する複数の位置データを取得する位置データ取得部と、
前記移動体が所定の期間に移動したときの移動前又は移動後の一方において取得した複数の第１位置データにより形成される第１投影物体像と、前記移動前又は前記移動後の他方において取得した複数の第２位置データを前記所定の座標上にて平行移動及び／又は回転移動した複数の移動位置データにより形成される移動投影物体像とが一致したときの前記複数の移動位置データが算出されたときの、前記複数の第２位置データからの前記平行移動の移動量及び／又は前記回転移動の移動量を、前記所定の期間に前記移動体が移動した推定移動量として推定する推定部と、
前記複数の第２位置データから前記複数の移動位置データを算出したときの前記所定の座標上における平行移動及び／又は回転移動の移動量であるデータ移動量を前記走行部により前記移動体が前記所定の期間に走行可能な最大走行移動量に基づいて評価し、適切と評価された前記データ移動量を前記移動体の移動量として採用する評価部と、
を備える移動量推定装置。
【請求項２】
前記評価部は、前記データ移動量が前記最大走行移動量よりも大きくなった場合に、前記データ移動量を不適切と評価する、請求項１に記載の移動量推定装置。
【請求項３】
前記評価部は、前記推定移動量を前記データ移動量として評価し、前記推定移動量を不適切と評価した場合、前記最大走行移動量を前記所定の期間に前記移動体が移動した移動量として採用する、請求項１又は２に記載の移動量推定装置。
【請求項４】
前記移動体は前記走行部を制御する走行制御部をさらに有し、
前記所定の期間において前記走行部を制御する際に前記走行制御部が前記走行部に出力した加速度指令値及び／又は速度指令値に基づいて算出される制御移動量を、前記所定の期間における前記移動体の移動量として推定する制御移動量推定部をさらに備え、
前記評価部は、前記制御移動量を前記最大走行移動量として前記データ移動量を評価する、請求項１〜３のいずれかに記載の移動量推定装置。
【請求項５】
前記評価部は、前記推定移動量を前記データ移動量として評価し、前記推定移動量を不適切と評価した場合、前記制御移動量を前記所定の期間に前記移動体が移動した移動量として採用する、請求項４に記載の移動量推定装置。
【請求項６】
前記走行部は車輪を有し、前記車輪の回転により走行可能となっており、
前記所定の期間における前記車輪の回転量に基づいて算出された車輪移動量を、前記所定の期間における前記移動体の移動量として推定する制御移動量推定部をさらに備え、
前記評価部は、前記車輪移動量を前記最大走行移動量として前記データ移動量を評価する、請求項１〜３のいずれかに記載の移動量推定装置。
【請求項７】
前記評価部は、前記推定移動量を前記データ移動量として評価し、前記推定移動量を不適切と評価した場合、前記車輪移動量を前記所定の期間に前記移動体が移動した移動量として採用する、請求項６に記載の移動量推定装置。
【請求項８】
前記評価部は、前記移動体の最大並進移動速度及び／又は最大回転速度と前記所定の期間との積を前記最大走行移動量とする、請求項１〜３のいずれかに記載の移動量推定装置。
【請求項９】
前記推定部は、
前記第１投影物体像と前記移動投影物体像との間の距離を算出する距離算出部と、
前記第１投影物体像と前記移動投影物体像との間の距離と所定の閾値との間の比較に基づいて前記第１投影物体像と前記移動投影物体像とが一致したかどうかを判断し、前記移動投影物体像が前記第１投影物体像と一致したときの前記複数の移動位置データの前記複数の第２位置データからの平行移動の移動量及び／又は回転移動の移動量を前記推定移動量と推定する第１推定部と、
を有する、請求項１〜８のいずれかに記載の移動量推定装置。
【請求項１０】
前記評価部は、前記第１推定部にて推定された前記推定移動量を前記データ移動量として評価し、前記第１推定部にて推定された前記推定移動量を不適切と評価した場合、前記第１推定部にて推定された前記推定移動量を破棄する、請求項９に記載の移動量推定装置。
【請求項１１】
前記推定部は、
前記複数の第１位置データの前記所定の座標の所定の座標軸における座標値に基づく第１ヒストグラムと、前記複数の第２位置データの前記所定の座標軸における座標値に基づく第２ヒストグラムとを生成するヒストグラム生成部と、
前記第２ヒストグラムを移動させて前記第１ヒストグラムと前記第２ヒストグラムとの一致度が最大になった場合に前記第１投影物体像と前記移動投影物体像とが一致したと判断し、前記一致度が最大になったときの前記第２ヒストグラムの移動量を前記推定移動量と推定する第２推定部を有する、
請求項１〜１０のいずれかに記載の移動量推定装置。
【請求項１２】
前記評価部は、前記一致度の算出において前記第１ヒストグラム又は前記第２ヒストグラムを移動させる移動量を前記データ移動量として評価する、請求項１１に記載の移動量推定装置。
【請求項１３】
前記推定部は、
前記複数の第１位置データの前記所定の座標の所定の座標軸における座標値に基づく第１ヒストグラムと、前記複数の第２位置データの前記所定の座標軸における座標値に基づく第２ヒストグラムとを生成するヒストグラム生成部と、
前記第２ヒストグラムを移動させて前記第１ヒストグラムと前記第２ヒストグラムとの一致度が最大になった場合に前記第１投影物体像と前記移動投影物体像とが一致したと判断し、前記一致度が最大になったときの前記第２ヒストグラムの移動量を前記推定移動量と推定する第２推定部を有し、
前記評価部は、前記一致度の算出において前記第１ヒストグラム又は前記第２ヒストグラムを移動させる移動量を前記データ移動量として評価し、前記第１ヒストグラム又は前記第２ヒストグラムを移動させる移動量の上限値及び／又は下限値の絶対値を前記最大走行移動量と設定する、請求項１〜３のいずれかに記載の移動量推定装置。
【請求項１４】
請求項１〜１３のいずれかに記載の移動量推定装置と、
走行部と、
前記移動量推定装置において推定される移動量に基づいて現在位置を推定する位置推定部と、
前記現在位置から所定の目標位置まで走行するよう前記走行部を制御する走行制御部と、
を備える自律移動体。
【請求項１５】
走行部を有する移動体の移動量を推定する移動量の推定方法であって、
前記移動体が所定の期間に移動した時の移動前及び移動後に前記移動体の周囲に存在する物体を所定の座標上に投影した投影物体像を形成する複数の位置データを取得するステップと、
前記移動前又は前記移動後の一方において取得した複数の第１位置データにより形成される第１投影物体像と、前記移動前又は前記移動後の他方において取得した複数の第２位置データを前記所定の座標上にて平行移動及び／又は回転移動した複数の移動位置データにより形成される移動投影物体像とが一致したときの前記複数の移動位置データが算出されたときの、前記複数の第２位置データからの前記平行移動の移動量及び／又は前記回転移動の移動量を、前記所定の期間に前記移動体が移動した推定移動量として推定するステップと、
前記複数の第２位置データから前記複数の移動位置データを算出したときの前記所定の座標上における平行移動及び／又は回転移動の移動量であるデータ移動量を前記走行部により前記移動体が前記所定の期間に走行可能な最大走行移動量に基づいて評価するステップと、
適切と評価された前記データ移動量を前記移動体の移動量として採用するステップと、
を含む移動量の推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、本体の位置を推定しながら移動可能な移動体の移動量を推定する移動量推定装置、当該移動量の推定方法、及び上記の移動量推定装置を備える自律移動体に関する。
【背景技術】
【０００２】
従来、本体の位置を推定しながら自律移動可能な自律移動体が知られている。例えば、特許文献１には、周囲の移動可能な領域を検知する経路センサを備えた移動ロボットが開示されている。特許文献１の移動ロボットは、経路センサにより得られた点集合データのうち、予め決められた閾値以下の距離の領域に存在する位置データを用いて、自己位置の補正を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２５０９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の移動ロボットのように複数の位置データを用いて自己位置の補正を行う場合、例えば位置データの取得状況（例えば、位置データにノイズが含まれていたり、移動前後において位置データにより構成される像の形状が異なっていたりするなど）によっては、正確に自己位置を推定できない場合がある。この場合、例えば、移動ロボットの移動速度などからは考えられないような位置に到達した、と推定されてしまう場合がある。
【０００５】
特許文献１に開示された移動ロボットなどの従来の移動体においては、位置データにより推定される位置について、移動体の移動性能に基づいた評価は行われていなかった。そのため、従来の移動体においては、移動体の移動性能では考えられないような位置が推定されても、その位置は適切なものとされていた。
【０００６】
本発明の課題は、移動体の移動量を推定する移動量推定装置において、推定された移動量を適切に評価することにある。
【課題を解決するための手段】
【０００７】
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
本発明の一見地に係る移動量推定装置は、走行部を有する移動体の移動量を推定する装置である。移動量推定装置は、位置データ取得部と、推定部と、評価部と、を備える。位置データ取得部は、複数の位置データを取得する。複数の位置データは、所定の座標上に投影物体像を形成する。投影物体像は、移動体の周囲に存在する物体を所定の座標上に投影した像である。
【０００８】
推定部は、第１投影物体像と移動投影物体像とが一致したときに算出された複数の移動位置データの、複数の第２位置データからの平行移動の移動量及び／又は回転移動の移動量を、所定の期間に移動体が移動した推定移動量として推定する。
【０００９】
第１投影物体像は、複数の第１位置データにより形成される投影物体像である。複数の第１位置データは、移動体が所定の期間に移動したときの移動前又は移動後の一方において取得した複数の位置データである。移動投影物体像は、複数の移動位置データにより形成される投影物体像である。複数の移動位置データは、複数の第２位置データを所定の座標上にて平行移動及び／又は回転移動した複数の位置データである。複数の第２位置データは、移動体の移動前又は移動後の他方において取得した複数の位置データである。
【００１０】
なお、上記の「移動前又は移動後の他方」は、複数の第１位置データが移動体の移動前に取得された場合には、移動体の移動後のことを指す。一方、複数の第１位置データが移動体の移動後に取得された場合には、移動体の移動前のことを指す。
【００１１】
評価部は、データ移動量を最大走行移動量に基づいて評価する。データ移動量は、複数の第２位置データから複数の移動位置データを算出したときの所定の座標上における平行移動及び／又は回転移動の移動量である。最大走行移動量は、移動体が所定の期間に走行可能な並進移動における最大の移動量及び／又は回転移動における最大の移動量である。また、評価部は、適切と評価されたデータ移動量を移動体の移動量として採用する。
【００１２】
上記の移動量推定装置においては、まず、位置データ取得部が、移動体が所定の期間に移動したときの移動前又は移動後の一方において複数の第１位置データを、移動体の移動前又は移動後の他方において複数の第２位置データを取得する。
【００１３】
複数の第１位置データと第２位置データを取得後、推定部が、複数の第２位置データを平行移動及び／又は回転移動して複数の移動位置データを算出する。その後、推定部は、複数の第１位置データにより形成される第１投影物体像が、複数の移動位置データにより形成される移動投影物体像と一致するかを判断する。第１投影物体像と移動投影物体像とが一致していると判断された場合に、推定部は、当該移動投影物体像が形成された複数の移動位置データを算出したときの、複数の第２位置データからの平行移動の移動量及び／又は回転移動の移動量を、所定の期間に移動体が移動した移動量（推定移動量）と推定する。
【００１４】
推定移動量の推定において移動位置データを算出する際、評価部が、複数の移動位置データを算出するために必要な複数の第２位置データの平行移動及び／又は回転移動の移動量（データ移動量）を、最大走行移動量に基づいて評価する。その後、評価部は、データ移動量を適切であると評価した場合に、当該適切と評価したデータ移動量を移動体の移動量として採用する。
【００１５】
つまり、上記の移動量推定装置は、推定移動量の推定において複数の第２位置データから複数の移動位置データを算出する際に、算出された複数の移動位置データが走行部の走行性能（最大走行移動量）を考慮した場合に妥当（適切）なものであるかどうかを評価している。そして、適切と評価された移動位置データを推定移動量の推定に用いている。
これにより、上記の移動量推定装置において、走行部の走行性能を考慮した場合に妥当でない（不適切な）推定移動量を算出したり、無駄な推定移動量の推定を実行したりすることを回避できる。すなわち、適切に推定移動量を推定できる。
【００１６】
評価部は、データ移動量が最大走行移動量よりも大きくなった場合に、当該データ移動量を不適切と評価してもよい。これにより、走行部の走行性能以上のデータ移動量を用いて算出された複数の移動位置データが推定移動量の推定に用いられることを回避できる。
【００１７】
評価部は、推定移動量をデータ移動量として評価してもよい。つまり、評価部は、推定移動量を最大走行移動量に基づいて評価してもよい。評価部が推定移動量を不適切と評価した場合、上記の最大走行移動量を所定の期間に移動体が移動した移動量として採用してもよい。これにより、不適切な推定移動量が不適切な移動量なため採用されなかった場合でも、推定移動量が不定になることを回避できる。
【００１８】
上記の移動体は走行制御部をさらに有していてもよい。走行制御部は、走行部を制御する。上記の移動量推定装置は、制御移動量推定部を備えていてもよい。制御移動量推定部は、制御移動量を、所定の期間における移動体の移動量として推定する。制御移動量は、上記の所定の期間において走行部を制御する際に、走行制御部が走行部に出力した加速度指令値及び／又は速度指令値に基づいて算出される移動量である。さらに、この場合、評価部は、制御移動量を最大走行移動量としてデータ移動量を評価する。これにより、走行指令により走行可能な最大の移動量を用いて、より厳密なデータ移動量の評価が可能となる。
【００１９】
評価部は、推定移動量をデータ移動量として評価してもよい。つまり、評価部は、推定移動量を最大走行移動量に基づいて評価してもよい。評価部が推定移動量を不適切と評価した場合、上記の制御移動量を所定の期間に移動体が移動した移動量として採用してもよい。これにより、不適切な推定移動量よりもより実際に近い移動量を所定の期間に移動体が移動した移動量と推定できる。
【００２０】
上記の移動体において、走行部は車輪を有し車輪の回転により走行可能となっていてもよい。このとき、上記の移動量推定装置において、制御移動量推定部は、車輪移動量を制御移動量として算出してもよい。車輪移動量は、所定の期間における車輪の回転量に基づいて算出された車輪による移動量である。
これにより、評価部は、車輪の回転量に基づいて算出された車輪移動量に基づいて、より厳密にデータ移動量を評価できる。
【００２１】
評価部は、推定移動量をデータ移動量として評価してもよい。つまり、評価部は、推定移動量を最大走行移動量に基づいて評価してもよい。評価部が推定移動量を不適切と評価した場合、車輪移動量を所定の期間に移動体が移動した移動量として採用してもよい。これにより、不適切な推定移動量よりもより実際に近い移動量を所定の期間に移動体が移動した移動量と推定できる。
【００２２】
評価部は、移動体の最大並進移動速度及び／又は最大回転速度と所定の期間との積を最大走行移動量としてもよい。これにより、より簡単に最大走行移動量を算出できる。
【００２３】
推定部は、距離算出部と、第１推定部とを有していてもよい。
距離算出部は、第１投影物体像と移動投影物体像との間の距離を算出する。第１推定部は、第１投影物体像と移動投影物体像との間の距離と所定の閾値との間の比較に基づいて、第１投影物体像と移動投影物体像とが一致したかどうかを判断する。また、第１推定部は、移動投影物体像が第１投影物体像と一致したときの複数の移動位置データの複数の第２位置データからの平行移動の移動量及び／又は回転移動の移動量を推定移動量と推定する。
これにより、推定部は、複数の位置データを用いて精度よく推定移動量を推定できる。
【００２４】
評価部は、第１推定部にて推定された推定移動量をデータ移動量として評価してもよい。つまり、評価部は、最大走行移動量に基づいて、第１推定部にて推定された推定移動量を評価してもよい。
このとき、評価部は、第１推定部にて推定された推定移動量を不適切と評価した場合、第１推定部にて推定された推定移動量を破棄する。これにより、適切に算出された推定移動量を選択できる。
【００２５】
推定部は、ヒストグラム生成部と、第２推定部とを有していてもよい。
ヒストグラム生成部は、第１ヒストグラムと第２ヒストグラムとを生成する。第１ヒストグラムは、複数の第１位置データの所定の座標の所定の座標軸における座標値から生成されるヒストグラムである。第２ヒストグラムは、複数の第２位置データの所定の座標軸における座標値から生成されるヒストグラムである。
【００２６】
第２推定部は、第１ヒストグラムと第２ヒストグラムとの一致度が最大になるときに、第１投影物体像と移動投影物体像とが一致したと判断する。また、第２推定部は、一致度が最大になるときの第１ヒストグラム又は第２ヒストグラムの移動量を推定移動量と推定する。
【００２７】
評価部は、第１ヒストグラムと第２ヒストグラムとの一致度を算出する際において、第１ヒストグラム又は第２ヒストグラムを移動させる移動量をデータ移動量として評価してもよい。これにより、適切な移動量にて２つのヒストグラムのいずれかを移動できる。
【００２８】
評価部は、第２推定部にて推定された推定移動量をデータ移動量として評価してもよい。つまり、評価部は、最大走行移動量に基づいて、第２推定部にて推定された推定移動量を評価してもよい。
このとき、評価部は、第２推定部にて推定された推定移動量を不適切と評価した場合、第２推定部にて推定された推定移動量を破棄する。これにより、適切に算出された推定移動量を選択できる。
【００２９】
評価部は、第１ヒストグラム又は第２ヒストグラムを移動させる移動量の上限値及び／又は下限値の絶対値を最大走行移動量と設定してもよい。これにより、移動量としては適切でない範囲において第１ヒストグラム又は第２ヒストグラムを無駄に移動させることを抑制できる。その結果、ヒストグラムの一致度に基づいた推定移動量の推定時間を短縮できる。
【００３０】
本発明の他の見地に係る自律移動体は、上記の移動量推定装置と、走行部と、位置推定部と、走行制御部と、を備える。走行部は、自律移動体を移動させる。位置推定部は、移動量推定装置において推定される移動量に基づいて、現在位置を推定する。走行制御部は、推定された現在位置から所定の目標位置まで走行するように走行部を制御する。
【００３１】
上記の自律移動体は、上記の移動量推定装置を備えている。これにより、自律移動体においては、上記の評価結果に基づいて、推定移動量が適切であるかどうかを判断して適切な処理を実行したり、推定移動量の推定に用いるべき位置データを適切に選択したりできる。その結果、上記の移動量推定装置は、適切に移動量を推定し、それに基づいて意図した移動経路を移動できる。
【００３２】
本発明のさらに他の見地に係る移動量の推定方法は、走行部を有する移動体の移動量を推定する方法である、移動量の推定方法は、以下のステップを含む。
◎移動体が所定の期間に移動した時の移動前及び移動後に移動体の周囲に存在する物体を、所定の座標上に投影した投影物体像を形成する複数の位置データを取得するステップ。
◎複数の第１位置データにより形成される第１投影物体像と、複数の第２位置データを所定の座標上にて平行移動及び／又は回転移動した複数の移動位置データにより形成される移動投影物体像とが一致したときの複数の移動位置データが算出されたときの、複数の第２位置データからの平行移動の移動量及び／又は回転移動の移動量を、所定の期間に移動体が移動した推定移動量として推定するステップ。
◎データ移動量を最大走行移動量に基づいて評価するステップ。
◎適切と評価されたデータ移動量を移動体の移動量として採用するステップ。
【００３３】
これにより、走行部の走行性能を考慮した場合に妥当でない（不適切な）推定移動量を算出したり、無駄な推定移動量の推定を実行したりすることを回避できる。すなわち、適切に推定移動量を推定できる。
【発明の効果】
【００３４】
移動量推定装置において、推定された移動量を適切に評価できる。
【図面の簡単な説明】
【００３５】
【図１】自律移動体の全体構成を示す図。
【図２】制御部の構成を示す図。
【図３】移動量算出部の構成を示す図。
【図４Ａ】移動前後に取得された位置データにより形成される投影物体像の一例を示す図。
【図４Ｂ】第１実施形態における移動量の推定方法を模式的に示す図。
【図５】移動位置データ（第２位置データ）を移動する毎にデータ移動量を評価して推定移動量を推定する方法を示すフローチャート。
【図６】複数の推定移動量を推定後に適切な推定移動量を選択するときの推定移動量の推定方法を示すフローチャート。
【図７】自律移動体の動作を示すフローチャート。
【図８Ａ】第２実施形態の移動量算出部の構成を示す図。
【図８Ｂ】車輪の回転量に基づいて制御移動量を算出する移動量算出部の構成を示す図。
【図９】ヒストグラムマッチング法を模式的に示す図。
【図１０】第３実施形態の移動量算出部の構成を示す図。
【図１１】第３実施形態における推定移動量の推定方法を示すフローチャート。
【図１２】第４実施形態における位置推定方法を示すフローチャート。
【発明を実施するための形態】
【００３６】
１．第１実施形態
（１）自律移動体の全体構成
以下、本発明の自律移動体について説明する。まず、第１実施形態に係る自律移動体１００の全体構成について、図１を用いて説明する。本実施形態の自律移動体１００は、予め決められた所望の予定走行経路を自律的に走行する移動体である。
自律移動体１００は、本体部１と、走行部２と、位置データ取得部３と、制御部５と、を主に備える。本体部１は、自律移動体１００の本体を構成する。
【００３７】
走行部２は、図１に示すように、車輪２１ａ、２１ｂを有し、車輪２１ａ、２１ｂが移動領域の床面などの走行面に接するように、モータ２３ａ、２３ｂ（後述）を介して、本体部１の底部の中央付近に設置されている。また、車輪２１ａ、２１ｂは、本体部１の左右に設置されたモータ２３ａ、２３ｂの出力回転軸のそれぞれに、当該出力回転軸周りに回転可能に取り付けられている。
【００３８】
モータ２３ａ、２３ｂは、制御部５から駆動信号（後述）を受信し、当該制御部５からの駆動信号により、それぞれの出力回転軸を回転させる。車輪２１ａ、２１ｂは、制御部５からの駆動信号に応じた回転量及び／又は回転速度にて回転する。車輪２１ａ、２１ｂの回転により、走行部２は、本体部１（すなわち、自律移動体１００）を移動できる。モータ２３ａ、２３ｂとしては、例えば、ブラシレスモータなどの電動モータを用いる。
【００３９】
また、モータ２３ａ、２３ｂのそれぞれの出力回転軸には、図示しない、モータ２３ａ、２３ｂのそれぞれの出力回転軸の回転数（回転量）を測定する装置が取り付けられている。そして、当該装置により測定された出力回転軸の回転量は、制御部５へ出力される。
【００４０】
制御部５は、モータ２３ａ、２３ｂのそれぞれの出力回転軸の回転量に基づいて、車輪２１ａ、２１ｂの回転量を算出する。上記のモータ２３ａ、２３ｂの出力回転軸の回転量を測定する装置としては、例えば、エンコーダを用いることができる。例えば、インクリメンタル型のエンコーダを用いて出力回転軸の回転量を測定した場合、出力回転軸の回転量は、エンコーダから出力されるパルス信号に含まれる所定時間あたりのパルス数として測定できる。
【００４１】
位置データ取得部３は、自律移動体１００の周囲に存在する障害物や壁などの物体を、所定の座標上に投影した像（以後、「投影物体像」と呼ぶことにする）を形成する複数の位置データを取得する。
【００４２】
上記の投影物体像を形成可能な複数の位置データは、例えば、レーザレンジファインダ（Ｌａｓｅｒ  Ｒａｎｇｅ  Ｆｉｎｄｅｒ、ＬＲＦ）を位置データ取得部３として用いることにより取得できる。その他、ＴｏＦ（Ｔｉｍｅ  ｏｆ  Ｆｌｉｇｈｔ）カメラなど、本体の周囲にある物体の本体からの距離を測定できる装置を、位置データ取得部３として用いることができる。
【００４３】
本実施形態では、レーザレンジファインダを位置データ取得部３として用いるが、複数の位置データは、例えば、自律移動体１００から上記の物体の所定の箇所（例えば、レーザレンジファインダから出力された信号を反射する物体の表面の一部）までの距離と、上記の物体の箇所が存在する自律移動体１００からの方向を示す角度とを含む二次元のデータとして取得される。
【００４４】
位置データ取得部３から取得した複数の位置データは、例えば、位置データ取得部３からの出力信号が物体の表面などにて反射されて位置データ取得部３に戻ってくる信号を、信号の検出器を所定の角度範囲で回転走査することにより取得したデータである。従って、複数の位置データを所定の座標上にプロットすると、移動領域の自律移動体１００の周囲に存在する物体（表面）の（少なくとも一部の）形状が当該所定の座標上に投影される。すなわち、複数の位置データは、所定の座標上において、自律移動体１００の周囲に存在する物体を投影する投影物体像を形成する。
【００４５】
なお、後述する複数の位置データに基づいて、自律移動体１００の推定移動量を推定する場合、得られた上記の距離と角度とを座標値として有する位置データを用いて移動量を推定してもよい。この場合、上記の所定の座標は、自律移動体１００から上記の物体までの距離を表す軸と、上記の物体が存在する自律移動体１００からの角度を表す軸とにより構成される座標となる。
【００４６】
また、得られた位置データに対して適当な座標変換を行った新たな位置データを用いて、自律移動体１００の推定移動量を推定してもよい。例えば、得られた位置データを、座標変換により、例えば、二次元ならＸ−Ｙ座標、三次元ならＸ−Ｙ−Ｚ座標上の位置データに変換できる。
本実施形態においては、位置データ取得部３において得られた位置データを、上記のＸ−Ｙ座標の座標値としての位置データに変換して、自律移動体１００の推定移動量を推定する。
【００４７】
また、位置データ取得部３において得られる位置データは、車輪２１ａ、２１ｂの使用による車輪径の変化の影響を受けていない座標値データである。従って、本実施形態においては、位置データ取得部３において取得された複数の位置データを、移動領域における自律移動体１００の実際の移動量により近い移動量を算出するために用いている。
【００４８】
また、図１に示すように、位置データ取得部３は、前方データ取得部３１と後方データ取得部３３とにより構成されている。前方データ取得部３１は、自律移動体１００の前方に取り付けられており、自律移動体１００の前方に存在する物体からの位置データを取得できる。一方、後方データ取得部３３は、自律移動体１００の進行方向の後方に取り付けられており、自律移動体１００の後方に存在する物体からの位置データを取得できる。
【００４９】
本実施形態においては、前方データ取得部３１の位置データ取得可能範囲が、後方データ取得部３３の位置データ取得可能領域よりも広くなっている。例えば、本実施形態においては、後方データ取得部３３が後方データ取得部３３を中心とした半径１０ｍ程度の自律移動体１００の後方の１８０°程度の範囲の物体を検出できる一方、前方データ取得部３１は、前方データ取得部３１を中心とした半径３０ｍ程度の自律移動体１００の前方の２７０°程度の範囲に存在する物体を検出可能となっている。
【００５０】
これにより、位置データ取得部３は、自律移動体１００を中心とした（特に、自律移動体１００の前方において）より広い範囲に存在する物体を検出できる。なお、上記の前方データ取得部３１の物体の検出範囲と後方データ取得部３３の物体の検出範囲は、上記の検出範囲に限られず、必要に応じて、適宜適切な検出範囲を設定できる。
【００５１】
また、本実施形態において、前方データ取得部３１及び／又は後方データ取得部３３は、上記の本体部１の鉛直方向の上方（の前方及び後方）に取り付けられている。これにより、例えば、移動領域の床面などに設置された物体の移動が頻繁に起こる場合に（例えば、大規模小売店などのように、棚や看板のレイアウト変動が頻繁に行われる場合に）、前方データ取得部３１及び後方データ取得部３３により取得された複数の位置データにより形成される投影物体像の時間的な変化（特に、ある時間に存在した物体が、他の時間において存在しないような変化）を低減できる。
【００５２】
従来の技術では、移動領域に設置された物体の移動が頻繁に起こる場合、自律移動体１００の移動前に取得した複数の位置データにより形成される投影物体像と、移動後に取得した複数の位置データにより形成される投影物体像とが大きく異なる場合がある。移動前後において投影物体像が大きく異なっていると、移動前後の投影物体像の一方をどのように移動しても、他方の投影物体像に一致させることが困難となる。この場合、複数の位置データを用いた自律移動体１００の移動量の推定が困難となる。
【００５３】
また、従来の技術では、自律移動体１００の移動前後の投影物体像が大きく異なる場合に、移動させた投影物体像と基準となる投影物体像とが一致したと判断されても、移動させた投影物体像の移動量から推定される自律移動体１００の移動量が、実際の自律移動体１００の移動量とは大きくかけ離れる場合がある。つまり、複数の位置データに基づいて推定した自律移動体１００の移動量と、実際の自律移動体１００の移動量との間に、大きな誤差が生じる場合がある。
【００５４】
それらの問題を解決するために、本実施形態では、上述したように、前方データ取得部３１及び／又は後方データ取得部３３を本体部１の上部（例えば、人の頭や商品棚の高さを超える位置）に設置して移動が頻繁に行なわれる物体を検知する可能性を低減している。この結果、前方データ取得部３１及び後方データ取得部３３（位置データ取得部３）により取得した複数の位置データを用いることで、大きな誤差などを生じることなく、つまり精度よく自律移動体１００の移動量を推定できる。
【００５５】
制御部５は、走行部２を制御する。具体的には、制御部５は、自律移動体１００の現在位置を、位置データ取得部３により取得された複数の位置データに基づいて算出された自律移動体１００の移動量に基づいて推定する。また、制御部５は、推定された移動量や現在位置などに基づいて、自律移動体１００の現在位置を推定する。
【００５６】
さらに、制御部５は、推定された現在位置から制御部５の記憶部（後述）などに記憶された予め決められた目標位置（あるいは、複数ある目標位置のうちの１つ）まで自律移動体１００を移動させるための制御信号を算出し、当該制御信号に基づいて、走行部２を駆動するための駆動信号を算出し、走行部２（のモータ２３ａ、２３ｂ）に出力する。
なお、制御部５の詳細な構成、及び、制御部５における自律移動体１００における移動量の算出方法などについては、後ほど説明する。
【００５７】
自律移動体１００が上記の構成を有することにより、自律移動体１００は移動領域における本体の存在位置を、位置データ取得部３により取得した複数の位置データを用いて推定できる。また、自律移動体１００は、予め決められた所定の目標位置まで移動するための制御信号を、推定された自律移動体１００の（現在）位置に基づいて、自律移動体１００内部（制御部５）において算出できる。その結果、自律移動体１００は、予め決められた走行経路を、自律的に移動できる。
【００５８】
図１に示すように、第１実施形態の自律移動体１００は、取付部材９を介して本体部１に取り付けられた操作部７をさらに備えている。図１に示すように、操作部７は、回動可能な操作ハンドル７１ａ、７１ｂを有し、操作ハンドル７１ａ、７１ｂのそれぞれの操作量（回動量）を制御部５に出力可能となっている。これにより、制御部５は、操作ハンドル７１ａ、７１ｂの操作量に応じて、モータ２３ａ、２３ｂを制御する駆動信号を算出可能となる。
【００５９】
自律移動体１００が上記の操作部７を備えることにより、操作者が自律移動体１００を操作可能となる。具体的には、操作者が操作ハンドル７１ａ、７１ｂを回動するなどして車輪２１ａ、２１ｂの回動量や回転速度を調整することにより、操作者は自律移動体１００を操作できる。
【００６０】
また、上記のように、制御部５は自律移動体１００本体の移動領域における位置を推定可能となっている。そのため、例えば、操作者が操作部７を用いて自律移動体１００を操作している時に所定の時間間隔にて自律移動体１００の位置を推定し、推定された位置を記憶部５１などに記憶することにより、自律移動体１００（制御部５）に、操作者による自律移動体１００の操作を、上記の予め決められた走行経路として教示できる。
【００６１】
なお、自律移動体１００に走行経路を教示する方法は、上記した、操作者が操作部７を用いて自律移動体１００を操作する間に自律移動体１００の位置を推定して記憶する方法に限られない。例えば、走行経路を表す座標点を記憶したデータにおいて、座標点の座標値を直接操作（あるいは直接入力）することによっても、自律移動体１００に走行経路を教示できる。または、自律移動体１００の移動領域における位置を指定するその他の方法によって、自律移動体１００に走行経路を教示できる。
【００６２】
また、第１実施形態の自律移動体１００は、補助輪部８をさらに備える。補助輪部８は、２つの補助車輪８ａ、８ｂを有する。２つの補助車輪８ａと８ｂは、それぞれが独立に回転可能なように本体部１の後方底部に取り付けられている。補助輪部８を備えることにより、自律移動体１００は安定に、かつ、スムーズに移動できる。
【００６３】
（２）制御部の構成
Ｉ．制御部の全体構成
次に、制御部５の全体構成について図２を用いて説明する。制御部５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ハードディスク装置と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、記憶媒体読み出し装置などにより構成される記憶装置と、信号変換を行うインターフェースなどと、を備えたマイコンシステムなどにより実現できる。また、以下に示す制御部５の各部の機能の一部又は全部は、プログラムとして実現されていてもよい。さらに、当該プログラムは、マイコンボードの記憶装置に記憶されていてもよい。又は、制御部５の各部の機能の一部又は全部は、カスタムＩＣなどにより実現されていてもよい。
【００６４】
また、制御部５は、複数のマイコンシステムにより構成されていてもよい。例えば、後述する移動量推定部５３（移動量推定装置の一例）と、走行制御部５７と、制御部５の残りの構成要素とを個別のマイコンシステムにより構成してもよい。
【００６５】
制御部５は、記憶部５１と、移動量推定部５３と、位置推定部５５と、走行制御部５７と、を有する。記憶部５１は、制御部５を構成する記憶装置の記憶領域の少なくとも一部に対応する。記憶部５１は、自律移動体１００が移動領域を自律的に移動するために必要な情報などを記憶する。例えば、走行経路を表す座標値を表すデータ（走行スケジュールと呼ばれることもある）や、移動領域を表す地図情報（グローバルマップ、または、環境地図と呼ばれることもある）などが記憶部５１に記憶されている。その他、記憶部５１は、自律移動体１００の動作に必要な各種設定値などを記憶している。
【００６６】
移動量推定部５３は、自律移動体１００が移動した距離を推定する。そのため、移動量推定部５３は移動量算出部５３１を有している。移動量算出部５３１は、位置データ取得部３が取得した複数の位置データに基づいて、自律移動体１００が移動した距離を算出する。
【００６７】
移動量算出部５３１は、移動前後において取得した複数の位置データのいずれかを移動して、移動した位置データとは異なる他方の位置データと移動した位置データとが一致するかどうかにより、自律移動体１００の移動量（推定移動量）を算出する。
【００６８】
移動量算出部５３１においては、移動する位置データの元の位置データからの移動量（データ移動量）が適切かどうか評価され、データ移動量が、走行部２が有する最大の走行能力（最大走行移動量）を超えた移動量であれば、当該データ移動量が不適切と判断される。
なお、移動量算出部５３１の構成の詳細及び移動量の算出方法については、後ほど詳しく説明する。
【００６９】
位置推定部５５は、自律移動体１００の移動領域における存在位置を推定する。本実施形態において、位置推定部５５は、ＳＬＡＭ（Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ）法などを用いて、現在位置に存在する自律移動体１００の周囲の壁や障害物などの物体の位置を示す地図情報（ローカルマップ）と、予め記憶されていた移動領域（の全体、又は、自律移動体１００が移動する領域を少なくとも含む一部）を示す地図情報（グローバルマップ、環境地図）とのマップマッチング結果に基づいて、自律移動体１００の現在位置を推定する。
【００７０】
具体的には、位置推定部５５は、まず、移動量推定部５３にて推定された移動量に所定の誤差分を追加して算出した「仮の現在位置」を複数個生成する。上記の仮の現在位置は、例えば、移動前に推定されていた自律移動体１００の位置に、上記の誤差分を追加した移動量を加えることにより算出できる。
【００７１】
次に、上記の仮の現在位置のそれぞれに対して、現在位置において位置データ取得部３を用いて取得した複数の位置データを用いて上記のローカルマップを生成する。その後、位置推定部５５は、複数個生成したローカルマップのうち、上記の環境地図と最もよく一致したローカルマップを生成したときの仮の現在位置を、自律移動体１００の実際の現在位置と推定する。このようにして、位置推定部５５は、移動量推定部５３にて推定される移動量に基づいて、自律移動体１００の現在位置を推定できる。
【００７２】
また、位置推定部５５は、操作者が操作部７を用いて自律移動体１００を操作しているときには、所定の時間間隔（例えば、制御周期毎）にて上記の方法により自律移動体１００の位置を推定して、推定した位置についての情報（座標値など）を記憶部５１に記憶してもよい。これにより、位置推定部５５は、操作者による自律移動体１００の移動操作を記憶部５１に記憶できる。その結果、自律移動体１００は、記憶された操作者による移動操作を用いて自律的に移動することにより、操作者による移動操作を自律的に再現できる。
【００７３】
なお、位置推定部５５は、現在位置において作成したローカルマップを用いて、上記の環境地図を更新して記憶部５１に記憶してもよい。これにより、移動領域中において障害物などの位置が変更された場合でも、障害物などの位置が変更された後の新しい環境地図を作成し記憶できる。
【００７４】
走行制御部５７は、自律移動体１００が自律的に移動するときには、自律移動体１００を、現在位置から、記憶部５１に記憶された予め決められた移動経路に含まれる所定の目標位置まで走行するように、走行部２を制御する。
【００７５】
具体的には、走行制御部５７は、まず、現在位置から上記の所定の目標位置までの距離や方向などに基づいて、現在位置から所定の目標位置まで、所定の速度及び／又は加速度にて自律移動体１００を移動させる制御指令を生成する。次に、走行制御部５７は、上記の制御指令に基づいて、モータ２３ａ、２３ｂを制御するための駆動信号を算出し、モータ２３ａ、２３ｂに出力する。
【００７６】
なお、走行制御部５７は、モータ２３ａ、２３ｂのそれぞれに対して個別に駆動信号を出力する。すなわち、モータ２３ａ、２３ｂはそれぞれが異なる回転速度にて回転できる。例えば、自律移動体１００を直進させたい場合には、モータ２３ａ、２３ｂを同じ回転速度にて回転させる。一方、モータ２３ａ、２３ｂのそれぞれを異なる回転速度にて回転させると、自律移動体１００は回転運動（右折、左折）できる。
図１に示した走行部２のように、２つの車輪２１ａ、２１ｂのそれぞれを個別にモータ２３ａ、２３ｂにより回転させて走行する走行部を、「差動二輪型」の走行部と呼ぶこともある。
【００７７】
また、走行制御部５７は、操作部７から操作ハンドル７１ａ、７１ｂの回動量（操作量）を入力し、入力した回動量から上記の駆動信号を算出し、モータ２３ａ、２３ｂに出力可能となっている。これにより、自律移動体１００は、操作ハンドル７１ａ、７１ｂを操作する操作者により操作可能となる。
【００７８】
走行制御部５７としては、例えば、フィードバック制御理論を用いた制御装置などを用いることができる。フィードバック制御理論を用いた制御装置を走行制御部５７として用いる場合、走行制御部５７は、モータ２３ａ、２３ｂの出力回転軸に取り付けられたエンコーダなどからのパルス信号を入力し、モータ２３ａ、２３ｂの回転数を制御指令に示したとおりに制御できる。
【００７９】
制御部５が上記の構成を有することにより、自律移動体１００は、記憶部５１に記憶されている走行経路などの予め決められた走行経路を、自律的に移動できる。
【００８０】
（３）移動量算出部の構成
Ｉ．全体構成
次に、第１実施形態の移動量算出部５３１の全体構成について、図３を用いて説明する。図３は、移動量算出部の全体構成を示す図である。移動量算出部５３１は、位置データ記憶部５３１１と、推定部５３１２と、評価部５３１３と、を有している。
【００８１】
位置データ記憶部５３１１は、制御部５のマイコンシステムの記憶装置の記憶領域、又は、記憶部５１の記憶領域の一部である。位置データ記憶部５３１１は、自律移動体１００の移動前と移動後において位置データ取得部３から取得した（座標変換した）複数の位置データを記憶する。本実施形態においては、基準となる第１位置データを自律移動体１００の移動前に取得した位置データとし、移動する第２位置データを自律移動体１００の移動後に取得した位置データとする。
なお、これとは逆に、自律移動体１００の移動前に取得した位置データを第２位置データとし、移動後に取得した位置データを第１位置データとしてもよい。
【００８２】
推定部５３１２は、位置データ記憶部５３１１に記憶した複数の第１位置データと複数の第２位置データとを用いて、自律移動体１００の移動量を推定する。推定部５３１２は、複数の第１位置データにより形成される第１投影物体像と移動投影物体像とが一致したときの複数の移動位置データが算出されたときの、複数の第２位置データからの平行移動の移動量及び／又は前記回転移動の移動量を、自律移動体１００の移動量と推定する。移動投影物体像は、複数の第２位置データを所定の座標上にて平行移動及び／又は回転移動した複数の移動位置データにより形成される。なお、上記の推定部５３１２において推定された自律移動体１００の移動量を、推定移動量と呼ぶことにする。
【００８３】
評価部５３１３は、推定移動量を推定する際に複数の第２位置データを移動して複数の移動位置データを算出するときの第２位置データからの移動量（データ移動量）を、走行部２により自律移動体１００が所定の期間に走行可能な最大走行移動量に基づいて評価する。
【００８４】
評価部５３１３は、走行部２の車輪２１ａ、２１ｂの回転により走行可能な自律移動体１００の最大並進速度及び／又は最大回転速度と、自律移動体１００の移動前後の所定の期間との積を最大走行移動量とする。これにより、より簡単に最大走行移動量を算出できる。上記の最大並進速度及び／又は最大回転速度は、走行部２の仕様等によって決定できる一定値であるので、予め記憶部５１などに記憶されている。
【００８５】
また、評価部５３１３は、データ移動量が上記の最大走行移動量以下であり適切な移動量であると評価した場合、当該データ移動量を自律移動体１００が移動した移動量として採用する。評価部５３１３は、さらに、推定部５３１２において推定された推定移動量を上記のデータ移動量として評価する。
【００８６】
具体的には、評価部５３１３は、例えば、（ｉ）推定移動量の推定毎に算出された推定移動量（データ移動量）を評価し、最大走行移動量以下の推定移動量のみ採用する、または、（ｉｉ）複数の推定移動量を記憶しておき、当該複数の推定移動量から最大走行移動量以下で適切な推定移動量を自律移動体１００の移動量として選択する、とのいずれかの方法により推定移動量を評価する。これにより、評価部５３１３は、不適切と評価した推定移動量を破棄する一方、適切と評価した推定移動量を自律移動体１００の移動量として採用できる。
【００８７】
なお、評価部５３１３は、上記の（ｉ）及び（ｉｉ）に記載した推定移動量の評価方法の両方を用いて適切な推定移動量を採用してもよいし、所定の条件に応じて上記（ｉ）又は（ｉｉ）の評価方法のいずれかを選択してもよい。
【００８８】
移動量算出部５３１が上記の構成を有することにより、複数の第２位置データを移動して複数の移動位置データを算出したときのデータ移動量が、走行部２によって自律移動体１００が走行可能な最大走行移動量と比較して合理的な移動量であるかどうかを評価でき、合理的な（適切と評価された）データ移動量及び／又は推定移動量のみを自律移動体１００の移動量として採用できる。その結果、最大走行移動量よりも大きな不適切なデータ移動量及び／又は推定移動量を算出することを回避できる。
【００８９】
ＩＩ．推定部の構成
次に、推定部５３１２の構成について、図３を用いて説明する。図３に示すように、推定部５３１２は、位置データ移動部５３１２−１と、距離算出部５３１２−２と、第１推定部５３１２−３と、を有する。
【００９０】
位置データ移動部５３１２−１は、複数の第２位置データを所定の座標上にて平行移動及び／又は回転移動して移動位置データを算出する。複数の位置データの所定の座標上における平行移動は、例えば、複数の位置データのそれぞれの座標値に、平行移動の移動量を加えることにより実行できる。一方、複数の位置データの所定の座標上における回転移動は、例えば、座標の回転を表す公知の式により、回転移動後の位置データの座標値を算出することにより実行できる。なお、上記の第２位置データ（及び移動位置データ）の平行移動の移動量及び／又は回転移動の移動量は、第１推定部５３１２−３（後述）において決定される。
【００９１】
距離算出部５３１２−２は、２種類の複数の位置データにより所定の座標上に形成される２つの投影物体像の間の距離を算出する。本実施形態において、距離算出部５３１２−２は、複数の第１位置データに含まれる１つの第１位置データと、複数の移動位置データに含まれ上記の１つの第１位置データに対応する１つの移動位置データと、その近傍の移動位置データにより定義される平面との距離をデータ間距離として算出し、上記のデータ間距離を所定の数だけ合計したときの合計距離を、複数の第１位置データにより形成される第１投影物体像と複数の移動位置データにより形成される移動投影物体像との間の距離と定義する。
【００９２】
上記のデータ間距離を算出する際、距離算出部５３１２−２は、１つの第１位置データと当該１つの第１位置データに対応する１つの移動位置データとの間の距離を１つのデータ間距離として算出してもよい。または、１つの第１位置データと複数の移動位置データに含まれ当該１つの第１位置データの比較的近傍に存在する複数の移動位置データのそれぞれとの距離を複数のデータ間距離として算出してもよい。
【００９３】
１つの第１位置データに対して複数のデータ間距離を算出する場合、距離算出部５３１２−２は、算出された複数のデータ間距離のうち所定の距離以上のものを使用しないようにしてもよい。所定の距離以上の平面距離を使用しないときには、１つの第１位置データに対してデータ間距離が全く算出されない場合、１つの移動位置データに対して複数のデータ間距離が算出される場合、１つの第１位置データに対して１つのデータ間距離が算出される場合がある。
【００９４】
上記のデータ間距離としては、座標空間における距離を表す様々な距離を用いることができる。例えば、ユークリッド距離やマンハッタン距離（２つの座標点の各座標値の差を合計した距離）などを、位置データ間の距離として用いることができる。
【００９５】
または、距離算出部５３１２−２は、１つの第１位置データと複数の移動位置データにより形成される投影物体像との間の距離を、上記のデータ間距離としてもよい。１つの第１位置データと複数の移動位置データにより形成される投影物体像との間の距離は、例えば、１つの第１位置データと、１つの第１位置データから当該投影物体像に伸ばした垂線と当該投影物体像との交点との間の距離として算出できる。
【００９６】
第１推定部５３１２−３は、第１投影物体像と移動投影物体像との間の距離を表す合計距離と所定の閾値との比較を行う。本実施形態において、第１推定部５３１２−３は、合計距離と所定の閾値との比較として、合計距離が所定の閾値以下であるかどうかを判断する。
【００９７】
合計距離が所定の閾値以下であることは、第１投影物体像と移動投影物体像とが十分に近い位置にあることを示している。これら２つの投影物体像が十分に近い位置にあることは、複数の第１位置データと複数の移動位置データとが全体としてほぼ一致していることに対応している。従って、２つの投影物体像の間の距離が所定の閾値以下であるかどうかを判断することにより、第１推定部５３１２−３は、複数の第１位置データと複数の移動位置データとが一致しているかどうかを判断できる。
【００９８】
複数の第１位置データと複数の移動位置データとが一致していると判断された場合、第１推定部５３１２−３は、複数の第１位置データと一致していると判断された複数の移動位置データの、複数の第２位置データからの平行移動及び／又は回転移動の移動量（すなわち、最終的な移動位置データを算出するために必要な第２位置データのデータ移動量）から、推定移動量を推定する。
【００９９】
（４）自律移動体の動作
Ｉ．第１実施形態における移動量の推定方法
次に、自律移動体１００の動作について説明する。まず、第１実施形態に係る移動量推定部５３（移動量算出部５３１）における移動量の推定方法について説明する。
【０１００】
第１実施形態に係る推定部５３１２における移動量の推定方法は、自律移動体１００の移動前又は移動後の一方にて取得した複数の位置データ（本実施形態では、第２位置データ）により形成される投影物体像（第２投影物体像）を平行移動及び／又は回転移動することにより形成される投影物体像（移動投影物体像）が、移動前又は移動後の他方にて取得した複数の位置データ（本実施形態では、第１位置データ）により形成される投影物体像（第１投影物体像）と一致したときに、当該移動投影物体像を形成する移動位置データを算出するために第２位置データを移動した移動量（平行移動の移動量及び／又は回転移動の移動量）を、自律移動体１００の移動前後の移動量と推定する方法である。
【０１０１】
第１実施形態に係る推定部５３１２における移動量の推定方法においては、複数の第２位置データ又は複数の移動位置データを所定の方法により繰り返し移動して、複数の第２位置データをどのように移動した複数の移動位置データが複数の第１位置データに全体として最も近づくかが探索される。
従って、第１実施形態における上記の推定部５３１２による移動量の推定方法はＩＣＰ（Ｉｔｅｒａｔｉｖｅ  Ｃｌｏｓｅｓｔ  Ｐｏｉｎｔ）法と呼ばれる。
【０１０２】
上記のＩＣＰ法による移動量の推定方法を、図４Ａ及び図４Ｂを用いて模式的に説明する。図４Ａは、移動前後に取得された位置データにより形成される投影物体像の一例を示す図である。図４Ｂは、第１実施形態における移動量の推定方法を模式的に示す図である。
【０１０３】
以下の説明においては、移動前に取得された位置データを上記の第１位置データとし、移動後に取得された位置データを上記の第２位置データとする。従って、図４Ａの（１）に示す移動前の投影物体像が複数の第１位置データにより形成される第１投影物体像である。一方、図４Ａの（２）に示す移動後の投影物体像が複数の第２位置データにより形成される第２投影物体像である。
【０１０４】
位置データ取得部３により取得される位置データは、図４Ａ及び図４Ｂに示すように、例えば自律移動体１００の中心位置を原点とした座標において定義される座標値である。以下の説明においては、第１位置データを定義する座標を第１座標と呼び、第１座標の原点を第１原点Ｏとする。また、第２位置データ（移動位置データ）を定義する座標を第２座標と呼び、第２座標の原点を第２原点Ｏ’とする。
【０１０５】
なお、第１原点Ｏ及び第２原点Ｏ’は自律移動体１００の中心位置に限られず、前方データ取得部３１や後方データ取得部３３の取り付け位置など、第１座標上における自律移動体１００の中心位置からの相対位置と、第２座標上における自律移動体１００の中心位置からの相対位置が同一である任意の基準点であってもよい。
【０１０６】
今、第１座標又は第２座標のいずれか１つの座標上に、第１原点Ｏと第２原点Ｏ’が一致するように複数の第１位置データと複数の第２位置データとをプロットすると、図４Ｂの（１）に示すような第１投影物体像（実線）と第２投影物体像（点線）が当該１つの座標上に形成される。
【０１０７】
図４Ｂの（１）に示すように１つの座標上において２つの位置データをプロットした状態にて複数の第２位置データを平行移動すると、図４Ｂの（２）に示すように、第２原点Ｏ’が第１原点Ｏから移動する。また、複数の第２位置データを第２原点Ｏ’の回りに回転移動すると、第２座標のＸ軸（Ｘ’軸）及びＹ軸（Ｙ’軸）がそれぞれ、第１座標のＸ軸及びＹ軸に対して傾く。
【０１０８】
第１実施形態に係る推定部５３１２における移動量の推定方法においては、図４Ｂに示すように、第１投影物体像と移動投影物体像とが一致するように第２座標が典型的には繰り返し平行移動（第２原点Ｏ’を第１原点Ｏから移動）され、及び／又は、第１投影物体像と移動投影物体像とが一致するように第２座標が、典型的には繰り返し、第２原点Ｏ’の回りに回転（移動）される。その後、推定部５３１２が、第１投影物体像と移動投影物体像とが一致したときの第２原点Ｏ’と第１原点Ｏとの間の距離を自律移動体１００が平行移動した推定移動量と推定し、第２座標の各軸の第１座標の対応する軸に対する角度を自律移動体の回転移動の推定移動量（姿勢角変化量）と推定する。
【０１０９】
上記のように、ＩＣＰ法においては、第１投影物体像と移動投影物体像とが一致したときに複数の第１位置データと複数の移動位置データとが全体的に一致したと判断している。これにより、ＩＣＰ法においては、位置データ取得部３にて取得された第１位置データ及び／又は第２位置データにノイズが含まれているような場合でも、精度よく推定移動量を推定できる。
【０１１０】
以下、評価部５３１３が推定移動量及びデータ移動量を評価する方法として上記の（ｉ）及び（ｉｉ）の方法を用いた場合についてそれぞれ、移動量の推定方法を具体的に説明する。
【０１１１】
（ｉ）位置データを移動する毎にデータ移動量を評価する場合
最初に、移動位置データ（第２位置データ）を移動する毎にデータ移動量を評価して推定移動量を推定する方法について、図５を用いて説明する。図５は、移動位置データ（第２位置データ）を移動する毎にデータ移動量を評価して推定移動量を推定する方法を示すフローチャートである。
推定移動量の推定を開始すると、まず、評価部５３１３が、複数の移動位置データ（又は第２位置データ）を移動したデータ移動量が上記の最大走行移動量より大きいかどうかを判定する（ステップＳ１００１）。
【０１１２】
なお、最初の移動量の推定においては、第２位置データの移動は実行されていない（すなわち、データ移動量は０である）ため、上記のステップＳ１００１の判断を行うことなく、推定移動量の推定プロセスは、後述のステップＳ１００３に進んでもよい。
【０１１３】
評価部５３１３が、今回のデータ移動量が最大走行移動量より大であると評価した場合（ステップＳ１００１において「Ｙｅｓ」の場合）、すなわち、データ移動量が不適切であると評価した場合、評価部５３１３は、位置データ移動部５３１２−１に対して、前回の移動位置データ（第２位置データ）をさらに移動するように指令する（ステップＳ１００２）。すなわち、評価部５３１３は、今回の推定移動量を破棄する。
【０１１４】
データ移動量が不適切であると判断されたとき、位置データ移動部５３１２−１は、今回の移動位置データを第２位置データから移動したデータ移動量とは異なるデータ移動量を用いて、次の移動位置データを算出することが好ましい。なぜなら、前回のデータ移動量は不適切なものであるため、前回のデータ移動量を用いて次の移動位置データを算出した場合、上記のステップＳ１００１とＳ１００２とにより処理の無限ループが生じる確率が高くなるからである。
【０１１５】
一方、評価部５３１３が、今回のデータ移動量が最大走行移動量以下であると評価した場合（ステップＳ１００１において「Ｎｏ」の場合）、すなわち、データ移動量が適切であると評価した場合、評価部５３１３は、当該データ移動量を適切な自律移動体１００の移動量として採用する。
【０１１６】
その後、推定移動量の推定プロセスは、今回の移動位置データと第１位置データとが一致しているかどうかを判断するプロセスに進む。具体的には、推定移動量の推定プロセスにおいて、距離算出部５３１２−２が、複数の第１位置データにより形成される第１投影物体像と今回の複数の移動位置データにより形成される移動投影物体像との間の距離（合計距離）を算出する（ステップＳ１００３）。
【０１１７】
合計距離を算出後、第１推定部５３１２−３が、今回算出された合計距離と所定の閾値との比較を行って、第１投影物体像と今回の移動投影物体像とが一致するかどうかを判断する（ステップＳ１００４）。
【０１１８】
合計距離が所定の閾値以下であると判断された場合、すなわち、第１投影物体像と今回の移動投影物体像とが一致すると判断された場合（ステップＳ１００４において「Ｙｅｓ」の場合）、第１推定部５３１２−３は、今回の移動位置データが算出されるまでに第２位置データを移動した平行移動の移動量及び／又は回転移動の移動量（データ移動量）を、自律移動体１００の推定移動量であると推定して、移動量の推定プロセスを終了する。
【０１１９】
一方、合計距離が所定の閾値より大きいために第１投影物体像と今回の移動投影物体像とが一致しないと判断された場合（ステップＳ１００４において「Ｎｏ」の場合）、推定移動量の推定プロセスは、上記のステップＳ１００２に戻る。具体的には、第１推定部５３１２−３が、位置データ移動部５３１２−１に対して、次の移動位置データを算出するように指令する。
【０１２０】
ステップＳ１００４実行後の次の移動位置データの第２位置データからのデータ移動量は、例えば、ステップＳ１００３において算出された今回の合計距離と、前回（まで）の推定移動量の推定において算出された合計距離との比較に基づいて決定できる。
【０１２１】
その後、合計距離が所定の閾値以下となり第１投影物体像と移動投影物体像とが一致すると判断されるまで、上記のステップＳ１００１〜Ｓ１００４が繰り返し実行される。
【０１２２】
上記のステップＳ１００１〜１００４を実行することにより、移動量の推定毎にデータ移動量が適切かどうかを評価し、適切なデータ移動量のみを用いて自律移動体１００の推定移動量の推定を行える。その結果、不適切なデータ移動量により推定移動量の推定を行うことなく、より少ない計算量にて推定移動量を推定できる。
【０１２３】
（ｉｉ）複数の推定移動量を推定後に適切な推定移動量を選択する場合
次に、推定移動量をＩＣＰ法により推定した後に適切な推定移動量を選択するときの移動量の推定方法について、図６を用いて説明する。図６は、複数の推定移動量を推定後に適切な推定移動量を選択するときの推定移動量の推定方法を示すフローチャートである。
上記の推定移動量の推定を開始すると、まず、距離算出部５３１２−２が、第１投影物体像と今回の複数の移動位置データ（又は複数の第２位置データ）により形成される移動投影物体像（又は第２投影物体像）との間の距離（合計距離）を算出する（ステップＳ１１０１）。ステップＳ１１０１においては、推定移動量の推定が最初の推定であるときに合計距離が算出されてもよいし、されなくてもよい。
【０１２４】
合計距離を算出後、第１推定部５３１２−３が、合計距離と所定の閾値との比較に基づいて、第１投影物体像と今回の移動投影物体像とが一致するかどうかを判断する（ステップＳ１１０２）。
合計距離が所定の閾値より大きいために第１投影物体像と今回の移動投影物体像とが一致しないと判断された場合（ステップＳ１１０２において「Ｎｏ」の場合）、第１推定部５３１２−３は、今回の移動位置データの第２位置データからの推定移動量（データ移動量）を、ステップＳ１１０１にて算出された合計距離に関連づけて記憶部５１に記憶する（ステップＳ１１０３）。
【０１２５】
これにより、合計距離が所定の閾値以下でない場合の推定移動量を、後述するステップＳ１１０７において選択可能な推定移動量の候補として記憶部５１に記憶できる。
なお、ステップＳ１１０３において、第１推定部５３１２−３は、今回の推定移動量が最大走行移動量よりも大きいかどうかを判断し、最大走行移動量よりも大きい推定移動量は記憶部５１に記憶しないようにしてもよい。これにより、適切な推定移動量のみを記憶部５１に記憶できる。
【０１２６】
今回の推定移動量を記憶後、第１推定部５３１２−３が、位置データ移動部５３１２−１に対して、次の移動位置データを算出するように指令する（ステップＳ１１０４）。
その後、移動量の合計距離が所定の閾値以下となり第１投影物体像と移動投影物体像とが一致すると判断されるまで、上記のステップＳ１１０１〜Ｓ１１０４が繰り返し実行される。
【０１２７】
一方、合計距離が所定の閾値以下であると判断され第１投影物体像と今回の移動投影物体像とが一致すると判断された場合（ステップＳ１１０２において「Ｙｅｓ」の場合）、評価部５３１３が、今回の移動位置データの第２位置データからの最終的に算出された推定移動量が最大走行移動量よりも大きいかどうかを判断して、最終的に算出された推定移動量を評価する（ステップＳ１１０５）。
【０１２８】
最終的に算出された推定移動量が最大走行移動量以下であると判断された場合（ステップＳ１１０５において「Ｎｏ」の場合）、評価部５３１３は、当該最終的に算出された推定移動量が適切な推定移動量であると評価し、当該最終的に算出された推定移動量を、所定の期間に自律移動体１００が移動した移動量として採用する（ステップＳ１１０６）。その後、移動量の推定プロセスを終了する。
【０１２９】
一方、最終的に算出された推定移動量が最大走行移動量よりも大きいと判断された場合（ステップＳ１１０５において「Ｙｅｓ」の場合）、評価部５３１３は、当該最終的に算出された推定移動量は不適切と評価し、当該最終的に算出された推定移動量を破棄する。
そして、評価部５３１３は、記憶部５１に記憶された推定移動量の候補から１つを選択し、選択した推定移動量を所定の期間に自律移動体１００が移動した移動量として採用する（ステップＳ１１０７）。
【０１３０】
具体的には、評価部５３１３は、記憶部５１に記憶された推定移動量のうち、関連づけられた合計距離が最小である推定移動量を、所定の期間に自律移動体１００が移動した移動量として採用する。このとき、ステップＳ１１０３において算出された全ての推定移動量を記憶部５１に記憶した場合、評価部５３１３は、採用した推定移動量が最大走行移動量よりも大きい場合には当該採用した推定移動量を破棄し、次に合計距離が小さい推定移動量（最大走行移動量以下の推定移動量）を所定の期間に自律移動体１００が移動した移動量として採用する。その後、推定移動量の推定プロセスを終了する。
【０１３１】
上記のステップＳ１１０１〜Ｓ１１０７を実行することにより、最終的に算出された推定移動量が「最適解」ではあるけれども最大走行移動量よりも大きいために不適切な推定移動量であった場合に、記憶部５１などに記憶された「次の最適解」となる適切な推定移動量を最終的な推定移動量として採用できる。
【０１３２】
つまり、推定移動量の推定が最終的には失敗と判断されるような場合でも、過去の推定結果の中から合理的な「次の最適解」を見つけることにより、自律移動体１００の推定移動量の推定が失敗して推定移動量が推定できない場合が発生することを回避できる。
【０１３３】
ＩＩ．自律移動体の動作
次に、本実施形態の自律移動体１００の具体的な動作について、図７を用いて説明する。図７は、自律移動体の動作を示すフローチャートである。以下においては、自律移動体１００が記憶部５１などに記憶された予め決められた複数の目標点を通過しながら、最終的な目標点まで自律的に移動するときの動作について説明する。
まず、自律移動体１００が自律的な移動を開始すると、まず、自律移動体１００の移動前及び移動後において、位置データ取得部３が複数の位置データを取得する（ステップＳ１）。そして、取得した複数の位置データ（第１位置データ、第２位置データ）が位置データ記憶部５３１１に記憶される。
【０１３４】
複数の第１位置データと複数の第２位置データを取得後、図５に示した上記のステップＳ１００１〜Ｓ１００４、及び／又は、図６に示した上記のステップＳ１１０１〜Ｓ１１０７を実行して、自律移動体１００の移動量を推定する（ステップＳ２）。
【０１３５】
自律移動体１００の移動量を推定後、位置推定部５５は、移動量推定部５３から上記のステップＳ２において推定された推定移動量を入力し、入力した推定移動量に基づいて、上記に説明したマップマッチングによる自律移動体１００の位置の推定方法を用いて、自律移動体１００の現在位置を推定する（ステップＳ３）。
【０１３６】
自律移動体１００の現在位置を推定後、走行制御部５７は、自律移動体１００が現在位置から次の目標位置まで移動するための駆動信号を算出し、走行部２のモータ２３ａ、２３ｂに出力する（ステップＳ４）。
【０１３７】
具体的には、走行制御部５７が、位置推定部５５から上記のステップＳ５にて推定された自律移動体１００の現在位置を入力する。また、走行制御部５７は、入力した現在位置に基づいて、次の目標位置を記憶部５１などから読み出す。その後、走行制御部５７は、自律移動体１００の現在位置から、読み出した次の目標位置まで自律移動体１００を移動させるための制御指令を算出する。
走行制御部５７にて算出される制御指令は、例えば、現在位置から次の目標位置まで移動する間の時間と自律移動体１００の速度（車輪２１ａ、２１ｂの回転速度、すなわち、モータ２３ａ、２３ｂの回転速度）との関係を表したデータとして算出される。
【０１３８】
制御指令を算出後、走行制御部５７は、算出した制御指令に基づいて、モータ２３ａ、２３ｂを駆動（制御）する駆動信号を算出し、算出した駆動信号を走行部２のモータ２３ａ、２３ｂに出力する。
【０１３９】
駆動信号を走行部２に出力後、制御部５は、例えば、記憶部５１に記憶されている全ての目標位置を自律移動体１００が通過したかどうかを判断して、自律移動を終了するかどうかを判断する（ステップＳ５）。
例えば、自律移動体１００が全ての目標位置を通過していないと判断して、自律移動を継続すると判断した場合（ステップＳ５において「Ｎｏ」の場合）、自律移動のプロセスはステップＳ１に戻り、自律移動を継続する。
【０１４０】
一方、自律移動体１００が全ての目標位置を通過して自律移動を終了すると判断した場合（ステップＳ５において「Ｙｅｓ」の場合）、自律移動のプロセスを終了する。
【０１４１】
第１実施形態の移動量推定部５３においては、ＩＣＰ法を用いて推定された自律移動体１００の推定移動量が、走行部２によって自律移動体１００が走行可能な最大走行移動量に基づいて評価されている。第１実施形態においては、評価部５３１３は、推定移動量が最大走行移動量よりも大きくなった場合に推定移動量を不適切と評価し、当該推定移動量を破棄している。一方、推定移動量が最大走行移動量以下である場合には、当該推定移動量を適切であると評価して、当該推定移動量を自律移動体１００の移動量として採用している。
【０１４２】
これにより、走行部２の走行性能を考慮して推定移動量が不合理（不適切）である場合には当該不適切な推定移動量を自律移動体１００の移動量として採用しない（すなわち、不適切な推定移動量を破棄する）一方、走行性能を考慮して推定移動量が合理的な（適切な）場合には、当該推定移動量を自律移動体１００の推定移動量として採用できる。その結果、不適切な推定移動量が自律移動体１００の所定の期間における推定移動量と誤って推定される場合に、推定移動量が不適切となることを回避できる。さらに、全ての推定移動量が不適切として破棄される、すなわち推定移動量の推定が失敗して推定移動量が推定できない場合に、最大走行移動量を自律移動体１００の推定移動量として採用してもよい。これにより、推定移動量が不明（不定）となることを回避できる。
【０１４３】
２．第２実施形態
第１実施形態において、評価部５３１３は、自律移動体１００の最大速度と所定の期間との積を最大走行移動量としていた。しかし、上記最大走行移動量の決定方法は、これに限られない。第２実施形態においては、最大走行移動量を、車輪２１ａ、２１ｂ（モータ２３ａ、２３ｂ）を制御するための信号である制御信号に基づいて決定する。
【０１４４】
第２実施形態に係る自律移動体１００は、移動量推定部５３の移動量算出部５３１が、走行制御部５７からの制御信号に基づいて最大走行移動量を算出する制御移動量推定部５３１４（後述）を有する以外は、第１実施形態の自律移動体１００と同様の構成を備えている。従って、以下においては、第２実施形態の移動量算出部５３１’の構成についてのみ図８Ａを用いて説明し、他の構成や推定方法などについては説明を省略する。
【０１４５】
図８Ａに示すように、第２実施形態の移動量算出部５３１’は、位置データ記憶部５３１１と、推定部５３１２と、評価部５３１３と、さらに、制御移動量推定部５３１４とを有する。
第２実施形態の移動量算出部５３１’の位置データ記憶部５３１１と、推定部５３１２と、評価部５３１３は、第１実施形態の位置データ記憶部５３１１と、推定部５３１２と、評価部５３１３と同様の構成及び機能を有しているので、ここでは説明を省略する。
【０１４６】
制御移動量推定部５３１４は、制御移動量を算出する。制御移動量は、自律移動体１００の移動中の所定の期間において走行部２を制御する際に、走行制御部５７が走行部２に出力した加速度指令値及び／又は速度指令値に基づいて算出される移動量である。
【０１４７】
上記のように、加速度指令値及び／又は速度指令値は、走行制御部５７において算出される制御指令に含まれている。よって、制御移動量推定部５３１４は、走行制御部５７から制御指令を入力可能となっている。
【０１４８】
上記の加速度指令値及び／又は速度指令値は、典型的には、モータ２３ａ、２３ｂを制御中の時間と、当該制御中の時間における自律移動体１００の移動速度（又はモータ２３ａ、２３ｂの回転速度）との関係により表されている。従って、制御移動量推定部５３１４は、例えば、制御中の時間との関係により表された加速度指令値及び／又は速度指令値を時間により積分することにより、制御指令から自律移動体１００の移動量を推定できる。
なお、加速度指令値及び／又は速度指令値などを含む制御指令に基づいて推定（算出）された移動量のことを、「制御移動量」と呼ぶことにする。
【０１４９】
また、第２実施形態においては、評価部５３１３は、上記の制御移動量を最大走行移動量とする。なぜなら、上記の制御移動量が、走行部２の物理的な影響（車輪２１ａ、２１ｂの滑りなど）などを考慮しない場合の自律移動体１００の移動量に対応し、上記の物理的な影響などにより、自律移動体１００は、制御移動量よりも少ない移動量にて移動することが多いからである。
【０１５０】
制御移動量を最大走行移動量とすることにより、走行指令により走行可能な最大の移動量を用いて、より厳密な推定移動量の評価が可能となる。
【０１５１】
また、制御移動量は、上記のように制御指令に含まれる加速度指令値及び／又は速度指令値に基づいて推定される移動量に限られない。変形例として、車輪２１ａ、２１ｂ（モータ２３ａ、２３ｂ）の回転数などが測定可能な場合には、車輪２１ａ、２１ｂの回転量に基づいて制御移動量を算出してもよい。
【０１５２】
制御移動量推定部５３１４は、図８Ｂに示すように、モータ２３ａ、２３ｂのエンコーダからのパルス信号から車輪２１ａ、２１ｂの回転数を測定し、所定の期間の車輪２１ａ、２１ｂの回転量（回転数）に基づいて制御移動量を算出する。なお、車輪２１ａ、２１ｂの回転量に基づいた制御移動量のことを、車輪移動量と呼ぶことにする。図８Ｂは、車輪の回転量に基づいて制御移動量を算出する移動量算出部の構成を示す図である。
【０１５３】
上記において、所定の期間の車輪２１ａ、２１ｂの回転量は、例えば、所定の期間におけるパルス信号に含まれるパルス数と、車輪２１ａ、２１ｂの一回転あたりのパルス信号に含まれるパルス数との比により算出できる。また、車輪移動量は、例えば、上記の車輪２１ａ、２１ｂの回転量と車輪２１ａ、２１ｂの円周長さなどとに基づいて算出できる。
【０１５４】
典型的に、上記の車輪移動量は、車輪２１ａ、２１ｂと移動面との間の滑りなどにより、実際の自律移動体１００の移動量よりも大きくなる傾向にある。従って、上記の車輪移動量を評価部５３１３において最大走行移動量として用いても、より厳密な推定移動量の評価が可能となる。
【０１５５】
また、上記のように車輪２１ａ、２１ｂの回転量を測定可能な場合、評価部５３１３は、推定部５３１２において推定された推定移動量が不適切と判断したときに、車輪２１ａ、２１ｂの回転量に基づいて算出された車輪移動量を、自律移動体１００の移動量と推定してもよい。車輪２１ａ、２１ｂの回転量に基づく車輪移動量は、車輪２１ａ、２１ｂの滑りなどにより実際の移動量よりも大きくなる傾向にある一方で、不適切な推定移動量よりもより走行部２に基づいた移動量であると言える。
【０１５６】
従って、推定移動量を不適切と判断した場合に上記の車輪移動量を自律移動体１００の移動量と推定することにより、不適切な推定移動量よりもより実際に近い移動量を所定の期間の自律移動体１００の移動量と推定できる。すなわち、より正確に移動量を推定できる。
なお、推定移動量を不適切と判断した場合に上記の制御移動量を自律移動体１００の移動量と推定しても、上記と同様な効果が得られる。
【０１５７】
３．第３実施形態
上記の第１及び第２実施形態においては、推定部５３１２は、ＩＣＰ法により推定移動量を推定していた。しかし、推定移動量を推定する方法は、ＩＣＰ法に限らない。第３実施形態においては、ヒストグラムマッチング法により推定移動量を推定する。
【０１５８】
ヒストグラムマッチング法は、図９に示すように、複数の第１位置データの所定の座標における座標値から生成される第１ヒストグラムと、複数の第２位置データの所定の座標における座標値から生成される第２ヒストグラムを一致するように、第１ヒストグラム又は第２ヒストグラム（本実施形態においては、第２ヒストグラム）を上記の所定の座標において移動させる方法である。図９は、ヒストグラムマッチング法を模式的に示す図である。
【０１５９】
ヒストグラムマッチング法においては、第１ヒストグラムと第２ヒストグラムとが一致しているかどうかは、第１ヒストグラムと第２ヒストグラムとの一致度が最大であるかどうかにより判断される。なお、本実施形態では、相互相関関数を用いて第１ヒストグラムと第２ヒストグラムとの一致度を算出する。後述するように、相互相関関数は、第１ヒストグラム又は第２ヒストグラムの元のヒストグラムからの移動量の関数であり、ヒストグラムマッチング法においては、相互相関関数（一致度）が最大値となる上記のヒストグラムの移動量の値を推定移動量とする。なお、本実施形態においては相互相関関数を用いて上記の第１ヒストグラムと第２ヒストグラムとの一致度を算出しているが、これに限らず、正規化相互相関関数やゼロ平均正規化相互相関関数などを適宜用いて第１ヒストグラムと第２ヒストグラムの一致度を算出してもよい。
【０１６０】
第３実施形態においては、移動量推定部５３（移動量算出部５３１）の推定部５３１２がヒストグラム生成部５３１２−４と第２推定部５３１２−５とを有している点、評価部５３１３がヒストグラムの移動量を最大走行移動量に基づいて評価する点が、上記の第１及び第２実施形態とは異なる。よって、以下に、移動量算出部５３１の構成と、第３実施形態における推定移動量の推定方法について説明する。自律移動体１００のその他の構成については、第１及び第２実施形態と同じであるので、説明を省略する。
【０１６１】
（１）移動量算出部の構成
まず、第３実施形態の移動量算出部５３１’’の構成について、図１０を用いて説明する。図１０は、第３実施形態の移動量算出部の構成を示す図である。図１０に示すように、第３実施形態の移動量算出部５３１’’は、位置データ記憶部５３１１と、推定部５３１２’と、評価部５３１３’とを有する。
位置データ記憶部５３１１は、第１及び第２実施形態の位置データ記憶部と同様の構成及び機能を有しているので、ここでは説明を省略する。
【０１６２】
推定部５３１２’は、ヒストグラムマッチング法を用いて推定移動量を推定する。従って、推定部５３１２’は、ヒストグラム生成部５３１２−４と、第２推定部５３１２−５と、を有する。ヒストグラム生成部５３１２−４は、複数の第１位置データから第１ヒストグラムを生成し、複数の第２位置データから第２ヒストグラムを生成する。
【０１６３】
第１ヒストグラムは、複数の第１位置データの所定の座標の所定の座標軸における座標値から生成されるヒストグラムである。第２ヒストグラムは、複数の第２位置データの所定の座標軸における座標値から生成されるヒストグラムである。
【０１６４】
例えば、所定の座標が二次元の場合、複数の第１位置データ及び複数の第２位置データにおいてそれぞれ、Ｘ座標の所定の座標値が出現する頻度を所定の範囲に含まれるＸ座標値のそれぞれについて計数し、当該Ｘ座標値と出現頻度とを関連づけることにより、Ｘ座標値の関数である第１ヒストグラムＨ１１（Ｘ）及び第２ヒストグラムＨ２１（Ｘ）が生成される。
また、上記のＸ座標値の場合と同様にしてＹ座標値に対して第１ヒストグラムＨ１１（Ｙ）及び第２ヒストグラムＨ２１（Ｙ）が生成される。
【０１６５】
これに加えて、本実施形態においては、所定の位置データと当該所定の位置データに隣接する位置データとを結ぶ直線と所定の座標の座標軸（本実施形態においてはＸ軸。しかし、Ｘ軸に限られずＹ軸としてもよい）とが成す角度が現れる頻度を、姿勢角度θ（例えば、自律移動体１００の進行方向の所定の座標のＸ軸となす角度として定義できる）についての第１ヒストグラムＨ１１（θ）及びＨ２１（θ）として生成する。
【０１６６】
第２推定部５３１２−５は、第１ヒストグラムと第２ヒストグラムとの相互相関関数を算出する。本実施形態においては、例えば、姿勢角度θのヒストグラムの相互相関関数を算出する。具体的には、Ｈ１１（θ）と、Ｈ２１（θ）をａだけ移動したヒストグラムとの積であるＨ１１（θ）＊Ｈ２１（θ−ａ）をとりうるθの値だけ加算した関数（Ｈ１１（θ）＊Ｈ２１（θ−ａ）のθに対する積分値であるとも言える）を相互相関関数として算出する。他の座標軸のヒストグラムに対しても同様にして相互相関関数を算出できる。
上記の相互相関関数は、図９に示すように、第２ヒストグラムを姿勢角度θ（及び座標軸）についてａだけシフトしたヒストグラムと第１ヒストグラムとの一致度を表している。このように、相互相関関数はヒストグラムのシフト量ａの関数であると言える。
【０１６７】
なお、Ｘ座標値やＹ座標値の関数である第２ヒストグラムをシフトすることは、第２位置データを当該シフト量に対応する移動量だけ平行移動して移動位置データを算出したことに対応する。一方、姿勢角度θの関数である第２ヒストグラムをシフトすることは、第２位置データを当該シフト量に対応する移動量だけ回転移動して移動位置データを算出したことに対応する。
【０１６８】
また、第２推定部５３１２−５は、上記の相互相関関数が最大値となった場合、第１ヒスグラムとａ値だけシフトされた第２ヒストグラムとが最も一致したと判断し、複数の第１位置データにより形成される第１投影物体像と、複数の移動位置データにより形成される移動投影物体像とが一致したと判断する。そして、第２推定部５３１２−５は、相互相関関数が最大値となったときのａ値（すなわち、第２ヒストグラムの移動量）を自律移動体１００の移動量（推定移動量）と推定する。なお、上記の第１ヒストグラムと第２ヒストグラムとが「最も一致する」の定義としては、本実施形態で用いる「相互相関関数が最大値になる場合」の他に、例えば姿勢角度θにおいて「ある姿勢角度変化量（すなわちヒストグラムの移動量）とその前後の角度変化量とにおける相互相関関数の合計値が最大になる場合」などを適宜用いてもよい。
【０１６９】
評価部５３１３’は、上記の最大走行移動量に基づいて、相互相関関数において第１ヒストグラム又は第２ヒストグラムを移動させる移動量（すなわち、上記の例ではａ値）をデータ移動量として評価する。具体的には、評価部５３１３’は、ヒストグラムを移動させる移動量の上限値及び／又は下限値を、最大走行移動量に基づいて決定する。
【０１７０】
本実施形態においては、最大走行移動量が走行部２の走行性能を考慮した自律移動体１００の移動量の最大値に対応しているため、評価部５３１３’は、シフト量ａの上限値及び下限値の絶対値を最大走行移動量と設定する。これにより、第２推定部５３１２−５は、最大走行移動量の範囲にてａ値を走査して相互相関関数を算出し、当該ａ値の範囲内での相互相関関数の最大値を、実際の相互相関関数の最大値とみなす。すなわち、たとえ最大走行移動量の範囲外のａ値において真の相互相関関数の最大値が存在したとしても、第２推定部５３１２−５は、当該最大走行移動量の範囲外のａ値を、自律移動体１００の推定移動量としない。
【０１７１】
上記のように、ａ値の上限値及び下限値の絶対値を最大走行移動量と設定することにより、推定移動量としては適切でない範囲において第１ヒストグラム又は第２ヒストグラムを無駄に移動させることを抑制できる。その結果、相互相関関数を用いた推定移動量の推定時間を短縮できるとともに、ヒストグラムマッチング法において走行部２の移動性能を超えるような推定移動量を算出することを抑制できる。
【０１７２】
（２）移動量の推定方法
次に、第３実施形態における推定移動量の推定方法について、図１１を用いて説明する。図１１は、第３実施形態における推定移動量の推定方法を示すフローチャートである。
推定移動量の推定を開始すると、まず、評価部５３１３’が、第２推定部５３１２−５におけるヒストグラムの移動量（ａ値）の走査範囲を設定する（ステップＳ２００１）。上記のように、評価部５３１３’は、第２推定部５３１２−５におけるヒストグラムの座標値の走査範囲の下限値及び上限値の絶対値を最大走行移動量と設定する。
【０１７３】
ヒストグラムの座標値の走査範囲を設定後、ヒストグラム生成部５３１２−４が、上記に説明した方法にて、複数の第１位置データから第１ヒストグラムを、複数の第２位置データから第２ヒストグラムを生成する（ステップＳ２００２）。
【０１７４】
ヒストグラムを生成後、第２推定部５３１２−５は、第１ヒストグラムと第２ヒストグラムとの相互相関関数の式を上記に説明したように、ａ値の関数として算出する（ステップＳ２００３）。その後、第２推定部５３１２−５は、座標値の走査範囲内の所定のａ値に対して相互相関関数の値を算出し、当該ａ値と相互相関関数の値とを関連づけて記憶部５１などに記憶する。
【０１７５】
上記の所定のａ値に対して相互相関関数を算出後、第２推定部５３１２−５は、設定した走査範囲内の全てのａ値に対して相互相関関数を算出したかどうかを判断する（ステップＳ２００４）。設定した走査範囲内の全てのａ値に対して相互相関関数の値を算出していないと判断した場合（ステップＳ２００４において「Ｎｏ」の場合）、第２推定部５３１２−５はａ値をさらに変化させる（ステップＳ２００５）。
ａ値を変化後、移動量の推定プロセスはステップＳ２００３に戻り、前回から値を変化したａ値に対して新たな相互相関関数の値を算出し記憶する。すなわち、移動量の推定プロセスは、当該ａ値の変化と相互相関関数の値の算出とを、走査範囲内の全てのａ値に対して行うまで繰り返す。
【０１７６】
一方、現在のａ値が設定された走査範囲の上限値又は下限値に到達して、走査範囲内の全てのａ値に対して相互相関関数の値が算出されたと判断された場合（ステップＳ２００４において「Ｙｅｓ」の場合）、第２推定部５３１２−５は、記憶されている相互相関関数の値のうち、最大値を有する相互相関関数を検索する。その後、第２推定部５３１２−５は、当該最大値を有する相互相関関数に関連づけられているａ値を、自律移動体１００の推定移動量と推定する（ステップＳ２００６）。
【０１７７】
上記のように、ステップＳ２００１において評価部５３１３’がヒストグラム（第２ヒストグラム）の座標値の移動範囲（走査範囲）を設定することにより、上記のステップＳ２００３〜Ｓ２００５におけるａ値の変化と相互相関関数の値の算出とを繰り返す回数を、とりうる全てのａ値の範囲（例えば、位置データ取得部３の位置データの検出範囲）にて相互相関関数の値を算出する場合と比較して減少できる。その結果、とりうる全てのａ値にて走査する場合と比較して、推定移動量の推定時間を短縮できる。
【０１７８】
また、相互相関関数を算出するａ値の上限値及び／下限値を最大走行移動量と設定することにより、すなわち、ａ値を絶対値が最大走行移動量以下となる範囲にて走査し、当該ａ値の範囲内の相互相関関数の最大値となるａ値を自律移動体１００の移動量（推定移動量）として採用することにより、最大走行移動量を越えるような合理的でないａ値が推定移動量として推定されることを回避できる。
【０１７９】
４．第４実施形態
上記の第１〜第３実施形態においては、位置推定部５５は、位置データ取得部３にて取得した複数の位置データから推定された１つの推定移動量のみを用いて、自律移動体１００の位置を推定していた。しかし、これに限られず、第４実施形態においては、位置推定部５５は複数の推定移動量を入力して、入力した複数の推定移動量のそれぞれに基づいて自律移動体１００の位置を推定する。すなわち、第４実施形態において、位置推定部５５は複数の自律移動体１００の位置を推定している。
【０１８０】
また、第４実施形態において、位置推定部５５は、推定した複数の位置のうち、最もマップマッチング結果がよかった位置を、自律移動体１００の位置と推定する。従って、第４実施形態においては、位置推定部５５において複数の位置推定が実行される点が、第１〜第３実施形態とは異なっている。従って、以下においては、第４実施形態の位置推定部５５における位置推定方法について説明し、自律移動体１００の他の構成や推定方法などについては説明を省略する。
【０１８１】
（１）第４実施形態における位置推定方法
以下、第４実施形態における位置推定方法について、図１２を用いて説明する。図１２は、第４実施形態における位置推定方法を示すフローチャートである。以下の説明においては、位置データ取得部３において取得した位置データを用いて上記の第１〜第３実施形態において説明したように推定した推定移動量と、車輪２１ａ、２１ｂの回転量に基づいて推定された自律移動体１００の移動量（車輪移動量）との２つの移動量を用いて位置推定を行う場合を例にとって説明する。なお、車輪移動量は、車輪２１ａ、２１ｂの移動前後の回転量と車輪２１ａ、２１ｂの円周長さ（車輪２１ａ、２１ｂの半径の２π倍）などとに基づいて算出できる。
【０１８２】
位置推定部５５が自律移動体１００の位置の推定を開始すると、位置推定部５５は、上記の複数の位置データを用いて推定された推定移動量と、車輪２１ａ、２１ｂの回転量に基づいて算出（推定）された車輪移動量とを入力する（ステップＳ４００１）。
【０１８３】
推定移動量と車輪移動量とを入力後、位置推定部５５は、推定移動量を第１実施形態において説明した「仮の現在位置」を算出するための移動量として用いて第１実施形態において説明した位置推定方法（マップマッチングによる位置の推定方法）により自律移動体１００の位置を推定する（ステップＳ４００２）。
それと同時、または、ステップＳ４００２の実行後に、位置推定部５５は、車輪移動量を「仮の現在位置」を算出するための移動量として用いて第１実施形態において説明した位置推定方法により自律移動体１００の位置を推定する（ステップＳ４００３）。
【０１８４】
推定移動量と車輪移動量とを用いて自律移動体１００の位置を推定後、位置推定部５５は、推定移動量を用いて位置を推定したときの事後確率分布の最大値と、車輪移動量を用いて位置を推定したときの事後確率分布の最大値のいずれが大きいかを判断する（ステップＳ４００４）。
事後確率は、マップマッチング結果の良し悪しを示す指標であって、マップマッチングの結果がよいほど、すなわち、より正確に位置が推定されているほど大きな値となる。
【０１８５】
推定移動量を用いて位置を推定したときの事後確率の方が大きいと判断された場合（ステップＳ４００４において「推定移動量」の場合）、位置推定部５５は、推定移動量を用いて推定した位置を、自律移動体１００の位置であると推定する（ステップＳ４００５）。
一方、車輪移動量を用いて位置を推定したときの事後確率の方が大きいと判断された場合（ステップＳ４００４において「車輪移動量」の場合）、位置推定部５５は、車輪移動量を用いて推定した位置を、自律移動体１００の位置であると推定する（ステップＳ４００６）。その後、位置推定プロセスを終了する。
【０１８６】
上記のように、複数（２つとは限らない）の移動量の推定値を用いて自律移動体１００の位置を推定し、事後確率分布の最大値が最も大きい自律移動体１００の推定位置を、実際の自律移動体１００の位置と推定することにより、１つの移動量を用いるよりも、より精度よく自律移動体１００の位置を推定できる。
【０１８７】
５．他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。例えば、上記の第１実施形態〜第４実施形態をすべて組み合わせてもよい。これにより、上記の第１実施形態〜第４実施形態において説明した全ての効果を、自律移動体１００が有することができる。
【０１８８】
（Ａ）走行部の他の実施形態
上記の第１実施形態における走行部２は、二輪差動型の走行部であった。しかし、これに限られず、オムニホイールなどの他の車輪を有する走行部を用いてもよい。また、走行部２は車輪２１ａ、２１ｂの回転により移動するものに限られず、車輪以外の他のアクチュエータの動きにより移動可能なものであってもよい。
【０１８９】
（Ｂ）移動量推定部の他の実施形態
上記の第１〜第４実施形態において、車輪２１ａ、２１ｂの回転量に基づいて車輪移動量が算出された場合に、算出した車輪移動量を特に補正していなかった。しかし、これに限られず、車輪移動量を、複数の位置データを用いて推定した推定移動量を用いて補正してもよい。これにより、例えば、車輪２１ａ、２１ｂの使用により車輪２１ａ、２１ｂの径が変化した場合でも、車輪２１ａ、２１ｂの回転量に基づいて正確に自律移動体１００の移動量を推定できる。
【０１９０】
（Ｃ）移動量の算出方法の他の実施形態
上記の第１〜第４実施形態において、移動量推定部５３はＩＣＰ法又はヒストグラムマッチング法のいずれか１つのみを用いて複数の位置データから移動量を推定していた。しかし、これに限られない。移動量推定部５３において、ＩＣＰ法と上記のヒストグラムマッチング法とを組み合わせて、複数の位置データから移動量を推定してもよい。
【０１９１】
例えば、まず、ヒストグラムマッチング法により複数の位置データを用いて、自律移動体１００の回転運動の移動量（姿勢角変化）を算出し、その後、ＩＣＰ法により平行移動（並進運動）の移動量を算出してもよい。これにより、並進運動の移動量を推定する場合に、回転中心がずれた状態にて並進運動の移動量が推定されることを低減できる。
【０１９２】
（Ｄ）本体部の他の実施形態
上記の第１〜第４実施形態に係る自律移動体１００の本体部１には、位置データ取得部３の位置データ検出可能領域に干渉するような部材は特に取り付けられていなかった。しかし、これに限られず、本体部１に、位置データ取得部３の位置データ検出可能領域に少なくとも一部が入るように、既知の形状の干渉部材を取り付けてもよい。
【０１９３】
本体部１に、少なくとも一部が位置データ検出可能領域に入るように干渉部材を取り付けることにより、位置データ取得部３が正常に動作しているかどうかを確認できる。例えば、自律移動体１００の周囲に壁や障害物などの物体が存在しない場合などに、干渉部材の一部の形状に対応する投影物体像が複数の位置データのいくつかにより形成されていれば、位置データ取得部３の異常により位置データが取得されないのではなく、自律移動体１００が、物体が存在しない広い空間を移動中であると判断できる。
【０１９４】
（Ｅ）最大走行移動量についての他の実施形態
上記の第１〜第４実施形態において、最大走行移動量の値の範囲に幅を持たせていなかった。しかし、これに限られず、上記の最大走行移動量の値にある程度の幅を持たせてもよい。これにより、推定移動量が若干最大走行移動量を超えても、その超過量が許容範囲（ある程度の幅以内）であれば、当該推定移動量を適切な推定移動量と判断できる。また、最大走行移動量が有する上記の幅を、例えば、走行状態に応じて異ならせてもよい。例えば、自律移動体１００の移動の様態が前進移動に限られることが分かっている場合、後進方向の最大走行移動量を小さくしてもよい。これにより、自律移動体１００が、本来移動するはずのない後進方向に対して移動したと推定された場合に、当該推定移動量をより不適切な推定移動量と判断できる。
【０１９５】
（Ｆ）ヒストグラムマッチング法により推定された移動量の評価方法の他の実施形態
上記の第３実施形態において、評価部５３１３’は、相互相関関数の上記のａ値の走査範囲の上限値及び下限値の絶対値を最大走行移動量と設定していた。つまり、第３実施形態においては、適切な移動量の範囲内でａ値が走査されていた。
しかし、ヒストグラムマッチング法により推定された移動量の評価方法は、これに限られない。例えば、相互相関関数のａ値の走査範囲には特に制限を設けず、相互相関関数が最大値となるａ値（の絶対値）が最大走行移動量よりも大きいかどうかを評価部５３１３’が評価してもよい。
【０１９６】
このとき、評価部５３１３’は、例えば、相互相関関数が最大値となるａ値（の絶対値）が最大走行移動量よりも大きくなる場合に当該ａ値を不適切と評価して破棄する一方、ａ値（の絶対値）が最大走行移動量以下の場合には当該ａ値を適切と評価して自律移動体１００の移動量として採用できる。
【０１９７】
または、上記の第１実施形態において説明したように、ａ値（の絶対値）が最大走行移動量以下である場合の相互相関関数の算出値を記憶部５１などに記憶し、最終的に算出されたａ値（の絶対値）が最大走行移動量よりも大きい場合に、記憶したａ値のうち相互相関関数の算出値が最大のａ値を自律移動体１００の移動量として採用してもよい。
【０１９８】
上記のように、相互相関関数が最大となるａ値が最大走行移動量よりも大きいかどうかに基づいてａ値が適切かどうかを評価することによっても、ヒストグラムマッチング法による適切な推定移動量を自律移動体１００の移動量とできる。
【産業上の利用可能性】
【０１９９】
本発明は、本体の位置を推定しながら移動可能な移動体に広く適用できる。
【符号の説明】
【０２００】
１００ 自律移動体
１     本体部
２     走行部
２１ａ、２１ｂ車輪
２３ａ、２３ｂモータ
３     位置データ取得部
３１   前方データ取得部
３３   後方データ取得部
５     制御部
５１   記憶部
５３   移動量推定部
５３１、５３１'、５３１''   移動量算出部
５３１１      位置データ記憶部
５３１２、５３１２'  推定部
５３１２−１  位置データ移動部
５３１２−２  距離算出部
５３１２−３  第１推定部
５３１２−４  ヒストグラム生成部
５３１２−５  第２推定部
５３１３、５３１３'  評価部
５３１４      制御移動量推定部
５５   位置推定部
５７   走行制御部
７     操作部
７１ａ、７１ｂ       操作ハンドル
８     補助輪部
８ａ、８ｂ    補助車輪
９     取付部材
Ｈ１１（θ）  第１ヒストグラム（姿勢角度の関数）
Ｈ２１（θ）  第２ヒストグラム（姿勢角度の関数）
【図１】
0006626248.tif 000002
【図２】
0006626248.tif 000003
【図３】
0006626248.tif 000004
【図４Ａ】
0006626248.tif 000005
【図４Ｂ】
0006626248.tif 000006
【図５】
0006626248.tif 000007
【図６】
0006626248.tif 000008
【図７】
0006626248.tif 000009
【図８Ａ】
0006626248.tif 000010
【図８Ｂ】
0006626248.tif 000011
【図９】
0006626248.tif 000012
【図１０】
0006626248.tif 000013
【図１１】
0006626248.tif 000014
【図１２】
0006626248.tif 000015