IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ スズキ株式会社の特許一覧

<>
  • 特開-移動体の自己位置推定装置 図1
  • 特開-移動体の自己位置推定装置 図2
  • 特開-移動体の自己位置推定装置 図3
  • 特開-移動体の自己位置推定装置 図4
  • 特開-移動体の自己位置推定装置 図5
  • 特開-移動体の自己位置推定装置 図6
  • 特開-移動体の自己位置推定装置 図7
  • 特開-移動体の自己位置推定装置 図8
  • 特開-移動体の自己位置推定装置 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023182325
(43)【公開日】2023-12-26
(54)【発明の名称】移動体の自己位置推定装置
(51)【国際特許分類】
   G05D 1/02 20200101AFI20231219BHJP
   G01C 21/30 20060101ALI20231219BHJP
   G01S 17/89 20200101ALI20231219BHJP
【FI】
G05D1/02 J
G01C21/30
G01S17/89
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2022095859
(22)【出願日】2022-06-14
(71)【出願人】
【識別番号】000002082
【氏名又は名称】スズキ株式会社
(74)【代理人】
【識別番号】100099623
【弁理士】
【氏名又は名称】奥山 尚一
(74)【代理人】
【識別番号】100125380
【弁理士】
【氏名又は名称】中村 綾子
(74)【代理人】
【識別番号】100142996
【弁理士】
【氏名又は名称】森本 聡二
(74)【代理人】
【識別番号】100166268
【弁理士】
【氏名又は名称】田中 祐
(74)【代理人】
【識別番号】100217076
【弁理士】
【氏名又は名称】宅間 邦俊
(74)【代理人】
【識別番号】100169018
【弁理士】
【氏名又は名称】網屋 美湖
(74)【代理人】
【氏名又は名称】有原 幸一
(72)【発明者】
【氏名】吉岡 皓成
【テーマコード(参考)】
2F129
5H301
5J084
【Fターム(参考)】
2F129AA03
2F129BB15
2F129BB20
2F129BB22
2F129BB33
2F129BB49
5H301CC03
5H301CC06
5H301GG08
5H301GG14
5H301GG17
5J084AA04
5J084AA10
5J084AB20
5J084AC02
5J084BA03
5J084BA49
5J084CA03
5J084CA12
5J084CA31
5J084CA70
5J084DA01
5J084DA07
5J084DA09
5J084EA04
(57)【要約】
【課題】外界センサによって取得された点群データを用いた自己位置推定において推定精度を向上させる。
【解決手段】移動体1の周囲環境をスキャンして所定周期で点群データを取得する外界センサ11と、環境地図を格納する地図データベース13と、を有し、移動体1の位置および姿勢を推定するように構成された移動体1の自己位置推定装置10であって、外界センサ11によって取得された点群データを保存するデータ保存部141と、外界センサ11によって新たな点群データが取得された場合に、新たな点群データと、データ保存部141に保存された、1周期前の点群データを含むN周期分の点群データとに基づいて集合点群データCPを生成する集合点群データ生成部143と、集合点群データ生成部143によって生成された集合点群データCPと、環境地図とのマッチングを行うことにより、環境地図における移動体1の位置および姿勢を推定する位置推定部144とを備える。
【選択図】図2
【特許請求の範囲】
【請求項1】
移動体の周囲環境をスキャンして所定周期で点群データを取得する外界センサと、
環境地図を格納する地図データベースと、
を有し、移動体の位置および姿勢を推定するように構成された移動体の自己位置推定装置であって、
前記外界センサによって取得された前記点群データを保存するデータ保存部と、
前記外界センサによって新たな点群データが取得された場合に、前記新たな点群データと、前記データ保存部に保存された、1周期前の点群データを含むN周期分の点群データとに基づいて集合点群データを生成する集合点群データ生成部と、
前記集合点群データ生成部によって生成された前記集合点群データと、前記環境地図とのマッチングを行うことにより、前記環境地図における前記移動体の位置および姿勢を推定する位置推定部と、
を備える、移動体の自己位置推定装置。
【請求項2】
前記所定周期の1周期における前記移動体の移動量を求める移動量算出部を備え、
前記集合点群データ生成部は、前記移動体の前記移動量を用いて、前記新たな点群データに対し、前記N周期分の点群データを移動して一体化することにより、前記集合点群データを生成する、請求項1に記載の移動体の自己位置推定装置。
【請求項3】
前記集合点群データ生成部は、前記移動体の前記移動量を用いて前記N周期分の点群データを移動した後、反復最近接点アルゴリズムを用いて前記新たな点群データに対して前記N周期分の点群データを位置合わせすることにより、前記集合点群データを生成する、請求項2に記載の移動体の自己位置推定装置。
【請求項4】
前記集合点群データは、前記新たな点群データと前記N周期分の点群データとを一体化することにより重複した点を含み、
前記位置推定部は、前記環境地図の点群データを格子状に分割して各格子内における正規分布を準備し、各格子内における前記環境地図の点群データの前記正規分布と前記集合点群データとのマッチングを行うことにより、前記移動体の位置および姿勢を推定する、請求項1から3のいずれか一項に記載の移動体の自己位置推定装置。
【請求項5】
前記Nは2以上の自然数であり、
前記データ保存部にN+1周期分の点群データが保存されている場合、前記集合点群データ生成部は、前記外界センサによって前記新たな点群データが取得されると、前記データ保存部に保存されている前記N+1周期分の点群データのうち、最も古い周期の点群データを削除し、前記最も古い周期の点群データ削除後の前記N周期分の点群データと前記新たな点群データとに基づいて前記集合点群データを生成する、請求項1から3のいずれか一項に記載の移動体の自己位置推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、移動体の自己位置推定装置に関し、さらに詳しくは、外界センサによって取得された点群データと環境地図とのマッチングを行って自己位置推定を行う装置に関する。
【背景技術】
【0002】
近年、自動運転車、無人搬送車(AGV)、および自律移動ロボット(AMR)等の自律移動可能な移動体に関する技術の開発が進められている。このような移動体は、目的地へ到達するために自己位置情報を取得することが必要である。移動体の自己位置の推定方法としては、慣性計測装置(IMU)やホイールエンコーダを利用したデッドレコニング、全球測位衛星システム(GNSS)、LiDAR(Light Detection and Ranging)を利用したスキャンマッチング等、さまざまな手法を採用することができる。
【0003】
例えば、特許文献1には、スキャンマッチングを採用した自己位置推定システムが開示されている。このシステムにおいては、環境をスキャンしてスキャンデータを周期的に出力する外界センサから新たにスキャンデータを取得したときに、新たに取得した最新スキャンデータと参照地図とのマッチングを行うことにより、参照地図上における外界センサの位置および姿勢を推定する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開番号WO2019/044500号
【発明の概要】
【発明が解決しようとする課題】
【0005】
動的環境下では、移動体は様々な外乱の影響を受ける。例えば、移動体と周囲構造物との間に他車両が存在する状態で外界センサによるスキャンを行った場合、取得された点群データには他車両の検知結果が含まれてしまう。このように、外界センサによって取得された点群データが外乱の影響を受けると、参照地図とのマッチング精度が低下し、移動体の位置および姿勢の推定精度が悪化するおそれがある。
【0006】
本発明は、上記のような実状に鑑みてなされたものであり、その目的は、外界センサによって取得された点群データを用いた自己位置推定において推定精度を向上させることにある。
【課題を解決するための手段】
【0007】
本発明の一態様によれば、移動体の周囲環境をスキャンして所定周期で点群データを取得する外界センサと、環境地図を格納する地図データベースと、を有し、移動体の位置および姿勢を推定するように構成された移動体の自己位置推定装置であって、前記外界センサによって取得された前記点群データを保存するデータ保存部と、前記外界センサによって新たな点群データが取得された場合に、前記新たな点群データと、前記データ保存部に保存された、1周期前の点群データを含むN周期分の点群データとに基づいて集合点群データを生成する集合点群データ生成部と、前記集合点群データ生成部によって生成された前記集合点群データと、前記環境地図とのマッチングを行うことにより、前記環境地図における前記移動体の位置および姿勢を推定する位置推定部と、を備える。
【発明の効果】
【0008】
本発明に係る移動体の自己位置推定装置は、点群データを用いた自己位置推定における推定精度を向上させることができる。
【図面の簡単な説明】
【0009】
図1図1(a)~(c)は、外乱による点群データへの影響を説明する図である。
図2図2は、本発明の一実施の形態における移動体の自己位置推定装置の概略構成を示す図である。
図3図3は、移動体の移動とともに取得される複数周期分の点群データを模式的に示す図である。
図4図4は、新たな点群データに対して過去の点群データを移動して一体化する方法を説明する図である。
図5図5は、新たな点群データに対して過去の点群データを位置合わせする方法を説明する図である。
図6図6は、自己位置推定処理の流れを説明するフローチャートである。
図7図7は、集合点群データ生成処理の流れを説明するフローチャートである。
図8図8は、複数の外界センサのスキャン範囲を概略的に示す図である。
図9図9は、複数周期分の点群データを重ね合わせることによる効果を説明する図である。
【発明を実施するための形態】
【0010】
本発明の一実施の形態による移動体の自己位置推定装置は、周囲環境をスキャンする外界センサによって取得される点群データを用いて、高精度な環境地図とのマッチングを行うことにより、環境地図における移動体の位置および姿勢を推定するように構成されている。
【0011】
ここで、動的環境下において、移動体は様々な外乱の影響を受けるため、外界センサによって取得される点群データも外乱の影響を受ける場合がある。例えば、(i)移動体が動的もしくは準動的な障害物で囲まれて、検知対象である周囲構造物が隠されてしまうオクルージョンが発生する場合、(ii)開けた土地など、検知対象となるランドマークなどの特徴が少ない場合、(iii)移動体のロール・ピッチ運動により外界センサの光軸が水平方向からずれた場合、などが想定される。
【0012】
図1(a)に、(i)オクルージョンが発生する場合の具体例を示す。図1(a)に示す例においては、移動体の一例として車両1を示し、周囲構造物の例として建物2a,2bおよび樹木2cを示している。動的もしくは準動的な障害物の例として、隣接車線上のトラック3aとバス3bを示しており、車両1は車両1よりも大きな障害物で囲まれている。外界センサによる1周期分のスキャン範囲4内では、トラック3aおよびバス3bによって建物2a,2bおよび樹木2cが少なくとも部分的に隠されてしまうため、建物2aの一部に対応する点群しか取得することができない。飛来物などで外界センサが一時的に覆われた場合にも、オクルージョンが発生し得る。
【0013】
図1(b)に、(ii)ランドマークなどの特徴が少ない場合の具体例を示す。図1(b)に示すように、田んぼや畑のあぜ道、湖畔や海岸線を通る道など、開けた土地を走行する場合は、1周期分のスキャン範囲4内に建物2a,2bおよび樹木2cなどの周囲構造物が存在しないことがある。このような場合は、周囲構造物の点群を得ることができない。
【0014】
図1(c)に、(iii)車両1のロール・ピッチ運動によって外界センサの光軸が水平方向からずれた場合の具体例を示す。外界センサは、水平方向に対して上下方向に所定角度の範囲でスキャンを行うことができるものがあるが、例えば、車両1が段差を乗り越えるときのピッチ運動、または車両1が急なカーブを走行するときのロール運動により、外界センサの光軸が水平方向からずれて空や地面方向を向いてしまう場合がある。このような場合、1周期分のスキャン範囲4内に周囲構造物の一例として建造物2dが存在していても、建造物2dの一部に対応する点群しか取得できない。
【0015】
上述した(i)~(iii)の場合のように点群データが外乱の影響を受けた場合、外界センサによって取得された1周期分の点群データでは周囲構造物に対応する十分な点群を得ることができない。点群が少ないと、環境地図とのマッチング処理が収束しにくくなり、移動体の自己位置の推定精度が低下してしまう。
【0016】
そこで、本実施の形態に係る移動体の自己位置推定装置においては、外界センサによって取得される複数周期の点群データを重ね合わせて集合点群データを生成し、生成した集合点群データを用いて高精度な環境地図とのマッチングを行うことにより、環境地図における移動体の位置および姿勢を高精度に推定する。以下に、図面を参照して、本実施の形態に係る移動体の自己位置推定装置について詳細に説明する。
【0017】
図2は、本実施の形態における移動体の自己位置推定装置10の概略構成を示す図である。以下では、移動体として車両1に自己位置推定装置10を搭載した例を説明する。車両1に搭載される自己位置推定装置10は、車両周囲環境を検知する外界センサ11、車両情報を検知する内界センサ12、地図情報データベース13、および自己位置推定装置10の全体の制御を行うコントローラ14等を備えている。
【0018】
外界センサ11は、車両1の周囲環境をスキャンして所定周期でスキャンデータを取得するセンサである。外界センサ11としては、例えばLiDAR(Light Detection and Ranging)、レーザレンジファインダ、ミリ波レーダなどがあるが、ここではLiDARを用いる例を説明する。
【0019】
LiDARは、パルス状のレーザ光を対象物に照射し、対象物で反射された反射光を測定することにより、対象物までの距離や方向を測定してスキャンデータを取得する。LiDARのスキャンデータは、光と対象物との交点を点群データとして抽出したものであり、点群データは、外界センサ11が設置される車両1におけるローカル座標系によって規定される位置座標を持つ点の集合体である。車両1の位置は、ローカル座標系の原点として定義され、車両1の姿勢(向き)は、ローカル座標系の向きとして定義することができる。なお、上述した(ii)のケースのように、スキャン範囲4内に周囲構造物が存在しない場合、点群データに点群が含まれない場合もあり得る。
【0020】
外界センサ11は、例えば車両1の上部に設置され、回転しながらパルス状のレーザ光を照射し、車両1の周囲360度をスキャンすることができる。外界センサ11によって取得された点群データは、コントローラ14に入力される。
【0021】
内界センサ12は、車速センサ(例えば、車輪速センサ)、ヨーレイトセンサ(例えば、ジャイロセンサ)などを含む。内界センサ12によって取得された各測定値は、コントローラ14に入力される。
【0022】
地図データベース13は、予め準備された高精度な環境地図を格納している。自己位置の高精度な推定のために、環境地図として3次元地図を用いることが好ましいが、マッチングの手法に合わせて2次元地図を用いることも可能である。
【0023】
コントローラ14は、データ保存部141、移動量算出部142、集合点群データ生成部143、および、位置推定部144を含む。コントローラ14は、コンピュータ、すなわち、プログラム及びデータを記憶したROM、演算処理を行うCPU、前記プログラム及びデータを読出し、動的データや演算処理結果を記憶するRAM、および、入出力インターフェースなどで構成され、以下に説明する自己位置推定装置10の制御を実行する。
【0024】
データ保存部141は、外界センサ11によって取得された点群データを保存するメモリである。データ保存部141は、外界センサ11によって取得された複数周期分の点群データをタイムスタンプとともに保存可能に構成されている。複数周期分の点群データは、時間軸上の連続するタイミング(フレーム)で取得された複数フレームのデータである。データ保存部141は、複数周期分の点群データとして、複数周期の点群データを重ね合わせた集合点群データを保存することもできる。
【0025】
移動量算出部142は、内界センサ12から入力される測定値に基づいて、外界センサ11によるスキャンの1周期、すなわち1サンプリング周期(時間間隔)Δtにおける車両1の移動量を求める。車両1の移動量は、具体的には、1サンプリング周期における車両1の移動量であり、車速センサによって検出される車速Vi×サンプリング周期Δtから算出される移動距離Δli、およびジャイロセンサによって検出されるヨーレイトγi×サンプリング周期Δtから算出されるヨー角Δψiを求めることができる。
【0026】
集合点群データ生成部143は、外界センサ11によって取得された複数周期分の点群データを重ね合わせて集合点群データを生成する。具体的には、集合点群データ生成部143は、外界センサ11によって新たな点群データが取得された場合に、新たな点群データと、データ保存部141に保存された、1周期前の点群データを含むN周期分の点群データとに基づいて、集合点群データを生成する。Nは1以上の任意の自然数とすることができる。すなわち、集合点群データは、時系列的に連続する複数フレームの点群データの集合体である。
【0027】
位置推定部144は、集合点群データ生成部143によって生成された集合点群データと、地図データベース13の環境地図とのマッチングを行うことにより、環境地図における車両1の位置および姿勢を推定する。
【0028】
ここで、集合点群データの生成処理の詳細を説明する。図3に、時間軸上で連続する複数周期分の点群データ、すなわち複数フレームの点群データを模式的に示す。図3に示すように、車両1の移動とともに、車両1に設置された外界センサ11のスキャン範囲4も移動する。スキャン範囲4は、車両1の移動に伴って、1周期目の時点t1におけるスキャン範囲4a、2周期目の時点t2におけるスキャン範囲4b、3周期目の時点t3におけるスキャン範囲4c、4周期目の時点t4におけるスキャン範囲4d、のように移動する。
【0029】
1周期目では、スキャン範囲4aと周囲構造物2との交点が時点t1における点群データP(t1)として抽出される。同様に、2周期目では、スキャン範囲4bと周囲構造物2との交点が時点t2における点群データP(t2)として抽出され、3周期目では、スキャン範囲4cと周囲構造物2との交点が時点t3における点群データP(t3)として抽出され、4周期目では、スキャン範囲4dと周囲構造物2との交点が時点t4における点群データP(t4)として抽出される。点群データP(t1)、P(t2)、P(t3)、P(t4)を構成する各点はそれぞれ、白丸、黒丸、白三角、黒三角で表している。
【0030】
外界センサ11のスキャン時間間隔は例えば数ミリ秒と短いため、図3に示すように、時間的に連続するタイミングでのスキャン範囲4a~4dは一部が互いに重複している。したがって、スキャン範囲4a~4dで得られる点群データP(t1)~P(t4)も一部が互いに重複している。
【0031】
上述したように、車両1が外乱の影響を受けた場合、時点t1~t4で取得される点群データP(t1)~P(t4)のそれぞれにおいて、十分な点群が得られない可能性がある。そこで、複数フレームの点群データを重ね合わせることにより、十分な数の点群を有する集合点群データCPを生成する。
【0032】
複数フレームの点群データの重ね合わせは、大まかな位置合わせと詳細な位置補正の2段階で行われる。まず、大まかな位置合わせのため、車両1の移動量を用いて、新たな点群データに対し、過去の少なくとも1つの点群データを移動して一体化する。複数フレームの点群データは、それぞれ異なる時点tにおける車両1のローカル座標系によって規定される位置座標を持っている。そこで、新たな点群データのローカル座標系を基準として過去の点群データを一体化させるために、車両1の1サンプリング周期における移動量を用いて、過去の点群データを並進および回転させる。
【0033】
図4に、図3に示した3周期目の点群データP(t3)に対し、2周期目の点群データP(t2)と1周期目の点群データP(t1)を一体化する例を示す。ここでは、3周期目の点群データP(t3)が、上述した新たな点群データに相当する。
【0034】
車両1の移動量は、上述したように移動量算出部142で算出される前回周期からの車両1の移動距離Δliおよびヨー角Δψiを用いることができる。まず、3周期目の点群データP(t3)を基準として、3周期目の時点t3における移動距離Δli(t3)とヨー角Δψi(t3)を用いて、2周期目の点群データP(t2)を並進および回転(剛体変換)させる。さらに、3周期目の点群データP(t3)を基準として、2周期目の時点t2における移動距離Δli(t2)とヨー角Δψi(t2)を用いて、1周期目の点群データP(t1)を並進および回転させる。これにより、1周期目から3周期目の点群データP(t1)~P(t3)が一体化される。
【0035】
なお、車両1の移動量を用いて点群データを一体化する手法としては、上述したように新たな点群データに対してN周期分の点群データを1周期分ずつ移動させるものには限定されない。例えば、前回周期において複数の点群データを重ね合わせた集合点群データがすでに生成されている場合は、前回周期で生成した集合点群データをまとめて、新たな点群データに対して移動することもできる。この場合、新たな点群データを取得した時点tにおける移動距離Δli(t)とヨー角Δψi(t)を用いて、前回周期で生成した集合点群データを並進および回転させる。
【0036】
ここで、車両1の移動量は、車速センサやヨーレイトセンサの測定値に基づいて算出されるため、車両1のタイヤスリップの発生などの影響を受けてしまう。そのため、車両1の移動量を用いた点群データの重ね合わせだけでは、正確な位置合わせを行うことができない可能性がある。
【0037】
そこで、車両1の移動量を用いた一体化を行った後、複数フレームの点群データ間の位置ずれが残っている場合に、さらに、点群データの位置補正を行う。具体的には、反復最近接点(IPC:Iterative Closest Point)アルゴリズムを用いて、新たな点群データに対して過去の点群データを位置合わせする。これにより、複数フレームの点群データを重ね合わせた集合点群データCPが生成される。
【0038】
一体化した点群データの位置補正を行うためのICPアルゴリズムは、2つの点群データ間の距離を最小化する剛体変換(並進、回転)を繰り返し行うことによって2つの点群データを整列させるものである。具体的には、例えば図5に示す2つの点群データP(t3),P(t2)に含まれる点群における最近傍点を探索して仮の対応点を決定し、対応点間距離を誤差として誤差の二乗和を最小化するような剛体変換量を推定する。この場合、新たな点群データP(t3)を基準として、過去の点群データP(t2)を移動する。繰り返し計算により誤差の二乗和が所定値以内に収束すると、位置合わせが完了する。
【0039】
ICPアルゴリズムを用いた位置合わせは、初期値に大きく依存するため、初期値が最適解から大きくずれていると位置合わせが収束しない可能性がある。しかし、上述したように車両1の移動量を用いた点群データの一体化を行ってからICPアルゴリズムを用いた位置補正を行うので、良好な位置合わせを行うことができる。これにより、移動量を用いた点群データの一体化後に残っていた位置ずれを解消し、良好な位置合わせが行われた集合点群データCPを生成することができる。
【0040】
以下に、図6を参照して、本実施の形態における車両1の自己位置推定処理について詳細に説明する。図6に示す処理は、自己位置推定装置10のコントローラ14において所定周期で繰り返し実行され、例えば、自己位置推定装置10の結果が出力される不図示の自動走行システムの動作がオフとなると終了する。
【0041】
図6に示すように、コントローラ14は、(1)集合点群データ生成処理(S10)、(2)マッチング処理(S20)、および(3)推定結果出力(S30)を実行する。以下、各ステップにおける処理を説明する。
【0042】
(1)集合点群データ生成処理(S10)
コントローラ14は、外界センサ11から取得される新たな点群データと、データ保存部141に保存された直近のN周期分の点群データとに基づいて、N+1個の点群データからなる集合点群データを生成する。Nは1以上の任意の自然数とすることができるが、ここでは、N=2である例について説明する。なお、外界センサ11は、水平方向に加えて、上下方向においても所定角度の範囲でスキャンを行い、3次元の点群データを取得可能に構成することができるが、以下では説明を簡単にするため、外界センサ11で取得される点群データを地面から所定の高さにおける2次元のデータとして説明する。
【0043】
図7のフローチャートを参照して、集合点群データ生成処理の流れを説明する。以下では、図3に示すように、時点t4において新たな点群データP(t4)が取得されたと仮定して説明する。まずステップS101で、外界センサ11から新たな点群データP(t4)を取得するとともに、内角センサ12から車速およびヨーレイト等の測定値を取得する。コントローラ14には、これらのデータとともにタイムスタンプも入力される。
【0044】
ステップS102では、前回周期以前に取得されてデータ保存部141に保存されている点群データのフレーム数がN個以上であるか否かを判定する。保存されている点群データのフレーム数がN個よりも少ない場合は、ステップS110へ進む。一方、保存されている点群データのフレーム数がN個以上の場合は、ステップS103へ進み、保存されている点群データのフレーム数がN個であるか否かを判定する。フレーム数=Nである場合は、ステップS105へ進む。一方、ステップS103が否定判定され、フレーム数がN個よりも大きい場合は、ステップS104へ進む。
【0045】
ステップS104では、データ保存部141に保存されている複数フレームの点群データのうち、タイムスタンプにより最も古い周期の点群データを特定し、削除する。例えば、図3に示した時点t1~t3における点群データP(t1)~P(t3)がデータ保存部141に保存されていた場合、最も古い周期の時点t1における点群データP(t1)が削除される。これにより、データ保存部141には、N個、すなわち2個の点群データP(t2)、P(t3)が保存されていることになる。
【0046】
つづくステップS105では、移動量算出部142によって、車両1の移動量を算出する。具体的には、ステップS101で入力された内角センサ12からの測定値に基づいて、車両1の移動量として、最新の時点t4における車両1の移動距離Δli(t4)およびヨー角Δψi(t4)を求める。
【0047】
ステップS106では、ステップS101で入力された新たな点群データP(t4)に対し、データ保存部141に保存されている過去の点群データP(t2)、P(t3)を移動して一体化する。具体的には、上述したように時点t4における車両1の移動距離Δli(t4)およびヨー角Δψi(t4)を用いて過去の点群データP(t2)、P(t3)を並進および回転し、新たな点群データP(t4)に一体化させる。
【0048】
具体的には、時点t4における車両1の移動距離Δli(t4)およびヨー角Δψi(t4)を用いて、前回周期の時点t3において生成され、上記ステップS104において最も古い時点t1における点群データP(t1)が削除された集合点群データCP(t3)を並進および回転させる。
【0049】
なお、上述したように、新たな点群データP(t4)に対してN周期分の点群データP(t2)、P(t3)を1周期分ずつ並進および回転させることにより、一体化を行ってもよい。例えば、上述したステップS104を経由していない場合、すなわち、前回周期においてN+1個の点群データからなる集合点群データCP(t3)が生成されていない場合は、新たな点群データP(t4)に対してN周期分の点群データP(t2)、P(t3)を1周期分ずつ移動させる。
【0050】
つづくステップS107では、ステップS106で一体化した点群データP(t2)、P(t3)、P(t4)について、IPCアルゴリズムを用いた位置補正を行う。上述したように、新たな点群データP(t4)を基準として、過去の点群データP(t2)、P(t3)の距離を最小化するように繰り返し剛体変換を行う。
【0051】
具体的には、上記ステップS106における一体化と同様に、前回周期の時点t3において生成され、上記ステップS104において最も古い時点t1における点群データP(t1)が削除された集合点群データCP(t3)を、新たな点群データP(t4)に対して位置合わせする。また、新たな点群データP(t4)に対して、N周期分の点群データP(t2)、P(t3)を1周期分ずつ位置合わせしてもよい。
【0052】
これにより、新たな点群データP(t4)に対して過去のN個の点群データP(t2)、P(t3)を一体化した集合点群データCP(t4)が生成される。
【0053】
ステップS108では、ステップS107で生成された集合点群データCP(t4)に対し、必要に応じてなまし処理を行う。ここで、なまし処理としては、例えば、点群データを曲線または曲面に近似するための処理や、ノイズ除去のための平滑化処理などを含む。
【0054】
ステップS109では、生成された集合点群データCP(t4)を出力する。出力された集合点群データCPは、位置推定部144におけるマッチングに使用される。
【0055】
ステップS110では、生成した集合点群データCP(t4)をデータ保存部141に保存する。このとき、集合点群データCP(t4)は、集合点群データCP(t4)を構成するN個の点群データP(t2)、P(t3)、P(t4)のそれぞれのタイムスタンプと紐づけられて保存される。これにより、後の処理において最も古い周期の点群データを特定することが可能となる。また、上述したステップS102において、保存されている点群データのフレーム数がNよりも少ないと判定された場合は、ステップS101で取得された点群データP(t4)をタイムスタンプとともにデータ保存部141に保存する。
【0056】
なお、新たな点群データP(t4)に対してN周期分の点群データP(t2)、P(t3)を1周期分ずつ並進および回転させる場合は、集合点群データCP(t4)そのものとして保存する代わりに、集合点群データCP(t4)を構成するN個の点群データP(t2)、P(t3)、P(t4)を保存するように構成してもよい。
【0057】
(3)マッチング処理(S20)
位置推定部144は、ステップS10で生成された集合点群データCPと、地図データベース13に格納された環境地図とのマッチングを行うことにより、環境地図における車両1の位置および姿勢を推定する。環境地図とのマッチングは、種々のアルゴリズムによるスキャンマッチングを利用することができる。上述したICPアルゴリズムもスキャンマッチングの一例であるが、ここでは、NDT(Normal Distribution Transform)アルゴリズムを用いてマッチングを行う。
【0058】
NDTアルゴリズムは、環境地図の点群データを格子状に分割して各格子内における正規分布を準備し、各格子内における環境地図の点群データの正規分布と集合点群データCPとのマッチングを行うことにより、車両1の位置および姿勢を推定する。
【0059】
具体的には、環境地図において車両1の周囲の探索区間内にある点群データを一定の大きさの格子状に分割する。点群データが3次元の場合は、ボクセルに分割し、点群データが2次元の場合は、グリッドに分割する。分割された各格子内の点群データの平均と分散を算出し、点群データを正規分布で表現する。そして、並進および回転を表すパラメータを含む変換行列によって、集合点群データCPの座標系を環境地図の点群データの座標系に変換する。変換後に点群データ同士がどの程度マッチングしているかを評価し、評価値が所定値以内に収束するまで座標変換を繰り返す。これにより、マッチングが完了する。
【0060】
マッチングにより得られた環境地図上における車両1の位置は、環境地図の座標系における車両1のローカル座標系の原点の座標値として表される。また、車両1の姿勢(向き)は、環境地図の座標系に対する車両1のローカル座標系の向き(角度)として表される。
【0061】
上述したICPアルゴリズムは、最新の点群データに対する、過去の点群データの各点の誤差を算出するため、点群の数が多くなるほど計算量が増え、コントローラ14の計算負荷が高まる。これに対し、NDTアルゴリズムは、点群が存在する環境地図の探索区間を格子状に分割し、各格子において求めた正規分布を用いて点群の表現およびマッチングを行うため、ICPに比べて計算量を削減することができる。
【0062】
(3)推定結果出力(S30)
位置推定部144は、ステップS20で推定した車両1の位置および姿勢を、例えば車両1の不図示の自動走行システムに出力する。また、自己位置推定装置10は、車両1の位置および姿勢を保存するように構成してもよく、これにより、車両1の位置および姿勢の履歴が保存される。
【0063】
上述したように、最新の点群データに対し、過去のN周期分の点群データを重ね合わせることにより、外乱等の影響によって1周期分の点群データでは取得することができなかった点群を得ることが可能となる。例えば、図9に示すように、最新の点群データP(t)と過去の点群データP(t-1)とを重ね合わせた場合、図1(a)に示すような、(i)オクルージョンが発生する状況では検知することができなかった建物2bおよび樹木2cに対応する点群を取得することが可能となる。
【0064】
また、以上では、点群データが2次元のデータである例を説明したが、点群データが3次元のデータである場合でも、同様の手法により集合点群データを生成することができる。この場合は、図1(c)に示すような、(iii)移動体のロール・ピッチ運動により外界センサの光軸が水平方向からずれた場合においても、建造物2dに対応する点群を得ることが可能となる。
【0065】
以上説明した本実施の形態による車両1の自己位置推定装置10においては、以下のような作用効果を奏することができる。
【0066】
(1)移動体の自己位置推定装置10は、車両1の周囲環境をスキャンして所定周期で点群データを取得する外界センサ11と、環境地図を格納する地図データベース13と、を有し、移動体の位置および姿勢を推定するように構成されている。自己位置推定装置10は、さらに、外界センサ11によって取得された点群データを保存するデータ保存部141と、外界センサ11によって新たな点群データが取得された場合に、新たな点群データと、データ保存部141に保存された、1周期前の点群データを含むN周期分の点群データとに基づいて集合点群データを生成する集合点群データ生成部143と、集合点群データ生成部143によって生成された集合点群データと、環境地図とのマッチングを行うことにより、環境地図における車両1の位置および姿勢を推定する位置推定部144と、を備えている。
【0067】
新たな点群データと、1周期前の点群データを含むN周期分の点群データとに基づいて時間軸上で連続する複数の点群データからなる集合点群データを生成することにより、外乱が発生した場合であっても、十分な点群を得ることが可能となる。これにより、環境地図とのマッチングを良好に行うことができ、車両1の自己位置推定における推定精度を向上させることができる。図1(a)に示した(i)オクルージョンの発生状況や、図1(b)に示した(ii)ランドマークの少ない場所においても、複数の点群データからなる集合点群データを生成することにより、より多くのシーンで自己位置の推定が可能となる。また、図1(c)に示した(iii)ロール・ピッチ運動のような外乱が発生する状況においても、ピッチ発生前の時点における点群データを含む集合点群データを生成することが可能となり、ロール・ピッチ運動に対してロバストな自己位置推定を行うことが可能となる。
【0068】
また、複数周期分の点群データを重ね合わせることで、高精度な環境地図とのマッチングに利用する点群数の増加につながるので、外界センサ11の回転周期や、外界センサ11から発射されるレーザ光のレイヤ(例えば、レーザ光の発光間隔、発光時間、照射方向の数など)を落とすことができる。これにより、外界センサ11のハードウェア要件を緩和することができ、自己位置推定装置10全体としてのコストを削減することが可能となる。
【0069】
(2)所定周期の1周期における車両1の移動量を求める移動量算出部142をさらに備え、集合点群データ生成部143は、車両1の移動量を用いて、新たな点群データに対し、N周期分の点群データを移動して一体化することにより、集合点群データを生成する。外乱の発生により、時間軸上で連続する複数フレームの点群データから得られる点群の点配置にばらつきが生じるおそれがある。複数フレームの点群データの点群同士が大きくずれてしまうと、点群データの重ね合わせが困難になり、集合点群データの生成に時間がかかってしまう。そこで、1周期、すなわち時間軸上で連続するスキャンタイミング間の車両1の移動量を利用して、連続する点群データを一体化することにより、点群同士がばらつくような場合でも大まかな位置合わせを行うことができる。また、車両1の移動量を用いることにより、コントローラ14の計算負荷を低減することができる。
【0070】
(3)集合点群データ生成部143は、車両1の移動量を用いてN周期分の点群データを移動した後、反復最近接点(ICP)アルゴリズムを用いて新たな点群データに対してN周期分の点群データを位置合わせすることにより、集合点群データを生成する。車両1の移動量を用いて点群データの一体化を行った後、さらに、複数フレームの点群データの対応点間距離(誤差)を小さくするように点群データの位置を補正するので、より精度の高い集合点群データの生成が可能となり、環境地図とのマッチングによる車両1の自己位置の推定精度を向上させることができる。
【0071】
(4)集合点群データは、新たな点群データとN周期分の点群データとを一体化することにより重複した点を含んでおり、位置推定部144は、NDTアルゴリズムを利用して、環境地図の点群データを格子状に分割して各格子内における正規分布を準備し、各格子内における環境地図の点群データの正規分布と集合点群データとのマッチングを行うことにより、車両1の位置および姿勢を推定する。集合点群データにおける重複する点の存在は、その点の信頼度の高さを表すものであり、重複する点を維持してNDTアルゴリズムを用いたマッチングを行うことにより、自己位置の推定精度を高めることができる。
【0072】
(5)Nが2以上の自然数である場合であって、データ保存部141にN+1周期分の点群データが保存されている場合、集合点群データ生成部143は、外界センサ11によって新たな点群データが取得されると、データ保存部141に保存されているN+1周期分の点群データのうち、最も古い周期の点群データを削除し、最も古い周期の点群データ削除後のN周期分の点群データと新たな点群データとに基づいて集合点群データを生成する。これにより、集合点群データは、常に所定の数(N+1個)の点群データが一体化された集合体となり、環境地図とのマッチングにおけるコントローラ14の計算負荷の増加を抑制できる。点群データの削除の際には、集合点群データに含まれる点群の数をカウントすることなく、時間軸上において最も古い周期の点群データを一括して削除すればよいので、コントローラ14の計算負荷の増加を抑制することができる。
【0073】
-変形例-
(1)上述した実施の形態においては、外界センサ11を、車両1の上部に設置して回転しながら車両1の周囲360度をスキャンするように構成したが、外界センサ11の構成はこれには限定されない。例えば、外界センサ11として、車両1に複数のLiDARを固定し、それぞれ特定の方向をスキャンする複数のLiDARからの点群データを融合して1周期分の点群データとして取得するように構成することもできる。
【0074】
この場合、例えば図8に示すように、車両1の前方の所定範囲41をスキャンする外界センサ111,車両1の左側方の所定範囲42をスキャンする外界センサ112,および車両1の右側方の所定範囲43をスキャンする外界センサ113を車両1に設置することができる。外界センサ111,112,113によって取得される点群データは、それぞれのローカル座標系であるセンサ座標系で規定されるため、点群データを融合するためには、各センサ座標系から車両1のローカル座標系である車体座標系に変換する必要がある。
【0075】
以下の(式1)に、センサ座標系から車体座標系への変換行列を示す。
【数1】
(式1)
(式1)において、iは各外界センサ111,112,113に割り当てる番号、θは車体座標系から各センサ座標系への回転角、Txiは車体座標系の原点からみた各外界センサ座標系の原点のx座標、Tyiは、車体座標系の原点からみた各外界センサ座標系の原点のy座標である。
【0076】
なお、外界センサ111~113によって3次元の点群データを取得する場合は、3次元回転行列を用いて座標変換を行えばよい。また、車両1の後方の所定範囲をスキャンする外界センサをさらに設け、外界センサ111~113と合わせて車両1の周囲360度をスキャンするように構成してもよい。
【0077】
(2)上述した実施の形態においては、複数フレームの点群データの重ね合わせを、車両1の移動量を用いた大まかな位置合わせと,ICPアルゴリズムを用いた詳細な位置補正の2段階で行った。ただし、これには限定されず、移動量を用いた位置合わせを行わず、ICPアルゴリズムを用いた位置合わせのみを行うように構成してもよい。移動量を用いた位置合わせは、ICPアルゴリズムを用いた位置合わせのための初期値設定としての役割もあるので、点群データ同士のばらつきがそれほど大きくない場合は、移動量を用いた位置合わせを行わなくても、複数周期分の点群データの良好な一体化が期待できる。
【0078】
(3)上述した実施の形態においては、内界センサ12によって測定される車速(移動体の速度)とヨーレイト(角速度)から、移動量を算出したが、移動量の算出に移動体の加速度を含めてもよい。また、ジャイロセンサを用いず、車両1の前輪舵角と車速からヨーレイトを推定することも可能である。
【0079】
(4)上述した実施の形態においては、環境地図と集合点群データのマッチングに、NDTアルゴリズムを利用した。ただし、これには限定されず、例えばICPアルゴリズムなど、別のアルゴリズムを利用してマッチングを行うこともできる。
【0080】
(5)上述した実施の形態においては、図6に示すフローチャートを用いて集合点群データ生成処理とマッチング処理について説明したが、これらの処理周期は、同じであっても、それぞれ異なっていてもよい。一般的に、マッチング処理は計算負荷が高いため、集合点群データ生成処理よりも遅い周期で処理を実行するようにしてもよい。例えば、集合点群データ生成処理を10ms周期で実行し、マッチング処理は100ms周期で行うこともできる。
【0081】
(6)上述した実施の形態においては、外界センサ11によって新たな点群データが取得されると、データ保存部141に保存されているN+1周期分の点群データのうち、最も古い周期の点群データを削除するように構成した。ただし、これには限定されず、例えば、データ保存部141に保存されているデータ容量が所定の上限値に達すると、最も古い周期の点群データを削除するように構成してもよい。この場合、最も古い周期の点群データの削除後にデータ保存部141に保存されている複数周期分の点群データの中から、N周期分の点群データを読み出して新たな点群データとの重ね合わせに利用することができる。
【0082】
(7)上述した実施の形態においては、コントローラ14がデータ保存部141を含む構成を説明したが、これには限定されず、データ保存部141を、コントローラ14の外部のメモリとして構成してもよい。
【0083】
(8)上述した実施の形態においては、新たな点群データを重ね合わせる点群データのフレーム数Nについて、N=2の場合を例として説明したが、これには限定されず、Nは1であっても、3以上の自然数であってもよい。
【0084】
(9)上述した実施の形態においては、移動体の一例として車両1について説明したが、車両1以外の移動体についても、本発明を同様に適用することができる。
【0085】
以上、本発明のいくつかの実施形態について述べたが、本発明は上記実施形態に限定されるものではなく、本発明の範囲内においてさらに各種の変形および変更が可能であることを付言する。
【符号の説明】
【0086】
1 車両
10 自己位置推定装置
11,111,112,113 外界センサ
12 内界センサ
13 地図データベース
14 コントローラ
141 データ保存部
142 移動量算出部
143 集合点群データ生成部
144 位置推定部
図1
図2
図3
図4
図5
図6
図7
図8
図9