JP2016103269A - 移動量推定装置、自律移動体、及び移動量の推定方法 - Google Patents

移動量推定装置、自律移動体、及び移動量の推定方法 Download PDF

Info

Publication number
JP2016103269A
JP2016103269A JP2015220609A JP2015220609A JP2016103269A JP 2016103269 A JP2016103269 A JP 2016103269A JP 2015220609 A JP2015220609 A JP 2015220609A JP 2015220609 A JP2015220609 A JP 2015220609A JP 2016103269 A JP2016103269 A JP 2016103269A
Authority
JP
Japan
Prior art keywords
movement amount
movement
histogram
position data
amount
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.)
Granted
Application number
JP2015220609A
Other languages
English (en)
Other versions
JP6589578B2 (ja
Inventor
遊亀 傳田
Yuki Denda
遊亀 傳田
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.)
Murata Machinery Ltd
Original Assignee
Murata Machinery 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 Murata Machinery Ltd filed Critical Murata Machinery Ltd
Publication of JP2016103269A publication Critical patent/JP2016103269A/ja
Application granted granted Critical
Publication of JP6589578B2 publication Critical patent/JP6589578B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

【課題】センサにより取得したデータを用いた移動量の算出において、精度よく高速に移動量を算出する。【解決手段】移動量推定装置53は、位置データ取得部3と、第1移動量算出部5312と、位置データ移動部5313と、第2移動量算出部5314と、第3移動量算出部5315と、を備える。位置データ取得部3は位置データを取得する。第1移動量算出部5312は第1ヒストグラムと第2ヒストグラムとが最も一致したときの第2ヒストグラムの移動量を第1移動量として算出する。位置データ移動部5313は複数の第2位置データを第1移動量だけ移動して複数の第2移動位置データを算出する。第2移動量算出部5314は第1投影物体像と第2移動投影物体像とが一致したときの第1移動位置データの移動量を第2移動量と算出する。第3移動量算出部5315は第1移動量と第2移動量とを積算して移動体100の移動量を算出する。【選択図】図8

Description

