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

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

▶ 株式会社豊田自動織機の特許一覧

<>
  • 特開-自己位置推定装置 図1
  • 特開-自己位置推定装置 図2
  • 特開-自己位置推定装置 図3
  • 特開-自己位置推定装置 図4
  • 特開-自己位置推定装置 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024064664
(43)【公開日】2024-05-14
(54)【発明の名称】自己位置推定装置
(51)【国際特許分類】
   G01C 21/28 20060101AFI20240507BHJP
   G05D 1/49 20240101ALI20240507BHJP
【FI】
G01C21/28
G05D1/08 Z
【審査請求】未請求
【請求項の数】2
【出願形態】OL
(21)【出願番号】P 2022173422
(22)【出願日】2022-10-28
(71)【出願人】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】坂元 優太
【テーマコード(参考)】
2F129
5H301
【Fターム(参考)】
2F129AA03
2F129BB02
2F129BB33
2F129GG17
2F129GG18
5H301AA03
5H301AA06
5H301BB01
5H301BB07
5H301BB14
5H301CC03
5H301CC04
5H301CC06
5H301CC07
5H301CC08
5H301GG08
5H301GG09
(57)【要約】
【課題】初期位置の精度を向上させること。
【解決手段】制御装置は、移動体の自己位置を表すグローバル座標系での三次元座標のうち水平方向の座標を表す水平方向座標を取得する。制御装置は、地図データ上で、水平方向座標を中心とする立体柱であってZ軸に延びる立体柱を生成する。制御装置は、Z座標の変化と、立体柱に収容される点の密度であって水平面に分布する点の密度の変化との対応関係を算出する。制御装置は、点の密度が極大値となるZ座標に基づいて、自己位置を表すグローバル座標系での三次元座標のうち鉛直方向の座標を表す鉛直方向座標を算出する。制御装置は、水平方向座標と鉛直方向座標で表されるグローバル座標系での三次元座標を初期位置として設定する。
【選択図】図4
【特許請求の範囲】
【請求項1】
移動体に搭載される自己位置推定装置であって、
グローバル座標系での三次元座標を表す点によって環境地図を表した地図データを記憶する記憶装置と、
前記移動体の周辺環境をローカル座標系での三次元座標として検出するセンサと、
制御装置と、を備え、
前記制御装置は、
前記移動体の自己位置を表す前記グローバル座標系での三次元座標のうち水平方向の座標を表す水平方向座標を取得し、
前記グローバル座標系の座標軸のうち上下方向を表す座標軸をZ軸とすると、前記地図データ上で、前記水平方向座標を中心とする立体柱であって前記Z軸に延びる立体柱を生成し、
前記Z軸の座標であるZ座標の変化と、前記立体柱に収容される前記点の密度であって水平面に分布する前記点の密度の変化との対応関係を算出し、
前記点の密度が極大値となる前記Z座標に基づいて、前記自己位置を表す前記グローバル座標系での三次元座標のうち鉛直方向の座標を表す鉛直方向座標を算出し、
前記水平方向座標と前記鉛直方向座標で表される前記グローバル座標系での三次元座標を初期位置として設定してスキャンマッチングを開始する、自己位置推定装置。
【請求項2】
前記制御装置は、
前記点の密度が前記極大値となる前記Z座標が複数存在する場合、前記点の密度が前記極大値となる前記Z座標のそれぞれに基づいて算出された前記鉛直方向座標毎に信頼度を算出し、
前記水平方向座標と最も前記信頼度が高い前記鉛直方向座標を、前記初期位置として設定する、請求項1に記載の自己位置推定装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、自己位置推定装置に関する。
【背景技術】
【0002】
特許文献1に開示の自己位置推定方法は、移動体の自己位置を推定する。自己位置推定方法は、センサから得られたローカル座標系での点と、地図データによって表されるグローバル座標系での点とのマッチングを行うことで、グローバル座標系での自己位置を推定する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2022-42630号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
グローバル座標系での全域に対してマッチングを行うと処理負荷が大きいため、マッチングを開始する前には、グローバル座標系での初期位置を設定する必要がある。この際、初期位置のうちグローバル座標系での上下方向の座標であるZ座標の精度が低くなる場合がある。例えば、初期位置は、GPS(Global Positioning System)を用いて設定されるが、GPSを用いる場合にはZ座標のばらつきが大きくなりやすい。
【課題を解決するための手段】
【0005】
上記課題を解決する自己位置推定装置は、移動体に搭載される自己位置推定装置であって、グローバル座標系での三次元座標を表す点によって環境地図を表した地図データを記憶する記憶装置と、前記移動体の周辺環境をローカル座標系での三次元座標として検出するセンサと、制御装置と、を備え、前記制御装置は、前記移動体の自己位置を表す前記グローバル座標系での三次元座標のうち水平方向の座標を表す水平方向座標を取得し、前記グローバル座標系の座標軸のうち上下方向を表す座標軸をZ軸とすると、前記地図データ上で、前記水平方向座標を中心とする立体柱であって前記Z軸に延びる立体柱を生成し、前記Z軸の座標であるZ座標の変化と、前記立体柱に収容される前記点の密度であって水平面に分布する前記点の密度の変化との対応関係を算出し、前記点の密度が極大値となる前記Z座標に基づいて、前記自己位置を表す前記グローバル座標系での三次元座標のうち鉛直方向の座標を表す鉛直方向座標を算出し、前記水平方向座標と前記鉛直方向座標で表される前記グローバル座標系での三次元座標を初期位置として設定してスキャンマッチングを開始する。
【0006】
Z座標の変化と、立体柱に収容される点の密度の変化を算出すると、立体柱に収容される点の密度には極大値が生じる。地図データ上では、路面に対応するZ座標には、点が密に存在する一方で、路面に対応するZ座標より下方向には点が存在しない。このため、Z座標を変化させると、路面に対応するZ座標を境にして立体柱に収容される点の密度に極大値が生じることになる。制御装置は、点の密度が極大値となるZ座標に基づいて鉛直方向座標を算出する。これにより、初期位置の精度を向上させることができる。
【0007】
上記自己位置推定装置について、前記制御装置は、前記点の密度が前記極大値となる前記Z座標が複数存在する場合、前記点の密度が前記極大値となる前記Z座標のそれぞれに基づいて算出された前記鉛直方向座標毎に信頼度を算出し、前記水平方向座標と最も前記信頼度が高い前記鉛直方向座標を、前記初期位置として設定してもよい。
【発明の効果】
【0008】
本発明によれば、初期位置の精度を向上させることができる。
【図面の簡単な説明】
【0009】
図1】移動体が用いられる環境を示す模式図である。
図2図1の移動体が備える自己位置推定装置の概略構成図である。
図3図2の補助記憶装置に記憶された地図データを示す図である。
図4図2の制御装置が実行する自己位置推定を示すフローチャートである。
図5】Z座標の変化に対する点の密度の変化を示す図である。
【発明を実施するための形態】
【0010】
自己位置推定装置の一実施形態について説明する。
<環境>
図1に示すように、移動体V1が用いられる環境A1には種々の構造物O1,O2,O3が含まれる。構造物O1,O2,O3は、例えば、建物を含む。詳細にいえば、構造物O1,O2,O3は、壁、柱、及び屋根など、建物を構成する部材を含む。環境A1は、路面R1を含む。移動体V1は、例えば、車両、飛行体、及び多足歩行ロボットを含む。車両は、例えば、乗用車、及び産業車両を含む。産業車両は、例えば、フォークリフト、トーイングトラクタ、及び搬送車を含む。
【0011】
<自己位置推定装置>
図2に示すように、移動体V1には、自己位置推定装置100が搭載されている。
自己位置推定装置100は、制御装置10を備える。制御装置10は、プロセッサ11と、記憶部12と、を備える。プロセッサ11としては、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又はDSP(Digital Signal Processor)が用いられる。記憶部12は、RAM(Random Access Memory)及びROM(Read Only Memory)を含む。記憶部12には、移動体V1を動作させるためのプログラムが記憶されている。記憶部12は、処理をプロセッサ11に実行させるように構成されたプログラムコードまたは指令を格納しているといえる。記憶部12、すなわち、コンピュータ可読媒体は、汎用または専用のコンピュータでアクセスできるあらゆる利用可能な媒体を含む。制御装置10は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のハードウェア回路によって構成されていてもよい。処理回路である制御装置10は、コンピュータプログラムに従って動作する1つ以上のプロセッサ、ASICやFPGA等の1つ以上のハードウェア回路、或いは、それらの組み合わせを含み得る。
【0012】
移動体V1は、補助記憶装置13を備える。補助記憶装置13は、データを書き換え可能な不揮発性記憶装置である。補助記憶装置13は、例えば、ハードディスクドライブ、又はソリッドステートドライブである。
【0013】
補助記憶装置13は、地図データD1を記憶している。補助記憶装置13は、地図データD1を記憶する記憶装置である。地図データD1は、グローバル座標系での三次元座標によって環境地図を表している。環境地図は、環境A1に含まれる構造物O1,O2,O3、及び路面R1を表した地図である。グローバル座標系は、原点の位置が固定である絶対座標系である。
【0014】
図3に示すように、グローバル座標系での三次元座標は、グローバル座標系での点P1,P2によって表される。この点P1,P2は、構造物O1,O2,O3、及び路面R1の表面を表す点P1,P2である。地図データD1は、例えば、三次元座標を取得することができる装置によって環境A1の三次元座標を取得した上で、当該三次元座標をグローバル座標系での三次元座標に変換することで作成できる。三次元座標を取得することができる装置としては、例えば、LIDAR(Laser Imaging Detection and Ranging)、ステレオカメラ、及びミリ波レーダーを挙げることができる。
【0015】
図3に示す例では、説明の便宜上、路面R1を表す点P1と、構造物O1,O2,O3を表す点P2とを分類して示している。グローバル座標系は、X軸と、Y軸と、Z軸と、を備える。X軸及びY軸は、水平方向を表す座標軸である。Z軸は、上下方向を表す座標軸である。上下方向は、水平方向に直交する鉛直方向である。点P1,P2は、グローバル座標系での三次元座標(X,Y,Z)を表す。Xは任意のX座標、Yは任意のY座標、Zは任意のZ座標である。X座標はX軸の座標、Y座標はY軸の座標、Z座標はZ軸の座標である。
【0016】
図2に示すように、自己位置推定装置100は、センサ21を備える。センサ21は、移動体V1の周辺環境をローカル座標系での三次元座標として検出する。ローカル座標系での三次元座標は、ローカル座標系での点として表される。この点は、構造物O1,O2,O3、及び路面R1の表面を表す点である。周辺環境は、例えば、構造物O1,O2,O3や路面R1などの物体を含む。センサ21は、例えば、LIDAR、ステレオカメラ、又はミリ波レーダーである。ローカル座標系は、移動体V1とともに移動する相対座標系である。例えば、ローカル座標系は、センサ21を原点とする座標系である。ローカル座標系は、三軸直交座標系である。
【0017】
自己位置推定装置100は、衛星航法装置22を備える。衛星航法装置22は、GNSS(Global Navigation Satellite System)衛星から送信される衛星信号を受信する。GNSSは、例えば、GPS(Global Positioning System)、IRNSS(Indian Regional Navigational Satellite System)、又はQZSS(Quasi-Zenith Satellite System)である。本実施形態のGNSSは、GPSである。衛星航法装置22は、衛星信号を用いてグローバル座標系での三次元座標を測定する。
【0018】
制御装置10は、自己位置推定を行う。自己位置とは、グローバル座標系での移動体V1の座標である。自己位置は、移動体V1の一点を示す座標である。移動体V1の一点としては、移動体V1の中心位置など、任意の位置に設定することができる。以下、制御装置10が行う自己位置推定について説明する。自己位置推定は、例えば、移動体V1が自律移動する際に行われる。
【0019】
<自己位置推定>
図4に示すように、ステップS1において、制御装置10は、衛星航法装置22からグローバル座標系での三次元座標を取得する。ステップS1で取得した三次元座標(X,Y,Z)を三次元座標(α,β,γ)とする。X座標及びY座標は、三次元座標のうち水平方向の座標を表す水平方向座標(α,β)である。制御装置10は、ステップS1で水平方向座標を取得している。
【0020】
次に、ステップS2において、制御装置10は、地図データD1上で、水平面であるXY平面に対して立体柱を生成する。
図3に示すように、立体柱C1は、水平方向座標を中心とする立体柱C1であってZ軸に延びる。本実施形態において、立体柱C1は、水平方向座標(α,β)を中心とする立体柱である。立体柱C1は、Z軸の+側、及び-側に延びている。Z軸の+側は原点よりも上方向である。Z軸の-側は原点よりも下方向である。立体柱C1のZ軸方向の寸法は、例えば、原点から下方向に立体柱C1が第1所定距離延び、かつ、原点から上方向に立体柱C1が第2所定距離延びるように設定されている。第1所定距離は、例えば、路面R1よりも下方向の範囲が立体柱C1に含まれるように設定されている。第2所定距離は、例えば、路面R1上の構造物O1,O2,O3が立体柱C1に含まれるように設定されている。立体柱C1は、XY平面に対する断面積が一様な柱である。立体柱C1のXY平面に対する断面積は、水平方向に拡がる面を備える構造物O1,O2,O3が立体柱C1に収容されている場合に、当該水平方向に拡がる面の面積よりも立体柱C1のXY平面に対する断面積が大きくなるように設定されている。即ち、立体柱C1のXY平面に対する断面積は、立体柱C1内で水平方向に拡がる面のうち路面R1の面積が最も大きくなるように設定されている。立体柱C1は、例えば、円柱、四角柱、又は六角柱である。
【0021】
図4に示すように、次に、ステップS3において、制御装置10は、地図データD1上で立体柱C1に収容される点P1,P2を抽出する。
次に、ステップS4において、制御装置10は、Z座標の変化と、立体柱C1に収容される点P1,P2の密度であってXY平面に分布する点P1,P2の密度の変化との対応関係を算出する。即ち、制御装置10は、Z座標の変化に対する点P1,P2の密度の変化を算出する。Z座標の変化に対する点P1,P2の密度の変化は、Z座標を連続的に変化させた場合の点P1,P2の密度の変化であってもよい。Z座標の変化に対する点P1,P2の密度の変化は、Z座標を一定範囲で変化させた場合に、当該一定範囲に含まれる点P1,P2の密度の変化であってもよい。
【0022】
次に、ステップS5において、制御装置10は、鉛直方向座標を算出する。鉛直方向座標は、自己位置を表すグローバル座標系での三次元座標のうち鉛直方向の座標を表す座標である。
【0023】
図5に示すように、Z座標の変化に対する点P1,P2の密度の変化を算出すると、点P1,P2の密度には極大値が生じる。地図データD1において、路面R1に対応するZ座標には、点P1が密に存在する一方で、路面R1に対応するZ座標より下方向には点P1,P2が存在しない。このため、Z座標を変化させると、路面R1に対応するZ座標を境にして点P1,P2の密度に極大値が生じることになる。制御装置10は、点P1,P2の密度が極大値となるZ座標を路面R1のZ座標であると判定する。制御装置10は、点P1,P2の密度が極大値となるZ座標を探索する際に、Z座標の-側から+側に向けて探索を行ってもよい。この場合、点P1,P2が存在しないZ座標から路面R1に対応するZ座標を境にして点P1,P2の密度が急激に増加する。制御装置10は、点P1,P2の密度が極大値となるZ座標を探索する際に、Z座標の+側から-側に向けて探索を行ってもよい。この場合、構造物O1,O2,O3の影響によって路面R1に対応するZ座標よりも上方向で点P1,P2の密度が0より大きくなるが、路面R1に対応するZ座標を境にして点P1,P2の密度が急激に増加する。
【0024】
制御装置10は、点P1,P2の密度が極大値となるZ座標に基づいて鉛直方向座標を算出する。本実施形態において、制御装置10は、点P1,P2の密度が極大値となるZ座標に補正値を加算する。点P1,P2の密度が極大値となるZ座標に補正値を加算することで得られた値が鉛直方向座標である。補正値は、移動体V1の地上高やセンサ21の取り付け高に基づいて設定される値である。自己位置として推定されるZ座標を路面R1のZ座標に対して、どの程度上方に位置させるかによって補正値は任意の値とすることができる。
【0025】
図4に示すように、次に、ステップS6において、制御装置10は、鉛直方向座標が複数得られたか否かを判定する。鉛直方向座標が複数得られる場合とは、点P1,P2の密度が極大値となるZ座標が複数存在する場合である。Z座標の変化に対する点P1,P2の密度の変化を算出すると、点P1,P2の密度に複数の極大値が生じる場合がある。例えば、複数の路面R1が上下方向に重なり合う立体交差の存在する場所では、点P1,P2の密度に複数の極大値が生じる場合がある。そして、点P1,P2の密度に複数の極大値が生じた場合、それぞれの極大値に対応したZ座標毎に鉛直方向座標が算出される。ステップS6の判定結果が否定の場合、制御装置10は、ステップS7の処理を行う。ステップS6の判定結果が肯定の場合、制御装置10は、ステップS9の処理を行う。
【0026】
ステップS7において、制御装置10は、初期位置の設定を行う。初期位置とは、グローバル座標系での三次元座標であって自己位置推定を行う際に、最初に設定される移動体V1の自己位置である。
【0027】
図5に示すように、路面R1のZ座標としてδが得られたとする。補正値をεとする。この場合、制御装置10は、δ+εを、鉛直方向座標とする。制御装置10は、ステップS1で得られた三次元座標(α,β,γ)のγをδ+εに置き換えて三次元座標(α,β,δ+ε)とする。そして、制御装置10は、三次元座標(α,β,δ+ε)を初期位置として設定する。
【0028】
次に、ステップS8において、制御装置10は、スキャンマッチングを開始する。スキャンマッチングは、センサ21から得られたローカル座標系での点と、地図データD1によって表されるグローバル座標系での点P1,P2とのマッチングを行うことによって自己位置を推定することである。例えば、制御装置10は、センサ21から得られたローカル座標系での点のペアとなるグローバル座標系での点P1,P2を地図データD1から探索することによってマッチングを行う。スキャンマッチングが開始されると、以降は、スキャンマッチングを周期的に行うことによって自己位置を継続的に推定する。即ち、初期位置の設定は、移動体V1の起動時など、制御装置10が自己位置を認識していない際に初期の自己位置を認識するために行われる。スキャンマッチングとしては、例えば、ICP(Iterative Closest Points)又はNDT(Normal Distribution Transform)が用いられる。
【0029】
ステップS9において、制御装置10は、路面R1のZ座標、即ち、点P1,P2の密度が極大値となるZ座標のそれぞれについて基づいて算出された鉛直方向座標の信頼度を算出する。制御装置10は、複数得られた鉛直方向座標のそれぞれを初期位置としてスキャンマッチングを行う。例えば、ステップS5において、鉛直方向座標としてδ1+ε、及びδ2+εが得られていたとする。δ1及びδ2は、それぞれ、路面R1のZ座標である。この場合、制御装置10は、三次元座標(α,β,δ1+ε)を初期位置とするスキャンマッチングと、三次元座標(α,β,δ2+ε)を初期位置とするスキャンマッチングと、を行う。そして、制御装置10は、それぞれのスキャンマッチングに基づいて鉛直方向座標の信頼度を算出する。信頼度は、例えば、センサ21から得られたローカル座標系での点のペアとなるグローバル座標系での点P1,P2が多いほど高くなるように算出される。
【0030】
次に、ステップS10において、制御装置10は、初期位置の設定を行う。制御装置10は、水平方向座標と最も信頼度が高い鉛直方向座標を初期位置として設定する。例えば、三次元座標(α,β,δ1+ε)、及び三次元座標(α,β,δ2+ε)のうち、三次元座標(α,β,δ2+ε)の信頼度が高かったとする。この場合、三次元座標(α,β,δ2+ε)が初期位置として設定される。ステップS10の処理を終えると、制御装置10は、ステップS8の処理を行う。
【0031】
[本実施形態の作用]
制御装置10は、Z座標の変化に対する点P1,P2の密度の変化から、路面R1のZ座標を算出する。そして、制御装置10は、路面R1のZ座標から鉛直方向座標を算出する。地図データD1上では、路面R1に対応するZ座標には、点P1が密に存在する一方で、路面R1に対応するZ座標より下方向には点P1,P2が存在しない。このため、点P1,P2の密度を用いることによって路面R1のZ座標を精度良く算出できる。そして、路面R1のZ座標に基づいて鉛直方向座標を算出することで、初期位置の精度を向上させることができる。
【0032】
初期位置の精度の低下を抑制するため、鉛直方向座標として固定のZ座標を用いることも考えられる。この場合、路面R1のZ座標の変化が小さい環境で移動体V1を用いる必要がある。これに対し、実施形態の移動体V1であれば、路面R1のZ座標に基づいた鉛直方向座標を算出することができる。従って、路面R1のZ座標の変化が大きい環境A1であっても初期位置を設定することができる。
【0033】
[本実施形態の効果]
(1)制御装置10は、点P1,P2の密度が極大値となるZ座標に基づいて鉛直方向座標を算出する。このため、初期位置の精度を向上させることができる。
【0034】
(2)制御装置10は、点P1,P2の密度が極大値となるZ座標が複数存在する場合、点P1,P2の密度が極大値となるZ座標のそれぞれに基づいて算出された鉛直方向座標の信頼度を算出する。制御装置10は、信頼度が最も高い鉛直方向座標を、初期位置の鉛直方向座標とする。このため、複数の路面R1が上下方向に重なり合う立体交差のような場所であっても初期位置を設定することができる。
【0035】
[変更例]
実施形態は、以下のように変更して実施することができる。実施形態及び以下の変更例は、技術的に矛盾しない範囲で互いに組み合わせて実施することができる。
【0036】
○制御装置10は、点P1,P2の密度が極大値となるZ座標が複数存在する場合に、点P1,P2の密度が極大値となるZ座標のうち点P1,P2の密度が最大値となるZ座標に基づいて鉛直方向座標を算出してもよい。そして、制御装置10は、当該鉛直方向座標を初期位置の鉛直方向座標としてもよい。
【0037】
○制御装置10は、移動体V1のユーザーからの入力によって水平方向座標を取得してもよい。例えば、移動体V1は、ユーザーからの入力を受け付ける入力部を備える。そして、ユーザーは、入力部によって水平方向座標を入力してもよい。入力部は、例えば、タッチパネルである。タッチパネルには、環境地図の俯瞰図が表示される。ユーザーは、タッチパネルに表示された環境地図上での移動体V1の位置をタッチすることによって、移動体V1の水平方向座標を入力してもよい。この場合、移動体V1は、衛星航法装置22を備えていてもよいし、備えていなくてもよい。
【0038】
○自己位置を路面R1のZ座標に設定している場合、点P1,P2の密度が極大値となるZ座標に補正値を加算しなくてもよい。この場合、制御装置10は、点P1,P2の密度が極大値となるZ座標を鉛直方向座標とする。
【符号の説明】
【0039】
C1…立体柱、D1…地図データ、P1,P2…点、R1…路面、V1…移動体、10…制御装置、13…記憶装置としての補助記憶装置、21…センサ、100…自己位置推定装置。
図1
図2
図3
図4
図5