IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブライト マシーンズ インコーポレイテッドの特許一覧

特表2024-526711視覚ベースのツール位置特定のための方法及び装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-19
(54)【発明の名称】視覚ベースのツール位置特定のための方法及び装置
(51)【国際特許分類】
   G06T 7/73 20170101AFI20240711BHJP
   B25J 13/00 20060101ALI20240711BHJP
【FI】
G06T7/73
B25J13/00 Z
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024501506
(86)(22)【出願日】2022-07-12
(85)【翻訳文提出日】2024-02-01
(86)【国際出願番号】 US2022073658
(87)【国際公開番号】W WO2023288233
(87)【国際公開日】2023-01-19
(31)【優先権主張番号】63/203,326
(32)【優先日】2021-07-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523181064
【氏名又は名称】ブライト マシーンズ インコーポレイテッド
(74)【代理人】
【識別番号】110001656
【氏名又は名称】弁理士法人谷川国際特許事務所
(72)【発明者】
【氏名】クラーク,バレット
(72)【発明者】
【氏名】アクマン,オイトゥン
(72)【発明者】
【氏名】ブラウン,マシュー
(72)【発明者】
【氏名】ポールマン,ロナルド
(72)【発明者】
【氏名】マシューズ,ブライアン フィリップ
(72)【発明者】
【氏名】ガロ,エマニュエル
(72)【発明者】
【氏名】シャフィカニ,アリ
【テーマコード(参考)】
3C707
5L096
【Fターム(参考)】
3C707AS06
3C707JS03
3C707JS07
3C707JU02
3C707KT02
3C707KT09
3C707LS20
3C707LW12
5L096BA05
5L096CA04
5L096DA02
5L096FA06
5L096FA66
5L096FA69
(57)【要約】
1つ以上の較正されたカメラを含むロボット組み立てシステムにおける視覚ベースのツール位置特定(VTL)のための方法であって、複数の異なる視点からツール接触領域の複数の画像を取り込むことと、画像に基づいてツール接触領域の推定位置を決定することと、別の視点からの別の画像に基づいて推定位置を精緻化することとを含む方法。方法は、ロボット組み立てシステムによるツールの正確な制御を可能にするために、精緻化された位置をロボット組み立てシステムに提供することを更に含む。
【選択図】図3
【特許請求の範囲】
【請求項1】
1つ以上の較正されたセンサを含むロボット組み立てシステムにおける視覚ベースのツール位置特定(VTL)のための方法であって、
複数の異なる視点からツールのツール接触領域の複数の画像を取り込むことと、
第1の視点を評価することであって、前記第1の視点を評価することは、
前記ツールの推定位置に基づいて前記ツール接触領域の輪郭をレンダリングすることと、
前記ツール接触領域の前記画像上に前記輪郭を重ねることと、
前記レンダリングされた輪郭と前記画像との間の距離を最小化することとによって、前記第1の視点を評価することと、
前記評価に基づいて、前記ツール接触領域の推定位置を決定することと、
別の視点からの別の評価に基づいて、前記ツール接触領域の前記推定位置を精緻化することと、
前記ロボット組み立てシステムによる前記ツールの正確な制御を可能にするために、前記ツール接触領域の前記精緻化された位置を前記ロボット組み立てシステムに提供することと、を含む、方法。
【請求項2】
ツール中心点を識別することと、
前記ツール中心点が前記ツール接触領域でない場合、前記ツール中心点を計算することと、を更に含む、請求項1に記載の方法。
【請求項3】
前記ツール接触領域を識別するために第2の手法を利用することを更に含み、前記第2の手法は、
前記ツール接触領域を選択するためのユーザ入力を要求すること及び
空間カービングのうちの1つを含む、請求項1に記載の方法。
【請求項4】
前記複数の画像は複数のカメラによって撮影され、前記ツール接触領域は移動しない、請求項1に記載の方法。
【請求項5】
前記複数の画像は、1つのカメラによって撮影され、前記ツール接触領域は、撮影されている前記画像間で移動される、請求項1に記載の方法。
【請求項6】
前記推定された位置と前記精緻化された位置との間のオフセットを計算することを更に含む、請求項1に記載の方法。
【請求項7】
前記輪郭が2次元輪郭である、請求項1に記載の方法。
【請求項8】
前記輪郭が3次元輪郭である、請求項1に記載の方法。
【請求項9】
前記推定された位置に基づいて2次元輪郭をレンダリングすることと、
前記2次元輪郭に基づいて3次元形状位置を精緻化することと、を更に含む、請求項1に記載の方法。
【請求項10】
1つ以上の較正されたセンサを含むロボット組み立てシステムにおける視覚ベースのツール位置特定(VTL)のための方法であって、
複数の異なる視点からツールのツール接触領域の複数の画像を取り込むことと、
前記ツール接触領域の位置を示すユーザ入力に基づいて、前記ツール接触領域の推定位置を決定することと、
別の視点からの別の決定に基づいて、前記ツール接触領域の前記推定位置を精緻化することと、
前記ロボット組み立てシステムによる前記ツールの正確な制御を可能にするために、前記ツール接触領域の前記精緻化された位置を前記ロボット組み立てシステムに提供することと、を含む、方法。
【請求項11】
前記ツール接触領域上の指定された点をクリックすることによって選択を行うようにユーザに促すことと、
前記クリックから座標を識別することと、
複数のクリックからの前記座標を利用して、前記ツール接触領域の前記精緻化された位置を計算することと、を更に含む、請求項10に記載の方法。
【請求項12】
以前の選択に基づいてヘルパーデータを前記ユーザに提供することを更に含む、請求項11に記載の方法。
【請求項13】
前記選択を行うように前記ユーザに促す前に、前記ツール接触領域に向かってズームインすることを更に含む、請求項11に記載の方法。
【請求項14】
カメラからの視線を前記指定された点にマッピングすることと、
前記ツール接触領域の前記精緻化された位置を識別するために複数の視線を利用することと、を更に含む、請求項11に記載の方法。
【請求項15】
1つ以上の較正されたセンサを含むロボット組み立てシステムにおける視覚ベースのツール位置特定(VTL)のための方法であって、
複数の異なる視点からツールのツール接触領域の複数の画像を取り込むことと、
ツール接触領域位置を決定するための複数の手法を選択することと、
第1の手法を使用して前記ツール接触領域の推定位置を決定することであって、前記第1の手法は、ユーザ選択、画像オーバーレイ、及び空間カービングのうちの1つを含む、決定することと、
ユーザ選択、画像オーバーレイ、及び空間カービングのうちの1つを含む第2の手法に基づいて、前記ツール接触領域の前記推定位置を精緻化することと、
前記ロボット組み立てシステムによる前記ツールの正確な制御を可能にするために、前記ツール接触領域の前記精緻化された位置を前記ロボット組み立てシステムに提供することと、を含む、方法。
【請求項16】
前記ユーザ選択は、
前記ツール接触領域上の指定された点をクリックすることによって選択を行うようにユーザに促すことと、
前記クリックから座標を識別することと、
前記ツール接触領域位置を計算するために、複数のクリックからの前記座標を利用することと、を含む、請求項15に記載の方法。
【請求項17】
前記空間カービングは、
前記画像に基づいて前記ツール接触領域の前記推定位置を決定することは、前記ツール接触領域ではない空き空間を切り取ることを含み、
前記推定された位置を精緻化することは、異なる視点を有する画像から前記ツール接触領域ではない前記空き空間を切り取ることを含む、ことを含む、請求項15に記載の方法。
【請求項18】
前記推定位置を決定することは、
前記ツール接触領域の推定位置に基づいて輪郭をレンダリングすることと、
前記ツール接触領域の前記画像上に前記輪郭を重ねることと、
前記レンダリングされた輪郭と前記画像との間の距離を最小化することと、を含む、請求項15に記載の方法。
【請求項19】
前記複数の手法の各々について精度を重み付けすることと、
前記精度重み付け手法を利用して、前記精緻化された位置について解答することと、を更に含む、請求項15に記載の方法。
【請求項20】
閾値未満の精度レーティングを有する前記複数の手法のうちの1つを識別することと、
ユーザが前記識別された手法を再実行することを提案することと、を更に含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本出願は、2021年7月16日に出願された米国仮特許出願第63/203,326号の優先権を主張し、その出願全体を組み込む。
【0002】
(発明の分野)
本発明は、ツール位置特定に関し、より詳細には、視覚ベースのツール接触領域位置特定に関する。
【背景技術】
【0003】
ロボットシステムでは、エンドエフェクタ又はツールは、他の要素と相互作用するために使用されるロボットアームの端部にあるデバイスである。例えば、物体を持ち上げて移動させるグリッパは、そのようなツールと考えられる。ねじ回し、グルーチップ、プッシュピンインサータなども同様である。ロボットが正しく機能するために、ロボットは、環境内の他の要素に対してこのツールを正しく位置決めしなければならない。ツール先端が位置X1にあるが、実際には位置X2にあるとロボットが考えた場合、適切に力を加えるように作用しないだけでなく、組み立てられている要素に実際に損傷を与える可能性がある。数分の1ミリメートルの不一致でさえも、チップをソケットに挿入するときに損傷を引き起こす可能性がある。したがって、ツール先端の正確な位置特定は、有用なロボット工学にとって極めて重要である。
【0004】
図1は、そのような位置特定に対する従来技術の手法を示す。「3点教示」手法は、正確な教示点を設定するために、ユーザがロボットアームを制御してロボットアームを各点に物理的に移動させることを必要とする。これは、ツール中心点を見るユーザの能力に対する精度を制限し、アームにおける大きな姿勢変化はリスクである。また、面倒で時間のかかるプロセスである。
【図面の簡単な説明】
【0005】
本発明は、添付の図面の図において、限定としてではなく例として示され、同様の参照番号は同様の要素を指す。
図1】ツール先端を識別する従来技術の方法を示す図である。
図2】ツール位置特定が使用され得るシステムの一実施形態のブロック図である。
図3】視覚ベースのツール位置特定(Vision-based Tool Localization、VTL)システムの一実施形態を示すブロック図である。
図4】ツール位置特定の一実施形態の概略フローチャートである。
図5A】ツール位置特定のためにユーザ入力を使用する一実施形態のフローチャートである。
図5B】ツール位置特定のためにユーザ入力と共に使用され得る例示的な表示である。
図5C】ツール位置特定のためにユーザ入力と共に使用され得る例示的な表示である。
図5D】ツール位置特定のためにユーザ入力と共に使用され得る例示的な表示である。
図6A】ツール位置特定のために空間カービングを使用する一実施形態のフローチャートである。
図6B】空間カービングの一実施形態を示す。
図6C】空間カービングの一実施形態を示す。
図7】ツール位置特定のための2Dオーバーレイ使用の一実施形態を示すフローチャートである。
図8】ツール位置特定のための3Dオーバーレイ使用の一実施形態を示すフローチャートである。
図9A】ツール位置特定のために2Dオーバーレイと3Dオーバーレイの組み合わせを使用する一実施形態のフローチャートである。
図9B】ツール位置特定のためのオーバーレイを示す表示の一実施形態を示す。
図10】スタック式のツール位置特定手法の一実施形態を示すフローチャートである。
図11】視覚ベースのツール位置特定システムと共に使用され得るコンピュータシステムの一実施形態を示すブロック図である。
【発明を実施するための形態】
【0006】
視覚ベースのツール位置特定について説明する。システムは、カメラ又は他のセンサを利用して画像を取得し、その情報を使用してツールを正確に位置特定し、ユーザがロボットアームを手動で制御してツールを位置特定する必要がない。一実施形態では、システムは、ツール中心点(Tool Center Point、TCP)又はツール接触領域(Tool Contact Area、TCA)を位置付けるために使用されてもよい。ツール接触領域は、接触点又は接触面を表す。一実施形態では、ユーザは、ツール接触領域を視覚的に識別することができる。ツール中心点は、ツールがその周りを動く回転点を表す。それはツールの接触領域でなくてもよく、視覚的に識別可能なツール接触領域からの補間に基づいて計算されてもよい。画像は、カメラ及び/又は他のセンサによって取得され得る、ツールの視覚的又は非視覚的表現である。
【0007】
本発明の実施形態の以下の詳細な説明は、同様の参照番号が同様の要素を示し、本発明を実施する特定の実施形態を例示として示す添付の図面を参照する。これらの実施形態の説明は、当業者が本発明を実施することを可能にするのに十分に詳細である。当業者は、他の実施形態が利用されてもよく、論理的、機械的、電気的、機能的及び他の変更が、本発明の範囲から逸脱することなく行われてもよいとことを理解する。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によってのみ定義される。
【0008】
図2は、ツール位置特定が使用され得るシステムの一実施形態のブロック図である。一実施形態では、ロボットセルA10は、1つ以上の個々のロボットセルを含み、これらの1つ以上の個々のロボットセルは、ソフトウェア定義製造ライン又はマイクロ工場A12を一緒に形成するものである。一実施形態では、個々のロボットセルA10は、コンベヤ及び逆コンベヤを介して連結されてもよく、それにより、マイクロ工場を通して製造又は組み立てられている単一のアイテムが、1つ以上のロボットセルA10を通過する(又は1つ以上のセルA10を複数回通過する)ようになる。ロボットセルA10は、製品の製造、組立、検査、及び/又は試験を提供することができる。
【0009】
簡略化のために、「製造」という用語が使用されるが、この用語は、検査、製造及び/又は組み立て、検証、並びに試験を含む、製品を作製することの一部である任意のプロセスに対して使用されていることを理解されたい。
【0010】
一実施形態では、ロボットセルA10は、ソフトウェアによって制御される。一実施形態では、ロボットセルA10の構成データ及び制御データは、メモリA20からセルに適用される。一実施形態では、メモリA20は、ネットワークA05を介してロボットセルA10に結合されたリモートシステムの一部であってもよい。構成データA25は、各ロボットセルA10及び製造ラインごとのソフトウェア構成を定義する。各ロボットセルは、構成データA25に基づいて、使用前に較正される。一実施形態では、ロボットセルA10はまた、以下により詳細に説明されるように、連続的に較正される。
【0011】
一実施形態では、ロボットセルA10は、較正され、試験され、使用されている間に、動作データを収集する。この動作データA30は、メモリA20に記憶され、機械学習システムA35によって使用される。一実施形態では、ローカルストレージA15は、ロボットセルの構成データと、使用中にロボットセルによって生成される動作データとの、バックアップを提供する。一実施形態におけるローカルストレージA15は、メモリA20のバッファとして機能する。一実施形態では、ロボットセルA10がネットワークA05から切断された場合でも、ロボットセルA10は、ローカルストレージA15を使用して、動作を継続し、リアルタイム動作データを収集することができる。
【0012】
一実施形態では、セルがソフトウェアにより構成されるので、単一のロボットセルA10は、製造プロセスにおいて複数の段階を実行してもよく、製造プロセス中に再構成されてもよい。一実施形態では、これはまた、大規模な再構成なしに、製造中にマイクロ工場内のロボットセルA10を置換することを可能にする。一実施形態では、これはまた、マイクロ工場へのセルの追加を可能にする。
【0013】
一実施形態では、ロボットセルA10は、製造フロア上のロボットセルA10との相互作用を可能にするローカルユーザインターフェース(User Interface、UI)A55を含む。一実施形態では、ローカルユーザインターフェースA55は、ロボットセルの要素を直接制御するのを可能にする、ジョイスティックベースの相互作用を提供してもよい。
【0014】
一実施形態では、ローカルユーザインターフェースA55に加えて、ネットワークA05を介してロボットセルA10に結合されたリモートユーザインターフェース(UI)A50が存在してもよい。リモートユーザインターフェースA50は、タブレットなどのポータブルユーザインターフェースであってもよい。リモートユーザインターフェースA50は、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、又は別のタイプのネットワークを介して、ロボットセルA10にリンクされ得る。一実施形態では、いくつかのリモートユーザインターフェースA50は、ロボットセルA10の近くにあることを必要とする場合があるが、他のリモートユーザインターフェースA50は、どこからでも動作可能である場合がある。一実施形態では、ユーザインターフェース上に提示される機能要素及び制御要素は、ロボットセルA10、ロボットセルA10の構成、ユーザインターフェースにログインされる個人の識別情報/資格、及び物理的セルへの近接性のうちの、1つ以上に基づいて変動してもよい。一実施形態では、ローカルユーザインターフェースA55及びリモートユーザインターフェースA50は、同一のヒューマン対マシンインターフェース(HMI)要素、レイアウト、及び機能性を提供し、ロボットセルA10と相互作用するオペレータにとっての複雑さを低減する。一実施形態では、ユーザインターフェースは、全てのロボットセルタイプ及び構成にわたって統一されたHMIを提供する。
【0015】
一実施形態では、最終製品の生産のために、プロセスは開発ツールA40から開始される。一実施形態では、これらのツールは、設計者がリモートで利用できるようにすることができる。一実施形態において、これらのツールは、サービスとしてのソフトウェア(Software as a Service、SaaS)タイプのインターフェースを介して、オンラインで提供されてもよい。一実施形態では、開発ツールA40は、1つ以上のロボットセルA10を含む製造ラインの作成を可能にする。一実施形態では、各ロボットセルA10は、一定の能力を有する。開発ツールA10は、ユーザが、最終製品を作成するためにロボットセルA10のうちの1つ以上を使用して製造ラインを作成することを可能にする。
【0016】
一実施形態では、CAD/ジェネレーティヴデザインツールA60を使用して、製造される最終製品のCAD設計図を作成することができる。一実施形態では、CAD/ジェネレーティヴデザインツールA60を使用する場合、システムは、最終製品を設計する際にロボットセルA10の製造/組み立て上の制約を考慮に入れることができる。一実施形態では、CAD/ジェネレーティヴデザインツールA60は、開発ツールA40からデータを受け取ることができ、開発ツールA40を介して識別された問題に基づいて、最終製品の設計を繰り返すことができる。開発ツールA40の出力は、各ロボットセルに対する一連の動作である。
【0017】
ひとたびデザインが生成されると、トランスレータA70は、動作のシーケンスを、個々のロボットセルに対する制御コマンドに変換する。一実施形態では、開発ツールA40の出力は、ロボットセルによって行われる構成及びアクションを記述する言語で記述される。各個々のロボットセルは、異なる制御言語を利用し得る複数の要素を含むため、変換は非常に複雑である。更に、同じ動作シーケンスを実行する異なるロボットセルは、異なる製造業者からの要素を有してもよく、又は異なる構成を有していてもよい。例えば、ロボットアームは、複数の運動関節を有してもよく、関節は、異なる制限を有していてもよい。したがって、一連の動作における単一のコマンドは、個々のロボットセルごとに異なるように変換され得る。
【0018】
変換された制御コマンドは、仮想化ロボットセルA75に適用され得る。仮想化ロボットセルA75は、個々の構成されたロボットセルのソフトウェア表現であり、一実施形態では実際のロボットセルをシミュレーションするように構成されるので、試験及び検証のために使用され得る。一実施形態では、仮想化ロボットセルA75は、実際のロボットセルA10からの動作データA30を使用して、ユーザが物理的ロボットセルA10のアクションを、リモートで見ることを可能にし得る。一実施形態では、ユーザは、仮想化ロボットセルA75を使用して、プロセス中にロボットセルのアクションをプレビューしてもよく、プロセス中に実際のアクションを追跡してもよく、かつ/又はプロセス後に実際のアクションをレビューしてもよい。
【0019】
ひとたびトランスレータA70の出力が、妥当性検査及び検証をされると、構成データA25として記憶される。構成データA25は、上述したように、物理的ロボットセルに適用される。
【0020】
一実施形態において、機械学習システムA35は、反復学習のためのデータを提供するために使用され、プロセスに改善を提供するために使用される。
【0021】
一実施形態では、ここでは要素が個々の要素として示されているが、当業者であれば、設計ツールA60、開発ツールA40、トランスレータA70、仮想化ロボットセルA75、及び機械学習システムA35が、1つ以上のコンピュータシステム上に実装されることを理解するであろう。コンピュータシステムは、スタンドアロンデバイス、サーバ、又は、ネットワークA05を介してアクセスされるクラウドベースのシステムであってもよい。一実施形態では、上述の要素は、単一サーバシステム上に実装されてもよい。一実施形態では、上述の要素は、複数の無関係なコンピュータ/サーバシステム上に実装され得る。一実施形態では、開発ツールA40のような要素について単一のブロックのみが図示されているが、実際のツールは複数のデバイスにわたって分散されてもよい。
【0022】
図3は、視覚ベースのツール位置特定(VTL)システムの一実施形態を示すブロック図である。視覚ベースのツール位置特定システム(VTL)システム310は、一実施形態では、カメラ315及び他のセンサ317を含み得るセンサ320、並びにロボットアーム394のうちの1つ以上からデータを受信するプロセッサを用いて実装される。一実施形態では、プロセッサはロボットシステムの一部であってもよい。別の実施形態では、プロセッサは、ネットワークを介してロボットセル390と通信する遠隔システムであってもよい。一実施形態では、この処理は、ロボットセルのローカルシステムと遠隔サーバとの間で分割されてもよい。
【0023】
センサ320は、画像データを取得する。本出願で使用される画像データは、オブジェクトの視覚表現又は非視覚表現を指す。一実施形態において、画像は、感知されたデータの格子状ピクセル表現であってもよい。データは、直接的又は間接的に感知され得る。間接的に感知されたデータの場合、システムは画像を再構成することができる。画像は、カメラ又は別のセンサからのものであってもよい。したがって、「画像」という用語は、ツールを位置特定するために本システムによって使用される作業領域の部分の任意の視覚表現又は非視覚表現を指すために使用される。
【0024】
一実施形態におけるVTLシステム310は、粗い接触領域識別器325を含む。粗識別器325は、一実施形態では、ロボットセル390の体積内のツール接触領域の近似位置を識別する。一実施形態では、上述したように、ロボットセル390は、ロボットアーム394が移動することができる「作業空間」392を有する。作業空間392は、ロボットセルの全容積であってもよく、図示されるように、その中でロボットアーム394が移動することができる。別の実施形態では、作業空間392は、ロボットセル領域全体のサブセットとして定義されてもよい。例えば、作業空間392は、ロボットアームの好ましい作業ゾーンとして定義されてもよく、そこでは、動きが最も正確に追跡及び制御され得る。作業空間392を定義する他の方法が使用されてもよい。
【0025】
一実施形態では、ツール接触領域398の正確な位置は、VLTシステムによって規定される。一実施形態では、ツール中心点の位置が規定される。ツール中心点は、ツールがその周りを移動される位置を規定する。いくつかのツールについて、ツール中心点はツール接触領域と同一であってもよい。ツールによっては、ツール中心点がツール自体の外側にあってもよい。例えば、グリッパの場合、ツール中心点は、2つ以上の把持フィンガ間の中心点であってもよい。一実施形態では、ツール接触領域398の位置は、ロボットアーム394のフランジ中心396の位置に対して決定される。フランジ中心396とロボット原点395との間の関係は、システムの較正によって定義される。ロボット原点395は、一実施形態では、ロボットの基部の中心である。
【0026】
一実施形態における粗識別器325は、センサ320からのデータを利用して、おおよその位置を提供する。このデータは、一実施形態では、ツール接触領域を選択するための初期画像をユーザに提供するために使用される。一実施形態では、このブロックは、除去されてもよく、プロセスは、1つ以上のセンサ320からの画像データを超えるデータがない状態で開始してもよい。
【0027】
ユーザインターフェース330は、ユーザがシステムと相互作用してツール接触領域を識別するのを支援することを可能にする。
【0028】
一実施形態では、システムは、1つのカメラからツール接触領域の画像を表示する。ユーザは、ツール接触領域を識別するために点又は線をクリックするように促される。一実施形態では、点接触領域について、ユーザは当該の点をクリックするように促される。一実施形態では、線接触領域について、ユーザは、線上の2つ以上の点を選択するように促される。別の実施形態では、ユーザは、線上の1つの点を選択するように促され、後続の選択において、線上の別の1点を選択する。一実施形態では、ヘルパーデータシステム335は、ツール接触領域の推定位置を表示する。一実施形態では、ヘルパーデータシステム335は、カメラから以前にクリックされたツール接触点までの視線を表示する。データ収集360は、ユーザインターフェース330からデータを収集する。
【0029】
別の実施形態では、ユーザインターフェース330は、ユーザが、ツール接触領域の2次元又は3次元輪郭をカメラから示される画像と位置合わせすることを可能にする。一実施形態では、そのような位置合わせのために、レンダリングロジック340は、ツール接触領域の画像をレンダリングする。このレンダリングは、実際の視覚画像(例えば、ユーザが現在の画像から見るもの)に一致するようにツール接触領域を方向付けるように設計される。3D接触領域オーバーレイロジック345の場合、システムは、適切な画像を生成し、それを画像の上にオーバーレイしようと試みる。ユーザは、ユーザインターフェース330を介してオーバーレイを調整することができる。一実施形態では、2D接触領域オーバーレイロジック350について、図形の2次元輪郭がオーバーレイされ、ユーザによって調整されてもよい。ユーザインターフェース330からの出力は、データ収集360に渡される。
【0030】
これらの手法の各々は、画像のセットを利用し、時間と共にツール中心点の正確な表現を生成する。一実施形態では、画像は、異なるカメラによって撮影されてもよく、ツールを有する静止ロボットアームの異なる視点を提供する。別の実施形態では、画像は、1つ以上のカメラによって撮影されてもよく、ツールを伴うロボットアームは、異なる視点から複数の画像を作成するように移動されてもよい。
【0031】
別の実施形態では、VTLシステム310は、空間カーバ355を使用して、ツール接触領域の位置を決定する。空間カーバ355は、ツール接触領域の画像を取得し、ツール接触領域ではない画像の部分を切り取る。結果として生じる「彫刻された」3D画像は、正確なツール接触領域を表す。
【0032】
データ収集360は、1つ以上の手法からデータを収集する。一実施形態では、データ収集360は、メモリを利用して複数の画像を記憶する。データセット評価器365は、評価された画像のセットが、ツール接触領域を正確に規定するのに十分高い信頼度を提供するのに十分であるかどうかを判定する。一実施形態では、最新の位置のセット間の不一致が閾値を超える場合、データセット評価器365は、十分なデータがないと決定し、追加のデータが取得される。一実施形態では、閾値は、ツール及びタスク、並びにセンサ/カメラ解像度に依存し得る。一実施形態では、閾値は0.1mm~5mmであってもよい。一実施形態では、閾値は、利用可能な視点の数に依存し得る。
【0033】
データセット評価器365が、選択が十分に正確でないと判定した場合、一実施形態では、視点選択370は、追加の画像のための新しい視点を選択する。一実施形態では、新しい視点は、別のカメラからの画像、別のセンサからの画像、又は以前に使用されたが、ロボットアームがカメラに対して異なる位置にあるカメラからの画像であってもよい。一実施形態では、データセット評価器365は、代替的に、ヘルパーデータシステム335からの追加のヘルパーデータを用いて、既存の画像の再評価をトリガすることができる。例えば、画像の第1のセットが不正確であるが、追加のヘルパーデータを用いて、システム及び/又はユーザがツール接触領域をより正確に選択することができる場合、画像は再処理され得る。
【0034】
一実施形態では、ツール接触領域位置特定のための異なる手法(ユーザ選択、2Dオーバーレイ、3Dオーバーレイ、及び空間カービング)は、階層化され得る。一実施形態では、分析されるツールに基づいて手法を選択することができる。例えば、ソケットなどの凹形ツールの場合、2D又は3Dフィッティングは、ツールの位置をクリックするよりも良好であり得る。丸いツール、又は容易に識別される角、線、又は点を有さないツールの場合、ユーザ選択は、好ましい手法ではない場合がある。一実施形態において、手法スタッキングセレクタ385は、どの手法を使用するかを決定し、選択された手法のための適切なプロセスをトリガする。一実施形態では、ツール接触領域の決定は、3つの層を有し得る。第1の層は、純粋な人間入力層(例えば、ユーザがツール接触領域を選択する)である。第2の層は、訂正又は承認のためにユーザに示される提案された位置を有する人間の選択である。第3の層は自動化された層であり、ユーザは任意選択で自動化された位置決めを承認することができる。
【0035】
一実施形態では、システムは、複数の手法のうちの1つ以上を利用し、次いで、重みを各手法に割り当てる。重みは、位置特定されている特定のツールに対する手法の推定精度に依存する。ツール位置特定計算器380は、次いで、ツール接触領域の最終位置を計算するために、手法スタッキングセレクタ385からの重みを使用することができる。一実施形態では、重み付けは、複数の画像にわたる位置決め一貫性に依存する。一実施形態では、重み付けは、評価されるツール接触領域のタイプに依存する。一実施形態では、特定のタイプのツール接触領域は、異なる手法を用いてより容易に評価される。例えば、鋭い先端のツールは、ユーザ選択を使用して最良に位置特定されてもよく、一方、不規則な形状のツール接触領域は、3Dオーバーレイを使用して最良に評価されてもよい。一実施形態では、透明又は反射ツールは、3Dオーバーレイとうまく対応しない場合がある。一実施形態では、スタッキングセレクタ385は手法を重み付けし、データセット評価器は重み付けに基づいて最良の手法を選択する。
【0036】
データセット評価器365が、選択の数が正確な計算のための閾値を満たすと決定すると、ツール位置特定計算器380は、ツール接触領域の位置を決定する。一実施形態では、閾値は測定値の数である。一実施形態では、閾値は、十分な精度でツール接触領域内に収まる測定値のセットである。一実施形態では、適切な精度は100~250ミクロンの範囲である。
【0037】
一実施形態では、システムは、ツール位置特定計算器380からのデータを更に利用して、ツール中心点計算器383を介してツール中心点を決定することができる。ツール中心点計算器383は、ツール接触領域の計算された位置と、ツール構成の知識とを利用して、ツールがその周りを移動される軌道点を計算する。一実施形態では、計算は、ツール接触領域の識別された点/線の間を補間する。
【0038】
VTLシステム310の出力は、ツール接触領域及び/又はツール中心点の位置である。一実施形態において、ツール接触領域及び/又はツール中心点の位置は、ロボットアーム394のフランジ中心396へのオフセットとして出力される。このデータは、上述したようにツール接触領域398を正確に位置決めするために、製造プロセス及び組み立てプロセスにおいてロボットアーム394が正確に制御されることを保証するために使用される。
【0039】
図4は、ツール位置特定の一実施形態の概略フローチャートである。プロセスはブロック405で開始する。ブロック410において、プロセスは、ツール接触領域(TCA)及び/又はツール中心点(TCP)が正確に位置特定されるべきであると決定する。一実施形態では、このプロセスは、新しいツールがロボットアームによって選択されたときに必ず開始される。一実施形態では、このプロセスは、ツールの実際の位置が予測された位置と一致しないことを示す精度問題がシステムによって検出されたときにトリガされ得る。一実施形態では、このプロセスは、ロボットセルが、ツール位置特定の精度に関する問題を引き起こすであろう方法で移動されるか、又は他の状態にシフトされたときにトリガされてもよい。
【0040】
ブロック415において、ロボットデータは、ツール接触領域の粗い位置識別のために使用される。一実施形態では、ロボットデータは、画像データ、ロボットアーム位置決めデータ、又は他のデータを含むことができる。一実施形態では、粗い位置識別は、1センチメートルもしくは2センチメートル、又は数ミリメートル内のツール接触領域を識別する。これにより、評価のための初期領域が提供される。
【0041】
ブロック420において、プロセスは、カメラ及び/又は他のセンサを較正する。カメラ及びセンサは、ツール接触領域計算のための画像を取得するために使用される。
【0042】
一実施形態では、カメラは、1つ以上の基準を使用して較正される。カメラ較正により、一実施形態では、複数の視点から画像を提供する1つ以上のカメラからのデータに基づいて、ツール接触領域位置が正確に識別されることが確実になる。一実施形態では、「Method and Apparatus for Improved Auto-Calibration of a Robotic Cell」と題された同時係属中の米国仮出願第63/198,757号に説明されるプロセスが、カメラを較正するために利用される。
【0043】
ブロック425において、システムは、ツール接触領域の画像を取得するためにセンサのセットを選択する。一実施形態では、捕捉された画像データがツール接触領域を含み、画像がワイヤ又はツールショルダによって遮られないことを確実にするために、センサのセットが粗位置に基づいて識別される。一実施形態では、センサは、ツールの各近似位置に対して、ユーザによって手動で識別される。一実施形態では、システムは、ツールの粗位置及び既知の形状に基づいて、センサを自動的に識別する。
【0044】
ブロック430において、ツール接触領域の複数の画像が、複数の異なる視点から選択されたセンサのセットによって取り込まれる。一実施形態では、ロボットアーム/ツールは動かされず、むしろ複数のカメラ又は他のセンサが複数の画像を取り込む。別の実施形態では、ロボットアームは、複数の位置に移動され、1つ以上のカメラ又は他のセンサが、複数の画像を取り込む。一実施形態では、ロボットアームが移動される場合、センサを選択することに加えて、又はその代わりに、システムは、閉塞を回避するようにロボットアームの位置決めを選択してもよい。
【0045】
ブロック435において、位置は、以下でより詳細に説明されるように、ユーザ入力及び/又は分析に基づいて精緻化される。一実施形態では、ツール接触領域の精緻化された位置は、ロボットアームのフランジ中心に対するものである。
【0046】
ブロック440において、プロセスはツール中心点を計算する。一実施形態では、ツール中心点はツール接触領域と同一であってもよい。別の実施形態において、ツール中心点は、1つ以上のツール接触領域からのデータに基づいて補間されてもよい。
【0047】
ブロック445において、精緻化されたツール位置特定は、ツールを含むロボットアームを正確に制御するために使用される。ツール位置特定は、一般に、ロボットセルが、製造又は組み立てられる部品と相互作用することを可能にするために使用される。例えば、ロボットセルは、プリント回路基板を組み立てていてもよく、ツールは、プリント回路基板上に挿入するためにヒートシンクを取り上げるためのグリッパ、又は部品を取り付けるためのねじ回しであってもよい。したがって、ツール接触領域の精度は、正確な組み立て及び製造プロセスを保証するために重要である。次いで、プロセスは、ブロック450で終了する。
【0048】
図5Aは、ツール位置特定のためにユーザ入力を使用する一実施形態のフローチャートである。このプロセスは、図4のブロック430で説明される位置精緻化プロセスのための1つの手法である。プロセスはブロック505で開始する。
【0049】
ブロック510において、ツール接触領域を示す画像が表示される。一実施形態では、この画像は、ロボットアーム位置及び/又は他の画像に基づいて取得される粗画像である。
【0050】
ブロック520で、ユーザは、ツール接触領域をクリックするように促される。一実施形態では、ツール接触領域は、接着剤ディスペンサ先端などの点であってもよい。一実施形態では、ツール接触領域は、線、平面、又はより複雑な形状であってもよい。一実施形態では、ユーザは、特定の点をクリックするように促されてもよい。一実施形態では、ユーザは、線を規定するために2つの点をクリックするように促されてもよく、その線が表示されてもよい。一実施形態では、ユーザは、平面を規定するために3つの点をクリックするように促されてもよく、その平面が表示されてもよい。図5Bは、ユーザがツール接触領域を選択した場所を示す例示的なセクションを示す。
【0051】
一実施形態では、選択を行った後、ユーザは次いで点、線、又は平面の位置を調整することができる。一実施形態では、ユーザは、当該選択を確認するか、又は当該選択を拒否して再入力することができる。ブロック525において、選択のための座標データが記憶される。
【0052】
ブロック530において、異なる視点からの別の画像が表示される。一実施形態では、ユーザがツール接触領域を選択するのを支援するために、以前の選択に基づくヘルパーデータが示される。図5C及び図5Dは、ヘルパーデータの一例を示す。示されるヘルパーデータは、以前に選択されたツール接触領域を示す、以前の画像からの視線である。代替ヘルパーデータは、これまでに収集されたデータに基づく、推定ツール接触領域内の円であってもよい。
【0053】
ブロック535で、ユーザは、上記のように、クリックを促される。ブロック540において、座標データが記憶される。
【0054】
ブロック545において、プロセスは、データが計算を終了するために十分に高い信頼区間を提供するかどうかを決定する。一実施形態では、信頼区間は、連続する選択間の偏差に基づく。一実施形態では、十分なデータがあるかどうかを判定するための閾値は、固定されてもよく(例えば、少なくとも6つの選択)、精度に基づいて調整されてもよく(例えば、実質的に同一である少なくとも2つの選択)、重みに基づいて調整されてもよい(例えば、選択の信頼度が閾値を上回る)。別のタイプの決定が使用されてもよい。
【0055】
十分な選択がある場合、ブロック565において、データは、TCA及び/又はTCPを計算するために使用される。一実施形態では、計算はロボットアームのフランジ中心に関する。一実施形態では、以下で説明するように、この計算は、別の手法を使用して更に精緻化することができる。次いで、プロセスはブロック570で終了する。
【0056】
ブロック545において、選択が適切な信頼度レベルに対して十分でなかった場合、ブロック550において、プロセスは、次の視点が追加のカメラに基づいているか、又は同じカメラからの別の画像に基づいているかを判定する。次の視点が別のカメラからのものである場合、ブロック555で画像が選択され、プロセスはブロック530に戻って画像を表示し、ユーザに選択を促す。次の視点が同じカメラからのものである場合、ブロック560において、ロボットアームは、次の視点のための新しい位置に移動される。次に、プロセスは、ブロック530に戻る。一実施形態では、画像は全て第1の時間に取得されてもよく、ユーザ選択のプロセスは第2の時間に行われてもよい。その場合、プロセスは、以前に取得された画像のうちの1つを選択する。このようにして、システムは、ユーザからの入力に基づいてツールを位置特定する。上述したように、一実施形態では、システムは、この手法を1つ以上の他の手法と組み合わせて、最終的な位置特定を得ることができる。
【0057】
図6Aは、ツール位置特定のために空間カービングを使用する一実施形態のフローチャートである。このプロセスは、図4のブロック430で説明される位置精緻化プロセスのための別の手法である。プロセスはブロック610で開始する。
【0058】
ブロック620において、ツール接触領域を示す1つ以上の画像が取り込まれる。一実施形態では、この画像は、粗いロケーションベース画像である。別の実施形態では、この画像は、他の手法からのデータに基づいて前処理されてもよい。
【0059】
ブロック630において、システムは、ツール接触領域ではない空き空間を切り取る。自由空間カービングは、オブジェクトの画像のセットを利用して、それらの各々において占有されていない撮像された3Dオブジェクトの部分を切り取り、それによって、実際の3Dオブジェクトの境界ジオメトリを規定する。図6B及び図6Cは、境界ジオメトリベースの位置特定の一実施形態を示す。図6Bは、ツール接触領域のカメラ画像を示す。図6Cは、空間カービングによって作成された例示的なポイントクラウドを示す。一実施形態では、空間カービングは、ボリュームをボクセルに分割し、各ボクセルについて、それが占有されているかどうかを決定する。一実施形態では、複数の画像は、3次元領域が分析されることを保証する。一実施形態では、ボクセルは20ミクロン~500ミクロンである。一実施形態では、ボクセルは100ミクロンのボクセルである。
【0060】
図6Aに戻ると、ブロック640において、プロセスは、作成された3Dオブジェクトが正確であることを確認するのに十分なデータがあるかどうかを判定する。一実施形態では、これは、計算された位置の信頼区間に基づいて判定される。信頼区間が適切なレベルを満たさない場合、ブロック650において、異なる視点からの追加の画像が選択され、プロセスはブロック630に戻り、追加の画像を使用してより多くの空間を切り取る。各後続の反復は、一実施形態では、その入力として、以前にカービングされたデータを使用する。別の実施形態では、後続の反復は独立していてもよく、反復は加法的であってもよい。
【0061】
十分なレベルの信頼性がある場合、ブロック680において、データを使用して、ツール接触領域及び/又はツール中心点を計算する。次にプロセスは、ブロック690で終了する。
【0062】
図7は、ツール位置特定のための2Dオーバーレイ使用の一実施形態を示すフローチャートである。このプロセスは、図4のブロック430で説明される位置精緻化プロセスのための別の手法である。プロセスはブロック710で開始する。
【0063】
ブロック720において、画像はツール接触領域と共に表示される。一実施形態では、これは、ロボットアーム位置に基づいてシステムによって生成される未加工近似画像である。別の実施形態では、これは、他の手法を通して以前に精緻化された画像であってもよい。
【0064】
ブロック730において、ツール中心点の投影位置に基づく画像の2D輪郭がレンダリングされる。一実施形態では、レンダリングは、ツール接触領域の現在の推定位置に基づいて、オブジェクトの2次元ビューを表す。
【0065】
ブロック740において、システムは、ツール接触領域の実際の画像上にレンダリングされた2D輪郭をオーバーレイする。
【0066】
ブロック750において、システムは、レンダリングされた画像と実際の画像との間の距離を最小化する。一実施形態では、距離最小化は、反復最近点(Iterative Closest Point、ICP)アルゴリズムなどの最良適合アルゴリズムを利用する。
【0067】
一実施形態では、ブロック760において、ユーザは、示された適合を調整及び/又は承認することができる。一実施形態では、ユーザは、適合を微調整するか、又は他の状態に移動させてもよい。別の実施形態では、ユーザは、適合が良好であることを確認するか、又は再評価をトリガしてもよい。一実施形態では、2D輪郭がTCAの実際の位置に対して良好な一致でない場合、ユーザは、可能性のある一致を完全に拒絶し、それを評価から除去することができる。
【0068】
ブロック770において、プロセスは、信頼区間がTCA/TCPを計算するための選択に基づいて十分であるかどうかを決定する。そうでない場合、ブロック775において、新しい視点が選択される。一実施形態では、2D輪郭のレンダリングは、現在までのデータに基づくTCAの更新された推定値に基づく。これは、時間の経過と共に、レンダリングと画像との一致における精度の向上につながる。次に、プロセスはブロック720に戻り、新しい視点からの画像を表示する。
【0069】
ブロック770において決定されるように、信頼区間が十分に高い場合、ブロック780において、データは、実際のTCAと投影された位置との間のオフセットを計算するために使用される。このデータは、ブロック790で、正確なTCA/TCP位置を規定するために使用される。次いで、プロセスは、ブロック795で終了する。
【0070】
図8は、ツール位置特定のための3Dオーバーレイ使用の一実施形態を示すフローチャートである。このプロセスは、図4のブロック430で説明される位置精緻化プロセスのための1つの手法である。プロセスはブロック810で開始する。
【0071】
ブロック820において、画像はツール接触領域と共に表示される。一実施形態では、これは、ロボットアーム位置に基づいてシステムによって生成される未加工近似画像である。別の実施形態では、これは、他の手法を通して以前に精緻化された画像であってもよい。
【0072】
ブロック830において、ツール接触領域の投影位置に基づいて3D形状がレンダリングされる。一実施形態では、3D形状は、カメラ視点に対するツール接触領域の現在の推定位置に基づいて、物体のビューを表す。
【0073】
ブロック840において、システムは、ツール接触領域の実際の画像上にレンダリングされた形状をオーバーレイする。
【0074】
ブロック850において、システムは、3D形状とツール接触領域との重複に基づいて、適合しない画像の部分を切り取る。
【0075】
一実施形態では、ブロック860において、ユーザは、示された適合を調整及び/又は承認することができる。一実施形態では、ユーザは、適合を微調整するか、又は他の状態に移動させてもよい。別の実施形態では、ユーザは、適合が良好であることを確認するか、又は再評価をトリガしてもよい。
【0076】
ブロック870において、プロセスは、信頼区間がマッチングを終了し、TCA/TCPを計算するのに十分であるかどうかを決定する。そうでない場合、ブロック875において、新しい視点が選択される。3D形状のレンダリングは、一実施形態では、現在までのデータに基づくTCAの更新された推定値に基づく。これは、時間の経過と共に、レンダリングと画像との一致における精度の向上につながる。次に、プロセスはブロック820に戻り、新しい視点からの画像を表示する。
【0077】
ブロック870において決定されるように、十分なデータがある場合、ブロック880において、データは、実際のTCAと投影された位置との間のオフセットを計算するために使用される。このデータは、ブロック890で、正確なTCA/TCP位置を規定するために使用される。次いで、プロセスは、ブロック895で終了する。
【0078】
図9Aは、ツール位置特定のために2Dオーバーレイと3Dオーバーレイの組み合わせを使用する一実施形態のフローチャートである。このプロセスは、図4のブロック430で説明される位置精緻化プロセスのための1つの手法である。プロセスはブロック910で開始する。
【0079】
ブロック920において、ツール接触領域を示す画像が取り込まれる。
【0080】
ブロック930において、画像を取り込んだカメラ又はセンサに対するTCAの投影位置に基づいて、2D輪郭がレンダリングされる。
【0081】
ブロック940において、2D画像が抽出され、形状に適合される。すなわち、2D輪郭が画像にフィッティングされる。
【0082】
ブロック950において、3D形状の向き及び位置は、2D画像に基づいて精緻化される。これは、位置決めが画像からの2D投影に基づくので、3D形状に対するより正確なフィッティングを提供する。
【0083】
ブロック960において、3D形状は、調整されたレンダリングに基づいてTCAに適合される。
【0084】
ブロック970において、一実施形態では、ユーザフィードバックが有効にされる。一実施形態では、ユーザは、変更を提案し、提案された適合を承認し、又は提案された適合を拒否することができる。一実施形態では、ユーザが適合を拒否した場合、プロセスはブロック930に戻って再適合を試みるか、又はブロック985に進んで再評価のために異なる視点を選択する。
【0085】
ブロック980において、ユーザが適合を訂正又は受け入れる場合、システムは、正確なTCAを計算するのに十分なデータがあるかどうかを判定する。一実施形態では、これは、最後の1つ、2つ、又はそれ以上の適合の精度の閾値に基づく。別の実施形態では、これは、単純な最小カウントに基づいてもよい(例えば、最小数の適合が実行される)。別の実施形態では、これは、最後の適合に対して計算された信頼区間に基づいてもよい。一実施形態では、これは、複数の反復にわたる改善に基づくことができる。十分なデータがない場合、プロセスはブロック985で、評価のために次の視点を選択する。一実施形態では、次の視点は、前の視点から離れた点であるように選択される。一実施形態では、各視点は、前の視点から少なくとも15度オフセットして選択される。一実施形態では、システムは、少なくとも3つの異なる視点が計算に含まれることを保証する。次に、プロセスはブロック920に戻り、次の視点からの画像に基づいて評価を行う。
【0086】
十分な選択がある場合、ブロック990で、データはTCA/TCPを計算するために使用される。次いで、プロセスは、ブロック995で終了する。
【0087】
図9Bは、ツール位置特定のためのオーバーレイを示す表示の一実施形態を示す。見て分かるように、オーバーレイは、ツール接触領域(この場合はグリッパ)のシミュレートされた(又は予想される)位置の位置と、ツール接触領域の実際の位置との差を示す。このタイプの表示は、一実施形態において、図7図8、及び図9Aに示される2D及び/又は3D画像オーバーレイ手法に適用される。
【0088】
図10は、スタック式のツール位置特定手法の一実施形態を示すフローチャートである。一実施形態では、図4図9に関して上述した異なる手法を組み合わせて利用することができる。一実施形態では、システムは、上述のTCA位置特定手法のうちの1つ以上を行うことが可能であってもよい。図10は、2つ以上の手法が組み合わせて使用されるシステムを示す。これはオプションの手法であり、有効にされる必要はない。このプロセスは、一実施形態では、システムがセットアップされたときに開始される。プロセスはブロック1010で開始する。
【0089】
ブロック1015において、公称ツール接触領域(TCA)及び/又はツール中心点(TCP)位置が提供される。一実施形態では、公称TCP/TCA面積は、ロボットアーム位置の初期推定値に基づいて決定される。一実施形態では、デジタル表現又は仮想表現を使用して、最初の最良推測TCA位置を提供する。別の実施形態では、システムは何もせずに開始し、作業領域の1つ以上の画像を取得して、ロボットアーム、したがってTCAをほぼ位置特定することができる。別の実施形態では、初期位置推定値が使用される。
【0090】
ブロック1020において、複数の位置決定手法が識別される。上述したように、位置決定手法は、手動手法から完全自動手法までの範囲に及び得る。4つの特定の手法が、図4-9に関して説明される。追加的又は代替的な手法も組み込むことができる。一実施形態では、位置決定手法の選択は、評価されているツールのタイプに依存する。例えば、凹状ツール形状の場合、2D又は3Dマッチング手法は、ユーザ選択手法よりも良好である。同様に、6フィンガグリッパのような多数の別個の点を有するツールの場合、空間カービング手法がより良好に機能する。一方、プッシュピン又は他の尖ったツールの場合、ユーザ選択手法の方がよい場合がある。
【0091】
ブロック1025において、複数の手法が利用される。一実施形態では、各手法は、他の手法からのデータが使用されない「クリーン」で利用される。一実施形態では、複数の手法は並列に実行されてもよい。一実施形態では、同じ画像セットが各手法に使用される。別の実施形態では、複数の手法は順序付けられ、1つの手法の出力が後続の手法に利用可能である。一実施形態では、異なる手法のために異なる画像が使用される。
【0092】
ブロック1030において、各手法について適合スコアが計算される。適合スコアは、一実施形態では、手法によって示されるTCAの一貫性(したがって精度)の評価である。一実施形態では、適合スコアは、複数の手法にわたって計算され得る。例えば、異なる手法は、推定位置を得るために平均化されてもよく、次いで、個々の手法は、その推定位置に関して評価されてもよい。
【0093】
ブロック1035で、プロセスは、手法のうちの1つ以上がユーザ入力を使用するかどうかを決定する。そうである場合、ブロック1055において、システムは、低スコア適合である任意の推定値を識別する。ユーザ入力を使用した低スコア適合推定値が存在する場合、ユーザは、手法を精緻化するか、又は当該手法を破棄するように促される。ブロック1060において、ユーザが精緻化することを選択した場合、プロセスはブロック1025に戻り、選択された推定手法を再実行する。ユーザが精緻化を選択しなかった場合、プロセスはブロック1040に続く。一実施形態では、ユーザ入力ベースではない手法の場合、システムは、低い適合スコアを有する手法を破棄するか、又はデータを再処理することによって、もしくは新しい画像を取得し、新しい画像を用いてプロセスを再適用することによって、そのような手法を精緻化することができる。
【0094】
ブロック1040において、各手法は、適合スコアに基づいて重み付けされる。一実施形態では、重み付けは、最良適合スコアを有する1つの手法を単純に選択することができる。別の実施形態では、システムは、手法の組み合わせからのデータを利用してもよく、任意の次元(x,y,z,θ)について手法間に競合がある場合、最高スコアを有する手法からのデータが使用される。重み付けされた評価を利用する他の方法が使用されてもよい。
【0095】
ブロック1045において、重み付けされた解に基づいてTCA位置が解答される。次にプロセスは、ブロック1050で終了する。
【0096】
もちろん、図3図10はフローチャートとして示されているが、一実施形態では、プロセスが互いに依存しない限り、動作の順序は図示された順序に制約されない。更に、一実施形態では、システムは割り込み駆動システムとして実装されてもよく、したがって、システムは発生をチェックせず、発生がアクションをトリガするための通知を送信する。加えて、図示された様々な代替実装形態は、混合及び整合されてもよい。例えば、視点選択オプションは図9に関して説明されるが、同じオプションが図3図8に適用可能である。
【0097】
図11は、視覚ベースのツール位置特定システムと共に使用され得るコンピュータシステムの一実施形態を示すブロック図である。しかしながら、様々なシステムアーキテクチャの他の代替システムも、使用され得るということが当業者には明らかであろう。一実施形態では、図示されるコンピュータシステムは、ロボットセルの一部であってもよく、したがって、専用コンピューティングデバイスであってもよい。一実施形態では、図示されたコンピュータシステムはサーバ装置であってもよい。
【0098】
図11に示すコンピュータシステムは、情報を伝達するためのバス又は他の内部通信手段1140と、情報を処理するためにバス1140に結合された処理ユニット1110とを含む。処理ユニット1110は、中央演算処理装置(Central Processing Unit、CPU)、デジタル信号プロセッサ(Digital Signal Processor、DSP)、グラフィクスプロセッサ(Graphics Processor、GPU)、又は別のタイプの処理ユニット1110であり得る。
【0099】
システムは更に、一実施形態では、情報及びプロセッサ1110によって実行される命令を記憶するためにバス1140に結合されたランダムアクセスメモリ(Random Access Memory、RAM)又は他の記憶デバイス1120であり得るメモリ1120を含む。メモリ1120はまた、処理ユニット1110による命令の実行中に一時的変数又は他の中間情報を記憶するために使用されてもよい。
【0100】
システムはまた、一実施形態では、バス1140に連結された、プロセッサ1110のための静的情報及び命令を記憶するための読み取り専用メモリ(Read Only Memory、ROM)1150及び/又は静的記憶装置1150を備える。
【0101】
一実施形態では、システムはまた、例えば、磁気ディスク又は光ディスク及びそれぞれの対応するディスクドライブ、フラッシュメモリ、又はシステムに電力が供給されていないときにデータを記憶することができる他の記憶装置などの、データ記憶装置1130を含む。一実施形態におけるデータ記憶装置1130は、情報及び命令を記憶するために、バス1140に連結されている。
【0102】
いくつかの実施形態では、システムは、情報を出力するためにバス1160を介してバス1140に連結されたコンピュータ画面、スピーカ、又は他の出力機構などの出力デバイス1170に更に連結されてもよい。出力デバイス1170は、視覚的出力デバイス、音声出力デバイス、及び/又は触覚による出力(例えば、振動など)デバイスであってもよい。
【0103】
入力デバイス1175が、バス1160に連結され得る。入力デバイス1175は、ユーザが情報及びコマンドの選択を、処理ユニット1110に伝達することを可能にするための、例えば、英数字及び他のキーを含むキーボードなどの、英数字入力デバイスであり得る。追加のユーザ入力デバイス1180が、更に含まれてもよい。1つのそのようなユーザ入力デバイス1180は、例えば、マウス、トラックボール、スタイラス、カーソル方向キー、又はタッチスクリーンなどの、カーソル制御デバイス1180であり、バス1160を介してバス1140に連結され、方向情報及びコマンド選択を処理ユニット1110に伝達し、表示デバイス1170上の動きを制御してもよい。
【0104】
任意選択でコンピュータシステム1100に連結され得る別のデバイスは、ネットワークを介して分散システムの他のノードにアクセスするための、ネットワークデバイス1185である。通信デバイス1185は、イーサネット、トークンリング、インターネット、もしくは広域ネットワーク、パーソナルエリアネットワーク、無線ネットワークに連結するために使用されるいくつかの市販のネットワーキング周辺装置、又は他のデバイスにアクセスする他の方法等のうちのいずれかを含んでもよい。通信デバイス1185は更に、ヌルモデム接続であってもよく、又はコンピュータシステム1100と外部世界との間の接続性を提供する、任意の他の機構であってもよい。
【0105】
図11に示されたこのシステムの構成要素及び関連するハードウェアのいずれか又は全てが、本発明の様々な実施形態において使用され得るということに留意されたい。
【0106】
当業者であれば、本発明を実施する特定の機械は、特定の実施態様に従って様々な方法で構成できるということを理解するであろう。本発明を実施する制御ロジック又はソフトウェアは、メインメモリ1120、大容量記憶装置1130、又はプロセッサ1110がローカル又はリモートでアクセス可能な他の記憶媒体に、記憶することができる。
【0107】
本明細書で説明するシステム、方法、及びプロセスは、メインメモリ1120又は読み取り専用メモリ1150に記憶され、プロセッサ1110によって実行されるソフトウェアとして実装され得ることが、当業者には明らかであろう。この制御ロジック又はソフトウェアは、コンピュータ可読プログラムコードが具現化され、大容量記憶装置1130によって読み取り可能であり、プロセッサ1110を本明細書の方法及び教示に従って動作させるための、コンピュータ可読媒体を含む製品上に常駐することもできる。
【0108】
本発明はまた、上述のコンピュータハードウェア構成要素のサブセットを含む専用デバイスにおいて具現化されてもよい。例えば、ロボットセルは、バス1140、プロセッサ1110、並びにメモリ1150及び/又は1120のみを含むように構成されてもよい。ロボットセルは、利用可能なオプションのセットからユーザが選択することができるジョイスティック又は入力シグナリング構成要素を含むように構成することができる。これらは、第1入力デバイス1175又は第2入力デバイス1180と考えることができる。ロボットセルデバイスはまた、手持ち式のデバイスのユーザに情報を表示するための液晶ディスプレイ(Liquid Crystal Display、LCD)又は表示素子マトリックスなどの出力デバイス1170を含むように構成することもできる。そのようなデバイスのための上記のシステム及びプロセスの実装は、本明細書に提供されるような本発明の開示を考慮すれば、当業者には明白であろう。
【0109】
本発明はまた、上述のコンピュータハードウェア構成要素のサブセットを含むサーバシステムにおいて具現化されてもよい。サーバシステムは、クラウドベースであってもよく、ネットワークを介してロボットセルとインターフェースで接続してもよい。例えば、サーバシステムは、処理ユニット1110、データ記憶装置1130、バス1140、及びメモリ1120を含み、入力/出力機構を含まないか、又は初歩的な通信機構のみを含むことができる。一般に、デバイスがより特殊な目的のものであるほど、そのデバイスが機能するために存在する必要がある要素はより少なくなる。いくつかのデバイスでは、ユーザとの通信は、別個のデバイスを通して行われ得る。一実施形態では、デバイスは、いかなる直接入力/出力信号を提供しなくてもよいが、ウェブサイトを通じて、又はネットワークデバイス1185を介した他のネットワークベースの接続を通して構成及びアクセスされてもよい。
【0110】
コンピュータシステムとして実装される特定のマシンの任意の構成が、その特定の実装に従って使用され得るということが、当業者によって理解されるであろう。本発明を実施する制御ロジック又はソフトウェアは、プロセッサ1110がローカル又はリモートでアクセス可能な機械可読媒体上に記憶することができる。機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形式で、情報を記憶するための任意の機構を含む。例えば、機械可読媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学的記憶媒体、フラッシュメモリデバイス、又は一時的もしくは永続的なデータ記憶のために使用され得る他の記憶媒体を含む。一実施形態では、制御ロジックは、電気、光、音響、又は他の形態の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号など)などの送信可能データとして実装されてもよい。
【0111】
更に、本システムは、一実施形態において、分散コンピューティングシステム上に実装されてもよい。分散コンピューティングシステムでは、処理は、オペレータの位置から1つ以上のリモートコンピュータシステム上で行われ得る。システムは、コンピュータシステム1100を使用してローカル処理を提供し、記憶及び/又は処理のために1つ以上のリモートシステムを更に利用することができる。一実施形態では、本システムは、分散コンピュータを更に利用することができる。一実施形態において、コンピュータシステム1100は、ソフトウェアが実行されるクライアント及び/又はサーバコンピュータを表してもよい。本明細書で説明されるプロセスを実行する処理システムの他の構成が、本開示の範囲から逸脱することなく利用され得る。
【0112】
前述の明細書では、視覚ツール接触領域位置特定システム及び方法のためのシステムが、その特定の例示的な実施形態を参照して説明されている。しかしながら、添付の特許請求の範囲に記載された本開示のより広い精神及び範囲から逸脱することなく、様々な修正及び変更をしてもよいことは明らかであろう。したがって、本明細書及び図面は、限定的な意味ではなく例示的な意味で見なされるべきである。
図1
図2
図3
図4
図5A
図5B
図5C
図5D
図6A
図6B
図6C
図7
図8
図9A
図9B
図10
図11
【国際調査報告】