(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-21
(54)【発明の名称】ロボットセルの改良された自動較正のための方法及びシステム
(51)【国際特許分類】
B25J 9/10 20060101AFI20231114BHJP
【FI】
B25J9/10 A
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023552164
(86)(22)【出願日】2021-11-09
(85)【翻訳文提出日】2023-05-24
(86)【国際出願番号】 US2021072308
(87)【国際公開番号】W WO2022104328
(87)【国際公開日】2022-05-19
(32)【優先日】2020-11-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523181064
【氏名又は名称】ブライト マシーンズ インコーポレイテッド
(74)【代理人】
【識別番号】110001656
【氏名又は名称】弁理士法人谷川国際特許事務所
(72)【発明者】
【氏名】ポールマン,ロナルド
(72)【発明者】
【氏名】クラーク,バレット
(72)【発明者】
【氏名】アクマン,オイトゥン
(72)【発明者】
【氏名】ブラウン,マシュー
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS06
3C707JS01
3C707KS03
3C707KS04
3C707KS13
3C707KS16
3C707KS20
3C707KT03
3C707KW06
3C707LS15
3C707LS20
3C707LT12
3C707LT14
3C707LT17
3C707LT18
(57)【要約】
要素を有するロボットセルシステムを含むロボットセル較正方法であって、それらの要素は、1つ以上のカメラと、1つ以上のセンサと、構成要素と、ロボットアームとを含む。本方法は、共通座標フレームを使用して、ロボットアームの位置に対する1つ以上のカメラ及び構成要素の位置を特定することと、移動パターンでロボットアームを移動させることと、カメラ及びセンサを使用して、移動中の複数の時点で、ロボットアームの位置を決定することとを含む。本方法は、予測位置と決定位置との間のロボットアーム位置の不一致をリアルタイムで識別することと、自動較正器によって、識別された不一致の補償を計算することであって、自動較正器が、システムとしてのロボットセルシステム内の要素について解析することとを含む。本方法は、補償に基づいて、移動中にリアルタイムでロボットアームの動作を修正することを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ロボットセル較正方法であって:
1つ以上のカメラ、1つ以上のセンサ、構成要素、及びロボットアームを含む、要素を有するロボットセルシステムを提供することと;
共通座標フレームを使用して、前記ロボットセル内の、前記ロボットアームの位置に対する、前記1つ以上のカメラ及び前記構成要素の位置を特定することと;
前記ロボットアームを移動パターンで移動させ、前記カメラ及び前記センサを使用して、前記移動中に、複数回ロボットアーム位置を決定することと;
前記移動パターンにおける予測された位置と、前記決定されたロボットアーム位置との間のロボットアーム位置の不一致をリアルタイムで識別することと;
自動較正器によって、前記識別された不一致に対する補償を計算し、前記自動較正器が、システムとして前記ロボットセルシステム内の前記要素について解析することと、
前記ロボットアーム位置における前記識別された不一致を低減するために、前記補償に基づいて前記移動中にリアルタイムで前記ロボットアームの動作を修正することと、
を含む方法。
【請求項2】
前記カメラ、前記センサ、及び前記ロボットアームの前記特定された位置を使用して、前記ロボットセルの少なくともいくつかの動作を追跡する前記ロボットセルシステムの仮想表現を形成し、前記仮想表現が、前記自動較正器によって使用されることを更に含む、請求項1に記載のロボットセル較正方法。
【請求項3】
ロボットアーム位置が、決定された正確さの範囲内にあるかどうかを決定することと、
前記ロボットアームが前記決定された正確さの範囲外にあるときに、前記自動較正器による再較正を開始することと、
を更に含む、請求項1に記載のロボットセル較正方法。
【請求項4】
前記ロボットアームが移動パターンを通して移動するにつれて、ロボットアーム位置の連続的な較正を提供することを更に含む、請求項1に記載のロボットセル較正方法。
【請求項5】
前記ロボットアームを様々な負荷の下で、様々な速度で移動させ、様々な経路に沿って移動させて、前記不一致を識別すること、
を更に含む、請求項1に記載のロボットセル較正方法。
【請求項6】
前記ロボットセルの観察可能な空間内に見える構成要素の位置特定を改善するように、ロボットアーム移動パターンを選択することと;
1つ以上のフィデューシャルを含む物体が、前記ロボットアームに取り付けられている間に、前記選択されたロボットアーム移動パターンを実行することと、
を含む使用前較正を実行することを更に含む、請求項1に記載のロボットセル較正方法。
【請求項7】
前記1つ以上のカメラを較正することを更に含み、前記較正することは、カメラレンズ歪みを考慮する、請求項1に記載のロボットセル較正方法。
【請求項8】
前記ロボットアームの位置メトリックを用いて、位置正確さマップを構築することと;
前記位置正確さマップに基づいて、前記移動パターンを調整することと、
を含む事前較正を実行することを更に含む、請求項1に記載のロボットセル較正方法。
【請求項9】
前記計算することは、前記ロボットセルシステム内の動的及び静的構成要素をモデル化することを含む、請求項1に記載のロボットセル較正方法。
【請求項10】
前記ロボットセルが使用中である間、プロセッサのアイドルサイクルに、較正精緻化ステップを実行することを更に含み、前記アイドル時間較正は、前記ロボットセルが較正されたままであるかどうかを決定する、
請求項1に記載のロボットセル較正方法。
【請求項11】
前記ロボットセルが使用されていないときの初期較正を含む、請求項1に記載のロボットセル較正方法。
【請求項12】
使用中の前記ロボットセルの変化に対処するため、較正を更新するために、前記ロボットセルが使用されている間に適用される、使用中較正を含む、請求項11に記載のロボットセル較正方法。
【請求項13】
ロボットセルシステムであって
1つ以上のカメラと;
1つ以上のセンサと;
ロボットアームと;
プロセッサであって
共通座標フレームを使用して、前記ロボットセル内の前記ロボットアームの位置に対する、前記カメラ及び構成要素の位置を特定し、
前記ロボットアームの動きを動きパターンで制御し、前記カメラ及び前記センサを使用して、前記動きの間の複数の時点におけるロボットアーム位置を決定し、
前記移動パターンにおける予測位置と前記決定されたロボットアーム位置との間の、ロボットアーム位置の不一致を、リアルタイムで識別し、
自動較正器によって、前記識別された不一致に対する補償を、システムとしての前記ロボットセルシステム内の要素について解析することで、計算し、
前記ロボットアーム位置における前記識別された不一致を低減するために、前記動きの最中に、リアルタイムで、前記補償に基づいて、前記ロボットアームの動作を修正するように構成されているプロセッサと、
を備える、ロボットセルシステム。
【請求項14】
前記カメラ、前記センサ、及び前記ロボットアームの、前記特定された位置を使用して、前記ロボットセルの少なくともいくつかの動作を追跡する前記ロボットセルシステムの仮想表現を形成するように更に構成された前記プロセッサであって、前記仮想表現は前記自動較正器によって使用される、前記プロセッサを更に備える、
請求項13に記載のロボットセルシステム。
【請求項15】
ロボットアーム位置が所定の正確さの範囲内にあるかどうかを判定し、前記ロボットアームが前記所定の正確さの範囲外にあるときに、前記自動較正器による再較正を開始するように構成された前記プロセッサを更に備える、請求項13に記載のロボットセルシステム。
【請求項16】
前記システムは、前記ロボットアームが移動パターンを通して移動するにつれて、ロボットアーム位置の連続的較正を提供する、請求項13に記載のロボットセルシステム。
【請求項17】
前記ロボットアームを様々な負荷の下で、様々な速度で移動させ、様々な経路に沿って移動させ、前記不一致を識別するように構成されたロボット制御部を、
更に備える、請求項13に記載のロボットセルシステム。
【請求項18】
前記ロボットセルの観察可能な空間内に視認できる構成要素の位置特定を改善するように、ロボットアーム移動パターンを選択することと;
1つ以上のフィデューシャルを含む物体が、前記ロボットアームに取り付けられている間に、前記選択されたロボットアーム移動パターンを実行することと、
を含む使用前較正を実行するように構成された自動較正器を更に備える、
請求項13に記載のロボットセルシステム。
【請求項19】
前記使用前較正が、前記ロボットアームの位置メトリックを用いて位置正確さマップを構築し、前記位置正確さマップに基づいて前記移動パターンを調整するように構成された、前記プロセッサを更に含む、請求項18に記載のロボットセルシステム。
【請求項20】
前記プロセッサは、前記ロボットセルが使用されている間にプロセッサのアイドルサイクルで、較正精緻化ステップを実行するように構成され、前記アイドル時間較正は、前記ロボットセルが較正されたままであるかどうかを判定する、請求項13に記載のロボットセルシステム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願)
本出願は、2020年11月10日に出願された米国仮特許出願第63/198,757号の優先権を主張し、その出願全体を組み込む。
【0002】
本発明は、較正に関し、特に、ロボットセルの自動較正に関する。
【背景技術】
【0003】
ロボットアセンブリは、自動的に組み立てられる様々なタイプのデバイスで一般的になりつつある。しかしながら、そのようなロボットアセンブリシステムをセットアップし、維持することは、専門家による較正を依然として必要とする。
【0004】
ロボットアセンブリユニットは、一般に、かなりの数の部品を含み、各部品は較正されなければならない。これらの要素の各々は、一般に、実行されなければならない別個の較正ルーチンを有する。そのため、全てのものを較正するためには、これらの較正が調整されなければならない。
【0005】
これは遅くしかも高い精度のプロセス、すなわち、時間がかかり、専門知識を必要とするプロセスである。
【図面の簡単な説明】
【0006】
本発明は、添付の図面の図において、限定としてではなく例として示され、同様の参照番号は同様の要素を指す。
【
図1A】ロボット工場用のシステムの概略ブロック図である。
【
図1B】複数のロボットセルを含むマイクロ工場の一実施形態を示す図である。
【
図1C】ロボットセルの一実施形態を示す図である。
【
図1D】複数のフィデューシャルを含む作業スペースの一部の一実施形態を示す図である。
【
図1E】作業スペースの全体図を定義する要素の一実施形態を示す図である。
【
図2】ロボットセル及び自動較正システムの一実施形態を示すブロック図である。
【
図3】自動較正の一実施形態を示す概略フローチャートである。
【
図4】較正及び使用に対する全体論的表現アプローチの一実施形態を示す概要フローチャートである。
【
図5】使用中の再較正の一実施形態を示す概略フローチャートである。
【
図6】初期較正プロセスの一実施形態を示すフローチャートである。
【
図7】使用中の再処理及び較正の一実施形態を示すフローチャートである。
【
図8】センサ及び較正を用いてロボットセルをセットアップする一実施形態を示すフローチャートである。
【
図9】作業スペースをセットアップする一実施形態を示す概略フローチャートである。
【
図10】誤差最小化の一実施形態を示すフローチャートである。
【
図11】ロボットセルのセットアップ及び使用の一実施形態を示すプロセスフローである。
【
図12】本出願と共に使用され得るコンピュータシステムの一実施形態を示すブロック図である。
【発明を実施するための形態】
【0007】
製造又は組立に使用されるロボットセルの、自動較正について説明する。この説明の目的のために取り上げる「ロボットセル」は、コンピュータ制御される任意の組立機械又は製造機械である。例えば、ロボットセルは、組立のためのモジュール式ロボットシステム、コンピュータ数値制御(CNC)機械、3Dプリンタ、自動光学検査(AOI)システム、はんだペースト検査(SPI)、自動X線検査(AXI)機械、又は任意の他のデバイスであって、少なくとも1つのカメラを含み、コンピュータによって制御されるデバイスであり得る。このシステムは、インテグレータによって以前は手動で行われていたこと、部品をロボットセルに組付けること、及び製造中にロボットセルをモニタリングすること、を置き換えるために使用することができる。
【0008】
ロボットセル及びその作業領域の全体論的ビュー又はシステムビューを構築することによって、自動較正システムは、高い正確性及び精度、反復フィードバックループ、一定姿勢の精緻化、並びにカメラの精緻化を提供することができる。更に、一実施形態では、自動較正システムは、カスタマイズされたアセンブリではなく、既製の部品を用いてこれを達成することができる。一実施形態では、複数の低コストカメラが、幾何学的フィデューシャル制約と組み合わせて使用され、低減されたコスト及び複雑性で、高い精度を提供し得る。自動較正は、システム内のすべての要素を含むロボットセル環境の全体を包含するように使用されてもよく、全体論的ビュー、システムビュー、又はシステムとしての解析とも呼ばれる。例えば、モジュール式ロボット組立システムでは、これは、1つ以上のカメラ及び/又は他のセンサと、ロボットアームと、アーム端ツールと、部品及び追加的ツールが配置されるトレイと、ワークピースをロボット組立システムの内外に移動させるコンベヤと、個々のワークピースとを含んでもよい。一実施形態では、作業領域の全体図は、静止しているか移動可能であるかにかかわらず、すべての要素を含み、すべての要素を追跡及び/又は較正する。
【0009】
一実施形態では、自動較正は、カメラレンズの較正、フレームの位置合わせ、アーム端ツールの接触の較正、ロボットの姿勢誤差の補償、及び較正モニタリングの組合せを使用し、較正を経時的に維持するためのフィードフォワード制御及び常時補正を使用して可能となる。カメラレンズの較正は、カメラのセンサ及びレンズの、歪み及び誤差を較正し、この較正は、他の要素の較正に使用される。フレームの位置合わせは、作業スペース内のすべてのものの、互いに対する又は共有座標系に対する、相対的な位置及び向きを確立するものである。一実施形態におけるアーム端ツールの接触較正は、ツール中心点(TCP)較正と称され、これは、対象となるツールの先端の位置若しくは対象となるツールのライン、又はツールと製品若しくはワークピースとの界面となる、対象となるツール接触平面を較正するものである。アーム端ツールの接触の較正は、スペース内の位置並びに配向を有し得る。ある構成要素について、対象となるすべての位置及び向きを組合せて、姿勢と呼ぶ。接触点は、はんだ付け又は溶接におけるように、動的流体又はプラズマであってもよい。ロボットの姿勢誤差の補償は、蓄積された、製造における不正確さ、摩耗、及びロボットアームの構成要素又は他の構成要素における不正確さの他の原因の、影響を補償するための調整を提供する。ロボットの姿勢誤差は、例えば、機械的ヒステリシス、バックラッシュ、熱膨張、及び負荷などの様々な原因によって引き起こされ得る。一実施形態では、較正モニタリングは、ロボットセルシステムの較正状態の連続的なモニタリング、及び常時の補正を提供する。したがって、システムは、ロボットセル内の動的構成要素及び静的構成要素を較正し、学習プロセスを使用して、動的構成要素及び静的構成要素をモデル化する。
【0010】
一実施形態では、ロボットセル構造は、フレームと、ロボットアームと、ロボットアーム及び作業される部品が存在する、ある空間のスペースによって画定される作業領域とを含む。フレームは、多くの場合、ロボットセルの最も剛性の高い部分の1つであり、カメラの位置、及び原点又はルートとして使用され得る。システムは、一実施形態では、構造内の、ロボットセル自体の要素と、製品又はワークピースを含む、作業領域の全体論的表現を作成するように設計される。
【0011】
一実施形態では、作業領域内の様々な視座から観察可能な1つ以上のフィデューシャルが、ロボットセル構造に取り付けられる。一実施形態では、上記のフィデューシャルが、作業領域(又は体積分布)全体に分散され、各カメラが、ロボットアーム及び/又はロボットアームによって保持される較正ボード若しくは他の組み立てられた要素上の任意のフィデューシャルに加えて、作業領域に取り付けられた少なくとも1つのフィデューシャルを常に見るようにしている。しかしながら、ロボットセルが物理的に移動されるか、又は誰かがセルにぶつかるか、又は他の方法でロボットセル構造を移動させて、剛性のある部品を変位させる可能性があるので、そのような「剛性のある」部品であっても真に剛性のあるものではない。加えて、摩耗及び断裂は、移動又は変位を引き起こし得る。一実施形態では、本システムは、上記のような変位を識別することができ、そのようなずれが生じた場合には、ロボットセル構造が再較正され得るようになっている。
【0012】
一実施形態では、フィデューシャルの代わりに、又はフィデューシャルに加えて、システムは、ロボットセル内の生来の特徴部を利用してもよい。これらの生来の特徴部とは、ロボットセルの作業領域内で見える、任意の、視覚的に観察可能な、自然又は人造の要素であってよく、表面の穴、製品の縁、角、大理石に見られる形状、木目、塗料の斑点、印刷されたパターンなどが挙げられる。
【0013】
フレーム構造上のフィデューシャル又は識別された生来の特徴部に加えて、システムは、アームの端部にあるものを含む、複数の他のフィデューシャル又は識別された生来の特徴を含んでもよい。一実施形態では、ロボットアームによって移動される1つ以上の較正ボード又はピースを使用して、較正を行うこともできる。一実施形態では、フィデューシャルは幾何学的なフィデューシャル制約である。一実施形態では、ロボットアームは、較正のための複数のフィデューシャル/パターンを含む。フィデューシャルは、各リンク上に、ツール上にアーム端ツールの接触点に対して、又は各関節部の近くに配置されてもよい。一実施形態では、フィデューシャルの中心点を識別し、較正及び測定のために中心点を使用することにより、フィデューシャルを使用する。別の一実施形態では、フィデューシャルの別の特徴部を使用することにより、フィデューシャルを使用してもよい。一般に、任意の一貫して識別された点が、直接的に識別されるか又は別の点(フィデューシャル上にあるものであっても、又は生来の特徴部として識別されるものであってもよい)に関連して識別されるかに関わらず使用され得る。
【0014】
一実施形態では、ロボットセルシステムはまた、複数のカメラを含む。ロボットセルは、少なくとも1台のカメラを含む。一実施形態では、カメラは、フレームの最も剛性の高い部分、例えば、上部、側部、及び他の位置に、堅固に取り付けられる。別の一実施形態では、カメラは、他の位置(複数可)に取り付けられてもよい。一実施形態では、カメラはアームの端部に取り付けられてもよい。一実施形態では、各カメラの視野は、空間レイアウト内にあるフィデューシャルの最小のセットを観察することができる。一実施形態では、作業領域内の全ての位置及び場所は、少なくとも2つのカメラによって観察可能である。一実施形態では、歪みモデルを決定するためにカメラが較正される。一実施形態では、システムは、1組のカメラを利用して、作業スペースの全体ビューを提供する。一実施形態では、カメラからのデータは、個々の2D画像ではなく3Dスペースビューを提供するために、立体視ビュー又はマルチカメラビューを提供するように統合される。別の一実施形態では、作業スペースに単眼カメラを使用してもよい。
【0015】
一実施形態では、カメラに加えて、例えば、磁気センサ、赤外線(IR)センサ、及び他のセンサなどの、追加のセンサも、ロボットセルの内部又は外部に取り付けられて、作業領域をモニタリングしてもよい。ロボットセルの一部であり得る他のセンサとしては、音センサ、振動センサ、モータトルクセンサ、力センサ(ロードセル)、速度及び/又は加速度を感知するための運動センサ、光センサ、並びに温度センサのうちの1つ以上が挙げられ得る。一実施形態では、システムは、このセンサデータのすべてを統合して、環境を全体的表現として正確に表す。
【0016】
一実施形態では、システムは、セルの原点(0、0、0)基準系を設定して、全ての位置は、これを基準とする。一実施形態では、原点は、セルの最も剛性の高い部分に対して設定される。この原点はセルの基準点である。一実施形態では、それは、フレームの最も剛性の高い部分上のフィデューシャルと、フレームの最も剛性の高い部分に取り付けられた1つ以上のカメラとを使用して確立される。一実施形態では、追加のカメラがロボットセルの他の部分に取り付けられてもよい。一実施形態では、システムは、概観及び/又は内部測定技術を用いて、フィデューシャルの中心の正確な座標位置を取得する。別の一実施形態では、システムは、自然のもしくは人造の視覚的特徴部、又はフィデューシャルの他の点を利用してもよい。フィデューシャルの座標位置は、一実施形態では、仮想原点フレーム(0,0,0)とも呼ばれる、原点フレーム基準に対するものである。
【0017】
システムは、仮想原点フレームを使用して、ロボットセルに対する、スペース内のカメラの位置を特定する。一実施形態では、プロセスは次に、正確さ対精度の曲線を含むマップを作成する。一実施形態においては、マップは、連続的に更新される。
【0018】
一実施形態では、システムが、その位置を特定されたカメラ及びセンサを用いてセルを観察する一方で、ロボットアームが、異なる負荷の下で、異なる速度で進み、異なる経路に沿って移動して、異なるタスクを実行して、異なる環境状態を与えられたセルの動作のモデルを作成する。一実施形態では、ロボットアームによって保持されるツール又は基板の重量の分布、温度、及び他の要因などの他の要因もまた、セルの動作をより完全にモデル化するために変化させられてもよい。
【0019】
一実施形態では、システムは、作業領域及びロボットアームを含むロボットセルの、システムレベル又は全体的なビューを提供する。一実施形態では、これは、部分的には、仮想原点フレームを、すべての計算及び位置決定のために、セルのフレーム上の一定の基準点として使用することによって行われる。一実施形態では、システムは、正確さマップを構築し、正確さのメトリックを用いて、ロボットセル全体にわたって要素の位置を特定する。正確さをマッピングするために較正からのメトリックを使用し、このマッピングを連続的に更新することによって、システムは、セルのエリアに対する精度マップが、経時的に変化するかどうかを判定することができる。これらの種類の変化は、その後、セル内の要素の移動及び位置を計算する際に考慮され得る。
【0020】
一実施形態では、較正プロセスが使用され、これは、カメラの視野内のフィデューシャルを自動的に見つけ、ロボットセルの作業領域内のすべての要素の姿勢及びアイデンティティを決定する。「姿勢」は、位置(xyz)と、その位置の周りの向き(ピッチ、ヨー、ロール)との両方を含む。以上により、仮想原点フレームに対して、カメラが配置される。
【0021】
一実施形態では、プロセスは、ロボットアームのための、カメラから観察可能な経路を作成する。プロセスは、誤差最小化フレームワークを利用して経路を選択して、セルの観察可能な空間内で視認可能なものの場所の、可能な限り最良の計算をすることができる。言い換えれば、様々な可動構成要素(ロボット、ツール、トレイ、部品、及びパレット、並びに/又はロボット搭載カメラ)のうちの1つ以上の移動を容易にする経路が選択され、データ(カメラ画像又は他のセンサからのデータ)を取り込むことができるようにする。
【0022】
エコシステムは、例えば、各カメラのレンズの歪み、ロボットの運動のバックラッシュ、ヒステリシス、熱膨張などの様々な潜在的な誤差源を有する。自動較正システムは、全ての潜在的な誤差源からの寄与を考慮に入れて、エコシステムとして全体的に、システムレベルで、これらの誤差を求める。例えば、ツールが予期される場所にない場合、その誤差は、レンズの歪み、又はロボットの運動のバックラッシュ、又はその両方に起因する可能性がある。どの程度の誤差が、レンズによって、そしてバックラッシュによって引き起こされるかを決定するために、システムは、システム内の他のセンサからのデータを利用することができる。ただし、それらの他のセンサは、それら自体の誤差を有する場合がある。このように、1つの誤差の原因について解析することは、他の誤差を伴う他のセンサに依存する。これは連立方程式と制約のシステムである。
【0023】
1つの制約は、システムが、フィデューシャルは平坦な表面上にあると仮定することができるということであってよく、これは、レンズに歪みがあるかどうかを検証することを可能にする。レンズが歪んでいると、フィデューシャルが平坦でない表面上にあるように見えるようになるであろう。以上により、システムは、レンズの歪みを補正することができる。アルゴリズムは、グローバルエコシステムとして一連の複数のセンサ観測と制約とによって、複合システムを解析し、(反復的にかつ/又は直接的に)精緻化することができる。これを説明する1つの方法は、「関心のある複数物体及び特徴部にわたる、観測及び制約の全体論的数学的分析によるグローバル誤差最小化及び最適化」である。このフレームワークは、カメラ、ロボット、及びアーム端ツールの接触の、較正に使用することができる。一実施形態では、このフレームワークは、姿勢誤差の最小化及び再投影誤差の最小化による最適化のために使用される。
【0024】
システムは、例えば、制約、重量、及びプロパティなどの、各物体のモデルを利用し、確率を計算し、幾何学的及び構造的分析を適用する。補正パラメータのセットが各センサに適用され、システムは、各ツール/構成要素/物体/特徴部の機械的挙動をモデル化して、補正された観測結果が、厳密となり、互いに及び現実と自己整合的となる。
【0025】
一実施形態では、このフレームワークは、位置(精度マップを伴う)、配向、静的/動的フィデューシャル(フレーム上のフィデューシャル対ロボットアーム上のフィデューシャル)、平面性などの、フィデューシャルに対する制約を使用することができる。
【0026】
一実施形態では、システムは、小規模な較正を連続的に実行する。一実施形態では、これは、プロセッサのアイドルサイクル中に行われ、データが、カメラ及び/又はセンサによって取り込まれる。一実施形態では、ウォッチドッグプロセスは、いつ完全な再較正が必要とされるかを識別するために、小規模な較正をモニタリングする。一実施形態では、機械学習システムにおいて経時的にデータが使用され、いつ較正が必要とされるかを微調整し、どのような変化又は出来事が、再較正を必要とさせるかを識別する。これは、ロボットセル自体を改善するために、又はセルを較正から叩き出してしまう問題に対処するために使用され得る。一実施形態では、ユーザインターフェースが、較正出力及び統計情報を表示する手段を提供する。経時的に、これは、セル設計の改善につながり得るが、それは、セルを不安定にするか、又はセルに再較正を必要とさせる問題が識別され、排除されるためである。
【0027】
一実施形態では、較正データは記憶され、ロボットの定常状態動作において使用される。
【0028】
一実施形態では、ひとたびロボットセルが較正されると、そのロボットセルは、状態依存型機械学習フィードフォワードモデルを使用して動作する。
【0029】
本発明の実施形態の以下の詳細な説明は、同様の参照番号が同様の要素を示し、本発明を実施する特定の実施形態を例示として示す添付の図面を参照する。これらの実施形態の説明は、当業者が本発明を実施することを可能にするのに十分に詳細である。当業者は、他の実施形態が利用されてもよく、ロジック的、機械的、電気的、機能的、及び他の変更が、本発明の範囲から逸脱することなく行われてもよいことを理解する。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではなく、本発明の範囲は、添付の特許請求の範囲によってのみ定義される。
【0030】
図1Aは、ロボット工場用のシステムの概略ブロック図である。
図1Aは、ロボットセルが実装され得るシステムの一実施形態の、簡略化されたブロック図である。一実施形態では、ロボットセルA10は、1つ以上の個々のロボットセルを含み、これらの1つ以上の個々のロボットセルは、ソフトウェア定義製造ライン又はマイクロ工場A12を一緒に形成するものである。一実施形態では、個々のロボットセルA10は、コンベヤ及び逆コンベヤを介して連結されてもよく、それにより、マイクロ工場を通して製造又は組み立てられている単一のアイテムが、1つ以上のロボットセルA10を通過する(又は1つ以上のセルA10を複数回通過する)ようになる。ロボットセルA10は、製品の製造、組立、検査、及び/又は試験を提供することができる。簡略化のために、「製造」という用語が使用されるが、この用語は、検査、製造、検証、及び試験を含む、製品を作製することの一部である任意のプロセスに対して使用されていることを理解されたい。
【0031】
一実施形態では、ロボットセルA10は、ソフトウェアによって制御される。一実施形態では、ロボットセルA10の構成データ及び制御データは、メモリA20からセルに適用される。一実施形態では、メモリA20は、ネットワークA05を介してロボットセルA10に結合されたリモートシステムの一部であってもよい。構成データA25は、各ロボットセルA10及び製造ラインごとのソフトウェア構成を定義する。各ロボットセルは、使用前に較正される。一実施形態では、ロボットセルA10はまた、以下により詳細に説明されるように、連続的に較正される。
【0032】
一実施形態では、ロボットセルA10は、較正され、試験され、使用されている間に、動作データを収集する。この動作データA30は、メモリA20に記憶され、機械学習システムA35によって使用される。一実施形態では、ローカルストレージA15は、ロボットセルの構成データと、使用中にロボットセルによって生成される動作データとの、バックアップを提供する。一実施形態におけるローカルストレージA15は、メモリA20のバッファとして機能する。一実施形態では、ロボットセルA10がネットワークA05から切断された場合でも、ロボットセルA10は、ローカルストレージA15を使用して、動作を継続し、リアルタイム動作データを収集することができる。これはまた、ロボットセルA10が、オフラインで動作するのを可能にする。
【0033】
一実施形態では、セルがソフトウェアにより構成されるので、単一のロボットセルA10は、製造プロセスにおいて複数の段階を実行してもよく、製造プロセス中に再構成されてもよい。一実施形態では、これはまた、大規模な再構成なしに、製造中にマイクロ工場内のロボットセルA10を置換することを可能にする。一実施形態では、これはまた、マイクロ工場へのセルの追加を可能にする。
【0034】
一実施形態では、ロボットセルA10は、製造フロア上のロボットセルA10との相互作用を可能にするローカルユーザインターフェースA55を含む。一実施形態では、ローカルユーザインターフェースA55は、ロボットセルの要素を直接制御するのを可能にする、ジョイスティックベースの相互作用を提供してもよい。
【0035】
一実施形態では、ローカルユーザインターフェース(UI)A55に加えて、ネットワークA05を介してロボットセルA10に結合されたリモートユーザインターフェースA50が存在してもよい。リモートユーザインターフェースA50は、タブレットなどのポータブルユーザインターフェースであってもよい。リモートユーザインターフェースA50は、ローカルエリアネットワーク(LAN)、パーソナルエリアネットワーク(PAN)、又は別のタイプのネットワークを介して、ロボットセルA10にリンクされ得る。一実施形態では、いくつかのリモートユーザインターフェースA50は、ロボットセルA10の近くにあることを必要とする場合があるが、他のリモートユーザインターフェースA50は、どこからでも動作可能である場合がある。一実施形態では、ユーザインターフェース上に提示される機能要素及び制御要素は、ロボットセルA10、ロボットセルA10の構成、ユーザインターフェースにログインされる個人の識別情報/資格、及び物理的セルへの近接性のうちの、1つ以上に基づいて変動してもよい。一実施形態では、ローカルユーザインターフェースA55及びリモートユーザインターフェースA50は、同一のヒューマン対マシンインターフェース(HMI)要素、レイアウト、及び機能性を提供し、ロボットセルA10と相互作用するオペレータにとっての複雑さを低減する。一実施形態では、ユーザインターフェースは、全てのロボットセルタイプ及び構成にわたって統一されたHMIを提供する。
【0036】
一実施形態では、最終製品の生産のために、プロセスは開発ツールA40から開始される。一実施形態では、これらのツールは、設計者がリモートで利用できるようにすることができる。一実施形態において、これらのツールは、サービスとしてのソフトウェア(Software as a Service、SaaS)タイプのインターフェースを介して、オンラインで提供されてもよい。一実施形態では、開発ツールA40は、1つ以上のロボットセルA10を含む製造ラインの設計を可能にする。一実施形態では、各ロボットセルA10は、特定の能力を有する。開発ツールA10は、ユーザが、最終製品を作成するためにロボットセルA10のうちの1つ以上を使用して製造ラインを設計することを可能にする。
【0037】
一実施形態では、CAD/ジェネレーティヴデザインツールA60を使用して、製造される最終製品のCAD設計図を作成することができる。一実施形態では、CAD/ジェネレーティヴデザインツールA60を使用する場合、システムは、最終製品を設計する際にロボットセルA10の製造/組立上の制約を考慮に入れることができる。一実施形態では、CAD/ジェネレーティヴデザインツールA60は、開発ツールA40からデータを受け取ることができ、開発ツールA40を介して識別された問題に基づいて、最終製品の設計を繰り返すことができる。開発ツールA40の出力は、各ロボットセルに対する一連の動作である。
【0038】
ひとたびデザインが生成されると、トランスレータA70は、動作のシーケンスを、個々のロボットセルに対する制御コマンドに変換する。一実施形態では、開発ツールA40の出力は、ロボットセルによって行われる構成及びアクションを記述する言語で記述される。各個々のロボットセルは、異なる制御言語を利用し得る複数の要素を含むため、変換は非常に複雑である。更に、同じ動作シーケンスを実行する異なるロボットセルは、異なる製造業者からの要素を有してもよく、又は異なる構成を有していてもよい。例えば、ロボットアームは、複数の運動関節を有してもよく、関節は、異なる制限を有していてもよい。したがって、一連の動作における単一のコマンドは、個々のロボットセルごとに異なるように変換され得る。
【0039】
変換された制御コマンドは、仮想化ロボットセルA75、又はロボットセルシステムの仮想表現に適用され得る。仮想化ロボットセルA75は、個々の構成されたロボットセルのソフトウェア表現であり、一実施形態では実際のロボットセルをシミュレーションするように構成されるので、「デジタルツイン」とも呼ばれる、試験及び検証のために使用され得る。一実施形態では、仮想化ロボットセルA75は、実際のロボットセルA10からの動作データA30を使用して、ユーザが物理的ロボットセルA10のアクションを、リモートで見ることを可能にし得る。一実施形態では、ユーザは、仮想化ロボットセルA75を使用して、プロセス中にロボットセルのアクションをプレビューしてもよく、プロセス中に実際のアクションを追跡してもよく、かつ/又はプロセス後に実際のアクションをレビューしてもよい。
【0040】
ひとたびトランスレータA70の出力が、妥当性検査及び検証をされると、構成データA25として記憶される。構成データA25は、上述したように、物理的ロボットセルに適用される。
【0041】
一実施形態において、機械学習システムA35は、反復学習のためのデータを提供するために使用され、プロセスに改善を提供するために使用される。
【0042】
一実施形態では、ここでは要素が個々の要素として示されているが、当業者であれば、設計ツールA60、開発ツールA40、トランスレータA70、仮想化ロボットセルA75、及び機械学習システムA35が、1つ以上のコンピュータシステム上に実装されることを理解するであろう。コンピュータシステムは、スタンドアロンデバイス、サーバ、又は、ネットワークA05を介してアクセスされるクラウドベースのシステムであってもよい。一実施形態では、上述の要素は、単一サーバシステム上に実装されてもよい。一実施形態では、上述の要素は、複数の無関係なコンピュータ/サーバシステム上に実装され得る。一実施形態では、開発ツールA40のような要素について単一のブロックのみが図示されているが、実際のツールは複数のデバイスにわたって分散されてもよい。
【0043】
図1Bは、複数のロボットセルを含むマイクロ工場の一実施形態を示す図である。この図は、各々が、特定の動作を実行するための、ロボットアームを含む、3つのロボットセルを示す。図から分かるように、ワークピースは、3つのロボットセルを通って流れることができ、各ロボットセルは、プロセスにおいて何らかの動作を行う。
【0044】
図1Cは、ロボットセルの一実施形態を示す図である。ロボットセルは、コンベヤベルト用の開口部と、それを通ってワークピースがロボットセルに提供され得る、関連付けられたトレイフィーダとを含む。ロボットアームを、見ることができる。一実施形態では、ロボットアームは6軸アームであり、作業スペースの全体にわたる運動範囲を有する。一実施形態における作業スペースは、ロボットアームが移動するのが示された囲まれた領域によって画定される。作業スペースの全体ビューは、作業スペース内の構成要素、ワークピース、及び他のアイテムのすべてを包含する。ロボット組立システムの場合、作業スペースは、ロボットアーム、トレイフィーダ、コンベヤベルト、及びロボットセル内にあり得る関連するワークピースを包含し得る。本システムは、この3Dスペース内の要素を自動較正するように設計され、ロボットセルにより実行されるプロセスが、正確で、一貫性があり、反復可能であることを保証するようになっている。
【0045】
図1Dは、複数のフィデューシャルを含む作業スペースの一部の一実施形態の図である。一実施形態では、システムは、ロボットセル内に複数のフィデューシャルを含む。ここに示すように、一実施形態におけるフィデューシャルは、AprilTagであってもよい。フィデューシャル及び/又は他の視覚的特徴は、レンズ較正を提供することができ、これは、要素の位置を特定し、要素を較正するために使用され得る。一実施形態では、フィデューシャルは、以下で説明されるように、初期自動較正の一部として、並びに連続フィードバック及び較正検証のために使用される。AprilTagが図示されているが、例えば、QRコード(登録商標)、他のパターン、又は基準点としての役割を果たすことができるロボットセルの生来の若しくは人造の視覚的特徴部を含む、他のタイプのフィデューシャルが使用されてもよい。
【0046】
図1Eは、ロボットセルの作業スペースの全体的ビューを定義する要素の一実施形態を示す図である。作業スペースは、一実施形態では、フレーム及びエンクロージャによって画定され、その中でロボットアームが移動してワークピースに対して動作を行うことができる。一実施形態では、作業スペースは、スペースの、立体視ビュー又はマルチカメラ3次元ビューを提供するために、2つ以上のカメラを含む。一実施形態では、フレームの側部に追加のカメラがある。一実施形態では、アームの端部にカメラがある。追加のカメラを使用することもできる。異なる視点を有する異なるカメラは、異なる利点を与える。
【0047】
一実施形態では、2つの上部カメラは両方とも、作業スペース全体をカバーする。側部カメラは、アーム端のより良い視界を提供し、位置決めに関する追加のチェックを提供する。オンアームカメラは、クローズアップ画像を提供する。
【0048】
複数のカメラからのカメラデータ、及び任意選択でセンサデータの組合せは、作業スペースの3次元表現を提供する。一実施形態では、これは、システムがロボットアームを3次元で観察することを可能にし、モニタリングされている3D空間の表現物を作成する。全体論的表現又はシステムレベル表現を有することにより、システムは、要素が作業スペース内のどこにあるかの予想を構築し、セル構成及び作業スペース内物体の位置を完全に理解することが可能になる。それにより、システムは、カメラによって検出された現実が、作業スペースの全体論的表現に基づいて構築された予想から逸脱する場合に、反応することができる。これは、より正確なシステムと、ロボットアームの位置及び動作の理解とを提供する。対照的に、従来技術のシステムは、一般に、限られた数の2次元作業平面に対してのみ較正された単眼カメラ又はマルチカメラシステムを使用し、データを平坦化する。
【0049】
作業スペースの3D空間の全体論的表現の使用が可能であるのは、自動較正並びに連続的なフィードバック及び再較正が、ロボットアーム及び関連するワークピースの現実世界の位置決め及び移動が、システムにおいて正確に表現されることを保証するからである。一実施形態では、この仮想化されたロボットセル又は仮想表現は、「デジタルツイン」と称され得る。一実施形態では、デジタルツイン表現は、実際のロボットセルの視覚的な反映として示されてもよい。別の一実施形態では、デジタルツインは、視覚的に示されないシステム内の全体論的表現である。
【0050】
図2は、ロボットセル及び自動較正システムの一実施形態を示すブロック図である。ロボットセル210は、一実施形態では、ロボットアーム215、カメラ220、及びフィデューシャル225を含む。一実施形態におけるロボットアーム215は、FANUC(登録商標)などの複数の製造業者のうちのいずれか1つから入手できる6軸ロボットアームである。一実施形態では、カメラ220は、作業スペースを監視する少なくとも2つのカメラを含む。一実施形態におけるフィデューシャル225は、システムを較正するために使用される、作業スペース内に配置された複数のフィデューシャルを含み、較正に関する連続的なフィードバックを実行する。一実施形態では、ロボットセル210は、少なくとも、1つのカメラ220と、較正を可能にするためのフィデューシャル又は視覚的特徴部(生来のもの又は人造のもの)と、を含む。例えば、AIOマシンでは、システムは、品質上の欠陥を識別するために、被試験デバイスを自律的にスキャンするカメラを含む。
【0051】
一実施形態における作業スペースは、例えば、ワークピース、及びワークピースをロボットセルへ移動させかつワークピースをロボットセルから移動させるコンベヤベルト226などの他の要素を含んでもよい。他の要素は、ワークピース又はワークピースに追加される他の部品が配置されるトレイ227、及びトレイフィーダからの経路を含んでもよい。他の要素としては、アーム端部ツール228、及び他のツールが存在する場合には任意選択的にツールスイッチが挙げられ得る。「ツールスイッチ」は、ロボットアーム上の特別な取付けインターフェースを指し、アーム端ツールを(手動で、又はソフトウェア制御を介して自動的に)変更することを可能にするものである。これにより、自動較正ルーチンが、複数のツールを較正することが可能になる。一実施形態では、これはまた、ロボットのための特別な較正ツールの使用を可能にし、システムが較正し、次いで、アーム端ツールを再搭載することを可能にする。作業スペース内の他の要素は、例えば光カーテンなどの安全システム、電気システム、照明システム、センサ、ケーブル管理システム、及びロボットセルの作業スペース内にあり、したがって、ロボットセルシステムの一部と見なされる他の要素などを含んでもよい。
【0052】
一実施形態では、ロボットセル210は、1つ以上の他のセンサ230を更に含む。これらの他のセンサ230としては、磁気センサ232、赤外線センサ234、音センサ236、振動センサ238、深度センサ、紫外線センサ、レーザセンサ、圧力センサ、電流センサ、温度センサ、偏光センサ、並びに他のセンサが挙げられ得る。他のセンサ230はまた、ロボットアームによって及ぼされる力を感知する、ロードセルセンサ240を含んでもよい。他のセンサ230はまた、ロボットアーム215上の速度及び/又は加速度センサ242を含んでもよい。他のセンサ230はまた、光センサ244、温度センサ246、トルクセンサ248、及び他のセンサを含んでもよい。一実施形態では、温度センサ246は、ロボットセル210内の温度変化をモニタリングするために使用されてもよい。なぜなら、温度変化は、金属部品及びプラスチック部品の寸法に影響を与え、較正システムのモデリング及び調整を必要とし得るからである。
【0053】
ロボットセル210は、例えば、ネットワーク接続、電力及び信号接続、プロセッサ、ユーザインターフェース要素、ロボットをシャットダウンするためのセキュリティシステム、及び簡略化のために図示されていない他の部品などの、追加の部品を含む。
【0054】
ロボットセル210は、センサデータを自動較正器250に送信し、自動較正器250から制御データを受信する。一実施形態では、自動較正器250は、ロボットセルのシャーシ内に実装されたプロセッサ及びサブルーチンであってもよい。別の一実施形態では、自動較正器250は、ロボットセルからリモートにあってもよい。一実施形態では、説明したシステムのいくつかはリモートであり、他のシステムはローカルである。
【0055】
一実施形態における自動較正器250は、メモリ255を利用する1つ以上のプロセッサ260によって実装される。一実施形態で説明されるプロセスは、ロボットセル210のハードウェア上での実装のために設計され、実際のハードウェアを構成するソフトウェアである。一実施形態では、ウォッチドッグルーチン265は、初期較正後に較正の連続モニタリングを提供し、ロボットセルが較正されたままであることを確実にし、必要に応じて再較正をトリガする。
【0056】
一実施形態では、較正手順設計270は経路設計272を含む。経路設計272は、様々な動作のためのロボットアームの移動パターンを設計し、移動パターンにおける予測される位置とロボットアームの測定位置との間の移動の不正確さ又は不一致を較正する。ロボット移動は、しばしば、高度に再現可能であるが、高度に正確ではない。ロボットアームは複数の関節及び可動部品を有するので、観察可能で正確に較正された経路を設計することが有用である。較正手順設計270は、位置特定設計274及びフレームレジストリ276を更に含む。
【0057】
位置特定プロセス274は、ロボットセル内の、例えば、ロボットアーム及び/又はフィデューシャル、固定具、パレット、部品、フィーダ、トレイ、視覚的特徴部、関心点などの、他の要素などのセルの他の特徴に対する、1つ以上のカメラの位置を特定する。一実施形態では、システムは、仮想原点フレームを使用して、ロボットセルに対するスペース内のカメラの位置を特定する。一実施形態では、プロセスは次に、正確さ対精度の曲線を含むマップを作成する。マップは、一実施形態において、連続的に更新される。フレームレジストリは、位置データを提供する。一実施形態では、システムは、位置データを計算するために使用される画像のフレキシブルな記憶及び検索を提供する。
【0058】
フィードバック及び精緻化ロジック280は、レンズ歪み補正282、姿勢精緻化284、及びツール接触較正286を提供する。
【0059】
機械学習システム290は、ロボットアームの現在の状態の状態ロジック292と、作業スペースの全体論的定義とを維持する。タスク較正294は、較正に基づいて、タスク(目標を達成するための一連のアクション)に対する調整を提供する。一実施形態では、フィードバックループ296は、ロボットセルが使用されている間に、ロボットセル210及び自動較正器250からの連続フィードバックを利用して、作業スペースの全体論的定義を精緻化し、維持する。
【0060】
示される簡略化された要素は、追加のCPU、GPU、ユーザインターフェース要素、及びネットワーク接続を有するロボットセルに統合される。自動較正パッケージ250は別個のロジックとして示されているが、自動較正パッケージ250は、プロセッサ又はプロセッサのセットに統合され得るということを当業者は理解するであろう。これらのデバイスは、ロボットセル210に対してローカルであってもよく、又はリモートであってもよい。一実施形態では、説明されるプロセスのうちのいくつかは、オフサイト又はクラウド内で利用されてもよく、処理されたデータは、ロボットセル210に返されてもよい。
【0061】
図3は、自動較正の一実施形態を示す概略フローチャートである。プロセスはブロック310で開始する。ブロック320では、1つ以上のロボットセルがマイクロ工場に組み立てられる。上述したように、マイクロ工場は、製造、組立、検査、検証、試験、又は他の方法で製造プロセスに関与することができる。マイクロ工場は、ロボットセルを利用しないより大きなシステムの一部であってもよく、又は自己完結型製造システムを提供してもよい。
【0062】
ブロック330では、デバイスはコードで初期化される。一実施形態では、デバイスの初期化は、例えば、ロボットアーム、使用されているツール、カメラなどを含む、ロボットセル内の要素のそれぞれを識別する。デバイス初期化は、ロボットセルが実行するステップの基本シーケンスをロードする。
【0063】
ブロック340では、当該セルに対する較正ルーチンが識別される。一実施形態では、較正ルーチンは、生産ライン及びセル構成に基づく。例えば、ピックアンドプレースを行うロボットセルの場合、ロボットアーム及びワークピースによって取られる運動範囲及び経路が異なるため、較正ルーチンは、ねじを締め付けるロボットセルの場合とは異なり得る。自動較正処理が実行される。
【0064】
ブロック350では、較正プロセスからのデータに基づいて、システムは、例えばロボットアーム、アーム端ツール、作業スペース内のワークピースなどを含む、ロボットセルの作業スペースの全体論的概念を作成する。全体論的概念は、移動及びコマンドに対する期待値を設定するために使用される。
【0065】
ブロック355では、ロボットセルの仮想表現が、全体論的概念に基づいて作成される。セルの仮想表現は、マッピングされたアクションが同様に実行されるように、実際のセルに密接に整合されるように設計される。これにより、システムは、ロボットアームの位置及び移動パターン、並びに作業スペース内の他の要素に対する予想を構築することができる。システムは、この予想を利用して、セルの動作を検証する。
【0066】
ブロック360では、レシピが展開され、ラインが実行される。一実施形態におけるレシピは、1つ以上の動作を実行させるために、ロボットセルに送信されるコマンドのシーケンスである。レシピは、静的又は動的、単純又は複雑であってもよい。単純な静的レシピは、「時間XでYインチだけコンベヤを移動させる」とすることができる。複雑なレシピは、カメラからデータを取得することと、部品が正しく構成されているという条件付きで、ねじを挿入することとを含み得る。レシピは、アセンブリプロセス全体、又はプロセス内のステップを含んでもよい。レシピが実行されると、全体論的表現に基づく位置及び移動の予想が、プロセスの正確さをチェックするために使用される。したがって、何らかの不一致が識別された場合、それに直ちに対処することができる。
【0067】
ブロック370では、システムは、プロセス中にラインをモニタリングし続ける。一実施形態では、システムは、要素の予想される位置を反映するために仮想表現を利用し、それらの予想をカメラからの観察された現実と比較する。これを実施できるようにするために、システムは正確な較正を維持しなければならない。一実施形態におけるシステムは、アイドル時間再較正を使用して、ロボットセルを連続的に再較正し、全体論的表現、したがって期待値を、実世界データに基づいて更新する。プロセスはブロック380で終了する。
【0068】
図4は、較正及び使用に対する、システムレベルの、又は全体論的表現の、アプローチの一実施形態を示す概要フローチャートである。プロセスはブロック410で開始する。
【0069】
ブロック420では、マイクロ工場ラインが較正され、システムは、各ロボットセルの全体論的概念を有する。全体論的概念は、全てのカメラ、センサ、ロボットアーム、ロボットセルの作業領域内のワークピースを含む他の構成要素を含む、システムとしてのロボットセルを包含する。この初期又はオフライン較正は、ロボットセルの初期パラメータを提供する。
【0070】
ブロック430では、セル内の構成要素の位置及び動きが観察される。これは、最初に自動較正の一部として行われ、その後、ロボットセルが使用されるときに行われる。
【0071】
ブロック440で、プロセスは、観察された現実世界の状況が、ロボットセルの全体論的概念に基づく予想と異なるかどうか、すなわち、予測された位置と観察された位置との間のロボットアーム位置に、不一致があるかどうかを判定する。一実施形態では、システムは、ロボットアーム、ツール、及び/又はワークピースの現実世界の姿勢及び移動パターン(例えば、各関節に対するアプローチベクトル)を、ロボットシステムの全体論的3D概念に基づく期待値と比較する。不一致が許容可能な閾値内である場合、ブロック450では、プロセスの現在のステップが実行される。ブロック460では、プロセスは、ルーチンが完了したかどうかを判定する。そうでない場合、プロセスはブロック430に戻り、構成要素の位置/移動を観察し続ける。これは実世界ではフローチャートとして示されているが、モニタリングは連続的であり、一実施形態では、期待と現実との間に差が検出されたときに、割込みがトリガされることに留意されたい。
【0072】
ルーチンが完了すると、一実施形態では、ブロック470では、システムにフィードバックを提供するためにフィードバックループが使用される。フィードバックループは、期待値及び機械学習システムにデータを提供する。システムは、適切であれば、再較正してもよい。一実施形態では、システムは、連続マイクロ再較正を利用して、全体論的概念をシステムと完全に整合させておいてもよい。次に、プロセスはブロック475で終了する。
【0073】
ブロック460では、ルーチンがまだ完了していないとシステムが判断した場合、プロセスはブロック430に戻り、セル内の構成要素の観察を継続する。
【0074】
ブロック440では、システムが、観察された状況と全体論的概念に基づく予想との間に差があったと判断した場合、すなわち、観察された動きと予測された位置との間に不一致があると判断した場合、プロセスはブロック480に続く。ブロック480では、プロセスは、差異が自動的に解決され得るかどうかを決定する。差異は、不一致が追加データを用いて、又は期待値若しくは実世界システムのいずれかの調整を用いて解決され得るときに、自動的に解決され得る。一実施形態では、システムが問題を自動的に解決することができる場合、ブロック490では、システムは、期待値又は現実世界を変更してそれらを一致させる。次に、プロセスはブロック430に戻り、プロセスを継続する。一実施形態では、期待値を修正することは、マイクロ自動較正又はオンライン較正を実行することを含む。差異が解決できない場合、システムは警報を使用し、ブロック485でプロセスを停止する。一実施形態では、ユーザは、不一致を解決するか、システムをリセットするか、又はシステムを自動較正して、全体論的概念及び期待値を現実世界と再度一致させてもよい。その後、プロセスは終了する。
【0075】
図5は、自動較正の一実施形態の概略フローチャートである。プロセスはブロック510で開始する。ブロック520では、カメラ及びレンズ較正が実行される。一実施形態では、ロボットセルに取り付けられた少なくとも1つのカメラがある。一実施形態では、カメラは、ロボットセルの最も剛性の高い部分である基準部に取り付けられる。一実施形態では、これは、屈曲又は、ロボットセルの残りの部分に対しての位置の変更などの、変形の影響を最も受けにくい外部金属フレームである。別の一実施形態では、カメラは、ロボットセルの異なる部分に取り付けられてもよい。
【0076】
カメラ及びレンズ較正は、一実施形態では、作業領域の周りを移動する、既知のパターンを有する物体を利用することを含む。一実施形態では、パターンは、既知の視覚的特徴を有することが知られており、したがって、システムは、既知の実際のパターン特性に対して、見えるものを比較することができる。違いは、「グラウンドトゥルース」に対する誤差である。パターンは、木目のような自然に生じるパターン、又はチェッカーボードのような人造パターン、又はフィデューシャルであってもよい。別の一実施形態では、物体を移動させる代わりに、システムは、静止物体及び可動カメラを使用するか、又はカメラ視野の大部分をカバーするパターンを使用して、較正を行うことができる。
【0077】
一実施形態におけるレンズ較正は、レンズ歪みを調整することを含む。一実施形態では、カメラ及びレンズの各々が較正される。一実施形態では、カメラ及びレンズ較正は、他のセンサ技術を較正することも含む。一実施形態では、カメラ較正は、ロボットセル作業領域の空間レイアウト内のフィデューシャルを利用する。
【0078】
ブロック530では、カメラ及びロボットアームの相対的姿勢が推定される。一実施形態では、相対的姿勢は原点に対するものである。一実施形態では、原点に対する作業スペース内のすべてのものの相対的位置を確立することは、フレーム登録と呼ばれる。一実施形態では、すべてが仮想座標系に対して位置合わせされる。一実施形態では、すべての要素が単一の仮想座標系、すなわち「原点」又は「ルート」に登録される。一実施形態では、ルートは、ロボットセルの最も剛性の高い部分の一部となるように選択される。一実施形態では、これは作業スペースの周りの金属フレームである。
【0079】
ブロック535では、ロボットアーム誤差がモデル化される。この誤差は、ロボットアームのプログラムされた姿勢と実際の姿勢との間のずれ又は相違を表す。
【0080】
ブロック540では、ツール先端の較正が実行される。ツール先端の較正では、ツール先端(ロボットアームのアームツールの端部)の位置が決定される。ツールの先端は、ワークピースと相互作用するロボットアームの部分であるので、ツール先端の較正は、ロボットアームの現在位置を検証するために、及びすべてのコマンドに対して必要である。一実施形態では、ロボットアームの各部分を較正することもできる。
【0081】
ブロック545では、ロボットセルの他の部分は、ルートに対して及び/又は互いに対して較正される。ロボットセルの部品は、ワークピース、トレイ、コンベヤベルト、及び作業スペース内の任意の他の要素を含んでもよい。一実施形態における較正は、作業スペース内のすべての要素を考慮する。
【0082】
ブロック550では、ロボット姿勢誤差補正が適用される。ロボット姿勢誤差は、ロボットアーム、作業スペース、又は環境における運動、負荷、変形、温度変化、又は他の変化に起因する、ロボットの位置決めのシフトであり、ロボットアームの実際の位置と予測位置との間の不一致を引き起こす。ロボットアームに、位置X、Y、Z(又は完全多関節配向及び姿勢)に進むためのコマンドが送信される場合、ロボットアームが進む実際の位置(又は姿勢)は異なる(例えば、X’、Y’、Z’)が、それは、動きが、完全に正確ではないからである。システムは、この不一致を補償する。ロボットアームをどのように動かすかを決定する運動学的エンジンは、完全に正確であることはできない。しかしながら、リアルタイムで、3D作業スペースにおいてロボットアームを観察することによって、システムは、意図された目的地と比べた、移動のずれ又は不正確さを計算することができる。これは、アームへの命令を調整して正確性を高めるために使用され得る。
【0083】
ブロック560では、システムは使用中にモニタリングされる。一実施形態では、全体論的表現は、そのようなモニタリングのために観察された位置データとの比較対象として使用される。一実施形態では、データはアイドル時間に再処理されて、使用中に、小規模自動較正を実行する。一実施形態では、視覚的特徴部(フィデューシャル又は生来のもしくは人造の特徴部)が周期的に抽出され、連続的なモニタリングが提供される。システムは、「呼吸」、又はロボットアームの、温度、機械的バックラッシュ、ヒステリシス、たわみ、及び負荷に基づく変化などの、不正確さの他の原因を考慮する。
【0084】
ブロック570では、プロセスは、較正状態が依然として十分に正確であるかどうかを決定する。もしそうであれば、ブロック575で小さな補正が行われ、システムはブロック560に戻ってモニタリングを続ける。
【0085】
較正状態がもはや十分に正確でない場合、ブロック580では、プロセスは、完全な再較正が必要かどうかを決定する。必要ではない場合、プロセスはブロック550に続き、ロボット姿勢誤差補償計算を実行する。逆に必要な場合、プロセスはブロック520に戻り、完全自動較正プロセスを再開する。このようにして、システムは、システムを連続的にモニタリングし、システムが較正された状態のままであることを保証し、必要に応じて連続的に調整する。この図及び他の図はフローチャートとして示されているが、一実施形態では、これらは割込み駆動プロセスであってもよいことに留意されたい。すなわち、システムは、小さな調整がいつ必要とされるかを連続的にモニタリング及び決定し、それらの小さな調整を自動的に行うことができる。システムの連続モニタリングが問題を示すときに、連続モニタリングは、再計算をトリガするか、又は完全な再較正をトリガすることができる。
【0086】
図6は、初期較正プロセスの一実施形態を示すフローチャートである。プロセスはブロック610で開始する。ブロック620では、セル内のカメラ及びロボット要素が識別される。一実施形態では、本システムは、カメラ、ロボットアーム、トレイ、部品、フィーダ、ツールなどの既製の部品と共に動作することができる。自動較正プロセスが部品を全体論的システムにまとめるので、様々な部品を製造業者に関係なく統合することができる。
【0087】
ブロック625では、当該セルに対する較正プロセスが識別される。一実施形態では、較正プロセスは、ロボットセルの現在の構成及び/又は使用されるケース、カメラ及び他のセンサの位置決め、並びに特定の種類のロボットアームに依存する。例えば、AOI機械などのロボットセルは、6軸ロボットアームを利用する組立セルよりも複雑でない較正プロセスしか必要としない場合があり得る。
【0088】
ブロック630では、フィデューシャル又は視覚的特徴部の既知のパターンを有する要素が、アームの端部に取り付けられる。一実施形態では、要素はチェッカーボードである。別の一実施形態では、要素は、フィデューシャルを有する十二面体、二十面体、又は他の多平面形状であってもよく、面のうちの1つ又はそれを上回るものは、精度を向上させるために、異なる平面上の複数のフィデューシャルのビューをカメラに提供する(及び任意選択的に、付加的平面性制約を伴う誤差最小化フレームワークを提供する)。別の一実施形態では、アームの端部に取り付けられた要素は、複数のカメラからの複数の視点から見られる、木目、掻き傷/汚れ/不均一な仕上げなどの特徴部の未定義のパターンを有してもよく、視覚的特徴は一致され、三角測量される。
【0089】
ブロック635では、素子はセルの周りを動かされ、画像及びセンサデータが収集される。一実施形態では、移動のパターンは、ロボットセルによって実施されるレシピ/プロセスに依存し得る。一実施形態では、移動は、すべてのカメラ及びセンサが、要素からデータを確実に受信することができるようにする。
【0090】
ブロック640では、各フィデューシャルが識別され、その姿勢が識別される。一実施形態では、ブロック645では、フレーム/カメラ/タイムスタンプ関連付けが使用される。ブロック650では、画像データが処理され、ブロック655で、カメラ及びレンズ較正を実行する。レンズ較正は、レンズ歪みを補正する。セルの周りの物体の動きを観察することによって、ロボットセルの様々な領域における差異、及びカメラどうしの間の差異について、歪みを補正することができる。
【0091】
ブロック660では、他の構成要素の相対的姿勢が計算される。これらの構成要素は、ロボットアーム及び他の要素を、作業スペース内に含む。
【0092】
ブロック665では、ツールの接触姿勢が、ロボットアームについて計算される。ツールの接触点を登録することは、ほとんどのレシピを実行するために使用されるが、その理由は、その接触点が、ロボットシステムのうち、一般にワークピースと相互作用する部分であるためである。
【0093】
ブロック670では、システムは、ロボットアームについて推定姿勢誤差を計算する。一実施形態では、誤差は、ロボットアームの動き、向き、負荷、及び速度に依存する。アームは複数の関節部品からなるので、ロボットアームのいかなる最終姿勢も、無限数のアプローチを通して到達され得る。したがって、システムが全体論的表現において、確実に、ロボットアームの現実世界の位置を正確に表現させるためには、向き、負荷、及びアプローチの移動に基づいて誤差を計算することが必要である。例えば、このアプローチは、様々なアプローチベクトルから、機械的ヒステリシス及びバックラッシュを補正することができる。
【0094】
ブロック675では、プロセスは、要素が正確性の閾値を満たすほど十分に正確であるかどうかを判定する。一実施形態では、システムは、複数回、較正を精緻化してもよい。一実施形態では、システムは、初期較正を提供し、次いで、品質閾値が満たされているかどうかを試験し、必要に応じて精緻化することができる。較正、姿勢推定値、及び誤差がパラメータ内にあるかどうかの試験は、上記のステップのいずれかの後で行われてもよく、またここで行われてもよい。
【0095】
較正が十分に精緻化されると、一実施形態では、ブロック680で、マルチパラメータ最適化が実行される。
【0096】
ブロック685では、一実施形態では、システムは、外部のフィデューシャルで妥当性検証される。一実施形態では、その検証は、1つ以上の別個のフィデューシャル又は生来の視覚的特徴部を利用して、各カメラレンズ、カメラ姿勢、及びツール接触点の較正が全て正確であることを妥当性検証することを伴い、誤差モデルに、不正確さを考慮する。次にプロセスは、ブロック690で終了する。
【0097】
図7は、使用中の再処理及び較正の一実施形態を示すフローチャートである。プロセスはブロック710で開始する。
【0098】
ブロック715では、システムは、使用中のセルからセンサデータ及び画像データを受信する。一実施形態では、このセンサデータ及び画像データは連続的に受信される。
【0099】
ブロック720では、センサデータ及び画像データは、フレーム/タイムスタンプに基づいて、互いに関連付けられる。
【0100】
ブロック725では、処理能力が利用可能であるとき、センサデータ及び画像データが処理される。一実施形態では、これは、プロセッサのアイドルサイクル中に行われ、再処理が、製造プロセスフローに影響を与えないようにしている。
【0101】
ブロック730では、カメラ較正及びレンズ較正が実行される。
【0102】
ブロック735では、作業スペース内の各構成要素の姿勢が計算される。
【0103】
ブロック740では、ロボットアームに対するツールの接触点が計算される。上述したように、ツールの接触点は、ツール中心点(TCP)、ツールがワークピースに接触する1つ以上の線分若しくは面、又は対象の姿勢に対する既知の相対的姿勢を有する何らかの他の基準であってもよい。
【0104】
ブロック745では、ロボットアームの誤差モデルが推定される。
【0105】
ブロック750におけるプロセスは、全体論的表現からの期待値と比較した現実世界データに基づいて、作業スペース、ロボットアーム、及びツールの接触点の全体論的表現が、十分に正確であるかどうかを判定する。表現が正確である場合、プロセスは、ブロック715で、モニタリングを継続する。
【0106】
表現が不正確である場合、プロセスは、ブロック755では、較正が範囲外であるかどうかを判定する。範囲外ではない場合、プロセスはブロック715に続く。範囲外である場合には、ブロック760では、データは再処理され、結果を検証するために新しいデータが収集される。
【0107】
ブロック765においてシステムが範囲外であることを追加データが示す場合、セルは停止され、ブロック770において完全な再較正手順が開始される。範囲外ではない場合には、プロセスはブロック715に戻る。一実施形態では、システムは、較正が範囲内にあるが精度が不十分であるときに小規模自動再較正を初期化し得るが、システムが範囲外にあることが確認されたときには、完全自動較正プロセスが開始される。次にプロセスは、ブロック775で終了する。
【0108】
図8は、センサ及び較正を用いてロボットセルをセットアップする一実施形態を示すフローチャートである。プロセスはブロック810で開始する。
【0109】
ブロック815では、フィデューシャルがセル内に分配される。一実施形態では、フィデューシャルは、セル上の平坦面及び傾斜面上に配置される。一実施形態では、フィデューシャルは、ロボットアーム上にも配置される。一実施形態では、ロボットアームの各関節部分は、フィデューシャルを有していてもよい。
【0110】
ブロック820では、カメラ及びセンサが取り付けられる。一実施形態では、カメラは、金属フレームなどのロボットセルの最も剛性の高い部分に取り付けられる。しかしながら、金属フレームであっても、時間の経過とともにずれたり変形したりする。一実施形態では、少なくとも2つのカメラがセルの上部に取り付けられ、作業スペースを監視する。これにより、複数のカメラからのデータを統合して、作業領域の立体視を提供することができる。一実施形態では、ツール先端のビューを確保するために、サイドカメラが使用される。ツール先端カメラは、ワークピースのクローズアップ画像のために使用され得る。一実施形態では、カメラは、各カメラが較正のために少なくとも2つのフィデューシャル又は視覚的特徴部を見るように配置される。一実施形態では、各カメラは、少なくとも3つのフィデューシャル又は視覚的特徴部を見ており、フィデューシャル又は視覚的特徴部のうちの少なくとも1つは、他の要素に平行でない要素上に配向されている。
【0111】
ブロック825では、ロボットアームは、一連の動きを実行するようにプログラムされる。一実施形態では、一連の動きは、負荷の有無にかかわらず実行することができる。この文脈では、負荷は、ロボットアームによって把持されるもの、又はロボットアームに取り付けられたツールである。一実施形態では、ロボットアームがレシピ内に複数のタイプのツールを有する場合、一連の動きは、プロセス中にロボットアームに取り付けられることになる負荷の各々を用いて実行され得る。
【0112】
ブロック830では、セルの原点(ルート又は仮想0,0,0位置)が確立される。一実施形態では、このルートは、セルの最も剛性の高い部分に関して選択される。一実施形態では、ルートは、少なくとも2つのカメラがその位置を見ることができるように選択される。一実施形態では、ルートは、フィデューシャルに基づいて定義される。一実施形態では、ルートは、正方形に配置された4つのフィデューシャルそれぞれの中心の平均を計算することによって定義される。
【0113】
ブロック835では、原点に対するカメラ及びセンサの正確な姿勢が計算される。
【0114】
ブロック840では、動作シーケンス中に、アーム上のフィデューシャルの姿勢を使用して、アームの運動をモデル化し、その正確さを推定する。一実施形態では、システムは、運動のシーケンス中にロボットアーム上のフィデューシャル点を追跡して、アームの正確さを確立し、アームの挙動モデルを作成する。システムは、負荷を伴う運動及び負荷を伴わない運動を実行するので、挙動モデルは負荷を考慮する。一実施形態では、挙動モデルはまた、相対的移動及び位置、並びに負荷に基づいて、ロボットアームの正確さの差異を考慮する。
【0115】
ブロック845では、システムは、セルの観察可能な空間(例えば、少なくとも2つのカメラによって観察することができる作業領域)内で見える要素の位置及び向きを計算し、そのデータを較正のために記憶する。一実施形態では、これは、コンベヤ、ワークピースなどを含む、作業スペース内の要素の全てを含む。次いで、プロセスは、ブロック850で終了する。
【0116】
図9は、作業スペースをセットアップする一実施形態を示す概略フローチャートである。プロセスはブロック910で開始する。
【0117】
ブロック915では、複数のカメラの位置が特定される。一実施形態における位置の特定は、アーム、ツールの接点、及び他のカメラの、共有されたルートに対する相対的位置を決定する。
【0118】
ブロック920では、初期較正が実行される。一実施形態では、上述のプロセスがこのステップに使用される。
【0119】
ブロック925では、ロボット、カメラ、センサ、ツールの先端、及び関与する他の部品を含む、較正されたシステムの単一の全体論的表現が作成される。一実施形態では、全体論的表現は、ロボットセル内のワークピースと、ワークピースを搬入及び搬出するために使用されるトレイプーラー及びコンベヤベルトとを含む。全体論的表現は、ロボットの動きを予測し、その予測又は期待値を、現実世界と比較して、正確性を確認する能力を提供する。
【0120】
ブロック930では、初期較正の後、システムはアイドルサイクル中に較正精緻化ステップを実行する。これは、温度の変化、動きによるドリフトなどの結果であり得る経時的なロボット姿勢誤差が、全体論的表現、したがって期待値において考慮されるということを保証する。
【0121】
ブロック935では、ロボットが位置X、Y、Zに移動するように命令されたとき、ロボットは、移動の不正確さと、様々な関節及び部品の相互作用とのために、位置X’、Y’、及びZ’に移動することになるという場合に、上述の作業スペースの全体論的表現に基づいて、誤差を考慮するための目標補償が計算される。補償は、システムがロボットを位置X、Y、Zに移動させる必要があるときに、ロボットに位置X”、Y”、Z”に移動するように命令し、その結果、ロボットが位置X、Y、Zに移動するように命令を調整する。プロセスはブロック945で終了する。
【0122】
図10は、誤差最小化の一実施形態を示すフローチャートである。プロセスはブロック1010で開始する。
【0123】
ブロック1020では、カメラは、スペース内で、原点に対する位置を特定される。一実施形態では、原点は、ロボットセルのフレーム及びロボットの最も剛性の高い部分に位置決めされる。一実施形態では、カメラは、仮想ルート(0,0,0)に対する位置を特定され、次いで、ロボット及びフレームに対する位置を特定される。
【0124】
ブロック1030では、作業空間又は作業スペースが、複数のボクセルに分割される。一実施形態では、ボクセルは、作業スペースにわたって同じサイズであり得る。別の一実施形態では、ボクセルは、作業スペースの種々の部分における正確さの必要性に基づいて、異なるサイズであってもよく、それは、システムが、各ボクセルに対するロボットアームの正確さをモデル化するためである。
【0125】
ブロック1040では、ロボットアームは、所定のパターンでボクセル内を動き回る。一実施形態では、ロボットアームは、様々な異なるアプローチ角度から、様々な異なる重量で、各ボクセルの中心にアプローチする。これは、ロボットアーム誤差のモデル化を可能にする。
【0126】
ブロック1045では、データに基づいて、各ボクセルについてモデルが構築される。モデルは、接近角度及び重みに基づいて、そのボクセル内のロボットアームの正確さ及び精度を反映する。ロボットアームの正確さは、ロボットアームの位置に依存し、例えば、一実施形態では、ロボットアームの位置決めは、作業領域の中心付近でより正確であり、関節が延びるにつれ、作業領域の縁に向かってより不正確となり得る。次に、このモデルが記憶され、ロボット命令が受信されたときに使用することができる。ブロック1050~1070は、モデルの使用を表す。
【0127】
ブロック1050では、ある運動のための所望の目的地座標が受信される。システムは、開始座標、例えばロボットアームの現在位置を取得する。一実施形態では、負荷データも提供される。
【0128】
ブロック1060では、システムは、上述のモデルに基づいて、運動に適用される補正値を求める。モデルは、その運動のためのロボットアームの、接近角度、重量、及び端部位置に基づく。
【0129】
ブロック1070では、ロボットアームは、補正された目的地に移動されて、その運動を実行する。
【0130】
プロセスはブロック1080で終了する。
【0131】
図11は、組み立てられた最終製品を作成するために、1つ以上のロボットセルを含むマイクロ工場を利用するプロセスの、簡略化されたブロック図である。いくつかの実施形態では、ロボットセルは、製造のいくつかの下位部分を引き継ぐために、従来の製造ラインに挿入されてもよい。プロセスは、レシピクリエータC10を介したレシピ作成からマイクロ工場C50を介した作製/組立までの、製造のレイヤーを含む。最初の概念/機能設計から、完了した製造までの完全なプロセスが示されているが、当業者は、システムがこれらのプロセスのサブセットを実装し、これらの機能のサブセットを含んでいてもよいということを理解するであろう。
【0132】
当然ながら、様々なプロセスがフローチャート形式で示されているが、当業者であれば、フローチャートとしての図示は、プロセス要素の各々が特定の順序で行われることを必要としないということを理解するであろう。更に、様々な態様は、ルーピングではなく、割込み駆動であり得る。更に、フローチャートの前の要素からのデータに依存しない、又はそれに依存する後の要素を有さない任意のプロセスは、より前に、より後に、又は他のプロセスと並行して行われるように再構成され得る。
【0133】
図12は、本発明と共に使用され得るコンピュータシステムの一実施形態を示すブロック図である。しかしながら、様々なシステムアーキテクチャの他の代替システムも、使用され得るということが当業者には明らかであろう。
【0134】
図12に示すデータ処理システムは、情報を伝達するためのバス又は他の内部通信手段1240と、情報を処理するためにバス1240に連結された処理ユニット1210とを含む。処理ユニット1210は、中央演算処理装置(CPU)、デジタル信号プロセッサ(DSP)、又は別のタイプの処理ユニット1210であり得る。
【0135】
システムは更に、一実施形態では、バス1240に連結された、情報及びプロセッサ1210によって実行される命令を記憶するためのランダムアクセスメモリ(RAM)又は他の揮発性記憶デバイス1220(メモリと呼ばれる)を含む。メインメモリ1220は、処理ユニット1210による命令の実行中に一時的変数又は他の中間情報を記憶するために使用されてもよい。
【0136】
システムはまた、一実施形態では、バス1240に連結された、プロセッサ1210のための静的情報及び命令を記憶するための読取り専用メモリ(ROM)1250及び/又は静的記憶装置1250を備える。一実施形態では、システムはまた、例えば、磁気ディスク又は光ディスク及びそれぞれの対応するディスクドライブ、フラッシュメモリ、又はシステムに電力が供給されていないときにデータを記憶することができる他の記憶装置などの、データ記憶装置1230を含む。一実施形態におけるデータ記憶装置1230は、情報及び命令を記憶するために、バス1240に連結されている。
【0137】
システムは更に、バス1260を介してバス1240に連結された、例えば、陰極線管(CRT)又は液晶ディスプレイ(LCD)などの、情報を出力するための出力デバイス1270に連結され得る。出力デバイス1270は、視覚的出力デバイス、音声による出力デバイス、及び/又は触覚による出力(例えば、振動など)デバイスであってもよい。
【0138】
入力デバイス1275が、バス1260に連結され得る。入力デバイス1275は、ユーザが情報及びコマンドの選択を、処理ユニット1210に伝達することを可能にするための、例えば、英数字及び他のキーを含むキーボードなどの、英数字入力デバイスであり得る。追加のユーザ入力デバイス1280が、更に含まれてもよい。1つのそのようなユーザ入力デバイス1280は、例えば、マウス、トラックボール、スタイラス、カーソル方向キー、又はタッチスクリーンなどの、カーソル制御デバイス1280であり、バス1260を介してバス1240に連結され、方向情報及びコマンド選択を処理ユニット1210に伝達し、ディスプレイデバイス1270上の動きを制御してもよい。
【0139】
任意選択でコンピュータシステム1200に連結され得る別のデバイスは、ネットワークを介して分散システムの他のノードにアクセスするための、ネットワークデバイス1285である。通信デバイス1285は、イーサネット、トークンリング、インターネット、若しくは広域ネットワーク、パーソナルエリアネットワーク、無線ネットワークに連結するために使用されるいくつかの市販のネットワーキング周辺装置、又は他のデバイスにアクセスする他の方法などのうちのいずれかを含んでもよい。通信デバイス1285は更に、ヌルモデム接続であってもよく、又はコンピュータシステム1200と外部世界との間の接続性を提供する、任意の他の機構であってもよい。
【0140】
図12に示されたこのシステムの構成要素及び関連するハードウェアのいずれか又はすべてが、本発明の様々な実施形態において使用され得るということに留意されたい。
【0141】
当業者であれば、本発明を実施する特定の機械は、特定の実施態様に従って様々な方法で構成できるということを理解するであろう。本発明を実施する制御ロジック又はソフトウェアは、メインメモリ1220、大容量記憶装置1230、又はプロセッサ1210が、ローカル又はリモートでアクセス可能な他の記憶媒体に、記憶することができる。
【0142】
本明細書で説明するシステム、方法、及びプロセスは、メインメモリ1220又は読取り専用メモリ1250に記憶され、プロセッサ1210によって実行されるソフトウェアとして、実装され得ることが、当業者には明らかであろう。この制御ロジック又はソフトウェアは、コンピュータ可読プログラムコードが具現化され、大容量記憶装置1230によって読み取り可能であり、プロセッサ1210を本明細書の方法及び教示に従って動作させるための、コンピュータ可読媒体を含む製品上に常駐することもできる。
【0143】
本発明はまた、上述のコンピュータハードウェア構成要素のサブセットを含む手持ち式の又は携帯式のデバイスにおいて具現化されてもよい。例えば、手持ち式のデバイスは、バス1240、プロセッサ1210、並びにメモリ1250及び/又は1220のみを含むように構成されてもよい。
【0144】
手持ち式のデバイスは、ユーザが利用可能なオプションのセットから選択することができるボタンのセット又は入力シグナリング構成要素のセットを含むように構成することができる。これらは、第1入力デバイス1275又は第2入力デバイス1280と考えることができる。手持ち式のデバイスは、手持ち式のデバイスのユーザに情報を表示するための液晶ディスプレイ(LCD)又は表示素子マトリックスなどの出力デバイス1270を含むように構成することもできる。従来の方法が、そのような手持ち式のデバイスを実装するために使用され得る。そのようなデバイスのための本発明の実装法は、本明細書に提供されるような本発明の開示を考慮すれば、当業者には明白であろう。
【0145】
本発明はまた、ロボットセルのような上述のコンピュータハードウェア構成要素のサブセットを含む、特殊用途機器において具現化されてもよい。例えば、そのような機器は、処理ユニット1210、データ記憶装置1230、バス1240、及びメモリ1220を含み、入力/出力機構を含まないか、又はユーザが基本的な方法でデバイスと通信することを可能にする小型タッチスクリーンなどの初歩的な通信機構のみを含んでもよい。一般に、デバイスがより特殊な目的のものであるほど、そのデバイスが機能するために存在する必要がある要素はより少なくなる。いくつかのデバイスでは、ユーザとの通信は、タッチベースの画面又は同様の機構を通して行われ得る。一実施形態では、デバイスは、いかなる直接入力/出力信号を提供しなくてもよいが、ウェブサイトを通じて、又はネットワークデバイス1285を介した他のネットワークベースの接続を通して構成及びアクセスされてもよい。
【0146】
コンピュータシステムとして実装される特定のマシンの任意の構成が、その特定の実装に従って使用され得るということが、当業者によって理解されるであろう。本発明を実施する制御ロジック又はソフトウェアは、プロセッサ1210がローカル又はリモートでアクセス可能な、任意の機械可読媒体上に記憶することができる。機械可読媒体は、機械(例えば、コンピュータ)によって読み取り可能な形式で、情報を記憶するための任意の機構を含む。例えば、機械可読媒体は、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学的記憶媒体、フラッシュメモリデバイス、又は一時的もしくは永続的なデータ記憶のために使用され得る他の記憶媒体を含む。一実施形態では、制御ロジックは、電気、光、音響、又は他の形態の伝搬信号(例えば、搬送波、赤外線信号、デジタル信号など)などの送信可能データとして実装されてもよい。
【0147】
前述の明細書において、本発明は、その特定の例示的な実施形態を参照して説明されている。しかしながら、添付の特許請求の範囲に記載された本発明のより広い精神及び範囲から逸脱することなく、様々な修正及び変更をしてもよいことは明らかであろう。したがって、本明細書及び図面は、限定的な意味ではなく例示的な意味で見なされるべきである。
【国際調査報告】