(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-08
(45)【発行日】2024-04-16
(54)【発明の名称】自己位置推定装置、移動体、自己位置推定方法、及び自己位置推定プログラム
(51)【国際特許分類】
G05D 1/243 20240101AFI20240409BHJP
G01C 21/30 20060101ALI20240409BHJP
G06T 7/70 20170101ALI20240409BHJP
【FI】
G05D1/243
G01C21/30
G06T7/70 A
(21)【出願番号】P 2021023219
(22)【出願日】2021-02-17
【審査請求日】2023-05-16
(73)【特許権者】
【識別番号】000003218
【氏名又は名称】株式会社豊田自動織機
(74)【代理人】
【識別番号】100088155
【氏名又は名称】長谷川 芳樹
(74)【代理人】
【識別番号】100113435
【氏名又は名称】黒木 義樹
(74)【代理人】
【識別番号】100124062
【氏名又は名称】三上 敬史
(74)【代理人】
【識別番号】100148013
【氏名又は名称】中山 浩光
(74)【代理人】
【識別番号】100162640
【氏名又は名称】柳 康樹
(72)【発明者】
【氏名】古室 達也
【審査官】岩▲崎▼ 優
(56)【参考文献】
【文献】特開2011-215716(JP,A)
【文献】特開2020-087307(JP,A)
【文献】国際公開第2021/250848(WO,A1)
【文献】Martin A. Fischler and Robert C. Bolles,"Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography",Communications of the ACM,1981年06月01日,Volume 24, Issue 6,pp 381-395
(58)【調査した分野】(Int.Cl.,DB名)
G05D 1/00- 1/87
G01C 21/00-21/36
G06T 7/00- 7/90
(57)【特許請求の範囲】
【請求項1】
取得された画像から抽出された特徴と、予め位置情報と前記特徴とを関連付けたデータベースとをマッチングさせることで移動体の自己位置を推定するための自己位置推定装置であって、
前記画像を取得する画像取得部と、
前記画像取得部で取得された前記画像から特徴点を抽出する抽出部と、
少なくとも三つの前記特徴点と、前記データベースとをマッチングさせることで前記移動体の評価用自己位置を推定する推定部と、
前記推定部で推定された前記評価用自己位置を評価する評価部と、
前記評価部の評価結果に基づいて、推定結果として採用する採用自己位置を演算する推定結果採用部と、
複数の評価用自己位置の中から、前記評価部の評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する選定部と、
複数の前記選定自己位置のばらつきに基づいて、前記採用自己位置の信頼度を演算する信頼度演算部と、を備える、自己位置推定装置。
【請求項2】
前記選定部は、複数の前記評価用自己位置を複数のグループに分け、それぞれの前記グループ内の複数の前記評価用自己位置の中から、一つの前記選定自己位置を選定する、請求項1に記載の自己位置推定装置。
【請求項3】
前記評価部は、前記評価用自己位置に対応する画像座標に対して、自己位置推定に用いられなかった複数の前記特徴点を再投影して誤差を演算し、当該誤差が所定の閾値以下となる前記特徴点のカウント数を取得することによって、評価を行い、
前記選定部は、前記カウント数に基づいて前記選定自己位置を選定する、請求項1又は2に記載の自己位置推定装置。
【請求項4】
前記信頼度演算部は、複数の前記選定自己位置のうち、他に比べて乖離が大きいものを除外して、前記信頼度を演算する、請求項1~3の何れか一項に記載の自己位置推定装置。
【請求項5】
前記推定部は、複数の前記特徴点の中から、推定精度を低下させるものを除外して推定を行う、請求項1~4の何れか一項に記載の自己位置推定装置。
【請求項6】
請求項1~5の何れか一項に記載された自己位置推定装置を備える移動体。
【請求項7】
取得された画像から抽出された特徴と、予め位置情報と前記特徴とを関連付けたデータベースとをマッチングさせることで移動体の自己位置を推定するための自己位置推定方法であって、
前記画像を取得する画像取得ステップと、
前記画像取得ステップで取得された前記画像から特徴点を抽出する抽出ステップと、
少なくとも三つの前記特徴点と、前記データベースとをマッチングさせることで前記移動体の評価用自己位置を推定する推定ステップと、
前記推定ステップで推定された前記評価用自己位置を評価する評価ステップと、
前記評価ステップの評価結果に基づいて、推定結果として採用する採用自己位置を演算する推定結果採用ステップと、
複数の評価用自己位置の中から、前記評価ステップの評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する選定ステップと、
複数の前記選定自己位置のばらつきに基づいて、前記採用自己位置の信頼度を演算する信頼度演算ステップと、を備える、自己位置推定方法。
【請求項8】
取得された画像から抽出された特徴と、予め位置情報と前記特徴とを関連付けたデータベースとをマッチングさせることで移動体の自己位置を推定するための自己位置推定プログラムであって、
前記画像を取得する画像取得ステップと、
前記画像取得ステップで取得された前記画像から特徴点を抽出する抽出ステップと、
少なくとも三つの前記特徴点と、前記データベースとをマッチングさせることで前記移動体の評価用自己位置を推定する推定ステップと、
前記推定ステップで推定された前記評価用自己位置を評価する評価ステップと、
前記評価ステップの評価結果に基づいて、推定結果として採用する採用自己位置を演算する推定結果採用ステップと、
複数の評価用自己位置の中から、前記評価ステップの評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する選定ステップと、
複数の前記選定自己位置のばらつきに基づいて、前記採用自己位置の信頼度を演算する信頼度演算ステップと、を制御部に実行させる、自己位置推定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自己位置推定装置、移動体、自己位置推定方法、及び自己位置推定プログラムに関する。
【背景技術】
【0002】
従来の自己位置推定装置として、特許文献1に記載されたものが知られている。この自己位置推定装置は、事前に取得した画像と、移動体の走行中に取得した画像と、を用いることで、自己位置を推定している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで、画像から自己位置の推定を行った場合の推定精度が常に良いとは限らない。この場合、推定精度が低い自己位置の推定結果を用いて、移動体の走行支援を行うと、適切な走行支援を行うことができず、移動体が経路から外れて走行を行ってしまう可能性がある。そのため、移動体の自動走行の運用の質を向上することが求められていた。
【0005】
従って、本発明は、移動体の自動走行の運用の質を向上させることができる自己位置推定装置、移動体、自己位置推定方法、及び自己位置推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る自己位置推定装置は、取得された画像から抽出された特徴と、予め位置情報と特徴とを関連付けたデータベースとをマッチングさせることで移動体の自己位置を推定するための自己位置推定装置であって、画像を取得する画像取得部と、画像取得部で取得された画像から特徴点を抽出する抽出部と、少なくとも三つの特徴点と、データベースとをマッチングさせることで移動体の評価用自己位置を推定する推定部と、推定部で推定された評価用自己位置を評価する評価部と、評価部の評価結果に基づいて、推定結果として採用する採用自己位置を演算する推定結果採用部と、複数の評価用自己位置の中から、評価部の評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する選定部と、複数の選定自己位置のばらつきに基づいて、採用自己位置の信頼度を演算する信頼度演算部と、を備える。
【0007】
自己位置推定装置は、取得された画像から抽出された特徴と、予め位置情報と特徴とを関連付けたデータベースとをマッチングさせることで移動体の自己位置を推定するためのものである。ここで、推定部は、少なくとも三つの特徴点と、データベースとをマッチングさせることで移動体の評価用自己位置を推定する。これに対し、評価部は、推定部で推定された評価用自己位置を評価する。推定結果採用部は、評価部の評価結果に基づいて、推定結果として採用する採用自己位置を演算する。このように、推定結果採用部は、評価が高い評価用自己位置を用いて、採用自己位置を演算することが可能となる。これに対し、選定部は、複数の評価用自己位置の中から、評価部の評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する。そして、信頼度演算部は、複数の選定自己位置のばらつきに基づいて、採用自己位置の信頼度を演算する。このように、信頼度演算部は、採用自己位置の評価だけを考慮するのではなく、複数の選定自己位置を考慮して信頼度を演算することで、信頼度の精度を向上できる。このように、精度の良い信頼度を演算することにより、当該信頼度を有効に用いることによって、移動体の自動走行の運用の質を向上させることができる。
【0008】
選定部は、複数の評価用自己位置を複数のグループに分け、それぞれのグループ内の複数の評価用自己位置の中から、一つの選定自己位置を選定してよい。このように、全ての評価用自己位置を信頼度の演算に用いるのではなく、選定部が各グループの中から一つの選定自己位置を選定することで、演算の負荷を低減することができる。
【0009】
評価部は、評価用自己位置に対応する画像座標に対して、自己位置推定に用いられなかった複数の特徴点を再投影して誤差を演算し、当該誤差が所定の閾値以下となる特徴点のカウント数を取得することによって、評価を行い、選定部は、カウント数に基づいて選定自己位置を選定してよい。この場合、評価部は、誤差をカウントするだけのシンプルな演算方法によって、各評価用自己位置の評価を行うことができる。
【0010】
信頼度演算部は、複数の選定自己位置のうち、他に比べて乖離が大きいものを除外して、信頼度を演算してよい。この場合、信頼度演算部は、明かに信頼度の精度を低下させるような選定自己位置を除外することで、信頼度の精度を向上できる。
【0011】
推定部は、複数の特徴点の中から、推定精度を低下させるものを除外して推定を行ってよい。この場合、推定部は、精度が高い特徴点を用いて自己位置の推定を行うことで、自己位置の推定精度、及び信頼度を向上することができる。
【0012】
本発明の一態様に係る移動体は、上述の自己位置推定装置を備える。
【0013】
本発明の一態様に係る自己位置推定方法は、取得された画像から抽出された特徴と、予め位置情報と特徴とを関連付けたデータベースとをマッチングさせることで移動体の自己位置を推定するための自己位置推定方法であって、画像を取得する画像取得ステップと、画像取得ステップで取得された画像から特徴点を抽出する抽出ステップと、少なくとも三つの特徴点と、データベースとをマッチングさせることで移動体の評価用自己位置を推定する推定ステップと、推定ステップで推定された評価用自己位置を評価する評価ステップと、評価ステップの評価結果に基づいて、推定結果として採用する採用自己位置を演算する推定結果採用ステップと、複数の評価用自己位置の中から、評価ステップの評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する選定ステップと、複数の選定自己位置のばらつきに基づいて、採用自己位置の信頼度を演算する信頼度演算ステップと、を備える。
【0014】
本発明の一態様に係る自己位置推定プログラムは、取得された画像から抽出された特徴と、予め位置情報と特徴とを関連付けたデータベースとをマッチングさせることで移動体の自己位置を推定するための自己位置推定プログラムであって、画像を取得する画像取得ステップと、画像取得ステップで取得された画像から特徴点を抽出する抽出ステップと、少なくとも三つの特徴点と、データベースとをマッチングさせることで移動体の評価用自己位置を推定する推定ステップと、推定ステップで推定された評価用自己位置を評価する評価ステップと、評価ステップの評価結果に基づいて、推定結果として採用する採用自己位置を演算する推定結果採用ステップと、複数の評価用自己位置の中から、評価ステップの評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する選定ステップと、複数の選定自己位置のばらつきに基づいて、採用自己位置の信頼度を演算する信頼度演算ステップと、を制御部に実行させる。
【0015】
これらの移動体、自己位置推定方法、及び自己位置推定プログラムによれば、上述の自己位置推定装置と同様な効果を得ることができる。
【発明の効果】
【0016】
本発明によれば、移動体の自動走行の運用の質を向上させることができる自己位置推定装置、移動体、自己位置推定方法、及び自己位置推定プログラムを提供することができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の実施形態に係る自己位置推定装置を備える自己位置推定システムを示す概略図である。
【
図2】本発明の実施形態に係る自己位置推定装置を備える移動体のブロック構成を示すブロック構成図である。
【
図3】データベース作成時の作業場の様子を示す概略図である。
【
図4】データベースの作成方法を示すフローチャートである。
【
図5】特徴を抽出する方法を説明するための図である。
【
図6】カメラで取得された画像、及び抽出された特徴を示す図である。
【
図7】特徴の三次元座標を取得する方法を示す概念図である。
【
図9】特徴点を用いて自己位置を推定する様子、及び自己位置を評価するときの様子を示す概念図である。
【
図10】移動体が自動走行を行うときの作業場の様子を示す概略図である。
【
図11】移動体の自己位置の推定方法を示すフローチャートである。
【
図12】自己位置を推定するための詳細な制御処理内容を示すフローチャートである。
【
図13】信頼度を演算するための詳細な制御処理内容を示すフローチャートである。
【
図14】(a)は特徴点間の角度差を示す概念図であり、(b)は複数のセンサによる信頼度を選ぶ様子を示す概念図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【0019】
図1は、本実施形態に係る自己位置推定装置1を備える自己位置推定システム100を示す概略図である。
図1に示すように、自己位置推定システム100は、複数の移動体50のそれぞれに設けられた自己位置推定装置1と、管理部2と、を備える。
【0020】
本実施形態では、移動体50として、フォークリフトが例示されている。
図1には、移動体50としてのフォークリフトが、倉庫や工場などの作業場E(所定の領域)にて、荷物の積み卸しの作業を行っている様子が示されている。作業場Eでは、複数の棚60が配列されている。また、棚60と棚60との間に、移動体50が通過するための通路61が形成されている。自己位置推定装置1は、このような作業場E内における移動体50の自己位置を推定する装置である。自己位置推定装置1は、取得された画像から抽出された特徴と、予め位置情報と特徴とを関連付けたデータベースとをマッチングさせることで移動体50の自己位置を推定する。移動体50は、自己位置推定装置1で推定された自己位置を用いることで、作業場E内で自動走行することができる。なお、自己位置推定装置1の詳細な構成については後述する。管理部2は、作業場E内の複数の移動体50を管理するサーバーである。管理部2は、必要に応じて、複数の移動体50から所定の情報を受信し、複数の移動体50に対して所定の情報を送信する。
【0021】
図2は、本実施形態に係る自己位置推定装置1を備える移動体50のブロック構成を示すブロック構成図である。
図2に示すように、移動体50は、走行部11と、カメラ12と、制御部20と、を備える。走行部11は、移動体50を走行させるための駆動力を発生するモータなどの駆動系である。カメラ12(画像取得部)は、移動体50の周囲の画像を取得する機器である。カメラ12は、取得した画像を自己位置推定部26へ送信する。
【0022】
制御部20は、移動体50を統括的に管理するECU[Electronic Control Unit]を備えている。ECUは、CPU[Central Processing Unit]、ROM[Read Only Memory]、RAM[Random Access Memory]、CAN[Controller Area Network]通信回路等を有する電子制御ユニットである。ECUでは、例えば、ROMに記憶されているプログラムをRAMにロードし、RAMにロードされたプログラムをCPUで実行することにより各種の機能を実現する。制御部20は、経路計画部21と、指令速度計算部22と、通信部23と、記憶部24と、自己位置推定部26と、オドメトリ計算部27と、自己位置決定部28と、を備える。このうち、記憶部24、自己位置推定部26、オドメトリ計算部27、自己位置決定部28、及びカメラ12によって自己位置推定装置1が構成される。
【0023】
経路計画部21は、移動体50が移動する経路を計画する。経路計画部21は、作業場Eの中の出発位置と目的位置とを設定すると共に、目的位置までの経路を計画する。経路計画部21は、計画した経路の情報を指令速度計算部22へ送信する。指令速度計算部22は、走行部11に対する指令速度、すなわちモータに対する指令回転数を計算する。指令速度計算部22は、経路計画部21から送信された経路、及び自己位置決定部28から送信された自己位置に基づいて、指令回転数を計算する。通信部23は、走行部11との間で通信を行う。通信部23は、走行部11に対して走行に必要な制御信号を送信する。なお、通信部23は、図示されないエンコーダからのエンコーダ値を取得すると共に、当該エンコーダ値をオドメトリ計算部27に送信する。
【0024】
次に、自己位置推定装置1の各構成要素について説明する。記憶部24は、自己位置推定に必要なデータベースを記憶する。データベースは、予め位置情報と、当該位置で取得された画像から抽出された特徴と、を関連付けた情報群である。記憶部24は、自己位置推定部26に対してデータベースを送信する。
【0025】
自己位置推定部26は、カメラ12で取得された画像から特徴を抽出する。また、自己位置推定部26は、カメラ12で取得された画像から抽出された特徴と、記憶部24から送信されたデータベースとをマッチングさせることで、移動体50の自己位置を推定する。自己位置推定部26は、推定した自己位置を自己位置決定部28へ送信する。自己位置推定部26の更に詳細な構成については、後述する。
【0026】
オドメトリ計算部27は、通信部23から取得したエンコーダ値に基づいて、オドメトリによる自己位置を計算する。オドメトリ計算部27は、カメラ12の画像によることなく、容易な計算によって自己位置を取得することができる。オドメトリ計算部27は、オドメトリによる自己位置を自己位置決定部28へ送信する。自己位置決定部28は、自己位置推定部26からの自己位置と、オドメトリ計算部27からの自己位置を総合的に判断し、移動体50の自己位置を決定する。自己位置決定部28は、オドメトリ計算部27からの自己位置をベースとしつつ、画像を用いた自己位置推定部26からの自己位置推定結果を用いて、オドメトリ誤差を補正することで、自己位置を決定する。自己位置決定部28は、決定した自己位置を指令速度計算部22へ送信する。
【0027】
ここで、
図3~
図6を参照して、データベースの作成方法について説明する。データベースの作成は、実際に移動体50が自己位置を推定しながら作業場Eで作業を行うよりも前段階において、予め行われる。データベースの作成は、作業場Eのうち、走行に重要なポイントにおいて画像を取得し、位置推定に必要な情報を算出してデータベース化して、作業場Eの地図に紐付けることによってなされる。重要なポイントは、例えば、
図3において「1」~「12」までの番号が付された位置である。以降の説明においては、「1」の番号の位置を「第1重要ポイント」と称するものとする。他の番号が付された場所も同様に「第n重要ポイント」と称される。なお、ここでは、データベース作成のために、
図2に示す移動体50を用いるものとして説明する。後述のように、自己位置推定部26が画像から特徴を抽出する機能や画像同士をマッチングする機能を有しているため、自己位置推定部26がデータベース作成のための各種処理を行うものとする。しかし、データベース作成のために用いられる機器は、特に限定されず、以降の処理を実行できる機器であれば、どのようなものを採用してもよい。
【0028】
図4は、データベースの作成方法を示すフローチャートである。まず、カメラ12は、データベースにしたい画像を1枚取得すると共に、その周辺の画像を1枚(複数でも可)取得する(ステップS10)。例えば、第1重要ポイントにおける画像をデータベースにする場合、カメラ12は、第1重要ポイントで画像を1枚取得し、当該第1重要ポイントの近くから別の画像を取得する。次に、自己位置推定部26は、特徴を抽出できるように、画像の前処理を行う(ステップS20)。例えば、カメラ12は、広範囲を撮影できるように魚眼レンズを有する場合がある。このときは、画像中の物体が歪んで映っているため、前処理を行って、実際の見え方に近い画像に調整する。
【0029】
次に、自己位置推定部26は、二枚の画像からそれぞれ特徴を抽出する(ステップS30)。ここで、
図5を参照して、画像中の特徴の抽出の方法について説明する。
図5は、特徴を抽出する方法を説明するための図である。
図5(a)に示すように、自己位置推定部26は、判定画素Xと周囲画素(ここでは16画素)の輝度を比較することで、「明」「暗」「同」の三パターンに層別する。例えば、自己位置推定部26は、「判定画素(X)-周囲画素(i)>明暗閾値」という関係が成り立つ周囲画素は「明」と判定し、「判定画素(X)-周囲画素(i)<明暗閾値」という関係が成り立つ周囲画素は「暗」と判定し、「(判定画素(X)-周囲画素(i))の絶対値<明暗閾値」という関係が成り立つ周囲画素は「同」と判定する。
【0030】
ここで、自己位置推定部26は、「明」または「暗」の周囲画素の連続数がコーナー閾値以上となった場合、判定画素Xを画像中の特徴として抽出する。例えば、コーナー閾値を「12」とした場合、
図5(b)の判定画素Xは「明」の周囲画素が12連続以上であるため、特徴として抽出される。
図5(c)の判定画素Xは「明」の周囲画素が11連続しかないため、判定画素Xは特徴ではないものとして破棄される。これにより、
図6に示すように、画像PC中の棚、床、天井、壁などの構造物のコーナー部などが特徴(特徴点FP)として抽出される。その他、荷物、設置物、移動体などが画像に写っている場合、それらの物体のコーナー部も特徴として抽出される。
【0031】
本明細書では、特徴として抽出された画素を「特徴点FP」と称する場合がある。なお、自己位置推定に用いられる画像中の特徴は、点である場合のみならず、線や所定形状などである場合もある。すなわち、特徴は、画像中において特徴的な部分として画像処理によって抽出可能な部分であり、且つ、他の画像で抽出したものとマッチング可能な部分であれば、どのような態様であるかは限定されない。
【0032】
図4に戻り、自己位置推定部26は、二枚の画像同士の特徴をマッチングする(ステップS40)。そして、自己位置推定部26は、特徴の3次元復元を行い、データベースとして登録する。データベースでは、重要ポイント(画像が取得された位置)の位置情報と、画像中の特徴の画像座標と、特徴の3次元座標とが、関連付けられた形で登録されている。なお、位置情報には、撮影時のカメラ12の姿勢も含まれる。例えば、
図7に示すように、重要ポイントにおける画像PC1中では、特徴点G,R,Bが抽出されており、それらの画像座標が特定されている。また、画像PC1が取得された場所の位置情報も特定されている。重要ポイントの周囲で取得された画像PC2中でも、特徴点G,R,Bが抽出されており、それらの画像座標が特定されている。また、画像PC2が取得された場所の位置情報も特定されている。周囲の撮影位置と、重要ポイントとの位置関係は、オドメトリ値を紐付けたり、画像から推定するなどの方法で把握される。自己位置推定部26は、画像PC1と画像PC2の特徴同士をマッチングする。これにより、自己位置推定部26は、三角測量の要領で、特徴点G,R,Bの三次元座標を取得することができる。
【0033】
図4に戻り、ステップS50の処理が終了すると、一枚の画像のデータベース化が終了する。移動体50は、次の重要ポイントへ移動し、当該重要ポイントにてカメラ12で画像を取得して、再び
図4の処理を行う。このようにして、作業場Eの全ての重要ポイントでの画像のデータベース化を行う。作成されたデータベースは、記憶部24に格納される。
【0034】
次に、
図8を参照して、自己位置推定部26の更に詳細な構成について説明する。
図8は、自己位置推定部のブロック構成図である。
図8に示すように、自己位置推定部26は、抽出部31と、推定部32と、評価部33と、推定結果採用部34と、選定部36と、信頼度演算部37と、を備える。
【0035】
抽出部31は、カメラ12で取得された画像から特徴点を抽出する。抽出部31は、前述のデータベース作成時における特徴点の抽出処理と同様な処理を行う。具体的には、抽出部31は、
図5を参照して説明した方法と同様な方法を用いて特徴点を抽出する。
【0036】
推定部32は、少なくとも三つの特徴点と、データベースとをマッチングさせることで移動体50の評価用自己位置を推定する。なお、評価用自己位置とは、正式な推定結果として自己位置決定部28へ送信するための自己位置ではなく、そのような推定結果の演算のために、仮の自己位置として推定されたものである。評価用自己位置は、評価部33において後述の評価処理を行うために推定された自己位置である。
【0037】
例えば、移動体50の走行中に、
図6に示す画像PCに類似する画像が得られた場合、抽出部31は、
図6のものと類似する複数の特徴点FPを抽出することができる。そして、推定部32は、これらの画像中で抽出された特徴点と、データベースの画像中の特徴点とを照らし合わせる。データベース作成時に第10重要ポイントで
図6に示す画像PCが得られ、
図6に示す複数の特徴点FPが抽出されていた場合、自己位置推定部26は、走行中に抽出部31で抽出した特徴点と、データベースから取得した
図6に示す特徴点FPとをマッチングさせることができる。走行中に撮影した場所は、第10重要ポイントからずれており、走行中に撮影したときの姿勢は、データベース作成時の撮影の姿勢とは、完全に一致せず、ずれていることがある。従って、走行中に撮影された画像及び特徴点の画像座標は、
図6の画像PC及び特徴点FPの画像座標から若干のずれが生じていることがある。
【0038】
これに対し、推定部32は、データベースの画像の任意の三点の特徴点の座標を、走行中の画像の三点の特徴点に紐付ける。そして、推定部32は、公知の三点法の技術を用いて、移動体50の位置及び姿勢を推定する。具体的には、
図9(a)に示すように、推定部32は、多数の特徴点FPの中から、ランダムに三点の特徴点G,R,B(塗りつぶされた特徴点FP)を選択する。推定部32は、データベースの画像PC1中の特徴点G,R,Bと、走行中に撮影された画像PC2中の特徴点G,R,Bとを紐付ける。データベースには、特徴点G,R,Bに関する情報が記憶されているため、推定部32は、画像PC2内における特徴点G,R,Bの見え方に基づいて、当該画像PC2を取得したときの自己位置、すなわちカメラ12の三次元座標、及び姿勢を推定することができる。自己位置推定部26は、複数の評価用自己位置の中から推定結果として採用するものを選び、且つ、複数の評価用自己位置を用いて信頼度の演算を行う。従って、推定部32は、複数の組み合わせパターンにて、三点の特徴点を選択し、それらに対応する評価用自己位置を推定する。
【0039】
評価部33は、推定部32で推定された評価用自己位置を評価する。評価部33は、評価用自己位置に対応する画像座標に対して、自己位置推定に用いられなかった複数の特徴点を再投影して誤差を演算する。また、評価部33は、当該誤差が所定の閾値以下となる特徴点のカウント数を取得することによって、評価を行う。
【0040】
具体的に、
図9(b)に示すように、3点の特徴点R,G,B以外の特徴点FP(白抜きの特徴点FP)を選択する。このとき、データベースの画像PC1の画像座標中では、選択した特徴点FPは「特徴点FP1」で示され、走行中の画像PC2の画像座標中では、特徴点FPは「特徴点FP2」で示される。評価部33は、特徴点FP1の三次元座標点を画像PC2上に再投影する。当該再投影された特徴点FP1は、画像PC2の画像座標中では「特徴点FP2a」と示される。評価部33は、特徴点FP2aと特徴点FP2との間の誤差の大きさを取得すると共に、当該誤差が閾値以下であるか否かを判定する。評価部33は、誤差が閾値以下である場合、選択した特徴点FPをカウントし、誤差が閾値より大きい場合、選択した特徴点FPはカウントしない。これにより、評価部33は、対象となった評価用自己位置と、カウント数とを紐付けることにより、当該カウント数を評価値とする。カウント数が多いほど、評価が高い。評価部33は、他の特徴点FP(白抜きの特徴点FP)についても、同様の再投影及びカウントを行う。
【0041】
推定結果採用部34は、評価部33の評価結果に基づいて、推定結果として採用する採用自己位置を演算する。採用自己位置は、自己位置推定部26が、推定結果として自己位置決定部28へ送信するための自己位置である。推定結果採用部34は、各評価用自己位置に紐付けられた前述のカウント数を評価値として、採用自己位置を決定する。推定結果採用部34は、複数の評価用自己位置のうち、最も評価値が高いもの、すなわち最もカウント数が多いものを採用自己位置として採用する。
【0042】
選定部36は、複数の評価用自己位置の中から、評価部33の評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する。選定部36は、採用自己位置として採用されなかった評価用自己位置についても、信頼度を演算するために用いる。選定部36は、選定した選定自己位置をバッファに格納しておく。選定部36は、推定部32が推定した複数の評価用自己位置を複数のグループに分ける。そして、選定部36は、それぞれのグループ内の複数の評価用自己位置の中から、一つの選定自己位置を選定する。選定部36は、グループ内の複数の評価用自己位置のうち、最も評価値が高いもの、すなわちカウント数が多いものを選定自己位置として、バッファに格納する。なお、選定部36は、必ずしも推定部32が推定した複数の評価用自己位置をグループに分ける必要はない。選定部36は、推定部32が推定した全ての評価用自己位置の数と同じ数のバッファを準備しておき、全ての評価用自己位置を選定自己位置として選定してもよい。ただし、全ての評価用自己位置の数と同じ数のバッファを準備したとしても、評価部33は、全てのバッファに格納を行う必要はなく、例えば、評価が極端に低い評価用自己位置については、選定自己位置としてバッファに格納しなくともよい。
【0043】
信頼度演算部37は、複数の選定自己位置のばらつきに基づいて、採用自己位置の信頼度を演算する。信頼度演算部37は、バッファに格納されている複数の選定自己位置を取得して、それらのばらつきを演算する。そして、信頼度演算部37は、当該ばらつきを信頼度の値として、推定結果採用部34が推定結果として採用した採用自己位置に紐付ける。
【0044】
演算した信頼度の利用方法は特に限定されるものではなく、様々な態様で利用してよい。例えば、信頼度は、推定自己位置の重み付けに利用されてよい。移動体50を自動運転させる際、移動体50は、複数のセンサにてそれぞれの自己位置を推定してよい。この場合、移動体50は、複数のセンサによる各自己位置情報から一つの自己位置を決定して走行制御に利用する。その際にどのセンサによる自己位置を利用するか(もしくはどの自己位置に重きをおくか)を信頼度を利用して決定してよい。例えば、
図14(b)に示す例では、移動体は、センサA,B,Cに基づいて三つの自己位置をそれぞれ推定しており、それぞれの自己位置に対して信頼度A,B,Cが紐付けられている。移動体は、各信頼度A,B,Cのうち、最も信頼度が高いものに紐付けられた自己位置を用いて、車両制御に用いる。
【0045】
また、信頼度を走行不能場所の事前検討に用いてよい。例えば、顧客現場では、一度事前に移動体を走行させデータを取得することがある。このとき、走行コースにおいて事前に取得したデータを用い、信頼度を算出することで、走行コースのどのエリアが信頼度が低い(自己位置推定に不向き)かを判定できる。信頼度が低いエリアには「モノを置く」「磁気テープとの併用」「走行速度を落とす」等、事前に対策することができる。
【0046】
また、信頼度を周囲環境変化の指標として用いてよい。自動運転の運用時は、最初に作成した地図を用いて自己位置を推定しながら自動走行を繰り返す。ここで、時間が経過すると周囲の環境が徐々に変化し、自己位置推定ができるなくなる可能性がある。走行中に常に信頼度を監視することで、信頼度が低下し始めたら危険信号を出すことができる。危険信号が出た際は、「地図を作り直す」「地図を更新する」等の対策を実施することができる。
【0047】
また、信頼度を地図更新に使用可能なデータの選定に用いることができる。例えば、地図を更新する際、現状使用している地図の品質を落とすことなく更新を行うことが求められる。これに対し、信頼度を演算することによって、「(1)地図更新に使用するデータをどれにするか」、また、「(2)更新した地図の品質はどうか」という2点において信頼度を利用することができる。(1)に関し、高い信頼度が得られた際のデータを利用すると地図の品質を落とすことなく更新しやすいという利点がある。画像の場合、例えば画像ブレが発生した際信頼度が低下する。そのブレた画像を利用して地図を更新すると地図の品質が低下する。従って、信頼度を利用することで、品質が低くなるような画像が利用されることを抑制できる。(2)に関し、更新した地図を利用して自己位置推定を行った際、信頼度が高くなれば地図更新は成功とすることができる。もし、更新して信頼度が低下した場合、地図の品質が落ちたとし、「再度地図を更新しなおす」「更新前の地図に戻す」等の対策を実施することができる。
【0048】
また、信頼度をパラメータの調整に用いることができる。例えば、信頼度が高くなるように、パラメータを自動で調整することもできる。顧客ごと、走行エリアごとにパラメータを変えることもできる。
【0049】
また、信頼度をアルゴリズム開発に用いることができる。信頼度は、最終的な目的である自己位置の推定精度と相関がある。従って、自己位置推定に至るまでの各過程のアルゴリズムを信頼度の変化を参考に変更することもできる。
【0050】
次に、
図10~
図13を参照して、移動体50の自動走行の方法、及び自動走行のための自己位置推定部26による自己位置推定方法について説明する。例えば、移動体50は、
図10に示す現在位置STから、目標位置GLである第8重要ポイントまで自動走行するものとする。このとき、自己位置推定部26は、移動体50が現在どこに存在しているかを推定する。これにより、自己位置決定部28は、現在位置STが「第10重要ポイントから東へ2m」であると決定できる。そして、経路計画部21は、「第11重要ポイントまで東に48m、第8重要ポイントまで北へ16m」という経路を計画する。これにより、移動体が自動走行を行う。
【0051】
図11は、移動体50の自己位置の推定方法を示すフローチャートである。自己位置推定部26は、移動体50の自己位置を推定するために
図11に示す処理を実行する。
図11に示すように、自己位置推定部26は、カメラ12から移動体50の走行中の画像を取得する(ステップS60:画像取得ステップ)。例えば、カメラ12は、第10重要ポイント付近の現在位置STで画像を取得する(
図10参照)。次に、抽出部31は、特徴を抽出できるように、画像の前処理を行う(ステップS70)。次に、抽出部31は、走行中の画像から特徴を抽出する(ステップS80:抽出ステップ)。なお、ステップS70,S80では、
図4のステップS20,S30と同趣旨の処理がなされる。これにより、
図6のような画像PCが取得された場合には、特徴点FPが取得される。
【0052】
次に、自己位置推定部26は、ステップS80で抽出した特徴と、データベースの画像の特徴とをマッチングさせることで、自己位置を推定すると共に、その信頼度を演算する(ステップS90)。ステップS90における、自己位置を推定するための詳細な制御処理内容は、
図12に示されており、信頼度を演算するための詳細な制御処理内容は、
図13に示されている。
【0053】
次に、
図12を参照して、自己位置を推定するための詳細な制御処理内容について詳細に説明する。
【0054】
まず、推定部32は、三つの特徴点と、データベースとをマッチングさせることで移動体の評価用自己位置を推定する(ステップS110:推定ステップ)。ステップS110では、抽出された多数の特徴点の中から、ランダムに三つの特徴点G,R,Bを選択する(
図9(a)参照)。そして、推定部32は、選択した特徴点G,R,Bに基づいて評価用自己位置を推定する。
【0055】
次に、評価部33は、ステップS110で推定された評価用自己位置を評価する(ステップS120:評価ステップ)。評価部33は、ステップS110で推定した評価用自己位置に対応する画像座標に対して、自己位置推定に用いられなかった複数の特徴点を再投影して誤差を演算し、当該誤差が所定の閾値以下となる特徴点のカウント数を取得することによって、評価を行う。次に、評価部33は、ステップS120において新たに評価した評価用自己位置の評価値が、既存の最高評価値を更新したか否かを判定する(ステップS130)。評価部33は、後述の第1の暫定自己位置のカウント数と、新たな評価用自己位置でのカウント数とを比較して、新たなカウント数が既存の最大のカウント数を上回っている場合、最高評価が更新されたと判定する。
【0056】
ステップS130において、最高評価が更新されたと判定された場合、評価部33は、第1の暫定自己位置を更新する(ステップS140)。第1の暫定自己位置は、これまでの評価用自己位置で最も評価が高く、暫定的な採用自己位置としたものである。なお、一回目の評価用自己位置の場合は、そのまま第1の暫定自己位置となる。その後、推定結果採用部34は、予め設定した繰り返し回数が終了したか否かを判定する(ステップS150)。なお、結果ステップS130において最高評価が更新されないと判定された場合、ステップS140を行わずにステップS150へ移行する。
【0057】
ステップS150において、繰り返し回数が終了していないと判定された場合、ステップS110から再び処理が繰り返される。ステップS150において、繰り返し回数が終了したと判定された場合、推定結果採用部34は、ステップS120の評価結果に基づいて、推定結果として採用する採用自己位置を演算する(ステップS160:推定結果採用ステップ)。ステップS160では、最後に第1の暫定自己位置として設定されていたもの、すなわちカウント数が最も大きかったものを採用自己位置として決定する。以上により、
図12に示す制御処理が終了する。
【0058】
次に、
図13を参照して、信頼度を演算するための詳細な制御処理内容について詳細に説明する。まず、推定部32は、三つの特徴点と、データベースとをマッチングさせることで移動体の評価用自己位置を推定する(ステップS210:推定ステップ)。次に、評価部33は、ステップS210で推定された評価用自己位置を評価する(ステップS220:評価ステップ)。次に、評価部33は、ステップS220において新たに評価した評価用自己位置の評価値が、既存の最高評価値を更新したか否かを判定する(ステップS230)。ステップS230において、最高評価が更新されたと判定された場合、評価部33は、第2の暫定自己位置を更新する(ステップS240)。ステップS210~S240では、
図12に示すステップS110~S140と同様な処理が行われる。
【0059】
その後、推定結果採用部34は、予め設定した1グループ分の繰り返し回数が終了したか否かを判定する(ステップS250)。1グループ分の繰り返し回数は、例えば、
図12のステップS150で設定された繰り返し回数の10分の1に設定されてよい。この場合、選定部36は、10グループ分の選定自己位置を選定することができる。なお、グループ数は特に限定されない。ステップS250において、繰り返し回数が終了していないと判定された場合、ステップS210から再び処理が繰り返される。なお、結果ステップS230において最高評価が更新されないと判定された場合、ステップS240を行わずにステップS250へ移行する。
【0060】
ステップS250において、1グループ分の繰り返し回数が終了したと判定された場合、選定部36は、1グループ分の複数の評価用自己位置の中から、ステップS220の評価結果に基づいて、信頼度演算用の選定自己位置を選定して、バッファに格納する(ステップS260)。ステップS260では、最後に第2の暫定自己位置として設定されていたもの、すなわち、グループの中でカウント数が最も大きかったものを選定自己位置として選定する。
【0061】
ステップS260の後、選定部36は、全グループから選定自己位置を選定したか否かを判定する(ステップS270)。ステップS270において、全グループが終了していないと判定された場合、再びステップS210へ移行する。このとき、ステップS240の第2の暫定自己位置は初期化する。これにより、次のグループについての選定自己位置が選定されて、バッファに格納される。
【0062】
ステップS270において、全グループが終了したと判定された場合、信頼度演算部37は、複数の選定自己位置のばらつきに基づいて、採用自己位置の信頼度を演算する(ステップS280:信頼度演算ステップ)。ステップS280では、信頼度演算部37は、バッファに格納された複数の選定自己位置を取り出すと共に、これらの複数の選定自己位置のばらつきを演算する。ステップS280の処理が終了したら、
図13に示す制御処理が終了する。
【0063】
次に、本実施形態に係る自己位置推定装置1、移動体50、自己位置推定方法、及び自己位置推定プログラムの作用・効果について説明する。
【0064】
自己位置推定装置1は、取得された画像から抽出された特徴と、予め位置情報と特徴とを関連付けたデータベースとをマッチングさせることで移動体50の自己位置を推定するためのものである。ここで、推定部32は、少なくとも三つの特徴点FPと、データベースとをマッチングさせることで移動体50の評価用自己位置を推定する。これに対し、評価部33は、推定部32で推定された評価用自己位置を評価する。推定結果採用部34は、評価部33の評価結果に基づいて、推定結果として採用する採用自己位置を演算する。このように、推定結果採用部34は、評価が高い評価用自己位置を用いて、採用自己位置を演算することが可能となる。これに対し、選定部36は、複数の評価用自己位置の中から、評価部33の評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する。そして、信頼度演算部37は、複数の選定自己位置のばらつきに基づいて、採用自己位置の信頼度を演算する。このように、信頼度演算部37は、採用自己位置の評価だけを考慮するのではなく、複数の選定自己位置を考慮して信頼度を演算することで、信頼度の精度を向上できる。このように、精度の良い信頼度を演算することにより、当該信頼度を有効に用いることによって、移動体50の自動走行の運用の質を向上させることができる。
【0065】
例えば、自己位置の信頼度の演算が可能となることで、信頼度が低い推定結果については、制御や他の演算に使用できないようにすることができる。また、自己位置の信頼度の演算が可能となることで、自己位置の推定精度が悪化する環境や場所を事前に把握することができる。また、推定誤差と信頼度の相関が得られるようになるため、推定結果の重みを変更することが可能となる。また、信頼度の演算のための評価部33による演算は、もともと採用自己位置を演算する上で必要であった演算過程を利用することができるため、演算の負荷の増加を抑制できる。
【0066】
選定部36は、複数の評価用自己位置を複数のグループに分け、それぞれのグループ内の複数の評価用自己位置の中から、一つの選定自己位置を選定してよい。このように、全ての評価用自己位置を信頼度の演算に用いるのではなく、選定部36が各グループの中から一つの選定自己位置を選定することで、演算の負荷を低減することができる。また、信頼度の精度を向上させることもできる。
【0067】
評価部33は、評価用自己位置に対応する画像座標に対して、自己位置推定に用いられなかった複数の特徴点FPを再投影して誤差を演算し、当該誤差が所定の閾値以下となる特徴点のカウント数を取得することによって、評価を行い、選定部36は、カウント数に基づいて選定自己位置を選定してよい。この場合、評価部33は、誤差をカウントするだけのシンプルな演算方法によって、各評価用自己位置の評価を行うことができる。
【0068】
実施形態に係る移動体50は、上述の自己位置推定装置1を備える。
【0069】
本実施形態に係る自己位置推定方法は、取得された画像から抽出された特徴と、予め位置情報と特徴とを関連付けたデータベースとをマッチングさせることで移動体の自己位置を推定するための自己位置推定方法であって、画像を取得する画像取得ステップと、画像取得ステップで取得された画像から特徴点を抽出する抽出ステップと、少なくとも三つの特徴点と、データベースとをマッチングさせることで移動体の評価用自己位置を推定する推定ステップと、推定ステップで推定された評価用自己位置を評価する評価ステップと、評価ステップの評価結果に基づいて、推定結果として採用する採用自己位置を演算する推定結果採用ステップと、複数の評価用自己位置の中から、評価ステップの評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する選定ステップと、複数の選定自己位置のばらつきに基づいて、採用自己位置の信頼度を演算する信頼度演算ステップと、を備える。
【0070】
本実施形態に係る自己位置推定プログラムは、取得された画像から抽出された特徴と、予め位置情報と特徴とを関連付けたデータベースとをマッチングさせることで移動体の自己位置を推定するための自己位置推定プログラムであって、画像を取得する画像取得ステップと、画像取得ステップで取得された画像から特徴点を抽出する抽出ステップと、少なくとも三つの特徴点と、データベースとをマッチングさせることで移動体の評価用自己位置を推定する推定ステップと、推定ステップで推定された評価用自己位置を評価する評価ステップと、評価ステップの評価結果に基づいて、推定結果として採用する採用自己位置を演算する推定結果採用ステップと、複数の評価用自己位置の中から、評価ステップの評価結果に基づいて、信頼度演算用の複数の選定自己位置を選定する選定ステップと、複数の選定自己位置のばらつきに基づいて、採用自己位置の信頼度を演算する信頼度演算ステップと、を制御部に実行させる。
【0071】
これらの移動体50、自己位置推定方法、及び自己位置推定プログラムによれば、上述の自己位置推定装置1と同様な効果を得ることができる。
【0072】
本発明は、上述の実施形態に限定されるものではない。
【0073】
例えば、上述の実施形態では、ステップS280において、バッファに格納された全ての選択自己位置を用いて信頼度を演算した。しかし、信頼度演算部37は、複数の選定自己位置のうち、他に比べて乖離が大きいものを除外して、信頼度を演算してよい。すなわち、信頼度演算部37は、平均値から明かにはずれている選択自己位置については、一度除外した上で、残りの選択自己位置を用いてばらつきを演算してよい。選定部36は、グループ分けされた少ない数の評価用自己位置の中から選定自己位置を選定している。そのため、他の選定自己位置からの乖離が大きくなってしまうものが発生し得る。信頼度演算部37は、このような明かに信頼度の精度を低下させるような乖離の大きい選定自己位置を除外することで、信頼度の精度を向上できる。
【0074】
上述の実施形態では、推定部32は、全ての特徴点を用いて自己位置を推定した。しかし、推定部32は、複数の特徴点の中から、推定精度を低下させるものを除外して推定を行ってよい。例えば、推定部32は、数回の計算の後で、評価部33によるカウントの際に、一度もカウントされていない特徴点が存在している場合、当該特徴点は推定精度を低下させるものとして除外する。無数の特徴点の中には、自己位置推定に用いてしまうと、自己位置推定の推定精度が低下してしまうような、精度の悪い特徴点も含まれるため、そのような特徴点を演算から除外できる。従って、自己位置の推定精度、及び信頼度の精度を向上できる。
【0075】
また、推定部32は、ランダムに三つの特徴点を選ぶ際、
図14(a)の左側に示すように、角度差が小さい三点を選んでしまうと、誤差が大きくなって自己位置の推定精度が低下する。従って、推定部32は、
図14(a)の右側に示すように、角度差を大きくして誤差が小さくなるように、角度差を考慮して三点を選んでよい。
【0076】
また、推定結果採用部34は、最もカウント数が大きい評価用自己位置を採用自己位置とした。これに代えて、推定結果採用部34は、他の演算方法によって採用自己位置を演算してよい。例えば、推定結果採用部34は、複数の選定自己位置を平均することによって、採用自己位置を演算してよい。
【0077】
上述の実施形態では、移動体50に自己位置推定装置の構成要素が全て含まれていた。これに代えて、管理部2が自己位置推定装置の一部の機能を有してもよい。
【符号の説明】
【0078】
1…自己位置推定装置、12…カメラ(画像取得部)、31…抽出部、32…推定部、33…評価部、34…推定結果採用部、36…選定部、37…信頼度演算部、50…移動体。