本発明は、自身の位置を推定しながら移動可能な移動体の移動量を推定する移動量推定装置、当該移動量の推定方法、及び上記の移動量推定装置を備える自律移動体に関する。
従来、自身の位置を推定しながら自律移動可能な自律移動体が知られている。例えば、特許文献1には、自律移動体の自己の周辺に存在する障害物をセンシングするセンサを用いてセンシングされるデータを使い、自身の位置を推定する自己位置認識システムを備えた自律移動体が開示されている。
特許文献1に記載の自律移動体においては、データ値の出現頻度を表す2つのヒストグラムの比較結果に基づいて、自律移動体の回転方向の回転量や並進方向の移動量を補正して、自己位置(自身の位置)の算出結果を補正している。
特許第5032953号公報
上記の特許文献1においては、自律移動体の回転方向の回転量や並進方向の移動量を、2つのヒストグラムの一致度に基づいて補正する際に、2つのヒストグラムの相互相関関数により2つのヒストグラムの一致度を算出している。相互相関関数などを用いて2つのヒストグラムの一致度を算出する方法(ヒストグラムマッチング法)においては、回転方向や並進方向の「おおよそ」の回転量や移動量を算出できるが、精度のよい回転量や移動量の算出には向いていない。
本発明の課題は、周囲にある物体をセンシングするセンサにより取得したデータを用いた移動量の算出において、精度よく高速に移動量を算出することにある。
以下に、課題を解決するための手段として複数の態様を説明する。これら態様は、必要に応じて任意に組み合せることができる。
本発明の一見地に係る移動量推定装置は、移動体の移動量を推定する装置である。移動量推定装置は、位置データ取得部と、第1移動量算出部と、位置データ移動部と、第2移動量算出部と、第3移動量算出部と、を備える。
位置データ取得部は、複数の位置データを取得する。複数の位置データは、所定の座標上に投影物体像を形成する。投影物体像は、移動体の周囲に存在する物体を所定の座標上に投影した像である。
第1移動量算出部は、第1ヒストグラムと第2ヒストグラムとが最も一致したときの第2ヒストグラムの移動量を、第1移動量として算出する。第1ヒストグラムは、複数の第1位置データの所定の座標軸における座標値から生成されるヒストグラムである。複数の第1位置データは、移動体の移動前又は移動後の一方において取得した位置データである。第2ヒストグラムは、複数の第2位置データの所定の座標軸における座標値から生成されるヒストグラムである。複数の第2位置データは、移動前又は移動後の他方において取得した位置データである。
なお、上記の「移動前又は移動後の他方」は、複数の第1位置データが移動体の移動前に取得された場合には、移動体の移動後のことを指す。一方、複数の第1位置データが移動体の移動後に取得された場合には、移動体の移動前のことを指す。
位置データ移動部は、複数の第2位置データを第1移動量に対応する移動量だけ移動して複数の第1移動位置データを算出する。
第2移動量算出部は、第1投影物体像と第2移動投影物体像とが一致すると判断したときの複数の第2移動位置データを算出したときの複数の第1移動位置データの移動量を、第2移動量として算出する。第1投影物体像と第2移動投影物体像とが一致するかどうかは、第1投影物体像と第2移動投影物体像との間の距離と所定の閾値との比較に基づいて判断される。
第1投影物体像は、複数の第1位置データにより形成される投影物体像である。第2移動投影物体像は、複数の第2移動位置データにより形成される投影物体像である。複数の第2移動位置データは、複数の第1移動位置データを平行移動及び/又は回転移動して算出される。
第3移動量算出部は、第1移動量と第2移動量とを積算して、移動体の移動前後の移動量を算出する。
上記の移動量推定装置においては、まず、第1移動量算出部が、複数の第1位置データの座標値から生成される第1ヒストグラムと、複数の第2位置データの座標値から生成される第2ヒストグラムとを用いて第1移動量を算出する。具体的には、第1ヒストグラムと第2ヒストグラムとが最も一致したときの第2ヒストグラムの移動量を第1移動量として算出する。つまり、第1ヒストグラムと第2ヒストグラムとが最も一致したときの、第2ヒストグラムの移動量を第1移動量とする。
次に、位置データ移動部が、複数の第2位置データを上記の第1移動量に対応する移動量だけ移動して、複数の第1移動位置データを算出する。
その後、第2移動量算出部が、上記の複数の第1移動位置データをさらに平行移動及び/又は回転移動して算出した複数の第2移動位置データにより形成される第2移動投影物体像と第1投影物体像との間の距離と所定の閾値との比較に基づいて、第1投影物体像と第2移動投影物体像とが一致するかどうかを判断する。
第1投影物体像と第2移動投影物体像とが一致すると判断した場合、第2移動量算出部は、第1投影物体像と第2移動投影物体像とが一致すると判断したときの複数の第2移動位置データを算出したときの複数の第1移動位置データの移動量を、第2移動量として算出する。
第2移動量を算出後、第3移動量算出部が、上記の第1移動量と第2移動量とを積算し、積算された移動量を移動体の移動前後の移動量として算出する。
上記の移動量推定装置においては、(i)第1位置データと第2位置データとを用いて第1移動量算出部が第1移動量を算出する、(ii)第2位置データを第1移動量だけ移動して第1移動位置データ算出する、(iii)第1移動位置データと第1位置データを用いて第2移動量算出部が第2移動量を算出する、(iv)第1移動量と第2移動量とを積算し最終的な移動体の移動量を算出する、という段階的な計算により移動体の移動量を算出している。
上記の第2移動量算出部は、2種類の位置データ(第1移動位置データと第1位置データ)が互いに近い位置にあるときには高速にかつ精度よく第2移動量を算出できるという特徴を有している。また、第1移動量算出部は、少ない計算量にて第1移動量を算出できるという特徴を有している。
従って、上記の移動量推定装置において、第1移動量を算出後に第2移動量を算出することにより、上記の2つの移動量算出部の特徴を利用して、最終的な移動体の移動量を高速にかつ精度よく算出できる。
第1移動量算出部は、姿勢角度差を第1移動量として算出してもよい。姿勢角度差は、移動体の移動前の姿勢角と移動後の姿勢角との差である。これにより、上記の第2移動量算出部における回転運動の移動量の算出の短所を第1移動量算出部において吸収できる。その結果、より高速にかつ精度よく移動体の移動量を算出できる。
第2移動量算出部は、複数の第2移動位置データの複数の第1移動位置データからの平行移動の移動量を第2移動量として算出してもよい。これにより、第2移動量算出部では平行移動の移動量のみを算出することで、より高速に移動体の移動量を算出できる。
第2移動量算出部は、複数の第2移動位置データの複数の第1移動位置データからの平行移動の移動量に加えて回転移動の移動量を第2移動量として算出してもよい。これにより、平行移動の移動量及び回転移動の移動量を精度よく算出できるという第2移動量算出部の特徴を生かして、第2移動量算出部が平行移動の移動量のみを算出する場合と比較して、より精度よく移動体の移動量を算出できる。
第1移動量算出部は、(1)複数の第1位置データから生成されヒストグラムデータ間隔が第1ヒストグラムデータ間隔である第3ヒストグラムを第1ヒストグラムとし、複数の第2位置データから生成されヒストグラムデータ間隔が第2ヒストグラムデータ間隔である第4ヒストグラムを第2ヒストグラムとして用いて、第1移動量の候補である候補移動量を算出し、(2)その後、複数の第1位置データから生成され第1ヒストグラムデータ間隔よりも小さな第3ヒストグラムデータ間隔を有する第5ヒストグラムを第1ヒストグラムとし、複数の第2位置データから生成した第2ヒストグラムデータ間隔よりも小さな第4ヒストグラムデータ間隔を有するヒストグラムを候補移動量だけシフトすることにより生成された第6ヒストグラムを第2ヒストグラムとして用いて補正移動量を算出し、(3)(2)において算出された補正移動量を第1移動量としてもよい。
上記の第1移動量算出部は、最初にヒストグラムデータ間隔の大きなヒストグラムを用いて第1移動量の「候補」である候補移動量を算出している。これにより、第1移動量の算出の初期段階における計算量を減少できる。
上記の候補移動量を算出後に、第1移動量算出部は、候補移動量を算出するために用いたヒストグラムのヒストグラムデータ間隔よりも小さなヒストグラムデータ間隔を有する2つのヒストグラムのヒストグラムマッチングを実行して、候補移動量を補正して補正移動量を算出している。また、第1移動量算出部は、補正移動量を算出するためのヒストグラムマッチングの前に、当該ヒストグラムマッチングに用いる2つのヒストグラムのうちの1つを、上記にて算出した候補移動量だけシフトしている。これにより、ヒストグラムデータ間隔を小さくしてより精度よく補正移動量を算出しつつ、ヒストグラムマッチングのための計算量を少なくできる。
候補移動量を算出後に候補移動量を補正した補正移動量を第1移動量として算出する上記の第1移動量の算出においては、候補移動量をより少ない計算量で算出できるとの効果と、補正移動量の算出においてヒストグラムマッチングのための計算量を減少できるとの効果とが相乗効果となり、初期段階からヒストグラムデータ間隔の小さい2つのヒストグラムを用いて第1移動量を1度のヒストグラムマッチングにて算出する場合と比較して、より短時間に、かつ、従来と同等の精度にて第1移動量を算出できる。
補正移動量は、第5ヒストグラムと第6ヒストグラムとが最も一致したときの第6ヒストグラムのシフト量である補正量を候補移動量に加えることにより算出されてもよい。これにより、候補移動量を補正量にて補正して、実際の第1移動量により近い補正移動量を短時間に算出できる。
第1移動量算出部は、補正量の算出を複数回実行してもよい。このとき、補正移動量は、候補移動量に当該複数の補正量を加算することにより算出される。これにより、実際の第1移動量により近い補正移動量を短時間に算出できる。
補正量の算出を複数回実行する場合、第1移動量算出部は、今回の補正量の算出における第3ヒストグラムデータ間隔及び第4ヒストグラムデータ間隔を、それぞれ、前回の補正量の算出における第3ヒストグラムデータ間隔及び第4ヒストグラムデータ間隔よりも小さくしてもよい。これにより、より正確な補正移動量を段階的に算出できる。
本発明の他の見地に係る自律移動体は、上記の移動量推定装置と、走行部と、位置推定部と、走行制御部と、を備える。走行部は、自律移動体を移動させる。位置推定部は、上記の移動量推定装置において推定される移動量に基づいて現在位置を推定する。走行制御部は、自律移動体の現在位置から所定の目標位置まで走行するよう走行部を制御する。
上記の自律移動体においては、上記の移動量推定装置により、自律移動体の移動量が精度よくかつ高速に算出されている。これにより、位置推定部は、精度よくかつ高速に自律移動体の現在位置を推定できる。また、走行制御部は、現在位置から予め決められた目標位置に確実に到達可能なように、走行部を制御遅れなく制御できる。その結果、自律移動体は、意図した走行経路を正確に、かつ、制御遅れを発生することなく移動できる。
本発明のさらに他の見地に係る移動量の推定方法は、移動体の移動量の推定方法である。移動量の推定方法は、以下のステップを含む。
◎移動体の移動前及び移動後に、移動体の周囲に存在する物体を所定の座標上に投影した投影物体像を形成する複数の位置データを取得するステップ。
◎複数の第1位置データの所定の座標軸における座標値から生成される第1ヒストグラムと、複数の第2位置データの所定の座標軸における座標値から生成される第2ヒストグラムとが最も一致したときの、第2ヒストグラムの移動量を第1移動量として算出するステップ。
◎複数の第2位置データを第1移動量に対応する移動量だけ移動して複数の第1移動位置データを算出するステップ。
◎第1投影物体像と複数の第1移動位置データを平行移動及び/又は回転移動して算出される複数の第2移動位置データにより形成される第2移動投影物体像との間の距離と所定の閾値との比較に基づいて第1投影物体像と第2移動投影物体像とが一致するかどうかを判断し、第1投影物体像と第2移動投影物体像とが一致すると判断したときの複数の第2移動位置データを算出したときの複数の第1移動位置データの移動量を、第2移動量として算出するステップ。
◎第1移動量と第2移動量とを積算して、移動体の移動前後の移動量を算出するステップ。
上記の移動量の推定方法においては、少ない計算量にて算出可能な第1移動量を算出後に第2移動量を算出することにより、最終的な移動体の移動量を高速にかつ精度よく算出できる。
第1移動量を算出ステップは、以下のステップを含んでいてもよい。
◎複数の第1位置データから生成されヒストグラムデータ間隔が第1ヒストグラムデータ間隔である第3ヒストグラムを第1ヒストグラムとし、複数の第2位置データから生成されヒストグラムデータ間隔が第2ヒストグラムデータ間隔である第4ヒストグラムを第2ヒストグラムとして用いて、第1移動量の候補である候補移動量を算出するステップ。
◎複数の第1位置データから生成され第1ヒストグラムデータ間隔よりも小さな第3ヒストグラムデータ間隔を有する第5ヒストグラムを第1ヒストグラムとし、複数の第2位置データから生成した第2ヒストグラムデータ間隔よりも小さな第4ヒストグラムデータ間隔を有するヒストグラムを候補移動量だけシフトすることにより生成された第6ヒストグラムを第2ヒストグラムとして用いて算出される補正移動量を、第1移動量とするステップ。
これにより、第1移動量の算出精度を維持しつつ、より短時間に第1移動量を算出できる。
周囲にある物体をセンシングするセンサにより取得したデータを用いた移動量の算出を行う移動量推定装置において、精度よく高速に移動量を算出できる。
自律移動体の全体構成を示す図。 制御部の構成を示す図。 移動量算出部(移動量算出部)の構成を示す図。 第1移動量の算出方法を示すフローチャート。 第1移動量の算出方法を模式的に示す図。 第1移動量の算出方法を位置データの移動として模式的に示す図。 第2移動量の算出方法を示すフローチャート。 第2移動量の算出を模式的に示す図。 自律移動体の動作を示すフローチャート。 第2実施形態における第1移動量の算出方法を示すフローチャート。 複数のヒストグラムデータの集合体の一例を示す図。 第2実施形態における補正移動量の算出方法を示すフローチャート。
1.第1実施形態
(1)自律移動体の全体構成
以下、本発明の自律移動体について説明する。まず、第1実施形態に係る自律移動体100の全体構成について、図1を用いて説明する。図1は、自律移動体の全体構成を示す図である。本実施形態の自律移動体100は、予め決められた所望の予定走行経路を自律的に走行する移動体である。
自律移動体100は、本体部1と、走行部2と、位置データ取得部3と、制御部5と、を主に備える。本体部1は、自律移動体100の本体を構成する。
走行部2は、図1に示すように、車輪21a、21bを有し、車輪21a、21bが移動領域の床面などの走行面に接するように、モータ23a、23b(後述)を介して、本体部1の底部の中央付近に設置されている。また、車輪21a、21bは、本体部1の左右に設置されたモータ23a、23bの出力回転軸のそれぞれに、当該出力回転軸周りに回転可能に取り付けられている。
モータ23a、23bは、制御部5から駆動信号(後述)を受信し、当該制御部5からの駆動信号により、それぞれの出力回転軸を回転させる。車輪21a、21bは、制御部5からの駆動信号に応じた回転量及び/又は回転速度にて回転する。車輪21a、21bの回転により、走行部2は、本体部1(すなわち、自律移動体100)を移動できる。モータ23a、23bとしては、例えば、ブラシレスモータなどの電動モータを用いることができる。
また、モータ23a、23bのそれぞれの出力回転軸には、図示しない、モータ23a、23bのそれぞれの出力回転軸の回転数(回転量)を測定する装置が取り付けられている。そして、当該装置により測定された出力回転軸の回転量は、制御部5へ出力される。
これにより、制御部5は、モータ23a、23bのそれぞれの出力回転軸の回転量に基づいて、車輪21a、21bの回転量を算出できる。上記のモータ23a、23bの出力回転軸の回転量を測定する装置としては、例えば、エンコーダを用いることができる。例えば、インクリメンタル型のエンコーダを用いて出力回転軸の回転量を測定した場合、出力回転軸の回転量は、エンコーダから出力されるパルス信号に含まれる所定時間あたりのパルス数として測定できる。
位置データ取得部3は、自律移動体100の周囲に存在する障害物や壁などの物体を、所定の座標上に投影した像(以後、「投影物体像」と呼ぶことにする)を、複数の位置データとして取得する。
上記の投影物体像を形成可能な複数の位置データは、例えば、レーザレンジファインダ(Laser Range Finder、LRF)を位置データ取得部3として用いることにより取得できる。その他、ToF(Time of Flight)カメラなど、自身の周囲にある物体の自身からの距離を測定できる装置を、位置データ取得部3として用いることができる。
本実施形態では、レーザレンジファインダを位置データ取得部3として用いるが、複数の位置データは、例えば、自律移動体100から上記の物体の所定の箇所(例えば、レーザレンジファインダから出力された信号を反射する物体の表面の一部)までの距離と、上記の物体の箇所が存在する自律移動体100からの方向を示す角度とが関連付けられた二次元のデータとして取得される。
なお、上記の物体の箇所が存在する自律移動体100からの方向を示す角度は、レーザレンジファインダである位置データ取得部3の走査角度範囲内の角度である。
位置データ取得部3により得られる位置データは、車輪21a、21bの使用による径変化の影響を受けていない座標値データである。従って、本実施形態においては、位置データ取得部3において取得された複数の位置データを、移動領域における自律移動体100の実際の移動量により近い移動量を算出するために用いる。
なお、自律移動体100の移動量を位置データを用いて算出する際、上記の距離と角度とを座標値として有する位置データを用いて移動量を算出してもよいし、適当な座標変換を行った新たな位置データを用いて移動量を算出してもよい。
位置データの座標変換を行う場合は、例えば、距離と角度の座標値である位置データを、二次元ならX−Y座標、三次元ならX−Y−Z座標上の位置データに変換できる。
また、図1に示すように、位置データ取得部3は、前方データ取得部31と後方データ取得部33とにより構成されている。前方データ取得部31は、自律移動体100の前方に取り付けられており、自律移動体100の前方に存在する物体からの位置データを取得できる。一方、後方データ取得部33は、自律移動体100の進行方向の後方に取り付けられており、自律移動体100の後方に存在する物体からの位置データを取得できる。
本実施形態においては、前方データ取得部31の位置データ取得可能範囲が、後方データ取得部33の位置データ取得可能領域よりも広くなっている。例えば、本実施形態においては、後方データ取得部33が後方データ取得部33を中心とした半径10m程度の自律移動体100の後方の180°程度の範囲の物体を検出できる一方、前方データ取得部31は、前方データ取得部31を中心とした半径30m程度の自律移動体100の前方の270°程度の範囲に存在する物体を検出できる。
これにより、位置データ取得部3は、自律移動体100を中心とした(特に、自律移動体100の前方において)より広い範囲に存在する物体を検出できる。なお、上記の前方データ取得部31の物体の検出範囲と後方データ取得部33の物体の検出範囲は、上記の検出範囲に限られず、必要に応じて、適宜適切な検出範囲を設定できる。
また、本実施形態において、前方データ取得部31及び/又は後方データ取得部33は、上記の本体部1の鉛直方向の上方(の前方及び後方)に取り付けられている。これにより、例えば、移動領域の床面などに設置された物体の移動が頻繁に起こる場合に(例えば、大規模小売店などのように、棚や看板のレイアウト変動が頻繁に行われる場合に)、前方データ取得部31及び後方データ取得部33により取得された複数の位置データにより形成される投影物体像の時間的な変化(特に、ある時間に存在した物体が、他の時間において存在しないような変化)の影響をできるだけ排除できる。
従来の技術では、移動領域に設置された物体の移動が頻繁に起こる場合、自律移動体100の移動前の投影物体像と、移動後の投影物体像とが大きく異なる場合がある。移動前後において投影物体像が大きく異なっていると、移動前後の投影物体像の一方をどのように移動しても、他方の投影物体像に一致しない。この場合、複数の位置データを用いた自律移動体100の移動量の推定が困難となる。
また、従来の技術では、移動前後の投影物体像が大きく異なる場合に、移動させた投影物体像と基準となる投影物体像とが一致したと判断されても、移動させた投影物体像の移動量から推定される自律移動体100の移動量が、実際の自律移動体100の移動量とは大きくかけ離れる場合がある。つまり、複数の位置データに基づいて推定した自律移動体100の移動量と、実際の自律移動体100の移動量との間に、大きな誤差が生じる場合がある。
それらの問題を解決するために、本実施形態では、上述したように、前方データ取得部31及び/又は後方データ取得部33を本体部1の上部(例えば、人の頭や商品棚の高さを超える位置)に設置して移動が頻繁に行なわれる物体を検知する可能性を低減している。この結果、前方データ取得部31及び後方データ取得部33(位置データ取得部3)により取得した複数の位置データを用いることで、大きな誤差などを生じることなく、つまり精度よく自律移動体100の移動量を推定できる。
制御部5は、走行部2を制御する。具体的には、制御部5は、自律移動体100の現在位置を、複数の位置データに基づいて算出された自律移動体100の移動量に基づいて推定する。また、制御部5は、推定された移動量や現在位置などに基づいて、自律移動体100の現在位置を推定する。
さらに、制御部5は、推定された現在位置から制御部5の記憶部(後述)などに記憶された予め決められた目標位置(あるいは、複数ある目標位置のうちの1つ)まで自律移動体100を移動させるための制御信号を算出し、当該制御信号に基づいて、走行部2を駆動するための駆動信号を算出し、走行部2(のモータ23a、23b)に出力する。
なお、制御部5の詳細な構成、及び、制御部5における自律移動体100における移動量の算出方法や現在位置の推定方法などについては、後ほど説明する。
自律移動体100は移動領域における自身の存在位置を、車輪21a、21bの回転量及び/又は位置データ取得部3により取得した複数の位置データを用いて推定できる。また、自律移動体100は、目標位置まで移動するための制御信号を、推定された自律移動体100の(現在)位置に基づいて、自律移動体100内部(制御部5)において算出できる。その結果、自律移動体100は、予め決められた走行経路を、自律的に移動できる。
図1に示すように、第1実施形態の自律移動体100は、取付部材9を介して本体部1に取り付けられた操作部7をさらに備えている。図1に示すように、操作部7は、回動可能な操作ハンドル71a、71bを有し、操作ハンドル71a、71bのそれぞれの操作量(回動量)を制御部5に出力可能となっている。これにより、制御部5は、操作ハンドル71a、71bの操作量に応じて、モータ23a、23bを制御する駆動信号を算出可能となる。
自律移動体100が上記の操作部7を備えることにより、操作者が自律移動体100を操作可能となる。具体的には、操作者が操作ハンドル71a、71bを回動するなどして車輪21a、21bの回動量や回転速度を調整することにより、操作者は自律移動体100を操作できる。
また、上記のように、制御部5は自律移動体100自身の移動領域における位置を推定可能となっている。そのため、例えば、操作者が操作部7を用いて自律移動体100を操作している時に所定の時間間隔にて自律移動体100の位置を推定し、推定された位置を記憶部51などに記憶することにより、自律移動体100(制御部5)に、操作者による自律移動体100の操作により走行した経路を、上記の予め決められた走行経路として教示できる。
なお、自律移動体100に走行経路を教示する方法は、上記した、操作者が操作部7を用いて自律移動体100を操作する間に自律移動体100の位置を推定して記憶する方法に限られない。例えば、移動領域を表す移動座標上の(複数の)座標点を記憶したデータにおいて、座標点を示す値を直接操作(あるいは直接入力)することによっても、自律移動体100に走行経路を教示できる。または、自律移動体100の移動領域における位置(移動座標の座標値)を指定するその他の方法によって、自律移動体100に走行経路を教示できる。
また、第1実施形態の自律移動体100は、補助輪部8をさらに備える。補助輪部8は、2つの補助車輪8a、8bを有する。2つの補助車輪8aと8bは、それぞれが独立に回転可能なように本体部1の後方底部に取り付けられている。補助輪部8を備えることにより、自律移動体100は安定に、かつ、スムーズに移動できる。
(2)制御部の構成
I.制御部の全体構成
次に、制御部5の全体構成について図2を用いて説明する。図2は、制御部の構成を示す図である。制御部5は、CPU(Central Processing Unit)と、ハードディスク装置と、ROM(Read Only Memory)と、RAM(Random Access Memory)と、記憶媒体読み出し装置などにより構成される記憶装置と、信号変換を行うインターフェースなどと、を備えたマイコンシステムなどにより実現できる。また、以下に示す制御部5の各部の機能の一部又は全部は、プログラムとして実現されていてもよい。さらに、当該プログラムは、マイコンボードの記憶装置に記憶されていてもよい。又は、制御部5の各部の機能の一部又は全部は、カスタムICなどにより実現されていてもよい。
また、制御部5は、複数のマイコンシステムにより構成されていてもよい。例えば、後述する移動量推定部53(移動量推定装置の一例)と、走行制御部57と、制御部5の残りの構成要素とを個別のマイコンシステムにより構成してもよい。
制御部5は、記憶部51と、移動量推定部53と、位置推定部55と、走行制御部57と、を有する。記憶部51は、制御部5を構成する記憶装置の記憶領域の少なくとも一部に対応する。記憶部51は、自律移動体100が移動領域を自律的に移動するために必要な移動経路に関する情報などを記憶する。移動経路に関する情報は、例えば、移動領域の地図情報(グローバルマップ、または、環境地図と呼ばれることもある)などである。その他、記憶部51は、自律移動体100の動作に必要な各種設定値などを記憶している。
移動量推定部53は、自律移動体100が移動した距離を推定する。移動量推定部53は移動量算出部531を有している。移動量算出部531は、複数の位置データに基づいて、自律移動体100が移動した距離を算出する。なお、移動量算出部531の構成の詳細及び移動量の算出方法については、後ほど詳しく説明する。
位置推定部55は、自律移動体100の移動領域における存在位置を推定する。本実施形態において、位置推定部55は、SLAM(Simultaneous Localization and Mapping)法などを用いて、自律移動体100の周囲の壁や障害物などの物体の位置を示す地図情報(ローカルマップ)と、予め記憶されていた移動領域(の全体、又は、自律移動体100が移動する領域を少なくとも含む一部)を示す地図情報(グローバルマップ、環境地図)とのマップマッチング結果に基づいて、自律移動体100の現在位置を推定する。
具体的には、位置推定部55は、まず、移動量推定部53にて推定された移動量に所定の誤差分を追加して算出した「仮の現在位置」を複数個生成する。上記の仮の現在位置は、例えば、移動前に推定されていた自律移動体100の位置に、上記の誤差分を追加した移動量を加えることにより算出できる。
次に、上記の仮の現在位置のそれぞれに対して、現在位置において位置データ取得部3を用いて取得した複数の位置データを用いて上記のローカルマップを生成する。その後、位置推定部55は、複数個生成したローカルマップのうち、上記の環境地図と最もよく一致したローカルマップを生成したときの仮の現在位置を、自律移動体100の実際の現在位置と推定する。
また、位置推定部55は、操作者が操作部7を用いて自律移動体100を操作しているときには、所定の時間間隔(例えば、制御周期毎)にて上記の方法により自律移動体100の位置を推定して、推定した位置についての情報(座標値など)を記憶部51に記憶する。これにより、位置推定部55は、操作者による自律移動体100の移動操作を記憶部51に記憶する。その結果、自律移動体100は、記憶された操作者による移動操作を用いて自律的に移動することにより、操作者による移動操作を自律的に再現できる。
なお、位置推定部55は、現在位置において作成したローカルマップを用いて、上記の環境地図を更新して記憶部51に記憶してもよい。これにより、移動領域中において障害物などの位置が変更された場合でも、障害物などの位置が変更された後の新しい環境地図を作成し記憶できる。
走行制御部57は、自律移動体100が自律的に移動するときには、自律移動体100を、現在位置から、記憶部51に記憶された予め決められた移動経路に含まれる所定の目標位置まで走行するように、走行部2を制御する。
具体的には、走行制御部57は、まず、現在位置から上記の所定の目標位置までの距離や方向などに基づいて、現在位置から所定の目標位置まで、所定の速度及び/又は加速度にて自律移動体100を移動させる制御指令を生成する。次に、走行制御部57は、上記の制御指令に基づいて、モータ23a、23bを制御するための駆動信号を算出し、モータ23a、23bに出力する。
なお、走行制御部57は、モータ23a、23bのそれぞれに対して個別に駆動信号を出力する。すなわち、モータ23a、23bはそれぞれが異なる回転速度にて回転できる。例えば、自律移動体100を直進させたい場合には、モータ23a、23bを同じ回転速度にて回転させる。一方、モータ23a、23bのそれぞれを異なる回転速度にて回転させると、自律移動体100は回転運動(右折、左折)できる。
図1に示した走行部2のように、2つの車輪21a、21bのそれぞれを個別にモータ23a、23bにより回転させて走行する走行部を、「差動二輪型」の走行部と呼ぶこともある。
また、走行制御部57は、操作部7から操作ハンドル71a、71bの回動量(操作量)を入力し、入力した回動量から上記の駆動信号を算出し、モータ23a、23bに出力可能となっている。これにより、自律移動体100は、操作ハンドル71a、71bを操作する操作者により操作可能となる。
走行制御部57としては、例えば、フィードバック制御理論を用いた制御装置などを用いることができる。フィードバック制御理論を用いた制御装置を走行制御部57として用いる場合、走行制御部57は、モータ23a、23bの出力回転軸に取り付けられたエンコーダなどからのパルス信号を入力し、モータ23a、23bの回転数を制御指令に示したとおりに制御できる。
制御部5が上記の構成を有することにより、自律移動体100は、記憶部51に記憶されている走行経路などの予め決められた走行経路を、自律的に移動できる。
(3)移動量算出部の構成
次に、第1実施形態の移動量算出部531の構成について、図3を用いて説明する。図3は、移動量算出部の構成を示す図である。移動量算出部531は、位置データ記憶部5311と、第1移動量算出部5312と、位置データ移動部5313と、第2移動量算出部5314と、第3移動量算出部5315と、を有している。
位置データ記憶部5311は、制御部5のマイコンシステムの記憶装置の記憶領域、又は、記憶部51の記憶領域の一部である。位置データ記憶部5311は、自律移動体100の移動前と移動後において位置データ取得部3から取得した(座標変換した)複数の位置データを記憶する。本実施形態においては、第1位置データを自律移動体100の移動前に取得した位置データとし、第2位置データを自律移動体100の移動後に取得した位置データとする。
なお、これとは逆に、自律移動体100の移動前に取得した位置データを第2位置データとし、移動後に取得した位置データを第1位置データとしてもよい。
第1移動量算出部5312は、ヒストグラムマッチング法を用いて、自律移動体100の移動量を第1移動量として算出する。本実施形態においては、第1移動量算出部5312は、ヒストグラムマッチング法を用いて、自律移動体100の移動前の姿勢角(姿勢角は、例えば、自律移動体100の前方方向の、所定の座標のX軸に対する角度として定義)と移動後の姿勢角との差である姿勢角度差を第1移動量として算出する。
そのため、本実施形態において、第1移動量算出部5312は、位置データ記憶部5311から複数の第1位置データ及び複数の第2位置データを読み出して、複数の第1位置データから、1つの第1位置データと当該1つの第1位置データに隣接する第1位置データとを結ぶ直線の所定の座標の1つの軸(本実施形態においてはX軸。しかし、X軸に限られずY軸としてもよい)に対する角度が現れる頻度を示す第1ヒストグラムを生成する。
また、第1移動量算出部5312は、複数の第2位置データから、1つの第2位置データと当該1つの第2位置データに隣接する第2位置データとを結ぶ直線の所定の座標の1つの軸に対する角度が現れる頻度を示す第2ヒストグラムを生成する。
その後、第1移動量算出部5312は、相互相関関数を用いて上記の第1ヒストグラムと第2ヒストグラムとの一致度を算出し、上記の第1ヒストグラムと第2ヒストグラムとが最も一致する(典型的には相互相関関数が最大値になる)姿勢角度変化を、第1移動量として算出する。なお、上記の第1ヒストグラムと第2ヒストグラムとが「最も一致する」の定義としては、本実施形態で用いる「相互相関関数が最大になる場合」の他に、「ある姿勢角度変化量(すなわちヒストグラムの移動量)とその前後の角度変化量とにおける相互相関関数の合計値が最大になる場合」などを適宜用いてもよい。また、本実施形態においては相互相関関数を用いて上記の第1ヒストグラムと第2ヒストグラムとの一致度を算出しているが、これに限らず、正規化相互相関関数やゼロ平均正規化相互相関関数などを適宜用いて第1ヒストグラムと第2ヒストグラムの一致度を算出してもよい。
位置データ移動部5313は、位置データ記憶部5311から入力した複数の第2位置データを、第1移動量算出部5312において算出した第1移動量に対応する移動量だけ移動し、複数の第1移動位置データを算出する。
本実施形態においては、第1移動量算出部5312において姿勢角度差を第1移動量として算出しているため、位置データ移動部5313は、複数の第2位置データを回転移動させて複数の第1移動位置データを算出する。複数の位置データの回転移動は、例えば、座標の回転を示す公知の数式などを用いて実行できる。
なお、位置データ移動部5313は、複数の位置データを平行移動可能となっていてもよい。複数の位置データの平行移動は、全ての位置データの座標値に対して平行移動量に対応する値を加えることにより実行できる。
第2移動量算出部5314は、位置データ移動部5313にて算出された複数の第1移動位置データと、位置データ記憶部5311に記憶された複数の第1位置データとを用いて第2移動量を算出する。具体的には、第2移動量算出部5314は、複数の第1位置データにより所定の座標上に形成される第1投影物体像と複数の第2移動位置データ(後述)により形成される第2移動投影物体像とが一致すると判断したときの上記の第2移動位置データを算出したときの、複数の第1移動位置データの移動量(第2移動位置データは、第1移動位置データを所定の座標上において移動して算出される)を第2移動量として算出する。
本実施形態において、第2移動量算出部5314は、第1投影物体像と第2移動投影物体像とが一致すると判断したときの第2移動位置データを算出したときの、第1移動位置データの平行移動量を第2移動量として算出する。
第3移動量算出部5315は、第1移動量算出部5312において算出された第1移動量と、第2移動量算出部5314において算出された第2移動量とを積算して、自律移動体100の移動前後の移動量を算出する。
移動量算出部531が上記の構成を有することにより、自律移動体100の(一定期間の)移動前後の移動量を、移動前及び移動後において取得した複数の位置データを用いて、高速かつ精度よく算出できる。
(4)自律移動体の動作
I.第1移動量の算出方法
次に、本実施形態の自律移動体100の動作について説明する。まず、第1移動量算出部5312における第1移動量の算出方法について、図4を用いて説明する。
第1移動量算出部5312は、角度θの関数である第1ヒストグラムH11(θ)及び第2ヒストグラムH21(θ)の相互相関関数から、自律移動体100の移動前後の姿勢角度差(回転運動の移動量)を算出する。
具体的には、まず、第1移動量算出部5312は、複数の第1位置データから第1ヒストグラムH11(θ)を、複数の第2位置データから第2ヒストグラムH21(θ)を生成する(ステップS1001)。
具体的には、例えば、まず、1つの第1位置データと隣接する第1位置データとにより形成される直線と、第1位置データを定義した所定の座標(例えば、X−Y座標)の1つの座標軸(例えば、X軸)とのなす角度θを、全ての(あるいは所定の数の)第1位置データに対して算出する。次に、算出した角度θの出現頻度を各角度θに対して算出し、当該出現頻度と角度θとを関連づけて、角度θの関数としての第1ヒストグラムH11(θ)が生成される。
第2ヒストグラムH21(θ)も、複数の第2位置データを用いて、上記の第1ヒストグラムH11(θ)の算出方法により同様に生成できる。
ヒストグラムを生成後、第1移動量算出部5312は、相互相関関数を算出する(ステップS1002)。具体的には、H11(θ)と、H21(θ)をaだけ移動したヒストグラムとの積であるH11(θ)*H21(θ−a)をとりうるθの値だけ加算した関数(H11(θ)*H21(θ−a)のθに対する積分値であるとも言える)を相互相関関数として算出する。これにより、相互相関関数は、値aを変数とした関数として算出される。算出された各a値における相互相関関数(の値)は、記憶部51などに記憶される。
相互相関関数の値をあるa値において算出後、決められた範囲内(例えば、角度θの検出可能範囲)のa値をすべて用いて相互相関関数の値を算出したかどうかを判断する(ステップS1003)。
まだ相互相関関数の値を算出すべきa値が存在する場合(ステップS1003において「No」の場合)、a値を他の値に変更した(ステップS1004)後に、第1移動量の算出プロセスは、ステップS1002に戻り、相互相関関数の算出を継続する。
一方、とりうる全てのa値に対して相互相関関数の値を算出した場合(ステップS1003において「Yes」の場合)、第1移動量算出部5312は、各a値に対して算出された複数の相互相関関数の値を比較して、a値の関数としての相互相関関数が最大値となっているときのa値を、第1移動量(姿勢角度差)として算出する(ステップS1005)。その後、第1移動量を位置データ移動部5313に出力して(又は記憶部51に記憶して)、第1移動量の算出を終了する。
上記のステップS1001〜S1005に示した相互相関関数を用いた第1移動量の算出方法を模式的に示すと、図5Aのようになる。すなわち、複数の第1位置データから生成した第1ヒストグラムH11(θ)(図5Aの実線にて示したヒストグラム)と、複数の第2位置データから生成した第2ヒストグラムH21(θ)(図5Aの点線にて示したヒストグラム)とは、典型的には、図5Aの上図に示すように、互いに形状は類似しているが、互いがヒストグラムを定義した軸方向にずれたような状態となっている。
相互相関関数においてa値を変化させることは、図5Aにおいて、第2ヒストグラムH21(θ)を軸方向にa値に対応する移動量だけシフトさせることに対応し、相互相関関数が最大値(図5においては、a=Aのときに最大値となるとする)となることは、図5Aの下図のように、第1ヒストグラムH11(θ)とシフト後の第2ヒストグラムH21(θ−A)とが最も一致することに対応する。
上記のステップS1001〜S1005を実行することにより、複数の第1位置データと複数の第2位置データとの関係がどのような変化をするかを、図5Bを用いて説明する。
例えば、自律移動体100を原点OとしたX−Y座標上において、複数の第1位置データにより第1投影物体像が図5Bの(1)の実線にて示すように形成され、複数の第2位置データにより第2投影物体像が図5Bの(1)の点線にて示すように形成されていたとする。
上記の状態において、第2ヒストグラムH21(θ)がシフト量(移動量)Aだけシフト(移動)することにより、第2投影物体像が原点Oの回りにシフト量Aに対応する角度だけ回転する。第1ヒストグラムH11(θ)とシフト後の第2ヒストグラムH21(θ−A)とが最も一致するとき、第1投影物体像と回転後(移動後)の第2投影物体像は、互いに、平行移動すると一致するような位置関係となる(図5Bの(2))。
従って、上記の第1ヒストグラムH11(θ)と第2ヒストグラムH21(θ)との相互相関関数が最大値となるときのa値(図5Aの例では、シフト量A)である第1移動量を、自律移動体100の移動前後の姿勢角度変化と定義できる。
上記のように、第1移動量算出部5312は、ヒストグラムマッチング法を用いて自律移動体100の姿勢角度差のみを第1移動量として算出できる。これにより、第1移動量算出部5312は、回転移動の中心点がずれることなく、正確な回転移動の移動量(姿勢角度変化)を算出できる。
また、ヒストグラムマッチング法においては、より少ない計算量にて相互相関関数が最大値となるヒストグラムのシフト量を算出できる。その結果、第1移動量算出部5312は、高速に第1移動量を算出できる。
II.第2移動量の算出方法
次に、第2移動量算出部5314における第2移動量の算出方法について、図6を用いて説明する。第2移動量算出部5314における第2移動量の算出方法は、複数の第2移動位置データ(複数の第1移動位置データ)を、複数の第2移動位置データにより形成される投影物体像(第2移動投影物体像(図7))と第1投影物体像とが一致するまで、典型的には複数回移動させて移動量を算出する方法である。このような第2移動量の算出方法を、ICP(Iterative Closest Point)法と呼ぶこともある。
具体的には、まず、位置データ移動部5313が、位置データ記憶部5311に記憶されている複数の第2位置データを、第1移動量算出部5312において上記のステップS1001〜S1005を実行することにより算出された第1移動量に対応する移動量だけ移動して、複数の第1移動位置データを算出する(ステップS2001)。本実施形態においては、複数の第2位置データを、第1移動量(姿勢角度差)に対応する回転移動の移動量だけ移動させて、複数の第1移動位置データを算出する。その結果、複数の第1移動位置データにより、上記の図5Bの(2)の点線にて示すような投影物体像が形成される。
次に、第2移動量算出部5314が、ステップS2001にて算出した複数の第1移動位置データと複数の第1位置データとを用いて、第2移動量を算出する。具体的には、以下のようにして第2移動量が算出される。
まず、第2移動量算出部5314は、複数の第1移動位置データをさらに平行移動して複数の第2移動位置データを算出する。なお、位置データ移動部5313において、複数の位置データの平行移動が可能であれば、第2移動量算出部5314は、位置データ移動部5313に対して、複数の第1移動位置データを平行移動して複数の第2移動位置データを算出するよう指令してもよい。
複数の第2移動位置データを算出後、第2移動量算出部5314は、複数の第2移動位置データにより形成される第2移動投影物体像と第1投影物体像との間の距離を算出する(ステップS2002)。
具体的には、例えば、第2移動量算出部5314は、複数の第1位置データに含まれる1つの第1位置データと、複数の第2移動位置データに含まれ上記の1つの第1位置データに対応する1つの第2移動位置データと、その近傍の第2移動位置データにより定義される平面との距離をデータ間距離として算出し、上記のデータ間距離を所定の数だけ合計したときの合計距離を、第1投影物体像と第2移動投影物体像との間の距離として算出する。
なお、第2移動量算出部5314は、1つの第1位置データと当該1つの第1位置データに対応する1つの第2移動位置データとの間の距離を1つのデータ間距離として算出してもよいし、1つの第1位置データと複数の第2移動位置データに含まれ当該1つの第1位置データの比較的近傍に存在する複数の第2動位置データのそれぞれとの距離を複数のデータ間距離として算出してもよい。
1つの第1位置データに対して複数のデータ間距離を算出する場合、第2移動量算出部5314は、算出された複数のデータ間距離のうち所定の距離以上のものを使用しないようにしてもよい。所定の距離以上の平面距離を使用しないときには、1つの第1位置データに対してデータ間距離が全く算出されない場合、1つの移動位置データに対して複数のデータ間距離が算出される場合、1つの第1位置データに対して1つのデータ間距離が算出される場合がある。
上記のデータ間距離としては、座標空間における距離を表す様々な距離を用いることができる。例えば、ユークリッド距離やマンハッタン距離(2つの座標点の各座標値の差を合計した距離)などを、位置データ間の距離として用いることができる。
または、第2移動量算出部5314は、1つの第1位置データと複数の第2移動位置データにより形成される投影物体像との間の距離を、上記のデータ間距離としてもよい。1つの第1位置データと複数の第2移動位置データにより形成される投影物体像との間の距離は、例えば、1つの第1位置データと、1つの第1位置データから当該投影物体像に伸ばした垂線と当該投影物体像との交点との間の距離として算出できる。
上記のようにして第1投影物体像と第2移動投影物体像との間の距離を算出後、第2移動量算出部5314は、第1投影物体像と第2移動投影物体像との間の距離と所定の閾値との比較に基づいて、第1投影物体像と第2移動投影物体像とが一致したかどうかを判断する(ステップS2003)。
例えば、第2移動量算出部5314は、第1投影物体像と第2移動投影物体像との間の距離が所定の閾値以下となったときに、第1投影物体像と第2移動投影物体像とが一致すると判断する。
上記の2つの投影物体像の間の距離が所定の閾値より大きく、第1投影物体像と第2移動投影物体像とが一致しないと判断された場合(ステップS2003において「No」の場合)、第2移動量算出部5314は、複数の第2移動位置データを平行移動する(ステップS2004)。このとき、第2移動量算出部5314は、位置データ移動部5313に対して、複数の第2移動位置データを平行移動するように指令してもよい。
その後、第2移動量の算出プロセスはステップS2002に戻り、新たに算出された複数の第2移動位置データにより形成される第2移動投影物体像が第1投影物体像と一致するかどうか判断される。第1投影物体像と第2移動投影物体像とが一致すると判断されるまで、上記のステップS2002〜ステップS2004が繰り返される。
一方、第1投影物体像と第2移動投影物体像とが一致すると判断された場合(ステップS2003において「Yes」の場合)、第2移動量算出部5314は、今回の複数の第2移動位置データが算出されるまでの、複数の第1移動位置データからの平行移動の移動量を、第2移動量として算出する(ステップS2005)。
上記のステップS2001〜S2005を実行することによるICP法による第2移動量の算出方法を模式的に示すと、図7のようになる。ステップS2001を実行して複数の第2位置データを第1移動量(姿勢角度差)に対応する移動量だけ移動して複数の第1移動位置データを算出すると、算出された複数の第1移動位置データは、図7の(1)(図5の(2)と同一)の点線に示すような第1移動投影物体像を形成する。
ステップS2002〜S2005を実行前(すなわち、ICP法による第2移動量の算出前)に、図7の(1)に示すように、第1移動投影物体像は、第1投影物体像を平行移動した像とほぼ一致している。この場合、図7の(2)に示すように、第2移動量算出部5314は、第2移動位置データを算出する際に第1移動位置データを平行移動するだけで、複数の第2移動位置データにより形成される第2移動投影物体像を第1投影物体像にほぼ一致させることができる。
ICP法により回転運動の移動量を算出しようとすると、回転運動の中心点が動いてしまうことがあるため、ICP法により回転運動の移動量(姿勢角度差)を正確に算出できない場合がある。しかしながら、上記のように、第1移動量算出部5312において予め自律移動体100の移動前後の姿勢角度差を算出することにより、第2移動量算出部5314において姿勢角度差を算出する必要がなくなる。その結果、自律移動体100の移動量の算出において、上記の回転運動の中心点がずれて姿勢角度差が正確に算出できなくなることを回避して、自律移動体100の移動量を姿勢角度差も含めて正確に算出できる。
また、上記のように第1移動量算出部5312は第1移動量を高速に算出でき、また、複数の第1移動位置データは複数の第2位置データよりも複数の第1位置データにより
近い(一致度が高い)位置データであるため、第2移動量算出部5314は、第1位置データと第2位置データとを用いて算出するよりも高速に第2移動量を算出できる。
実際、同一の第1位置データ及び第2位置データを用いて自律移動体100の移動量を算出した場合、本実施形態のように第1移動量算出部5312により第1移動量を算出後に第2移動量算出部5314により第2移動量を算出して第1移動量と第2移動量とを積算して自律移動体100の移動量を算出した方が、第2移動量算出部5314のみにて第1位置データと第2位置データとを用いて自律移動体100の移動量を算出するよりも、3.5倍程度高速に自律移動体100の移動量を算出できた。
さらに、上記の第1移動量算出部5312及び第2移動量算出部5314においては、複数の位置データにより形成される投影物体像、第1ヒストグラム、及び第2ヒストグラムといった、複数の位置データを用いて算出される値に基づいて、自律移動体100の移動量が算出されている。これにより、位置データ取得部3にて取得した位置データに測定誤差(ノイズなどを原因としている)が含まれていても、第1移動量算出部5312及び第2移動量算出部5314は、精度よく第1移動量及び第2移動量を算出できる。
III.自律移動体の動作
次に、本実施形態の自律移動体100の具体的な動作について、図8を用いて説明する。以下においては、自律移動体100が記憶部51などに記憶された予め決められた複数の目標点を通過しながら、最終的な目標点まで自律的に移動するときの動作について説明する。
自律移動体100が自律的な移動を開始すると、まず、自律移動体100の移動前及び移動後において、位置データ取得部3が複数の位置データを取得する(ステップS1)。そして、取得した複数の位置データ(第1位置データ、第2位置データ)が位置データ記憶部5311に記憶される。
複数の第1位置データ及び第2位置データを取得後、これらの複数の位置データを用いて自律移動体100の移動前後の移動量が算出される。具体的には、まず、第1移動量算出部5312が、前述のステップS1001〜S1005を実行して、第1移動量(姿勢角度差)を算出する(ステップS2)。
第1移動量の算出後、第2移動量算出部5314が、上記のステップS2001〜S2005を実行して、第2移動量を算出する(ステップS3)。
第1移動量及び第2移動量を算出後、第3移動量算出部5315が、第1移動量と第2移動量とを積算して、自律移動体100の移動量を算出する(ステップS4)。
自律移動体100の移動量を算出後、位置推定部55は、移動量推定部53から上記のステップS4において算出された移動量を入力し、入力した移動量に基づいて、上記に説明したマップマッチングによる自律移動体100の位置の推定方法を用いて、自律移動体100の現在位置を推定する(ステップS5)。
自律移動体100の現在位置を推定後、走行制御部57は、自律移動体100が現在位置から次の目標位置まで移動するための駆動信号を算出し、走行部2のモータ23a、23bに出力する(ステップS6)。
具体的には、走行制御部57は、まず、位置推定部55から上記のステップS5にて推定された自律移動体100の現在位置を入力する。また、走行制御部57は、入力した現在位置に基づいて、次の目標位置を記憶部51などから読み出す。その後、走行制御部57は、自律移動体100の現在位置から、読み出した次の目標位置まで自律移動体100を移動させるための制御指令を算出する。
走行制御部57にて算出される制御指令は、例えば、現在位置から次の目標位置まで移動する間の時間と自律移動体100の速度(車輪21a、21bの回転速度、すなわち、モータ23a、23bの回転速度)との関係を表したデータとして算出される。
制御指令を算出後、走行制御部57は、算出した制御指令に基づいて、モータ23a、23bを駆動(制御)する駆動信号を算出し、算出した駆動信号を走行部2のモータ23a、23bに出力する。
駆動信号を走行部2に出力後、制御部5は、例えば、記憶部51に記憶されている全ての目標位置を自律移動体100が通過したかどうかを判断して、自律移動を終了するかどうかを判断する(ステップS7)。
例えば、自律移動体100が全ての目標位置を通過していないと判断して、自律移動を継続すると判断した場合(ステップS7において「No」の場合)、自律移動のプロセスはステップS1に戻り、自律移動を継続する。
一方、自律移動体100が全ての目標位置を通過して自律移動を終了すると判断した場合(ステップS7において「Yes」の場合)、自律移動のプロセスを終了する。
本実施形態の自律移動体100においては、第1移動量算出部5312における第1移動量の算出と、第2移動量算出部5314における移動量の算出とを上記のように組み合わせて高速にかつ精度よく自律移動体100の移動量が算出されている。これにより、位置推定部55は、精度よくかつ高速に自律移動体100の現在位置を推定できる。また、走行制御部57は、現在位置から予め決められた目標位置に確実に到達可能なように、走行部2を制御遅れなく制御できる。その結果、自律移動体100は、意図した走行経路を正確に、かつ、制御遅れを発生することなく移動できる。
2.第2実施形態
(1)第2実施形態の概略
上記の第1実施形態において、第1移動量算出部5312は、ヒストグラムデータ間隔が小さい2つのヒストグラムのヒストグラムマッチングを1度実行して、第1移動量を算出していた。この場合、ヒストグラムマッチングを実行するために膨大な計算量が必要となるため、第1移動量の算出に時間がかかっていた。
上記の問題を解決するため、第2実施形態に係る第1移動量算出部5312は、最初にヒストグラムデータ間隔の比較的大きなヒストグラムを用いたヒストグラムマッチングを実行して第1移動量の「候補」を算出する。その後、第1移動量算出部5312は、ヒストグラムデータ間隔を小さくしたヒストグラムを用いたヒストグラムマッチングを実行して、当該第1移動量の「候補」を補正して最終的な第1移動量を算出している。
上記のように、第2実施形態においては、第1移動量算出部5312における第1移動量の算出方法が異なるのみで、自律移動体100の構成、第2移動量の算出方法、及び最終的な移動量の算出方法は、第1実施形態と同じである。従って、ここでは、第1移動量算出部5312における第1移動量の算出方法のみを説明し、自律移動体100の他の構成や算出方法の説明は省略する。
(2)第2実施形態における第1移動量の算出方法
以下、第2実施形態における第1移動量の算出方法を、図9を用いて説明する。図9は、第2実施形態における第1移動量の算出方法を示すフローチャートである。以下では、補正移動量(後述)の算出が複数回実行される場合を例にとって、第1移動量の算出方法を説明する。
以下の説明においては、角度θについて第1移動量を算出する場合を例にとって説明する。角度θについての位置データは、例えば、互いに隣接する複数の位置データにより形成される直線と、位置データを定義した所定の座標(例えば、X−Y座標)の1つの座標軸(例えば、X軸)とのなす角度θを、全ての位置データに対して算出することにより作成される。このようにして作成された角度θについての位置データは、位置データ記憶部5311に記憶される。
第1移動量の算出を開始すると、第1移動量算出部5312は、まず、第3ヒストグラムと第4ヒストグラムを生成する(ステップS21)。具体的には、第1移動量算出部5312は、位置データ記憶部5311に記憶された角度θについての複数の第1位置データを用いて、当該複数の第1位置データにおいて出現する角度θと当該角度θの出現頻度とを関連付けて、第3ヒストグラムのための複数の第1ヒストグラムデータを生成する。
また、位置データ記憶部5311に記憶された角度θについての複数の第2位置データを用いて、当該複数の第2位置データにおいて出現する角度θと当該角度θの出現頻度とを関連付けて、第4ヒストグラムのための複数の第2ヒストグラムデータを生成する。
より具体的には、複数の第1位置データから第3ヒストグラムを生成する場合を例にとると、第3ヒストグラム(複数の第1ヒストグラムデータ)は以下のようにして生成される。以下の説明では、第3ヒストグラムのヒストグラムデータ間隔をM1(=r*m(r:整数、m:最小ヒストグラムデータ間隔))(第1ヒストグラムデータ間隔の一例)とし、複数の第1位置データにおいてとりうる角度θの範囲は−qm〜+qm(q:整数)の範囲であるとする。
第1移動量算出部5312は、まず、角度θが−(q−(s−1)*r)*mから−(q−s*r)*m(s:整数)までの範囲内となっている第1位置データの個数を計数し、当該第1位置データの個数を、−(q−(s−1)*r)*mから−(q−s*r)*mまでの範囲内の角度が出現する出現頻度Fとする。次に、第1移動量算出部5312は、当該出現頻度Fと角度−(q−s*r)*mとを関連付けて、s番目の第1ヒストグラムデータとする。
上記の第1ヒストグラムデータの算出を、sを1から1ずつ増加して(2*q)/rとなるまで繰り返すことにより、図10のような複数の第1ヒストグラムデータの集合体が生成される。図10は、複数のヒストグラムデータの集合体の一例を示す図である。
また、上記と同様にして、複数の第2位置データから、第4ヒストグラムのための複数の第2ヒストグラムデータも生成できる。なお、本実施形態において、第4ヒストグラムのヒストグラムデータ間隔(第2ヒストグラムデータ間隔)は、上記の第1ヒストグラムデータ間隔M1と同じとする。
なお、複数の第1ヒストグラムデータ(第3ヒストグラム)及び複数の第2ヒストグラムデータ(第4ヒストグラム)の生成方法は、第3ヒストグラム及び第4ヒストグラムのヒストグラムデータ間隔が第1ヒストグラムデータ間隔M1(=r*m)を有していればよいので、上記の例に限られない。例えば、s番目の第1ヒストグラムデータの出現頻度Fを、複数の第1位置データにおいて、−(q−s*r)*mを中心とした所定の範囲内の角度が出現する頻度としてもよい。具体的には、s番目の第1ヒストグラムデータの出現頻度Fを、複数の第1位置データにおいて−(q−(s−0.5)*r)*mから−(q−(s+0.5)*r1)*mまでの範囲内の角度θが出現する頻度としてもよい。
また、自律移動体100の角度θの移動量(姿勢角度差)と平行移動量とを両方含んだ第1移動量を算出する場合には、第1移動量算出部5312は、角度θの出現頻度についてのヒストグラム(複数のヒストグラムデータ)だけでなく、複数の第1位置データ及び複数の第2位置データの座標値の出現頻度についてのヒストグラム(複数のヒストグラムデータ)も生成する。
具体的には、例えば、複数の第1位置データにおいて所定の範囲内の座標値(X座標値、Y座標値)が出現する頻度と当該所定の範囲内のある1つの座標値とを関連付けて、座標値の出現頻度についての第3ヒストグラム(複数の第1ヒストグラムデータ)を生成できる。
第3ヒストグラム(複数の第1ヒストグラムデータ)と第4ヒストグラム(複数の第2ヒストグラムデータ)とを生成後、第1移動量算出部5312は、第3ヒストグラムと第4ヒストグラムとが一致するときの第4ヒストグラムのシフト量を、第1移動量の候補である候補移動量φcとして算出する(ステップS22)。
具体的には、まず、第1移動量算出部5312は、第4ヒストグラムH4(φ)をシフト量bだけシフトしたときの複数の第2ヒストグラムデータを作成する。例えば、s番目の第2ヒストグラムデータの角度を−(q−s*r)*m+bとし、s番目の第2ヒストグラムデータの出現頻度をFのままとして、シフト量bだけシフト後の第4ヒストグラムH4(φ−b)のための新たな第2ヒストグラムデータを生成できる。
次に、第3ヒストグラムH3(φ)(複数の第1ヒストグラムデータ)とシフト量bだけシフトした第4ヒストグラムH4(φ−b)(複数の新たな第2ヒストグラムデータ)との相互相関関数を算出する。具体的には、第3ヒストグラムH3(φ)とシフト量bだけシフトした第4ヒストグラムH4(φ−b)との積H3(φ)*H4(φ−b)をとりうるφの値(第1ヒストグラムデータの個数分又は第2ヒストグラムデータの個数分)だけ加算した値(H3(φ)*H4(φ−b)のφに対する定積分値であるとも言える)を、1つのシフト量bに対する相互相関関数として算出する。その後、当該相互相関関数は、当該1つのシフト量bと関連付けられて、記憶部51などに記憶される。
上記の1つのシフト量bに対する相互相関関数の算出は、とりうる範囲内の全てのシフト量b(例えば、−180°〜180°の範囲内の全てのシフト量b)のそれぞれ対して実行される。これにより、とりうる範囲内の全てのシフト量bと関連付けられた相互相関関数の集合体が、記憶部51などに記憶される。
相互相関関数の集合体を算出後、第1移動量算出部5312は、算出された相互相関関数の集合体のうち最大値の相互相関関数に関連付けられているシフト量bを、第3ヒストグラムH3(φ)と第4ヒストグラムH4(φ)とが最も一致したときの第4ヒストグラムH4(φ)のシフト量とする。すなわち、第1移動量算出部5312は、上記の相互相関関数の集合体のうち最大値の相互相関関数に関連付けられたシフト量bを、候補移動量φcと決定する。
上記のステップS21及びS22においては、第3ヒストグラム(複数の第1ヒストグラムデータ)及び第4ヒストグラム(複数の第2ヒストグラムデータ)のヒストグラムデータ間隔(第1ヒストグラムデータ間隔、第2ヒストグラムデータ間隔)は、比較的大きなヒストグラムデータ間隔として設定されている。これにより、第3ヒストグラムとシフト後の第4ヒストグラムとの積H3(φ)*H4(φ−b)の算出個数を減少して、1つのシフト量bに対する相互相関関数の計算量を減少できる。
このように、1つのシフト量bに対する相互相関関数の算出に必要な計算量を減少することにより、シフト量bのとりうる範囲が広く多数の相互相関関数を算出する必要があっても、候補移動量φcの算出のために必要な全体の計算量を、最初からヒストグラムデータ間隔が小さいヒストグラムのヒストグラムマッチングにより第1移動量を算出する場合と比較して減少できる。
上記のように算出された候補移動量φcは、実際の第1移動量に近い値として算出されている一方、ヒストグラムデータ間隔の大きなヒストグラムを用いたヒストグラムマッチングにより算出されているので、実際の第1移動量と比較すると誤差を含んでいる。
従って、候補移動量φcを算出後、第1移動量算出部5312は、候補移動量φcを、よりヒストグラムデータ間隔の小さいヒストグラムを用いたヒストグラムマッチングにより補正して、補正移動量を算出する。
具体的には、まず、位置データ記憶部5311に記憶されている角度θについての複数の第1位置データから、上記のヒストグラムデータ間隔M1(第1ヒストグラムデータ間隔)よりも小さなヒストグラムデータ間隔M2(第3ヒストグラムデータ間隔の一例)を有する第5ヒストグラムH5(φ)を生成する。
また、位置データ記憶部5311に記憶されている角度θについての複数の第2位置データから、上記のヒストグラムデータ間隔M1(第2ヒストグラムデータ間隔)よりも小さなヒストグラムデータ間隔M2(第4ヒストグラムデータ間隔の一例)を有する第6ヒストグラムH6(φ)を生成する(ステップS23)。
例えば、ヒストグラムデータ間隔M2をr*m(r:整数)と定義したとすると、rの絶対値をrの絶対値よりも小さな値として、上記のステップS21にて説明したのと同様の方法により、位置データ記憶部5311に記憶されている角度θについての複数の第1位置データから、第5ヒストグラムH5(φ)のための複数の第3ヒストグラムデータを生成する。
また、上記のrの絶対値をrの絶対値よりも小さな値として、上記のステップS21にて説明したのと同様の方法により、位置データ記憶部5311に記憶されている角度θについての複数の第2位置データから、第6ヒストグラムH6(φ)のための複数の第4ヒストグラムデータを生成する。
第5ヒストグラムH5(φ)及び第6ヒストグラムH6(φ)を生成後、第1移動量算出部5312は、第5ヒストグラムH5(φ)を第1ヒストグラムに対応するものとし、第6ヒストグラムH6(φ)を第2ヒストグラムに対応するものとして、これら2つのヒストグラムのヒストグラムマッチングにより、候補移動量φcを補正した補正移動量を算出する(ステップS24)。ステップS24においては、候補移動量φcを中心とした所定の範囲内(−ΔφからΔφまでの範囲)にて第6ヒストグラムをシフトしたときに、第5ヒストグラムと第6ヒストグラムとが最も一致したときの第6ヒストグラムのシフト量から補正移動量を算出する。
具体的には、図11に示すフローチャートに示す処理の流れに従って、補正移動量を算出する。図11は、補正移動量の算出方法を示すフローチャートである。
まず、第1移動量算出部5312は、第6ヒストグラムH6(φ)をステップS22にて算出した候補移動量φcだけシフトさせて、新たな第6ヒストグラムH6(φ−φc)を生成する(ステップS2401)。
具体的には、ステップS23にて生成した複数の第4ヒストグラムデータ中の各角度に候補移動量φcを加算して新たな複数の第4ヒストグラムデータを作成する。すなわち、s番目の第4ヒストグラムデータの角度−(q−s*r)*mに候補移動量φcを加算して−(q−s*r)*m+φcとし、s番目の第4ヒストグラムデータの出現頻度を元の出現頻度Fのままとすることにより、候補移動量φcだけシフトしたあとの第6ヒストグラムH6(φ−φc)のための新たな複数の第4ヒストグラムデータを生成できる。
次に、第1移動量算出部5312は、第5ヒストグラムとシフト後の第6ヒストグラムとの相互相関関数を算出する(ステップS2402)。具体的には、第5ヒストグラムH5(φ)とシフト量cだけシフトした第6ヒストグラムH6(φ−φc−c)との積H5(φ)*H6(φ−φc−c)を、とりうるφの値(第3ヒストグラムデータの個数分又は第4ヒストグラムデータの個数分)だけ加算した値を、1つのシフト量cに対する相互相関関数として算出する。その後、算出した相互相関関数を当該1つのシフト量cと関連付けて、記憶部51などに記憶する。
相互相関関数をある1つのシフト量cに対して算出後、第1移動量算出部5312は、シフト量cを−ΔφからΔφまでの範囲で変化させて相互相関関数を算出したか否かを判断する(ステップS2403)。
候補移動量φcだけシフトした後の新たな第6ヒストグラムH6(φ−φc)は、第5ヒストグラムH5(φ)からわずかにずれているだけであるので、ステップS2403においては、上記の第6ヒストグラムのシフト量cの変化量(2Δφ)を、候補移動量φcを算出する際の第4ヒストグラムのシフト量bの変化量(例えば、360°)よりも小さな値に設定する。
現在のシフト量cが−Δφよりも大でかつ+Δφよりも小であり、相互相関関数を算出すべきシフト量cがまだ存在していると判断した場合(ステップS2403において「No」の場合)、第1移動量算出部5312がシフト量cの値を変更後(ステップS2404)、補正移動量の算出プロセスは、ステップS2402に戻る。これにより、新たなシフト量cに対して相互相関関数が新たに算出される。
シフト量cが−Δφから+Δφまで変化するまで上記のステップS2402〜S2404を繰り返し実行することにより、第1移動量算出部5312は、−Δφから+Δφまでの範囲の各シフト量cと相互相関関数とが関連付けられた、相互相関関数の集合体を算出できる。
一方、−Δφから+Δφまでの範囲の全てのシフト量cに対して相互相関関数を算出したと判断した場合(ステップS2403において「Yes」の場合)、第1移動量算出部5312は、補正移動量の算出を開始する(ステップS2405)。
具体的には、まず、第1移動量算出部5312は、算出された相互相関関数の集合体のうち最大値の相互相関関数に関連付けられているシフト量cを、候補移動量φcを実際の第1移動量に近づけるための補正量(φとする)とする。すなわち、補正量φは、候補移動量φcだけシフトした新たな第6ヒストグラムH6(φ−φc)を第5ヒストグラムH5(φ)と一致させるようさらにシフトした時のシフト量であるといえる。
次に、第1移動量算出部5312は、候補移動量φcに上記の補正量φを加えて、補正移動量をφc+φと算出する。
上記のステップS24においては、ステップS22にて算出された候補移動量φcを、ステップS22におけるヒストグラムデータ間隔(第1ヒストグラムデータ間隔、第2ヒストグラムデータ間隔)よりも小さいヒストグラムデータ間隔(第3ヒストグラムデータ間隔、第4ヒストグラムデータ間隔)のヒストグラム(複数のヒストグラムデータ)を用いて算出された補正量φを用いて補正して、補正移動量を算出している。これにより、実際の第1移動量により近い精度の高い補正移動量を算出できる。
ステップS24においては、ヒストグラムデータ間隔の小さなヒストグラムを用いることにより、1つのシフト量cに対する相互相関関数の計算量が、ステップS22における1つのシフト量bに対する相互相関関数の計算量よりも増加している。その一方で、ステップS24においては、候補移動量φcだけシフトした新たな第6ヒストグラムを用いてヒストグラムマッチングが実行されている。すなわち、ステップS24においては、シフト量cの変化範囲を小さくして、相互相関関数の算出数(算出回数)を減少している。これにより、1つのシフト量cに対する相互相関関数の計算量が増加しても、相互相関関数の算出数を減少して、全体として補正移動量の計算量を減少できる。
上記のステップS2401〜S2405を実行して補正移動量を算出後、第1移動量算出部5312は、補正移動量(補正量φ)の算出が所定回数実行されたか否かを判断する(ステップS25)。具体的には、第1移動量算出部5312は、上記のステップS23〜S24が所定回数実行されたか否かを判断する。
補正移動量の算出が所定回数実行されていないと判断した場合(ステップS25において「No」の場合)、第1移動量の算出プロセスはステップS23に戻り、第1移動量算出部5312は、上記のステップS23〜S24を所定回数だけ繰り返し実行する。
ステップS23〜S24を複数回繰り返して実行する場合、上記のステップS23において、第1移動量算出部5312は、今回の補正量φを算出する際に用いる第5ヒストグラム(複数の第3ヒストグラムデータ)のヒストグラムデータ間隔(第3ヒストグラムデータ間隔)及び第6ヒストグラム(複数の第4ヒストグラムデータ)のヒストグラムデータ間隔(第4ヒストグラムデータ間隔)を、それぞれ、前回の補正量φを算出した際に用いた第5ヒストグラムのヒストグラムデータ間隔(第3ヒストグラムデータ間隔)及び第6ヒストグラムのヒストグラムデータ間隔(第4ヒストグラムデータ間隔)よりも小さくする。
例えば、前回((h−1)回目)の第5ヒストグラム及び第6ヒストグラムのヒストグラムデータ間隔M(h−1)をrh−1*m(rh−1:整数)とした場合には、今回(h回目)の補正移動量の算出を実行する際に、rh−1の絶対値よりも絶対値が小さいr(r:整数)を用いて、ヒストグラムデータ間隔Mhをr*mと定義する。その後、上記のステップS21にて説明したのと同様の方法により、今回の算出に用いるヒストグラムデータ間隔Mhを有する第5ヒストグラム(複数の第3ヒストグラムデータ)、及び、ヒストグラムデータ間隔Mhを有する第6ヒストグラム(複数の第4ヒストグラムデータ)を、それぞれ、複数の第1位置データ及び複数の第2位置データを用いて生成する。
上記のように、今回の補正量φの算出に用いる第5ヒストグラムの第3ヒストグラムデータ間隔及び第6ヒストグラムの第4ヒストグラムデータ間隔を、それぞれ、前回の補正量の算出に用いた第5ヒストグラムの第3ヒストグラムデータ間隔及び第6ヒストグラムの第4ヒストグラムデータ間隔よりも小さくすることにより、より正確な(精度のよい)補正移動量を段階的に算出できる。
また、ステップS23〜S24を複数回繰り返して実行する場合、上記のステップS2401において、第1移動量算出部5312は、第6ヒストグラムH6(φ)を前回算出された補正移動量だけシフトさせた第6ヒストグラムと、第5ヒストグラムH5(φ)とのヒストグラムマッチングを実行する。これにより、第1移動量算出部5312は、前回算出された補正移動量に補正量φをさらに加えて新たな補正移動量を算出できる。
一方、補正移動量の算出が所定回数実行されたと判断した場合(ステップS25において「Yes」の場合)、第1移動量算出部5312は、当該所定回数目に算出された最新の補正移動量を第1移動量と決定し(ステップS26)、第1移動量の算出プロセスを終了する。
上記のように補正量φの算出を複数回繰り返して(例えば、n回繰り返したとする)最終的に算出される補正移動量は、k回目のヒストグラムマッチング(補正量の算出)において算出されたシフト量c(補正量)をφdk(k=1、2、・・・n)とすると、φc+φd1+φd2+・・・+φdnとなる。すなわち、最終的に算出される補正移動量は、候補移動量φcに、各補正量の算出段階において算出された複数の補正量φdkがすべて加算されることにより算出される。
このように、ステップS23〜S24を複数回繰り返して実行することにより、前回算出された補正移動量を前回よりもヒストグラムデータ間隔の小さいヒストグラムのヒストグラムマッチングにより補正して、実際の第1移動量により近い補正移動量を最終的に算出できる。
上記のステップS21〜S26を実行して段階的に第1移動量を算出することにより、 第1移動量の候補である候補移動量φcを少ない計算量で算出できるとの効果と、ヒストグラムデータ間隔がより小さいヒストグラムを用いて精度よく補正移動量を算出しつつ相互相関関数の算出数を減らして補正移動量(補正量φ)に必要な計算量を減少できるとの効果とが相乗効果となり、ヒストグラムデータ間隔が小さいヒストグラムのヒストグラムマッチングを1回のみ実行して第1移動量を算出する場合と比較して、短時間に、かつ、ヒストグラムマッチングを1回のみ実行して算出された第1移動量と同等の精度にて第1移動量を算出できる。
実際に、以下の算出工程(i)〜(iv)にて第1移動量の算出を行った場合の第1移動量の算出時間は、同じ複数の第1位置データ及び第2位置データから生成されたヒストグラムデータ間隔が0.1である2つのヒストグラムのヒストグラムマッチングを1回だけ実行して第1移動量を算出した場合の算出時間の9%程度であった。また、以下の算出工程(i)〜(iv)にて算出された第1移動量と実際の第1移動量との間のずれは、ヒストグラムデータ間隔が0.1であるヒストグラムのヒストグラムマッチングを1回だけ実行して算出された第1移動量と実際の第1移動量との間のずれと同程度であった。
(i)複数の第1位置データからヒストグラムデータ間隔M1が1.0(例えば、m=0.1、r=10)である第3ヒストグラム(複数の第1ヒストグラムデータ)を、複数の第2位置データからヒストグラムデータ間隔M1が1.0である第4ヒストグラム(複数の第2ヒストグラムデータ)を生成。
(ii)(i)にて生成された第3ヒストグラムと第4ヒストグラムとのマップマッチングにより、候補移動量φcを算出。
(iii)複数の第1位置データからヒストグラムデータ間隔M2が0.1(例えば、m=0.1、r=1)である第5ヒストグラムを、複数の第2位置データからヒストグラムデータ間隔M2が0.1である第6ヒストグラムを生成。
(iv)(iii)にて生成された第5ヒストグラムと、(ii)にて算出された候補移動量φcだけシフトされた新たな第6ヒストグラムとのマップマッチングにより、補正量(補正移動量)を算出。本工程において算出された補正移動量を第1移動量とする。
3.他の実施形態
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、発明の要旨を逸脱しない範囲で種々の変更が可能である。特に、本明細書に書かれた複数の実施形態及び変形例は必要に応じて任意に組み合せ可能である。
(A)走行部の他の実施形態
上記の第1実施形態における走行部2は、二輪差動型の走行部であった。しかし、これに限られず、オムニホイールなどの他の車輪を有する走行部を用いてもよい。また、走行部2は車輪21a、21bの回転により移動するものに限られず、車輪以外の他のアクチュエータの動きにより移動可能なものであってもよい。
(B)移動量推定部の他の実施形態
上記の第1実施形態においては、移動量推定部53は、位置データ取得部3にて取得した位置データのみを用いて、自律移動体100の移動量を算出していた。しかし、これに限られず、移動量推定部53は、車輪21a、21bの回転量に基づいても、自律移動体100の移動量を算出可能であってもよい。
この場合、移動量推定部53は、例えば、モータ23a、23bのエンコーダなどからのパルス信号に含まれるパルス数から、車輪21a、21bの回転量を算出できる。これにより、例えば、自律移動体100が、自律移動体100の周囲に壁や障害物などの物体がないために位置データの取得が不可能な場合や、直線的な壁により形成された直線的な通路を通過中の場合など複数の位置データにより形成される投影物体像に時間的な変化があまりないような場合に、移動量推定部53は、車輪21a、21bの回転に基づいて、自律移動体100の移動量を算出できる。
また、上記の車輪21a、21bの回転量に基づく移動量は、上記の第1移動量及び/又は第2移動量を用いて補正されてもよい。これにより、例えば、車輪21a、21bの使用により車輪21a、21bの径が変化した場合でも、車輪21a、21bの回転量に基づいて正確に自律移動体100の移動量を算出できる。
さらに、上記の第1実施形態においては、第1移動量算出部5312が自律移動体100の移動前後の姿勢角度差を算出し、第2移動量算出部5314が自律移動体100の移動前後の平行移動量を算出していた。しかし、これに限られず、第1移動量算出部5312が姿勢角度差に加えて、自律移動体100の平行移動量も算出してもよい。これにより、移動量推定部53における移動量の算出速度を高めることができる。
また、第2移動量算出部5314は、平行移動量に加えて姿勢角度差(回転移動量)を算出してもよい。これにより、最終的な姿勢角度差の算出を行い、より精度よく姿勢角度差を算出できる。
(C)第2移動量の算出方法の他の実施形態
上記の第1実施形態においては、第2移動量算出部5314は、複数の位置データの全てを用いて第2移動量を算出していた。しかし、これに限られず、複数の位置データを用いて移動量を算出する際、複数の位置データを、予め決められた条件に基づいて決定されるいくつかのグループに分類し、各グループに含まれる位置データを用いて多段的に第2移動量の算出を行ってもよい。これにより、第2移動量を算出するために必要な計算量を減少できる。
(D)本体部の他の実施形態
上記の第1実施形態に係る自律移動体100の本体部1には、位置データ取得部3の位置データ検出可能領域に干渉するような部材は特に取り付けられていなかった。しかし、これに限られず、本体部1に、位置データ取得部3の位置データ検出可能領域に少なくとも一部が入るように、既知の形状の干渉部材を取り付けてもよい。
本体部1に、少なくとも一部が位置データ検出可能領域に入るように干渉部材を取り付けることにより、位置データ取得部3が正常に動作しているかどうかを確認できる。例えば、自律移動体100の周囲に壁や障害物などの物体が存在しない場合などに、干渉部材の一部の形状に対応する投影物体像が複数の位置データのいくつかにより形成されていれば、位置データ取得部3の異常により位置データが取得されないのではなく、自律移動体100が、物体が存在しない広い空間を移動中であると判断できる。
(E)補正量の算出に用いるヒストグラムの他の実施形態(その1)
上記の第2実施形態において、補正量の算出に用いる第5ヒストグラム及び第6ヒストグラムのヒストグラムデータ間隔は、最小でも0.1であった。補正量の算出に用いるヒストグラムのヒストグラムデータ間隔は、候補移動量φcの算出に用いたヒストグラムのヒストグラムデータ間隔よりも小さいヒストグラムデータ間隔を有していればよいので、補正量の算出に用いるヒストグラムのヒストグラムデータ間隔の最小値は0.1に限られない。
例えば、補正量の算出に用いるヒストグラムのヒストグラムデータ間隔を0.05としてもよい。これにより、ヒストグラムデータ間隔が0.1であるヒストグラムを用いて1回のみのヒストグラムマッチングにより算出した第1移動量よりも実際の第1移動量により近い補正移動量(第1移動量)を、ヒストグラムデータ間隔が0.1であるヒストグラムを用いて1回のみのヒストグラムマッチングにより第1移動量を算出した場合と同程度の算出時間にて算出できる。
(F)補正量の算出に用いるヒストグラムの他の実施形態(その2)
上記の第2実施形態において、複数の第1位置データから生成されるヒストグラムのヒストグラムデータ間隔と、複数の第2位置データから生成されるヒストグラムのヒストグラムデータ間隔は同一としていた。しかし、これに限られず、複数の第1位置データから生成されるヒストグラムの形状(プロファイル)と、複数の第2位置データから生成されるヒストグラムの形状(プロファイル)とが大きく異なってしまわない範囲で、これらのヒストグラムデータ間隔を異ならせてもよい。
(G)第6ヒストグラムのシフト量についての他の実施形態
上記の第2実施形態において、補正量を算出する際の第6ヒストグラムのシフト範囲(シフト量cの変化範囲)は、補正量の算出回数によらず一定としていた。補正量を算出する際の第6ヒストグラムのシフト範囲は、算出された候補移動量φc及び補正移動量と実際の第1移動量との間の予測されるずれの範囲内で決定できるので、上記に限られない。
例えば、補正量を算出する際の第6ヒストグラムのシフト範囲を、補正量の算出回数毎に減少してもよい。これにより、補正量の算出精度を維持しつつ、補正量の算出時間を短縮できる。
または、上記とは逆に、第6ヒストグラムのシフト範囲を、補正量の算出回数毎に増加してもよい。これにより、上記の第2実施形態に示した方法により算出される第1移動量のロバスト性を向上できる。
(H)候補移動量についての他の実施形態
上記の第2実施形態において、候補移動量φcは、第3ヒストグラムH3(φ)と第4ヒストグラムH4(φ)との一致度が最も高いときの、第4ヒストグラムH4(φ)のシフト量としていた。すなわち、上記の第2実施形態において算出される候補移動量φcは、上記の2つのヒストグラムが最も一致する場合の第4ヒストグラムH4(φ)のシフト量1つのみであった。
候補移動量φcは、実際の第1移動量に近い移動量として算出されればよいので、候補移動量φcの数は1つに限られない。
例えば、2つのヒストグラムが最も一致する場合の第4ヒストグラムH4(φ)のシフト量に加えて、第3ヒストグラムH3(φ)と第4ヒストグラムH4(φ)との一致度が2番目に高いときの第4ヒストグラムH4(φ)のシフト量、3番目に高いときのシフト量、・・・など複数のシフト量を、複数の候補移動量として算出してもよい。
また、移動前後での車輪21a、21b(モータ23a、23b)の回転量に基づいて算出される移動量(デッドレコニングによる移動量、又は、車輪オドメトリによる移動量)を、候補移動量としてもよい。車輪21a、21bの回転量に基づいた候補移動量は、例えば、自律移動体100の移動前と移動後との間に、モータ23a、23bの出力回転軸に取り付けられたエンコーダから出力されるパルス数から算出できる。
上記のように複数の候補移動量を算出した場合には、複数の候補移動量のそれぞれに対して、上記の第2実施形態にて説明したのと同様の方法にて、複数の補正移動量が算出される。
算出された複数の補正移動量のうちいずれを第1移動量とするかは、例えば、最終段階の補正移動量の算出において算出された複数の補正移動量のうち、第5ヒストグラムと第6ヒストグラムとの一致度が最も高くなった補正移動量を、第1移動量とできる。
または、複数の補正移動量の全てを複数の第1移動量として、当該複数の第1移動量に基づいて算出される複数の移動量を、位置推定部55における自律移動体100の現在位置の推定に用いてもよい。
上記のように、複数の候補移動量を算出し、その中から適切な候補移動量を選択することにより、実際の第1移動量により近い移動量を最終的に算出できる。この結果、より精度よく第1移動量を算出できる。
(I)第1移動量算出部の他の実施形態
上記の第2実施形態の第1移動量算出部5312は、第1実施形態の第2移動量算出部5314と第3移動量算出部5315と組み合わされていた。しかし、これに限られず、第2実施形態の第1移動量算出部5312は、移動量推定部53(移動量推定装置)などの移動量の推定を行う装置において、単独で備わっていてもよい。
または、上記の位置データを用いた移動量の推定を行う一般的な移動量推定装置に、第2実施形態において説明した第1移動量の算出方法を適用してもよい。
本発明は、自身の位置を推定しながら移動可能な移動体に広く適用できる。
100 自律移動体
1 本体部
2 走行部
21a、21b 車輪
23a、23b モータ
3 位置データ取得部
31 前方データ取得部
33 後方データ取得部
5 制御部
51 記憶部
53 移動量推定部
531 移動量算出部
5311 位置データ記憶部
5312 第1移動量算出部
5313 位置データ移動部
5314 第2移動量算出部
5315 第3移動量算出部
55 位置推定部
57 走行制御部
7 操作部
71a、71b 操作ハンドル
8 補助輪部
8a、8b 補助車輪
9 取付部材
H11(θ) 第1ヒストグラム
H21(θ) 第2ヒストグラム
H3(φ) 第3ヒストグラム
H4(φ) 第4ヒストグラム
H5(φ) 第5ヒストグラム
H6(φ) 第6ヒストグラム
θ 角度
φ 変数
φc 候補移動量
φ、φdk 補正量
m 最小ヒストグラムデータ間隔
M1、M2 ヒストグラムデータ間隔
、F、・・・、F 出現頻度
A、b、c シフト量

