説明

画像ベースの位置決定

【課題】プラットフォームの位置を識別するための方法および装置を提供する。
【解決手段】プラットフォームが動いている間、プラットフォームに関連するカメラシステムによって生成された一連の画像内の特徴が識別される。カメラシステムのパースペクティブの移動が、一連の画像内の特徴の位置の移動から識別される。プラットフォームの位置の変化が、パースペクティブの移動に基づいて識別される。

【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般には、物体のロケーションおよび方向を識別することに関し、詳細には、動いている物体の位置を識別することに関する。より詳細には、本開示は、物体によって生成された画像を使用して、動いている物体の位置を識別するための方法および装置に関する。
【背景技術】
【0002】
任意の時点の航空機の位置は、3次元空間の航空機のロケーション、航空機の方向、またはロケーションと方向の両方に関して定義することができる。たとえば、航空機のロケーションは、地理座標および航空機の高度によって定義してよい。航空機の方向は、地平線など、所与の線または面に対する飛行機の角度に関して定義してよい。航空機の方向は、姿勢と呼ばれることがある。航空機の姿勢は、ロール、ピッチおよびヨーと呼ばれる3つの自由度に関して表すことができる。
【0003】
航空機の現在位置を決定するために、様々な複雑なシステムが航空機によって使用される。たとえば、航空機の現在のロケーションは、全地球測位システム(GPS:global positioning system)を使用して決定することができる。この場合、航空機の全地球測位システムハードウェアは、いくつかの衛星から信号を受信する受信機を含む。航空機の追加のハードウェアおよびソフトウェアは、受信された衛星信号から、航空機の現在のロケーションを決定する。
【0004】
あるいは、地上のいくつかの知られているロケーションから受信された無線信号から航空機の現在のロケーションを決定するために、航空機の無線航行システムを使用することができる。様々なハードウェア、またはハードウェアおよびソフトウェアシステムを使用して、航空機の方向を決定することもできる。たとえば、電気機械ジャイロスコープシステムを使用して、任意の時点の航空機の姿勢を決定することができる。
【0005】
任務を果たすように航空機を有効に制御するには、航空機の現在位置を正確に知ることが望ましい。しかし、航空機の位置を決定するための現在のシステムおよび方法は、航空機の効率的な動作に影響を及ぼすことがある。さらに、航空機の位置を決定するための現在のシステムおよび方法は、様々な状況で望まれるほど正確には航空機の現在位置を識別しないことがある。たとえば、全地球測位システム(GPS)および無線航行システムは、動作環境において信号が使用不可能であり、または特徴によってブロックされる場合、位置を決定できないことがある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
したがって、上記に論じられた問題、ならびに恐らく他の問題のうちの1つまたは複数を考慮に入れる方法および装置を有することが有利であろう。
【課題を解決するための手段】
【0007】
本開示の有利な一実施形態は、プラットフォームの位置を識別するための方法を提供する。プラットフォームが動いている間、プラットフォームに関連するカメラシステムによって生成された一連の画像内の特徴が識別される。カメラシステムのパースペクティブの移動は、一連の画像内の特徴の位置の移動から識別される。プラットフォームの位置の変化は、パースペクティブの移動に基づいて識別される。
【0008】
有利には、プラットフォームの現在位置を識別するステップは、プラットフォームの位置の変化に基づく。好ましくは、プラットフォームの現在位置を識別するステップは、プラットフォームの位置の変化およびプラットフォームの開始位置に基づいてプラットフォームの現在位置を識別するステップを備える。さらに好ましくは、プラットフォームの動きを制御するステップは、プラットフォームの現在位置に基づく。さらに好ましくは、プラットフォームの位置は、3次元座標系内のプラットフォームのロケーションと、3次元座標系内のプラットフォームの方向とを備える。さらに好ましくは、特徴を識別するステップは、カメラシステムの視野で環境内の特徴に対応する一連の画像内のいくつかのピクセルを識別するステップを備える。さらに好ましくは、一連の画像内の特徴を識別するステップは、カメラシステムから一連の画像のうちの現在の画像を受け取るステップと、カメラシステムの画像フレーム内の複数の第1のロケーションを識別するステップであって、複数の第1のロケーションのそれぞれが、一連の画像のうちの現在の画像内の特徴のうちの1つに対応する、ステップと、画像フレーム内の複数の第2のロケーションを識別するステップであって、複数の第2のロケーションのそれぞれが、一連の画像のうちの前の画像内の特徴のうちの1つに対応する、ステップとを含む。さらに好ましくは、カメラシステムのパースペクティブの移動を識別するステップが、第1のロケーションのうちの選択されたロケーションを選択するステップと、第1のロケーションのうちの選択されたロケーションと同じ特徴に対応する第2のロケーションのうちの選択されたロケーションを識別するステップと、画像フレーム内の第1のロケーションの選択されたロケーションと、画像フレーム内の第2のロケーションのうちの選択されたロケーションとの間の差からカメラシステムのパースペクティブの移動を識別するステップとを含む。さらに好ましくは、プラットフォームはロボットマニピュレータであり、カメラシステムは、ロボットマニピュレータに取り付けられる。
【0009】
本開示の別の有利な実施形態は、航空機の位置を識別するための方法を提供する。航空機が動いている間、航空機に関連するカメラシステムによって生成された一連の画像内の特徴が識別される。カメラシステムのパースペクティブの移動は、一連の画像内の特徴の位置の移動から識別される。航空機の位置の変化は、パースペクティブの移動に基づいて識別される。
【0010】
有利には、航空機の現在位置を識別するステップは、航空機の位置の変化に基づく。好ましくは、航空機の現在位置を識別するステップは、航空機の位置の変化および航空機の開始位置に基づいて航空機の現在位置を識別するステップを備える。さらに好ましくは、航空機の動きを制御するステップは、航空機の現在位置に基づく。さらに、好ましくは、航空機の位置は、航空機のロケーションと航空機の姿勢とを備える。さらに、好ましくは、航空機のロケーションは、航空機の地理座標と高度とを備える。さらに好ましくは、特徴を識別するステップは、カメラシステムの視野で環境内の特徴に対応する一連の画像内のピクセル群を識別するステップを備える。さらに好ましくは、環境は、航空機が動いている開放環境、および航空機が動いている閉鎖環境のうちの1つから選択される。さらに好ましくは、一連の画像内の特徴を識別するステップは、カメラシステムから一連の画像のうちの現在の画像を受け取るステップと、カメラシステムの画像フレーム内の複数の第1のロケーションを識別するステップであって、複数の第1のロケーションのそれぞれが、一連の画像のうちの現在の画像内の特徴のうちの1つに対応する、ステップと、画像フレーム内の複数の第2のロケーションを識別するステップであって、複数の第2のロケーションのそれぞれが、一連の画像のうちの前の画像内の特徴のうちの1つに対応する、ステップとを含む。さらに好ましくは、カメラシステムのパースペクティブの移動を識別するステップは、第1のロケーションのうちの選択されたロケーションを選択するステップと、第1のロケーションのうちの選択されたロケーションと同じ特徴に対応する第2のロケーションのうちの選択されたロケーションを識別するステップと、画像フレーム内の第1のロケーションと画像フレーム内の第2のロケーションとの間の差からカメラシステムのパースペクティブの移動を識別するステップとを含む。
【0011】
本開示の別の有利な実施形態は、カメラシステムと位置計算器とを含む装置を提供する。カメラシステムは、一連の画像を生成するように構成される。位置計算器は、カメラシステムが動いている間、カメラシステムによって生成された一連の画像内の特徴を識別するステップと、一連の画像内の特徴の位置の移動からカメラシステムのパースペクティブの移動を識別するステップと、パースペクティブの移動に基づいてカメラシステムの位置の変化を識別するステップとを行うように構成される。
【0012】
有利には、位置計算器は、カメラシステムの位置の変化に基づいてカメラシステムの現在位置を識別するステップを行うようにさらに構成される。好ましくは、位置計算器は、カメラシステムの位置の変化およびカメラシステムの開始位置に基づいてカメラシステムの現在位置を識別するステップを行うように構成される。さらに好ましくは、カメラシステムの位置は、3次元座標系内のカメラシステムのロケーションと、3次元座標系内のカメラシステムの方向とを備える。さらに好ましくは、位置計算器は、カメラシステムの視野で環境内の特徴に対応する一連の画像内のピクセル群を識別するステップを行うように構成される。さらに好ましくは、位置計算器は、カメラシステムから一連の画像のうちの現在の画像を受け取るステップと、カメラシステムの画像フレーム内の複数の第1のロケーションを識別するステップであって、複数の第1のロケーションのそれぞれが、一連の画像のうちの現在の画像内の特徴のうちの1つに対応する、ステップと、画像フレーム内の複数の第2の位置を識別するステップであって、複数の第2のロケーションのそれぞれが、一連の画像のうちの前の画像内の特徴のうちの1つに対応する、ステップとを行うように構成される。さらに好ましくは、位置計算器は、第1のロケーションのうちの選択されたロケーションを選択するステップと、第1のロケーションのうちの選択されたロケーションと同じ特徴に対応する第2のロケーションのうちの選択されたロケーションを識別するステップと、画像フレーム内の第1のロケーションと画像フレーム内の第2のロケーションとの間の差からカメラシステムのパースペクティブの移動を識別するステップとを行うように構成される。さらに好ましくは、装置は、筺体であって、カメラシステムおよび位置計算器が筺体内に含まれる、筺体と、筺体をプラットフォームに取り付けるように構成されるマウント構造物とをさらに含む。さらに好ましくは、マウント構造物は、航空機およびロボットマニピュレータから選択されたプラットフォームに筺体を取り付けるように構成される。さらに好ましくは、カメラシステムは、少なくともおよそ100フレーム/秒のフレームレートを有するカメラを備える。
【0013】
特徴、機能および利点は、本開示の様々な実施形態で独立に達成することができ、または下記の説明および図面を参照してさらなる詳細が見られ得る他の実施形態に組み合わせてもよい。
【0014】
有利な実施形態の特徴を示すと思われる新規な特徴は、添付の特許請求の範囲に示されている。しかし、有利な実施形態、ならびに好ましい使用様式、さらなる目的およびその利点は、添付の図面と併せ読めば、本開示の有利な実施形態についての下記の詳細な説明を参照して最もよく理解されよう。
【図面の簡単な説明】
【0015】
【図1】有利な一実施形態による、位置識別環境のブロック図である。
【図2】有利な一実施形態による、位置計算器のブロック図である。
【図3】有利な一実施形態による、開放環境内で動作する航空機の図である。
【図4】有利な一実施形態による、閉鎖環境内で動作する航空機の図である。
【図5】有利な一実施形態による、ロボットマニピュレータの図である。
【図6】有利な一実施形態による、位置識別子の図である。
【図7】有利な一実施形態による、航空機のカメラシステムによって第1の位置で取得された画像の図である。
【図8】有利な一実施形態による、航空機のカメラシステムによって第2の位置で取得された画像の図である。
【図9】有利な一実施形態による、プラットフォームの位置を識別するためのプロセスのフローチャートである。
【図10】有利な一実施形態による、カメラシステムのパースペクティブの移動を識別するためのプロセスのフローチャートである。
【図11】有利な一実施形態による、データ処理システムの図である。
【発明を実施するための形態】
【0016】
それぞれ異なる有利な実施形態は、いくつかの異なる考察を認識し、考慮に入れる。「数」は、本明細書では、アイテムに言及して、1つまたは複数のアイテムを意味する。たとえば、「いくつかの異なる考察」は、1つまたは複数の異なる考察である。
【0017】
それぞれ異なる有利な実施形態は、航空機の現在位置を決定するための現在のシステムおよび方法が、航空機の重量を著しく増加させ得るハードウェアを使用することを認識し、考慮に入れる。この追加の重量は、航空機の動作の効率および効果を低減させることがある。たとえば、航空機の重量が増加すると、燃料消費量率が上昇し、任務完了のために持ち場につく時間が減少することになる。さらに、航空機の位置を決定するための現在のシステムおよび方法の電力、配線および通信リンク要件は立ち入ったものであり、他の航空機システムの動作または設計に不所望のやり方で影響を及ぼすことがある。
【0018】
それぞれ異なる有利な実施形態は、航空機の現在位置を決定するための現在のシステムおよび方法が多くの状況において使用不可能で有り得ることを認識し、考慮に入れる。たとえば、全地球測位システム信号および無線航行システム信号は、一部の領域では拒否されることがある。こうした信号は、航空機が動作している閉鎖領域内に入り込むことができないことも、妨害され、または他の干渉を受けることもある。
【0019】
有利な実施形態のうちの1つまたは複数は、現在のシステムより効率的に実装することができ、また航空機の位置をより正確に、かつより確実に識別できる航空機の位置を識別するためのシステムおよび方法を提供する。有利な一実施形態によれば、航空機の位置は、航空機のカメラシステムによって生成された一連の画像に基づいて決定される。一連の画像は、航空機が動いている環境内の特徴を含む。これらの特徴は、一連の画像内で識別される。カメラシステムのパースペクティブの移動は、一連の画像内の特徴の位置の移動から識別される。航空機の位置の変化は、カメラシステムのパースペクティブの移動から識別される。航空機の現在位置は、航空機の位置の変化および航空機の開始位置に基づいて識別することができる。
【0020】
有利な実施形態のうちの1つまたは複数は、任意の動いているプラットフォームの現在位置を正確に決定するためのシステムおよび方法を提供することができる。有利な一実施形態によれば、カメラシステムおよび位置計算器は、位置識別子装置を提供するために筺体内にひとまとめにすることができる。位置識別子は、プラットフォームが動いている間、プラットフォームの位置を識別するために、任意のプラットフォーム上にマウントすることができる。たとえば、位置識別子は、ロボットマニピュレータがタスクを実施するように制御されている間、ロボットマニピュレータの位置を識別するために、ロボットマニピュレータに取り付けることができる。
【0021】
図1に移ると、有利な一実施形態による、位置識別環境のブロック図が示されている。位置識別環境100は、可動のプラットフォーム102を含む。プラットフォーム102は、環境104の中を移動する。たとえば、プラットフォーム102は、環境104内でタスクまたは任務を実施するために、環境104の中を移動してよい。別の例として、プラットフォーム102は、あるロケーションから別のロケーションに動くとき、環境104の中を移動してよい。
【0022】
例示的な一例では、プラットフォーム102は、乗物106であってよい。乗物106は、たとえば、航空機108であってもよいし、他の何らかのタイプの乗物であってもよい。航空機108は、たとえば、それだけに限らないが、固定翼機、回転翼航空機、軽航空機、または他の何らかの適切なタイプの航空機であってよい。航空機108は、有人であってもよいし、無人であってもよい。航空機108は、空中、宇宙または空中と宇宙の両方で動作できる任意の航空宇宙機であってよい。
【0023】
別の例として、プラットフォーム102は、ロボットマニピュレータ110であってもよい。たとえば、ロボットマニピュレータ110は、それだけに限らないが、製造、組立て、検査、製品のテスト、またはこれらもしくは他の機能の任意の組合せのために使用できる工業用ロボットまたは他のロボットを含んでよい。別の例として、ロボットマニピュレータ110は、深海や惑星探査など科学的な目的に、または他の任意の環境内の操作のために使用されるロボットを含んでよい。別の例では、ロボットマニピュレータ110は、軍事または犯罪防止アプリケーションに使用されるロボットを含んでよい。
【0024】
様々なタイプの動いているプラットフォームが、それぞれ異なる環境内で動作してよい。たとえば、航空機108は、開放された112環境104で動作することも、閉鎖された114環境104で動作することもある。閉鎖された114環境104には、たとえば、それだけに限らないが、建物または他の人工構造物、洞穴もしくは他の自然発生の構造物、または完全もしくは部分的に閉鎖された他の任意の自然もしくは人工の領域が含まれ得る。
【0025】
環境104は、いくつかの特徴116によって特徴付けられる。特徴116は、任意の波長で動作するカメラから見え得る特徴を含む。特徴116は、人工の物体、自然に発生する物体、構造物、パターンまたは環境104内の他の適切なタイプの特徴を含んでよい。環境104内の特徴116の位置は、知られていることも、知られていないこともある。
【0026】
全地球測位システム信号および無線航行システム信号は、閉鎖された114環境104内で確実に使用できるとは限らないことがある。換言すると、これらの信号は、閉鎖された114環境104内のプラットフォーム102によって必ずしも使用できるとは限らないことがある。さらに、全地球測位システムは、雲、衛星の見通しに沿った建物、妨害信号により、または他の理由のために、開放された112環境104内で使用可能でないことがある。その結果、環境104内でこれらのタイプの信号を使用して航空機108の位置を所望の精度で決定することは必ずしも可能であるとは限らないことがある。しかし、任意の環境内および様々な条件下で航空機108の位置を正確に決定することが望ましい。
【0027】
いつでもプラットフォーム102は、環境104内の位置118にある。たとえば、プラットフォーム102は、環境104の中を移動するとき、開始位置120から現在位置122に動くことができる。開始位置120は、プラットフォーム102の知られている位置118であってよい。開始位置120は、本明細書に述べられたシステムおよび方法以外のプラットフォーム102の位置118を識別するためのシステムおよび方法を使用して決定することができる。
【0028】
位置118は、これらの例示的な例では、プラットフォーム102のロケーション124、プラットフォーム102の方向126、またはプラットフォーム102のロケーション124と方向126の両方を含んでよい。ロケーション124は、プラットフォーム102が位置する3次元空間内の1つまたは複数の点を備える。ロケーション124は、任意の3次元座標系を参照して定義することができる。たとえば、航空機108のロケーション124は、地理座標および航空機の高度によって定義することができる。
【0029】
方向126は、3次元空間内の所与の線または面に対するプラットフォーム102の角度である。方向126は、ロール、ピッチおよびヨーと呼ばれる3つの自由度に関して表すことができる。これらの例示的な例では、環境104内の航空機108の方向126は、航空機108の姿勢と呼ばれることがある。
【0030】
プラットフォーム102は、プラットフォームコントローラ128を含む。プラットフォームコントローラ128は、環境104の中を通るプラットフォーム102の移動を、所望のタスクまたは任務を実施するように制御することができる。プラットフォームコントローラ128は、自動コントローラ、人間オペレータまたはマシンと組み合わせた人間オペレータを備えてよい。
【0031】
プラットフォームコントローラ128は、プラットフォーム102上で完全に実装されてもよいし、少なくとも一部、プラットフォーム102から遠隔に実装されてもよい。後者の場合では、プラットフォームコントローラ128は、プラットフォーム102の動きを制御するためにプラットフォーム102とワイヤレス通信していてよい。いずれの場合も、タスクまたは任務をうまく実施するようにプラットフォーム102の動きを制御するために、プラットフォーム102の位置118が正確かつ確実に識別されることが望ましい。
【0032】
有利な一実施形態によれば、環境104内のプラットフォーム102の位置118は、プラットフォーム102に関連する位置識別子130を使用して正確かつ確実に決定することができる。位置識別子130の構成要素は、筺体132に含まれてよい。位置識別子130は、これらの例示的な例では、プラットフォーム102に永続的に取り付けられてもよいし、取外し可能に取り付けられてもよい。
【0033】
たとえば、位置識別子130は、マウント構造物134を使用して、プラットフォーム102に取り付けられてよい。マウント構造134は、プラットフォーム102上のいくつかの構造物、筺体132上のいくつかの協調構造物およびいくつかの留め具を含んでよい。マウント構造物134の実装は、筺体132の実装、および位置識別子130が取り付けられるプラットフォーム102の性質によって決まる。
【0034】
位置識別子130は、カメラシステム136と位置計算器138とを備える。カメラシステム136は、プラットフォーム102が動いている環境104の画像140を生成する。画像140は、カメラシステム136から位置計算器138に提供される。位置計算器138は、画像140からプラットフォーム102の識別された位置142を識別する。
【0035】
カメラシステム136は、単一のカメラを備えてよい。他の有利な実施形態では、カメラシステム136は、複数のカメラを備えてよい。複数のカメラシステムを使用すると、位置識別子130による位置決定の精度を高めることができる。
【0036】
カメラシステム136は、任意の所望の波長で動作するデジタルまたは他のビデオカメラを備えてよい。たとえば、カメラシステム136は、それだけに限らないが、可視波長または赤外線波長で、あるいは複数の異なる波長または波長帯で環境104の画像140を生成することができる。カメラシステム136は、高速カメラを備えてよい。たとえば、カメラシステム136は、それだけに限らないが、およそ100フレーム/秒のフレームレート、またはより高いフレームレートで動作してよい。高速カメラの使用によって、フレーム間の変更は小さくなり、より一般的な特徴点が、連続したフレームに見られる。さらに、連続したフレームは、少数のピクセルだけ変化する。したがって、より低い解像度のカメラを使用してよい。より低い解像度のカメラを使用すると、画像処理に必要な計算能力が低下する。あるいは、カメラシステム136は、任意のフレームレートで動作してよい。
【0037】
一実施形態では、カメラシステム136が操作される波長、フレームレート、または波長とフレームレートの両方が、可変であってよい。この場合、たとえば、波長、フレームレートまたは両方は、プラットフォーム102の特定のタスクまたは任務に基づいて調整されることも、プラットフォーム102が動いている環境104の条件に基づいて調整されることもある。
【0038】
任意の時点で、カメラシステム136は、特定のパースペクティブ144を有する。パースペクティブ144は、特徴116のカメラシステム136に対する相対的距離および位置によって決まる、カメラシステム136から見た特徴116の外観である。さらに、任意の時点で、カメラシステム136は、特定の視野146を有する。視野146は、カメラシステム136によって生成された画像140内に現われる環境104の一部である。プラットフォーム102が環境104の中を移動するとき、カメラシステム136のパースペクティブ144および視野146は変化する。
【0039】
カメラシステム136によって生成された画像140内の点のロケーションは、画像フレーム148を参照して定義することができる。画像フレーム148は、カメラシステム136によって生成された画像140を含む2次元領域である。プラットフォーム102が環境104の中を移動する間、環境104の一連の変化する画像140が、画像フレーム148内で生成される。一連の変更する画像140は、プラットフォーム102が環境104の中を移動する間のカメラシステム136の変化するパースペクティブ144および視野146を反映する。
【0040】
カメラシステム136によって生成された一連の画像140は、位置計算器138に提供される。一連の画像140内の個々の画像は、フレーム150と呼ばれることがある。位置計算器138は、プラットフォーム102の現在位置122を、識別された位置142として識別してよい。識別された位置142は、最大6つの自由度について、プラットフォーム102の識別されたロケーション152と識別された方向154とを含んでよい。識別された位置142は、プラットフォーム102の動きの正確な制御を行うプラットフォームコントローラ128に提供されてよい。
【0041】
位置計算器138は、ハードウェアで実装されてもよいし、共に動作するハードウェアとソフトウェアで実装されてもよい。位置計算器138は、プラットフォームコントローラ128によってプラットフォーム102の動きを制御するのに十分な速度で画像140から識別された位置142を識別できる任意のハードウェア、またはハードウェアとソフトウェアの組合せを使用して実装されてよい。
【0042】
図2に移ると、有利な一実施形態による、位置計算器のブロック図が示されている。この例では、位置計算器200は、図1の位置計算器138の一実装形態の例である。位置計算器200は、入力として一連の画像202を受け取る。たとえば、画像202は、動いているプラットフォームに関連してカメラシステムによって生成されたデジタル画像または他の画像の一連のフレーム204を備えてよい。
【0043】
有利な一実施形態によれば、位置計算器200は、画像202を使用してプラットフォームの現在位置を識別するためのいくつかの機能を備える。まず位置計算器200によって受け取られた画像202は、画像処理機能206によって処理されてよい。画像処理機能206は、後述された位置計算器200の他の機能によって使用される画像202を作成するための任意の機能を含んでよい。
【0044】
たとえば、画像処理機能206は、それだけに限らないが、コントラスト強調209を含んでよい。コントラスト強調209は、デジタル画像または他の画像内のコントラストを強調するための知られている技法を含んでよい。コントラスト強調209は、画像202内で特徴を識別できる速度および精度を増加させることができる。たとえば、より高いコントラストのアナログをもたらすために、しきい値を画像202に適用してよい。
【0045】
特徴識別機能208は、画像202内の特徴を識別する。たとえば、特徴識別機能208は、画像処理機能206によって処理される画像202内の特徴を識別することができる。画像202内の特徴を識別する特徴識別機能208によって、任意の知られている技法が使用されてよい。たとえば、特徴識別機能208は、それだけに限らないが、スケール不変特徴量変換(SIFT:scale−invariant feature transform)、コーナ検出、高速化ロバスト特徴(SURF:speeded up robust features)、または他の技法を単独にもしくは任意の組合せで使用して画像202内の特徴を識別してよい。
【0046】
特徴識別機能208は、画像202内で識別された各特徴に単一の点ロケーションを割り当ててよい。たとえば、特徴識別機能208は、識別された各特徴に、画像フレーム内の単一のピクセルロケーションを割り当ててよい。
【0047】
追跡点選択機能210は、一連の画像202内のフレームごとに追跡するために、特徴識別機能208によって識別された特徴の点ロケーションを選択する。特徴識別機能208によって、多くの特徴を識別することができる。特徴識別機能208によって識別されたすべての特徴を追跡すると、不必要に処理を減速させることがあり、または別のやり方で不必要に高速なまたは追加のハードウェアを必要とすることがある。したがって、追跡点選択機能210は、追跡用に特徴識別機能208によって識別される点のサブセットを選択してよい。
【0048】
追跡点選択機能210によって選択された追跡用の点の数は、固定であってもよいし、可変であってもよい。たとえば、追跡点選択機能210によって追跡用に選択される点の数は、現在位置が位置計算器200によって決定されているプラットフォームの動作状態、プラットフォームが動作している環境、または他の適切な要因に基づいて、単独にまたは任意の組合せで可変であってよい。
【0049】
プラットフォームが環境の中を迅速に移動している場合、特徴識別機能208によって識別された特徴は、画像202からより迅速に動くことがある。この場合、追跡点選択機能210によって、追跡用に多くの点が選択されてよい。
【0050】
さらに、特定の動作環境では、画像202内のフレームごとに特徴が識別され得る信頼性が低減することがある。この場合、追跡点選択機能210によって追跡用に多くの点を選択することも望まれ得る。
【0051】
追跡点選択機能210は、追跡用に個々の点を様々な要因に基づいて選択することができる。たとえば、追跡点選択機能210は、動いているプラットフォームの位置を識別するために位置計算器200によって現在使用されている点を追跡用に選択してよい。別の例として、追跡点選択機能210は、画像202内の特徴の位置および過去の動きに基づいて追跡用の点を選択してよい。
【0052】
たとえば、画像のエッジに近くにあり、また画像のエッジの向きに動いていた特徴に対応する点は、追跡点選択機能210によって追跡用に選択されないことがある。特徴自体を動かしている特徴は、有利な一実施形態によるプラットフォームの現在位置を識別するのに有用でないことがある。したがって、追跡点選択機能210は、画像202内の動いている特徴に関連する点を識別することができ、こうした点を追跡用に選択しなくてよい。
【0053】
点追跡機能212は、追跡点選択機能210によって選択された点をフレームごとに追跡する。点追跡機能212は、前のフレーム内の同じ特徴についての点に対応する現在のフレーム内の点を識別する。次いで、特徴の位置の変化は、現在のフレーム内と前のフレーム内の対応する点の画像フレーム内のロケーション間の差として決定することができる。一連の画像内の特徴に対応する点をフレームごとに追跡するために、知られている技法を使用することができる。たとえば、点は、それだけに限らないが、ランダムサンプルコンセンサス(RANSAC:random sample consensus)を使用して削除されたフレームおよび外れ値間で追跡することができる。
【0054】
計算点選択機能214は、プラットフォームのロケーションを識別する計算を実施するために使用される点追跡機能212によって追跡される点を選択する。画像202内の3つの特徴に対応する少なくとも3つの点が、計算点選択機能214によって選択されてよい。点ごとに2つの自由度で6つの自由度を計算するために、少なくとも3つの点が選択される。
【0055】
位置変更計算機能216は、計算点選択機能214によって選択された点を使用して、プラットフォームの位置の変化を計算する。画像202を生成するカメラシステムのパースペクティブの変化は、画像202内の特徴の位置の移動に反映される。
【0056】
位置変更計算機能216は、前のフレームから現在のフレームへの、画像フレーム内の選択された点のロケーションの変化を計算する。現在の画像内の特徴に対応する画像フレーム内の複数のロケーションは、複数の第1のロケーションと呼ばれることがある。前の画像内の特徴に対応する画像フレーム内の複数のロケーションは、複数の第2のロケーションと呼ばれることがある。次いで、同じ特徴に対応する第1のロケーションと第2のロケーションの間の画像フレームの選択された点のロケーションの計算された変化からカメラシステムのパースペクティブの移動を識別するために、幾何学的計算を使用することができる。カメラシステムのパースペクティブの移動は、6つの自由度に沿って計算することができる。たとえば、カメラシステムのパースペクティブの移動は、それだけに限らないが、デカルトX、Y、Z座標に沿って、オイラー角アルファ、ベータおよびガンマと共に計算されてもよい。
【0057】
カメラシステムがプラットフォーム上にマウントされるので、カメラシステムのパースペクティブの移動を使用して、位置変更計算機能216によりプラットフォームの位置の対応する変化を識別することができる。
【0058】
たとえば、位置変更計算機能216は、それだけに限らないが、選択された特徴に対応するピクセルロケーションの画像フレーム内の2次元の移動をまず測定してよい。次いで、画像フレーム内のピクセルロケーションの測定された移動は、メートルや他の何らかの実世界の測定など、実世界の測定単位に変換される。この変換は、カメラシステムの初期較正から得られた情報を使用して計算され、カメラズーム、レンズ度数および解像度などの要因に依存することがある。次いで、実世界のカメラの位置の変化は、基礎的な幾何方程式を使用して計算することができる。
【0059】
識別位置計算機能218は、プラットフォームの現在の識別された位置220を計算する。たとえば、識別位置計算機能218は、位置変更計算機能216によって計算されたプラットフォームの位置の変化によって修正されるように、前の識別された位置220に基づいて、現在の識別された位置220を計算することができる。最初に、識別された位置220は、プラットフォームの知られている開始位置であってよい。
【0060】
識別された位置220は、位置計算器200によって出力222として提供されてよい。たとえば、識別された位置220は、プラットフォームの動きを制御するプラットフォームコントローラに出力222として提供されてよい。
【0061】
図1の位置識別環境100のおよび図2の位置計算器200は、それぞれ異なる有利な実施形態が実施され得るやり方に対する物理的なまたはアーキテクチャ上の制限を示唆するためのものではない。図示された構成要素に加えて、その代わりに、または追加と代わりの両方として、他の構成要素を使用することができる。一部の構成要素は、一部の有利な実施形態では不要であり得る。ブロックは、一部の機能構成要素を示すために提示されている。これらのブロックの1つまたは複数は、それぞれ異なる有利な実施形態で実施される場合、組み合わせてもよいし、それぞれ異なるブロックに分割してもよい。
【0062】
たとえば、位置識別子130によって実施される機能はすべて、図1のプラットフォーム102上の装置によって実施されてもよいし、プラットフォーム102に取り付けられた装置によって実施されてもよい。あるいは、プラットフォーム102の位置を識別するための位置識別子130の機能の一部は、プラットフォーム102から遠隔に実施されてよい。
【0063】
たとえば、カメラシステム136は、プラットフォーム102上にあってよいが、位置計算器138によって実施される機能は、プラットフォーム102から遠隔に実施される。この場合、カメラシステム136からの画像データは、プラットフォーム102から、遠隔に置かれた位置計算器138に送信されてよい。
【0064】
次いで、位置計算器138によって提供された識別された位置142は、遠隔地から離れてプラットフォーム102の動きを制御するために、遠隔地で使用することができる。あるいは、遠隔地で位置計算器138によって提供された識別された位置142は、プラットフォーム102上のプラットフォームコントローラ128に返送されてよい。
【0065】
図3に移ると、有利な一実施形態による、開放環境内で動作する航空機の図が示されている。この例では、航空機300および航空機302は、図1の航空機108の例である。この例では、航空機300は、無人航空機である。航空機302は、軽航空機である。示されたように、航空機300および航空機302は、開放環境310内で動いている。開放環境310は、図1の開放された112環境104の一例である。
【0066】
全地球測位システム信号および無線航行システム信号は、すべての条件下において開放環境310内のすべてのロケーションに確実に到達するとは限らないことがある。たとえば、雲、建物あるいは他の障害物が、全地球測位システム衛星の見通しをブロックすることがある。別の例として、ジャミングが、航行に使用される信号に干渉することがある。しかし、開放環境310内で任務をうまく実施するように航空機300および航空機302を制御するために、開放環境310内のいずれかのロケーションにおいて、また様々な条件下で航空機300および航空機302の現在位置を識別することが望ましいことがある。
【0067】
この例示的な例では、航空機302は、航空機300の補助機(tender)として働く。たとえば、航空機302は、航空機300が航空機302の近くで飛行する場合、航空機300を把持するための把持機構304を含んでよい。したがって、航空機300は、把持機構304によって航空機302に搭載されてよい。搭載航空機302、航空機300は、燃料補給され、再軍備され、修理されてもよいし、任意の他のサービスまたはいくつかのサービスが、必要または要望に応じて航空機300上で実施されてよい。航空機300は、把持機構304を使用して航空機302から空中に放たれることも、把持機構304を使用せずに放たれることもある。
【0068】
位置識別子306が、航空機300にマウントされてよい。位置識別子308が、航空機302にマウントされてよい。位置識別子306および308は、航空機300および航空機302が動いている開放環境310の一連の画像内の変化する位置から、それぞれ航空機300および航空機302の現在位置を決定するために使用することができる。開放環境310の一連の画像は、航空機300および航空機302に関係する図1のカメラシステム136など、カメラシステムを使用して生成することができる。これらのカメラシステムは、位置識別子306および308の一部である。
【0069】
開放環境310の一連の画像は、開放環境310内の特徴を捕捉することができる。これらの特徴は、建物312など、人工構造物または物体を含んでよい。さらに、特徴は、木314など、自然に発生する構造物または物体を含んでよい。有利な実施形態によれば、位置識別子306および308によって識別された航空機300および航空機302の現在位置を使用して、航空機300および航空機302を非常に近くに動かし、把持機構304によって把持するために航空機300を航空機302に対して方向付けすることができる。
【0070】
図4に移ると、有利な実施形態による、閉鎖環境内で動作する航空機が示されている。この例では、航空機400は、図1の航空機108の一実装形態の例である。たとえば、航空機400は、それだけに限らないが、無人の回転翼航空機であってよい。
【0071】
示されたこの例では、閉鎖環境402は、建物または他の人工構造物であってよい。あるいは、閉鎖環境402は、洞穴、または他の自然に発生する閉鎖環境であってよい。閉鎖環境402は、完全に閉鎖されることも、部分的に閉鎖されることもある。閉鎖環境402は、図1の閉鎖された114環境104の一例である。
【0072】
全地球測位システム信号および無線航行システム信号は、閉鎖環境402内に確実に到達するとは限らないことがある。しかし、閉鎖環境402内で任務をうまく実施するように航空機400を制御するために、閉鎖環境402内の航空機400の現在位置を識別することが望ましいことがある。
【0073】
有利な一実施形態によれば、位置識別子404が、航空機400にマウントされてよい。位置識別子404は、航空機400が動いている閉鎖環境402の一連の画像内の特徴の変化する位置から、航空機400の現在位置を決定するために使用することができる。上記に論じられたように、一連の画像は、図1のカメラシステム136など、カメラシステムを使用して生成することができる。カメラシステムは、航空機400および位置識別子404の一部に関連付けることができる。
【0074】
さらに、一連の画像内で捕捉された閉鎖環境402内の特徴は、たとえば、それだけに限らないが、閉鎖環境402内の物体406、床409のパターン408、壁411のパターン410、または航空機400に関連するカメラシステムの視野内の閉鎖環境402の他の何らかの部分における他の適切な物体もしくはパターンを含んでよい。
【0075】
図5に移ると、有利な一実施形態による、ロボットマニピュレータが示されている。この例では、ロボットマニピュレータ500は、図1のロボットマニピュレータ110の一実装形態の例である。ロボットマニピュレータ500は、工業用ロボットであってもよいし、部品502に対して操作を実施するために使用される他のタイプのロボットであってもよい。たとえば、部品502は、航空機部品であってもよいし、他のいずれかの部品、製品または物体であってもよい。
【0076】
この例示的な例では、部品502は、支持構造物504にマウントされてよい。支持構造物504は、支持部品502に適したいずれかの構造物であってよく、ロボットマニピュレータ500は、部品502に対する操作を実施するために使用される。それだけに限らないが、支持構造物504は、固定であってもよいし、移動してもよい。さらに、部品502は、支持構造物として働くことも可能であってよい。
【0077】
ロボットマニピュレータ500は、アーム支持506と、アーム508と、およびエンドエフェクタ510とを備える。アーム支持506は、ロボットマニピュレータ500がマウントされ、または別のやり方で置かれてよい床512の上で、または別の固定構造物もしくは移動構造物上でアーム508を支持する。アーム508は、関節514によって、アーム508の近位端で、または近位端の近くでアーム支持506に取り付けられてよい。アーム508は、アーム508がアーム支持506に取り付けられる関節514において、いくつかの向きに移動可能であってよい。アーム508は、1つまたは複数の肘関節516を含んでよい。アーム508は、肘関節516で、いくつかの向きに移動可能であってよい。
【0078】
さらに、エンドエフェクタ510は、アーム508の遠位端で、あるいはその遠位端の近くで、関節518によってアーム508に取り付けられてよい。エンドエフェクタ510は、関節518で、アーム508に対していくつかの向きに移動可能であってよい。エンドエフェクタ510は、部品502上で操作を実施するためのいくつかのツールを備えてよい。たとえば、それだけに限らないが、エンドエフェクタ510は、部品502内に穴を形成するためのドリル、溶接機、カメラ、または部品502を検査するための他のデバイス、あるいは部品502上で操作を実施するための他のいずれかのツールまたはツールの組合せを含んでよい。
【0079】
アーム508およびエンドエフェクタ510は、関節514、516および518で、適切なアクチュエータによって部品502に対して様々な向きおよび方向に動かすことができる。たとえば、こうしたアクチュエータは、それだけに限らないが、電動機または油圧アクチュエータを含んでよい。
【0080】
アーム508およびエンドエフェクタ510の動き、ならびにエンドエフェクタ510に対するツールの操作は、ロボットコントローラ520によって制御されてよい。ロボットコントローラ520は、自動コントローラであってもよいし、機械と組み合わせた人間オペレータを含んでもよい。
【0081】
部品502上で操作を実施するようにアーム508およびエンドエフェクタ510の動きをうまく制御するために、部品502に対してエンドエフェクタ510の位置および方向を正確に識別することが望ましい。有利な一実施形態によれば、エンドエフェクタ510は、位置識別子522を保持してよい。位置識別子522は、エンドエフェクタ510が動いている環境の一連の画像内の特徴の変化する位置からエンドエフェクタ510の現在位置を決定するために使用することができる。一連の画像は、エンドエフェクタ510に関連しており、また位置識別子522の一部であるカメラシステムによって生成されてよい。一連の画像内の特徴は、留め具524、継ぎ目526、または部品502上の他の構造物やパターンなど、部品502上の様々な構造物またはパターンを含んでよい。
【0082】
あるいは、こうした特徴は、エンドエフェクタ510に関連するカメラシステムの視野内の支持構造物504、または他のいずれかの構造物に関連する構造物またはパターンを含んでよい。位置識別子522によって識別されたエンドエフェクタ510の現在位置は、ロボットマニュピレータ500の動きを制御するのに使用するために、ロボットコントローラ520に提供されてよい。
【0083】
図6に移ると、有利な一実施形態による、位置識別子が示されている。この例では、位置識別子600は、図1の位置識別子130の一実装形態の例である。この例では、位置識別子600は、本明細書に述べられたようにプラットフォームの位置を識別するために様々な異なるプラットフォームに取り付けられてよいユニットとして提供される。
【0084】
位置識別子600は、有利な一実施形態による実際の位置識別子を示すためのものでない。そうではなく、位置識別子600は、有利な一実施形態による概念的な位置識別子を示している。位置識別子600は、有利な一実施形態による、位置識別子の構成要素の配置の可能な一例を示すために提示されている。
【0085】
位置識別子600は、筺体602を含む。筺体602は、上述されたように、カメラシステムと位置計算器とを含めて、位置識別子600の様々な構成要素を含んでいる。筺体602は、位置識別子600が使用される環境内で予期され得る様々な環境条件にさらされないように位置識別子600の他の構成要素を保護するように設計することができる。
【0086】
筺体602は、開口部604を含む。筺体602内のカメラシステムのレンズは、開口部604と直接にアライメントされることも、適切な中間光学系を介してアライメントされることもある。開口部604は、任意の適切なサイズおよび形状のものであってよい。開口部604は、窓606で覆われてよい。窓606は、位置識別子600が使用される環境に適しており、また筺体602内のカメラシステムが動作する波長に適した任意の材料から作られてよい。
【0087】
電源コネクタ608および少なくとも1つのデータコネクタ610を、筺体602内に設けることができる。電源コネクタ608は、筺体602内の構成要素の動作のために位置識別子600に電力を提供するための任意の適切なコネクタを含んでよい。データコネクタ610は、任意の適切なデータ伝送形式および通信プロトコルを使用して、位置識別子600からデータを取り出し、または位置識別子600にデータを提供するための任意の適切なコネクタを含んでよい。
【0088】
たとえば、データコネクタ610を介して位置識別子600から取り出すことができるデータは、それだけに限らないが、プラットフォームの位置の変化、または位置識別子600によって識別されたプラットフォームの位置を示すデータを含んでよい。たとえば、データコネクタ610を介して位置識別子600に提供されてよいデータは、それだけに限らないが、プラットフォームの開始位置を含んでよい。上記に論じられたように、プラットフォームの開始位置は、位置識別子600によって、プラットフォームの現在位置を識別するために使用されてよい。
【0089】
別の有利な実施形態では、位置識別子600は、スタンドアロンのデバイスであってよい。この場合、位置識別子600には、バッテリや他の局所電源など、局所電源によって電力供給することができる。位置識別子600に対するデータ伝送は、ワイヤレスデータ伝送を使用して提供することができる。
【0090】
プラットフォームに位置識別子600を取り付けるためにいくつかのマウント構造物612が、位置識別子600上に設けられてよい。たとえば、マウント構造物612は、それだけに限らないが、筺体602から突き出るいくつかの構造物614と、いくつかのマウント開口部616とを含んでよい。
【0091】
構造物614およびマウント開口部616は、位置識別子600をプラットフォームに確実に取り付けるために、プラットフォーム上の協調構造および適切な留め具の組合せで使用することができる。有利な一実施形態による任意の特定の位置識別子600のためのマウント構造物612の実装は、位置識別子600が取り付けられるプラットフォームの構造に依存する。
【0092】
図7に移ると、有利な一実施形態による、第1の位置の航空機上のカメラシステムによって生成された画像が示されている。この例で、画像700は、図1の中の画像140または図2の画像202の一例である。画像700内の特徴の位置は、画像フレーム702に対して定義することができる。たとえば、画像700内の特徴の位置は、画像フレーム702内のピクセルロケーションを参照して定義することができる。
【0093】
この例では、画像700は、航空機704が地上で動いている間に航空機704のカメラシステムによって生成された地上の画像である。画像700内に識別された特徴は、画像フレーム702内の点ロケーションによって識別される。たとえば、点706および708は、十字路の特徴に対応する。点710および712は、道路が川と交差する特徴に対応する。点714および716は、道路が向きを変更する特徴に対応する。点718は、川が曲がる特徴に対応する。
【0094】
線720は、航空機704と、画像700内の選択された点706、710および712との間で引かれている。航空機704に対する線720の角度は、第1の位置の航空機704のカメラシステムのパースペクティブを反映し表している。
【0095】
図8に移ると、有利な一実施形態による、第2の位置の図7の航空機704のカメラシステムによって得られた画像が示されている。この例では、画像800は、図1の画像140または図2の画像202の一例である。画像800の特徴の位置は、図7と同じ画像フレーム702に対して定義される。たとえば、画像800内の特徴の位置は、画像フレーム702内のピクセルロケーションを参照して定義することができる。
【0096】
この例では、画像800は、現在の画像であり、図7の画像700は、一連の画像の内の直前のフレームからの前の画像である。この例では、画像700と800の間の特徴の動きは、例示しやすくするために誇張されている。画像800内で、点802、804および806は、図7の画像700内の点706、710および712と同じ特徴に対応する。
【0097】
画像フレーム702内の点706、710および712のロケーションは、図8に破線の円として示されている。破線808、810および812は、それぞれ点706と802、710と804、712と806に対応する特徴の画像フレーム702内の位置の移動を表している。線814は、航空機704と、画像800内の選択された点802、804、806との間で引かれている。航空機704に対する線814の角度は、第2の位置の航空機704のカメラシステムのパースペクティブを反映し表している。
【0098】
図7の線720と図8の線814の間の差は、画像間のカメラシステムのパースペクティブの移動を示している。有利な一実施形態によれば、カメラシステムのパースペクティブのこの移動は、破線808、810および812によって表された画像フレーム702の特徴の位置の移動から識別することができる。航空機704の位置の対応する変化は、カメラシステムのパースペクティブの変化から識別することができる。この例では、カメラシステムのパースペクティブの識別された変化は、航空機704が第1の位置から、矢印816によって示された向きに動いており、右に傾いていることを示している。
【0099】
図9に移ると、有利な一実施形態による、プラットフォームの位置を識別するプロセスのフローチャートが示されている。図9のプロセスは、たとえば、図1の位置識別子130によって実施することができる。
【0100】
このプロセスは、プラットフォームが動いている間、プラットフォームに関連する一連の画像を取得することから開始する(操作902)。たとえば、一連の画像は、環境内でプラットフォームが移動している間、プラットフォームに関連するカメラシステムによって生成されてよい。環境は、開放環境であってもよいし、閉鎖環境であってもよい。
【0101】
一連の画像内の特徴が識別される(操作904)。これらの特徴は、環境内の特徴であってよい。一連の画像の特徴の位置の移動から、カメラシステムのパースペクティブの移動が識別される。(操作906)
【0102】
カメラシステムのパースペクティブの移動に基づいて、プラットフォームの位置の変化が識別される(操作908)。次いで、プラットフォームの位置の識別された変化に基づいて、プラットフォームの現在位置を識別することができ(操作910)、その後、プロセスが終了する。操作910で、プラットフォームの位置およびプラットフォームの開始位置の識別された変化に基づいて、プラットフォームの現在位置を識別することができる。
【0103】
図10に移ると、有利な一実施形態による、カメラシステムのパースペクティブの移動を識別するためのプロセスのフローチャートが示されている。この例において、図10のプロセスは、図9の操作906を実施するためのプロセスの一例である。
【0104】
このプロセスは、カメラシステムの画像フレーム内の現在の画像内の特徴に対応するいくつかの点のロケーションを識別することから開始する(操作1002)。位置計算のために、いくつかの点が選択される(操作1004)。操作1004で、位置計算のために、少なくとも3つの点を選択してよい。
【0105】
画像フレーム内の前の画像内で、選択された点と同じ特徴に対応する点のロケーションが識別される(操作1006)。現在の画像内の点のロケーションと前の画像内の対応する点のロケーションとの間の差が決定される(操作1008)。したがって、操作1008によって、前の画像と現在の画像の間の特徴の位置の移動が決定される。次いで、現在の画像と前の画像の間の画像フレーム内の同じ特徴に対応する点のロケーションの差から、カメラシステムのパースペクティブの移動が識別され(操作1010)、その後、プロセスが終了する。
【0106】
したがって、有利な実施形態のうちの1つまたは複数は、マシンビジョン方法を使用してモバイルプラットフォームのロケーションおよび方向を正確かつ迅速に決定する能力を提供する。有利な一実施形態によれば、プラットフォームの位置は、モバイルプラットフォームに関連するカメラシステムによって生成された一連の画像内の特徴の位置の移動から決定される。全地球測位システムデータ、慣性測定もしくは加速測定、または磁力計に依存せずに航空機の位置を追跡するために、有利な一実施形態によるシステムを航空機にマウントし、使用することができる。しかし、有利な実施形態に従って決定される航空機の位置は、信頼性を高めるために他の位置測定と組み合わせてよい。
【0107】
次に図11に移ると、有利な一実施形態による、データ処理システムの図が示されている。この例では、データ処理システム1100は、図1の位置計算器138または図2の位置計算器200の機能を実施するために使用できるシステムの一例である。この有利な例では、データ処理システム1100は、通信ファブリック1102を含む。通信ファブリック1102は、プロセッサユニット1104、メモリ1106、永続記憶装置1108、通信ユニット1110、入出力(I/O:input/output)ユニット1112およびディスプレイ1114の間の通信を提供する。
【0108】
プロセッサユニット1104は、メモリ1106にロードしてよいソフトウェアのための命令を実行する働きをする。プロセッサユニット1104は、特定の実装形態に応じて、いくつかのプロセッサ、マルチプロセッサコアまたは他の何らかのタイプのプロセッサであってよい。さらに、プロセッサユニット1104は、単一のチップ上でメインプロセッサが2次プロセッサと共に存在するいくつかの異種プロセッサシステムを使用して実装することができる。別の有利な例として、プロセッサユニット1104は、同じタイプの複数のプロセッサを含んでいる対称マルチプロセッサシステムであってよい。
【0109】
メモリ1106および永続記憶装置1108は、記憶デバイス1116の例である。記憶デバイスは、たとえば、それだけに限らないが、データ、関数形式のプログラムコードまたは他の適切な情報、あるいは一時的なベースもしくは永続的なベースまたはその両方の情報の任意の組合せなど、情報を格納できる任意の1つのハードウェアである。記憶デバイス1116は、これらの例では、コンピュータ読取り可能記憶デバイスと呼ばれることもある。メモリ1106は、これらの例では、たとえばランダムアクセスメモリや、他の任意の適切な揮発性または不揮発性記憶デバイスであってよい。永続記憶装置1108は、特定の実装に応じて様々な形をとってよい。
【0110】
たとえば、永続記憶装置1108は、1つまたは複数の構成要素あるいはデバイスを含んでよい。たとえば、永続記憶装置1108は、ハードドライブ、フラッシュメモリ、書換え可能光ディスク、書換え可能磁気テープ、または上記内容の何らかの組合せであってよい。また永続記憶装置1108によって使用される媒体は、取外し可能であってよい。たとえば、永続記憶装置1108用に取外し可能ハードドライブが使用されてよい。
【0111】
これらの例では、通信ユニット1110は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例では、通信ユニット1110は、ネットワークインターフェイスカードである。通信ユニット1110は、物理通信リンクとワイヤレス通信リンクの両方を使用することによって通信を提供してよい。
【0112】
入出力ユニット1112は、データ処理システム1100に接続されてよい他のデバイスを用いてデータの入出力を可能にする。たとえば、入出力ユニット1112は、キーボード、マウスもしくは他の何らかの適切な入力デバイス、またはデバイスの組合せによってユーザ入力のための接続を提供することができる。さらに、入出力ユニット1112は、プリンタに出力を送信してよい。ディスプレイ1114は、ユーザに情報を表示するための機構を提供する。
【0113】
オペレーティングシステム、アプリケーションまたはプログラムのための命令は、記憶デバイス1116に置かれてよく、この記憶デバイスは、通信ファブリック1102を介してプロセッサユニット1104と通信している。これらの有利な例では、命令は、永続記憶装置1108の関数形式である。これらの命令は、プロセッサユニット1104によって実行するためにメモリ1106にロードされてよい。それぞれ異なる実施形態のプロセスは、メモリ1106などのメモリに置かれてよいコンピュータ実施命令を使用して、プロセッサユニット1104によって実施することができる。
【0114】
これらの命令は、プロセッサユニット1104内のプロセッサによって読み出し実行できるプログラム命令、プログラムコード、コンピュータ使用可能プログラムコードまたはコンピュータ読取り可能プログラムコードと呼ばれる。それぞれ異なる実施形態のプログラムコードは、メモリ1106や永続記憶装置1108など、それぞれ異なる物理的なまたはコンピュータ読取り可能な記憶媒体で具現化することができる。
【0115】
プログラムコード1118は、コンピュータ読取り可能媒体1120に関数形式で置かれ、このコンピュータ読取り可能媒体1120は、選択的に取外し可能であり、プロセッサユニット1104によって実行するためにデータ処理システム1100にロードされてもよいし、データ処理システムに転送されてもよい。プログラムコード1118およびコンピュータ読取り可能媒体1120は、これらの例では、コンピュータプログラム製品1122を形成する。一例では、コンピュータ読取り可能媒体1120は、コンピュータ読取り可能記憶媒体1124であってもよいし、コンピュータ読取り可能信号媒体1126であってもよい。コンピュータ読取り可能記憶媒体1124は、たとえば、光学または磁気ディスクを含んでよく、この光学または磁気ディスクは、永続記憶装置1108の一部であるハードドライブなどの記憶デバイスに転送するために、永続記憶装置1108の一部であるドライブまたは他のデバイス内に挿入され、または置かれる。
【0116】
コンピュータ読取り可能記憶媒体1124は、データ処理システム1100に接続されたハードドライブ、サムドライブまたはフラッシュメモリなどの永続記憶装置の形をとることもできる。一部の場合では、コンピュータ読取り可能記憶媒体1124は、データ処理システム1100から取外し可能でないことがある。これらの例では、コンピュータ読取り可能記憶媒体1124は、プログラムコード1118を伝播または送信する媒体ではなく、プログラムコード1118を格納するために使用される物理的なまたは有形の記憶デバイスである。コンピュータ読取り可能記憶媒体1124は、コンピュータ読取り可能有形記憶デバイスまたはコンピュータ読取り可能物理記憶デバイスとも呼ばれる。換言すると、コンピュータ読取り可能記憶媒体1124は、人が接触できる媒体である。
【0117】
あるいは、プログラムコード1118は、コンピュータ読取り可能信号媒体1126を使用してデータ処理システム1100に転送することができる。コンピュータ読取り可能信号媒体1126は、たとえば、プログラムコード1118を含んでいる伝播されたデータ信号であってよい。たとえば、コンピュータ読取り可能信号媒体1126は、電磁気信号、光信号もしくは他の任意の適切なタイプの信号、または信号の組合せであってよい。これらの信号は、ワイヤレス通信リンク、光ファイバケーブル、同軸ケーブル、ワイヤもしくは他の任意の適切なタイプの通信リンク、またはリンクの組合せなど、通信リンクを介して送信されてよい。換言すると、例示的な例では、通信リンクまたはその接続は、物理的であってもよいし、ワイヤレスであってもよい。
【0118】
一部の有利な実施形態では、プログラムコード1118は、データ処理システム1100内で使用するために、コンピュータ読取り可能信号媒体1126によって別のデバイスまたはデータ処理システムから永続記憶装置1108にネットワークを介してダウンロードすることができる。たとえば、サーバデータ処理システム内のコンピュータ読取り可能記憶媒体に格納されたプログラムコードは、ネットワークを介してサーバからデータ処理システム1100にダウンロードすることができる。プログラムコード1118を提供するデータ処理システムは、プログラムコード1118を格納し送信できるサーバコンピュータ、クライアントコンピュータまたは他の何らかのデバイスであってよい。
【0119】
データ処理システム1100について示された様々な構成要素は、それぞれ異なる実施形態が実装され得るやり方にアーキテクチャ上の制限を設けるためのものではない。それぞれ異なる有利な実施形態は、データ処理システム1100について示されたものに加えた、またはその代わりの構成要素を含むデータ処理システムで実装されてよい。図11に示された他の構成要素は、示された例示的な例から変更されてよい。それぞれ異なる実施形態は、プログラムコードを実行できる任意のハードウェアデバイスまたはシステムを使用して実装されてよい。一例として、データ処理システム1100は、無機的な構成要素と統合された有機的な構成要素を含んでもよいし、人間を除く有機的な構成要素で完全に構成されてもよい。たとえば、記憶デバイスは、有機半導体で構成されてよい。
【0120】
別の有利な例では、プロセッサユニット1104は、特定の使用のために製造または構成される回路を有するハードウェアユニットの形をとってよい。このタイプのハードウェアは、操作を実施するように構成される記憶装置からプログラムコードをメモリにロードする必要なしに操作を実施することができる。
【0121】
たとえば、プロセッサユニット1104がハードウェアユニットの形をとる場合、プロセッサユニット1104は、回路システム、特定用途向け集積回路(ASIC:application specific integrated circuit)、プログラマブル論理デバイス、またはいくつかの操作を実施するように構成された他の何らかの適切なタイプのハードウェアであってよい。プログラマブル論理デバイスでは、デバイスは、いくつかの操作を実施するように構成される。デバイスは、後に再構成されてもよいし、いくつかの操作を実施するように永続的に構成されてもよい。プログラマブル論理デバイスの例には、たとえば、プログラマブル論理アレイ、プログラマブルアレイ論理、フィールドプログラマブル論理アレイ、フィールドプログラマブルゲートアレイ、および他の適切なハードウェアデバイスが含まれる。このタイプの実装形態では、それぞれ異なる実施形態のプロセスがハードウェアユニットで実行されるので、プログラムコード1118は省くことができる。
【0122】
別の有利な例では、プロセッサユニット1104は、コンピュータおよびハードウェアユニットに見られるプロセッサの組合せを使用して実装されてよい。プロセッサユニット1104は、プログラムコード1118を実行するように構成された、いくつかのハードウェアユニットおよびいくつかのプロセッサを有してよい。この示された例では、プロセスの一部は、いくつかのハードウェアユニットで実装されてよく、他のプロセスは、いくつかのプロセッサで実装されてよい。
【0123】
別の例では、バスシステムが、通信ファブリック1102を実装するのに使用されてよく、またシステムバスや入出力バスなど、1つまたは複数のバスで構成されてよい。もちろん、バスシステムは、バスシステムに取り付けられたそれぞれ異なる構成要素またはデバイスの間のデータ転送に提供する任意の適切なタイプのアーキテクチャを使用して実装することができる。
【0124】
追加として、通信ユニット1110は、データを送信し、データを受信し、またはデータを送受信するいくつかのデバイスを含んでよい。通信ユニット1110は、たとえば、モデムまたはネットワークアダプタ、2つのネットワークアダプタ、あるいはその何らかの組合せであってよい。さらに、メモリは、たとえば通信ファブリック1102内に存在し得るインターフェースおよびメモリコントローラハブ内で見られるようなメモリ1106またはキャッシュであってよい。
【0125】
示されたそれぞれ異なる実施形態内のフローチャートおよびブロック図は、有利な一実施形態における装置および方法の何らかの可能な実装形態のアーキテクチャ、機能性および操作を示している。この点で、フローチャートまたはブロック図中の各ブロックは、モジュール、セグメント、関数、または操作またはステップの一部を表し得る。たとえば、ブロックのうちの1つまたは複数は、プログラムコードとして、ハードウェア、またはプログラムコードとハードウェアの組合せで実装されてよい。ハードウェアで実装される場合、ハードウェアは、たとえば、フローチャートまたはブロック図中の1つまたは複数の操作を実施するように製造または構成される集積回路の形をとってよい。
【0126】
有利な一実施形態の一部の代替実施形態では、ブロック内に記載された1つまたは複数の機能が、図に示された順序以外で行われてもよい。たとえば、一部の場合では、連続して示された2つのブロックは、実質的に同時に実行されてもよいし、ブロックは、関与する機能性に応じて、時々逆の順序で実施されてもよい。フローチャートまたはブロック図に示されたブロックに加えて、他のブロックを追加することもできる。
【0127】
それぞれ異なる有利な実施形態についての説明は、例示および説明のために提示されており、網羅的なものでも、開示された形に実施形態を制限するためのものでもない。多くの修正形態および変形形態が、当業者には明らかになろう。さらに、それぞれ異なる有利な実施形態は、他の有利な実施形態と比べて異なる利点を提供することができる。選択された1つまたは複数の実施形態は、実施形態の原理、実用的な適用例について最もよく説明するために選ばれ述べられており、当業者が、企図された特定の使用に適するような様々な修正を伴う様々な実施形態について本開示を理解することを可能にする。
【符号の説明】
【0128】
100 位置識別環境
102 プラットフォーム
104 環境
106 乗物
108 航空機
112 開放
114 閉鎖
116 特徴
110 ロボットマニピュレータ
118 位置
120 開始位置
122 現在位置
124 ロケーション
126 方向
128 プラットフォームコントローラ
130 位置識別子
132 筺体
134 マウント構造物
136 カメラシステム
138 位置計算器
140 画像
142 識別された位置
144 パースペクティブ
146 視野
148 画像フレーム
150 フレーム
152 識別されたロケーション
154 識別された方向
200 位置計算器
202 画像
204 フレーム
206 画像処理機能
208 特徴識別機能
209 コントラスト強調
210 追跡点選択機能
212 点追跡機能
214 計算点選択機能
216 位置変更計算機能
218 識別位置計算機能
220 識別された位置
222 出力
300 航空機
306 位置識別子
308 位置識別子
310 開放環境
302 航空機
304 把持機構
312 建物
314 木
400 航空機
402 閉鎖環境
404 位置識別子
406 物体
408 パターン
409 床
410 パターン
411 壁
500 ロボットマニピュレータ
502 部品/支持部品
504 支持構造物
506 アーム支持
508 アーム
510 エンドエフェクタ
512 床
514 関節
516 肘関節/関節
518 関節
520 ロボットコントローラ
522 位置識別子
524 留め具
526 継ぎ目
600 位置識別子
602 筺体
604 開口部
606 窓
608 電源コネクタ
610 データコネクタ
612 マウント構造物
614 構造物
616 マウント開口部
700 画像
702 画像フレーム
704 航空機
706 点
708 点
710 点
712 点
714 点
716 点
718 点
720 線
800 画像
802 点
804 点
806 点
808 破線
810 破線
812 破線
814 線
816 矢印
1100 データ処理システム
1102 通信ファブリック
1104 プロセッサユニット
1106 メモリ
1108 永続記憶装置
1110 通信ユニット
1112 入出力ユニット
1114 ディスプレイ
1116 記憶デバイス
1118 プログラムコード
1120 コンピュータ読取り可能媒体
1122 コンピュータプログラム製品
1124 コンピュータ読取り可能記憶媒体
1126 コンピュータ読取り可能信号媒体

