JP2023173688A - 移動体、事前地図生成方法、位置推定システム、位置推定方法、事前地図生成方法、およびプログラム - Google Patents
移動体、事前地図生成方法、位置推定システム、位置推定方法、事前地図生成方法、およびプログラム Download PDFInfo
- Publication number
- JP2023173688A JP2023173688A JP2022086119A JP2022086119A JP2023173688A JP 2023173688 A JP2023173688 A JP 2023173688A JP 2022086119 A JP2022086119 A JP 2022086119A JP 2022086119 A JP2022086119 A JP 2022086119A JP 2023173688 A JP2023173688 A JP 2023173688A
- Authority
- JP
- Japan
- Prior art keywords
- map
- current
- moving
- small
- probability density
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 110
- 239000000284 extract Substances 0.000 claims description 2
- 238000005259 measurement Methods 0.000 abstract description 18
- 238000010586 diagram Methods 0.000 description 65
- 238000004364 calculation method Methods 0.000 description 28
- 238000009826 distribution Methods 0.000 description 5
- 230000007613 environmental effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 230000005484 gravity Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
Images
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Radar Systems Or Details Thereof (AREA)
- Optical Radar Systems And Details Thereof (AREA)
Abstract
【課題】移動体の位置の推定を短時間で精度よく行うことができる移動体、事前地図生成方法、位置推定システム、位置推定方法、事前地図生成方法、およびプログラムを提供する。【解決手段】特定の領域内を移動する移動体であって、前記領域を複数の小領域に分割した場合の小領域毎に対象物が存在する確率密度を示す事前地図を記憶する事前地図記憶部と、前記対象物までの距離および方位の計測値に基づいて、前記移動体の現在位置の候補位置を基準として、前記小領域毎の前記対象物の存在の有無を示す現在地図を生成する現在地図生成部と、前記事前地図および前記現在地図に基づいて、自己の位置を推定する自己位置推定部と、を備える。【選択図】図3
Description
本開示は、移動体、事前地図生成方法、位置推定システム、位置推定方法、事前地図生成方法、およびプログラムに関する。
移動体を自律移動させるとき、移動体の位置を推定することが行われている。移動体の位置を推定するために、移動体が移動する領域内の対象物(障害物など)の情報をあらかじめ記述した環境地図が使用されることがある。環境地図は、移動体が移動領域を自律移動するときに自己位置を推定したり、事前に移動経路を計画したりするためなどに利用される。
特許文献1には、三次元空間の距離情報を取得できる三次元距離センサを用いたり、二次元距離センサを移動体の移動方向に対して角度を付けて搭載し走行の時系列情報を蓄積したりすることで三次元空間の距離情報を取得し、環境地図を生成することが記載されている。
また、非特許文献1には、移動体が三次元空間の情報を記述した環境地図を用いて自己位置を推定する技術が記載されている。
Peter Biber and Wolfgang Straβer, "The Normal Distributions Transform: A New Approach to Laser Scan Matching", Proceedings of the 2003 IEEE International Conference on Intelligent robots and Systems, (2003), pp. 2743-2748.
三次元空間の情報を記述した環境地図を用いて移動体の位置を推定しようとした場合、三次元の情報を処理するために、計算量が膨大になってしまい、処理に時間が掛かる。短時間で膨大な計算を処理するためには高性能な演算装置を移動体に搭載すればよいが、コストが掛かる、または装置が大型となり、搭載できる移動体が限られる、と言った課題が生じる。
本開示は、移動体の位置の推定を短時間で精度よく行うことができる移動体、事前地図生成方法、位置推定システム、位置推定方法、事前地図生成方法、およびプログラムを提供することを目的とする。
本開示に係る移動体は、特定の領域内を移動する移動体であって、前記領域を複数の小領域に分割した場合の小領域毎に対象物が存在する確率密度を示す事前地図を記憶する事前地図記憶部と、前記対象物までの距離および方位の計測値に基づいて、前記移動体の現在位置の候補位置を基準として、前記小領域毎の前記対象物の存在の有無を示す現在地図を生成する現在地図生成部と、前記事前地図および前記現在地図に基づいて、自己の位置を推定する自己位置推定部と、を備える。
本開示に係る事前地図生成装置は、特定の領域内を移動する移動体の自己位置推定に用いられる事前地図を生成する事前地図生成装置であって、前記領域内の対象物の計測位置を示す点群を含む点群地図を生成する点群地図生成部と、前記領域を複数の大領域に分割した場合の大領域毎に対象物が存在する確率密度を算出し、前記複数の大領域のそれぞれを複数の小領域にさらに分割して前記確率密度を前記小領域毎に離散化し、前記小領域毎に離散化した前記確率密度を示す前記事前地図を生成する事前地図生成部と、を備える。
本開示に係る位置推定システムは、特定の領域内を移動する移動体の位置を推定する位置推定システムであって、前記領域を複数の小領域に分割した場合の小領域毎に対象物が存在する確率密度を示す事前地図を生成する事前地図生成装置と、前記対象物までの距離および方位の計測値に基づいて、前記移動体の現在位置の候補位置を基準として、前記小領域毎の前記対象物の存在の有無を示す現在地図を生成し、前記事前地図および前記現在地図に基づいて、自己の位置を推定する移動体と、を備える。
本開示に係る位置推定方法は、特定の領域内を移動する移動体の位置推定方法であって、前記領域を複数の小領域に分割した場合の小領域毎に対象物が存在する確率密度を示す事前地図を記憶し、前記対象物までの距離および方位の計測値に基づいて、前記移動体の現在位置の候補位置を基準として、前記小領域毎の前記対象物の存在の有無を示す現在地図を生成し、前記事前地図および前記現在地図に基づいて、自己の位置を推定する。
本開示に係る事前地図生成方法は、特定の領域内を移動する移動体の自己位置推定に用いられる事前地図を生成する事前地図生成方法であって、前記領域内の対象物の計測位置を示す点群を含む点群地図を生成し、前記領域を複数の大領域に分割した場合の大領域毎に対象物が存在する確率密度を算出し、前記複数の大領域のそれぞれを複数の小領域にさらに分割して前記確率密度を前記小領域毎に離散化し、前記小領域毎に離散化した前記確率密度を示す前記事前地図を生成する。
本開示に係るプログラムは、特定の領域内を移動する移動体の位置を推定するコンピュータが実行するプログラムであって、前記領域を複数の小領域に分割した場合の小領域毎に対象物が存在する確率密度を示す事前地図を記憶し、前記対象物までの距離および方位の計測値に基づいて、前記移動体の現在位置の候補位置を基準として、前記小領域毎の前記対象物の存在の有無を示す現在地図を生成し、前記事前地図および前記現在地図に基づいて、自己の位置を推定する、処理を前記コンピュータに実行させる。
本開示によれば、移動体の位置の推定を短時間で精度よく行うことができる。
以下、本開示の実施の形態について、図面を参照しながら説明する。なお、図面は、理解しやすくするために、それぞれの構成要素を主体として模式的に示している。
<位置推定システム100>
まず、本開示の実施の形態における位置推定システムを図1に示す。図1は本開示の実施の形態に係る位置推定システム100の概要図である。
まず、本開示の実施の形態における位置推定システムを図1に示す。図1は本開示の実施の形態に係る位置推定システム100の概要図である。
図1に示すように、位置推定システム100は、事前地図生成装置200と、移動体300と、を有する。事前地図生成装置200は、移動体300が自己位置を推定しながら移動する際に用いられる、移動領域内の環境を示す情報を含む事前地図を、移動領域を実際に走行することで、事前に生成する。移動領域とは、移動体300が、自己位置を推定しながら走行することが予定されている領域(所定の広さを有する環境)である。事前地図とは、事前地図生成装置200によって事前に(移動体300が移動領域において、自己位置を推定しながらの移動を行う前に)生成される地図である。事前地図は、例えば移動体300を、移動領域内を一通り走査するように走行させることで作成される。
本実施の形態では、事前地図生成装置200は移動体300に搭載されており、移動体300が移動領域を実際に走行することにより、事前地図が生成される。なお、本開示はこれに限定されず、例えば事前地図生成部を、移動体300と同等以上の走行能力を有する計測機器に搭載して移動領域を走行させることで、事前地図を生成してもよい。
事前地図生成装置200は、距離センサ20と、点群地図生成部24、オドメトリ計算部25、事前地図生成部26と、を有する。
点群地図生成部24は、距離センサ20から得られる距離データと、オドメトリ計算部25で生成されたオドメトリデータに基づいて、移動体300が走行する領域に存在する物体を点群で示した点群地図を生成する。
距離センサ20は、移動体300が移動領域を実際に走行したときに、移動領域内に存在する物体までの距離および物体の方向を計測する。以下の説明において、距離センサ20が検出した対象物の距離および方向を示すデータを、距離データと記載する。距離センサ20は、具体的には、電波、光などの電磁波、または超音波などの反射波を受信することで距離データを取得すればよい。または、距離センサ20は、ステレオカメラにより視差画像を取得して距離データを取得すればよい。
オドメトリ計算部25は、移動体300の車輪の回転速度を計測するエンコーダ21、加速度や各速度を検出するIMU(Inertial Measurement Unit:慣性計測装置)22、カメラ23などから得られた情報に基づいて、オドメトリデータを計算する。オドメトリデータとは、エンコーダ21、IMU22、またはカメラ23の少なくともいずれかから得られた情報を基に移動速度、旋回速度を算出し、積分することで事前地図生成装置200の移動量を表すデータである。
事前地図生成部26は、点群地図生成部24で生成された点群地図に基づいて、事前地図を生成する。事前地図生成装置200において生成された事前地図は、移動体300が有する事前地図記憶部39に記憶される。事前地図の詳細については後述する。
移動体300は、距離センサ30と、オドメトリ計算部31と、自己位置推定部32と、移動体制御部38と、事前地図記憶部39と、を有する。
オドメトリ計算部31は、オドメトリ計算部25と同様に、図示しないエンコーダなどの情報に基づいて、移動体300の移動量を計算し、オドメトリデータを生成する。なお、図1に示す例では、事前地図生成装置200と移動体300とがそれぞれオドメトリ計算部を有しているが、いずれか一方のみが有していてもよい。この場合、オドメトリ計算部が生成したオドメトリデータ、事前地図生成装置200と移動体300のうち、オドメトリデータを必要とする方が利用すればよい。
自己位置推定部32は、オドメトリ計算部31で生成されたオドメトリデータと、距離センサ30から取得した距離データと、事前地図記憶部39から読み出した事前地図と、に基づいて、移動体300の自己位置の推定を行う。距離センサ30は、距離センサ20と同様のセンサである。
自己位置推定部32は、候補点移動部33と、現在地図生成部34と、現在地図記憶部35と、地図切出部36と、スコア計算部37と、事前地図記憶部39と、を有する。自己位置推定部32の詳細については後述する。
移動体制御部38は、自己位置推定部32で生成された自己位置推定結果と、距離センサ30からの距離データと、事前地図記憶部39から読み出した事前地図に基づいて、移動体300の走行制御を行う。
<移動領域>
移動領域について具体例を挙げて説明する。図2に、移動領域の第1の具体例を示す。また、図3に、移動領域の第1の具体例を示す。図2および図3は、移動領域の上面図である。図2,図3の700は移動領域を示し、701,702は移動領域内に存在する物体を示す。物体701,702は、壁、柱など、移動体300の移動の障害となりうる物体である。703は移動可能領域を示し、移動体300が移動可能な床面等である。図2,図3はグローバル座標系で描かれた図であり、Ogはグローバル座標系の原点である。
移動領域について具体例を挙げて説明する。図2に、移動領域の第1の具体例を示す。また、図3に、移動領域の第1の具体例を示す。図2および図3は、移動領域の上面図である。図2,図3の700は移動領域を示し、701,702は移動領域内に存在する物体を示す。物体701,702は、壁、柱など、移動体300の移動の障害となりうる物体である。703は移動可能領域を示し、移動体300が移動可能な床面等である。図2,図3はグローバル座標系で描かれた図であり、Ogはグローバル座標系の原点である。
移動領域700は、移動体300が、スタート地点からゴール地点までの間を、自己位置を推定しながら自律走行することが計画されている領域である。図2では移動体300が直線状の軌跡を、図3では移動体300が曲線状の軌跡を、それぞれ描いて移動する様子が示されている。なお、図2,図3に示す移動体300の移動する軌跡は一例であり、本開示における移動体300の移動する軌跡はこれらに限定されない。
<動作フロー>
位置推定システム100の動作フローについて説明する。
位置推定システム100の動作フローについて説明する。
[全体動作]
図4は、位置推定システム100の全体動作のフローチャートである。ステップS1において、事前地図生成装置200は、事前地図を生成する。上記したように、事前地図は、移動体300が移動領域内において自己位置を推定しながら自律移動する前に、あらかじめ生成される移動領域の地図である。
図4は、位置推定システム100の全体動作のフローチャートである。ステップS1において、事前地図生成装置200は、事前地図を生成する。上記したように、事前地図は、移動体300が移動領域内において自己位置を推定しながら自律移動する前に、あらかじめ生成される移動領域の地図である。
ステップS2において、移動体300は、事前地図を用いて、移動領域内における自律移動を開始する。
ステップS3において、移動体300は、移動領域内において自律移動しながら、現在地図の生成を行う。現在地図とは、自律移動中の移動体300がスタート地点から現在の位置に到達するまでに検知した移動領域内の物体の位置を示した地図である。現在地図の詳細については後述する。
ステップS4において、移動体300は、事前地図と現在地図とに基づいて自己位置の推定を行う。
ステップS5において、移動体300は、推定した自己位置に基づいて、ゴール地点に向かって移動する。
図4に示すフローチャートにおいて、ステップS3からステップS5までの処理は、所定時間毎に繰り返し行われる。すなわち、移動体300は、自律移動を開始した後、自己位置の推定と移動とを所定の時間周期で繰り返し行う。これにより、移動体300は、移動領域内における自己位置を精度よく推定しながら、安全に移動を行うことができる。
以下の説明は、図4のフローチャートのステップS3からステップS5がループすることを前提とする。以下では、ステップS3からステップS5までの処理を1ループとして、現在行っているループの処理を現在の処理、1回前のループにおける処理を前回の処理、などと記載することがある。
[事前地図の生成方法]
次に、図4のステップS1における、事前地図生成装置200による事前地図500の生成方法について説明する。
次に、図4のステップS1における、事前地図生成装置200による事前地図500の生成方法について説明する。
図5は、事前地図500の生成手順のフローチャートである。図5に示すフローチャートは、移動体300が図2,図3に示す移動領域700内を、実際に走行しながら実行される。
ステップS11において、事前地図生成装置200は、現在の移動体300の位置から距離センサ20によって検知された物体までの距離を示す距離データを、オドメトリ計算部25から、現在の位置までの移動体300の移動した軌跡を示すオドメトリデータを、それぞれ取得する。
ステップS12において、点群地図生成部24は、現在位置に係る点群地図400を生成する。図6に、点群地図400の一例を示す。点群地図400は、移動領域700内において、距離センサ20によって検出された検出点を含む点群の位置を示した地図である。
図6において、物体に対応する検出点を含む点群401が示されている。点群地図400において、グローバル座標系が設定されている。Ojは点群地図400の座標原点を示す。
図5の説明に戻る。ステップS13において、事前地図生成部26は、ステップS12で生成された点群地図を複数の領域に分割する。以下の説明において、ステップS12において分割した領域を、大領域と記載する。図7に、ステップS12で生成された点群地図400を大領域に分割した様子を示す。
図7の400_RLは1つの大領域を示す。大領域400_RLの1辺のサイズをLLとする。大領域の1辺は例えば1m~1.5mに設定される。点群地図400の各点群はいずれかの大領域に必ず属することになる。
式(1)では、二次元の確率密度が、大領域に含まれる点群の位置情報の平均値、分散値などにより計算されている。
1つの大領域内に点群が12つ未満の場合、その大領域の確率密度は0になる。1つの大領域内に点群が2つ以上、異なる位置に存在する場合、その大領域の確率密度は0より大きい値となる。
図8は、図7において大領域毎の確率密度を濃淡で示したイメージ図である。図8のDPは、確率密度の分布を等高線により表しており、色が濃いほど確率密度の値が大きいことを示している。
ステップS15において、ステップS13で分割した大領域を、さらに複数の小領域に分割する。図9は、点群地図400を小領域に分割した様子を示す。
図9において、400_RSは1つの小領域を示す。小領域の1辺のサイズをLSとする。小領域の1辺のサイズLSは、例えば、大領域の1辺のサイズの1/4~1/10、すなわち0.1m~0.4m程度に設定される。
ステップS16において、大領域400_RL毎の点群位置の確率密度を離散化し、小領域毎の確率密度を算出する。図10および図11は、各大領域の点群位置の確率密度を小領域で離散化する方法について説明するための図である。
図10Aは、1つの大領域400_RLを拡大した様子を示す。図10Bは、Xj軸に沿った二次元の確率密度PD_xの分布を示す。図10Cは、Yj軸に沿った二次元の確率密度PD_yの分布を示す。
図10Bおよび図10Cに示すように、図10Aに例示する大領域400_RLでは、点群の確率密度PD_xおよびPD_yは、いずれも山型の滑らかな連続量となっている。なお、図10Aでは確率密度を色の濃さで示しているが、図10Bおよび図10Cに示すように、大領域400_RLの周辺部の白い部分でも確率密度は0ではなく、微小な値を有している。
図11Aは、図10Aに示す大領域400_RLのうち、1つの小領域400_RSを拡大した様子を示す図である。DSはこの小領域400_RSの対角線であり、MSは小領域400_RSの中点である。
図11Bは、図11Aに示す小領域400_RSの対角線DS上における確率密度の分布を示す。図11Bに示す例では、小領域400_RSの対角線の中点位置における確率密度の値は0.8である。
式(2)は、確率密度の値に対し量子化を行って整数値へ変換する式である。dは量子化後の確率密度の値(整数値)、fは量子化前の確率密度の値、fmaxはあらかじめ定められた上限値である。nはビット数である。
例えば、fを0.8、fmaxを1.0、nを24とすると、dは13,421,772となる。
図12は、図10Aに示す大領域400_RLに対応する事前地図の一部500_RLを示す図である。また、図13は、図9に含まれる全ての小領域400_RS毎の量子化した確率密度の値を含む事前地図500を示す図である。
図5の説明に戻る。ステップS17において、事前地図生成部26は、ステップS12からステップS16で計算された、現在位置毎の点群地図400における小領域毎の確率密度と、オドメトリ計算部25から取得した、移動体300が移動した軌跡を示すオドメトリデータと、に基づいて、事前地図500を生成する。
図14Aは、事前地図500のデータ構造800を示す。図14Aにおいて、801はファイルヘッダ、802は情報ヘッダ、803はデータ部、804は追加データ部である。
図14Bは、ファイルヘッダ801に格納される情報の例を示す。図14Cは、情報ヘッダ802に格納される情報の例を示す。情報ヘッダ802には、一般的な画像データの情報が格納される。
データ部803は、ステップS16で生成された点群地図400における小領域毎の確率密度の量子化値(図13参照)を格納する。
データ部803に、点群地図400における小領域毎の確率密度の離散化値を格納する方法は、例えば以下のとおりである。図15Aは点群地図400の小領域毎の量子化値を、データ部803に格納する際の順番を説明する図である。また、図15Bは、データ部803のデータ構造と格納の順番を示す図である。
図15Aに示すように、小領域毎の量子化値は、原点に近い位置からXj軸に沿って、1列ごと下から上に読み取られる。図15Bに示すように、データ部803には、読み取られた量子化値が1行毎に左から右に格納される。
ここで、事前地図に採用する画像ファイル形式に合わせて、例えば1行当たりのデータ量を調整することが行われる。本実施の形態では、事前地図にはビットマップ形式を採用するが、ビットマップ形式では1行のデータ量は4の倍数のByte数にする必要がある。1つの小領域を24bit=3Byteで量子化する場合、点群地図における小領域の数が11個であるとすると、1行のデータ量は33Byteとなる。この場合、ビットマップ形式に合わせて1行のデータ量を4の倍数とするためには、3Byte追加して36Byteとすればよい。
この場合、データ部803は、1列にM×24bit+αのデータが格納され、これが行方向にN個繋がったデータ構造を有する。Mは点群地図400におけるXj方向に沿った小格子の個数、NはYj方向に沿った小格子の個数、αは行毎のデータ量を4の倍数に合わせるために加算する値である。
なお、上記の説明では、点群地図を24bitで量子化する例について説明したが、24bit以外で量子化する場合、図14B,図14Cに示すヘッダ情報を変更することで、24bit以外で量子化することも可能である。
追加データ部804は、三次元の点群地図400_3Dに対応するための追加データを格納する。図16Aは、三次元の点群地図400_3Dのサイズを示す概念図である。三次元の点群地図400_3Dは、図6に示すXj-Yj平面の点群地図400をZj軸方向に積層したものである。xmin,ymin,zminはそれぞれXj軸、Yj軸、Zj軸に沿った点群地図400_3Dにおける距離の最小値、xmax,ymax,zmaxはそれぞれXj軸、Yj軸、Zj軸に沿った点群地図400_3Dにおける距離の最大値である。
図16Bは、追加データ部804に格納される追加データを示す。図16Bに示すように、追加データには、三次元のXj軸、Yj軸、Zj軸に沿った距離の最小値、小領域の個数、小領域の1辺のサイズが含まれる。
以上の処理により、事前地図500を生成することができる。このように確率密度の離散化、量子化をあらかじめ行っておくことにより、移動体300の自律移動時における自己位置推定処理における負荷低減を実現できる。また、事前地図500が三次元に対応する場合でもコンパクトなデータ構造で事前地図500のデータを格納できるので、自己位置推定処理における負荷低減を実現できる。
事前地図生成装置200によって生成された事前地図500は、移動体300の事前地図記憶部39に記憶される。
[現在地図の生成方法]
次に、図4のステップS2における、現在地図600の生成方法について説明する。
次に、図4のステップS2における、現在地図600の生成方法について説明する。
図17は、現在地図600の生成手順のフローチャートである。図17では、一例として、移動体300が図2および図3に示す移動領域700において、スタート地点からゴール地点に向かって自律走行する場合の現在地図600の生成手順を説明する。
移動体300がスタート地点にいるとき、移動体300を基準とした座標原点O300と移動領域700のスタート地点を基準とした座標原点O700とは一致している。
ステップS21において、現在地図生成部34は、移動体300がスタート地点にいるか否かを判定する。移動体300がスタート地点にいる場合、処理はステップS22に進む。そうでない場合、処理はステップS25に進む。
ステップS21において、移動体300がスタート地点にいると判断された場合、ステップS22からステップS24の処理が実行される。
図18は、移動体300がスタート地点にいる場合の移動領域700を示す。図18において、SLは距離センサ30の走査線、O300は移動体300を基準とした座標原点、O700は移動領域700のスタート地点を基準とした座標原点を示している。なお、移動体300を基準とした座標原点O300は移動体300が移動するのに合わせて移動するが、移動領域700のスタート地点を基準を基準とした座標原点O700は移動しない。
ステップS22において、現在地図生成部34は、距離センサ30から計測点までの距離および距離センサ30から見た計測点の方向を取得する。計測点は、距離センサ30の走査線SLと物体701,702との交点である。図19は、移動体300がスタート地点にいる時の計測点Pmを示す図である。
ステップS23において、現在地図生成部34は、点群地図400を小領域400_RSに分割する。図20は、図19に示す点群地図400を小領域400_RSに分割した様子を示す。ステップS23で分割される小領域400_RSのサイズは、図5のステップS15で分割される点群地図400の小領域400_RSのサイズと同じである。図20に示すように、計測点Pmは小領域400_RSのいずれかに属する。
ステップS24において、現在地図生成部34は、点群地図400を分割した小領域400_RS毎の計測点Pmの有無に基づいて、現在地図600を生成する。図21は、移動体300がスタート地点にある時の現在地図600を示す。現在地図600は、点群地図400を分割した小領域400_RSのそれぞれと対応する小領域600_RSを有している。現在地図600は、小領域400_RS内に計測点Pmが入っている場合には対応する小領域600_RSに「1」の値を、小領域400_RS内に計測点Pmが入っていない場合には対応する小領域600_RSに「0」の値を、それぞれ格納することで生成される。ステップS24の完了後、処理はステップS21に戻る。
ステップS21において、移動体300がスタート地点にいないと判断された場合、ステップS25からステップS28の処理が実行される。ステップS25からステップS27までの処理では、ステップS24までの処理で生成された現在地図600からの差分が生成される。なお、以降の説明において、新たに行われるステップS25からステップS28までの処理より前に行われたステップS22からステップS24までの処理、または、新たに行われるステップS25からステップS28までの処理より前に行われたステップS25からステップS28までの処理において生成された現在地図600を、前回の現在地図と記載することがある。
ステップS25において、現在地図生成部34は距離センサ30から距離データを、オドメトリ計算部31からオドメトリデータをそれぞれ取得する。オドメトリデータは、前回の現在地図600の生成時点における移動体300の位置から、現在までの間に移動体300が移動した移動量を示すデータである。
図22および図23は、移動体300がスタート地点とゴール地点との間の地点Pcにいる場合の移動領域700を示す図である。図22は、図2に示す直線状の軌跡を移動体300が移動する場合に対応しており、図23は、図3に示す曲線状の軌跡に沿って移動体300が移動する場合に対応している。
ステップS26において、現在地図生成部34は点群地図400を小領域400_RSに分割する。図24は、移動体300が図21に示す第1地点にいる場合の距離センサ30の計測点を含む点群地図400を示す図である。図24は、移動体300が図22に示す地点Pcにいる場合の距離センサ30の計測点を含む点群地図400を示す図である。図25は、移動体300が図23に示す地点Pcにいる場合の距離センサ30の計測点を示す図である。図26および図27は、図23および図23に示す点群地図400を小領域400_RSに分割した様子を示している。ステップS26において分割される小領域400_RSのサイズは、図5のステップS15で分割される点群地図400の小領域400_RSと同じサイズである。
ステップS27において、現在地図生成部34は、小領域に分割された点群地図400に基づいて、現在地図の差分600Dを生成する。図28は、移動体300が図22に示す地点Pcにいる時の現在地図の差分600Dを示す図である。図29は、移動体300が図23に示す地点Pcにいる時の現在地図の差分600Dを示す図である。ステップS27における現在地図の差分600Dの生成方法は、ステップS24において説明した方法と同じである。すなわち、現在地図の差分は、小領域400_RS内に計測点が入っている場合には対応する小領域に「1」の値を、小領域400_RS内に計測点が入っていない場合には対応する小領域に「0」の値を、それぞれ格納することで生成される。
ステップS28において、現在地図生成部34は、ステップS24において生成した前回の現在地図600と、ステップS27において生成した現在地図の差分600Dと、に基づいて、現在地図600を更新する。
更新済み現在地図600Uの生成方法は、例えば以下のとおりである。現在地図生成部34は、ステップS24において生成した現在地図600と、ステップS27において生成した現在地図の差分600Dとを、原点Ogが一致するように重ね合わせる。
図30は、図21に示す現在地図600と、図28に示す現在地図の差分600Dとに基づいて更新された、更新済み現在地図600Uを示す図である。図31は、図21に示す現在地図600と、図29に示す現在地図の差分600Dとに基づいて更新された、更新済み現在地図600Uを示す図である。図30および図31においては、移動体300がスタート地点から移動することで、移動体300の座標原点O300も移動している。移動体300の座標原点O300の位置および向きは、例えば、移動体300の移動量を示すオドメトリデータや方位センサ(図示せず)による検知結果などに基づいて得られる。
図30および図31に示すように、現在地図生成部34は、ステップS24において生成した現在地図600と、ステップS27において生成した現在地図の差分600Dとを重ね合わせたとき、同じ位置の小領域600_RSのいずれかに「1」が格納されている場合、当該小領域600_RSの値を「1」とし、いずれにも「1」が格納されていない場合、当該小領域600_RSの値を「0」のままとする。これにより、更新済み現在地図600Uを生成することができる。
ステップS28の完了後、処理はステップS21に戻る。以降の処理では、移動体300はスタート地点にいないため、処理はステップS25に進み、ステップS27において新たな現在地図の差分を生成し、ステップS28において更新済み現在地図600Uに新たな差分を重ねることにより、新たな更新済み現在地図600Uが生成される。このように、図17に示す現在地図生成部34の処理は、所定時間毎に繰り返される。生成された現在地図は、現在地図記憶部35(図1参照)に記憶される。
[自己位置推定方法]
次に、図4のステップS4における、移動体300の自己位置を推定する方法について説明する。ステップS4における処理は、ステップS1で生成した事前地図、およびステップS3で生成または更新した現在地図を用いて、実際の移動領域内を自律移動する移動体300が、自己位置を推定する処理である。図4ではステップS3の現在地図の生成または更新とステップS4の自己位置推定とは、異なるステップで示されているが、実際には移動体300が自律移動する間に、所定周期で順番に、または並行して行われる。
次に、図4のステップS4における、移動体300の自己位置を推定する方法について説明する。ステップS4における処理は、ステップS1で生成した事前地図、およびステップS3で生成または更新した現在地図を用いて、実際の移動領域内を自律移動する移動体300が、自己位置を推定する処理である。図4ではステップS3の現在地図の生成または更新とステップS4の自己位置推定とは、異なるステップで示されているが、実際には移動体300が自律移動する間に、所定周期で順番に、または並行して行われる。
図32は、自己位置推定部32による自己位置推定手順のフローチャートである。以下の説明において、移動体300は、図22および図23に示す移動領域700において、スタート地点とゴール地点との間の地点Pcにいるとする。
まず、ステップS31において、自己位置推定部32は、距離センサ30から距離データを、オドメトリ計算部31からオドメトリデータを、それぞれ取得する。
ステップS32において、地図切出部36は、図4のステップS3にて生成した現在地図600を用いて、現在地図における移動体300を基準とした座標原点O300を含む所定範囲の切り出しを行う。図33および図34は、現在地図600の切り出しの様子を示す図である。図33に示す現在地図600は、移動体300が図22に示す地点Pcにいるときの更新済み現在地図600U(図30参照)である。図34に示す現在地図600は、移動体300が図23に示す地点Pcにいるときの更新済み現在地図600U(図31参照)である。
所定範囲は、座標原点O300からXv方向、Yv方向にそれぞれあらかじめ決められた距離に設定された境界によって規定される範囲である。なお、Xv方向、Yv方向は、方位センサなどによって得られた移動体300の向きに基づいて決定される。
図33に示す例では、所定範囲の境界は、座標原点O300から+Xv方向に距離Lx1、-Xv方向に距離Lx2、+Yv方向に距離Ly1、-Yv方向に距離Ly2離れた位置に設定されている。距離Lx1、距離Ly1、および距離Ly2は、距離センサ30が精度よく距離を計測できる範囲となるように設定されればよく、例えば距離センサ30の走査線(図17に示す走査線SL)の長さの75%~85%に設定されることが望ましい。また、それまでの移動体300の移動により得られた現在地図を反映するため、移動体300の後ろ側の距離Lx2は、前側の距離Lx1より長く設定される。具体的には、距離Lx2は前側の距離Lx1の4~6倍に設定されることが望ましい。
切り出した現在地図600Cを図35および図36に示す。図35は、図33に示す現在地図600から切り出された現在地図600Cを、図36は、図34に示す現在地図600から切り出された現在地図600Cを、それぞれ示している。なお、図34に示すように、移動体300の位置が小領域を構成する格子線の交点上に位置しない場合、図36に示すように、切り出された現在地図600Cは、移動体300の位置が交点上に位置するように、再構成される。この際、切り出された現在地図600Cにおける格子線は、図36に示すように、移動体300の位置を基準として再設定され、新たな格子線によって構成される各格子が有する値は、位置的に対応する切り出される前の格子が有する値に設定されればよい。
ステップS33において、候補点移動部33は、オドメトリデータを用いて移動体300の現在位置の候補位置および姿勢を計算する。オドメトリデータは前回の処理で得られた自己推定位置からの移動体300の移動量を示すデータである。このため、現在位置の候補位置は、前回の処理で推定された自己位置にオドメトリデータが示す移動量を足し合わせることで算出される。
しかしながら、オドメトリデータは精度がそれほど高くないため、オドメトリデータが示す移動量を前回の処理で推定された自己位置に足し合わせても、精密な現在位置を得ることは困難である。このため、本開示では、オドメトリデータが示す移動量を用いて、いくつかの候補位置を算出している。
図37および図38は、候補位置の例を示す図である。図37および図38では、移動体300の3つの候補位置P1,P2,P3が示されている。なお、図37は、移動体300が図22に示す地点Pcにいるときの候補位置の例を示しており、図38は、移動体300が図23に示す地点Pcにいるときの候補位置の例を示している。候補位置P1の移動体300を基準とした座標の原点をO300_P1、候補位置P2の移動体300を基準とした座標の原点をO300_P2、候補位置P3の移動体300を基準とした座標の原点をO300_P3とする。
ステップS34において、地図切出部36は、候補位置毎に、座標原点を基準として、図4のステップS1で生成した事前地図500の切り出しを行う。切り出す範囲の境界設定方法は、ステップS32における現在地図600の切り出し方法と同じである。図39は、図37に示す候補位置P1で図13に示す事前地図500を切り出す様子を示す図であり、図41は、切り出した事前地図500Cを示す図である。図40は、図38に示す候補位置P1で図13に示す事前地図500を切り出す様子を示す図であり、図42は、切り出した事前地図500Cを示す図である。
ステップS35において、スコア計算部37は、ステップS32で切り出した現在地図600およびステップS34で切りだした事前地図500に基づいて、スコア計算を行う。具体的には、スコア計算部37は、切り出された現在地図600における移動体300の座標原点O300と、切り出された事前地図500の候補位置毎の座標原点と重ね合わせる。
事前地図500と、現在地図600とは、同じ大きさの小領域で分割されており、小領域毎に事前地図500には確率密度の量子化値が、現在地図600には物体の有無を示す値(「0」または「1」)が、それぞれ格納されている。スコア計算部37は、所定の範囲の中で、現在地図600において物体があるとされる小領域(すなわち値が「1」である小領域)を抽出し、抽出した小領域における事前地図500の量子化値の総和を計算する。
図43および図44は、切り出した事前地図500において、量子化値の総和を求める小領域を説明するための図である。図41に示す、切り出した事前地図500Cの小領域のうち、図35に示す、切り出した現在地図600Cにおいて「1」の値が格納された小領域は、図43において、太実線で囲まれた小領域で示される。また、図42に示す、切り出した事前地図500Cの小領域のうち、図36に示す、切り出した現在地図600Cにおいて「1」の値が格納された小領域は、図44において、太実線で囲まれた小領域で示される。スコア計算部37は、これらの小領域に格納された確率密度の量子化値の総和を算出する。すなわち、図43に示す例では、31,876,708となる。また、図44に示す例では、30,198,986となる。このような処理を、全ての候補位置P1~P3について行う。
ステップS36において、自己位置推定部32は、全ての候補位置について計算されたスコアのうち、最もスコアが高い候補位置を、現在の移動体300の推定位置として出力する。なお、最もスコアが高い候補位置を現在の移動体300の推定位置とするのではなく、例えば、スコアが比較的高い上位複数個の候補位置の重心点を計算し、当該重心点を移動体300の自己位置としてもよい。なお、図37および図38では、候補位置が3箇所である場合の例が示されているが、本開示では候補位置はより多くてもよいし、2つでもよい。候補位置が多い方が演算量は多くなるものの、自己位置推定精度は向上するため、所望の精度に合わせて候補位置は適宜設定されればよい。
以上説明した処理により、三次元データの処理、および、確率密度の計算など、複雑で処理負荷が大きい処理は、移動体300が実際に移動を開始するより前に、事前地図生成装置200によって行われており、その結果として事前地図500が作成される。移動体300は、実際に移動しながら自己位置を推定するときには、事前地図500に基づいて自己位置の推定を行うため、移動体300の自己位置推定処理に要する負荷が小さくて済む。特に、自己位置推定処理の際に行われる計算は、小領域内の量子化値の可算であるため、演算不可が大きい乗算などを行う必要がなく、処理速度を速くすることができる。このため、移動体300が高度な計算能力を有していない場合でも、素早く、かつ高精度に自己位置を推定することができる。
本開示は、自律移動ロボットや、自動運転の分野で活用することができる。
100 位置推定システム
200 事前地図生成装置
300 移動体
20,30 距離センサ
21 エンコーダ
22 IMU
23 カメラ
24 点群地図生成部
25 オドメトリ計算部
26 事前地図生成部
30 距離センサ
31 オドメトリ計算部
32 自己位置推定部
33 候補点移動部
34 現在地図生成部
35 現在地図記憶部
36 地図切出部
37 スコア計算部
38 移動体制御部
39 事前地図記憶部
400 点群地図
401 点群
500 事前地図
600 現在地図
700 移動領域
701,702 物体
800 データ構造
801 ファイルヘッダ
802 情報ヘッダ
803 データ部
804 追加データ部
200 事前地図生成装置
300 移動体
20,30 距離センサ
21 エンコーダ
22 IMU
23 カメラ
24 点群地図生成部
25 オドメトリ計算部
26 事前地図生成部
30 距離センサ
31 オドメトリ計算部
32 自己位置推定部
33 候補点移動部
34 現在地図生成部
35 現在地図記憶部
36 地図切出部
37 スコア計算部
38 移動体制御部
39 事前地図記憶部
400 点群地図
401 点群
500 事前地図
600 現在地図
700 移動領域
701,702 物体
800 データ構造
801 ファイルヘッダ
802 情報ヘッダ
803 データ部
804 追加データ部
Claims (7)
- 特定の領域内を移動する移動体であって、
前記領域を複数の小領域に分割した場合の小領域毎に対象物が存在する確率密度を示す事前地図を記憶する事前地図記憶部と、
前記対象物までの距離および方位の計測値に基づいて、前記移動体の現在位置の候補位置を基準として、前記小領域毎の前記対象物の存在の有無を示す現在地図を生成する現在地図生成部と、
前記事前地図および前記現在地図に基づいて、自己の位置を推定する自己位置推定部と、
を備える、移動体。 - 前記自己位置推定部は、前記候補位置毎に、前記現在地図が前記対象物の存在を示す全ての小領域に対応する前記事前地図の小領域を抽出し、抽出した小領域が示す前記確率密度の総和を算出し、当該総和に基づいて前記自己の位置を推定する、
請求項1に記載の移動体。 - 特定の領域内を移動する移動体の自己位置推定に用いられる事前地図を生成する事前地図生成装置であって、
前記領域内の対象物の計測位置を示す点群を含む点群地図を生成する点群地図生成部と、
前記領域を複数の大領域に分割した場合の大領域毎に対象物が存在する確率密度を算出し、前記複数の大領域のそれぞれを複数の小領域にさらに分割して前記確率密度を前記小領域毎に離散化し、前記小領域毎に離散化した前記確率密度を示す前記事前地図を生成する事前地図生成部と、
を備える、事前地図生成装置。 - 特定の領域内を移動する移動体の位置を推定する位置推定システムであって、
前記領域を複数の小領域に分割した場合の小領域毎に対象物が存在する確率密度を示す事前地図を生成する事前地図生成装置と、
前記対象物までの距離および方位の計測値に基づいて、前記移動体の現在位置の候補位置を基準として、前記小領域毎の前記対象物の存在の有無を示す現在地図を生成し、前記事前地図および前記現在地図に基づいて、自己の位置を推定する移動体と、
を備える、位置推定システム。 - 特定の領域内を移動する移動体の位置推定方法であって、
前記領域を複数の小領域に分割した場合の小領域毎に対象物が存在する確率密度を示す事前地図を記憶し、
前記対象物までの距離および方位の計測値に基づいて、前記移動体の現在位置の候補位置を基準として、前記小領域毎の前記対象物の存在の有無を示す現在地図を生成し、
前記事前地図および前記現在地図に基づいて、自己の位置を推定する、
位置推定方法。 - 特定の領域内を移動する移動体の自己位置推定に用いられる事前地図を生成する事前地図生成方法であって、
前記領域内の対象物の計測位置を示す点群を含む点群地図を生成し、
前記領域を複数の大領域に分割した場合の大領域毎に対象物が存在する確率密度を算出し、
前記複数の大領域のそれぞれを複数の小領域にさらに分割して前記確率密度を前記小領域毎に離散化し、
前記小領域毎に離散化した前記確率密度を示す前記事前地図を生成する、
事前地図生成方法。 - 特定の領域内を移動する移動体の位置を推定するコンピュータが実行するプログラムであって、
前記領域を複数の小領域に分割した場合の小領域毎に対象物が存在する確率密度を示す事前地図を記憶し、
前記対象物までの距離および方位の計測値に基づいて、前記移動体の現在位置の候補位置を基準として、前記小領域毎の前記対象物の存在の有無を示す現在地図を生成し、
前記事前地図および前記現在地図に基づいて、自己の位置を推定する、
処理を前記コンピュータに実行させる、プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022086119A JP2023173688A (ja) | 2022-05-26 | 2022-05-26 | 移動体、事前地図生成方法、位置推定システム、位置推定方法、事前地図生成方法、およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022086119A JP2023173688A (ja) | 2022-05-26 | 2022-05-26 | 移動体、事前地図生成方法、位置推定システム、位置推定方法、事前地図生成方法、およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023173688A true JP2023173688A (ja) | 2023-12-07 |
Family
ID=89030544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022086119A Pending JP2023173688A (ja) | 2022-05-26 | 2022-05-26 | 移動体、事前地図生成方法、位置推定システム、位置推定方法、事前地図生成方法、およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023173688A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7545540B1 (ja) | 2023-08-11 | 2024-09-04 | 株式会社シンテックホズミ | 搬送ロボット |
-
2022
- 2022-05-26 JP JP2022086119A patent/JP2023173688A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7545540B1 (ja) | 2023-08-11 | 2024-09-04 | 株式会社シンテックホズミ | 搬送ロボット |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zou et al. | A comparative analysis of LiDAR SLAM-based indoor navigation for autonomous vehicles | |
US20210109537A1 (en) | Autonomous exploration framework for indoor mobile robotics using reduced approximated generalized voronoi graph | |
CN110645974B (zh) | 一种融合多传感器的移动机器人室内地图构建方法 | |
US10769840B2 (en) | Analysis of point cloud data using polar depth maps and planarization techniques | |
EP4033324B1 (en) | Obstacle information sensing method and device for mobile robot | |
Weng et al. | Pole-based real-time localization for autonomous driving in congested urban scenarios | |
CN103984037B (zh) | 基于视觉的移动机器人障碍物检测方法和装置 | |
Dissanayake et al. | Map management for efficient simultaneous localization and mapping (SLAM) | |
EP3427008A1 (en) | Laser scanner with real-time, online ego-motion estimation | |
US10288425B2 (en) | Generation of map data | |
CN112904358B (zh) | 基于几何信息的激光定位方法 | |
Lacroix et al. | Rover self localization in planetary-like environments | |
CN106292656B (zh) | 一种环境建模方法及装置 | |
CN111862214B (zh) | 计算机设备定位方法、装置、计算机设备和存储介质 | |
JP2019504418A (ja) | 移動物体の位置を判定するための方法およびシステム | |
CN114549738A (zh) | 无人车室内实时稠密点云重建方法、系统、设备及介质 | |
CN114998276B (zh) | 一种基于三维点云的机器人动态障碍物实时检测方法 | |
CN113112491A (zh) | 一种悬崖检测方法、装置、机器人及存储介质 | |
CN114034299A (zh) | 一种基于主动激光slam的导航系统 | |
CN117389305A (zh) | 一种无人机巡检路径规划方法、系统、设备及介质 | |
JP2023173688A (ja) | 移動体、事前地図生成方法、位置推定システム、位置推定方法、事前地図生成方法、およびプログラム | |
CN118310531A (zh) | 一种由粗到细点云配准的机器人跨场景定位方法及系统 | |
CN114266821A (zh) | 在线定位方法、装置、终端设备及存储介质 | |
CN114092660A (zh) | 高精地图生成方法、装置及用于生成地图的车辆 | |
Liu et al. | A localizability estimation method for mobile robots based on 3d point cloud feature |