Claims (11)

  1. 移動体の移動量を推定する移動量推定装置であって、
    前記移動体の周囲に存在する物体を所定の座標上に投影した投影物体像を形成する複数の位置データを取得する位置データ取得部と、
    前記移動体の移動前又は移動後の一方において取得した複数の第1位置データの所定の座標軸における座標値から生成される第1ヒストグラムと、前記移動前又は前記移動後の他方において取得した複数の第2位置データの前記所定の座標軸における座標値から生成される第2ヒストグラムとが最も一致したときの前記第2ヒストグラムの移動量を、第1移動量として算出する第1移動量算出部と、
    前記複数の第2位置データを前記第1移動量に対応する移動量だけ移動して複数の第1移動位置データを算出する位置データ移動部と、
    前記複数の第1位置データにより形成される第1投影物体像と前記複数の第1移動位置データを平行移動及び/又は回転移動して算出される複数の第2移動位置データにより形成される第2移動投影物体像との間の距離と所定の閾値との比較に基づいて、前記第1投影物体像と前記第2移動投影物体像とが一致するかどうかを判断し、前記第1投影物体像と前記第2移動投影物体像とが一致すると判断したときの前記複数の第2移動位置データを算出したときの前記複数の第1移動位置データの移動量を、第2移動量として算出する第2移動量算出部と、
    前記第1移動量と前記第2移動量とを積算して、前記移動体の移動前後の移動量を算出する第3移動量算出部と、
    を備える移動量推定装置。
  2. 前記第1移動量算出部は、前記移動前の姿勢角と前記移動後の姿勢角との姿勢角度差を前記第1移動量として算出する、請求項1に記載の移動量推定装置。
  3. 前記第2移動量算出部は、前記複数の第2移動位置データの前記複数の第1移動位置データからの平行移動の移動量を前記第2移動量として算出する、請求項1又は2に記載の移動量推定装置。
  4. 前記第2移動量算出部は、前記複数の第2移動位置データの前記複数の第1移動位置データからの平行移動の移動量及び回転移動の移動量を前記第2移動量として算出する、請求項1〜3のいずれかに記載の移動量推定装置。
  5. 前記第1移動量算出部は、前記複数の第1位置データから生成されヒストグラムデータ間隔が第1ヒストグラムデータ間隔である第3ヒストグラムを前記第1ヒストグラムとし、前記複数の第2位置データから生成されヒストグラムデータ間隔が第2ヒストグラムデータ間隔である第4ヒストグラムを前記第2ヒストグラムとして用いて、前記第1移動量の候補である候補移動量を算出し、
    その後、前記複数の第1位置データから生成され前記第1ヒストグラムデータ間隔よりも小さな第3ヒストグラムデータ間隔を有する第5ヒストグラムを前記第1ヒストグラムとし、前記複数の第2位置データから生成した前記第2ヒストグラムデータ間隔よりも小さな第4ヒストグラムデータ間隔を有するヒストグラムを前記候補移動量だけシフトすることにより生成された第6ヒストグラムを前記第2ヒストグラムとして用いて算出された補正移動量を前記第1移動量とする、
    請求項1〜4のいずれかに記載の移動量推定装置。
  6. 前記補正移動量は、前記第5ヒストグラムと前記第6ヒストグラムとが最も一致したときの前記第6ヒストグラムのシフト量である補正量を前記候補移動量に加えることにより算出される、
    請求項5に記載の移動量推定装置。
  7. 前記第1移動量算出部は前記補正量の算出を複数回実行し、
    前記補正移動量は、前記候補移動量に複数の前記補正量を加算することにより算出される、請求項6に記載の移動量推定装置。
  8. 前記補正量の算出を複数回実行する場合、前記第1移動量算出部は、今回の前記補正量の算出における前記第3ヒストグラムデータ間隔及び前記第4ヒストグラムデータ間隔を、それぞれ、前回の前記補正量の算出における前記第3ヒストグラムデータ間隔及び前記第4ヒストグラムデータ間隔よりも小さくする、請求項7に記載の移動量推定装置。
  9. 請求項1〜8のいずれかに記載の移動量推定装置と、
    走行部と、
    前記移動量推定装置において推定される移動量に基づいて現在位置を推定する位置推定部と、
    前記現在位置から所定の目標位置まで走行するよう前記走行部を制御する走行制御部と、
    を備える自律移動体。
  10. 移動体の移動量の推定方法であって、
    前記移動体の移動前及び移動後に、前記移動体の周囲に存在する物体を所定の座標上に投影した投影物体像を形成する複数の位置データを取得するステップと、
    前記移動前又は前記移動後の一方において取得した複数の第1位置データの所定の座標軸における座標値から生成される第1ヒストグラムと、前記移動前又は前記移動後の他方において取得した複数の第2位置データの前記所定の座標軸における座標値から生成される第2ヒストグラムとが最も一致したときの前記第2ヒストグラムの移動量を第1移動量として算出するステップと、
    前記複数の第2位置データを前記第1移動量に対応する移動量だけ移動して複数の第1移動位置データを算出するステップと、
    前記複数の第1位置データにより形成される第1投影物体像と前記複数の第1移動位置データを平行移動及び/又は回転移動して算出される複数の第2移動位置データにより形成される第2移動投影物体像との間の距離と所定の閾値との比較に基づいて、前記第1投影物体像と前記第2移動投影物体像とが一致するかどうかを判断し、前記第1投影物体像と前記第2移動投影物体像とが一致すると判断したときの前記複数の第2移動位置データを算出したときの前記複数の第1移動位置データの移動量を、第2移動量として算出するステップと、
    前記第1移動量と前記第2移動量とを積算して、前記移動体の移動前後の移動量を算出するステップと、
    を含む移動量の推定方法。
  11. 前記第1移動量を算出ステップは、
    前記複数の第1位置データから生成されヒストグラムデータ間隔が第1ヒストグラムデータ間隔である第3ヒストグラムを前記第1ヒストグラムとし、前記複数の第2位置データから生成されヒストグラムデータ間隔が第2ヒストグラムデータ間隔である第4ヒストグラムを前記第2ヒストグラムとして用いて、前記第1移動量の候補である候補移動量を算出するステップと、
    前記複数の第1位置データから生成され前記第1ヒストグラムデータ間隔よりも小さな第3ヒストグラムデータ間隔を有する第5ヒストグラムを前記第1ヒストグラムとし、前記複数の第2位置データから生成した前記第2ヒストグラムデータ間隔よりも小さな第4ヒストグラムデータ間隔を有するヒストグラムを前記候補移動量だけシフトすることにより生成された第6ヒストグラムを前記第2ヒストグラムとして用いて算出される補正移動量を、前記第1移動量とするステップと、
    を含む、請求項10に記載の移動量の推定方法。
