(57)【要約】      （修正有）【課題】ロボット光センサの自動的な内部キャリブレーション及び外部キャリブレーションのためのシステム及び方法を提供する。【解決手段】光センサ（５０２ａ）とロボットアーム（１０２）とキャリブレーションチャート（１１４）と、光センサをキャリブレーションするための一組の姿勢を決定することと、少なくともこの一組の姿勢に基づいて３次元位置データ及び配向データを含む姿勢データを生成することと、少なくともこの姿勢データに基づいてロボットアームを複数の姿勢に動かすことと、前記複数の姿勢の各々において、光センサでキャリブレーションチャートの一組の画像を撮影し姿勢を記録することと、少なくともこの一組の撮影画像に基づいて内部キャリブレーションパラメータを算出することと、少なくともこの一組の撮影画像に基づいて外部キャリブレーションパラメータを算出することを含む工程を１つ以上のプロセッサに行わせるものである。【選択図】図１Ａ
2020172017.tif 000002
【特許請求の範囲】
【請求項１】
ロボット光センサのオートキャリブレーションのためのシステムであって、
光センサと、
ロボットアームと、
キャリブレーションチャートと、
１つ以上のプロセッサと、
命令を格納するメモリと、を含み、前記命令は、前記１つ以上のプロセッサによって実行された際に、
前記光センサをキャリブレーションするための一組の姿勢を決定することと、
少なくとも前記一組の姿勢に基づいて、３次元（３Ｄ）位置及び配向のデータを含む姿勢データを生成することと、
少なくとも前記姿勢データに基づいて、前記ロボットアームを複数の姿勢に動かすことと、
前記複数の姿勢の各々において、前記光センサで、前記キャリブレーションチャートの一組の画像を撮影することと、
少なくとも前記一組の撮影画像に基づいて、内部キャリブレーションパラメータを算出することと、
少なくとも前記一組の撮影画像に基づいて、外部キャリブレーションパラメータを算出することと、を含む工程を、前記１つ以上のプロセッサに行わせるものである、システム。
【請求項２】
前記工程は、前記外部キャリブレーションパラメータを算出する前に、前記内部キャリブレーションパラメータを前記一組の撮影画像に適用することをさらに含む、請求項１に記載のシステム。
【請求項３】
前記工程は、前記一組の姿勢のうちの１つの姿勢が到達可能であるかどうかを判定することと、
少なくとも前記姿勢が到達可能でないことに基づいて、前記姿勢を拒絶することと、をさらに含む、請求項１又は２に記載のシステム。
【請求項４】
前記キャリブレーションチャートは、前記ロボットアームのエンドエフェクタに取り付けられており、前記光センサは、前記ロボットの本体に装着されている、請求項１〜３のいずれかに記載のシステム。
【請求項５】
前記光センサは、前記ロボットアームに装着されている、請求項１〜３のいずれかに記載のシステム。
【請求項６】
前記工程は、前記光センサをキャリブレーションするためのトリガーイベントを決定することをさらに含み、
前記光センサをキャリブレーションするための前記一組の姿勢を決定することは、少なくとも前記トリガーイベントに基づいて、前記光センサをキャリブレーションするための前記一組の姿勢を決定することを含む、請求項１〜５のいずれかに記載のシステム。
【請求項７】
前記光センサは、第１光センサであり、
前記システムは、第２光センサをさらに含み、
前記トリガーイベントを決定することは、前記第１光センサで撮影された画像を、前記第２光センサで撮影された画像と比較することを含む、請求項６に記載のシステム。
【請求項８】
ロボット光センサのオートキャリブレーションの方法であって、
光センサをキャリブレーションするための一組の姿勢を決定することと、
少なくとも前記一組の姿勢に基づいて、３次元（３Ｄ）位置及び配向のデータを含む姿勢データを生成することと、
少なくとも前記姿勢データに基づいて、前記ロボットアームを複数の姿勢に動かすことと、
前記複数の姿勢の各々において、前記光センサで、キャリブレーションチャートの一組の画像を撮影することと、
少なくとも前記一組の撮影画像に基づいて、内部キャリブレーションパラメータを算出することと、
少なくとも前記一組の撮影画像に基づいて、外部キャリブレーションパラメータを算出することと、を含む方法。
【請求項９】
前記外部キャリブレーションパラメータを算出する前に、前記内部キャリブレーションパラメータを前記一組の撮影画像に適用することをさらに含む、請求項８に記載の方法。
【請求項１０】
前記一組の姿勢のうちの１つの姿勢が到達可能であるかどうかを判定することと、
少なくとも前記姿勢が到達可能でないことに基づいて、前記姿勢を拒絶することと、をさらに含む、請求項８又は９に記載の方法。
【請求項１１】
前記キャリブレーションチャートは、前記ロボットアームのエンドエフェクタに取り付けられており、前記光センサは、前記ロボットの本体に装着されている、請求項８〜１０のいずれかに記載の方法。
【請求項１２】
前記光センサは、前記ロボットアームに装着されている、請求項８〜１０のいずれかに記載の方法。
【請求項１３】
前記光センサをキャリブレーションするためのトリガーイベントを決定することをさらに含み、
前記光センサをキャリブレーションするための前記一組の姿勢を決定することは、少なくとも前記トリガーイベントに基づいて、前記光センサをキャリブレーションするための前記一組の姿勢を決定することを含む、請求項８〜１２のいずれかに記載の方法。
【請求項１４】
前記光センサは、第１光センサであり、
前記トリガーイベントを決定することは、前記第１光センサで撮影された画像を、第２光センサで撮影された画像と比較することを含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
カメラなどの光センサは、例えばコンピュータビジョン（ＣＶ）アプリケーションなどの、いくつかのロボットアプリケーションに用いられており、製造作業や倉庫での材料の取り扱い中に一般的に行われるようなナビゲーション、品質管理（ＱＣ）、ならびに、検出対象に対するその他の機能を行うためのロボットアプリケーションに用いられている。ＣＶアプリケーションによって収集された画像を適切に判定するには、光センサがキャリブレーションされている必要がある。このことは、エンドエフェクタに対するオブジェクトの正確な位置判定を実現するために必要である。
【背景技術】
【０００２】
キャリブレーションには、主として、二種類ある。内部（intrinsic）キャリブレーションと、外部（extrinsic）キャリブレーションである。一般的に、内部キャリブレーションは、例えば、そのシステムに固有の光学収差や不整（inconsistencies）を考慮するために、光センサレンズのパラメータを推定するものであり、理想的な条件下で第１データセットの画像を手作業で取得することによって、ラボ環境で算出される。光センサ装着位置の外部キャリブレーションパラメータ値も、一般的に、理想的な条件下で第２データセットの画像を手作業で取得することによって、ラボ環境で算出され、内部キャリブレーションプロセスが完了した後に行われる。ロボットの使用中には、振動、レンズの汚れ、センサの衝突などの様々な外的要因により、しばしば、光センサを再キャリブレーションする必要性が生じる。上述したキャリブレーションプロセスは、手作業によるものであり、二段階での別々の画像収集を必要とする。また、このようなキャリブレーションは、手作業のプロセスであるため、安定しない可能性があり、オペレータのスキルに依存している。
【発明の概要】
【０００３】
開示の実施例について、下記の添付図面を参照して、以下に詳述する。また、本明細書で開示される実施態様を例示するため、以下に概要を提示する。ただし、この概要は、特定の構成や工程の順序にすべての実施例を限定することを意図したものではない。
【０００４】
本明細書に開示のいくつかの側面及び実施形態は、ロボット装着光センサの自動的な内部キャリブレーション及び外部キャリブレーションに関する。一実施態様は、光センサと、ロボットアームと、キャリブレーションチャートと、１つ以上のプロセッサと、命令を格納するメモリとを含み、前記命令は、前記光センサをキャリブレーションするための一組の姿勢を決定することと、少なくとも前記一組の姿勢に基づいて、３次元（３Ｄ）位置及び配向のデータを含む姿勢データを生成することと、少なくとも前記姿勢データに基づいて、前記ロボットアームを複数の姿勢に動かすことと、前記複数の姿勢の各々において、前記光センサで、前記キャリブレーションチャートの一組の画像を撮影することと、少なくとも前記一組の撮影画像に基づいて、内部キャリブレーションパラメータを算出することと、少なくとも前記一組の撮影画像に基づいて、外部キャリブレーションパラメータを算出することと、を含む工程を、前記１つ以上のプロセッサに行わせるものである。
【０００５】
記載された特徴、機能、利点は、様々な実施形態において個別に達成することができ、あるいは、さらに他の実施態様と組み合わせてもよく、そのさらなる詳細は、以下の記載及び図面を参照することによって明らかになるものである。
【図面の簡単な説明】
【０００６】
開示の実施例について、下記の添付図面を参照して、以下に詳述する。なお、図全体にわたって、共通する参照符号は、共通する部品を示している。
【０００７】
【図１Ａ】一実施例によるロボット１００の正面図である。
【図１Ｂ】一実施例によるロボット１００の側面図である。
【図２】一実施例によるロボットベース装着光センサ５０２ａからのビューを示す図である。
【図３】一実施例によるキャリブレーションチャート３００を示す図である。
【図４】一実施例による様々な座標間の関係を示す図である。
【図５】一実施例による、一般的な光センサ５０２の出力をキャリブレーションされた画像５０８に変換（画像修正）するためのプロセス５００を示す図である。
【図６】一実施例による、ロボット光センサ５０２ａの自動的な内部キャリブレーション及び外部キャリブレーションのプロセス６００を示すブロック図である。
【図７】一実施例による、ロボット光センサ５０２ａの自動的な内部キャリブレーション及び外部キャリブレーションのためのコントローラ７００を示すブロック図である。
【図８】一実施例による、ロボット光センサ５０２ａの自動的な内部キャリブレーション及び外部キャリブレーションの実施態様を示すフローチャートである。
【図９】一実施例による、ロボット光センサ５０２ａの自動的な内部キャリブレーション及び外部キャリブレーションのプロセス９００を示すブロック図である。
【図１０】一実施例による、本開示の様々な側面を実施するのに適した演算装置１０００のブロック図である。
【図１１】一実施例によるロボット光センサ５０２ａの自動的な内部キャリブレーション及び外部キャリブレーションを有利に採用する装置の製造及び保守方法１１００のブロック図である。
【図１２】一実施例によるロボット光センサ５０２ａの自動的な内部キャリブレーション及び外部キャリブレーションを有利に採用する装置１２００のブロック図である。
【図１３】一実施例による、特定の飛行モジュール１２０１の概略斜視図である。
【発明を実施するための形態】
【０００８】
様々な実施態様を、添付図面を参照して詳述する。可能な限り、同じ部材又は類似の部材については、図面全体を通して同じ参照数字を用いる。本開示にわたる特定の実施形態に対する言及は、例示のみを目的として提示するものであり、これに反する示唆が無い限り、すべての実施態様を限定することを意図したものではない。
【０００９】
上記の概要、ならびに、下記のいくつかの実施形態の詳細な説明は、添付図面を参照することによって、より明確に理解されよう。本明細書において、単数形で記載されるとともに「１つの」という言葉が前に付された要素あるいは工程は、複数の要素あるいは工程を必ずしも排除するものではない。また、「一実施態様」に言及することは、記載されている特徴を同様に含む別の実施態様の存在を排除するものではない。さらに、特に明記されていない限り、特定の特性を有する１つの要素あるいは複数の要素を「備える」あるいは「有する」実施形態は、その性質を有しない別の要素を追加的に含んでいてもよい。
【００１０】
カメラなどの光センサは、例えばコンピュータビジョン（ＣＶ）アプリケーションなどの、いくつかのロボットアプリケーションに用いられており、製造作業や倉庫での材料の取り扱い中に一般的に行われるようなナビゲーション、品質管理（ＱＣ）、ならびに、検出対象に対するその他の機能を行うためのロボットアプリケーションに用いられている。しかしながら、ＣＶアプリケーションによって収集された画像を適切に判定するには、画像内におけるオブジェクトの実際の位置が推定位置にできるだけ近くなるように、光センサがキャリブレーションされている必要がある。これは、エンドエフェクタに対するオブジェクトの正確な位置判定を達成するために必要である。本明細書に記載の実施形態は、これら及びその他の要素を考慮している。本明細書に記載の実施形態の技術的効果の一つとして、ロボットアプリケーションのキャリブレーションの時間が短縮される。また、本明細書に記載の実施形態の技術的効果の１つとして、ＣＶアプリケーションの精度が向上する。また、本明細書に記載の実施形態の技術的効果の１つとして、手作業によるキャリブレーションへの依存度が低減される。
【００１１】
キャリブレーションには、主として、二種類ある。内部キャリブレーションと、外部キャリブレーションである。外部キャリブレーションパラメータは、「外部キャリブレーション値」及び／又は「外部キャリブレーションパラメータ値」とも称される。内部キャリブレーションパラメータも、「内部キャリブレーション値」及び／又は「内部キャリブレーションパラメータ値」とも称される。本明細書で用いられる内部キャリブレーションとは、概して、例えば光学収差などのレンズ固有の不整などの、カメラシステムに固有のアーチファクト（artifacts）を補償することに関する。内部キャリブレーションパラメータは、このような不整の影響を排除又は考慮するためのものである。一般に、光センサレンズの内部キャリブレーションパラメータは、理想的な条件下で第１データセットの画像を手作業で取得することによって、ラボ環境で算出される。各画像は、チェスボードやChArUcoボードなどの、検知可能な既知のサイズの基準を含んでいる。データが取得されると、各画像が個別に処理されて、基準となるキーポイントの位置が求められる。次に、この測定された一組の基準キーポイントが、一組の定格の基準ボード点と対応付けられる。そして、レーベンバーグ・マーカート最適化（Levenberg-Marquardt optimization）などの最適化法を用いて、レンズの光学パラメータを求める。
【００１２】
本明細書で用いられる外部キャリブレーションとは、概して、センサ座標からロボット座標系への変換を規定する一組の値を求めることに関する。一般に、これは、センサに対するロボットのエンドエフェクタの運動（kinetic movement）をマッピングすること（例えば、ハンド・アイキャリブレーション（hand/eye coordination calibration）を含む。例えば、このマッピングは、ＡＸ＝ＸＢとしてモデル化され、ここで、Ａ及びＢは、異なる位置からのセンサ測定値であり、Ｘは、センサ測定値を空間内の異なる位置と相関させる未知の変換データである。当技術分野において知られているように、任意の手法を用いて、この変換データを導くことができる。光センサ装着位置の外部キャリブレーションパラメータも、一般的に、理想的な条件下で第２データセットの画像を手作業で取得することによって、ラボ環境で算出され、内部キャリブレーションプロセスが完了した後に行われる。内部キャリブレーションが既に完了しているので、各画像からは歪みが除去されており、各基準の位置は、例えば、ＰｎＰ（Perspective-n-Point）最適化を用いて求められる。ＰｎＰは、ワールド座標系内のｎ個の３次元点と、これに対応する画像内の二次元投影点との組から、内部キャリブレーションされた光センサの姿勢を推定することを含む。外部キャリブレーションとしても知られる光センサの姿勢は、６自由度（ＤＯＦ）によって構成され、当該自由度は、ワールド座標系に対する光センサの回転（ロール、ピッチ、及び、ヨー）と、３Ｄ並進（例えばＸ、Ｙ、及びＺ）とによって構成されている。
【００１３】
ロボットの使用中には、様々な外的要因（例えば振動）、レンズの汚れ、センサの不正確さ、ずれ（drift）、非同時性、オクルージョン（occlusions）、及び、光センサの衝突によって、しばしば、再キャリブレーションの必要性が生じる。残念ながら、これらのプロセスは、手作業によるものであり、二段階での別々の画像収集を必要とする。
【００１４】
本明細書に開示の側面及び実施形態は、ロボット光センサの自動的な内部キャリブレーション及び外部キャリブレーションに関する。一実施態様は、光センサと、ロボットアームと、キャリブレーションチャートと、１つ以上のプロセッサと、命令を格納するメモリとを含み、当該命令は、光センサをキャリブレーションするための一組の姿勢を決定することと、少なくとも当該一組の姿勢に基づいて、３次元（３Ｄ）位置及び配向のデータを含む姿勢データを生成することと、少なくとも当該姿勢データに基づいて、ロボットアームを複数の姿勢に動かすことと、複数の姿勢の各々において、光センサで、キャリブレーションチャートの一組の画像を撮影することと、少なくとも当該一組の撮影画像に基づいて、内部キャリブレーションパラメータを算出することと、少なくとも当該一組の撮影画像に基づいて、外部キャリブレーションパラメータを算出することと、を含む工程を、前記１つ以上のプロセッサに行わせるものである。
【００１５】
一実施態様は、キャリブレーションエンドエフェクタ（キャリブレーションチャート上の既知のパターンを有するエンドエフェクタ）をロボットアームに取り付けることを含む。一様な広がりを有するキャリブレーションボードのパースペクティブをカメラに提供する、１組の適切な姿勢が決定される。次に、ロボットアームが自動的に各姿勢に動かされて、画像が撮影され、キャリブレーションチャートの位置及び配向と共に記録される。得られた一組の画像を用いて、内部レンズキャリブレーションが算出される。この後、当該レンズキャリブレーションを用いて、各画像の歪みが取り除かれ、各画像について、キャリブレーションチャートの正確な姿勢が求められる。測定されたキャリブレーションチャートの姿勢と、各画像について記録されたロボットアームの姿勢とを用いて、２組の変換データが構築される。次に、これらの変換データを用いて、ＡＸ＝ＸＢの最適化式の解が求められ、これにより、一組の画像を用いて、光センサの外部キャリブレーションが求められる。これは、キャリブレーションプロセスを高速化し、結果としてロボットのダウンタイムを減らして使用率を向上させるものであり、モバイルマニピュレータロボット、その製造や保守、ならびに倉庫作業を含む様々な場面に、適用可能である。
【００１６】
より具体的に図を参照すると、図１Ａは、ロボット１００の正面図であり、図１Ｂは、ロボット１００の側面図である。ロボット１００は、ロボットアーム１０２を有しており、当該ロボットアームは、複数の部分１０４ａ〜１０４ｅ、及び、これらの部分１０４ａ〜１０４ｅの間の複数のジョイント部１０６ｂ〜１０６ｅを有する。ジョイント部１０６ａは、ロボットアーム１０２の部分１０４ａをロボット本体１０８に接続している。図示のように、ロボット本体１０８は、ベース１０８ｂ上で回転する上部セグメント１０８ａを有する。（例えばジョイント部１０６ａ〜１０６ｅを旋回させることによって）位置を操作することによって、ロボットアーム１０２は、様々な配向の様々な位置に移動可能である。ロボットアーム１０２のいくつかの実施形態は、３Ｄ位置（例えば、デカルト軸に沿ったＸ並進、Ｙ並進、及び、Ｚ並進）の制御、及び、３Ｄ配向（例えば、ロール、ピッチ、及び、ヨー）の制御による、６自由度（６ＤｏＦ）を有する。コントローラ７００が、ロボット１００の動作を制御する。コントローラについては、図７を参照して後述する。
【００１７】
光センサハウジング１１０が、ロボット本体１０８の上部セグメント１０８ａの前面に取り付けられた状態を示しているが、他の実施態様では、光センサハウジング１１０は、ロボットアーム１０２に取り付けられる。光センサハウジング１１０は、３つの開口１１２ａ〜１１２ｃを有するものとして示されているが、代替の実施態様では、他の数の開口が用いられる。中央開口１１２ｂの後方には、第１ロボット光センサ５０２ａがある。開口１１２ａの後方には、第２ロボット光センサ５０２ｂがある。開口１１２ｃの後方には、別の光センサ又は発光体（例えばＬＥＤ）がある。一実施態様において、ロボット光センサ５０２ａ及び５０２ｂは、可視光の波長で動作するカメラである。いくつかの実施態様において、ロボット光センサ５０２ａ及び５０２ｂは、例えば赤外線（ＩＲ）などの可視光外の波長で動作する。いくつかの実施態様において、ロボット光センサ５０２ａと５０２ｂとは、異なる波長で動作する。デュアルセンサを用いることにより、ステレオ撮像に加えて比較も可能になり、例えば、ロボット光センサ５０２ａの出力とロボット光センサ５０２ｂの出力とを比較することによって、再キャリブレーションの必要性を判断することができる。エンドエフェクタ１１４は、キャリブレーションチャート３００を保持するための所定位置にあり、これについては、図３に関連させて詳述する。
【００１８】
図２は、ロボットアーム１０２が図１に示したのと同様の位置にある際の、ロボット光センサ５０２ａからのビュー２００を示している。ビュー２００は、ロボットアーム１０２、ロボットアームの影２０２、及び、エンドエフェクタ１１４を含んでいる。図１Ｂ及び図２に示したエンドエフェクタ１１４は、チェックボードのパターンを有しているが、実施態様によっては、図３にキャリブレーションチャート３００として示した、７×８のChArUcoキャリブレーションボードパターンが用いられる。ChArUcoボードは、ArUcoパターンをチェックボード（別名チェスボード）と組み合わせたものであり、より多くの数のエッジ及び形状を提供することにより、アラインメントの精度を向上させる。例えば、図３のChArUcoボードは、回転対称ではない。
【００１９】
図４は、様々な座標間の１組の関係を示している。ワールド座標４０２は、グローバル参照フレーム内の、あるオブジェクトの位置を表し、カメラ座標４０４は、カメラ又はその他のセンサ（例えばロボット光センサ５０２ａ）の焦点に対する当該オブジェクトの位置を表す。ワールド座標４０２とカメラ座標４０４とは、３Ｄから３Ｄへの変換によって、関連付けられる。カメラ座標４０４は、３Ｄから２次元（２Ｄ）へのマッピングによって、２Ｄピクセル座標４０６を特定し、これが、画像内におけるオブジェクトの位置を示す。外部キャリブレーションパラメータ４０８は、ワールド座標４０２をカメラ座標４０４と関連付け、内部キャリブレーションパラメータ４１０は、カメラ座標４０４をピクセル座標４０６と関連付ける。
【００２０】
図５は、一般的な光センサ５０２の出力を、キャリブレーションされた画像５０８に変換するためのプロセス５００を示している。光センサ５０２の様々な具体的な実施形態は、ロボット光センサ５０２ａ及びロボット光センサ５０２ｂを含む。光センサ５０２は、未加工画像５０４を出力する。未加工画像５０４に対して行われるキャリブレーション工程５０６によって、（例えばＣＶアプリケーションにおける）データ抽出に適した、キャリブレーションされた画像５０８が生成される。一般に、内部キャリブレーションは、レンズ歪みを取り除いて、正しい見た目の画像を生成することに関連している。内部キャリブレーションパラメータは、２Ｄ座標から３Ｄ座標に投影する（例えば、オブジェクトが画像内のどこにあるかに基づいて、当該オブジェクトが部屋のどこにあるかを判定する）ためにも用いられる。外部キャリブレーションは、外部フレーム（例えば、ロボットフレームや装着ポイント）に対して、センサ光学面を位置特定することに関する。
【００２１】
図６は、ロボット光センサ５０２ａの自動的な内部キャリブレーション及び外部キャリブレーションのプロセス６００を示すブロック図である。工程６０２において、所望の利用パラメータ（coverage parameters）が決定される。一実施態様において、これは、所望のキャリブレーション精度を有する。工程６０４において、一組の姿勢が決定される。一実施態様において、ロボット光センサ５０２ａの視野（例えば、これにより得られる画像範囲）にわたる一様な広がりのキャリブレーションボードのパースペクティブが決定される。一実施態様では、キャリブレーションチャート３００のパースペクティブを収集画像のデータセットに効果的に配分するための姿勢を、アルゴリズムを用いて自動的に決定する。これによって、データセットを手作業で取得する必要が無くなり、最適化に貢献する、より均等に分配されたデータセットが得られる。
【００２２】
工程６０４は、複数の工程６０６〜６３０を含む。工程６０６では、ロボット光センサ５０２ａの視野内の２Ｄ利用項目が決定される。工程６０８では倍率調整が適用され、工程６１０では並進移動が適用され、工程６１２では、例えば画像データの傾きを補正するなどのために、傾き調整が適用され、工程６１４では回転が適用される。次に、工程６１６は、工程６１８〜６２８において、姿勢を精査（refine）する。工程６１８では、２Ｄ利用項目が３Ｄ姿勢に変換され、工程６２０はＰｎＰ最適化を含む。工程６２２では、インバースキネマティクス（inverse kinematics）を用いて、到達可能性が判定される。インバースキネマティクスとは、ロボットアーム１０２のキネマティクス方程式（kinematics equations）を用いて、エンドエフェクタ１１４の所望の位置を実現するジョイント部パラメータを求めることをいう。エンドエフェクタ１１４が所望のタスクを達成できるようにロボットアーム１０２の動きを指定することは、モーションプランニングとして知られている。インバースキネマティクスは、モーションプランを、ロボットアーム１０２のジョイント部のアクチュエータ軌道に変換する。判定工程６２４において、ある姿勢が到達可能と判定されると、工程６２６において、当該姿勢が承認されて姿勢の組内に保存される。そうでない場合は、工程６２８において、その姿勢は拒絶される。一実施態様において、到達可能性を判定することは、ロボットアーム１０２が指定された位置に移動することができるかどうかを判定することと、キャリブレーションチャート３００がロボット光センサ５０２ａの視野内にあるかを判定することとの両方を含む。工程６３０では、姿勢の順序が最適化され、例えば、すべての姿勢を通過するためにロボットアームが必要とする動きが最小限に抑えられる順序とされる。
【００２３】
工程６３２において、キャリブレーションデータが取得される。この工程は、工程６３４〜６４２を含む。工程６３４は、一組の姿勢における各姿勢について、繰り返される。工程６３６は、少なくとも姿勢データに基づいて、ロボットアーム１０２を複数の姿勢における各々に動かすことを含む。工程６３８は、ロボットアームがエンドエフェクタ１１４をどこに動かしたかに基づいて、キャリブレーションチャート３００の位置データを取得することを含む。工程６４０において、画像が取得され、工程６４２は、画像と変換データとの対を記録することを含む。こうして、画像データセットがキャリブレーションに利用できる状態となる。工程６４４は、内部キャリブレーションパラメータ４１０を算出することを含み、工程６４６は、外部キャリブレーションパラメータ４０８を算出することを含む。プロセスの概要としては、画像のセット及びキャリブレーションチャート３００の既知の特性から内部キャリブレーションパラメータ４１０が算出され、内部キャリブレーションを適用して撮影画像の歪みを取り除き、歪みが取り除かれた画像に対してマーカー検出を適用し、最適化プログラムを用いてマーカー検出結果を（工程６３８による）先の記録位置と比較し、これにより外部キャリブレーションパラメータ４０８を生成する。
【００２４】
より具体的には、取得されたデータを用いて（例えば測定されたキャリブレーションボード基準ポイントを定格のセットと比較するレーベンバーグ・マーカート最適化を用いて）、内部レンズ歪みキャリブレーション値が得られる。次に、画像から歪みが除去される。各画像内における（キャリブレーションチャート３００を保持している）エンドエフェクタ１１４の位置が、ＰｎＰ最適化によって算出される。各姿勢が、ロボット光センサ５０２ａに関する、対応する算出位置と対にされる。一実施態様において、ロボット光センサ５０２ａの装着位置は、例えばデュアルクオータニオン（dual-quaternion）法による姿勢生成アルゴリズムを用いてＡＸ＝ＸＢの式の解を求めることによって得られる。
【００２５】
図７は、ロボット光センサ５０２ａの自動的な内部キャリブレーション及び外部キャリブレーションのためのコントローラ７００を示すブロック図である。一実施態様において、コントローラ７００は、ロボット１００のロボット本体１０８内にある（図１Ａ参照）。一実施態様において、コントローラ７００は、演算装置１０００を具現化したものであり、演算装置については図１０を参照して詳述する。コントローラ７００は、メモリ１００２に接続された１つ又は複数のプロセッサ１００４を含む。コントローラ７００は、光センサ５０２に接続されており、当該光センサは、ロボット光センサ５０２ａ及び／又はロボット光センサ５０２ｂを表している。コントローラ７００は、位置センサ７３２にも接続されており、当該位置センサは、ロボットアーム１０２（具体的には、部分１０４ａ〜１０４ｅ、ジョイント部１０６ａ〜１０６ｅ、及びエンドエフェクタ１１４）の位置及び配向を感知する。位置データ７１６は、（図６の）工程６３８で取得されるものであり、位置センサ７３２によって取得される。コントローラ７００は、ロボットアームサーボモータ７３０にも接続されており、当該サーボモータは、ジョイント部１０６ａ〜１０６ｅを動かすことによって、ロボットアーム１０２を移動させる。
【００２６】
メモリ１００２は、プロセッサ１００４によって実行可能な命令、及び、保存されたデータを含む。メモリ１００２は、光センサ制御部７０２を含み、当該制御部が、ロボット光センサ５０２ａ及び５０２ｂを制御する。メモリは、ロボットアーム制御部７０４も含み、当該制御部が、位置センサ７３２からのフィードバックを用いてロボットアームサーボモータ７３０を制御することにより、エンドエフェクタ１１４を指定された姿勢（例えば指定された３Ｄ位置及び配向）に配置する。メモリは、本明細書に記載のキャリブレーションプロセスの際に収集された画像に対する基準又はデフォルトのキャリブレーションのために用いるべく、以前のキャリブレーションデータ７０６も含む。一実施態様において、以前のキャリブレーションデータ７０６は、デフォルトのキャリブレーションデータに置き換えられる。キャリブレーションモニターコンポーネント７０８は、例えば、異なる画像から算出されたオブジェクトの位置を比較すること、あるいは、タイマーを監視することによって、トリガー基準７１０に従ってキャリブレーショントリガーイベントを決定する。姿勢生成及び最適化コンポーネント７１２は、キャリブレーションプロセスの際にロボットアーム１０２を移動させるための姿勢データ７１４を生成する。
【００２７】
未加工画像５０４は、様々な姿勢において光センサ５０２から出力され、キャリブレーションに用いられる。キャリブレーションでは、工程６４２において記録された、画像と変換データとの対７１８も用いられる。キャリブレーションプロセス制御部７２０が、内部キャリブレーションサポートデータ７２２及び外部キャリブレーションサポートデータ７２４を用いて内部キャリブレーション及び外部キャリブレーションを行い、これらのサポートデータは、本明細書に記載の計算を行うのに必要なロジック及びデータを含んでいる。内部キャリブレーションサポートデータ７２２は、キャリブレーションチャート３００のデータも含んでいる。外部キャリブレーションパラメータ４０８と内部キャリブレーションパラメータ４１０との両方を含む、算出されたキャリブレーションパラメータ７２６も、メモリ１００２内にある。メモリ１００２は、キャリブレーションされた画像５０８、及び、本明細書に記載の工程を実行するために必要な他のロジック及びデータ７２８も保持する。
【００２８】
図８を参照すると、フローチャート８００は、ロボット光センサ５０２ａのオートキャリブレーションのプロセスの実施態様を示している。一実施態様において、図８に示す工程は、少なくとも一部が、１つ又は複数のプロセッサ１００４によって命令を実行することによって行われる。工程８０２は、ロボット光センサ５０２ａをキャリブレーションするためのトリガーイベントを決定することを含む。一実施態様において、工程８０２は、ロボット光センサ５０２ａで撮影された画像を、ロボットアーム光センサ５０２ｂで撮影された画像と比較することを含む。例えば、あるオブジェクトの位置が、ロボット光センサ５０２ａからの画像に対して実行されるＣＶアルゴリズムを用いて算出され、同じオブジェクトの位置が、ロボット光センサ５０２ｂからの画像に対して実行されるＣＶアルゴリズムを用いて算出される。これらの算出位置が、所与のイベント閾値よりも大きい差で異なる場合、これが、トリガーイベントとして決定される。また、一実施態様において、トリガーイベントは、タイマー設定時間の経過である。また、一実施態様において、トリガーイベントは、ユーザ入力である。さらに、一実施態様において、トリガーイベントは、ワークピースの損傷の検知、あるいは、ＣＶによって制御される操作に対する予想外の物理的抵抗である。
【００２９】
工程８０４は、ロボット光センサ５０２ｂをキャリブレーションするための一組の姿勢を決定することを含む。一実施態様において、これは、（図６の）工程６０４について説明した操作のうちの少なくともいくつかを含む。工程８０６は、少なくとも当該一組の姿勢に基づいて、３Ｄ位置及び配向のデータを含む姿勢データ７１４を生成することを含む。工程８０８は、当該位置及び配向のデータを用いて、一組の姿勢のうちの１つの姿勢が、到達可能であるかどうかを判定することを含む。一実施態様において、到達可能性を判定することは、ロボットアーム１０２が指定された位置に移動することができるかどうかを判定することと、キャリブレーションチャート３００がロボット光センサ５０２ａの視野内にあるかを判定することとの両方を含む。工程８１２は、決定工程８１０において少なくとも当該姿勢が到達可能であることに基づいて、当該姿勢を承認することを含む。工程８１４は、決定工程８１０において少なくとも当該姿勢が到達可能でないことに基づいて、当該姿勢を拒絶することを含む。次に、工程８１６は、少なくとも当該一組の姿勢に基づいて、姿勢の順序を決定することを含む。一実施態様において、これらの姿勢は、ロボットアーム１０２が不必要に行ったり来たりしないよう、ロボットアーム１０２のトータルの動きを最小限に抑えるように順序付けられる。
【００３０】
工程８１８は、少なくとも当該姿勢データに基づいて、ロボットアームを複数の姿勢に動かすことを含む。例えば、一組の姿勢は、好ましい距離範囲（すぐ近くから最大距離までを最少数の変化ステップで）、配向の範囲（第１角度から第２角度までを最少数の変化ステップで）、及び、水平並進移動と垂直並進移動との両方における位置の範囲などにおいて、キャリブレーションチャート３００の画像を提示して、エンドエフェクタ１１４の６ＤｏＦを包括的に（認識可能な途切れ無く）カバーできるように、選択される。例えば、ある範囲及び並進位置において、キャリブレーションチャート３００を保持するエンドエフェクタ１１４は、ロール、ピッチ、及び、ヨーの各々について、途切れが無いように、各配向項目内で十分な数の変化角度で、配向角度の範囲を段階的に進む。次に、エンドエフェクタ１１４を、別の並進位置に移動させ、再び、配向の変更を段階的に進める。十分な画像が到達可能な６ＤｏＦの範囲をカバーするまで、これが繰り返される。
【００３１】
工程８２０は、これら複数の姿勢の各々において、ロボット光センサ５０２ｂで、キャリブレーションチャート３００の一組の画像を撮影することを含む。一実施態様において、キャリブレーションチャート３００はロボットアーム１０２のエンドエフェクタ１１４に取り付けられ、ロボット光センサ５０２ｂは、ロボット本体１０８に装着される。また、一実施態様において、ロボット光センサ５０２ｂは、ロボットアーム１０２（例えばエンドエフェクタ１１４）に装着され、これにより、ロボット光センサ５０２ｂは、ロボットアーム１０２と共に移動する。このような実施態様では、キャリブレーションチャート３００は、例えば既知の位置にある壁やロボット本体１０８などの他の場所に配置される。
【００３２】
工程８２２は、少なくとも当該一組の撮影画像に基づいて、内部キャリブレーションパラメータ４１０を算出することを含む。工程８２４では、内部キャリブレーションパラメータ４１０を、当該一組の撮影画像に適用し、工程８２６は、少なくとも当該一組の撮影画像に基づいて、外部キャリブレーションパラメータ４０８を算出することを含む。
【００３３】
図９は、ロボット光センサ５０２ａの自動的な内部キャリブレーション及び外部キャリブレーションのプロセス９００を示すブロック図である。具体的には、プロセス９００は、一実施態様において、フローチャート８００の様々な工程を実行するコントローラ７００内の要素を特定するものである。キャリブレーションモニターコンポーネント７０８が、工程８０２を実行する。姿勢生成及び最適化コンポーネント７１２が、工程８０４〜８０６を実行する。ロボットアーム制御部７０４が、工程８１８を実行し、光センサ制御部７０２が、工程８２０を実行する。最後に、キャリブレーションプロセス制御部７２０が、工程８２２〜８２６を実行する。
【００３４】
図１０を参照すると、同図には、本開示の様々な側面を実施するのに適した演算装置１０００のブロック図が示されている。いくつかの実施態様において、演算装置１０００は、１つ以上のプロセッサ１００４、１つ以上のプレゼンテーションコンポーネント１００６、及び、メモリ１００２を含む。演算装置１０００に関連する開示の実施態様は、パーソナルコンピュータ、ラップトップ、スマートフォン、モバイルタブレット、ハンドヘルドデバイス、家電機器、特殊演算装置などを含む様々な演算装置によって、実現される。「ワークステーション」、「サーバ」、「ラップトップ」「ハンドヘルドデバイス」などのカテゴリー間には区別は無く、これらのすべてが、図１０及び本明細書における「演算装置」の範囲に含まれることを意図している。開示の実施態様は、分散された演算環境においても実施され、その場合は、通信ネットワークによって接続された遠隔処理装置によって、タスクが実行される。また、演算装置１０００は、一見したところ、単一の装置として描かれているが、一実施態様においては、複数の演算装置が協働し、図示のデバイスのリソースを共有する。例えば、一実施態様において、メモリ１００２は、複数の装置に分散され、提示されたプロセッサ１００４は、異なる装置に収容される。
【００３５】
一実施態様において、メモリ１００２は、本明細書に記載のコンピュータ可読媒体のうちの任意のものを含む。一実施態様において、メモリ１００２は、本明細書に記載の様々な工程を実行するように構成された命令を保存するとともに、これにアクセスするために用いられる。いくつかの実施態様において、メモリ１００２は、揮発性及び／又は不揮発性メモリ、リムーバブルメモリ又は非リムーバブルメモリ、仮想環境のデータディスク、又はこれらの組み合わせの形態のコンピュータ記憶媒体を含む。一実施態様において、プロセッサ１００４は、メモリ１００２又は入出力（Ｉ／Ｏ）コンポーネント１０１０などの様々な実体からデータを読み取る任意の数の処理ユニットを含む。具体的には、プロセッサ１００４は、本開示の側面を実施するためのコンピュータ実行可能命令を実行するようにプログラムされる。一実施態様において、命令は、当該プロセッサ、演算装置１０００内の複数のプロセッサ、あるいは、演算装置１０００の外部のプロセッサによって、実行される。いくつかの実施態様において、プロセッサ１００４は、以下に述べるフローチャートに示すとともに添付図面に図示したような命令を実行するように、プログラムされる。
【００３６】
プレゼンテーションコンポーネント１００６は、オペレータ又は別の装置に対して、データ表示を提示する。一実施態様において、プレゼンテーションコンポーネント１００６は、表示装置、スピーカ、印刷部品、振動部品などを含む。当業者であればわかるように、コンピュータデータは、多くの方法で提示され、例えば、グラフィカル・ユーザ・インターフェイス（ＧＵＩ）での視覚的な提示、スピーカによる可聴的な提示、演算装置１０００間の無線接続、有線接続、又はその他の方法で提示される。一実施態様において、プロセス及び工程が十分に自動化されて、人間の介入の必要性が低減または排除されている場合は、プレゼンテーションコンポーネント１００６は使用されない。Ｉ／Ｏポート１００８は、入出力（Ｉ／Ｏ）コンポーネント１０１０を含む他の装置に演算装置１０００を論理的に接続することを可能にするものであり、内蔵されているものもある。Ｉ／Ｏコンポーネント１０１０の実施態様には、例えば、限定するものではないが、マイク、キーボード、マウス、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナ、プリンタ、無線装置などが含まれる。
【００３７】
演算装置１０００は、以下の装置、すなわち、メモリ１００２、１つ以上のプロセッサ１００４、１つ以上のプレゼンテーションコンポーネント１００６、入出力（Ｉ／Ｏ）ポート１００８、入出力コンポーネント１０１０、電源１０１２、及び、ネットワークコンポーネント１０１４を直接的又は間接的に接続するバス１０１６を含む。演算装置１０００は、ここに示したいずれか１つのコンポーネント又はコンポーネントのいずれかの組み合わせに関して、何らかの依存関係または要件を有するものと解釈されるべきではない。バス１０１６は、１つ以上のバス（例えばアドレスバス、データバス、又はこれらの組み合わせ）を表している。図１０の様々なブロックは、明確化のために線で示しているが、実施態様によっては、ここに示した様々なコンポーネント間に、機能の明確な区別はない。
【００３８】
いくつかの実施態様において、演算装置１０００は、ネットワークコンポーネント１０１４を用いて、通信可能にネットワーク１０１８に接続される。いくつかの実施態様において、ネットワークコンポーネント１０１４は、ネットワークインターフェースカード、及び／又は、ネットワークインターフェースカードを操作するためのコンピュータ実行可能命令（例えばドライバ）を含む。一実施態様において、演算装置１０００と他の装置との通信は、有線接続又は無線接続１０２０を介して、任意のプロトコル又は機構を用いて行われる。いくつかの実施態様において、ネットワークコンポーネント１０１４は、短距離通信技術（例えば、近距離無線通信（ＮＦＣ）、Bluetooth（登録商標）通信など）、又はこれらの組み合わせを用いて、パブリック、プライベート、又はハイブリッド（パブリック及びプライベート）で、転送プロトコルを用いて、装置間で無線でデータを通信するように、動作可能である。
【００３９】
本開示の実施態様を、演算装置１０００に関連させて説明したが、他の多数の汎用又は専用の演算システム環境、構成、又は装置で実現可能である。本開示の側面での使用に適した周知の演算システム、環境、及び／又は構成の実施態様には、限定するものではないが、スマートフォン、モバイルタブレット、モバイル演算装置、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、ゲーム機、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家電機器、携帯電話、ウェアラブル又はアクセサリ形式の要素（例えば、時計、眼鏡、ヘッドセット、又はイヤホン）のモバイル演算装置及び／又は通信装置、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスのいずれかを含む分散コンピューティング環境、ＶＲデバイス、ホログラフィックデバイスなどが含まれる。このようなシステム又は装置は、キーボード又はポインティングデバイスなどの入力装置から、あるいは、ジェスチャー入力、近接入力（ホバリングなどによる）、及び／又は音声入力などを含む任意の方法で、ユーザからの入力を受け取る。
【００４０】
本開示の実施態様は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの組み合わせにおける１つ以上のコンピュータ又は他のデバイスによって実行されるプログラムモジュールなどの、コンピュータ実行可能命令の枠内で説明される。一実施態様において、コンピュータ実行可能命令は、１つ以上のコンピュータ実行可能コンポーネント又はモジュールにまとめられる。一般的に、プログラムモジュールは、限定するものではないが、ルーチン、プログラム、オブジェクト、コンポーネント、及び、特定のタスクを実行するか、特定の抽象データ型を実装するデータ構造を含む。一実施態様において、本開示の側面は、任意の数及び構成の、このようなコンポーネント又はモジュールで実現することができる。例えば、本開示の側面は、図示し且つ本明細書に記載した、特定のコンピュータ実行可能命令、又は、特定のコンポーネントもしくはモジュールに限定されない。本開示の他の実施態様は、図示し且つ本明細書に記載したよりも多い又は少ない機能を有する、異なるコンピュータ実行可能命令又はコンポーネントを含む。汎用コンピュータを含む実施態様では、本開示の側面は、当該汎用コンピュータを、本明細書に記載の命令を実行するように構成した際に、専用の演算装置に変える。
【００４１】
限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含む。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールなどの情報を記憶するための任意の方法又は技術で実現される、揮発性メモリ及び不揮発性のメモリ、リムーバブルメモリ及び非リムーバブルメモリを含む。コンピュータ記憶媒体は有形であり、通信媒体に対して相互に排他的である。コンピュータ記憶媒体は、ハードウェアで実現され、搬送波及び伝播信号は除外される。本開示の目的のコンピュータ記憶媒体は、信号そのものではない。一実施態様において、コンピューター記憶媒体は、ハードディスク、フラッシュドライブ、ソリッドステートメモリ、相変化ランダムアクセスメモリ（ＰＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、その他の種類のランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、電気的消去可能プログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ又はその他のメモリ技術、コンパクトディスクリードオンリーメモリ（ＣＤ−ＲＯＭ）、デジタル多用途ディスク（ＤＶＤ）又はその他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイス、又は、演算装置がアクセスする情報を格納するために用いられる他の任意の非伝送媒体を含む。これに対し、通信媒体は、通常、コンピュータ可読命令、データ構造、プログラムモジュールなどを、搬送波などの変調データ信号または他の搬送機構に具現化するものであり、任意の情報配信媒体を含む。
【００４２】
（図１Ａ及び図１Ｂの）ロボット１００のいくつかの例は、図１１〜図１３に関連して図示及び説明する製造及び保守の用途に使用される。従って、本開示の実施態様を、図１１に示した装置の製造及び保守方法１１００、及び、図１２に示した装置１２００に関連させて説明する。図１１には、一実施態様による装置の製造及び保守方法の図が示されている。一実施態様では、生産開始前において、装置の製造及び保守方法１１００は、図１２の装置１２００の仕様決定及び設計１１０２及び材料調達１１０４を含む。製造中には、図１２の装置１２００の部品及び小組立品の製造１１０６及びシステム統合１１０８が行われる。その後、図１２の装置１２００は、認証及び納品１１１０を経て、就航１１１２の期間に入る。顧客による就航期間中は、図１２の装置１２００は、定期的な整備及び保守１１１４のスケジュールに組み込まれ、これは、一実施態様においては、改良、再構成、改修、及び、本明細書に記載のその他の整備及び保守を含む。
【００４３】
一実施態様において、装置の製造及び保守方法１１００の各プロセスは、システムインテグレータ、第三者、及び／又は、オペレータによって、実行又は実施される。このような実施態様において、オペレータは顧客である。なお、システムインテグレータは、装置メーカ及び主要システム下請業者をいくつ含んでいてもよく、第三者は、売主、下請業者、供給業者をいくつ含んでいてもよい。一実施態様において、オペレータは、装置又は装置群の所有者、装置又は装置群を担当する管理者、装置を操作するユーザ、リース会社、軍事団体、サービス組織などである。
【００４４】
図１２を参照すると、装置１２００が示されている。図１２に示すように、装置１２００の一例は、宇宙船、航空機、航空貨物、飛行車などの飛行装置１２０１である。図１２にさらに示すように、装置１２００の別の例は、自動車、トラック、重機、建設機械、ボート、船、潜水艦などの地上輸送装置１２０２である。図１２に示す装置１２００のさらなる例は、以下のモジュール、すなわち、エアモジュール、ペイロードモジュール、及び地上モジュールのうちの少なくとも１つを含むモジュラー装置１２０３である。エアモジュールは、エアリフト又は飛行機能を提供する。ペイロードモジュールは、貨物又は生きている対象物（人、動物など）の対象物を輸送する機能を提供する。地上モジュールは、地上移動機能を提供する。本明細書に開示された方策は、これらのモジュールの各々に個別に適用されるか、あるいは、エアモジュールとペイロードモジュール、ペイロードモジュールと地上モジュール、又はすべてのモジュールなどのグループごとに適用される。
【００４５】
図１３を参照すると、本開示の実施態様が有利に採用される飛行モジュール１２０１のより詳細な図が示されている。この例において、飛行モジュール１２０１は、図１１における装置の製造及び保守方法１１００によって製造される航空機であり、複数のシステム１３０４及び内装１３０６を有する機体１３０３を含む。複数のシステム１３０４の実施態様は、推進系１３０８、電気系１３１０、油圧系１３１２、及び、環境系１３１４のうちの１つ以上を含む。ただし、他のシステムも候補に含まれる。また、航空宇宙産業に用いた場合を例として説明したが、様々な有利な実施態様が、例えば自動車産業などの他の産業に適用される。
【００４６】
本明細書に開示した実施態様は、コンピュータコード又は機械で使用可能な命令の枠内で説明される。このような命令には、コンピュータ、又は、パーソナルデータアシスタントやその他のハンドルドデバイスなどの他の機械によって実行されるプログラムコンポーネントなどのコンピュータ実行可能命令が含まれる。概して、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含むプログラムコンポーネントとは、特定のタスクを実行するか、あるいは、特定の抽象データ型を実装するコードをさす。開示の実施形態は、パーソナルコンピュータ、ラップトップ、スマートフォン、モバイルタブレット、ハンドヘルドデバイス、家電機器、特殊演算装置などを含む、さまざまなシステム構成で実施される。また、開示の実施態様は、分散コンピューティング環境においても実施され、この場合、通信ネットワークを介して接続されたリモート処理デバイスによってタスクが実行される。
【００４７】
以下の付記は、本開示のさらなる態様を説明するものである。
【００４８】
付記１．  ロボット光センサのオートキャリブレーションのためのシステムであって、
光センサと、
ロボットアームと、
キャリブレーションチャートと、
１つ以上のプロセッサと、
命令を格納するメモリと、を含み、前記命令は、前記１つ以上のプロセッサによって実行された際に、
前記光センサをキャリブレーションするための一組の姿勢を決定することと、
少なくとも前記一組の姿勢に基づいて、３次元（３Ｄ）位置及び配向のデータを含む姿勢データを生成することと、
少なくとも前記姿勢データに基づいて、前記ロボットアームを複数の姿勢に動かすことと、
前記複数の姿勢の各々において、前記光センサで、前記キャリブレーションチャートの一組の画像を撮影することと、
少なくとも前記一組の撮影画像に基づいて、内部キャリブレーションパラメータを算出することと、
少なくとも前記一組の撮影画像に基づいて、外部キャリブレーションパラメータを算出することと、を含む工程を、前記１つ以上のプロセッサに行わせるものである、システム。
【００４９】
付記２．  前記工程は、前記外部キャリブレーションパラメータを算出する前に、前記内部キャリブレーションパラメータを前記一組の撮影画像に適用することをさらに含む、付記１に記載のシステム。
【００５０】
付記３．  前記工程は、前記一組の姿勢のうちの１つの姿勢が到達可能であるかどうかを判定することと、
少なくとも前記姿勢が到達可能でないことに基づいて、前記姿勢を拒絶することと、をさらに含む、付記１又は２に記載のシステム。
【００５１】
付記４．  前記キャリブレーションチャートは、前記ロボットアームのエンドエフェクタに取り付けられており、前記光センサは、前記ロボットの本体に装着されている、付記１〜３のいずれか１つに記載のシステム。
【００５２】
付記５．  前記光センサは、前記ロボットアームに装着されている、付記１〜３のいずれか１つに記載のシステム。
【００５３】
付記６．  前記工程は、前記光センサをキャリブレーションするためのトリガーイベントを決定することをさらに含み、
前記光センサをキャリブレーションするための前記一組の姿勢を決定することは、少なくとも前記トリガーイベントに基づいて、前記光センサをキャリブレーションするための前記一組の姿勢を決定することを含む、付記１〜５のいずれか１つに記載のシステム。
【００５４】
付記７．  前記光センサは、第１光センサであり、
前記システムは、第２光センサをさらに含み、
前記トリガーイベントを決定することは、前記第１光センサで撮影された画像を、前記第２光センサで撮影された画像と比較することを含む、付記６に記載のシステム。
【００５５】
付記８．  ロボット光センサのオートキャリブレーションの方法であって、
光センサをキャリブレーションするための一組の姿勢を決定することと、
少なくとも前記一組の姿勢に基づいて、３次元（３Ｄ）位置及び配向のデータを含む姿勢データを生成することと、
少なくとも前記姿勢データに基づいて、前記ロボットアームを複数の姿勢に動かすことと、
前記複数の姿勢の各々において、前記光センサで、キャリブレーションチャートの一組の画像を撮影することと、
少なくとも前記一組の撮影画像に基づいて、内部キャリブレーションパラメータを算出することと、
少なくとも前記一組の撮影画像に基づいて、外部キャリブレーションパラメータを算出することと、を含む方法。
【００５６】
付記９．  前記外部キャリブレーションパラメータを算出する前に、前記内部キャリブレーションパラメータを前記一組の撮影画像に適用することをさらに含む、付記８に記載の方法。
【００５７】
付記１０．  前記一組の姿勢のうちの１つの姿勢が到達可能であるかどうかを判定することと、
少なくとも前記姿勢が到達可能でないことに基づいて、前記姿勢を拒絶することと、をさらに含む、付記８又は９に記載の方法。
【００５８】
付記１１．  前記キャリブレーションチャートは、前記ロボットアームのエンドエフェクタに取り付けられており、前記光センサは、前記ロボットの本体に装着されている、付記８〜１０のいずれか１つに記載の方法。
【００５９】
付記１２．  前記光センサは、前記ロボットアームに装着されている、付記８〜１２のいずれか１つに記載の方法。
【００６０】
付記１３．  前記光センサをキャリブレーションするためのトリガーイベントを決定することをさらに含み、
前記光センサをキャリブレーションするための前記一組の姿勢を決定することは、少なくとも前記トリガーイベントに基づいて、前記光センサをキャリブレーションするための前記一組の姿勢を決定することを含む、付記８〜１２のいずれか１つに記載の方法。
【００６１】
付記１４．  前記光センサは、第１光センサであり、
前記トリガーイベントを決定することは、前記第１光センサで撮影された画像を、第２光センサで撮影された画像と比較することを含む、付記１３に記載の方法。
【００６２】
付記１５．  コンピュータ可読プログラムコードが組み込まれたコンピュータ使用可能媒体を含むコンピュータプログラム製品であって、前記コンピュータ可読プログラムコードは、ロボット光センサを自動的にキャリブレーションするための方法を実施するために実行される構成とされており、前記方法は、
光センサをキャリブレーションするための一組の姿勢を決定することと、
少なくとも前記一組の姿勢に基づいて、３次元（３Ｄ）位置及び配向のデータを含む姿勢データを生成することと、
少なくとも前記姿勢データに基づいて、ロボットアームを複数の姿勢に動かすことと、
前記複数の姿勢の各々において、前記光センサで、キャリブレーションチャートの一組の画像を撮影することと、
少なくとも前記一組の撮影画像に基づいて、内部キャリブレーションパラメータを算出することと、
少なくとも前記一組の撮影画像に基づいて、外部キャリブレーションパラメータを算出することと、を含む、コンピュータプログラム製品。
【００６３】
付記１６．前記外部キャリブレーションパラメータを算出する前に、前記内部キャリブレーションパラメータを前記一組の撮影画像に適用することをさらに含む、付記１５に記載のコンピュータプログラム製品。
【００６４】
付記１７．前記一組の姿勢のうちの１つの姿勢が到達可能であるかどうかを判定することと、
少なくとも前記姿勢が到達可能でないことに基づいて、前記姿勢を拒絶することと、をさらに含む、付記１５又は１６に記載のコンピュータプログラム製品。
【００６５】
付記１８．  前記キャリブレーションチャートは、前記ロボットアームのエンドエフェクタに取り付けられており、前記光センサは、前記ロボットの本体に装着されている、付記１５〜１７のいずれかに記載のコンピュータプログラム製品。
【００６６】
付記１９．  前記光センサは、前記ロボットアームに装着されている、付記１５〜１８のいずれかに記載のコンピュータプログラム製品。
【００６７】
付記２０．  前記光センサは、第１光センサであり、
前記第１光センサをキャリブレーションするためのトリガーイベントを決定することをさらに含み、
前記トリガーイベントを決定することは、前記第１光センサで撮影された画像を、第２光センサで撮影された画像と比較することを含み、
前記第１光センサをキャリブレーションするための前記一組の姿勢を決定することは、少なくとも前記トリガーイベントに基づいて、前記第１光センサをキャリブレーションするための前記一組の姿勢を決定することを含む、付記１５〜１９のいずれかに記載のコンピュータプログラム製品。
【００６８】
本開示の側面またはその実施態様の要素について述べる際の、「a」、「an」、「the」、及び「said」などの冠詞は、その要素が１つ又は複数あることを意味する。また、「備える」、「含む」、「有する」などの用語は、包括的であり、列挙した要素以外の追加的な要素も存在しうることを意味する。「実施態様」という用語は、「一例」を意味することを意図している。また、「次のＡ、Ｂ及びＣのうちの１つ以上」とは、「Ａのうちの少なくとも１つ及び／又はＢのうちの少なくとも１つ及び／又はＣのうちの少なくとも１つ」を意味する。
【００６９】
本開示の側面を詳しく説明したが、添付の請求の範囲に規定される本開示の側面の範囲から逸脱することなく改変及び変更が可能なことは、明らかであろう。上述した構造、製品、及び、方法に対して、本発明の側面の範囲から逸脱することなく様々な改変を加えることができるため、上述した説明に含まれる事項や添付図面に示した事項の全ては、例示的であり、限定的な意味に解釈されるべきではない。
【図１Ａ】
2020172017.tif 000003
【図１Ｂ】
2020172017.tif 000004
【図２】
2020172017.tif 000005
【図３】
2020172017.tif 000006
【図４】
2020172017.tif 000007
【図５】
2020172017.tif 000008
【図６】
2020172017.tif 000009
【図７】
2020172017.tif 000010
【図８】
2020172017.tif 000011
【図９】
2020172017.tif 000012
【図１０】
2020172017.tif 000013
【図１１】
2020172017.tif 000014
【図１２】
2020172017.tif 000015
【図１３】
2020172017.tif 000016
【外国語明細書】
2020172017000001.pdf
2020172017000002.pdf
2020172017000003.pdf
2020172017000004.pdf