(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-30
(45)【発行日】2024-06-07
(54)【発明の名称】異なる座標フレーム間の制約を用いた較正の最適化
(51)【国際特許分類】
G06T 7/70 20170101AFI20240531BHJP
B25J 9/10 20060101ALI20240531BHJP
【FI】
G06T7/70 B
B25J9/10 A
(21)【出願番号】P 2023527375
(86)(22)【出願日】2021-10-15
(86)【国際出願番号】 US2021055192
(87)【国際公開番号】W WO2022098489
(87)【国際公開日】2022-05-12
【審査請求日】2023-07-07
(32)【優先日】2020-11-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】521430508
【氏名又は名称】イントリンジック イノベーション エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】ホルツ,ディルク
【審査官】藤原 敬利
(56)【参考文献】
【文献】米国特許出願公開第2018/0307941(US,A1)
【文献】米国特許出願公開第2017/0094251(US,A1)
【文献】特開2019-155556(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G06T 1/00- 1/40
G06T 3/00- 7/90
G06V 10/00-20/90
(57)【特許請求の範囲】
【請求項1】
1つ以上のコンピュータによって実施される方法であって、前記方法が、
複数のセンサと複数のロボットとを含む複数の較正エンティティを備える環境の初期モデルを取得することであって、前記複数のセンサの各々が、前記環境内の1つ以上の較正エンティティによる移動を観測するように構成されている、前記初期モデルを取得することと、
前記環境内の前記複数のロボットによる移動を表す移動データを生成する較正プログラムを実行することと、
前記較正プログラムの実行中に前記複数のロボットによる前記移動後に前記センサが較正エンティティの姿勢をどのように観測するかを表すセンサデータを生成することと、
前記センサデータから、複数の異なる制約ペアを生成することであって、前記複数の異なる制約ペアの各々が、異なる座標フレームにおいて観測される較正エンティティの姿勢間の関係を指定する、前記複数の異なる制約ペアを生成することと、
複数の較正値を生成するために、前記複数の異なる制約ペアについて1つ以上の最適化プロセスを実施することと、
前記複数の較正値を使用して、前記環境の更新されたモデルを生成することと、を含む、方法。
【請求項2】
前記複数の異なる制約ペアの各々が、較正エンティティによって各々定義される少なくとも2つの異なる座標フレームを含む、請求項1に記載の方法。
【請求項3】
前記複数の異なる制約ペアの各制約ペアが、異なる座標フレームにおいて観測される少なくとも較正エンティティを含む、請求項1又は2に記載の方法。
【請求項4】
前記複数の異なる制約ペアが、第2の座標フレーム内で観測される第1の座標フレームの測定された相対姿勢と計算された相対姿勢との間の関係を定義する相対姿勢制約を含み、前記第1の座標フレームが、第1の較正エンティティによって定義され、前記第2の座標フレームが、第2の較正エンティティによって定義され、前記第1の座標フレームの前記測定された相対姿勢及び前記計算された相対姿勢が、前記第2の座標フレームに対して観測可能な並進位置及び回転位置の両方を含む、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記複数の異なる制約ペアが、較正エンティティによって各々定義される2つの異なる座標フレームにおいて観測される較正エンティティの特徴姿勢間の関係を定義する特徴姿勢制約を含み、前記較正エンティティの前記特徴姿勢が、並進位置及び回転位置の両方を含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記複数の異なる制約ペアが、較正エンティティによって各々定義される2つの異なる座標フレームにおいて観測される較正エンティティの点別姿勢間の関係を定義する特徴点制約を含み、前記較正エンティティの前記点別姿勢が、並進位置を含む、請求項1~5のいずれか一項に記載の方法。
【請求項7】
前記複数のセンサの各々が、カメラ又はレーザトラッカである、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記複数の較正エンティティの各々が、センサ、ロボット、及び物体であり得、前記物体が、マーカ又は点別特徴である、請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記異なる座標フレームの各々が、基準座標フレームに対して前記センサデータで表される姿勢を定義し、前記基準座標フレームが、ワークセルモデルにおける所定の座標フレームを含む、請求項1~8のいずれか一項に記載の方法。
【請求項10】
前記複数の異なる制約ペアについて1つ以上の最適化プロセスを実施することが、前記複数の異なる制約ペアの各制約ペアについて、2つの異なる座標フレームにおいて観測された較正エンティティの姿勢間のローカル誤差を定量化することと、前記複数の異なる制約ペアの各制約ペアについて定量化された前記ローカル誤差に基づいてグローバル誤差を定量化することと、1つ以上のオプティマイザを用いて前記グローバル誤差を最小化することと、を含む、請求項1~8のいずれか一項に記載の方法。
【請求項11】
前記較正エンティティの姿勢間の定量化された前記ローカル誤差が、基準座標フレームに対するものである、請求項10に記載の方法。
【請求項12】
前記複数の異なる制約ペアについて1つ以上の最適化プロセスを実施することが、前記複数の異なる制約ペアの各制約ペアについて、第2の座標フレームにおいて観測された第1の座標フレームの測定された相対姿勢と計算された相対姿勢との間のローカル誤差を定量化することを含み、前記第1の座標フレームが、第1の較正エンティティによって定義され、前記第2の座標フレームが、第2の較正エンティティによって定義される、請求項1~11のいずれか一項に記載の方法。
【請求項13】
前記環境の前記更新されたモデルを使用して第2の複数の異なる制約ペアを生成することと、
第2の複数の較正値を生成するために、前記第2の複数の異なる制約ペアについて前記1つ以上の最適化プロセスを実施することと、
前記第2の複数の較正値を使用して、前記環境の第2の更新されたモデルを生成することと、を更に含む、請求項1~12のいずれか一項に記載の方法。
【請求項14】
1つ以上のコンピュータによって実行されたときに、前記1つ以上のコンピュータに請求項1~13のいずれか一項に記載の方法のそれぞれの動作を実施させる命令を記憶する1つ以上のコンピュータ可読記憶媒体。
【請求項15】
1つ以上のコンピュータと、1つ以上のコンピュータによって実行されたときに、前記1つ以上のコンピュータに請求項1~13のいずれか一項に記載の方法のそれぞれの動作を実施させる命令を記憶する1つ以上の記憶デバイスと、を備える、システム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年11月4日に出願された米国特許出願第17/089,332号の優先権を主張する。前述の出願の開示は、その全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
本明細書は、ロボット工学に関し、より具体的には、動作環境におけるロボット及びセンサの較正を最適化することに関する。
【0003】
ロボット工学では、タスクを実施するためのロボットの物理的移動は、手動の事前プログラミングによってスケジュールされることが多い。例えば、ボックスを移動させる倉庫ロボットは、倉庫の入口でボックスをピックアップし、それを移動させ、それを倉庫のターゲットゾーンに置くようにプログラムすることができる。別の例として、構築ロボットは、梁をピックアップし、それを橋のデッキ上に下ろすようにプログラムすることができる。これらのアクションの各々は、高い精度を必要とする多くの移動を含み得るため、ロボットの姿勢又は検出された物体の姿勢の測定におけるわずかな誤差がタスクの失敗をもたらす可能性がある。更に、プロセスの初期段階での誤差は、タスクの後半でのロボット移動の累積誤差をもたらすことになり、更に、事前にプログラムされたスケジュールを用いたタスクが失敗する可能性がある。
【0004】
一部のシステムは、較正を最適化するために、ワークセルなどの動作環境においてハンド-アイ較正を使用している。ハンド-アイ較正では、ロボットのベースは、センサの座標フレームに対して定義された姿勢を有することができ、センサは、基準座標フレームに対してそれ自体の姿勢を有することができ、基準座標フレームは、世界モデル又はワークセルモデル内で予め決定することができる。
【0005】
理想的な動作シナリオでは、ワークセル内の複数のセンサ及びロボットの各々の位置及び配向は、基準座標フレーム、例えば、世界モデルの座標フレームに対して常に完全に測定されている。例えば、理想的なシナリオは、予めプログラムされたワークフローが基づくワークセルのためのCADモデルにおいて予期されるように正確に位置決めされた複数のセンサ及びロボットを有している。
【0006】
しかしながら、実際には、ロボット及びセンサの実際の場所と記録された初期位置との間にはいくらかの差異が存在することが多く、これは、設置時又は構成要素が較正されたときに発生する可能性がある。これにより、不一致の誤差が生じる可能性がある。例えば、2つのカメラは、世界座標フレームにおいて異なる位置を有するものとして同じ物体を観測する可能性があり、これは、ワークセルの2つの構成要素が接触する必要がある場合など、短い距離が重要である場合に特に問題となる。別の例では、現実世界において近接して位置決めされた2つのロボットは、わずかに不正確な姿勢較正を有する2つの異なるセンサを通して観測すると、世界座標フレームにおいてわずかに異なる位置に現れる場合がある。加えて、ロボット及びセンサは、タスクを実施している間に物理的に移動する場合があるため、ロボット及びセンサの実際の姿勢は、予期される姿勢と異なる可能性がある。したがって、ロボット及びセンサの1つ以上の現在の姿勢は、それぞれの予期される姿勢から逸脱する可能性がある。較正誤差はまた、特に、構成要素、例えば、ロボット上のツールが、ロボットベースから離れて移動するときに蓄積される可能性がある。したがって、多くの場合、誤較正された構成要素からの累積誤差により、正常なワークセル性能を保証することは困難である。
【発明の概要】
【0007】
本明細書は、システムが、ロボット動作環境における構成要素の較正を最適化するために、複数の異なる座標フレームにおける複数の較正結果及び外部測定をどのように使用することができるかを説明する。これらの技術は、異なる座標フレームで観測される最適化可能な較正エンティティの較正誤差を低減する自動化された方法を提供する。
【0008】
異なる座標フレームにおいて測定された姿勢のタイプ及び姿勢間の関係を指定する複数の異なる制約ペアを定義することによって、システムは、複数の異なる制約ペアの各々についてそれぞれのローカル誤差を自動的に定義し、次いで、例えば、各ローカル誤差から生成されるグローバル誤差を最適化することによって、環境内の各センサ、ロボット、又は他の物体の調整された姿勢を計算するために複数の較正値を取得することができる。本明細書は、較正を実施するのに適した複数の例示的な制約ペアについて説明する。概して、各制約ペアは、少なくとも2つの異なる座標フレームを含み、各座標フレームは、基準座標フレーム、例えば、世界座標フレームに対する姿勢を定義する。例示的な制約ペアとして、他のものに加えて、相対姿勢制約、特徴姿勢制約、特徴点制約が挙げられる。
【0009】
本明細書において説明される主題の特定の実施形態は、以下の利点のうちの1つ以上を実現するように実装することができる。
【0010】
以下に説明される技術は、環境内の2以上のセンサによって検出される同じ較正エンティティが、基準座標フレーム、例えば、世界座標フレームに対して実質的に同じ場所に現れるように較正され得るように使用することができる。その結果、環境に対する較正されたワークフローの全体的な性能を大幅に向上させることができる。較正の精度は、複数の異なる制約ペアについて全てのローカル誤差を解決することなく改善することができる。加えて、制約ペアの数は、柔軟かつスケーラブルであり、これは、制約ペアが較正技術の動作に影響を及ぼすことなく、局所的必要性に応じて追加又は除去され得ることを意味する。
【0011】
加えて、開示される技術は、世界モデル内のあらゆる最適化可能な較正エンティティが任意の他の較正エンティティに対して較正され得るように、一度に1つの最適化可能な較正エンティティのみを別の較正エンティティに対して較正する従来の較正の較正結果を組み合わせることができる。
【0012】
更に、開示される技術は、モデル内の制約ペアを使用する較正エンティティの較正結果を、他の制約ペアを使用する同じ較正エンティティの他の較正結果に対して比較し、較正結果が他の較正結果と異なるかどうかを判定し、例えば、誤差関数を使用して、較正結果と他の較正結果との間の差を定量化することによって、不正確な較正結果を識別及び定量化することができる。それに応じて、システムは、較正結果が最適化のために考慮されるかどうかを判定し、較正プロセスにおける誤りを識別することができる。
【0013】
本明細書の主題の1つ以上の実施形態の詳細は、添付の図面及び以下の説明に記載される。主題の他の特徴、態様、及び利点は、説明、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0014】
【
図1】環境における較正を最適化するための例示的な較正システムを示す。
【
図2A】環境における相対姿勢制約グラフの例を示す。
【
図2B】環境における相対姿勢制約グラフの別の例を示す。
【
図3】環境における特徴姿勢制約グラフの例を示す。
【
図5】環境における異なる制約ペアを使用して較正を最適化する例示的なプロセスのフロー図である。
【
図6A】例示的な環境において適用される相対姿勢制約を示す。
【
図6B】
図6Aの例示的な環境において適用される特徴姿勢制約を示す。
【
図6C】
図6Aの例示的な環境において適用される特徴点制約を示す。
【
図7】
図5の較正を最適化する例示的なプロセスに基づいて較正値を取得する例示的なプロセスのフロー図である。
【0015】
種々の図面における同様の参照番号及び名称は、同様の要素を示す。
【発明を実施するための形態】
【0016】
図1は、動作環境における較正を最適化するための例示的な較正システム100を示している。この例では、ロボットワークセル170が、例示的な動作環境として使用される。本明細書に記載される技術はまた、ワークセルではない他の動作環境のための較正を調整するために使用することができる。システム100は、較正実行エンジン110及びロボットインターフェースサブシステム160を含む。較正実行エンジン110は、制約生成器130、1つ以上のオプティマイザ150、及びワークフロースケジュールエンジン120を含む。システム100は、任意の適切な通信ネットワーク、例えば、イントラネット若しくはインターネット、又はネットワークの組み合わせを介して互いに結合された1つ以上の場所にある1つ以上のコンピュータ上にインストールされるコンピュータプログラムとして実装することができる。ワークフロースケジュールエンジン120は、1つ以上のコンピュータと、1つ以上のコンピュータによって実行されたときに、ワークセル170内のロボットのためのワークフロー125を生成及び更新する動作を1つ以上のコンピュータに実施させるように動作可能な命令を記憶する1つ以上の記憶デバイスとを備えるシステムである。
【0017】
システム100は、較正実行エンジン110に、調整165bをロボットインターフェースサブシステム160に送信して、ワークセル170内の1つ以上の最適化可能な較正エンティティ、例えば、ロボット170a~n、センサ171a~nの姿勢を較正するか、又はコマンド155をロボットインターフェースサブシステム160に送信して、ワークセル170内の1つ以上の最適化可能な較正エンティティを駆動するかのいずれかを命令することができる。コマンド155は、オプティマイザ150によって取得された調整165aを組み込むことによってワークフロースケジュールエンジン120によって生成されるワークフロー125に基づくことができる。
図1に示すように、センサ171a~nは、ロボット170a~nと1対1の対応を有する必要はなく、ロボットに結合されるか、又は移動可能である必要はない。実際、各ロボットは、複数のセンサを有することができ、センサは、ワークセル170内の静止表面又は移動可能な表面上に装着され得る。同様に、マーカ172a~n及び点別特徴173a~nは、必ずしもロボットに結合されない。しかしながら、点別特徴173a~nは、ロボット170a~nの一部であり得る。センサ、ロボット、マーカ、及び点別特徴の総数は、互いに独立しており、ローカルサイト又はタスク要件に従ってカスタマイズされ得る。
【0018】
較正エンティティは、世界モデル内の較正プロセスに関与するワークセルの態様である。したがって、較正エンティティは、ほんの数例を挙げると、ロボット若しくはロボットの一部、物体、例えば、マーカ、ロボットによって作業されている点別特徴若しくはワークピース、又はワークセル内のセンサであり得る。各ロボットは、複数の関節を有することができる。例えば、多くの産業用ロボットは、ベースに6つの関節を有する。センサは、ほんの数例を挙げると、ロボット動作を誘導するための任意の適切なセンサ、例えば、カメラなどの画像センサ、3Dセンサ、又は、レーザトラッカなどの点センサであり得る。
【0019】
典型的には、較正エンティティは、最適化可能な較正エンティティであり、1つ以上の最適化プロセスに従って、世界座標フレームに対して較正することができることを意味する。一部の実装形態では、システム100はまた、別の座標フレームに対して世界座標フレーム自体を較正することもできる。
図1に示すように、ワークセル170は、1つ以上のロボット170a~n、1つ以上のセンサ171a~n、1つ以上のマーカ172a~n、及び1つ以上の点別特徴173a~nなどの較正エンティティを含み、最適化可能な較正エンティティは、ロボット170a~n及び171a~nを含む。
【0020】
姿勢は、環境内の較正エンティティの位置及び配向を定義する。較正エンティティの位置は、三次元並進自由度を使用して表すことができる。例えば、デカルト基準では、位置は、座標フレームに対してx、y、及びz軸に投影された較正エンティティの座標であり得る。較正エンティティの配向は、三次元回転自由度を使用して表すことができる。例えば、デカルト基準では、配向は、座標フレームに対するx、y、及びz軸に沿った較正エンティティのオイラー角であり得る。一部の実装形態では、配向は、回転四元数を使用して四次元の自由度を有することができる。場合によっては、較正エンティティの自由度を使用して、適切なセンサを選択することができる。例えば、姿勢が並進自由度及び回転自由度の両方を有する場合、画像センサ、例えば、カメラを較正エンティティのために選択することができる。別の例として、姿勢が並進自由度のみを有する場合、レーザトラッカなどの点センサを較正エンティティのために選定することができる。
【0021】
ワークセル170の較正を実施するために、ロボットインターフェースサブシステム160は、最初に、入力として、観測145を較正実行エンジン110に出力することができる。観測145は、ワークセル170内の1つ以上の較正エンティティの姿勢を定義するデータを含み得る。次に、制約生成器130は、観測145を入力として受け取り、次いで、ユーザ入力135に基づいて制約ペア185を1つ以上のオプティマイザ150に出力することができる。較正実行エンジン110の1つ以上のオプティマイザ150は、1つ以上の最適化可能な較正エンティティの姿勢を調整するためにロボットインターフェースサブシステム160に調整165bを出力するか、前の時間ステップにおいてワークフロースケジュールエンジン120によって取得されたワークフローに調整165aを出力するか、又はその両方を行うことができる。ワークフロースケジュールエンジン120は、ワークフロー125を更新するときに調整165aを組み込むことができ、それに応じてロボット170a~nを駆動するためにロボットインターフェースサブシステム160にコマンド155を送信することができる。
【0022】
制約185は、複数の異なるタイプの制約、例えば、ほんの数例を挙げると、相対姿勢制約、特徴姿勢制約、特徴点制約、距離制約、連鎖制約、又は組み合わせ制約を含み得る。制約のタイプの各々は、最適化可能な較正エンティティの少なくとも1つのペアを含み、したがって、それらは制約ペアと称されることもある。
【0023】
制約タイプの詳細、システム100がワークセル170のための制約ペアを生成すること、及びシステム100が較正プロセスを最適化することは、以下でより詳細に説明される。
【0024】
図2Aは、環境における例示的な相対姿勢制約グラフ100aを示している。相対姿勢制約グラフ100aは、環境内の種々の較正エンティティ間の相対姿勢制約関係を表す。較正システムは、相対姿勢制約グラフを使用して、環境内の制約ペアを表すことができる。例えば、環境はロボットワークセルであり得る。
【0025】
制約グラフのノードは、較正エンティティを表すことができる。
図2Aに示すように、例示的な相対姿勢制約グラフ200aは、以下の較正エンティティ、すなわち、世界座標フレーム221、第1のロボットのベース223a、第2のロボットのベース223b、第1のカメラ225a、及び第2のカメラ225bを表すノードを含む。
【0026】
制約グラフのエッジは、較正エンティティ間の関係を表すことができる。例えば、相対姿勢制約グラフ200aの有向エッジは、第2の較正エンティティによって定義される座標フレームに対する第1の較正エンティティの相対姿勢を表す。例えば、エッジ205bは、ロボットベース223aによって定義される座標フレームに対するカメラ225bの姿勢を表す。
【0027】
図2Aの世界座標フレーム221は原点を有し、原点は、世界モデル、例えば、ワークセルモデルにおいて予め決定することができる。原点は固定されていると仮定され、世界座標フレームは通常固定されていると仮定され、ワークセル内のエンティティを較正するための全体的な基準として機能するため、座標フレームに対して世界原点の姿勢を定義することは通常、目的ではない。この文脈において、「固定された」とは、ワークセルが較正下にあるときに静的であり、最適化プロセスに関与しないことを意味する。したがって、世界座標フレームは、ワークセル又は世界モデルの基準座標フレームとして機能することができる。一部の実装形態では、ワークセル又は世界モデルは、1つの基準座標フレームのみを有する。
【0028】
ロボットのベースは、姿勢と、姿勢によって定義される座標フレームと、姿勢が測定される座標フレームとを有することができる。例えば、第1のロボット223aのベース及び第2のロボット223bのベースは各々、それぞれの原点及び座標フレームを定義する。ベース223aの原点は、世界座標フレームに対する姿勢201を有し、同様に、ベース223bの原点も、世界座標フレームに対する姿勢203を有する。それぞれのベース223a又は223bの原点の各姿勢201又は203は、並進自由度及び回転自由度の両方を有することができる。
【0029】
カメラはまた、姿勢、例えば、その焦点によって定義される姿勢、姿勢によって定義される座標フレーム、及び姿勢が測定される座標フレームを有することができる。例えば、各カメラ225a及び225bは、定義された焦点と、各焦点によって定義された対応する座標フレームとを有することができる。ノード225aによって表される第1のカメラは、ロボットベース223aの座標フレームに対する第1の姿勢205aと、ロボットベース223bの座標フレームに対する第2の姿勢207aと、世界座標フレームに対する第3の姿勢209aとを有することができる。同様に、ノード226bによって表される第2のカメラは、ロボットベース223aの座標フレームに対する第1の姿勢205bと、ロボットベース223bの座標フレームに対する第2の姿勢207bと、世界座標フレームに対する第3の姿勢209bとを有することができる。
【0030】
それぞれのロボットベースに対するカメラの焦点姿勢を取得することは、それぞれのロボット内の各関節の姿勢、並びに各関節の姿勢によって定義される座標フレームを取得することを含み得る。例えば、産業用ロボットは、6つの関節J1~J6を有することができ、各関節は、姿勢と、関節の姿勢に基づく座標フレームとを定義する。産業用ロボットベースに対するカメラの焦点姿勢は、ロボットの最後の関節J6に基づく座標フレームに対するカメラの焦点姿勢を、ロボットの後続の各関節を通して連鎖させることによって取得することができる。ロボットの後続の関節の各姿勢は、ロボットの先行する関節の姿勢に対して定義することができ、ロボットの第1の関節J1の姿勢は、ロボットベースの座標フレームに対して定義することができる。
【0031】
相対姿勢は、別の座標フレームに対する較正エンティティの姿勢であり得る。例えば、ロボットベース223aの座標フレームに対する第1のカメラ225aの第1の姿勢205aは、ロボットベース223aによって定義される座標フレームが基準座標フレームではないため、相対姿勢と称される。同様に、ロボットベース223bの座標フレームに対する第2のカメラ225bの第1の姿勢205bもまた、相対姿勢とみなされる。
【0032】
グラフ200a内の相対姿勢は、例えば、ハンド-アイ較正プロセスを使用することによって、又は直接測定によって、種々の方法で取得することができる。例えば、相対姿勢、例えば、相対姿勢205a及び205bは、ハンド-アイ較正を用いた複数のそれぞれの測定を使用して取得することができる。相対姿勢205aのためのハンド-アイ較正のために、ハンド-アイ較正は、ハンド-アイ較正プロセスの「ハンド」としてロボットベース223aと、「アイ」としてカメラ225aとを有することができる。代替として、又は加えて、他の相対姿勢、例えば、相対姿勢205b、207a、及び207bを、測定から取得することができ、測定された相対姿勢と称され得る。
【0033】
相対姿勢は、世界座標フレーム221に対するカメラ及びロボットベースの姿勢を通じて計算することもできる。例えば、相対姿勢205aは、世界座標フレーム221に対するロボットベース223aの姿勢201と、世界座標フレーム221に対するカメラ225aの姿勢209aとに基づいて計算することができる。相対姿勢205b、207a、及び207bは、同様に計算することができる。基準座標フレームに対する姿勢を通じて取得される相対姿勢は、計算された相対姿勢と称され得る。
【0034】
相対姿勢制約は、各々最適化可能な較正エンティティに基づいて、2つの異なる座標フレーム間の相対姿勢を最適化するために使用することができる。一部の実装形態では、2つの異なる座標フレームのうちの1つは、最適化可能ではない較正エンティティによって定義することができる。ハンド-アイ較正とは対照的に、相対姿勢制約は、環境内の2つの任意に選択された最適化可能な較正エンティティによって定義される2つの異なる座標フレーム間に適用することができる。例えば、
図2Aに示すように、第1の相対姿勢制約は、第1のロボットベース223aによって定義される第1の座標フレームと、第1のカメラ225aによって定義される第2の座標フレームとを有することができる。同様に、第2の相対姿勢制約は、第1のロボットベース223aによって定義される第1の座標フレームと、第2のカメラ226bによって定義される第2の座標フレームとを有することができる。
図2Aの残りの相対姿勢制約は、同様の方法で定義することができる。
【0035】
2つの異なる座標フレーム間の相対姿勢を最適化するために、本明細書で説明される較正システムは、最初に、ここでは上付き文字wで表される、基準座標フレーム、例えば、世界座標フレーム221を見出すことができる。次に、システムは、基準座標フレームに対する2つの異なる座標フレームA及びBの姿勢を、
【0036】
【数1】
として定義することができる。一部の実装形態では、
【0037】
【数2】
は、基準座標フレームに対する座標フレームA及びBの並進自由度及び回転自由度の両方を表すテンソル量である。あるいは、
【0038】
【数3】
はベクトルであり得る。例えば、
図2Aにおいて、座標フレームAは第1のロボットベース223aの座標フレームであり、座標フレームBは第1のカメラ225aの座標フレームである。次に、システムは、座標フレームAに対する座標フレームBの測定された相対姿勢、例えば、
【0039】
【数4】
を取得することができる。例えば、測定された相対姿勢
【0040】
【数5】
は、第1のロボットベース223aの座標フレームに対する第1のカメラ225aの姿勢205aであり得る。測定された相対姿勢
【0041】
【数6】
は、カメラを用いた円較正又はハンド-アイ較正によって取得することができる。測定された相対姿勢
【0042】
【数7】
は、正確であると仮定することができ、ベンチマークとして機能することができる。最後に、システムは、計算された相対姿勢
【0043】
【0044】
【0045】
そして、2つの座標フレームA及びBの各々の姿勢が十分に正確である場合、システムは、制約
【0046】
【数10】
を使用することができる。しかしながら、そうでない場合、システムは、残差によって
【0047】
【数11】
との間の差を以下のように定義することができる:
【0048】
【0049】
最後に、較正システムは、相対姿勢制約の最適化問題を次のように定義することができる:
【0050】
【0051】
残差の
【0052】
【数14】
は、種々の方法で定義することができる。一部の実装形態では、残差は誤差項の集約を表す。例えば、残差は、並進自由度及び回転自由度の両方からの誤差を組み込んだ、二乗平均平方根誤差(root mean square error、RMSE)を表すスカラであり得る。別の例では、残差は、それぞれ並進自由度及び回転自由度からの誤差を組み込んだ2つのRMSEを表す2つのスカラであり得る。相対姿勢制約において定義される最適問題の残差を最小化することによって、システムは、2つの座標フレームA及びBのそれぞれの所望の姿勢、例えば、
【0053】
【0054】
代替として、又は加えて、相対姿勢制約を、環境内の2つのロボットベースの2つの異なる座標フレーム間に適用することができる。
図2Bに示すように、例示的な相対姿勢制約は、世界座標フレーム222と、世界座標フレーム222に対する姿勢202及び姿勢202によって定義される第1の座標フレームを定義する第1のロボットベース224aと、世界座標フレーム222に対する別の姿勢204及び姿勢204によって定義される第2の座標フレームを定義する第2のロボットベース224bとを含む。測定された相対姿勢204は、第2のロボットベース224bの座標フレームに対する第1のロボットベース224aの姿勢である。計算された相対姿勢は、上述した方法で姿勢202及び204から計算することができる。
【0055】
本明細書に説明されるアプローチの利点は、それらが任意の数の較正エンティティにスケーリングされ得ることである。したがって、環境内のセンサ及びロボットの数は、3つ以上であり、例えば、10個のセンサ及び10個のロボット、又は100個のセンサ及び100個のロボットであり得る。
図2Aは、例示を容易にするために、2つのセンサ及び2つのロボットのみを示している。同様に、
図2Bは、同じ理由で2つのセンサのみを示している。
【0056】
第2の例示的な制約タイプは、特徴姿勢制約である。特徴姿勢制約は、同じエンティティが2つの異なる座標フレームから観測されるときに、較正エンティティの一貫した姿勢を強制する。異なる座標フレームは、共通の中間座標フレームに対して、第1及び第2の最適化可能な較正エンティティによって定義することができる。一部の実装形態では、共通の中間座標フレームは、世界座標フレーム、又は別の基準座標フレームである。一般性を失うことなく、特徴姿勢制約は、少なくとも第3の座標フレームが共通座標フレームとしての役割を果たすように、第1及び第2の最適化可能較正エンティティによって間接的に定義される2つの異なる座標フレーム間の相対姿勢制約を最適化するものとみなすことができる。特徴姿勢制約内の較正エンティティは、較正エンティティが並進自由度及び回転自由度の両方を有し、自由度が第1及び第2の最適化可能な較正エンティティによって定義される2つの異なる座標フレーム内で検出され得る限り、任意の形状、サイズ、及びタイプであり得る。例えば、較正エンティティは、センサ、ロボット、又はマーカであり得る。第1又は第2の最適化可能な較正エンティティは、センサ又はロボットであり得る。マーカは、センサによって検出することができる並進自由度及び回転自由度の両方を有する人工視覚マーカであり得る。例えば、マーカは、視覚的基準システムタグ、ARマーカ、又は何らかの他の種類のマーカであり得る。かかるマーカを観測するためのセンサは、任意の適切なカメラであり得る。
【0057】
図3は、環境における例示的な特徴姿勢制約グラフ300を示している。特徴姿勢制約グラフ300は、環境内の種々の較正エンティティ間の制約関係を表す。環境は、例えば、ロボットワークセルであり得る。
【0058】
図3に示すように、例示的な特徴姿勢制約グラフ300は、以下の較正エンティティ、すなわち、世界座標フレーム321、第1のカメラ323a、第2のロボット323b、第1のマーカ325a、及び第2のマーカ325bを表すノードを含む。特徴姿勢制約グラフ300の有向エッジは、第2の較正エンティティによって定義された座標フレームに対する第1の較正エンティティの相対姿勢を表す。例えば、307aは、カメラ323bによって定義される座標フレームに対するマーカ325aの姿勢を表す。
【0059】
世界座標フレーム321は、ワークセルモデルにおいて予め決定され、固定され得る。世界座標フレーム321は、静的であり、最適化プロセス中に修正されないため、基準座標フレームとして機能する。第1のカメラ323aの焦点は、第1の座標フレームと、世界座標フレーム321に対する座標フレームの姿勢301とを定義することができる。同様に、第2のカメラ323bの焦点は、第2の座標フレームと、世界座標フレーム321に対する座標フレームの姿勢303とを定義することができる。
【0060】
第1のマーカ325aを表すノードは、第3の座標フレーム、第1のカメラ323aの第1の座標フレームに対する第1のマーカ325aの第1の姿勢305a、第2のカメラ323bの第2の座標フレームに対する第1のマーカ325aの第2の姿勢307aを定義することができる。姿勢305a及び307aは、それぞれカメラ323a及び323bによって撮影された第1のマーカ325の画像データによって取得することができる。同様に、第2のマーカ325bのノードは、第4の座標フレーム、第1のカメラ323aの第1の座標フレームに対する第2のマーカ325bの第3の姿勢305b、並びに第2のカメラ323bの第2の座標フレームに対する第2のマーカ325bの第4の姿勢307bを定義する。姿勢305a、305b、307a、及び307bは、前述のように、姿勢が測定されるそれぞれの座標フレームに対するそれぞれのマーカの並進自由度及び回転自由度の両方を含み得る。
【0061】
特徴姿勢制約は、2つの異なるフレームによって観測される較正エンティティが、世界座標フレームに対して一貫した姿勢を現すように、2つの最適化可能較正エンティティによって定義される2つの異なる座標フレームの姿勢を最適化するために使用することができる。例えば、
図3に示すように、2つの異なる座標フレームは、第1のカメラ323aによって定義される座標フレーム及び第2のカメラ323bによって定義される座標フレームであり得、較正エンティティは、第1のマーカ325a又は第2のマーカ325bのいずれかであり得る。
【0062】
2つの異なる座標フレームA及びBの姿勢を最適化するために、較正システムは、最初に、上付き文字wによって記される基準座標フレームとして、世界座標フレーム321を定義することができる。次に、システムは、
【0063】
【数16】
つの異なる座標フレームA及びBの各々に対する較正エンティティの姿勢を定義することができる。
【0064】
【数17】
は、それぞれ座標フレームA及びBに対する較正エンティティの並進位置及び回転位置の両方を表すテンソル量である。一部の実装形態では、
【0065】
【数18】
は、ベクトルであり得る。次に、システムは、世界座標フレーム321に対する2つの座標フレームA及びBの姿勢を、
【0066】
【0067】
理想的には、第1及び第2の最適化可能な較正エンティティによって定義される2つの座標フレームA及びBの両方の姿勢が、世界座標フレーム321に対して正確である場合である。以下のように与えられる恒等性が保持されるべきである:
【0068】
【0069】
しかしながら、2つの座標フレームA及びBの2つの姿勢のいずれか1つが正確でないか、又はそれぞれの予期される姿勢からわずかにずれている場合、恒等性は保持されない。システムは、
【0070】
【数21】
との間の差を残差によって、以下のように定義することができる:
【0071】
【0072】
したがって、システムは、特徴姿勢制約の最適化問題を以下のように定義することができる:
【0073】
【0074】
【数24】
は、多くの方法で定義することができる。例えば、残差は、並進自由度及び回転自由度の両方からの誤差を組み込んだ二乗平均平方根誤差(RMSE)を表すスカラであり得る。別の例では、残差は、それぞれ並進自由度及び回転自由度からの誤差を組み込んだ2つのRMSEを表す2つのスカラであり得る。別の例では、残差はテンソルとすることができ、テンソルが恒等テンソルである場合、この残差の結果は最小化される。特徴姿勢制約において定義される最適問題の残差を最小化することによって、システムは、2つの座標フレームA及びBの所望の姿勢、例えば、
【0075】
【0076】
代替として、又は加えて、2つの相対姿勢制約が、特徴姿勢制約としての役割を果たすことができる。これを確認するために、第1の相対姿勢制約は、較正エンティティ、例えば、マーカによって定義される第1の座標フレームと、第1の最適化可能較正エンティティ、例えば、第1のセンサによって定義される第2の座標フレームとを有することができ、第2の相対姿勢制約は、マーカによって定義される第1の座標フレームと、第2の最適化可能較正エンティティ、例えば、第2のセンサによって定義される第3の座標フレームとを有することができる。第1の相対姿勢制約において、第1の座標フレームに対するマーカの第1の相対姿勢が、第1のセンサの姿勢を較正するために使用され得ると仮定する。第2の相対姿勢制約において、第2の座標フレームに対するマーカの第2の相対姿勢を第2のセンサの姿勢を較正するために使用することができ、これは、マーカを通して2つのセンサの姿勢を較正するための特徴姿勢制約と同等である。実際には、特徴姿勢制約と相対姿勢制約との間の差は、特徴姿勢制約が2つの座標フレーム間の相対姿勢を間接的に測定するのに対して、相対姿勢制約は2つの座標フレーム間の相対姿勢を直接的に測定するとみなすことができる。しかしながら、一部の状況では、特徴姿勢制約は、2つの異なる座標フレームの姿勢を較正するとき、相対姿勢制約よりも低い計算コストを有する。したがって、システムは、最適化プロセスの計算複雑性を低減するために、相対姿勢制約よりも特徴姿勢制約を選択してもよい。
【0077】
第3の例示的な制約タイプは、特徴点制約である。特徴点制約は、特徴姿勢制約と同様であるが、特徴点制約は、第1及び第2の最適化可能較正エンティティによって定義される2つの異なる座標フレームによって観測される較正エンティティの姿勢の代わりに、点別姿勢の測定を使用する。特徴点制約を使用して、共通の中間座標フレームに対する較正エンティティの一貫した点別姿勢を確実にすることができる。一部の実装形態では、共通の中間座標フレームは、世界座標フレーム、又は別の基準座標フレームである。特徴点制約はまた、少なくとも第3の座標フレームが共通座標フレームとしての役割を果たすように、第1及び第2の最適化可能較正エンティティによって間接的に定義される2つの異なる座標フレーム間の相対姿勢制約を最適化するものとみなすことができる。
【0078】
特徴点制約内の較正エンティティは、制約内の第1及び第2の最適化可能な較正エンティティによって定義される2つの異なる座標フレーム内で検出可能な並進自由度のみを有する、任意の形状及びサイズであり得る。換言すれば、特徴点制約における較正エンティティは、並進自由度及び回転自由度の両方を有することができるが、2つの座標フレームは、特徴の並進自由度のみを検出することが可能であり得る。例えば、較正エンティティは、依然として、センサ、ロボット、マーカであり得るが、2つの最適化可能較正エンティティは、レーザトラッカなどの点センサである。別の例では、較正エンティティは、点別特徴の並進自由度を少なくとも検出することができるセンサである2つの最適化可能な較正エンティティを有する点別特徴であり得る。点別特徴は、センサが検出することができる単一のドット又は小さなステッカであり得る。例えば、点別特徴は、モーションキャプチャシステム、ロボットエンドエフォート(例えば、ロボットのグリッパ内のツールチップ)、タッチポイント(例えば、それぞれのロボットからの2つのツールチップの各々のタッチポイント)、及びテーブルコーナーなどの他の接触ポイントにおいて赤外光を反射することができる小さなピンポンボール状のマーカであり得る。
【0079】
特に、システムは、複数の特徴点制約を利用して、較正エンティティの点別特徴のみを使用して、最適化可能な較正エンティティの並進自由度及び回転自由度の両方、例えば、完全な3D姿勢を最適化することができる。例えば、システムは、特徴点制約をそれぞれ使用してテーブルの3つ又は4つの異なるコーナを較正し、テーブルの完全な3D姿勢を一意に最適化するために較正結果を組み合わせることができる。
【0080】
図4は、環境における例示的な特徴点制約グラフ400を示している。例示的な特徴点制約グラフ400は、環境内の種々の較正エンティティ間の制約関係を表す。環境は、例えば、ロボットワークセルであり得る。
【0081】
図4に示すように、例示的な特徴点制約グラフ400は、以下の較正エンティティ、すなわち、世界座標フレーム421、第1のカメラ423a、第2のロボット423b、第1のロボットのツールチップ425a、及び第2のロボットのツールチップ425bを表すノードを含む。特徴点制約グラフ400の有向エッジは、第2の較正エンティティによって定義された座標フレームに対する第1の較正エンティティの相対姿勢を表す。例えば、407aは、カメラ423bによって定義される座標フレームに対するロボットツールチップ425aの姿勢を表す。
【0082】
同様に、世界座標フレーム421は、ワークセルモデルにおいて予め決定されて、固定することができ、基準座標フレームとして機能し、最適化されない。第1のカメラ423aの焦点は、第1の座標フレームと、世界座標フレーム421に対する第1のカメラ423aの姿勢401とを定義する。同様に、第2のカメラ423bの焦点は、第2の座標フレームと、世界座標フレーム421に対する第2のカメラ423bの姿勢403とを定義する。第1のロボット425aのツールチップは、第3の座標フレーム、第1のカメラ423aの第1の座標フレームに対する第1のロボットツールチップ425aの第1の点姿勢405a、第2のカメラ423bの第2の座標フレームに対する第1のロボットツールチップ425aの第2の点姿勢407aを定義する。同様に、第2のロボット425bのツールチップは、第4の座標フレーム、第1のカメラ423aの第1の座標フレームに対する第2のツールチップ425bの第3の点姿勢405b、第2のカメラ423bの第2の座標フレームに対する第2のツールチップ425bの第4の点姿勢407bを定義する。点姿勢405a、405b、407a及び407bは、前述のように、それぞれの座標フレームに対するツールチップの並進自由度のみを含む。
【0083】
先に説明したように、特徴点制約は、測定された特徴が姿勢の代わりに点別姿勢のみを有する場合に、第1及び第2の最適化可能な較正エンティティによって定義された2つの異なる座標フレームの点別姿勢を最適化するために使用することができ、その結果、2つの異なるフレームによって観測された較正エンティティは、世界座標フレームに対して一貫した点別姿勢を現す。例えば、
図4に示すように、2つの異なる座標フレームは、第1の最適化可能較正エンティティ、例えば、カメラ423aによって定義される第1の座標フレーム及び第2の最適化可能較正エンティティ、例えば、カメラ423bによって定義される第2の座標フレームであり得、2つの異なる座標フレームによって観測される較正エンティティの点別特徴は、第1のロボット425aのツールチップ又は第2のロボット425bのツールチップのいずれかであり得る。代替として、2つの座標フレームは、点センサ、例えば、レーザトラッカなどの特徴の平行移動位置のみをとる、最適化可能較正エンティティによって定義することができる。
【0084】
第1及び第2の較正エンティティによって定義される2つの異なる座標フレームA及びBの姿勢を最適化するために、較正システムは、最初に、上付き文字wによって記される基準座標フレームとして、世界座標フレーム421を定義することができる。次に、システムは、
【0085】
【数26】
として記される、2つの異なる座標フレームA及びBに関して観測される点別姿勢を定義することができる。
【0086】
【数27】
は、点別較正エンティティの並進位置のみを表すテンソル量である。一部の実装形態では、
【0087】
【数28】
は、ベクトルであり得る。次に、システムは、世界座標フレーム421に対する2つの座標フレームA及びBの姿勢を、
【0088】
【0089】
理想的には、較正エンティティの予期される点別姿勢は、以下によって与えられるように、世界座標フレームに対して一貫しているべきである:
【0090】
【0091】
しかしながら、2つの異なる座標フレームA及びBの姿勢のうちのいずれか1つが正確でないか、又はそれぞれの予期される姿勢からわずかにずれている場合、等式は成立しない。システムは、残差の形の差を次のように定義することができる:
【0092】
【0093】
次に、システムは、特徴点制約の最適化問題を次のように定義することができる:
【0094】
【数32】
座標フレームA及びBの各々に対する各点別姿勢は、点別特徴の並進位置のみを伝達し、したがって、残差は、世界座標フレームに対する2つの測定された点別姿勢間の三次元差分テンソルであり得る。残差は、差分テンソルが三次元恒等テンソルである場合に最小化されると言われる。代替的に、残差は、依然として、並進自由度からの誤差を組み込む二乗平均平方根誤差(RMSE)を表すスカラであり得る。特徴点制約において定義される最適問題の残差を最小化することによって、システムは、2つの座標フレームA及びBの所望の姿勢、例えば、
【0095】
【0096】
概して、複数の相対姿勢制約、特徴姿勢制約、及び特徴点制約の各々について、それぞれの制約ペアにおける2つの座標フレームの姿勢は、制約ペアのタイプにおいて定義された残差を最小化することによって最適化され得る。各制約ペアを最適化することは、局所最適化とも称される。また、制約ペアに対する局所最適化の出力は、較正中に2つの座標フレームに対する姿勢を局所的に較正するために使用することができる。各それぞれの制約ペアにおける局所最適化の出力を計算するために、1つ以上のオプティマイザ150を使用することができる。例えば、オプティマイザ150は、最適化問題を解くために1つ以上のコンピュータによって実行されるプログラムであり得る。オプティマイザ150は、計算を並列に実行するように構成することができる。例えば、システムは、GPU加速を利用して、1つ以上のオプティマイザの局所最適化の出力を計算することができる。
【0097】
局所最適化は、複数の異なる制約ペアの制約のローカル誤差を最小化することを含む。例えば、ハンド-アイ較正は、ハンド-アイ較正において定義された残差に基づいてローカル誤差を最適化する。しかしながら、1つ以上の座標フレームが2以上の制約ペアに関与する場合、第1の制約ペア内の座標フレームに対する第2の局所最適化の第1の出力は、第2の制約ペア内の同じ座標フレームに対する第2の局所最適化の第2の出力とは異なり得る。したがって、全ての制約ペアを同時に局所的に最適化することができない場合がある。これは、環境内の各局所制約ペアによって定義される最適化問題が過度に制約される、例えば、環境内のロボット及びセンサを最適化するための値よりも多くの制約が存在するためである。
【0098】
全体最適化問題を最適化するために、較正システムは、複数の制約ペアの各々において定義された各ローカル誤差に基づいてグローバル誤差を定義することができる。例えば、グローバル誤差は、複数の制約ペアの各々において定義された各ローカル誤差を合計することを含み得る。別の例として、グローバル誤差は、複数の制約ペアの各々の較正重要度に基づく複数の重みを含み得る。較正システムは、最初に、各ローカル誤差にそれぞれの重みを乗算し、重み付けされた各ローカル誤差を合計することによってグローバル誤差を得ることができる。1つ以上のオプティマイザを使用してグローバル誤差を最小化することによって、較正システムは、複数の制約ペアにおける座標フレームのためのグローバル最適化姿勢のセットを取得することができる。
【0099】
図5は、環境内で異なる制約ペアを使用して較正を最適化する例示的なプロセス500のフロー図である。便宜上、プロセス500は、1つ以上の場所に位置する1つ以上のコンピュータのシステムによって実施されるものとして説明される。例えば、適切にプログラムされた較正システム100は、プロセス500を実施することができる。
【0100】
図5に示すように、システムは、まず、ワークセルの初期モデル、例えば、世界モデルを取得することができる(510)。世界モデルは、複数のロボット及び複数のセンサを含む。複数のセンサは、ワークセル内のより多くのロボットのうちの1つの移動を観測するように構成される。複数のセンサの各々は、カメラ又はレーザトラッカであり得る。初期世界モデルは、CADシミュレーションを通じて得ることができる。世界モデル内のロボット及びセンサの姿勢は、CADシミュレーションによって初期世界内で定義される予期される姿勢から逸脱され得る。
【0101】
システムは、較正実行エンジン110に較正プログラムの実行を命令する(520)。較正プログラムは、ワークセル170内の1つ以上のロボットによる移動を表す移動データを生成する。移動データは、各ロボット(例えば、170a~n)又はセンサ(例えば、171a~n)がタスクを実施するためにワークセル170内でどのように移動するかを記述する。移動データは、ワークフロースケジュールエンジン120によって純粋にシミュレートされるか、又はロボットインターフェースサブシステム160によって、ある特定の時間ステップ間隔における各時間ステップに対する各ロボット又はセンサの実際の移動によって測定することができる。各ロボット又はセンサは、ロボット及びセンサのそれぞれの並進位置及び/又は回転位置を定義する姿勢を有することができる。各時間ステップにおける移動データは、ロボット及び/又はセンサの初期姿勢から最終姿勢までのロボット及び/又はセンサの運動を定義する。一部の実装形態では、システム100は、ロボットインターフェースサブシステム160に、各ロボット及びセンサの姿勢を調整し、作業フローによって予測されるように、それらをワークセル内で移動させるように命令することができる。一部の実装形態では、ワークセル内の1つ以上のロボット又はセンサは、静的であり得、例えば、ロボット及びセンサは、固定され、ロボット及びセンサのそれぞれの姿勢は、調整することができない。特に、静的ロボット又はセンサは、正確に姿勢をとると仮定され、例えば、ロボット又はセンサの測定された姿勢と予期される姿勢との間の誤差は、+/-5mm及び/又は+/-1度の範囲内である。一部の実装形態では、1つ以上のセンサ171a~nは、ワークセル170内の1つ以上のロボット170a~nに取り付けられるか、又は装着され得る。あるいは、センサは、ワークセル内のロボットから独立していてもよい。
【0102】
システムは、較正プロセスの実行中にワークセル内の複数のロボットによる移動後にセンサがどのように姿勢を観測するかを表すセンサデータを生成する(530)。センサデータは、ロボットインターフェースサブシステム160によって収集され、較正実行エンジン110内の制約生成器130への入力として送信される。便宜上、ワークセル内で観測される複数のロボット170a~n、センサ171a~n、マーカ172a~n、及び点別特徴173a~nを複数の較正エンティティと称することができ、一方、調整され得るロボット及びセンサを最適化可能な較正エンティティと称することができる。前述のように、センサ及び/又はロボットは、ワークフロー内の現在の時間ステップにおける較正エンティティの姿勢を観測することができる。現在の時間ステップにおけるそれぞれの姿勢は、較正エンティティが、世界モデルに対して時間ステップの終わりに移動した後に終了する実際の姿勢を表す。較正エンティティの現在の姿勢は、ワークフローに基づいて移動した後の初期姿勢誤差又は累積姿勢誤差に起因して、較正エンティティの予期される姿勢とは異なり得る。累積姿勢誤差は、ワークフローの初期の時間ステップから存在し得る。
【0103】
システムは、センサデータに基づいて複数の異なる制約ペアを生成する(540)。複数の異なる制約ペアの各々は、最適化可能な較正エンティティに基づいて各々異なる座標フレームで観測され、センサデータで表される較正エンティティの姿勢間の関係を指定する。前述のように、各較正エンティティは、姿勢と、姿勢と関連付けられた座標フレームとを有することができる。複数の異なる制約ペアは、複数の相対姿勢制約、複数の特徴姿勢制約、及び複数の特徴点制約を含み得る。それに応じて、制約生成器130は、ワークセル170内の2つの座標フレームを有するそれぞれの制約ペアを指定することができる。例えば、2つの最適化可能な較正エンティティ間の相対姿勢が、2つの最適化可能な較正エンティティに基づいて、2つの座標フレーム間で直接測定され得る場合、制約生成器130は、
図2Aに関して前述したように、2つの最適化可能な較正エンティティにわたって相対姿勢制約を適用することができる。別の例では、2つの最適化可能な較正エンティティの相対姿勢を、共通の中間座標フレームを使用して間接的に測定することができ、相対姿勢が、2つの最適化可能な較正エンティティによって定義された2つの座標フレームに対して検出可能な並進自由度及び回転自由度の両方を有する場合、制約生成器は、
図3に示すように、2つの最適化可能な較正エンティティに対して特徴姿勢制約を適用することができる。別の例では、2つの最適化可能な較正エンティティの相対姿勢を間接的に測定することができ、一方、相対姿勢が、2つの最適化可能な較正エンティティによって定義された2つの座標フレームに対して検出可能な並進自由度のみを有する場合、制約生成器130は、
図4に示すように、2つの最適化可能な較正エンティティに対して特徴点制約を適用することができる。
【0104】
システムは、複数の異なる制約ペアについて1つ以上の最適化プロセスを実行して、複数の較正値を生成する(550)。最適化プロセスは、システム内の1つ以上のオプティマイザによって実行することができる。前述のように、各タイプの制約ペアは、それぞれのローカル誤差(残差)を定義する。較正システムは、ワークセル170内の複数の異なる制約ペアによって定義された各ローカル誤差に基づいてグローバル誤差を取得することができる。次いで、較正システムは、1つ以上の最適化プロセスを実施して、各制約ペアにおける2つの座標フレームの複数の最適化された姿勢を取得することによって、グローバル誤差を最小化することができる。ワークセル内の各ロボット及びセンサに対する複数の最適化された姿勢は、較正、例えば、複数の較正値のために使用される。複数の較正値の各々は、各調整可能ロボット及びセンサのための並進調整及び回転調整165bの両方を含み得る。調整165bは、ロボットインターフェースサブシステム160への入力としての役割を果たし、ワークセル170内の最適化可能な較正エンティティ、例えば、調整可能ロボット及びセンサの姿勢を調整する。一部の実装形態では、複数の較正値のうちの一部は、各調整可能ロボット及びセンサのための並進調整のみを含む。調整は、各ロボット及びセンサの予期される並進位置及び回転位置、又は各ロボット及びセンサの現在の位置と予期される位置との間の不一致であり得る。代替的に、複数の較正値は、ワークフロー125を更新するためにオプティマイザ150からワークフロースケジュールエンジン120に送られる調整165aを含み得る。
【0105】
システムは、複数の較正値を使用してワークセルの更新されたモデルを生成する(560)。換言すると、システム100は、最適化可能な較正エンティティ、例えば、ロボット170a~n及びセンサ171a~nの姿勢を、複数の較正値、例えば、調整165bに基づいて、それぞれの予期される姿勢に調整することができる。代替的に、ワークフロースケジュールエンジン120は、調整165aに基づいて較正エンティティの予期される姿勢と現在の姿勢との間の差を組み込み、ワークフロー125を更新することによって差を相殺し、ロボットインターフェースサブシステム160にコマンド155を送信して、調整可能なロボット及びセンサの姿勢を最適化された姿勢に較正することなく、更新されたワークフロー125に基づいてワークセル170内で移動するようにロボット及び/又はセンサを駆動することができる。
【0106】
更に、システム100は、ワークセル170の更新されたモデルを使用して第2の複数の異なる制約ペアを生成し、第2の複数の較正値を生成するために第2の複数の異なる制約ペアについて1つ以上の最適化プロセスを実施し、第2の複数の較正値を使用してワークセルの第2の更新されたモデルを生成することによって、第2の較正プロセス500のためにステップ530、540、550及び560を再び実行することができる。ステップ530、540、550及び560についての詳細な説明は、上記の段落に見出すことができる。第2の較正プロセスは、第1の較正プロセスのための時間ステップの直後の連続した時間ステップにおいてシステム100によって実行され得る。第3以降の較正プロセスは、ワークセル内の各最適化可能な較正エンティティの姿勢をその場で較正することができるように、システムによって後続の時間ステップで順次実行することができる。一部の実装形態では、第2の較正プロセスは、ある時間ステップにおいて、例えば、システム100が、第1の複数のタスクを終了した後に第2の複数のタスクを実施するようにワークセル170に命令することができるとき、別の例では、較正エンティティの数がワークセル内で変更されるときに、システム100によって実行され得る。
【0107】
環境内のシステムの異なる制約ペアについての更なる議論は、
図6A~
図6Cで詳述される。
【0108】
図6Aは、例示的な環境において適用される相対姿勢制約を示している。例示的な環境は、ワークセルを含む。環境は2つのロボット615及び617を含み、各ロボットはベースを有する。例えば、ロボット615は、環境の世界モデルに対する座標フレーム及び座標フレームの姿勢を定義することができるベース611を有し、一方、ロボット617は、環境の世界モデルに対する座標フレーム及び座標フレームの姿勢を定義することができるベース613を有する。また、各ロボットは、
図6Cに示すように、3つのツールチップを有する。例えば、ロボット615は、3つのツールチップ661、663、及び663を含み、ロボット617は、3つのツールチップ664、665、及び566を含む。例示的な環境はまた、3つのセンサ601、603、及び605を含む。3つのセンサは、姿勢の並進位置及び回転位置の両方を検出することができる。実際には、センサ座標フレームに対するベースの6つの測定された相対姿勢、例えば、631~636があるため、
図6Aに示される6つの相対姿勢制約が存在する。環境内の相対姿勢制約の総数は、6つを上回ってもよい。例えば、環境は、12個の相対姿勢制約を含み得る。相対姿勢制約の全てのペアが必ずしも最適化プロセスで使用されるとは限らず、実際には、較正を最適化するときに相対姿勢制約の1つ以上のペアを省略することができる。
【0109】
図6Bは、例示的な環境において適用される特徴姿勢制約を示している。センサ及びロボットに加えて、3つのセンサが姿勢の並進位置及び回転位置の両方を検出することができ、3つのマーカ621、623及び617が存在する。各マーカは、センサ座標フレームの各々に対する姿勢を有することができる。各マーカの各姿勢は、マーカの並進位置及び回転位置の両方を含む。
図6Bには、9つのペアの特徴姿勢制約が示されている。例えば、センサ601の座標フレームに対するマーカ621の姿勢654、及びセンサ603の座標フレームに対するマーカ621の姿勢653である。同様に、環境内の特徴点制約の総数は、9つより多くてもよい。例えば、ワークセルは、20個の特徴姿勢制約を含み得る。特徴姿勢制約の全てのペアが必ずしも最適化プロセスで使用されるとは限らず、実際には、較正を最適化するときに特徴姿勢制約の1つ以上のペアを省略することができる。
【0110】
図6Cは、例示的な環境において適用される特徴点制約を示している。環境には6つのツールチップ661~666があり、ロボットごとに3つのツールチップがある。ツールチップの姿勢は、実際には、並進位置のみを有する点である。したがって、
図6Cのセンサは、並進自由度を観測することができることのみが必要とされる。換言すると、センサ601、603、及び605は、カメラの代わりにレーザトラッカであり得る。
図6Cの環境には18個の特徴点制約がある。例えば、センサ601の座標フレームに対するツールチップ661の姿勢675、及びセンサ603の座標フレームに対するツールチップ661の姿勢672である。先に説明したように、環境内の特徴点制約の数は異なり得る。
【0111】
説明を容易にするために、2つのロボットのみが存在し、各ロボットは、ベースと、3つのツールチップと、3つのセンサと、3つのマーカとを含むが、
図6A~
図6Cに示されるロボット上のロボット、センサ、及びツールチップの数は、純粋に例示である。例えば、10個のセンサ、5つのマーカ、各ロボットが7つのツールチップを有する6つのロボットが存在し得る。別の例では、2つのセンサ、1つのマーカ、各ロボットが2つのツールチップを有する10個のロボットが存在し得る。
【0112】
概して、システムに追加の上述の制約ペアを追加することは、ロボット及びセンサへの電力線を除いて、追加の配線又はハードウェアを追加することを必要としないため、システムは、異なる制約ペアの総数を容易にスケールアップすることができる。
【0113】
前述のように、システムは、任意の他の適切な制約タイプを使用することができる。次に、いくつかの追加の例示的な制約、すなわち、距離制約、組み合わせ制約、及び連鎖制約について説明する。
【0114】
距離制約は、2つの異なるフレームによって観測される較正エンティティが、世界座標フレームに対して一貫した姿勢を現すように、2つの最適化可能較正エンティティによって定義される2つの異なる座標フレームの姿勢を最適化するために使用することができる。較正エンティティを最適化するために、距離制約は、2つの異なる座標フレーム間の距離を測定する。特に、2つの異なる座標フレームのうちの1つがレーザトラッカによって定義される場合、距離制約は、3D方向ベクトル及び2つの座標フレーム間の距離を使用して、レーザトラッカによって放出されるレーザビームの配向を測定する。
【0115】
組み合わせ制約は、複数の異なるタイプの制約を組み合わせるか又は集約する制約である。例えば、組み合わせ制約は、レーザトラッカに関する3つの特徴点制約の組み合わせであり得る。組み合わせ制約は、前述のように、最適化可能較正エンティティ、例えば、テーブルの完全3D姿勢を判定するために使用することができる。
【0116】
連鎖制約は、シーケンス内の異なる制約を使用して、各較正エンティティによって定義される複数の異なる座標フレームをリンクする制約である。すなわち、2つの座標フレームA及びBをともに直接接続する制約を有する代わりに、連鎖制約は、座標フレームAとBとの間の異なる制約を使用して、2以上の座標フレームC及びDを含み得る。例えば、相対姿勢制約を使用して2つの座標フレームA及びBを制約する代わりに、システムは、最初に、相対姿勢制約を使用して座標フレームA及びCを制約し、次いで、距離制約を使用して座標フレームC及びDを制約し、最後に、特徴点制約を使用して座標フレームD及びBを制約することができる。それを前提として、座標フレームAとBとの間のローカル誤差は、4つの座標フレーム、例えば、A、B、C、及びDを通して形式化することができる。
【0117】
図7は、
図5の較正を最適化するプロセスに基づいて較正値を取得する例示的なプロセスのフロー図である。システム100は、最初に、複数の異なる制約ペアの各々のタイプを判定することができる(710)。例えば、システム100は、最適化可能な較正エンティティによってそれぞれ定義される2つの座標フレームのタイプ、及び2つの座標フレーム内で観測される較正エンティティの姿勢に基づいて、相対姿勢制約、特徴姿勢制約、又は特徴点制約である制約ペアのタイプを判定することができる。
【0118】
次いで、システム100は、複数の制約ペアの各制約ペアのタイプに基づいてローカル誤差を取得することができる(720)。制約ペアが、ステップ710からの特徴姿勢制約又は特徴点制約として判定される場合、システムは、各々が最適化可能較正エンティティによって定義される2つの異なる座標フレーム内で観測される較正エンティティの姿勢間の差異を定量化することができる(730a)。制約ペアが、ステップ710からの相対姿勢制約として判定される場合、システムは、2つの最適化可能較正エンティティによって定義される2つの座標フレーム内で観測される2つの最適化可能較正エンティティ間の測定された相対姿勢と計算された相対姿勢との間の差異を定量化することができる(730b)。一部の実装形態では、差は、先に説明したように、各制約タイプについて定義された残差であり得る。
【0119】
次いで、複数の制約ペアの各制約ペアの各ローカル誤差に基づいて、システム100は、
図5において先に説明したように、各ローカル誤差に基づいてグローバル誤差を取得することができる(740)。
【0120】
特に、各最適化可能な較正エンティティに対して、システム100は、最適化可能な較正エンティティに関連付けられた各異なる制約ペアの全てのローカル誤差を比較し、少なくとも1つ以上のローカル誤差が他のものよりも実質的に大きいかどうかを判定し、少なくとも1つ以上のローカル誤差が他のものよりも実質的に大きいと判定することに応答して、グローバル誤差に対する少なくとも1つ以上のローカル誤差を考慮せず、かつ/又は較正プロセスにおける誤りを識別することができる。例えば、システムは、例えば、カメラAの代わりにカメラBを偶発的に使用して、カメラAに対するロボットRの姿勢を取得することによって、較正プロセスにおける1つ以上の系統誤差を検出することができる。
【0121】
最後に、システム100は、
図5で詳細に説明されるように、1つ以上のオプティマイザ150を使用して、グローバル誤差を最小化することに基づいて、複数の較正値を生成することができる(750)。一部の実装形態では、システム100は、グローバル誤差を最小化するときに最適化プロセスが収束することができない場合、1つ以上の系統誤差を推論することができる。
【0122】
本明細書では、ロボットは、ベース位置と、1つ以上の移動可能なコンポーネントと、1つの座標系、例えば、デカルト座標又は関節角度における所望の位置、姿勢、又はその両方を、1つ以上の移動可能なコンポーネントを所望の位置又は姿勢に物理的に移動させるためのコマンドにマッピングするために使用され得る運動学的モデルと、を有する機械である。本明細書では、ツールは、ロボットの1つ以上の移動可能なコンポーネントの運動連鎖の一部であり、その端部に取り付けられたデバイスである。例示的なツールは、グリッパ、溶接デバイス、及び研磨デバイスを含む。
【0123】
本明細書で説明される主題及び機能的オペレーションの実施形態は、本明細書において開示された構造及びそれらの構造的均等物を含む、デジタル電子回路、有形に具現化されたコンピュータソフトウェア若しくはファームウェア、コンピュータハードウェア、又はそれらのうちの1つ以上の組み合わせにおいて、実装することができる。本明細書において説明される主題の実施形態は、1つ以上のコンピュータプログラム、例えば、データ処理装置による実行のために、又はデータ処理装置のオペレーションを制御するために有形の非一時的記憶媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装され得る。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダム若しくはシリアルアクセスメモリデバイス、又はそれらのうちの1つ以上の組み合わせであり得る。代替的又は追加的に、プログラム命令は、データ処理装置による実行のための好適な受信機装置への送信のための情報を符号化するために生成される、人工的に生成された伝搬信号、例えば、機械生成された電気信号、光信号、又は電磁信号上で符号化され得る。
【0124】
「データ処理装置」という用語は、データ処理ハードウェアを指し、例として、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、及び機械を包含する。装置はまた、特殊目的ロジック回路、例えば、FPGA(field programmable gate array、フィールドプログラマブルゲートアレイ)又はASIC(application-specific integrated circuit、特定用途向け集積回路)であるか、又はそれを更に含むことができる。装置は、任意選択的に、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの1つ以上の組み合わせを構成するコードを含むことができる。
【0125】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、スクリプト、又はコードとして称されるか又は説明され得る)コンピュータプログラムは、コンパイラ型言語若しくはインタープリタ型言語、又は宣言型言語若しくは手続き型言語を含む、任意の形態のプログラミング言語で書くことができ、スタンドアローンプログラムとして、又はモジュール、コンポーネント、サブルーチン、若しくはコンピューティング環境における使用に好適な他のユニットとして含む、任意の形態で展開することができる。プログラムは、ファイルシステム内のファイルに対応し得るが、対応する必要はない。プログラムは、他のプログラム又はデータを保持するファイルの一部分、例えば、マークアップ言語文書内、問題のプログラム専用の単一ファイル内、又は複数の協調ファイル、例えば、1つ以上のモジュール、サブプログラム、又はコードの一部分を記憶するファイル内に記憶された1つ以上のスクリプトにおいて記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、又は1つのサイトに位置付けられるか、若しくは複数のサイトにわたって分散され、データ通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開され得る。
【0126】
1つ以上のコンピュータのシステムが特定のオペレーション又は動作を実施するように構成されるとは、システムが、オペレーション中にシステムにオペレーション又は動作を実施させる、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせをインストールしていることを意味する。1つ以上のコンピュータプログラムが特定のオペレーション又は動作を実施するように構成されるとは、1つ以上のプログラムが、データ処理装置によって実行されたときに、装置にオペレーション又は動作を実施させる命令を含むことを意味する。
【0127】
本明細書で使用されるように、「エンジン」又は「ソフトウェアエンジン」は、入力とは異なる出力を提供する、ソフトウェア実装入力/出力システムを指す。エンジンは、ライブラリ、プラットフォーム、ソフトウェア開発キット(software development kit、「SDK」)、又はオブジェクトなど、符号化された機能ブロックであり得る。各エンジンは、1つ以上のプロセッサ及びコンピュータ可読媒体を含む、任意の適切なタイプのコンピューティングデバイス、例えば、サーバ、モバイルフォン、タブレットコンピュータ、ノートブックコンピュータ、音楽プレーヤ、電子書籍リーダ、ラップトップ若しくはデスクトップコンピュータ、PDA、スマートフォン、又は他の固定若しくはポータブルデバイス上に実装することができる。加えて、エンジンのうちの2つ以上は、同じコンピューティングデバイス上に、又は異なるコンピューティングデバイス上に実装され得る。
【0128】
本明細書で説明されるプロセス及びロジックフローは、入力データに対して動作し、出力を生成することによって機能を実施するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルコンピュータによって実施され得る。プロセス及びロジックフローはまた、特殊目的ロジック回路、例えば、FPGA若しくはASICによって、又は特殊目的ロジック回路と1つ以上のプログラムされたコンピュータとの組み合わせによって実施され得る。
【0129】
コンピュータプログラムの実行に好適なコンピュータは、汎用、特殊目的マイクロプロセッサ若しくはその両方、又は任意の他の種類の中央処理装置に基づくことができる。概して、中央処理装置は、読み出し専用メモリ、又はランダムアクセスメモリ、又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実施するか又は実行するための中央処理装置、及び命令及びデータを記憶するための1つ以上のメモリデバイスである。中央処理装置及びメモリは、特殊目的ロジック回路によって補完され得るか、又は特殊目的ロジック回路に組み込まれ得る。概して、コンピュータはまた、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気ディスク、光磁気ディスク、又は光ディスクを含むか、又はそれらからデータを受信するか、それらにデータを転送するか、又はその両方を行うように動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。更に、コンピュータは、別のデバイス、例えば、ほんの数例を挙げると、モバイル電話、携帯情報端末(personal digital assistant、PDA)、モバイルオーディオ若しくはビデオプレーヤ、ゲームコンソール、全地球測位システム(Global Positioning System、GPS)受信機、又はポータブル記憶デバイス、例えば、ユニバーサルシリアルバス(universal serial bus、USB)フラッシュドライブに組み込まれ得る。
【0130】
コンピュータプログラム命令及びデータを記憶するのに好適なコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイス、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスと、磁気ディスク、例えば、内蔵ハードディスク又はリムーバブルディスクと、光磁気ディスクと、CD-ROM及びDVD-ROMディスクと、を含む、全ての形態の不揮発性メモリ、媒体、及びメモリデバイスを含む。
【0131】
ユーザとの相互作用を提供するために、本明細書において説明される主題の実施形態は、ディスプレイデバイス、例えば、ユーザに情報を表示するためのCRT(cathode ray tube、陰極線管)又はLCD(liquid crystal display、液晶ディスプレイ)モニタと、キーボードと、ポインティングデバイス、例えば、マウス、トラックボール、又はユーザがコンピュータに入力を提供することができる存在感知ディスプレイ若しくは他の表面と、を有するコンピュータ上で実装され得る。他の種類のデバイスを、ユーザとの相互作用を提供するために同様に使用することができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであり得、ユーザからの入力は、音響、音声、又は触覚入力を含む、任意の形態で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスに文書を送信し、デバイスから文書を受信すること、例えば、ウェブブラウザから受信された要求に応答して、ユーザのデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。また、コンピュータは、テキストメッセージ又は他の形式のメッセージをパーソナルデバイス、例えば、スマートフォンに送信し、メッセージングアプリケーションを実行し、返信としてユーザから応答メッセージを受信することによって、ユーザと相互作用することができる。
【0132】
本明細書において説明される主題の実施形態は、例えば、データサーバとしてのバックエンドコンポーネントを含む、又はミドルウェアコンポーネント、例えば、アプリケーションサーバを含む、又はフロントエンドコンポーネント、例えば、グラフィカルユーザインターフェース、ウェブブラウザ、若しくはユーザが本明細書において説明される主題の実装形態と相互作用することができるアプリを有するクライアントコンピュータを含む、又は1つ以上のかかるバックエンド、ミドルウェア、若しくはフロントエンドコンポーネントの任意の組み合わせを含む、コンピューティングシステムにおいて実装することができる。システムのコンポーネントは、デジタルデータ通信の任意の形態又は媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの実施例は、ローカルエリアネットワーク(local area network、LAN)及びワイドエリアネットワーク(wide area network、WAN)、例えば、インターネットを含む。
【0133】
コンピューティングシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは概して互いに離れており、典型的には通信ネットワークを介して対話する。クライアント及びサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。一部の実施形態では、サーバは、例えば、クライアントとして動作するデバイスと相互作用するユーザにデータを表示し、ユーザからユーザ入力を受信する目的で、データ、例えば、HTMLページをユーザデバイスに送信する。ユーザデバイスにおいて生成されたデータ、例えば、ユーザ相互作用の結果は、デバイスからサーバにおいて受信され得る。
【0134】
上で説明された実施形態に加えて、以下の実施形態もまた革新的である。
実施形態1は、方法であって、
複数のセンサと複数のロボットとを含む複数の較正エンティティを備える環境の初期モデルを取得することであって、複数のセンサの各々が、環境内の1つ以上の較正エンティティによる移動を観測するように構成されている、取得することと、
環境内の複数のロボットによる移動を表す移動データを生成する較正プログラムを実行することと、
較正プログラムの実行中に複数のロボットによる移動後にセンサが較正エンティティの姿勢をどのように観測するかを表すセンサデータを生成することと、
センサデータから、複数の異なる制約ペアを生成することであって、複数の異なる制約ペアの各々が、異なる座標フレームにおいて観測される較正エンティティの姿勢間の関係を指定する、生成することと、
複数の較正値を生成するために、複数の異なる制約ペアに対して1つ以上の最適化プロセスを実施することと、
複数の較正値を使用して、環境の更新されたモデルを生成することと、を含む、方法である。
実施形態2は、複数の異なる制約ペアの各々が、較正エンティティによって各々定義される少なくとも2つの異なる座標フレームを含む、実施形態1の方法である。
実施形態3は、複数の異なる制約ペアの各制約ペアが、異なる座標フレームにおいて観測される少なくとも1つの較正エンティティを含む、実施形態1又は2の方法である。
実施形態4は、複数の異なる制約ペアが、第2の座標フレーム内で観測される第1の座標フレームの測定された相対姿勢と計算された相対姿勢との間の関係を定義する相対姿勢制約を含み、第1の座標フレームが、第1の較正エンティティによって定義され、第2の座標フレームが、第2の較正エンティティによって定義される、実施形態1~3のいずれか1つの方法である。
実施形態5は、第1の座標フレームの測定された相対姿勢及び計算された相対姿勢が、第2の座標フレームに対して観測可能な並進位置及び回転位置の両方を含む、実施形態4の方法である。
実施形態6は、複数の異なる制約ペアが、較正エンティティによって各々定義された2つの異なる座標フレーム内で観測された較正エンティティの特徴姿勢間の関係を定義する特徴姿勢制約を含む、実施形態1~5のいずれか1つの方法である。
実施形態7は、較正エンティティの特徴姿勢が、並進位置及び回転位置の両方を含む、実施形態6の方法である。
実施形態8は、複数の異なる制約ペアが、較正エンティティによって各々定義される2つの異なる座標フレーム内で観測された較正エンティティの点別姿勢間の関係を定義する特徴点制約を含む、実施形態1~7のいずれか1つの方法である。
実施形態9は、較正エンティティの点別姿勢が、並進位置を含む、実施形態8の方法である。
実施形態10は、複数のセンサの各々が、カメラ又はレーザトラッカである、実施形態1~9のいずれか1つの方法である。
実施形態11は、複数の較正エンティティの各々が、センサ、ロボット、及び物体であり得る、実施形態1~10のいずれか1つの方法である。
実施形態12は、物体が、マーカ又は点別特徴である、実施形態11の方法である。
実施形態13は、異なる座標フレームの各々が、基準座標フレームに対してセンサデータで表される姿勢を定義する、実施形態1~12いずれか1つの方法である。
実施形態14は、基準座標フレームが、ワークセルモデル内の所定の座標フレームを含む、実施形態13の方法である。
実施形態15は、複数の異なる制約ペアについて1つ以上の最適化プロセスを実施することが、複数の異なる制約ペアの各制約ペアについて、2つの異なる座標フレーム内で観測される較正エンティティの姿勢間のローカル誤差を定量化することを含む、実施形態1~14のいずれか1つの方法である。
実施形態16は、複数の異なる制約ペアについて1つ以上の最適化プロセスを実施することが、複数の異なる制約ペアの各制約ペアについて定量化されたローカル誤差に基づいてグローバル誤差を定量化することを更に含む、実施形態15の方法である。
実施形態17は、複数の異なる制約ペアについて1つ以上の最適化プロセスを実施することが、1つ以上のオプティマイザを用いてグローバル誤差を最小化することを更に含む、実施形態16の方法である。
実施形態18は、複数の異なる制約ペアの各々において観測された較正エンティティの姿勢間のローカル誤差を定量化することが、基準座標フレームに対する較正エンティティの姿勢間のローカル誤差を定量化することを含む、実施形態15の方法である。
実施形態19は、複数の異なる制約ペアについて1つ以上の最適化プロセスを実施することが、複数の異なる制約ペアの各制約ペアについて、第2の座標フレームにおいて観測された第1の座標フレームの測定された相対姿勢と計算された相対姿勢との間のローカル誤差を定量化することを含み、第1の座標フレームが、第1の較正エンティティによって定義され、第2の座標フレームが、第2の較正エンティティによって定義される、実施形態1~18のいずれか1つの方法である。
実施形態20は、環境の更新されたモデルを使用して第2の複数の異なる制約ペアを生成することと、
第2の複数の較正値を生成するために、第2の複数の異なる制約ペアについて1つ以上の最適化プロセスを実施することと、
第2の複数の較正値を使用して、環境の第2の更新されたモデルを生成することと、を更に含む、実施形態1~19のいずれか1つの方法である。
実施形態21は、1つ以上のコンピュータと、1つ以上のコンピュータによって実行されたときに、1つ以上のコンピュータに実施形態1~20のいずれか1つの方法を実施させるように動作可能である命令を記憶する1つ以上の記憶デバイスとを備える、システムである。
実施形態22は、コンピュータプログラムで符号化されたコンピュータ記憶媒体であり、プログラムは、データ処理装置によって実行されたときに、データ処理装置に実施形態1~20のいずれか1つの方法を実施させるように動作可能な命令を含む。
【0135】
本明細書は、多くの特定の実装形態の詳細を含むが、これらは、任意の発明の範囲又は特許請求され得るものの範囲に対する限定として解釈されるべきではなく、むしろ、特定の発明の特定の実施形態に特有であり得る特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に説明されるある特定の特徴はまた、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で説明されている種々の特徴は、複数の実施形態で別個に、又は任意の好適な部分的組み合わせで実装することもできる。更に、特徴は、ある特定の組み合わせで動作するものとして上で説明され、最初にそのように特許請求され得るが、特許請求される組み合わせからの1つ以上の特徴は、場合によって、組み合わせから削除することができ、特許請求される組み合わせは、部分的組み合わせ又は部分的組み合わせの変形形態を対象とすることができる。
【0136】
同様に、動作は特定の順序で図面に描写されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序で若しくは連続的な順序で実施されること、又は全ての例示された動作が実施されることを必要とすると理解されるべきではない。ある特定の状況では、マルチタスキング及び並列処理が有利であり得る。更に、上で説明された実施形態における種々のシステムモジュール及びコンポーネントの分離は、全ての実施形態においてかかる分離を必要とすると理解されるべきではなく、説明されたプログラムコンポーネント及びシステムは、概して、単一のソフトウェア製品にともに一体化され得るか、又は複数のソフトウェア製品にパッケージ化され得ることを理解されたい。
【0137】
主題の特定の実施形態が説明されてきた。他の実施形態は、以下の特許請求の範囲内である。例えば、特許請求の範囲内に記載された動作は、異なる順序で実施することができ、それでも所望の結果を達成することができる。一実施例として、添付の図面内に描写されたプロセスは、所望の結果を達成するために、示される特定の順序、又は連続的な順序を必ずしも必要としない。ある特定のいくつかの場合では、マルチタスキング及び並列処理が有利であり得る。