JP2015220609A 2014-11-12 2015-11-10 移動量推定装置、自律移動体、及び移動量の推定方法 Active JP6589578B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2014230128 2014-11-12
JP2014230128 2014-11-12

Publications (2)

Publication Number Publication Date
JP2016103269A true JP2016103269A (ja) 2016-06-02
JP6589578B2 JP6589578B2 (ja) 2019-10-16

Family

ID=56089527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015220609A Active JP6589578B2 (ja) 2014-11-12 2015-11-10 移動量推定装置、自律移動体、及び移動量の推定方法

Country Status (1)

Country Link
JP (1) JP6589578B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110850863A (zh) * 2018-07-31 2020-02-28 卡西欧计算机株式会社 自主移动装置、自主移动方法以及存储介质
KR20200030738A (ko) * 2018-09-13 2020-03-23 주식회사 케이티 이동 로봇 및 이의 위치 인식 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1183530A (ja) * 1997-09-11 1999-03-26 Fuji Heavy Ind Ltd 画像のオプティカルフロー検出装置及び移動体の自己位置認識システム
JP2008076252A (ja) * 2006-09-21 2008-04-03 Matsushita Electric Works Ltd 自己位置認識システム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1183530A (ja) * 1997-09-11 1999-03-26 Fuji Heavy Ind Ltd 画像のオプティカルフロー検出装置及び移動体の自己位置認識システム
JP2008076252A (ja) * 2006-09-21 2008-04-03 Matsushita Electric Works Ltd 自己位置認識システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110850863A (zh) * 2018-07-31 2020-02-28 卡西欧计算机株式会社 自主移动装置、自主移动方法以及存储介质
CN110850863B (zh) * 2018-07-31 2023-05-23 卡西欧计算机株式会社 自主移动装置、自主移动方法以及存储介质
KR20200030738A (ko) * 2018-09-13 2020-03-23 주식회사 케이티 이동 로봇 및 이의 위치 인식 방법
KR102547274B1 (ko) 2018-09-13 2023-06-23 주식회사 케이티 이동 로봇 및 이의 위치 인식 방법

