(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】移動体
(51)【国際特許分類】
G05D 1/43 20240101AFI20240730BHJP
【FI】
G05D1/43
(21)【出願番号】P 2018155202
(22)【出願日】2018-08-22
【審査請求日】2021-04-02
【審判番号】
【審判請求日】2022-12-07
(73)【特許権者】
【識別番号】000000262
【氏名又は名称】株式会社ダイヘン
(74)【代理人】
【識別番号】100115749
【氏名又は名称】谷川 英和
(74)【代理人】
【識別番号】100121223
【氏名又は名称】森本 悟道
(72)【発明者】
【氏名】檀上 梓紗
(72)【発明者】
【氏名】巳波 敏生
(72)【発明者】
【氏名】深江 唯正
【合議体】
【審判長】鈴木 貴雄
【審判官】渋谷 善弘
【審判官】田々井 正吾
(56)【参考文献】
【文献】特開2012-64131(JP,A)
【文献】特開2008-40677(JP,A)
【文献】特開2004-45051(JP,A)
【文献】特開2015-108604(JP,A)
【文献】特開2013-164754(JP,A)
【文献】国際公開第2017/145711(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G05D1/43
(57)【特許請求の範囲】
【請求項1】
自律的に移動する移動体であって、
前記移動体の周囲の撮影画像を取得する撮影部と、
前記撮影画像の取得時点を示す時点情報を取得する時点情報取得部と、
前記撮影画像から特徴点を抽出し、当該抽出した特徴点と、前記移動体の移動領域における特徴点の位置を示す
visual-SLAM(Simultaneous Localization and Mapping)の環境地図である地図とを用いた
visual-SLAMの位置推定によって前記移動体の現在位置を取得し、前記抽出した特徴点を用いて前記地図を更新する現在位置取得部と、
前記撮影画像から抽出された特徴点と当該撮影画像に対応する時点情報とを用いて、前記地図に含まれる特徴点のうち、5分以上の時間間隔をあけた複数の撮影画像から抽出された特徴点を不変特徴点に設定する特徴点管理部と、
前記移動体を移動させる移動機構と、
前記現在位置を用いて前記移動機構を制御する移動制御部と、を備え、
前記現在位置取得部は、前記不変特徴点に設定された特徴点を優先的に用いて現在位置を取得する、移動体。
【請求項2】
前記特徴点管理部は、前記地図に含まれる特徴点のうち、5分以上の時間間隔をあけた複数の撮影画像から抽出された特徴点であり、かつ、抽出漏れの少ない特徴点を、不変特徴点に設定する、請求項1記載の移動体。
【請求項3】
前記現在位置取得部は、前記不変特徴点に設定された特徴点のみを用いて現在位置を取得する、請求項1または請求項2記載の移動体。
【請求項4】
前記現在位置取得部は、前記現在位置の取得において、前記不変特徴点に設定された特徴点の重みを、前記不変特徴点に設定されていない特徴点の重みよりも大きくする、請求項1または請求項2記載の移動体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮影画像を用いて現在位置を取得する移動体に関する。
【背景技術】
【0002】
撮影画像を用いた自己位置推定においては、撮影画像から特徴点を抽出し、その特徴点を用いて自己位置を推定している。そのような自己位置推定において、精度を向上させるために、位置の変化にロバストな不変特徴量を抽出することが行われている(特許文献1参照)。より具体的には、連続して撮影された連続画像間でマッチングを取ることができる特徴量を用いて、不変特徴量を抽出することが行われている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来例では、連続して撮影された連続画像を用いているため、例えば、その連続画像に含まれる一時的な特徴点、例えば、移動可能な移動体や人物などの特徴点を抽出する可能性もある。そして、そのような特徴点の抽出を行った場合には、周囲の環境が変化したとき(例えば、移動体が移動してしまったときなど)に、同様の特徴点が抽出されないことになり、位置推定の精度が低下する可能性があった。
【0005】
本発明は、上記課題を解決するためになされたものであり、位置推定の精度を向上させることができる移動体を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明による移動体は、自律的に移動する移動体であって、移動体の周囲の撮影画像を取得する撮影部と、撮影画像の取得時点を示す時点情報を取得する時点情報取得部と、撮影画像から特徴点を抽出し、抽出した特徴点と、移動体の移動領域における特徴点の位置を示す地図とを用いた位置推定によって移動体の現在位置を取得し、抽出した特徴点を用いて地図を更新する現在位置取得部と、撮影画像から抽出された特徴点と撮影画像に対応する時点情報とを用いて、地図に含まれる特徴点のうち、所定の時間間隔をあけた複数の撮影画像から抽出された特徴点を不変特徴点に設定する特徴点管理部と、移動体を移動させる移動機構と、現在位置を用いて移動機構を制御する移動制御部と、を備え、現在位置取得部は、不変特徴点に設定された特徴点を優先的に用いて現在位置を取得する、ものである。
このような構成により、所定の時間間隔をあけて撮影された複数の撮影画像に含まれる同じ特徴点を不変特徴点とすることができ、例えば、一時的にしか存在しない移動体や人物などの特徴点を除外して、壁や移動環境に設置されている物などの特徴点を不変特徴点に設定することができる。そして、そのような不変特徴点を優先的に用いて現在位置を取得することによって、より精度の高い現在位置の取得を実現することができる。
【0007】
また、本発明による移動体では、特徴点管理部は、地図に含まれる特徴点のうち、所定の時間間隔をあけた複数の撮影画像から抽出された特徴点であり、かつ、抽出漏れの少ない特徴点を、不変特徴点に設定してもよい。
このような構成により、例えば、一定の間隔で巡回しているAGVなどに関する特徴点を不変特徴点から除外することができる。
【0008】
また、本発明による移動体では、現在位置取得部は、不変特徴点に設定された特徴点のみを用いて現在位置を取得してもよい。
このような構成により、環境の変化の影響を受けない特徴点を用いて現在位置を取得できるため、精度の高い現在位置の取得を実現することができる。
【0009】
また、本発明による移動体では、現在位置取得部は、現在位置の取得において、不変特徴点に設定された特徴点の重みを、不変特徴点に設定されていない特徴点の重みよりも大きくしてもよい。
このような構成により、環境の変化の影響を受けない特徴点の重みが大きくなるため、不変特徴点の重みを大きくしない場合と比較して、精度の高い現在位置の取得を実現することができる。
【発明の効果】
【0010】
本発明による移動体によれば、撮影画像を用いた位置推定の精度を向上させることができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施の形態による移動体の構成を示すブロック図
【
図2】同実施の形態による移動体の動作を示すフローチャート
【
図3】同実施の形態における不変特徴点かどうかの判断について説明するための図
【
図4】同実施の形態における撮影画像上の特徴点と地図に含まれる特徴点との対応関係の一例を示す図
【
図5A】同実施の形態における特徴点管理情報の一例を示す図
【
図5B】同実施の形態における特徴点管理情報の一例を示す図
【
図5C】同実施の形態における特徴点管理情報の一例を示す図
【
図5D】同実施の形態における特徴点管理情報の一例を示す図
【発明を実施するための形態】
【0012】
以下、本発明による移動体について、実施の形態を用いて説明する。なお、以下の実施の形態において、同じ符号を付した構成要素及びステップは同一または相当するものであり、再度の説明を省略することがある。本実施の形態による移動体は、時間的に変化しない不変特徴点を優先的に用いて位置推定を行うものである。
【0013】
図1は、本実施の形態による移動体1の構成を示すブロック図である。本実施の形態による移動体1は、自律的に移動するものであって、撮影部11と、時点情報取得部12と、記憶部13と、現在位置取得部14と、特徴点管理部15と、移動機構16と、移動制御部17とを備える。なお、移動体1が自律的に移動するとは、移動体1がユーザ等から受け付ける操作指示に応じて移動するのではなく、自らの判断によって目的地に移動することであってもよい。その目的地は、例えば、手動で決められたものであってもよく、または、自動的に決定されたものであってもよい。また、その目的地までの移動は、例えば、移動経路に沿って行われてもよく、または、そうでなくてもよい。また、自らの判断によって目的地に移動するとは、例えば、進行方向、移動や停止などを移動体1が自ら判断することによって、目的地まで移動することであってもよい。また、例えば、移動体1が、障害物に衝突しないように移動することであってもよい。移動体1は、例えば、台車であってもよく、移動するロボットであってもよい。ロボットは、例えば、エンターテインメントロボットであってもよく、監視ロボットであってもよく、搬送ロボットであってもよく、清掃ロボットであってもよく、動画や静止画を撮影するロボットであってもよく、その他のロボットであってもよい。
【0014】
撮影部11は、移動体1の周囲の撮影画像を取得する。撮影部11は、例えば、進行方向の向きの撮影画像を取得してもよい。進行方向の撮影画像はより変化の小さいものになるため、位置推定に用いるのに好適だからである。撮影部11は、例えば、CCDイメージセンサやCMOSイメージセンサなどのイメージセンサを用いて撮影画像を取得してもよい。また、撮影部11は、イメージセンサ上に結像させるためのレンズ等の光学系を含んでいてもよい。また、撮影部11は、単眼であってもよく、双眼(ステレオカメラ)であってもよい。本実施の形態では、撮影部11が単眼である場合について主に説明する。撮影部11は、通常、動画を撮影するもの、すなわち、連続した画像フレームを取得するものである。移動している移動体1の現在位置を取得するために撮影画像を取得することから、そのフレームレートは、移動速度に対して十分大きいものであることが好適である。例えば、フレームレートは、約30fpsなどであってもよい。
【0015】
時点情報取得部12は、撮影画像の取得時点を示す時点情報を取得する。時点情報取得部12は、例えば、撮影部11から撮影を行った旨を受け取り、それに応じて時点情報を取得してもよい。時点情報は、例えば、時間(時刻)を含んでもよく、年月日と時間とを含んでもよい。時間は、例えば、図示しない時計部から取得されてもよい。年月日は、例えば、図示しないカレンダー部から取得されてもよい。本実施の形態では、時点情報が時間である場合について主に説明する。その時間は、例えば、時分秒であってもよく、さらにフレームを含んでいてもよい。時点情報が時分秒フレームで示される場合(例えば、タイムコードの場合)には、例えば、10:19:20:26のように示される。その時点情報(タイムコード)は、10時19分20秒26フレームの意味である。
【0016】
記憶部13では、撮影画像を用いた位置推定に必要な情報などが記憶される。記憶部13では、例えば、特徴点の位置を示す地図が記憶されていてもよい。その地図は、visual-SLAM(Simultaneous Localization and Mapping)において用いられる環境地図として知られている。その地図は、例えば、ORB-SLAMにおいて用いられる特徴点(map point)を含む地図であってもよい。また、記憶部13では、例えば、特徴点の管理に用いられる情報である特徴点管理情報が記憶されていてもよい。特徴点管理情報については後述する。記憶部13での記憶は、RAM等における一時的な記憶でもよく、または、長期的な記憶でもよい。記憶部13は、所定の記録媒体(例えば、半導体メモリや磁気ディスクなど)によって実現されうる。
【0017】
現在位置取得部14は、撮影部11によって取得された撮影画像から特徴点を抽出する。その特徴点は、例えば、FASTキーポイントや、SIFTキーポイント、SURFキーポイント等であってもよく、撮影画像を用いた位置推定で用いられるその他の特徴点であってもよい。本実施の形態では、現在位置取得部14がORB-SLAMと同様の自己位置推定を行う場合について主に説明する。ORB-SLAMの場合には、現在位置取得部14は、所定個数のFASTキーポイントである特徴点を撮影画像から抽出することになる。なお、FASTキーポイント、SIFTキーポイント、SURFキーポイント、ORB-SLAMにおける特徴点については、以下の文献1~4をそれぞれ参照されたい。
【0018】
文献1:Edward Rosten, Tom Drummond, "Machine learning for high-speed corner detection", in 9th European Conference on Computer Vision, vol. 1, 2006, pp. 430-443.
文献2:D. Lowe, "Distinctive image features from scale-invariant keypoints", Int. Journal of Computer Vision (2004), 60(2), pp. 91-110.
文献3:H. Bay, A. Ess, T. Tuytelaars, L. Van Gool, "SURF: Speeded Up Robust Features", Computer Vision and Image Understanding (CVIU) (2008), 110(3), pp. 346-359.
文献4:Ethan Rublee, Vincent Rabaud, Kurt Konolige, Gary R. Bradski, "ORB: An efficient alternative to SIFT or SURF", ICCV 2011, pp. 2564-2571.
【0019】
現在位置取得部14は、撮影画像から抽出した特徴点と、記憶部13で記憶されている、移動体1の移動領域における特徴点の位置を示す地図とを用いた位置推定によって移動体1の現在位置を取得する。すなわち、位置推定の結果が移動体1の現在位置となる。また、現在位置取得部14は、抽出した特徴点を用いて地図を更新する。なお、visual-SLAMにおける位置推定及び地図の更新はすでに公知であり、その詳細な説明を省略する。例えば、ORB-SLAMにおける位置推定(tracking)及び地図の更新(local mapping)については、次の文献を参照されたい。
文献:R. Mur-Artal, J.M. Montiel, J.D. Tardos, "ORB-SLAM: A Versatile and Accurate Monocular SLAM System", IEEE Transactions on Robotics 31 (2015), pp. 1147-1163.
【0020】
なお、現在位置取得部14は、後述する不変特徴点に設定された特徴点を優先的に用いて、撮影画像から抽出した特徴点を用いた現在位置の取得を行う。具体的には、現在位置取得部14は、不変特徴点に設定された特徴点のみを用いて現在位置を取得してもよい。この場合には、現在位置取得部14は、撮影画像から抽出した特徴点と、地図に含まれる特徴点のうち、不変特徴点に設定されている特徴点とのマッチングのみを行ってもよい。このような現在位置の取得を行うことによって、取得した現在位置が高い精度となる。
【0021】
一方、不変特徴点に設定された特徴点のみを用いた現在位置の取得を行うためには、多くの特徴点が不変特徴点に設定されている必要がある。したがって、不変特徴点の個数が多くない場合には、現在位置取得部14は、例えば、不変特徴点と不変特徴点に設定されていない特徴点とを用いて現在位置を取得してもよく、または、現在位置の取得において、不変特徴点に設定された特徴点の重みを、不変特徴点に設定されていない特徴点の重みよりも大きくしてもよい。なお、不変特徴点の個数に関わらず、このような現在位置の取得が行われてもよい。
【0022】
不変特徴点と不変特徴点に設定されていない特徴点とを用いる場合には、現在位置取得部14は、例えば、地図において、不変特徴点と、そうでない特徴点との合計数があらかじめ決められた個数となるまで、不変特徴点に設定されていない特徴点を選択し、その選択した特徴点と、不変特徴点とを用いて現在位置の取得を行ってもよい。すなわち、現在位置取得部14は、すべての不変特徴点と、そうでない一部の特徴点とを用いて現在位置の取得を行ってもよい。その特徴点の選択は、例えば、ランダムに行われてもよく、不変特徴点の密度の低い箇所においてより多くの特徴点が選択されるように行われてもよく、その他の方法によって行われてもよい。
【0023】
また、現在位置取得部14が、不変特徴点の重みを、そうでない特徴点の重みよりも大きくすることによって現在位置を取得する処理について簡単に説明する。自己位置推定においては、例えば、撮影画像において抽出された特徴点の位置と、その特徴点にマッチングする、地図に含まれる特徴点を撮影画像に投影した位置との差(距離)の2乗の総和(マッチング関係にある特徴点のペアに関する総和)が、最も小さくなるように撮影部11の位置(例えば、撮影部11の回転行列や並進ベクトル)が算出される(非線形解法)。したがって、2個の位置の差の2乗について総和を算出する際に、不変特徴点に関する2個の位置の差の2乗については、そうでない特徴点に関する2個の位置の差の2乗よりも大きい重みを設定するようにしてもよい。なお、移動体1における撮影部11の位置は既知であるため、撮影部11の位置を移動体1の現在位置に変換できることは言うまでもない。
【0024】
特徴点管理部15は、現在位置取得部14によって撮影画像から抽出された特徴点と、その撮影画像に対応する時点情報とを用いて、地図に含まれる特徴点のうち、所定の時間間隔をあけた複数の撮影画像から抽出された特徴点を不変特徴点に設定する。撮影画像に対応する時点情報とは、その撮影画像の取得時点(撮影時点)を示す時点情報のことであり、時点情報取得部12によって取得されたものである。また、所定の時間間隔をあけた複数の撮影画像とは、ある撮影画像の取得時点と、次の撮影画像の取得時点との間隔が、所定の時間間隔以上である複数の撮影画像のことである。次の撮影画像とは、取得時点順に並べられた複数の撮影画像における次の取得時点の撮影画像である。なお、ここでは、地図に含まれる特徴点と、撮影画像から抽出された特徴点とがマッチングによって紐付けられる場合に、両特徴点が同じ特徴点であるとして説明している。一方、両特徴点、すなわち地図に含まれる特徴点と、撮影画像から抽出された特徴点とを区別すると、特徴点管理部15は、地図に含まれる特徴点のうち、所定の時間間隔をあけた複数の撮影画像から抽出された各特徴点とそれぞれマッチングした地図上の特徴点を、不変特徴点に設定することになる。そのマッチングは、現在位置取得部14によって行われてもよい。
【0025】
移動体1では、撮影画像の取得と、撮影画像からの特徴点の抽出と、特徴点を用いた現在位置の取得とが連続してリアルタイムで実行されることになる。したがって、通常、ある撮影画像の取得時点と、その撮影画像からの特徴点の抽出時点とは、略同一の時点となる。そのため、特徴点管理部15は、撮影画像の取得時点と、その撮影画像からの特徴点の抽出時点とが同じであるとして、上記の処理を行ってもよい。すなわち、特徴点管理部15は、地図に含まれる特徴点のうち、所定の時間間隔をあけて複数回抽出された特徴点を不変特徴点に設定してもよい。
【0026】
不変特徴点の設定は、結果として、ある特徴点が不変特徴点であるのかどうかが分かるのであれば、どのような方法によって行われてもよい。例えば、地図に含まれる特徴点に対して、不変特徴点であるかどうかを示すフラグ等の情報が追記されてもよく、または、特徴点を識別する情報と、不変特徴点であるかどうかを示すフラグ等の情報とが対応付けられて記憶されてもよい。本実施の形態では、後者の場合について主に説明する。
【0027】
図3(a)は、不変特徴点かどうかの判断について説明するための図である。上記のとおり、地図に含まれるある特徴点が不変特徴点であるための条件は、その特徴点とマッチングする特徴点が、所定の時間間隔をあけたN個の撮影画像から抽出されることである。ここで、Nは2以上の整数である。例えば、
図3(a)で示されるように、地図に含まれる特徴点A1とマッチングする特徴点が、時間T11,T12,T13において撮影された撮影画像から少なくとも抽出されており、また、時間T11,T12の間隔、及び時間T12,T13の間隔が、あらかじめ決められた閾値の時間間隔TH以上であるとする。すると、特徴点A1は、時間間隔THをあけた3個の撮影画像から抽出されたことになるため、不変特徴点に設定されることになる。なお、ここでは、N=3としている。また、時間間隔THは、例えば、5分や10分、30分等に設定されてもよい。例えば、移動体1の移動領域に他の移動体や人間などの移動し得る障害物が存在することもあり、撮影画像から、それらの移動し得る障害物の特徴点が抽出され、地図に追加されることもあり得る。しかしながら、そのような特徴点は、時間的に不変な特徴点ではないため、そのような特徴点を用いて現在位置を取得した場合には、現在位置の精度が低下することになる。したがって、そのような移動し得る障害物の特徴点ではない特徴点、すなわち時間的に変化しない特徴点を、不変特徴点に設定するため、
図3(a)で説明したように、所定の時間間隔をあけて複数回にわたって抽出されたことを条件とすることは適切であると考えられる。
【0028】
一方、工場などにおいては、AGV(Automated Guided Vehicle)などのように、あらかじめ決められたステーション間を定期的に巡回している障害物も存在する。工場でなくても、路線バスなどのように、定期的に同じ場所に存在する障害物もある。また、シャッターや扉などのように変化し得る物もある。そのようなことに対応して、例えば、ステーションに停止しているAGVや、閉じているシャッターに関して、所定の時間間隔をあけた複数回の特徴点の抽出が行われることも考えられる。しかしながら、AGVは移動し得る障害物であり、シャッターは変化し得る物であるため、そのAGVや閉じているシャッターから取得された地図上の特徴点を用いて現在位置の取得を行う場合には、精度が低くなり得ることになる。例えば、AGVがステーションに存在していない時に撮影された撮影画像や、シャッターが開いている時に撮影された撮影画像を用いた位置推定を行う場合に、精度が低くなり得る。そのため、定期的に巡回している障害物や、変化し得る物から抽出された特徴点は、現在位置の取得に用いないようにすることが好適である。したがって、特徴点管理部15は、地図に含まれる特徴点のうち、所定の時間間隔をあけた複数の撮影画像から抽出された特徴点であり、かつ、抽出漏れの少ない特徴点を、不変特徴点に設定してもよい。
【0029】
ここで、抽出漏れについて、
図4を用いて説明する。
図4において、地図に特徴点A~Dが含まれており、撮影画像において、特徴点a~cが特定されているとする。また、撮影画像において特定された特徴点と、地図に含まれる特徴点(map point)、すなわち地図によって位置が示される特徴点との特徴量(特徴記述子:feature descriptor)を用いたマッチングによって、撮影画像において特定された特徴点a~cは、それぞれ地図に含まれる特徴点A~Cに対応することになったとする。そのマッチングは、現在位置の取得のため(例えば、ORB-SLAMにおける位置推定のため)に行われてもよく、または、不変特徴点の設定のために行われてもよい。なお、地図には特徴点Dも含まれていたとする。本来であれば、地図の特徴点Dに対応する特徴点dが撮影画像に含まれているはずであるが、
図4で示される撮影画像には、特徴点dが含まれていなかったとする。すると、その撮影画像において、特徴点dは、本来、抽出されるはずの特徴点であるが、抽出されなかったことになるため、抽出漏れの特徴点となる。もう少し詳細に記載すると、地図に含まれる特徴点Dを撮影画像に投影した位置の近傍に、特徴点Dの特徴量と類似した特徴量を有する特徴点が抽出されていない場合には、特徴点Dは抽出漏れであると判断されてもよい。
【0030】
なお、そのような抽出漏れの特徴点となる理由としては、上記のように、AGVなどの移動し得る障害物やシャッターなどの変化し得る物から特徴点Dが取得されたことを挙げられるが、それ以外にも、特徴点Dに対応する物体と、移動体1の撮影部11との間に人間などの障害物が存在していることもあり得る。さらに、撮影が逆光で行われた場合に、撮影画像の一部の領域が白とびとなることもある。そのような場合に、その白とびの領域から特徴点を適切に抽出できないことも、抽出漏れの原因となり得る。したがって、地図に含まれている特徴点が1回でも抽出漏れとなった場合に、その特徴点は不変特徴点ではないと判断するのではなく、地図に含まれている特徴点が何回も抽出漏れとなった場合に、その特徴点は不変特徴点ではないと判断することが好適である。そのため、上記のとおり、地図に含まれるある特徴点が不変特徴点であるための条件は、その特徴点とマッチングする特徴点が、所定の時間間隔をあけたN個の撮影画像から抽出され、かつ、その地図に含まれる特徴点の抽出漏れが少ないことであってもよい。なお、抽出漏れが少ないとは、所定の期間において、抽出漏れとなる撮影画像の個数があらかじめ決められた閾値より少ないことであってもよく、または、抽出漏れとなる撮影画像の割合があらかじめ決められた閾値より少ないことであってもよい。所定の期間は、例えば、N個の撮影画像に関する最初の撮影画像の取得時点から、最後の撮影画像の取得時点までの期間であってもよく、時点情報取得部12における時点情報の取得が開始されてから判断時点までの全期間であってもよく、単位期間であってもよく、その他の期間であってもよい。所定の期間が単位期間である場合には、単位期間あたりの抽出漏れとなる撮影画像の個数が閾値より少ない場合に、抽出漏れが少ないと判断されてもよい。抽出漏れとなる撮影画像の割合とは、例えば、注目している特徴点に関して、その特徴点が抽出された撮影画像の個数に対する、抽出漏れとなった撮影画像の割合であってもよく、撮影画像の全個数に対する、その特徴点が抽出漏れとなった撮影画像の割合であってもよい。
【0031】
図3(b)は、抽出漏れの少ないことも条件となっている場合における不変特徴点かどうかの判断について説明するための図である。ここでは、地図に含まれるある特徴点が不変特徴点であるための条件は、その特徴点とマッチングする特徴点が、所定の時間間隔をあけたN個の撮影画像から抽出され、かつ、全期間において、その地図に含まれる特徴点の抽出漏れがM回以下であることであるとする。Mは1以上の整数であるが、上記のとおり、2以上であることが好適である。例えば、
図3(b)で示されるように、地図に含まれる特徴点A2とマッチングする特徴点が、時間T21,T22,T23において撮影された撮影画像から少なくとも抽出されているが、時間T21,T22の間において、特徴点A2について2回の抽出漏れがあり、また、時間T22,T23の間においても、特徴点A2について2回の抽出漏れがあったとする。但し、時間T21,T22の間隔、及び時間T22,T23の間隔は、あらかじめ決められた閾値の時間間隔TH以上であるとする。すると、Mが3に設定されており、Nが3に設定されている場合には、
図3(b)で示される状況では、所定の時間間隔をあけた3個の撮影画像から特徴点A2にマッチングする特徴点が抽出されることは満たされているが、全期間において特徴点A2の抽出漏れが3回以下であることについては満たされていないことになる。その結果、特徴点A2について、不変特徴点の条件が満たされないことになり、特徴点A2は、不変特徴点に設定されないことになる。
【0032】
なお、N、Mは、不変特徴点の設定が適切に行われるように決められることが好適である。例えば、Nを大きい値に設定することによって、より精度の高い不変特徴点の設定を行うことができるが、不変特徴点の個数が少なくなる可能性がある。一方、例えば、Nを小さい値に設定することによって、より多くの不変特徴点の設定が行われるようにすることができるが、不変特徴点の精度が低くなる可能性がある。また、例えば、Mを小さい値にすることによって、より精度の高い不変特徴点の設定を行うことができるが、本来であれば不変特徴点に設定されるはずの特徴点が、不変特徴点に設定されないことが起こり得ることになり、その結果として、不変特徴点の個数が少なくなる可能性がある。一方、例えば、Mを大きい値に設定することによって、より多くの不変特徴点の設定が行われるようにできるが、不変特徴点の精度が低くなる可能性がある。したがって、移動体1の移動領域における特性等を踏まえた上で、NやMが適切な値に設定されることが好適である。
【0033】
次に、不変特徴点の設定について、具体例を用いて説明する。この具体例では、記憶部13において、
図5Aで示される特徴点管理情報が記憶されているものとする。
図5Aで示される特徴点管理情報は、特徴点を識別する特徴点識別子と、その特徴点が抽出された撮影画像の取得された時点を示す時点情報と、その特徴点が不変特徴点であるかどうかを示す不変フラグとを対応付けて有する情報である。
【0034】
図5Aにおいて、例えば、特徴点識別子F101で識別される特徴点(以下、「特徴点F101」と呼ぶこともある。他の特徴点についても同様である。)は、時点情報T101,T102,T103,T201,T202で示される時点に取得された撮影画像から抽出されたことになる。なお、角括弧[]で括られた時点情報は、抽出漏れの時点情報であるとする。例えば、特徴点F103は、時点情報T201,T202で示される時点に取得された撮影画像から抽出されるべき特徴点であるが、実際には、上記のような何らかの理由によって抽出されなかったことを示している。
【0035】
不変フラグが「1」である特徴点は不変特徴点であり、不変フラグが「0」である特徴点は不変特徴点ではないものとする。したがって、
図5Aでは、特徴点F101~F104は不変特徴点に設定されていないことになる。
【0036】
次に、
図4で示される撮影画像が撮影部11によって撮影され、その撮影画像に対応する時点情報T203が時点情報取得部12によって取得されたとする。また、現在位置取得部14によって、地図に含まれる特徴点A~Cと、撮影画像から抽出された特徴点a~cとのマッチングが取られたとする。なお、地図に含まれる特徴点Dに対応する特徴点dは、撮影画像から抽出されなかったとする。すなわち、特徴点Dは、抽出漏れであったとする。また、特徴点A,Dがそれぞれ特徴点管理情報における特徴点F101,F103に対応していたとする。すると、特徴点管理部15は、
図5Bの特徴点管理情報で示されるように、特徴点識別子F101に対応付けて時点情報T203を追加し、特徴点識別子F103に対応付けて、抽出漏れがあったことを示す[T203]を追加する。なお、
図5Bでは示されていないが、特徴点B,Cについても、それぞれ時点情報T203が追加されることになる。
【0037】
なお、この具体例では、特徴点が不変特徴点であるための条件が、所定の時間間隔をあけた3個の撮影画像から抽出され、かつ、全期間における抽出漏れが2回以下であることであるとする。また、時点情報TXのXは、撮影画像が取得されるごとに1ずつ大きくなるものとする。また、TX
1とTX
2とに関して、|X
2-X
1|≧40であれば、所定の時間間隔があいていることになるものとする。すると、
図5Bの特徴点管理情報においては、各特徴点F101~F104は、不変特徴点の条件を満たしていないことになり、不変特徴点には設定されないことになる。
【0038】
その後、撮影画像の取得や特徴点の抽出、特徴点のマッチング、特徴点管理情報の更新が繰り返されることによって、特徴点管理情報が
図5Cで示されるようになったとする。
図5Cで示される特徴点管理情報においては、特徴点F101に対応する時点情報T101とT201との間、及び時点情報T201とT301との間は、所定の時間間隔があいていることになる。また、特徴点F101については、抽出漏れも存在しないため、抽出漏れに関する条件も満たしていることになる。したがって、特徴点管理部15は、特徴点F101を不変特徴点に設定する。具体的には、特徴点識別子F101に対応する不変フラグを「1」に変更する。
【0039】
同様に、特徴点F104に対する時点情報T151とT200との間、及び時点情報T200とT300との間も、所定の時間間隔があいていることになる。なお、特徴点F104については、時点情報T153とT200との間に抽出漏れが1回存在するが、全期間における抽出漏れは2回以下であるため、特徴点F104も不変特徴点の条件を満たしていることになる。したがって、特徴点管理部15は、特徴点F104も不変特徴点に設定する。
【0040】
一方、特徴点F102,F103については、不変特徴点の条件を満たしていないため、特徴点管理部15は、それらの特徴点を不変特徴点には設定しないことになる。したがって、特徴点管理部15は、
図5Dで示されるように、特徴点F101,F104に対応する不変フラグを「1」に変更する。この変更によって、現在位置取得部14は、特徴点F101,F104を他の特徴点F102,F103よりも優先的に用いて現在位置の取得を行うことになる。
【0041】
なお、特徴点F103については、時点情報T103,T301の間に3回の抽出漏れが存在するため、抽出漏れに関する条件が満たされないことになる。したがって、特徴点F103が不変特徴点に設定されることは、今後もないことになる。
【0042】
移動機構16は、移動体1を移動させる。移動機構16は、例えば、移動体1を全方向に移動できるものであってもよく、または、そうでなくてもよい。全方向に移動できるとは、任意の方向に移動できることである。移動機構16は、例えば、走行部(例えば、車輪など)と、その走行部を駆動する駆動手段(例えば、モータやエンジンなど)とを有していてもよい。また、移動機構16は、車輪等の速度を取得できる機構、例えば、エンコーダ等を有していてもよい。なお、移動機構16が、移動体1を全方向に移動できるものである場合には、その走行部は、全方向移動車輪(例えば、オムニホイール、メカナムホイールなど)であってもよい。この移動機構16としては、公知のものを用いることができるため、その詳細な説明を省略する。
【0043】
移動制御部17は、現在位置取得部14によって取得された現在位置を用いて移動機構16を制御することによって、移動体1の移動を制御する。移動の制御は、移動体1の移動の向きや、移動の開始・停止などの制御であってもよい。例えば、移動経路が設定されている場合には、移動制御部17は、移動体1がその移動経路に沿って移動するように、移動機構16を制御してもよい。より具体的には、移動制御部17は、現在位置取得部14によって取得される現在位置が、その移動経路に沿ったものになるように、移動機構16を制御してもよい。また、移動制御部17は、地図を用いて、移動の制御を行ってもよい。移動制御部17による移動機構16の制御は公知であるため、その詳細な説明を省略する。
【0044】
次に、移動体1の動作について
図2のフローチャートを用いて説明する。
(ステップS101)現在位置取得部14は、現在位置を取得するかどうか判断する。そして、現在位置を取得する場合には、ステップS102に進み、そうでない場合には、ステップS106に進む。現在位置取得部14は、例えば、現在位置を取得すると定期的に判断してもよい。
【0045】
(ステップS102)撮影部11は、移動体1の周囲の撮影画像を取得する。なお、取得された撮影画像は、図示しない記録媒体で記憶されてもよい。
【0046】
(ステップS103)時点情報取得部12は、取得された撮影画像に対応する時点情報を取得する。なお、取得された時点情報は、図示しない記録媒体で記憶されてもよい。
【0047】
(ステップS104)現在位置取得部14は、取得された撮影画像から特徴点を抽出し、その抽出した特徴点と地図とを用いて現在位置を取得する。また、現在位置取得部14は、撮影画像から抽出した特徴点を用いて地図を更新する。なお、例えば、現在位置の取得は、撮影画像の取得ごとに行われ、地図の更新は、撮影画像の取得が何回か繰り返されるごとに行われてもよい。したがって、現在位置取得部14は、例えば、地図を更新すると判断した場合に、抽出した特徴点を用いた地図の更新を行ってもよい。
【0048】
(ステップS105)特徴点管理部15は、現在位置取得部14によって抽出された特徴点と、地図に含まれる特徴点とのマッチング結果に応じて、記憶部13で記憶されている特徴点管理情報を更新する。特徴点管理情報の具体的な更新方法については、上記のとおりである。そして、ステップS101に戻る。なお、この特徴点管理情報の更新の処理は、撮影ごとに行われなくてもよい。例えば、K回の撮影画像が取得されるごとに、1回の特徴点管理情報の更新が行われてもよい。Kは2以上の整数である。そのような場合に、特徴点管理情報の更新に、K個の撮影画像が用いられてもよく、または、K個未満、例えば、1個の撮影画像が用いられてもよい。
【0049】
(ステップS106)特徴点管理部15は、不変特徴点の設定の処理を行うかどうか判断する。そして、不変特徴点の設定の処理を行う場合には、ステップS107に進み、そうでない場合には、ステップS101に戻る。特徴点管理部15は、例えば、不変特徴点の設定の処理を行うと定期的に判断してもよい。なお、通常、現在位置の取得処理の時間間隔よりも、不変特徴点の設定処理の時間間隔の方が長いことになる。
【0050】
(ステップS107)特徴点管理部15は、カウンタiを1に設定する。
【0051】
(ステップS108)特徴点管理部15は、ステップS106においてYesと判断した際に不変特徴点ではなかった特徴点のうち、i番目の特徴点が不変特徴点の条件を満たしているかどうか判断する。その判断は、特徴点管理情報を用いて行われてもよい。そして、i番目の特徴点が不変特徴点の条件を満たしている場合には、ステップS109に進み、そうでない場合には、ステップS110に進む。
【0052】
例えば、特徴点管理情報が
図5Dで示される場合に、特徴点F101とマッチングする特徴点が、所定の時間間隔をあけた3個の撮影画像から抽出され、かつ、全期間において、特徴点F101の抽出漏れが2回以下であることである不変特徴点の条件を満たすかどうか判断する具体例について説明する。なお、所定の時間間隔については、上記具体例と同様であるとする。特徴点管理部15は、特徴点F101について、まず、撮影画像から抽出された時点を示す1番目の時点情報T101を特定し、その1番目の時点情報T101の示す時点から所定の時間間隔以上後の時点であって、時点情報T101の示す時点に最も近い時点を示す時点情報T201を2番目の時点情報として特定する。同様にして、特徴点管理部15は、2番目の時点情報T201の示す時点から所定の時間間隔以上後の時点であって、時点情報T201の示す時点に最も近い時点を示す時点情報T301を特定する。その特定を行うことができたことによって、特徴点F101とマッチングする特徴点が、所定の時間間隔をあけた3個の撮影画像から抽出されたことの条件は満たされることになる。なお、仮にその条件が満たされないとすると、特徴点管理部15は、1番目の時点情報を時点情報T102,T103…のように順番にずらしながら同様の判断処理を行い、そのすべてについて条件が満たされない場合には、特徴点F101が不変特徴点ではないと判断することになる。次に、特徴点管理部15は、特徴点F101について、抽出漏れが2回以下かどうか判断する。
図5Dでは、特徴点F101について抽出漏れはないため、その条件も満たされることになる。したがって、特徴点F101は、不変特徴点の条件を満たすと判断されることになる。
【0053】
(ステップS109)特徴点管理部15は、i番目の特徴点を不変特徴点に設定する。
【0054】
(ステップS110)特徴点管理部15は、カウンタiを1だけインクリメントする。
【0055】
(ステップS111)特徴点管理部15は、i番目の特徴点が存在するかどうか判断する。そして、i番目の特徴点が存在する場合には、ステップS108に戻り、そうでない場合には、不変特徴点の設定に関する一連の処理が終了したとして、ステップS101に戻る。
【0056】
なお、
図2のフローチャートにおいて、ステップS107~S111の処理では、それまでに不変特徴点に設定されていない特徴点のみを対象とする場合について説明したが、そうでなくてもよい。ステップS107~S111の処理は、すべての特徴点について行われてもよい。また、通常は、それまでに不変特徴点に設定されていない特徴点のみについてステップS107~S111の処理を行い、何回かに1回だけ、すべての特徴点についてステップS107~S111の処理を行うようにしてもよい。そのように、それまでに不変特徴点に設定された特徴点についてもステップS107~S111の処理を行う場合には、特徴点管理部15は、例えば、特徴点管理情報に含まれる情報のうち、現在から所定の期間以内に含まれない情報を用いないで、すなわち古い情報を用いないで不変特徴点の設定に関する処理を行ってもよい。また、不変特徴点に設定されている特徴点についても不変特徴点の条件が満たされているかどうかの判断を行う場合には、特徴点管理部15は、ステップS108において不変特徴点の条件が満たされないと判断したときに、その特徴点の不変特徴点の設定を解除してもよい。このように、不変特徴点についても条件の判断を行うことによって、例えば、現在は不変特徴点の条件を満たさなくなった特徴点について、不変特徴点の設定を解除することができる。より具体的には、不変特徴点に対応する物の前に新たな障害物が設置されたことによって、その不変特徴点が撮影画像に含まれなくなった場合には、その不変特徴点について、不変特徴点の設定が解除されてもよい。また、
図2のフローチャートにおける処理の順序は一例であり、同様の結果を得られるのであれば、各ステップの順序を変更してもよい。また、
図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
【0057】
以上のように、本実施の形態による移動体1によれば、時間的に不変な特徴点を不変特徴点に設定することができる。したがって、一時的にしか存在しない移動体や人間などの特徴点を除外して、壁や設置物などの時間的に変化しない特徴点を不変特徴点に設定することができる。また、不変特徴点の条件として、抽出漏れに関する条件も追加した場合には、巡回している移動体などの特徴点を不変特徴点に設定することも回避できるようになる。さらに、そのようして設定された不変特徴点を優先的に用いて現在位置の取得を行うことによって、現在位置の精度を向上させることができる。一時的にしか存在しない移動体や人間などの特徴点を現在位置の取得に用いる可能性を低減することができるからである。
【0058】
なお、
図4では、撮影画像から抽出された特徴点と、地図に含まれる特徴点(例えば、map point)とのマッチングを直接行う場合について説明したが、そうでなくてもよい。ORB-SLAMのように、複数のキーフレーム(keyframe)が用いられる場合には、現在位置取得部14は、撮影画像から抽出した特徴点と、キーフレームの特徴点とのマッチングを行ってもよい。その場合であっても、キーフレームの特徴点と地図の特徴点(map point)とが結びついているときには、結果として、撮影画像の特徴点と、地図の特徴点(map point)とのマッチングが行われたことと同様になるため、上記のようにして、特徴点管理情報を更新することができ、不変特徴点の設定を行うことができるようになる。
【0059】
また、上記実施の形態において、各処理または各機能は、単一の装置または単一のシステムによって集中処理されることによって実現されてもよく、または、複数の装置または複数のシステムによって分散処理されることによって実現されてもよい。
【0060】
また、上記実施の形態において、各構成要素間で行われる情報の受け渡しは、例えば、その情報の受け渡しを行う2個の構成要素が物理的に異なるものである場合には、一方の構成要素による情報の出力と、他方の構成要素による情報の受け付けとによって行われてもよく、または、その情報の受け渡しを行う2個の構成要素が物理的に同じものである場合には、一方の構成要素に対応する処理のフェーズから、他方の構成要素に対応する処理のフェーズに移ることによって行われてもよい。
【0061】
また、上記実施の形態において、各構成要素が実行する処理に関係する情報、例えば、各構成要素が受け付けたり、取得したり、選択したり、生成したり、送信したり、受信したりした情報や、各構成要素が処理で用いる閾値や数式、アドレス等の情報等は、上記説明で明記していなくても、図示しない記録媒体において、一時的に、または長期にわたって保持されていてもよい。また、その図示しない記録媒体への情報の蓄積を、各構成要素、または、図示しない蓄積部が行ってもよい。また、その図示しない記録媒体からの情報の読み出しを、各構成要素、または、図示しない読み出し部が行ってもよい。
【0062】
また、上記実施の形態において、各構成要素等で用いられる情報、例えば、各構成要素が処理で用いる閾値やアドレス、各種の設定値等の情報がユーザによって変更されてもよい場合には、上記説明で明記していなくても、ユーザが適宜、それらの情報を変更できるようにしてもよく、または、そうでなくてもよい。それらの情報をユーザが変更可能な場合には、その変更は、例えば、ユーザからの変更指示を受け付ける図示しない受付部と、その変更指示に応じて情報を変更する図示しない変更部とによって実現されてもよい。その図示しない受付部による変更指示の受け付けは、例えば、入力デバイスからの受け付けでもよく、通信回線を介して送信された情報の受信でもよく、所定の記録媒体から読み出された情報の受け付けでもよい。
【0063】
また、上記実施の形態において、移動体1に含まれる2以上の構成要素が通信デバイスや入力デバイス等を有する場合に、2以上の構成要素が物理的に単一のデバイスを有してもよく、または、別々のデバイスを有してもよい。
【0064】
また、上記実施の形態において、各構成要素は専用のハードウェアにより構成されてもよく、または、ソフトウェアにより実現可能な構成要素については、プログラムを実行することによって実現されてもよい。例えば、ハードディスクや半導体メモリ等の記録媒体に記録されたソフトウェア・プログラムをCPU等のプログラム実行部が読み出して実行することによって、各構成要素が実現されうる。その実行時に、プログラム実行部は、記憶部や記録媒体にアクセスしながらプログラムを実行してもよい。また、そのプログラムは、サーバなどからダウンロードされることによって実行されてもよく、所定の記録媒体(例えば、光ディスクや磁気ディスク、半導体メモリなど)に記録されたプログラムが読み出されることによって実行されてもよい。また、このプログラムは、プログラムプロダクトを構成するプログラムとして用いられてもよい。また、そのプログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、または分散処理を行ってもよい。
【0065】
また、本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【産業上の利用可能性】
【0066】
以上より、本発明による移動体によれば、より高い精度で現在位置を取得できるという効果が得られ、撮影画像を用いて自己位置推定を行う移動体として有用である。
【符号の説明】
【0067】
1 移動体
11 撮影部
12 時点情報取得部
13 記憶部
14 現在位置取得部
15 特徴点管理部
16 移動機構
17 移動制御部