(57)【特許請求の範囲】
【請求項１】
作業環境内で動作するロボットについてのワークオフセットを決定する指示を受信するステップであって、前記ワークオフセットは、前記ロボットの基部平面に対しての前記作業環境の作業面の位置および角度向きを説明する、受信するステップと、
前記指示に応じて、前記作業環境内の前記作業面を特定するステップと、
前記作業面の少なくとも３つの点であって、そのそれぞれの位置を前記ロボットが知らない少なくとも３つの点に接触するように前記ロボットのアームを制御するステップと、
前記ロボットの前記アームが前記作業面の前記少なくとも３つの点に接触しているときに、前記ロボットの少なくとも３つのそれぞれのポジションを決定するステップと、
前記ロボットの前記少なくとも３つのそれぞれのポジションに基づいて前記基部平面に対しての前記作業面の前記少なくとも３つの接触点のそれぞれの点位置を決定するステップと、
前記少なくとも３つの接触点の決定された前記それぞれの点位置に基づいて前記基部平面に対しての前記作業面の前記位置および角度向きを決定するステップであって、前記作業面の角度向きは、前記基部平面の第１の軸に対しての前記作業面の角度変位と、前記基部平面の第２の軸に対しての前記作業面の角度変位とを含み、前記第２の軸は、前記第１の軸に直交する、決定するステップと
を含む方法。
【請求項２】
前記作業環境は、複数の作業面を含んでおり、
上記の一連のステップが、前記複数の作業面のそれぞれに対して行われる、請求項１に記載の方法。
【請求項３】
前記作業面の位置によって、前記ロボット基部平面に直交する垂直軸に沿った前記基部平面上の点と前記作業面上の対応する点の間のずれ距離を測定する、請求項１又は２に記載の方法。
【請求項４】
前記少なくとも３つの点は、前記作業面上の個別の且つ同一直線上にない３つの点である、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記作業面は、前記作業環境のグラウンド平面である、請求項１から４のいずれか一項に記載の方法。
【請求項６】
第１の時間で前記ワークオフセットの決定後に、前記基部平面の変化を検出するステップと、
検出された前記基部平面の変化に応じて、第２の時間で前記ワークオフセットを決定するステップと
をさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項７】
第１の時間で前記ワークオフセットの決定後に、前記作業面の変化を検出するステップと、
検出された前記作業面の変化に応じて、第２の時間で前記ワークオフセットを決定するステップと
をさらに含む、請求項１から５のいずれか一項に記載の方法。
【請求項８】
前記ワークオフセットを決定する前記指示は、前記ロボットの初起動の検出に応じて生成される、請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記ワークオフセットを決定する前記指示は、ロボットの動作に関連したエラーの検出に応じて生成される、請求項１から７のいずれか一項に記載の方法。
【請求項１０】
前記作業環境内の前記作業面を特定するステップは、カメラからの画像データに基づいて前記作業環境内の前記作業面を特定することをさらに含み、
前記画像データは、前記作業面の少なくとも一部を表示する、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
前記作業面の位置を示す位置データを受信することをさらに含み、
前記作業環境内の前記作業面を特定するステップは、前記受信した位置データを使用して前記作業環境内の前記作業面を特定することを含む、請求項１から９のいずれか一項に記載の方法。
【請求項１２】
前記ロボットの前記それぞれのポジションは、エンコードされた関節角に基づいて決定される、請求項１から１１のいずれか一項に記載の方法。
【請求項１３】
前記作業面が面であり、前記ロボットが操作する１つまたは複数の物体は、前記作業面の面上に位置する、請求項１から１２のいずれか一項に記載の方法。
【請求項１４】
前記作業面の特定に応じて、前記平面に向けての経路を決定するステップと、
前記作業面に向けて決定された前記経路に沿って移動するステップと、
前記ロボットが前記作業面の前記少なくとも３つの点のいずれかに接触するときに、前記ロボット上の力センサから力検知データを受信するステップと、
前記力検知データに基づいて、前記ロボットが前記少なくとも３つの点のうち１つの点で前記作業面に接触したことを決定するステップと、
前記ロボットが前記作業面に接触したことの決定に応じて、前記ロボットに、それぞれの接触時点での前記ロボットのそれぞれのポジションを決定するのを停止させるステップと
をさらに含む、請求項１から１３のいずれか一項に記載の方法。
【請求項１５】
１つまたは複数のコンピューティング装置によって実行可能である命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令の実行によって、
作業環境内で動作するロボットについてのワークオフセットを決定する指示を受信することであって、前記ワークオフセットは、前記ロボットの基部平面に対しての前記作業環境の作業面の位置および角度向きを説明する、受信することと、
前記指示に応じて、前記作業環境内の前記作業面を特定することと、
前記作業面の少なくとも３つの点であって、そのそれぞれの位置を前記ロボットが知らない少なくとも３つの点に接触するように前記ロボットのアームを制御することと、
前記ロボットの前記アームが前記作業面の前記少なくとも３つの点に接触しているときに、前記ロボットの少なくとも３つのそれぞれのポジションを決定することと、
前記ロボットの前記少なくとも３つのそれぞれのポジションに基づいて前記基部平面に対しての前記作業面の前記少なくとも３つの接触点のそれぞれの点位置を決定することと、
前記少なくとも３つの接触点の決定された前記それぞれの点位置に基づいて前記基部平面に対しての前記作業面の前記位置および角度向きを決定することであって、前記作業面の角度向きは、前記基部平面の第１の軸に対しての前記作業面の角度変位と、前記基部平面の第２の軸に対しての前記作業面の角度変位とを含み、前記第２の軸は、前記第１の軸に直交する、決定することと
を含む機能を、前記１つまたは複数のコンピューティング装置に実行させる、非一時的なコンピュータ可読媒体。
【請求項１６】
前記命令の実行は、
第１の時間で前記ワークオフセットの決定後に、前記基部平面の変化を検出することと、
検出された前記基部平面の変化に応じて、第２の時間で前記ワークオフセットを決定することと
を含む機能を前記１つまたは複数のコンピューティング装置にさらに実行させる、請求項１５に記載の非一時的なコンピュータ可読媒体。
【請求項１７】
前記命令の実行は、
第１の時間で前記ワークオフセットの決定後に、前記作業面の変化を検出することと、
検出された前記作業面の変化に応じて、第２の時間で前記ワークオフセットを決定することと
を含む機能を前記１つまたは複数のコンピューティング装置にさらに実行させる、請求項１５に記載の非一時的なコンピュータ可読媒体。
【請求項１８】
プロセッサと、
命令を記憶するメモリとを備えたシステムであって、
前記命令は、前記プロセッサによって実行されるときに、
作業環境内で動作するロボットについてのワークオフセットを決定する指示を受信することであって、前記ワークオフセットは、前記ロボットの基部平面に対しての前記作業環境の作業面の位置および角度向きを説明する、受信することと、
前記指示に応じて、前記作業環境内の前記作業面を特定することと、
前記作業面の少なくとも３つの点であって、そのそれぞれの位置を前記ロボットが知らない少なくとも３つの点に接触するように前記ロボットのアームを制御することと、
前記ロボットの前記アームが前記作業面の前記少なくとも３つの点に接触しているときに、前記ロボットの少なくとも３つのそれぞれのポジションを決定することと、
前記ロボットの前記少なくとも３つのそれぞれのポジションに基づいて前記基部平面に対しての前記作業面の前記少なくとも３つの接触点のそれぞれの点位置を決定することと、
前記少なくとも３つの接触点の決定された前記それぞれの点位置に基づいて前記基部平面に対しての前記作業面の前記位置および角度向きを決定することであって、前記作業面の角度向きは、前記基部平面の第１の軸に対しての前記作業面の角度変位と、前記基部平面の第２の軸に対しての前記作業面の角度変位とを含み、前記第２の軸は、前記第１の軸に直交する、決定することと、を含む機能を、前記システムに実行させる、システム。
【請求項１９】
前記少なくとも３つの点は、前記作業面上の個別の且つ同一直線上にない３つの点である、請求項１８に記載のシステム。
【請求項２０】
前記作業環境内の前記作業面を特定することは、カメラからの画像データに基づいて前記作業環境内の前記作業面を特定することをさらに含み、
前記画像データは、前記作業面の少なくとも一部を表示する、請求項１８又は１９に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
[001]  ロボットシステムは、とりわけマテリアルハンドリング、溶接、組立ておよび分配を伴う応用に使用され得る。時が経つにつれて、これらのロボットシステムが動作する仕方は、より知的に、より効率的に、およびより直感的になっている。ロボットシステムが現代生活の数多くの局面においてますます普及するにつれて、人間と一緒に動作するとともに人間との橋渡し役をすることができるロボットシステムの必要性が明らかになっている。したがって、そのようなロボットシステムの需要は、アクチュエータ、検知技術、コントローラ、ならびにコンポーネントの設計および組立てにおけるイノベーションの場を切り開くのに役立っている。
【発明の概要】
【課題を解決するための手段】
【０００２】
[002]  例示のシステムおよび方法は、作業環境内のロボットについてのワークオフセットデータの決定をもたらすことができる。ワークオフセットは、ロボットの基部平面に対しての作業環境の作業面の位置および角度向きを説明することができる。ロボットは、作業面を特定することによってワークオフセット決定方法を開始することができる。作業面は、カメラからの画像データに基づき特定され得る。次いで、ロボットは、作業面に向けての経路を決定し、経路に沿って移動を始めることができる。
【０００３】
[003]  作業面にあると、ロボットは、作業面の１つまたは複数の点に接触するように制御することができる。点に接触している間、ロボットは、接触時点でのロボットのポジションに基づいて接触点の位置を決定することができる。ロボットのポジションは、エンコードされた関節角に基づいて決定することができる。ロボットは、３つ以上の点に接触することができる。次に、ロボットは、決定された点位置に基づいて基部平面に対しての作業面の位置および角度向きを決定することができる。ワークオフセットデータは、基部平面に直交するＺ軸に沿ったずれ距離、基部平面（傾き）のＸ軸に関しての角度変位、および基部平面（傾斜）のＹ軸に関しての角度変位を含み得る。
【０００４】
[004]  一例では、作業環境内で動作するロボットについてのワークオフセットを決定する指示を受信するステップであって、ワークオフセットは、ロボットの基部平面に対しての作業環境の作業面の位置および角度向きを説明する、受信するステップを含む方法が提供される。この方法は、指示に応じて作業環境内の作業面を特定するステップも含むことができる。方法は、作業面の１つまたは複数の点に接触するようにロボットを制御するステップも含むことができる。方法は、それぞれの接触時点でのロボットのそれぞれのポジションに基づいて基部平面に対しての１つまたは複数の接触点のそれぞれの点位置を決定するステップも含むことができる。方法は、１つまたは複数の接触点の決定されたそれぞれの点位置に基づいて基部平面に対しての作業面の位置および角度向きを決定するステップも含むことができる。
【０００５】
[005]  追加の一例では、１つまたは複数のコンピューティング装置によって実行可能である命令を記憶する非一時的なコンピュータ可読媒体が提供される。命令が実行されるとき、この命令は、作業環境内で動作するロボットについてのワークオフセットを決定する指示を受信することであって、ワークオフセットは、ロボットの基部平面に対しての作業環境の作業面の位置および角度向きを説明する、受信することを含む機能を１つまたは複数のコンピューティング装置に実行させる。上記機能は、指示に応じて、作業環境内の作業面を特定することも含むことができる。機能は、作業面の１つまたは複数の点に接触するようにロボットを制御することも含むことができる。機能は、それぞれの接触時点でのロボットのそれぞれのポジションに基づいて基部平面に対しての１つまたは複数の接触点のそれぞれの点位置を決定することも含むことができる。機能は、１つまたは複数の接触点の決定されたそれぞれの点位置に基づいて基部平面に対しての作業面の位置および角度向きを決定することも含むことができる。
【０００６】
[006]  別の例では、プロセッサと、プロセッサによって実行される命令を記憶するメモリとを備えるシステムが開示されている。実行されるときに、この命令は、作業環境内で動作するロボットについてのワークオフセットを決定する指示を受信することであって、ワークオフセットは、ロボットの基部平面に対しての作業環境の作業面の位置および角度向きを説明する、受信することを含む機能をシステムに実行させる。この機能は、指示に応じて、作業環境内の作業面を特定することも含むことができる。機能は、作業面の１つまたは複数の点に接触するようにロボットを制御することも含むことができる。機能は、それぞれの接触時点でのロボットのそれぞれのポジションに基づいて基部平面に対しての１つまたは複数の接触点のそれぞれの点位置を決定することも含むことができる。機能は、１つまたは複数の接触点の決定されたそれぞれの点位置に基づいて基部平面に対しての作業面の位置および角度向きを決定することも含むことができる。
【０００７】
[007]  さらなる一例では、システムは、作業環境内で動作するロボットについてのワークオフセットを決定する指示を受信する手段であって、ワークオフセットは、ロボットの基部平面に対しての作業環境の作業面の位置および角度向きを説明する、受信する手段を備えることができる。システムは、指示に応じて、作業環境内の作業面を特定する手段も備えることができる。システムは、作業面の１つまたは複数の点に接触するようにロボットを制御する手段も備えることができる。システムは、それぞれの接触時点でのロボットのそれぞれのポジションに基づいて基部平面に対しての１つまたは複数の接触点のそれぞれの点位置を決定する手段も備えることができる。システムは、１つまたは複数の接触点の決定されたそれぞれの点位置に基づいて基部平面に対しての作業面の位置および角度向きを決定する手段も備えることができる。
【０００８】
[008]  前述の概要は、例示的なものに過ぎず、決して限定していることを意図していない。上記の例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴は、各図および以下の詳細な説明および添付図面を参照することによって明らかになろう。
【図面の簡単な説明】
【０００９】
【図１】[009]例示の実施形態によるロボットシステムの構成例を示す図である。
【図２】[010]例示の実施形態による例示のロボッティックアームを示す図である。
【図３Ａ】[011]例示の実施形態による例示のロボッティックアーム、および作業環境内の作業面を示す図である。
【図３Ｂ】[012]例示の実施形態による作業環境内の第１の点に接触する例示のロボッティックアームを示す図である。
【図３Ｃ】[013]例示の実施形態による作業環境内の第２の点に接触する例示のロボッティックアームを示す図である。
【図３Ｄ】[014]例示の実施形態による作業環境内の第３の点に接触する例示のロボッティックアームを示す図である。
【図４Ａ】[015]例示の実施形態による一例のロボットおよび作業環境内の作業面の側面図である。
【図４Ｂ】[016]例示の実施形態による作業環境内の一例の作業面の側面図である。
【図５】[017]例示の実施形態による例示の方法のブロック図である。
【発明を実施するための形態】
【００１０】
[018]  例示の方法およびシステムが本明細書中に記載されている。本明細書中に記載された任意の例示の実施形態は、必ずしも他の実施形態または特徴よりも好ましいまたは有利であると解釈されるべきではない。本明細書中に記載された例示の実施形態は、限定していることを意図していない。本開示のシステムおよび方法のいくつかの態様は、幅広い種類の異なる構成に構成および組み合わせることができ、それらの全てが本明細書中で考えられていることを容易に理解されよう。
【００１１】
[019]  さらに、図に示された特定の構成は、限定と見られるべきではない。他の実施形態は所与の図に示された各要素をより多くまたはより少なく備えてもよいことを理解されたい。さらに、例示された要素のいくつかは、組み合わされても、または省かれてもよい。またさらに、例示の実施形態は、図に示されていない要素を備えてもよい。
【００１２】
[020]  ロボットは、環境内の物体に作用を及ぼすために、グラウンド平面などの環境内の平面の位置および向きについての情報を学習することができる。例えば、ユーザは、タスクを実行するために、基部を有するロボットを制御することを望む場合がある。しかしながら、ロボットを取り囲む作業環境は、未知であり得る。変数の１つは、作業環境内のグラウンド平面または異なる平面であり得る作業環境の作業面の位置および角度向きであり得る。作業面は、ロボットが操作する１つまたは複数の物体を含むことができる。
【００１３】
[021]  作業面の位置および角度向きは、ロボット基部の平面の位置および角度向きとは異なり得る。具体的には、作業面が上または下に垂直にずれているかは、未知であり得る。さらに、作業面は、基部平面に対して角度のある状態で傾斜している場合がある。作業面が基部平面に対してずれているおよび／または傾斜している量は、ワークオフセットと呼ばれる。
【００１４】
[022]  ロボットを精密かつ正確に制御してタスクを実行するために、ユーザは、ワークオフセットの決定を望むことができる。ユーザは、作業面内の３つの点を測定することによってワークオフセットを手動で決定することができる。選択した３つの点に基づいて、次いで、ユーザは、作業面が垂直に（すなわち、Ｚ方向に）ずれたか、ならびに／あるいは基部平面に対して（それぞれ角度方向θｘおよびθｙに）傾けられたか、および／または傾斜させられたか決定することができる。しかしながら、ワークオフセットの手動決定の欠点の１つは、作業面の３つの点を精密に測定して作業面寸法を決定することは困難であり得ることである。したがって、ロボットによって実施される自動化されたワークオフセット決定方法は、手動のワークオフセット決定方法よりも、タスクを実行するために、より正確かつ精密なロボット制御をもたらすことができる。
【００１５】
[023]  自動化されたワークオフセット決定は、予め決定された一連の工程を実行することによってロボットにより実施することができる。予め決定されたワークオフセット決定方法は、正確なロボット制御を確実にするために、ロボットが起動すると起動または較正手順として実施され得る。代替として、ロボットは、トラブルシューティングのメカニズムまたはルーチンの保守手順として予め決定されたまたはワークオフセット決定シーケンス実行してもよい。他の実施形態では、ロボットは、他の理由のためにワークオフセット決定方法を実施することができる。
【００１６】
[024]  ワークオフセット決定シーケンスは、ロボットをオンにするおよび／またはワークオフセット決定シーケンスを開始することによって始めることができる。次に、ロボットは、作業面上の複数の点に触れることができる。点および／または作業面の位置は、知られていなくてもよい。一実施形態では、ロボットは、作業面の位置の大まかな推定を有する。
【００１７】
[025]  結果として、次いで、ロボットは、同一直線上にない１つまたは複数の点におけるロボットと作業面の間の接触を引き起こすことが予期される方向に移動することができる。具体的には、最初に、ロボットは、ロボットによる第１の点での作業面との接触が検出されるまで第１の方向に沿って作動することができる。この接触は、ロボットの力センサおよび／またはエンドエフェクタによって検出することができる。この点でロボットと作業面の間の接触がなされると、ロボットの作動は、一時的に停止することができる。次いで、接触点の位置は、接触中のロボットのポジションに基づいて決定することができる。
【００１８】
[026]  接触点の位置が決定されると、ロボットは、先の接触点と同一直線上にない作業面の１つまたは複数の追加の点に接触するために同様のやり方で再び作動することができる。同様に、１つまたは複数の追加の点の位置は、接触時のロボットのポジションに基づいて決定することができる。一実施形態では、ロボットは、作業面の３つ以上の点に触れることができる。
【００１９】
[027]  接触点の位置が決定完了すると、次いで、ロボットは、基部平面に対しての作業面の傾きおよび傾斜を計算することができる。加えて、ロボットは、基部平面に対しての作業面の垂直なずれの高さを計算することもできる。傾き、傾斜、および高さが計算完了すると、次いで、ロボットは、基部平面に対しての作業面の傾き寸法、傾斜寸法、および高さ寸法としてワークオフセットを表すことができる。ロボットは、作業環境内で１つまたは複数のタスクを実行するために、ワークオフセットデータを使用することができる。
【００２０】
[028]  いくつかの実施形態では、ロボットによるワークオフセット決定シーケンスは、一度だけ実行することができる。例えば、作業面が固定され変わらない場合、ワークオフセット決定シーケンスは、一度だけ実行されることが必要であり得る。一実施形態では、ロボット基部は、固定テーブルに取り付けることができる。代替として、ワークオフセット決定シーケンスは、ロボットによって複数回実行することができる。詳細には、ロボット基部が移動する場合、または作業面が変わる場合、ワークオフセット決定シーケンスは、作業面の任意の追加の傾斜および／またはずれを明らかにするために再び実行することができる。
【００２１】
[029]  一例では、ワークオフセット決定シーケンスは、ロボットがコンベヤベルトに沿って移動しているパレットを持ち上げているまたはそれと共に働いているときに、複数回実行することができる。この場合には、各パレットは、特有のサイズ、高さ、傾き、および／または傾斜を有することができる。したがって、パレットごとに、ロボットは、ワークオフセット決定シーケンスを実行して特定のパレットについてのワークオフセットを決定することができる。具体的には、ロボットは、ロボット基部の平面に対してのパレットの平面の垂直なずれ（例えば、Ｚ方向）、傾き、および傾斜（それぞれ角度方向θｘおよびθｙ）を決定する。したがって、本実施形態では、ロボットが静止していても、ワークオフセット決定シーケンスは、作業面（例えば、異なるパレット）の変化により複数回実行することができる。
【００２２】
[030]  一実施形態では、ロボットは、作業面の寸法の最初の推定を得るためにカメラに頼ることができる。例えば、ロボットは、作業面の垂直なずれならびに／あるいは傾きおよび／または傾斜の最初の推定を決定するために、ありふれた深さカメラを使用することができる。いくつかの実施形態では、ロボットは、複数の平面についてのワークオフセットを決定することができる。コンベヤベルトおよびパレットの例に戻って参照すると、ロボットは、特定のパレットごとにワークオフセットを決定することができる。正確かつ精密なワークオフセットを計算することによって、ロボットは、タスクを正確かつ精密により良く実行することができる。
【００２３】
[031]  次に図を参照すると、図１は、ロボットシステム１００の構成例を示す。ロボットシステム１００は、ロボッティックアーム、様々なタイプのロボティックマニピュレータとすることができ、またはそれは、いくつかの異なる形態を有することができる。加えて、ロボットシステム１００は、ロボット装置、ロボティックマニピュレータ、またはロボットなどと呼ばれることもあり得る。
【００２４】
[032]  ロボットシステム１００は、プロセッサ１０２と、データストレージ１０４と、プログラム命令１０６と、コントローラ１０８と、センサ１１０と、電源１１２と、アクチュエータ１１４と、可動コンポーネント１１６とを備えることが示されている。ロボットシステム１００は、本発明の範囲から逸脱することなく、ロボットシステム１００が、追加のコンポーネントを含むことができ、および／または１つまたは複数のコンポーネントを取り除くことができるものとして例示の目的で示されているものに過ぎないことに留意されたい。さらに、ロボットシステム１００の様々なコンポーネントは、任意のやり方で接続することができることに留意されたい。
【００２５】
[033]  プロセッサ１０２は、汎用プロセッサまたは特定目的プロセッサ（例えば、デジタル信号プロセッサ、特定用途向け集積回路など）であり得る。プロセッサ１０２は、データストレージ１０４に記憶されているとともに、本明細書中に記載されたロボットシステム１００の機能性を与えるように実行可能であるコンピュータ可読プログラム命令１０６を実行するように構成することができる。例えば、プログラム命令１０６は、コントローラ１０８の機能性を与えるように実行可能とすることができ、ここで、コントローラ１０８は、１つまたは複数の可動コンポーネント１１６の移動を引き起こすようアクチュエータ１１４を命令するように構成することができる。
【００２６】
[034]  データストレージ１０４は、プロセッサ１０２によって読み込みまたはアクセスすることができる１つまたは複数のコンピュータ可読記憶媒体を含むことができるまたはその形態をとることができる。１つまたは複数のコンピュータ可読記憶媒体は、光、磁気、有機、または他のメモリまたはディスクストレージなどの揮発性および／または不揮発性記憶コンポーネントを含むことができ、これは、プロセッサ１０２と全部または一部において一体化することができる。いくつかの実施形態では、データストレージ１０４は、単一の物理的装置（例えば、１つの光、磁気、有機、または他のメモリまたはディスクストレージユニット）を用いて実現することができ、一方、他の実施形態では、データストレージ１０４は、２つ以上の物理的装置を用いて実現することができる。さらに、コンピュータ可読プログラム命令１０６に加えて、データストレージ１０４は、他の実現可能なものの中でも診断データなどの追加のデータを含むことができる。
【００２７】
[035]  ロボットシステム１００は、他の実現可能なものの中でも力センサ、近接センサ、運動センサ、荷重センサ、ポジションセンサ、タッチセンサ、深度センサ、超音波距離センサ、および赤外線センサ等などの１つまたは複数のセンサ１１０を含み得る。センサ１１０は、ロボットシステム１００が環境に及ぼす適切な相互作用を可能にするようにセンサデータをプロセッサ１０２に供給することができる。加えて、センサデータは、さらに後述するように、フィードバックを与えるために様々なファクタの評価に使用することができる。さらに、ロボットシステム１００は、ロボットシステム１００の様々なコンポーネントに電力を供給するように構成された１つまたは複数の電源１１２を備えることもできる。例えば、ガソリンエンジン、またはバッテリなどの任意のタイプの電源を使用することができる。
【００２８】
[036]  ロボットシステム１００は、１つまたは複数のアクチュエータ１１４を備えることもできる。アクチュエータは、機械的運動を導入するために使用することができる機構である。詳細には、アクチュエータは、蓄えられたエネルギーを１つまたは複数のコンポーネントの移動に変換するように構成することができる。アクチュエータに動力を供給するために様々な機構が使用され得る。例えば、アクチュエータは、他の実現可能なものの中でも化学物質、圧縮空気、または電気などによって動力を供給することができる。場合によっては、アクチュエータは、回転の運動形態（例えば、ロボットシステム１００内の関節）を含むシステムに使用することができる回転式アクチュエータであってもよい。他の場合には、アクチュエータは、直線運動を伴うシステムに使用することができるリニアアクチュエータであり得る。
【００２９】
[037]  どちらの場合にも、アクチュエータ１１４は、ロボットシステム１００様々な可動コンポーネント１１６の移動を引き起こすことができる。可動コンポーネント１１６は、ロボッティックアーム、脚、および／またはハンド等などの付属物を含み得る。可動コンポーネント１１６は、可動基部、ホイール、および／またはエンドエフェクタ等も含み得る。
【００３０】
[038]  いくつかの実施では、コンピューティングシステム（図示せず）は、ロボットシステム１００に結合することができるとともに、グラフィカルユーザインタフェースなどを介してユーザから入力を受け取るように構成することができる。このコンピューティングシステムは、ロボットシステム１００内に組み込みことができ、またはロボットシステム１００と（有線または無線）通信することができる外部コンピューティングシステムとすることができる。したがって、ロボットシステム１００は、他の実現可能なものの中でもグラフィカルユーザインタフェースにおけるユーザ入力、および／またはロボットシステム１００上のボタンの押下（または触覚入力）を介して受け取られるユーザ入力などに基づいて情報および命令を受信することができる。
【００３１】
[039]  ロボットシステム１００は、様々な形態をとることができる。例示するために、図２は、例示のロボッティックアーム２００を示す。図示の通り、ロボッティックアーム２００は、固定基部とすることができるまたは可動基部とすることができる基部２０２を備える。可動基部の場合、基部２０２は、可動コンポーネント１１６の１つとみなすことができ、アクチュエータ１１４のうち１つまたは複数によって動力が供給されるホイール（図示せず）を備えることができ、これによってロボッティックアーム２００全体の移動性を可能にする。
【００３２】
[040]  加えて、ロボッティックアーム２００は、アクチュエータ１１４の１つまたは複数にそれぞれ結合された関節２０４Ａ〜２０４Ｆを備える。関節２０４Ａ〜２０４Ｆにおけるアクチュエータは、付属物２０６Ａ〜２０６Ｆおよび／またはエンドエフェクタ２０８などの様々な可動コンポーネント１１６を移動させるように動作することができる。例えば、関節２０４Ｆにおけるアクチュエータは、付属物２０６Ｆおよびエンドエフェクタ２０８を移動させることができる（すなわち、エンドエフェクタ２０８が付属物２０６Ｆに結合されるからである）。さらに、エンドエフェクタ２０８は、様々な形態をとることができるとともに、様々な部品を含むことができる。一例では、エンドエフェクタ２０８は、本明細書に示されるようなフィンガグリッパなどのグリッパ、または吸引グリッパなどの異なるタイプのグリッパの形態をとることができる。別の例では、エンドエフェクタ２０８は、ドリルまたはブラシなどのツールの形態をとることができる。さらに別の例では、エンドエフェクタは、力センサ、位置センサ、および／または近接センサなどのセンサを含み得る。他の例も可能であり得る。
【００３３】
[041]  例示の実施では、ロボッティックアーム２００などのロボットシステム１００は、教示モードで動作することが可能であり得る。詳細には、教示モードは、ユーザが、様々な移動を実行し記録する方にロボッティックアーム２００と物理的に相互作用し案内することを可能にするロボッティックアーム２００の動作モードであり得る。教示用モードでは、特定のタスクを実行する仕方に関してロボットシステムを教示するように意図されている教示用入力に基づいて、外力が（例えば、ユーザによって）ロボットシステム１００へ加えられる。このようにして、ロボッティックアーム２００は、ユーザからの命令およびガイダンスに基づいて特定のタスクを実行する仕方に関してのデータを得ることができる。そのようなデータは、他の実現可能なものの中でも可動コンポーネント１１６の複数の構成、関節ポジションデータ、速度データ、加速度データ、トルクデータ、力データ、および電力データ等に関連し得る。
【００３４】
[042]  例えば、教示モード中、ユーザは、ロボッティックアーム２００の任意の部分を把持し、ロボッティックアーム２００を物理的に移動することによって外力を与えることができる。詳細には、ユーザは、物体を把持している方へロボッティックアーム２００を案内し、次いで第１の位置から第２の位置まで物体を移動させることができる。ユーザが教示モード中にロボッティックアーム２００を案内するとき、システムは、独立動作中（例えば、ロボッティックアーム２００が教示モード以外で独立して動作するとき）の将来の時点でロボッティックアーム２００がタスクを独立して実行するように構成することができるように、移動に関連したデータを得て記録することができる。しかしながら、この外力は、他の実現可能なものの中でも他の物体、機械、および／またはロボットシステム等などによる物理的作業空間内の他の存在によって加えることもできることに留意されたい。
【００３５】
[043]  図３Ａ〜図３Ｄは、作業環境３００の一実施形態を示す。示された実施形態では、ロボット１００のロボットアーム３０２は、様々なポジションで示されている。図３Ａ〜図３Ｄには、ロボットアーム３０２は、第１のポジション３０６、第２のポジション３０７、第３のポジション３０８、および第４のポジション３０９に示されている。図３Ｂ、図３Ｃ、および図３Ｄのロボットポジションは、異なる時間におけるロボットのポジションを示すために、破線を用いて示されている。ロボットアーム３０２は、第１の点３１６に接触するために第２のポジション３０７へ移動する。次いで、ロボットアーム３０２は、第２の点３１８に接触するために、第３のポジション３０８へ移動する。最後に、ロボットアーム３０２は、第３の点３２０に接触するために、第４のポジション３０９へ移動する。ロボットアーム３０２は、示された実施形態に示されたものよりもより多い、より少ない、および／または異なる点に接触するために、より多い、より少ない、および／または異なるポジションへ移動してもよい。
【００３６】
[044]  示された作業環境３００では、ロボットアーム３０２は、図２のロボッティックアーム２００と同じロボットアームとすることができる。基部平面３０３は、ロボットアーム３０２の基部に位置することができる。原点３０４および凡例３０５も、示されている。凡例３０５は、基部平面３０３を定めるＸ軸およびＹ軸を示す。原点３０４は、基部平面３０３内の点である。いくつかの実施形態では、原点３０４のＸＹＺ座標（Ｘ０，Ｙ０，Ｚ０）は、（０，０，０）として定めることができる。凡例３０５のＺ軸は、基部平面３０３に直交することができる。他の実施形態では、異なる基部平面、点、および／または座標系が、可能であり得る。いくつかの実施形態では、基部平面３０３の位置および向き、原点３０４、および／または凡例３０５は、ロボット１００による基部平面３０３に対して定めることができる。
【００３７】
[045]  ロボッティックアーム３０２は、作業面３１２についてのワークオフセットを決定するために１つまたは複数の点３１６、３１８、および３２０に接触するように制御することができる。凡例３１４および中心点３２２も、示されている。凡例３１４は、作業面３１２を定める作業面のＸ軸（ＸＷＰ）、および作業面のＹ軸（ＹＷＰ）を含む。凡例３１４は、作業面に直交するＺ軸（ＺＷＰ）も含む。作業面３１２は、中心点３２２も含むことができ、点位置は（ＸＣ，ＹＣ，ＺＣ）にある。いくつかの実施形態では、中心点は、３つの点３１６、３１８、および３２０の中間点を表すことができる。加えて、作業面３１２は、接触点３１６、３１８、および３２０を含む。他の実施形態では、異なる作業面、点、および／または座標系が、可能であり得る。
【００３８】
[046]  図３Ａ〜図３Ｄの示された実施形態では、作業面３１２は、作業環境３００のグラウンド平面とすることができる。代替として、作業面３１２は、作業環境内の異なる平面であり得る。例えば、一実施形態では、作業面３１２は、パレットの上面であり得る。
【００３９】
[047]  加えて、作業環境３００は、複数の作業平面を含むことができる。例えば、作業環境３００は、コンベヤベルトを含むことができ、このコンベヤベルトの上で複数のパレットが搬送される。本実施形態では、各パレットの上面は、別々の作業面と考えることができる。コンベヤベルト上の各パレットは、異なる高さであり得るとともに、上面ごとに異なる傾き角度および／または傾斜角度を含む異なる角度向きを有し得る。したがって、パレットごとに、特定の作業面は、ロボットアーム３０２の基部平面３０３に対しての特定のワークオフセットを有することができる。
【００４０】
[048]  さらに、作業面３１２は、ロボットが操作する１つまたは複数の物体３３０および３３２を含むことができる。詳細には、１つまたは複数の物体は、作業面３１２の面上に静止していることができる。例えば、作業面３１２がグラウンド平面である図３Ａ〜図３Ｄの示された実施形態では、１つまたは複数の物体３３０および３３２は、ロボット１００がロボッティックアーム３０２を用いて操作するように、グラウンド上にあり得る。作業環境３００および作業面３１２の他の実施形態も可能である。
【００４１】
[049]  ロボット１００は、基部平面３０３に対して作業面３１２についてのワークオフセットを決定する方法を実施することができる。ワークオフセットは、ロボットの作業面３１２と基部平面３０３の間のオフセット（または変化）を説明する。正確かつ精密なワークオフセットを計算することによって、ロボットは、作業面についてのタスクを精密かつ正確に実施することが可能とされ得る。例えば、ロボットは、ワークオフセット決定により、作業面上に静止している１つまたは複数の物体３３０および３３２をより正確かつ精密に操作することができる。
【００４２】
[050]  いくつかの実施形態では、ワークオフセットは、基部平面３０３に対して作業面３１２の位置および角度向きを含むことができる。詳細には、ワークオフセット位置は、基部平面３０３に直交する凡例３０５のＺ軸に沿ったずれ距離を用いて説明することができる。基部平面３０３に対しての作業面３１２の角度向きは、傾きについての角度変位値、および傾斜についての角度変位値を用いて説明することができる。傾き値θｘは、凡例３０５のＸ軸に関して作業面３１２の角回転を説明することができる。傾斜値θｙは、凡例３０５のＹ軸に関して作業面３１２の角回転を説明することができる。傾き値および傾斜値は、図４Ａおよび図４Ｂに示されており、それについてより詳細に説明される。
【００４３】
[051]  ずれ距離は、基部平面３０３上の点と作業面３１２上の点の間のＺ座標に差をとることによって計算される。基部平面の点は原点３０４とすることができ、一方、作業面の点は中心点３２２とすることができる。しかしながら、基部平面および／または作業面についての別々の点は、ずれ距離を決定するために使用することができる。作業面の点（例えば、中心点３２２、第１の点３１６、第２の点３１８、第３の点３２０、または何らかの他の作業面の点）は、（凡例３１４とは対照的に）凡例３０５に基づいてＸＹＺ座標を用いて表すことができる。しかしながら、凡例３１４などの他の座標系が使用されてもよい。
【００４４】
[052]  ワークオフセット決定方法は、ロボット１００のプロセッサによって実行されるメモリに記憶された命令のセットを含む自動化された手順であり得る。ワークオフセット決定方法は、様々な状況においてロボット１００によって実施され得る。例えば、ワークオフセット決定方法は、ロボット１００の起動後に実行される起動手順であり得る。代替として、ワークオフセット決定方法は、ロボット１００によって検出された検出エラーまたは予期せぬ結果に応じてトラブルシューティングの目的で実施されてもよい。
【００４５】
[053]  ワークオフセット決定方法が実施され得るときに関するさらに別の例は、作業環境３００の作業面３１２の変化を検出するロボット１００を含む。代替として、ロボット１００は、ロボット１００の基部平面３０３の変化の決定に応じてこの方法を実施することができる。別の代替例は、ロボット１００による作業環境３００の変化の検出を含むことができ、これは作業面３１２の変化を示唆し得る。代替として、ワークオフセット決定方法は、ルーチンの保守手順としてロボット１００によって実施されてもよい。他の理由も、ロボット１００がワークオフセット決定方法を実施するために存在し得る。
【００４６】
[054]  いくつかの実施形態では、ロボットアーム３０２の基部は、テーブルなどの物体上に固定することができる。この筋書では、ワークオフセット決定方法は、基部平面が変化しないのでそれほど度々実施され得ない。詳細には、作業面が典型的に床である場合、ワークオフセット決定方法は、作業面および基部平面が変化しないので一度だけ実施され得る。代替として、ロボットは、物体に固定されなくてもよい。この場合には、ワークオフセット決定方法は、基部平面がより頻繁に変化し得るので、もっと度々実施され得る。いくつかの実施形態では、基部平面の位置および向きは、ロボットによって既知であるが、他の実施形態では、基部平面の位置および向きは未知である。
【００４７】
[055]  ロボット１００は、作業環境３００内の作業面３１２を特定することによってワークオフセット決定方法を開始することができる。示された実施形態では、ロボット１００は、グラウンド平面（例えば、床）を作業環境３００の作業面３１２として特定することができる。１つまたは複数のパレットを搬送するコンベヤベルトを備えた実施形態などの他の実施形態では、ロボット１００は、特定のパレットの上面を作業環境の作業面として特定することができる。ロボット１００が作業環境３００の平面を作業面３１２として特定する他の実施形態も可能である。
【００４８】
[056]  いくつかの実施形態では、特定された作業面は、平面でない場合がある。例えば、特定された作業面は、平面でない床の場合がある。しかしながら、床のある部分は、比較的平面であり得、したがってワークオフセット決定のための方法は、床の比較的平面の部分内に位置する作業面を定める点に少なくともまだ使用することができる。非平面の物体が作業面として特定される他の実施形態も可能であり得る。
【００４９】
[057]  作業環境３００の作業面３１２を特定するとき、ロボットは、カメラから受信した画像データに頼ることができる。いくつかの実施形態では、カメラは、ロボット上に設けることができるが、他の実施形態では、画像データは、遠隔カメラから受信することができる。いくつかの実施形態では、画像データは、作業面３１２として最終的に特定される平面の少なくとも一部を示すことができる。代替として、ロボットは、作業面３１２の位置を推定するまたは示すおおよそのまたは大まかなデータを受信することができる。ロボット１００は、データ（例えば、画像データ、受信した位置データ、大まかなデータなど）を使用して作業環境３００の作業面３１２を特定することができる。
【００５０】
[058]  次に、ロボット１００は、特定された作業面３１２の方に沿って移動するための経路を決定することができる。決定された経路は、ロボットが作業面３１２の方に移動するときに、ロボットが障害物および／または衝突を避けることを可能にすることができる。決定された経路は、ロボットが移動して作業面３１２に到着するのにより短い、好ましい、および／またはより効率よい経路であり得る。他の経路が、ロボットが移動して作業面３１２に到着する経路として決定されてもよい。
【００５１】
[059]  いくつかの実施形態では、ロボットは、作業面３１２の正確な位置を知らずに経路をナビゲートすることができる。ロボットは、作業面３１２の位置の大雑把な推定を用いて決定された経路に沿って作業面に向けて移動することができる。いくつかの実施形態では、ロボット１００は、作業面３１２についてのワークオフセットを決定するためにロボットが接触する１つまたは複数の点（例えば、３１６、３１８、および３２０）の位置を知らない。しかしながら、他の実施形態では、ロボットは、作業面３１２のワークオフセットを決定するためにロボットが接触する作業面３１２および／または１つもしくは複数の点についての正確なおよび／または精密な位置を有することができる。
【００５２】
[060]  ロボットが作業面３１２に到着すると、ロボットアーム２００は、１つまたは作業面上の複数の点に接触するように制御することができる。一実施形態では、ロボットは、作業面内の少なくとも３つの点に接触するように制御される。ロボットが第１の点に接触したら、ロボットは、第２の点で作業面に接触するように作業面３１２の異なる位置に向けて移動することができる。再び、ロボットが作業面上の第２の点についての位置に向けて移動するとき、ロボットは、作業面および／または第２の点の正確な位置を知らなくてもよい。同様に、ロボットは、作業面または第３の点の正確な位置を知らずに作業面の第３の点に接触するように作業面の他の異なる位置に向けて経路に沿って移動することもできる。他の実施形態では、ロボットは、作業面の位置および／または作業面に接触する１つもしくは複数の点の位置を知っていてもよい。
【００５３】
[061]  次に、ロボットは、作業面に接触した点の位置を決定することができる。ロボットは、接触の時点でのロボットのポジションを決定することによって作業面上の接触点の位置を決定することができる。点の位置は、凡例３０５に基づいてＸＹＺ座標として表現することができる。しかしながら、点の位置は、異なる座標系（例えば、凡例３１４）を用いて表現することができる。示された実施形態は、３つの点についての位置を決定するロボットを示すが、他の実施形態では、ロボットは、作業面３１２のより多いまたはより少ない点についての位置を決定することができる。いくつかの実施形態では、接触点は、同一直線上になくてもよい。
【００５４】
[062]  接触点の点位置がロボットによって決定されると、次いで、ロボットは、ワークオフセットを決定することができる。ワークオフセットは、基部平面３０３に対しての作業面３１２の位置および角度向きを説明する。示された実施形態では、ワークオフセットは、ずれ距離、傾き値、および傾斜値によって説明される。詳細には、図３Ａでは、作業面３１２は、ワークオフセット（Ｚ，θｘ，θｙ）を用いて表され、ただし、「Ｚ」はずれ距離を表し、θｘは傾き値を表し、θｙは傾斜値を表す。しかしながら、ワークオフセットは、異なる寸法、値、および／または座標系を用いて表されてもよい。
【００５５】
[063]  例えば、図３Ａでは、ロボット１００は、作業面３１２を作業環境３００の作業面として特定することができる。次いで、ロボットアーム３０２は、作業面３１２に接触するように沿って移動する経路を決定することができる。ロボット１００は、作業面３１２の正確な位置、またはロボットアーム３０２が作業面３１２に接触する点を知ることはできない。
【００５６】
[064]  次に、図３Ｂは、第１の点３１６で作業面３１２に接触するために第１のポジション３０６から第２のポジション３０７まで決定された経路に沿って移動するロボットアーム３０２を示す。ロボット１００は、決定した経路に沿って移動する間、点３１６についての作業面３１２の位置の知識を有していなくてもよい。ロボットアーム３０２が第１の点３１６で作業面３１２に接触するとき、ロボット１００は、力検知データ、および接触中のロボットのポジションを示すデータを受信することができる。ロボット１００は、ロボットポジション情報を使用して（Ｘ１，Ｙ１，Ｚ１）となる第１の点３１６の位置を決定することができる。次いで、ロボットは、第１の点３１６との接触を終え、第２の点で作業面３１２に接触するように沿って移動する経路を決定することができる。
【００５７】
[065]  図３Ｃは、第２の点３１８で作業面３１２に接触するために、第２のポジション３０７から第３のポジション３０８まで決定された経路に沿って移動するロボットアーム３０２を示す。ロボット１００は、ロボットアーム３０２が経路に沿って移動する間、作業面３１２または点３１８の位置の知識を有してなくてもよい。ロボットアーム３０２が第２の点３１８で作業面３１２に接触するとき、ロボット１００は、力検知データ、および接触中のロボットのポジションを示すデータを受信することができる。ロボット１００は、ロボットポジション情報を使用して（Ｘ２，Ｙ２，Ｚ２）となる第２の点３１８の位置を決定することができる。次いで、ロボットは、第２の点３１８との接触を終え、第３の点で作業面３１２に接触するように沿って移動する経路を決定することができる。
【００５８】
[066]  図３Ｄは、第３の点３２０で作業面３１２に接触するために、第３のポジション３０８から第４のポジション３０９まで決定された経路に沿って移動するロボットアーム３０２を示す。ロボット１００は、ロボットアーム３０２が経路に沿って移動する間、作業面３１２または３２０中の点の位置の知識を有してなくてもよい。ロボットアーム３０２が第３の点３２０で作業面３１２に接触するとき、ロボット１００は、力検知データ、および接触中のロボットのポジションを示すデータを受信することができる。ロボット１００は、ロボットポジション情報を使用して（Ｘ３，Ｙ３，Ｚ３）となる第３の点３２０の位置を決定することができる。次いで、ロボットは、第３の点３２０との接触を終えることができる。ロボットが点３１６、３１８、および３２０についての点位置を決定したら、次いで、ロボット１００は、基部平面３０３に対しての作業面３１２についてのワークオフセットを計算することができる。
【００５９】
[067]  ロボットアーム３０２が作業面の点（例えば、３１６、３１８、および３２０）に接触するときにロボット１００によって取集されるデータは、力検知データ、ロボットのポジションについてのデータ、および／または他の情報を含むことができる。ロボットアーム３０２が点で作業面に接触するときに、ロボット１００は、ロボットアーム３０２の移動を停止することができ、それによってロボットアーム３０２は、ロボット１００がデータを収集することができるように点での作業面３１２に接触したままとなる。次いで、ロボット１００は、作業面３１２との接触を終わらすようにロボットアーム３０２を移動することができる。
【００６０】
[068]  力検知データは、ロボットアーム３０２が点で作業面３１２に接触するときに、力フィードバックセンサを介してロボット１００によって取得される。力フィードバックセンサは、ロボットアーム３０２上に、またはロボット１００上のいくつかの他の点に設けることができる。力フィードバックセンサは、ロボットアーム３０２が作業面３１２に接触しているときを示すために使用される。センサは、接触の精密かつ正確な測定値を得ることができるようにセンサが受けた力に敏感であるように設計することができる。接触の精密かつ正確な測定値は、ロボットが精密かつ正確なワークオフセットを決定することを可能にし、これは、ロボットアーム３０２の精密かつ正確な制御を可能にする。
【００６１】
[069]  力フィードバックセンサはロボットアーム３０２が作業面３１２に接触していることを示すデータを受信すると、センサは、ロボット１００がデータを集める間、ロボット１００がロボットアーム３０２の移動を停止することを可能にする。ロボットアーム３０２の移動を中断することによって、力センサは、ロボットアーム３０２、作業面３１２、およびロボット１００が、繰り返しまたは過度の接触による何らかのさらなる損傷を受けるのを防ぐのを助ける。
【００６２】
[070]  力フィードバックセンサを使用する代わりに、他の力を監視する方法が、ロボットと作業面の間の接触を決定するために使用されてもよい。例えば、ロボットは、モータ電流の監視、エンコーダの偏差の監視、または他のロボットの力検出方法の利用によって力を検知することができる。力を検知する方法が、ロボットと作業面の間の接触を決定するために用いられてもよいが、他の接触決定方法も可能である。例えば、ロボットは、（エンコーダまたは何らかの他の方法を用いて）ロボット動作の一時停止を監視し、作業面とロボットアーム（またはロボットの何らかの他の部分）との間の電気的連続性を監視し、またはロボット工学に使用される異なるタイプの接触および／もしくは非接触センサを使用することができる。
【００６３】
[071]  ロボット１００は、ロボットアーム３０２が作業面３１２に接触する間、ロボットについてのポジションデータを得るおよび／または決定することもできる。いくつかの実施形態では、データは、ロボットに取り付けられたＩＭＵを用いて取得することができ、一方、他の実施形態では、ロボットに取り付けられた他のセンサが使用され得る。ロボットのポジションは、点でロボットアーム３０２と作業面３１２の間で接触中にエンコードされた関節角に基づいて決定することができる。ロボットの決定されたポジションに基づいて、ロボットは、ロボットアーム３０２によって接触される１つまたは複数の点の位置を決定することができる。決定された点位置を用いて、次いで、ロボット１００は、作業面３１２についてのワークオフセットを決定することができる。
【００６４】
[072]  図３Ａ〜図３Ｄは、作業面とのロボットアームの接触に基づいて点位置を決定する方法を示すが、点位置は、ロボットアームが作業面に接触することなく決定することができる。例えば、（光学タイプの近接センサ、誘導タイプの近接センサ、静電容量タイプの近接センサ、または他のタイプの近接センサなどの）ある種の近接センサは、ロボットが作業面から特定の閾値距離に到達するときを検出するように使用することができる。この場合には、ロボットは、作業面の位置の大まかな推定を知ることもまたは有することもできる。次いで、ロボットは、知られているロボットポジション、ロボットと作業面の間の距離、ならびに作業面の位置に基づいて点位置を決定することができる。他の点位置決定方法も可能であり得る。
【００６５】
[073]  図４Ａおよび図４Ｂは、ロボットアーム４０２および作業環境４０１の一実施形態を示す。図４Ａは、作業環境４０１内のロボッティックアーム４０２の側面図４００である。基部平面４０３は、ロボッティックアーム４０２の基部に位置することができる。基部平面４０３は、凡例４０５のＸ軸およびＹ軸によって定められる。基部平面４０３は、位置（Ｘ０，Ｙ０，Ｚ０）を有する原点４０４を含む。いくつかの実施形態では、原点４０４は、（０，０，０）に位置する。凡例４０５は、基部平面４０３に直交するＺ軸も含む。凡例４０５のＹ軸に平行であるとともにロボットアーム４０２の有利な点から物体４１０および４３０を見る視線方向４０８が、示されている。
【００６６】
[074]  図４００も、物体４１０および４３０を示す。物体４１０は、ロボット１００によって作業面として特定された上面４１２を含む。作業面４１２の傾き値θｘ４１４は、凡例４０５のＸ軸に関して基部平面４０３に対しての作業面４１２の角度変位を表す。傾き値θｘ４１４は、作業面４１２と基準軸４１６の間の角度の測定値に等しい。基準軸４１６は、凡例４０５のＹ軸に平行である軸である。他の実施形態では、傾き値４１４は、作業面４１２の角度変位の異なる測定値を表し得る。
【００６７】
[075]  図４Ｂでは、４５０は、ロボットアーム４０２の有利な点から視線方向４０８に沿った作業環境４０１内の物体４３０の側面図である。図４Ａおよび図４Ｂでは、物体４３０は、ロボット１００によって作業面として特定された上面４３２を含む。作業面４３２の傾斜値θｙ４３４は、凡例４０５のＹ軸に関して基部平面４０３に対しての作業面４３２の角度変位を表す。傾斜値θｙ４３４は、作業面４３２と基準軸４３６の間の角度の測定値に等しい。基準軸４３６は、例４０５のＸ軸に平行である軸である。他の実施形態では、傾斜値４３４は、作業面４３２の角度変位の異なる測定値を表し得る。
【００６８】
[076]  図５は、例示の実施形態によるツールオフセットを決定することを可能にすることができる方法５００を示す流れ図を示す。方法５００は、図１に関して図示および説明されたロボットなどのロボットによって実施することができる。しかしながら、ロボット制御システム、または図１に記載されたロボットとは異なる何らかの他の装置も、方法５００を実施することができる。
【００６９】
[077]  さらに、本明細書中に記載された流れ図と共に説明される機能性は、図５に示された流れ図と共に説明される特定の論理機能、決定、および／または工程を実現するための特定機能および／または設定された汎用機能のハードウェアモジュール、プロセッサによって実行されるプログラムコードの一部として実施することができることに留意されたい。使用される場合、プログラムコードは、任意のタイプのコンピュータ可読媒体、例えば、ディスクまたはハードドライブを含む記憶装置などに記憶することができる。
【００７０】
[078]  加えて、図５に示された流れ図の各ブロックは、プロセス内の特定の論理機能を実行するように配線されている回路構成を表すことができる。特に示されない限り、図５に示された流れ図の機能は、記載された方法の機能性全体が維持される限り、含まれる機能性に応じて、いくつかの例では別個に記載された機能をほぼ同時に実行することまたは逆の順序でも実行することを含めて図示または説明されたものとは異なる順序で実行することができる。
【００７１】
[079]  図５のブロック５０２によって示されるように、方法５００は、作業環境内で動作するロボットについてのワークオフセットを決定する指示を受信することを含むことができ、ただし、ワークオフセットは、ロボットの基部平面に対しての作業環境の作業面の位置および角度向きを説明する。いくつかの例では、指示は、作業面の変化、基部平面の変化、ロボットの初起動、ルーチンの保守、あるいはエラーまたは予期せぬ結果のトラブルシューティングであり得る。
【００７２】
[080]  方法５００は、図５のブロック５０４によって示されるように、指示に応じて作業環境内の作業面を特定することをさらに含むことができる。いくつかの例では、ロボットは、ロボットのカメラから受信した画像データに基づいて作業面を特定することができる。方法５００は、図５のブロック５０６によって示されるように、作業面の１つまたは複数の点に接触するようにロボットを制御することを含むこともできる。いくつかの例では、ロボットは、ロボットが作業面に接触したことを示す力検知データを受信することができる。追加の例では、ロボットは、受信した力検知データに応じて接触点に接触するようにロボットを制御することを止めることができる。
【００７３】
[081]  図５のブロック５０８によって示されるように、方法５００は、それぞれの接触時点でのロボットのそれぞれのポジションに基づいて基部平面に対しての１つまたは複数の接触点のそれぞれの点位置を決定することをさらに含むことができる。いくつかの例では、ロボットのポジションは、エンコードされた関節角に基づいて決定することができる。追加の例では、ロボットは、少なくとも３つの点に接触し、したがって少なくとも３つの点位置を決定することができる。
【００７４】
[082]  方法５００は、図５のブロック５１０によって示されるように、１つまたは複数の接触点の決定されたそれぞれの点位置に基づいて基部平面に対しての作業面の位置および角度向きを決定することをさらに含むことができる。いくつかの例では、作業面の位置は、基部平面に直交するＺ軸に沿ったずれ距離によって説明することができる。追加の例では、基部平面に対しての作業面の角度向きは、基部平面（傾き）のＸ軸に関しての角度変位、および基部平面（傾斜）のＹ軸に関しての角度変位によって説明することができる。
【００７５】
[083]  本開示のシステムおよび方法にとって、ロボットを用いる様々な応用および環境が可能である。例えば、ロボットについてのワークオフセットの決定が適用可能であり得るいくつかの環境には、製造設備、郵便または出荷設備、空港、病院、またはロボットを用いる他の環境が含まれる。さらに、作業環境におけるロボットについてのワークオフセットの決定が適用可能であり得る他の応用には、建設、出荷、製造、ヘルスケア、および／またはロボットを用いる他の応用が含まれる。本開示のシステムおよび方法についての他の適用可能な環境および応用も可能であり得る。
【００７６】
[084]  本開示は、様々な態様の例示として意図されている本出願に記載された特定の実施形態の観点に限定されるべきではない。多くの修正および変形は、当業者にとって明らかであるので、本開示の趣旨および範囲から逸脱することなくなされてもよい。本開示の範囲内の機能的に均等な方法および装置は、本明細書中に挙げられたものに加えて、前述の説明から当業者に明らかであろう。そのような修正および変形は、添付の特許請求の範囲内に含まれることが意図される。
【００７７】
[085]  上記の詳細な説明は、開示されたシステム、装置、および方法の様々な特徴および機能を、添付図面を参照して説明する。各図において、文脈上別段の指示がない限り、典型的には同様の記号は、同様の構成要素を特定する。本明細書および図面に記載された例示の実施形態は、限定していることを意図していない。本明細書中に提示された主題の趣旨または範囲から逸脱することなく、他の実施形態が利用されてもよく、他の変更がなされてもよい。概して本明細書中に説明されるおよび図に示されるような本開示の態様は、幅広い種類の異なる構成にアレンジ、置換、組み合わせ、分離、および設計されてもよく、それらの全ては本明細書中で明確に考えられることが容易に理解されよう。
【００７８】
[086]  情報処理を表すブロックは、本明細書中に記載した方法または技法の特定の論理機能を実行するように構成され得る回路構成に対応し得る。代替としてまたは加えて、情報処理を表すブロックは、モジュール、セグメント、または（関連データを含む）プログラムコードの一部に対応し得る。プログラムコードは、上記方法もしくは技法における特定の論理機能または操作を実施するためのプロセッサによって実行可能な１つまたは複数の命令を含むことができる。プログラムコードおよび／または関連データは、ディスクもしくはハードドライブ、または他の記憶媒体を含む記憶装置などの任意のタイプのコンピュータ可読媒体に記憶することができる。
【００７９】
[087]  コンピュータ可読媒体は、レジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ（RAM）のような短期間にわたってデータを記憶するコンピュータ可読媒体などの非一時的なコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、例えば、リードオンリメモリ（ROM）、光ディスクもしくは磁気ディスク、コンパクトディスクリードオンリメモリ（CD-ROM）のような二次または永続性長期ストレージなどのより長期間にわたってプログラムコードおよび／またはデータを記憶する非一時的なコンピュータ可読媒体も含み得る。コンピュータ可読媒体は、任意の他の揮発性または不揮発性記憶システムとすることもできる。コンピュータ可読媒体は、例えば、コンピュータ可読記憶媒体、または有形の記憶装置とみなされもよい。
【００８０】
[088]  また、１つまたは複数の情報伝送を表すブロックは、同じ物理的装置内のソフトウェアおよび／またはハードウェアモジュール間の情報伝送に対応し得る。しかしながら、他の情報伝送が、異なる物理的装置内のソフトウェアモジュールおよび／またはハードウェアモジュール間にあってもよい。
【００８１】
[089]  図に示された特定の構成は、限定と見られるべきではない。他の実施形態は、所与の図に示された各要素をより多くまたはより少なく備えてもよいことを理解されたい。さらに、示された要素の一部が組み合わされたり、または省かれたりしてもよい。またさらに、例示の実施形態は、図に示されていない要素を備えてもよい。
【００８２】
[090]  様々な態様および実施形態を本明細書中に開示してきたが、他の態様および実施形態が、当業者には明らかであろう。本明細書中に開示された様々な態様および実施形態は、例示のためであり、限定していることを意図しておらず、真の範囲は、添付の特許請求の範囲によって示されている。
【図１】
0006661001.tif 000002
【図２】
0006661001.tif 000003
【図３Ａ】
0006661001.tif 000004
【図３Ｂ】
0006661001.tif 000005
【図３Ｃ】
0006661001.tif 000006
【図３Ｄ】
0006661001.tif 000007
【図４Ａ】
0006661001.tif 000008
【図４Ｂ】
0006661001.tif 000009
【図５】
0006661001.tif 000010