Also Published As

Publication number Publication date
JP6589578B2 (ja) 2019-10-16

Similar Documents

Publication Publication Date Title
CN112985416B (zh) 激光与视觉信息融合的鲁棒定位和建图方法及系统
US8515612B2 (en) Route planning method, route planning device and autonomous mobile device
JP6481347B2 (ja) 移動量推定装置、自律移動体、及び移動量の推定方法
US9274526B2 (en) Autonomous vehicle and method of estimating self position of autonomous vehicle
JP6711138B2 (ja) 自己位置推定装置、及び、自己位置推定方法
DK2343615T3 (en) Independent movement device
JP5018458B2 (ja) 座標補正方法、座標補正プログラム、及び自律移動ロボット
KR20170088228A (ko) 다중로봇의 자기위치인식에 기반한 지도작성 시스템 및 그 방법
JP5310285B2 (ja) 自己位置推定装置及び自己位置推定方法
KR102547274B1 (ko) 이동 로봇 및 이의 위치 인식 방법
JP4697127B2 (ja) 自己位置認識方法
CN110345936B (zh) 运动装置的轨迹数据处理方法及其处理系统
JP2015111336A (ja) 移動ロボット
JP2003015739A (ja) 外環境地図、並びに自己位置同定装置および誘導制御装置
JP2020004095A (ja) 自律移動体制御装置及び自律移動体
US20220351011A1 (en) Printing systems
JP2018022215A (ja) 移動教示装置、及び、移動教示方法
JP6589578B2 (ja) 移動量推定装置、自律移動体、及び移動量の推定方法
Wang et al. Visual regulation of a nonholonomic wheeled mobile robot with two points using Lyapunov functions
JP5895682B2 (ja) 障害物検出装置及びそれを備えた移動体
JP2016081327A (ja) 移動量推定装置、自律移動体、及び移動量の推定方法
Zeghmi et al. A Kalman-particle hybrid filter for improved localization of AGV in indoor environment
JP6626248B2 (ja) 移動量推定装置、自律移動体、及び移動量の推定方法
JP2021149229A (ja) 移動体、及び、位置推定方法
WO2013040411A1 (en) System and method for dynamic localization of wheeled mobile robots

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180822

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190619

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: 20190820

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190902

R150 Certificate of patent or registration of utility model

Ref document number: 6589578

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250