【特許請求の範囲】
【請求項1】
プラットフォームの位置を識別するための方法であって、
プラットフォームが動いている間、プラットフォームに関連するカメラシステムによって生成された一連の画像内の特徴を識別するステップと、
一連の画像内の特徴の位置の移動からカメラシステムのパースペクティブの移動を識別するステップと、
パースペクティブの移動に基づいてプラットフォームの位置の変化を識別するステップと
を含む方法。
【請求項2】
プラットフォームの位置の変化に基づいてプラットフォームの現在位置を識別するステップをさらに含む、請求項1に記載の方法。
【請求項3】
プラットフォームの現在位置を識別するステップが、プラットフォームの位置の変化およびプラットフォームの開始位置に基づいてプラットフォームの現在位置を識別するステップを含む、請求項2に記載の方法。
【請求項4】
プラットフォームの現在位置に基づいてプラットフォームの動きを制御するステップをさらに含む、請求項2に記載の方法。
【請求項5】
プラットフォームの位置が、3次元座標系内のプラットフォームのロケーションと、3次元座標系内のプラットフォームの方向とを含む、請求項1に記載の方法。
【請求項6】
特徴を識別するステップが、カメラシステムの視野で環境内の特徴に対応する一連の画像のいくつかのピクセルを識別するステップを含む、請求項1に記載の方法。
【請求項7】
一連の画像内の特徴を識別するステップが、
カメラシステムから一連の画像のうちの現在の画像を受け取るステップと、
カメラシステムの画像フレーム内の複数の第1のロケーションを識別するステップであって、複数の第1のロケーションのそれぞれが、一連の画像のうちの現在の画像内の特徴のうちの1つに対応する、ステップと、
画像フレーム内の複数の第2のロケーションを識別するステップであって、複数の第2のロケーションのそれぞれが、一連の画像のうちの前の画像内の特徴のうちの1つに対応するステップと
を含む、請求項1に記載の方法。
【請求項8】
カメラシステムのパースペクティブの移動を識別するステップが、
第1のロケーションのうちの選択されたロケーションを選択するステップと、
第1のロケーションのうちの選択されたロケーションと同じ特徴に対応する第2のロケーションの選択されたロケーションを識別するステップと、
画像フレーム内の第1のロケーションのうちの選択されたロケーションと、画像フレーム内の第2のロケーションのうちの選択されたロケーションとの間の差からカメラシステムのパースペクティブの移動を識別するステップと
を含む、請求項7に記載の方法。
【請求項9】
プラットフォームがロボットマニピュレータであり、カメラシステムがロボットマニピュレータに取り付けられる、請求項1に記載の方法。
【請求項10】
一連の画像を生成するように構成されたカメラシステムと、
カメラシステムが動いている間、カメラシステムによって生成された一連の画像内の特徴を識別するステップと、一連の画像内の特徴の位置の移動からカメラシステムのパースペクティブの移動を識別するステップと、パースペクティブの移動に基づいてカメラシステムの位置の変化を識別するステップとを行うように構成された位置計算器と
を備える装置。
【請求項11】
位置計算器が、カメラシステムの位置の変化に基づいてカメラシステムの現在位置を識別するステップを行うようにさらに構成される、請求項10に記載の装置。
【請求項12】
位置計算器が、カメラシステムの位置の変化およびカメラシステムの開始位置に基づいてカメラシステムの現在位置を識別するステップを行うように構成される、請求項11に記載の装置。
【請求項13】
カメラシステムの位置が、3次元座標系内のカメラシステムのロケーションと、3次元座標系内のカメラシステムの方向とを備える、請求項10に記載の装置。
【請求項14】
位置計算器が、カメラシステムの視野で環境内の特徴に対応する一連の画像内のピクセル群を識別するステップを行うように構成される、請求項10に記載の装置。
【請求項15】
位置計算器が、
カメラシステムから一連の画像のうちの現在の画像を受け取るステップと、
カメラシステムの画像フレーム内の複数の第1のロケーションを識別するステップであって、複数の第1のロケーションのそれぞれが一連の画像のうちの現在の画像内の特徴のうちの1つに対応する、ステップと、
画像フレーム内の複数の第2のロケーションを識別するステップであって、複数の第2のロケーションのそれぞれが一連の画像のうちの前の画像内の特徴のうちの1つに対応する、ステップとを行うように構成される、請求項10に記載の装置。
【請求項16】
位置計算器が、
第1のロケーションのうちの選択されたロケーションを選択するステップと、
第1のロケーションのうちの選択されたロケーションと同じ特徴に対応する第2のロケーションのうちの選択されたロケーションを識別するステップと、
画像フレーム内の第1のロケーションと画像フレーム内の第2のロケーションとの間の差からカメラシステムのパースペクティブの移動を識別するステップとを行うように構成される、請求項15に記載の装置。
【請求項17】
筺体であって、カメラシステムおよび位置計算器が筺体内に含まれている、筺体と、
筺体をプラットフォームに取り付けるように構成されたマウント構造物と
をさらに備える、請求項10に記載の装置。
【請求項18】
マウント構造物が、航空機およびロボットマニピュレータから選択されたプラットフォームに筺体を取り付けるように構成される、請求項17に記載の装置。
【請求項19】
カメラシステムが、少なくともおよそ100フレーム/秒のフレームレートを有するカメラを備える、請求項10に記載の装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate


【公開番号】特開2013−40932(P2013−40932A)
【公開日】平成25年2月28日(2013.2.28)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−174392(P2012−174392)
【出願日】平成24年8月6日(2012.8.6)
【出願人】(500520743)ザ・ボーイング・カンパニー (773)
【氏名又は名称原語表記】The Boeing Company
【Fターム(参考)】