特許第6663978号(P6663978)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ エックス デベロップメント エルエルシーの特許一覧

特許6663978ツールオフセットを決定するシステムおよび方法
<>
  • 特許6663978-ツールオフセットを決定するシステムおよび方法 図000002
  • 特許6663978-ツールオフセットを決定するシステムおよび方法 図000003
  • 特許6663978-ツールオフセットを決定するシステムおよび方法 図000004
  • 特許6663978-ツールオフセットを決定するシステムおよび方法 図000005
  • 特許6663978-ツールオフセットを決定するシステムおよび方法 図000006
  • 特許6663978-ツールオフセットを決定するシステムおよび方法 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6663978
(24)【登録日】2020年2月19日
(45)【発行日】2020年3月13日
(54)【発明の名称】ツールオフセットを決定するシステムおよび方法
(51)【国際特許分類】
   B25J 9/10 20060101AFI20200302BHJP
   B25J 13/08 20060101ALI20200302BHJP
【FI】
   B25J9/10 A
   B25J13/08 Z
【請求項の数】20
【全頁数】23
(21)【出願番号】特願2018-502119(P2018-502119)
(86)(22)【出願日】2016年7月25日
(65)【公表番号】特表2018-526727(P2018-526727A)
(43)【公表日】2018年9月13日
(86)【国際出願番号】US2016043836
(87)【国際公開番号】WO2017015655
(87)【国際公開日】20170126
【審査請求日】2018年2月7日
(31)【優先権主張番号】14/807,434
(32)【優先日】2015年7月23日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】516326438
【氏名又は名称】エックス デベロップメント エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】デイビス,ベンジャミン,エム.
【審査官】 松田 長親
(56)【参考文献】
【文献】 特開平01−257593(JP,A)
【文献】 特開平09−076178(JP,A)
【文献】 特開2014−176943(JP,A)
【文献】 特開昭60−009678(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00−21/02
(57)【特許請求の範囲】
【請求項1】
ロボット上の基準物体の知られているポジションに基づいて、前記ロボットに取り付け点で接続されたツールが前記ロボット上の前記基準物体に向かうように当該ロボットを動かすステップと、
前記ツールが第1の接触イベント中に前記ロボット上の前記基準物体に接触したことを決定するステップと、
前記ツールが前記第1の接触イベント中に前記ロボット上の前記基準物体に接触するときに、前記ロボットのポジションを示すロボットポジションデータを受信するステップと、
前記ロボット上の前記基準物体の前記ポジションおよび前記ロボットポジションデータに少なくとも基づいて、前記取り付け点と前記ツール上の少なくとも1つの点との間の距離を記述する前記ツールについてのツールオフセットデータを決定するステップと
前記ツールを前記基準物体に接触させることによって複数の異なるロボットポジションに対応する複数の接触イベントを反復して引き起こさせるステップと、
前記複数の接触イベントに対応する前記複数の異なるロボットポジションを示すロボットポジションデータを受信するステップと、
受信した前記ロボットポジションデータに基づいて前記ツールの3次元モデルを決定するステップと
を含む方法。
【請求項2】
前記基準物体は、予め決定された向きおよび予め決定されたポジションに第1の平坦面を有する厚板であり、前記ツールが前記第1の接触イベント中に前記厚板の前記第1の平坦面に接触する、請求項1に記載の方法。
【請求項3】
前記ロボットは、基部の頂部にロボットアームを備え、
前記ロボット上の前記基準物体は、前記基部に接続されている、請求項1又は2に記載の方法。
【請求項4】
前記基準物体は、第1の平坦面および第2の平坦面を有し、前記第1の平坦面は、前記第2の平坦面に対してある角度で位置している、請求項1に記載の方法。
【請求項5】
前記ツールオフセットデータは、第1の方向の第1の距離と、前記第1の方向に直交する第2の方向の第2の距離と、前記第1の方向と前記第2の方向の両方に直交する第3の方向の第3の距離とを含む、請求項1から4のいずれか一項に記載の方法。
【請求項6】
第2の接触イベント中に前記ツールが前記基準物体に接触するように前記ロボットを制御するステップと、
前記第2の接触イベント中に前記ツールが前記基準物体に接触するときに、前記ロボットのポジションを示すロボットポジションデータを受信するステップと、
前記ロボット上の前記基準物体の前記ポジション、前記第1の接触イベント中に受信した前記ロボットポジションデータ、および前記第2の接触イベント中に受信した前記ロボットポジションデータに少なくとも基づいて前記ツールについてのツールオフセットデータを決定するステップと
をさらに含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記ツールについてのツールオフセットデータは、前記取り付け点と前記ツール上の複数の点との間の各距離を記述する、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記ロボット上の力センサから力検知データを受信するステップと、
前記力検知データに基づいて、前記ロボットが前記ツールを前記基準物体に接触させたことを決定するステップと、
前記ロボットが前記ツールを前記基準物体に接触させたとの決定に応じて、前記ロボットに前記ツールの移動を停止させるステップと
をさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記ツール上の少なくとも1つの点についての前記ツールオフセットデータに少なくとも基づいて前記ツールの形状を決定するステップと、
決定した前記ツールの形状に基づいて前記ツールについてのツールのタイプを決定するステップと
をさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
前記ロボットポジションデータは、前記ロボットのエンコードされた関節角に少なくとも基づいて決定される、請求項1から9のいずれか一項に記載の方法。
【請求項11】
1つまたは複数のコンピューティング装置によって実行可能である命令を記憶する非一時的なコンピュータ可読媒体であって、前記命令の実行によって、
ロボット上の基準物体の知られているポジションに基づいて、前記ロボットに取り付け点で接続されたツールが前記ロボット上の前記基準物体に向かうように当該ロボットを動かすこと、
前記ツールが第1の接触イベント中に前記ロボット上の前記基準物体に接触したことを決定すること、
前記ツールが前記第1の接触イベント中に前記ロボット上の前記基準物体に接触するときに、前記ロボットのポジションを示すロボットポジションデータを受信すること、
前記ロボット上の前記基準物体の前記ポジションおよび前記ロボットポジションデータに少なくとも基づいて、前記取り付け点と前記ツール上の少なくとも1つの点との間の距離を記述する前記ツールについてのツールオフセットデータを決定すること、
前記ツールを前記基準物体に接触させることによって複数の異なるロボットポジションに対応する複数の接触イベントを反復して引き起こさせること、
前記複数の接触イベントに対応する前記複数の異なるロボットポジションを示すロボットポジションデータを受信すること、
受信した前記ロボットポジションデータに基づいて前記ツールの3次元モデルを決定すること、
を含む機能を、前記1つまたは複数のコンピューティング装置に実行させる、非一時的なコンピュータ可読媒体。
【請求項12】
前記基準物体は、予め決定された向きおよび予め決定されたポジションに第1の平坦面を有する厚板であり、前記ツールが前記第1の接触イベント中に前記厚板の前記第1の平坦面に接触する、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項13】
前記ロボットは、基部の頂部にロボットアームを備え、
前記ロボット上の前記基準物体は、前記基部に接続されている、請求項11又は12に記載の非一時的なコンピュータ可読媒体。
【請求項14】
前記基準物体は、第1の平坦面および第2の平坦面を有し、前記第1の平坦面は、前記第2の平坦面に対してある角度で位置している、請求項11に記載の非一時的なコンピュータ可読媒体。
【請求項15】
前記ロボットポジションデータは、前記ロボットのエンコードされた関節角に少なくとも基づいて決定される、請求項11から14のいずれか一項に記載の非一時的なコンピュータ可読媒体。
【請求項16】
プロセッサと、
命令を記憶するメモリと
を備えるシステムであって、
前記命令は、前記プロセッサによって実行されるときに、
ロボット上の基準物体の知られているポジションに基づいて、前記ロボットに取り付け点で接続されたツールが前記ロボット上の前記基準物体に向かうように当該ロボットを動かすこと、
前記ツールが第1の接触イベント中に前記ロボット上の前記基準物体に接触したことを決定すること、
前記ツールが前記第1の接触イベント中に前記ロボット上の前記基準物体に接触するときに、前記ロボットのポジションを示すロボットポジションデータを受信すること、
前記ロボット上の前記基準物体の前記ポジションおよび前記ロボットポジションデータに少なくとも基づいて、前記取り付け点と前記ツール上の少なくとも1つの点との間の距離を記述する前記ツールについてのツールオフセットデータを決定すること、
前記ツールを前記基準物体に接触させることによって複数の異なるロボットポジションに対応する複数の接触イベントを反復して引き起こさせること、
前記複数の接触イベントに対応する前記複数の異なるロボットポジションを示すロボットポジションデータを受信すること、
受信した前記ロボットポジションデータに基づいて前記ツールの3次元モデルを決定すること、
を含む機能を、前記システムに実行させる、システム。
【請求項17】
前記基準物体は、予め決定された向きおよび予め決定されたポジションに第1の平坦面を有する厚板であり、前記ツールが前記第1の接触イベント中に前記厚板の前記第1の平坦面に接触する、請求項16に記載のシステム。
【請求項18】
前記ロボットは、基部の頂部にロボットアームを備え、
前記ロボット上の前記基準物体は、前記基部に接続されている、請求項16又は17に記載のシステム。
【請求項19】
前記メモリは、前記プロセッサによって実行されるときに、
前記ロボットの接触電気回路のステータスが変化したことを決定すること、
前記決定されたステータスの変化に基づいて、前記ロボットが前記ツールを用いて前記基準物体に接触したことを決定すること、
前記ロボットが前記ツールを前記基準物体に接触させたとの決定に応じて、前記ロボットに前記ツールの移動を停止させること、
を含む機能を、前記システムにさらに実行させる命令を記憶している、請求項16から18のいずれか一項に記載のシステム。
【請求項20】
前記ロボットポジションデータは、前記ロボットのエンコードされた関節角に少なくとも基づいて決定される、請求項16から19のいずれか一項に記載のシステム。
【発明の詳細な説明】
【背景技術】
【0001】
[0001] ロボットシステムは、とりわけマテリアルハンドリング、溶接、組立ておよび分配を伴う応用に使用され得る。時が経つにつれてこれらのロボットシステムが動作する仕方は、より知的に、より効率的に、およびより直感的になっている。ロボットシステムが現代生活の数多くの局面においてますます普及するにつれて、人間と一緒に動作するとともに人間との橋渡し役をすることができるロボットシステムの必要性が明らかになっている。したがって、そのようなロボットシステムの需要は、アクチュエータ、検知技術、コントローラ、ならびにコンポーネントの設計および組立てにおけるイノベーションの場を切り開くのに役立っている。
【発明の概要】
【課題を解決するための手段】
【0002】
[0002] 例示のシステムおよび方法は、ロボットに取り付けられたツールについてのツールオフセットデータの決定をもたらすことができる。ツールは、位置が知られている取り付け点でロボットに取り付けることができる。ロボットは、制御システムによって、ツールに基準物体と1回または複数回接触させるように制御を受けることができる。基準物体は、位置が知られている剛体の対象とすることができる。さらに、基準物体は、ツールが接触するための1つまたは複数の平坦面を知られている位置および向きに備えることができる。例えば、基準物体は、知られている位置と共に知られている向きでロボットに取り付けられた1つの平坦面を有する厚板であり得る。
【0003】
[0003] ロボットの力フィードバックセンサは、ツールが基準物体に接触したときを示すことができる。接触がなされると、ロボットは、ツールおよび/または基準物体への損傷を防ぐためにツールの移動を一時的に停止させることができる。制御システムは、ロボットのエンコードされた関節角に基づいてツールの接触中にロボットポジションデータを決定することもできる。次いで、ツールオフセットデータは、ロボットポジションデータおよびロボットに対しての基準物体のポジションに基づいて決定することもできる。ツールオフセットデータは、ツール上の1つまたは複数の点と取り付け点の間の距離を記述することができる。例えば、ツールオフセットデータは、ツールの高さを記述することができる。
【0004】
[0004] 一例では、ロボットに対しての基準物体のポジションを決定するステップを含む方法が提供される。この方法は、ロボットに取り付け点で接続されたツールが第1の接触イベント中に基準物体に接触するようにロボットを制御するステップも含むことができる。上記方法は、ツールが第1の接触イベント中に基準物体に接触するときに、ロボットのポジションを示すロボットポジションデータを受信するステップをさらに含むことができる。上記方法は、ロボットに対しての基準物体のポジションおよびロボットポジションデータに少なくとも基づいて、取り付け点とツール上の少なくとも1つの点との間の距離を記述するツールについてのツールオフセットデータを決定するステップも含むことができる。
【0005】
[0005] 追加の一例では、1つまたは複数のコンピューティング装置によって実行可能である命令を記憶する非一時的なコンピュータ可読媒体が提供される。この命令が実行されるとき、上記命令は、ロボットに対しての基準物体のポジションを決定することを含む機能を1つまたは複数のコンピューティング装置に実行させる。この機能は、ロボットに取り付け点で接続されたツールが第1の接触イベント中に基準物体に接触するようにロボットを制御することも含むことができる。上記機能は、ツールが第1の接触イベント中に基準物体に接触するときに、ロボットのポジションを示すロボットポジションデータを受信することも含むことができる。上記機能は、ロボットに対しての基準物体のポジションおよびロボットポジションデータに少なくとも基づいて、取り付け点とツール上の少なくとも1つの点との間の距離を記述するツールについてのツールオフセットデータを決定することも含むことができる。
【0006】
[0006] 別の例では、プロセッサと、このプロセッサによって実行される命令を記憶するメモリとを備えるシステムが開示されている。実行されるときに、命令は、ロボットに対しての基準物体のポジションを決定することを含む機能をシステムに実行させる。この機能は、ロボットに取り付け点で接続されたツールが第1の接触イベント中に基準物体に接触するようにロボットを制御することも含むことができる。上記機能は、ツールが第1の接触イベント中に基準物体に接触するときに、ロボットのポジションを示すロボットポジションデータを受信することも含むことができる。上記機能は、ロボットに対しての基準物体のポジションおよびロボットポジションデータに少なくとも基づいて、取り付け点とツール上の少なくとも1つの点との間の距離を記述するツールについてのツールオフセットデータを決定することも含むことができる。
【0007】
[0007] さらなる一例では、システムは、ロボットに対しての基準物体のポジションを決定する手段も備えることができる。このシステムは、ロボットに取り付け点で接続されたツールが第1の接触イベント中に基準物体に接触するようにロボットを制御する手段も備えることができる。上記システムは、ツールが第1の接触イベント中に基準物体に接触するときに、ロボットのポジションを示すロボットポジションデータを受信する手段をさらに備えることができる。システムは、ロボットに対しての基準物体のポジションおよびロボットポジションデータに少なくとも基づいて、取り付け点とツール上の少なくとも1つの点との間の距離を記述するツールについてのツールオフセットデータを決定する手段も備えることができる。
【0008】
[0008] 前述の発明の概要は、例示的なものに過ぎず、決して限定していることを意図していない。上記の例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴は、各図および以下の発明を実施するための形態および添付図面を参照することによって明らかになろう。
【図面の簡単な説明】
【0009】
図1】[0009]例示の実施形態によるロボットシステムの構成例を示す図である。
図2A】[0010]例示の実施形態による例示のロボティックアームを示す図である。
図2B】[0011]例示の実施形態による別の例のロボティックアームを示す図である。
図3A】[0012]例示の実施形態による例示のエンドエフェクタおよび基準物体の平面図である。
図3B】[0013]例示の実施形態による例示のエンドエフェクタおよび基準物体の側面図である。
図4】[0014]例示の実施形態による例示の方法のブロック図である。
【発明を実施するための形態】
【0010】
[0015] 例示の方法およびシステムが本明細書中に記載されている。本明細書中に記載された任意の例示の実施形態または特徴は、必ずしも他の実施形態または特徴よりも好ましいまたは有利であると解釈されるべきではない。本明細書中に記載された例示の実施形態は、限定していることを意図していない。本開示のシステムおよび方法のいくつかの態様は、幅広い種類の異なる構成に構成および組み合わせることができ、それらの全てが本明細書中で考えられていることを容易に理解されよう。
【0011】
[0016] さらに、図に示された特定の構成は、限定と見られるべきではない。他の実施形態は所与の図に示された各要素をより多くまたはより少なく備えてもよいことを理解されたい。さらに、例示された要素のいくつかは、組み合わされても、または省かれてもよい。またさらに、例示の実施形態は、図に示されていない要素を備えてもよい。
【0012】
[0017] タスクを実行するようにロボットを制御するための共通の問題は、ツールオフセットの決定である。例えば、ユーザは、1つまたは複数のタスクを実行するように取り付けられたツールまたはエンドエフェクタを備えたロボットを制御することを望む場合がある。ユーザは、実行されるタスクに基づいてあるタイプのツールをロボットに取り付けることができる。この場合には、ユーザは、選択したツールがロボットに取り付けられる取り付け点の位置を知ることができる。加えて、ユーザは、ロボットに取り付けられるツールのタイプを知ることもできる。
【0013】
[0018] しかしながら、ユーザは、取り付けられたツールの幾何学的形状に関しての知識を欠き得る。あるいは、ユーザは、取り付け点の位置をだいたい知るに過ぎない場合がある。どちらの筋書でも、ユーザは、ロボットおよび取り付けられたツールの制御を改善してタスクを実行するために、ツール上の点と取り付け点の間のオフセットを決定することを望む場合がある。オフセットは、ツール上の点と取り付け点の間の距離であり得る。場合によっては、オフセットは、ツール高さであり得る。あるいは、オフセットは、取り付け点とツール上の他の点の間の距離を記述することができる。ツールオフセットは、X方向、Y方向、およびZ方向の距離、ならびにシータなどの角度オフセットを含む様々な寸法を用いて記述することができる。
【0014】
[0019] 典型的には、ツールオフセットは、タスクを実行するようにロボットおよび取り付けられたツールを精密かつ正確に制御するために、ユーザによってロボット制御システムに手入力される。しかしながら、ツールオフセットデータの手入力に関する問題の1つは、それがユーザにオフセットを正しく測定するように要求することである。別の問題は、ツールオフセットを精密かつ正確に測定する方法をユーザが知らなければならないことである。さらに別の問題は、ツールのオフセットが、ツールが使用されるにつれて時が経つと変化し得ることである(例えば、経時的なツールの曲がり、歪み、または摩滅)。したがって、ツールオフセットデータを決定するためにロボットによって実行される自動プロセスは、手動測定およびツールオフセットの決定に関連した問題をなくすことができる。
【0015】
[0020] ロボットは、ロボットにツールが取り付けられた後にツールオフセットデータを決定するための自動プロセスを実行することができる。まず、ロボットは、基準物体として働く剛体構造を特定することができる。次に、ロボットは、取り付けられたツールを基準物体に接触することができる。ロボットは、基準物体に接触する取り付けられたツールに基づいてロボットポジションデータを収集することができる。ロボットポジションデータに基づいて、ロボットは、ツールオフセットデータの一部を決定することができる。次いで、ロボットは、より多くのロボットポジションデータを取得するために、ツールを剛体の基準物体に反復して接触させ続けることができる。追加のロボットポジションデータに基づいて、ロボットは、ツール上の点についての追加のツールオフセットデータを決定することができる。いくつかの実施形態では、ロボットは、ツール上の複数の関心点についてのツールオフセットデータを決定するために、ツールを剛体の物体に反復して接触させることができる。一実施形態では、ロボットは、取り付けられたツールの3Dモデルを生成するのに十分なロボットポジションデータを蓄積するために、ツールを剛体の物体に反復して接触させることができる。
【0016】
[0021] 基準物体は、ツールオフセットデータを決定するためにロボットポジションデータを蓄積するようにロボットが取り付けられたツールに接触することを可能にする剛体構造であり得る。基準物体は、知られている場所でロボットに取り付けることができる。例えば、基準物体は、ロボットに知られている位置で設けられた厚板であり得る。基準物体は、2つの面を有する厚板とすることができ、第1の基準物体表面は、第2の基準物体表面に対してある角度で設けられる。別に例については、基準物体は、ロボットに知られている位置で設けられたツーリングボールであり得る。基準物体は、基準物体がロボットの動作を妨げないような位置でロボットに配置することができる。代替として、基準物体は、遠隔位置にあってもよい(すなわち、ロボットになくてもよい)。基準物体の遠隔位置は、ロボットによって知ることができる。他の基準物体および基準物体の位置も可能である。ロボットに対しての基準物体の相対的位置は、ツールオフセットデータを決定するために、ロボットポジションデータと組み合わせて使用することができる。
【0017】
[0022] ロボットが基準物体に接触するときに、ロボットは、ロボットポジションデータを収集してツールオフセットデータを決定し、ロボット制御を改善することができる。ロボットポジションデータは、ロボット、ロボットアーム、ロボットツール、基準物体、および/またはロボットの他の部品のポジション、位置、および/または向きについて情報を与えることができる。例えば、ロボットは、ロボットのエンコードされた関節角に基づいて、接触中の取り付け点のポジションおよび角度向きを決定することができる。他の実施形態では、ロボットポジションデータは、他の情報を含むことができる。収集されたロボットポジションデータは、ツールオフセットデータの全部または一部を決定するために使用することができる。IMJなどのセンサは、ロボットポジションデータを取得するために使用することができる。センサは、ロボットに取り付けることができる。
【0018】
[0023] 力検知データは、ロボットに設けられた力フィードバックセンサからロボットによって取得することができる。例えば、力フィードバックセンサは、ロボットツールが基準物体に接触したことを示す力検知データをもたらすことができる。この指示は、ロボットと基準物体の間の過度のおよび/または不要な接触を無にすることによってツールおよび/またはロボットへの損傷を防ぐことができる。力フィードバックセンサは、取り付け点に設けることができる。しかしながら、力フィードバックセンサの他の位置も可能である。センサは、力が取り付け点でロボットに及ぼされるときを示す精密かつ正確な測定値を与え、これは、取り付けられたツールと基準物体の間の接触を示す。力センサからの正確かつ精密な測定値は、ツールオフセットデータの正確かつ精密な決定を可能にする。
【0019】
[0024] ロボットは、様々なタイプのツールがロボットに取り付けられることを可能にすることができる。一実施形態では、ロボットは、シリンジ内に格納された流体を送達することを伴うタスクを実行するために、ロボットアームに取り付けられたシリンジを備える。シリンジツールについての関心点は、シリンジの針の先端であり得る。この点は、ロボットがシリンジ内に格納された流体を送達することを伴うタスクを実行するためにロボットアームおよび取り付けられたシリンジをどのように制御するのか決定することを可能にすることができる。
【0020】
[0025] ロボットに取り付けることができる別のツールは、2フィンガ平行グリッパであり得る。グリッパは、物体の持ち上げ、保持、および持ち下げを伴うタスクを実行することができる。グリッパのフィンガは、物体を握持および/または解放するように互いに向けておよび互いから離れるように関節動作することができる。グリッパは、グリッパを制御するために様々なグリッパ寸法を決定するための複数の関心点を有することができる。例えば、グリッパについての関心点は、各フィンガについての内面上の点、各フィンガについての外面上の点、フィンガの内面同士を接続するグリッパの内面上の点、および各フィンガについての内面と外面を接続する端面上の点を含むことができる。
【0021】
[0026] 各フィンガについての内面上の点は、グリッパのフィンガの内側幅を決定するために使用することができる。各フィンガについての外面上の点は、グリッパのフィンガの外側幅を決定するために使用することができる。フィンガの内面同士を接続するグリッパの内面上の点、およびグリッパのフィンガの端面上の点は、グリッパのフィンガ長さを決定するために使用することができる。グリッパのフィンガ長さおよび内側幅は、どの物体をグリッパによってつかむことができるのかを決定するために使用することができる。グリッパは、これら2つの状態中のロボットポジションデータを蓄積するために最大内側幅と最小内側幅の間で作動することができる。次いで、ロボットポジションデータは、最大内側幅と最小内側幅を決定するために使用することができる。グリッパ上の他の関心点は、グリッパの他の寸法を計算するために決定することもできる。
【0022】
[0027] 次に図を参照すると、図1は、ロボットシステム100の構成例を示す。ロボットシステム100は、ロボティックアーム、様々なタイプのロボティックマニピュレータとすることができ、またはそれは、いくつかの異なる形態を有することができる。加えて、ロボットシステム100は、とりわけロボット装置、ロボティックマニピュレータ、またはロボットなどと呼ばれることもあり得る。
【0023】
[0028] ロボットシステム100は、プロセッサ102と、データストレージ104と、プログラム命令106と、コントローラ108と、センサ110と、電源112と、アクチュエータ114と、可動コンポーネント116とを備えることが示されている。ロボットシステム100は、本発明の範囲から逸脱することなく、ロボットシステム100が、追加のコンポーネントを含むことができ、および/または1つまたは複数のコンポーネントを取り除くことができるものとして例示の目的で示されているものに過ぎないことに留意されたい。さらに、ロボットシステム100の様々なコンポーネントは、任意のやり方で接続することができることに留意されたい。
【0024】
[0029] プロセッサ102は、汎用プロセッサまたは特定目的プロセッサ(例えば、デジタル信号プロセッサ、特定用途向け集積回路など)であり得る。プロセッサ102は、データストレージ104に記憶されているとともに、本明細書中に記載されたロボットシステム100の機能性を与えるように実行可能であるコンピュータ可読プログラム命令106を実行するように構成することができる。例えば、プログラム命令106は、コントローラ108の機能性を与えるように実行可能とすることができ、ここで、コントローラ108は、1つまたは複数の可動コンポーネント116の移動を引き起こすようアクチュエータ114を命令するように構成することができる。
【0025】
[0030] データストレージ104は、プロセッサ102によって読み込みまたはアクセスすることができる1つまたは複数のコンピュータ可読記憶媒体を含むことができるまたはその形態をとることができる。1つまたは複数のコンピュータ可読記憶媒体は、光、磁気、有機、または他のメモリまたはディスクストレージなどの揮発性および/または不揮発性記憶コンポーネントを含むことができ、これは、プロセッサ102と全部または一部において一体化することができる。いくつかの実施形態では、データストレージ104は、単一の物理的装置(例えば、1つの光、磁気、有機、または他のメモリまたはディスクストレージユニット)を用いて実現することができ、一方、他の実施形態では、データストレージ104は、2つ以上の物理的装置を用いて実現することができる。さらに、コンピュータ可読プログラム命令106に加えて、データストレージ104は、他の実現可能なものの中でも診断データなどの追加のデータを含むことができる。
【0026】
[0031] ロボットシステム100は、他の実現可能なものの中でも力センサ、近接センサ、運動センサ、荷重センサ、ポジションセンサ、タッチセンサ、深度センサ、超音波距離センサ、および赤外線センサ等の1つまたは複数のセンサ110を含み得る。センサ110は、ロボットシステム100が環境に及ぼす適切な相互作用を可能にするようにセンサデータをプロセッサ102に供給することができる。加えて、センサデータは、さらに後述するように、フィードバックを与えるために様々なファクタの評価に使用することができる。さらに、ロボットシステム100は、ロボットシステム100の様々なコンポーネントに電力を供給するように構成された1つまたは複数の電源112を備えることもできる。例えば、ガソリンエンジン、またはバッテリなどの任意のタイプの電源を使用することができる。
【0027】
[0032] ロボットシステム100は、1つまたは複数のアクチュエータ114を備えることもできる。アクチュエータは、機械的運動を導入するために使用することができる機構である。詳細には、アクチュエータは、蓄えられたエネルギーを1つまたは複数のコンポーネントの移動に変換するように構成することができる。アクチュエータに動力を供給するために様々な機構が使用され得る。例えば、アクチュエータは、他の実現可能なものの中でも、化学物質、圧縮空気、または電気などによって動力を供給することができる。場合によっては、アクチュエータは、回転の運動形態(例えば、ロボットシステム100内の関節)を含むシステムに使用することができる回転式アクチュエータであってもよい。他の場合には、アクチュエータは、直線運動を伴うシステムに使用することができるリニアアクチュエータであり得る。
【0028】
[0033] どちらの場合にも、アクチュエータ114は、ロボットシステム100様々な可動コンポーネント116の移動を引き起こすことができる。可動コンポーネント116は、ロボティックアーム、脚、および/またはハンド等の付属物を含み得る。可動コンポーネント116は、可動基部、ホイール、および/またはエンドエフェクタなども含み得る。
【0029】
[0034] いくつかの実施では、コンピューティングシステム(図示せず)は、ロボットシステム100に結合することができるとともに、グラフィカルユーザインタフェースなどを介してユーザから入力を受け取るように構成することができる。このコンピューティングシステムは、ロボットシステム100内に組み込みことができ、またはロボットシステム100と(有線または無線)通信することができる外部コンピューティングシステムとすることができる。したがって、ロボットシステム100は、他の実現可能なものの中でも、グラフィカルユーザインタフェースにおけるユーザ入力、および/またはロボットシステム100上のボタンの押下(または触覚入力)を介して受け取られるユーザ入力等に基づいて情報および命令を受信することができる。
【0030】
[0035] ロボットシステム100は、様々な形態をとることができる。例示するために、図2Aおよび図2Bは、例示のロボティックアーム200を示す。図示の通り、ロボティックアーム200は、固定基部とすることができるまたは可動基部とすることができる基部202を備える。可動基部の場合、基部202は、可動コンポーネント116の1つとみなすことができ、アクチュエータ114のうち1つまたは複数によって動力が供給されるホイール(図示せず)を備えることができ、これによってロボティックアーム200全体の移動性を可能にする。
【0031】
[0036] 加えて、ロボティックアーム200は、アクチュエータ114の1つまたは複数にそれぞれ結合された関節204A〜204Fを備える。関節204A〜204Fにおけるアクチュエータは、付属物206A〜206Fおよび/またはエンドエフェクタ208などの様々な可動コンポーネント116を移動させるように動作することができる。例えば、関節204Fにおけるアクチュエータは、付属物206Fおよびエンドエフェクタ208を移動させることができる(すなわち、エンドエフェクタ208が付属物206Fに結合されるからである)。さらに、エンドエフェクタ208は、様々な形態をとることができるとともに、様々な部品を含むことができる。一例では、エンドエフェクタ208は、図2Aに示されるような2フィンガ平行グリッパなどのグリッパ、異なるタイプのフィンガグリッパ、または吸引グリッパなどの異なるタイプのグリッパの形態をとることができる。別の例では、エフェクタ208Bは、図2Bに示されるようなシリンジ、または何らかの他のツール(例えば、ドリル、ブラシなど)の形態をとることができる。シリンジ208Bは、シリンジの針の端に設けられた関心点210を有することができる。さらに別の例では、エンドエフェクタは、力センサ、位置センサ、および/または近接センサなどのセンサを含み得る。他の例も可能であり得る。
【0032】
[0037] 例示の実施では、ロボティックアーム200などのロボットシステム100は、教示モードで動作することが可能であり得る。詳細には、教示モードは、ユーザが、様々な移動を実行し記録する方にロボティックアーム200と物理的に相互作用し案内することを可能にするロボティックアーム200の動作モードであり得る。教示用モードでは、特定のタスクを実行する仕方に関してロボットシステムを教示するように意図されている教示用入力に基づいて、外力が(例えば、ユーザによって)ロボットシステム100へ加えられる。このようにして、ロボティックアーム200は、ユーザからの命令およびガイダンスに基づいて特定のタスクを実行する仕方に関してのデータを得ることができる。そのようなデータは、他の実現可能なものの中でも、可動コンポーネント116の複数の構成、関節ポジションデータ、速度データ、加速度データ、トルクデータ、力データ、および電力データ等に関連し得る。
【0033】
[0038] 例えば、教示モード中、ユーザは、ロボティックアーム200の任意の部分を把持し、ロボティックアーム200を物理的に移動することによって外力を与えることができる。詳細には、ユーザは、物体を把持している方へロボティックアーム200を案内し、次いで第1の位置から第2の位置まで物体を移動させることができる。ユーザが教示モード中にロボティックアーム200を案内するとき、システムは、独立動作中(例えば、ロボティックアーム200が教示モード以外で独立して動作するとき)の将来の時点でロボティックアーム200がタスクを独立して実行するように構成することができるように、移動に関連したデータを得て記録することができる。しかしながら、この外力は、他の実現可能なものの中でも、他の物体、機械、および/またはロボットシステム等による物理的作業空間内の他の存在によって加えることもできることに留意されたい。
【0034】
[0039] 図2Aおよび図2Bでは、ツール208(またはツール208B)は、ロボティックアーム200に取り付けられたグリッパ、シリンジ、または何らかの他のタイプのツールであり得る。ツール208は、取り付け点209でアーム200に取り付けることができる。取り付け点209は、ツール208がロボティックアーム200などのロボット100の一部に接続することができる位置を表す。取り付け点209の位置は、ロボット100によって知ることができる。代替として、取り付け点209は、ロボット100によって一部知られていてもよく、または知られていなくてもよい。いくつかの実施形態では、取り付け点209は、ツール208がロボット100の異なる一部に取り付けることができる位置を表す。
【0035】
[0040] 図2Aは、第1の面214および第2の面216を備える基準物体212を示す。第1の面214および第2の面216は、縁218を作り出すようにある角度でともに接続されている。面214および216は、縁218と共に、ロボティックアーム200の付属物206Aから離れるように外に突出する。図2Aの基準物体212は、示されたものよりも多いまたは少ない面を備えてもよい。加えて、基準物体212の面は、図2Aに示されたものとは異なる角度で接続されてもよい。基準物体の示された面は平坦であるが、他の実施形態では、基準物体212の面は、凹形、凸形、または何らかの他の形状などの異なる形状であってもよい。
【0036】
[0041] 図2Bは、平坦である第1の面214Bを備える基準物体212Bを示す。基準物体212Bは、図2Bのロボティックアーム200から遠隔位置に設けられている。対照的に、図2Aの基準物体212は、ロボティックアーム200に基部202で接続されている。他の実施形態では、基準物体は、ロボットの異なる部分に接続されてもよく、またはロボティックアーム200に異なる位置で接続されてもよい。
【0037】
[0042] 基準物体212(または212B)は、ツール208についてのツールオフセットを決定するためにロボット100によって使用され得る。いくつかの実施形態では、ロボット100は、基準物体を自動的に特定することができる。他の実施形態では、基準物体は、ロボット100に入力され得る。基準物体は、ポジションおよび向きが予め決定されている剛体構造(例えば、厚板)とすることができる。基準物体のポジションおよび/または向きは、ロボット100に対して記述することができる。
【0038】
[0043] さらに、基準物体の1つまたは複数の面は、予め決定された向きとともに予め決定されたポジションで設けることができる。加えて、基準物体の面は、1つまたは複数の縁および1つまたは複数の角度を生むことができる。基準物体、基準物体表面、および基準物体縁の向き、ポジション、および/または角度についての情報は、ロボット100の入力することができる。ロボットに対しての基準物体のポジションは、ツールオフセットデータを決定するためにロボットポジションデータと共に使用することができる。
【0039】
[0044] 基準物体のポジション情報は、XYZ座標系についてX方向の第1の寸法、Y方向の第2の寸法、およびZ方向の第3の寸法などの1つまたは複数の寸法を用いて記述することができる。他の実施形態では、基準物体についての他の情報は、ロボット100に入力することができる。いくつかの実施形態では、基準物体のポジションおよび/または向きが知られていない場合、ロボット100は、基準物体のポジションおよび向きを決定することができる。
【0040】
[0045] 基準物体は、ロボットアーム200の移動などのロボットの動作を妨げないポジションに設けられた剛体構造とすることができる。基準物体は、厚板とすることができるが、基準物体は、ツーリングボールなどの異なる物品であってもよい。さらに、基準物体は、1つまたは複数の厚板、1つまたは複数のツーリングボール、または何らかの他の物品を含み得る。他のタイプの基準物体も可能であり得る。
【0041】
[0046] ロボット100は、ロボット100にロボットアーム200の取り付け点209などの位置で取り付けられたツール208についてのツールオフセットを決定する方法を実行することができる。ツールオフセットは、取り付け点209とツール208上の少なくとも1つの点の間の距離を説明することができる。ツールオフセットは、1つまたは複数の寸法を用いて位置として表現することができる。例えば、ツールオフセットは、XYZ座標系についてX方向の第1の寸法、Y方向の第2の寸法、およびZ方向の第3の寸法などの1つまたは複数の寸法を用いて記述することができる。角度オフセットθなどの他の寸法も可能であり得る。
【0042】
[0047] 場合によっては、ロボット100は、ツール上の関心点の位置を決定するために、取り付け点の知られている位置に基づいてツールオフセットデータを決定することができる。代替として、ロボット100は、取り付け点のより精密な位置を決定するために、ツールの知られている幾何学的形状に基づいてツールオフセットデータを決定することができる。この筋書では、取り付け点の精密な位置が決定されると、次いで、ロボット100は、取り付け点の決定した精密な位置に基づいて、ロボット100に対してツール上の1つまたは複数の関心点の位置を決定することができる。
【0043】
[0048] ロボット100は、新しいツールがロボティックアーム200などのロボット100の一部に取り付けられるとき、自動起動手順としてツールオフセットを決定する方法を実行することができる。代替として、ツールオフセット決定方法は、トラブルシューティング方法の一部として実行されてもよい。例えば、ツール208の動作中にエラーまたは予期せぬ結果が生じる場合、ロボット100は、エラーおよび/または予期せぬ結果を補正するために、自動ツールオフセット決定方法を実行することができる。
【0044】
[0049] いっそうさらに、ロボット100は、自動保守手順としてツールオフセット決定方法を実行することができる。例えば、ツールの寸法は、先の使用による摩耗および引裂き、曲がり、歪み、ならびに/または他の理由により、時が経つにつれて変化し得る。結果として、周期的にツールオフセット決定方法を実行することによって、ロボットが正確かつ精密なツールオフセットを用いてツール208を動作させているようにツールの寸法の変化を説明することができる。他の実施形態では、ロボット100は、他の理由のために、自動ツールオフセット決定方法を実行することができる。
【0045】
[0050] 自動ツールオフセット決定方法は、ツールオフセットをロボット100に手入力することを上回るいくつかの改善をもたらすことができる。第1に、自動化された方法は、手入力よりも正確かつ精密であり得る。第2に、自動化された方法は、より迅速、より効率的、および手入力よりもユーザが実行するよりも少ない仕事であり得る。第3に、自動化された手順は、ユーザに関わらず一貫したツールオフセット決定手順であり得るのに対し、手入力は、ユーザに基づいて変わり得る。第4に、自動化されたツールオフセット決定プロセスは、ユーザがツールオフセットを決定する正確かつ精密な方法を知っている必要がないことを意味する。他の利益も、ツールオフセットを決定する自動化された手順を実行することから存在し得る。
【0046】
[0051] ロボット100は、基準物体を特定することによってツールオフセット決定方法の実行を開始することができる。次に、ロボット100は、ツール208を基準物体212に接触させ、接触イベント中のロボットポジションデータおよび力検知データを得るようにロボティックアーム200を移動させることができる。次いで、ロボット100は、ロボットポジションデータに基づいてツールオフセットデータの一部を決定することができる。ロボット100は、接触イベントを反復して発生させ、接触イベント中のロボットポジションデータおよび力検知データを取得することによって、ツールオフセットデータの追加部分を決定し続けることができる。次いで、ツールオフセットデータの決定された部分を使用して、ロボットに対しての1つまたは複数の関心点の位置を決定することができる。次いで、1つまたは複数の寸法および/またはツールオフセットは、関心点の位置に基づいて決定することができる。決定される寸法および関心点は、ツールタイプ(例えば、グリッパ、シリンジ、ドリル、ブラシなど)に基づいて様々であり得る。
【0047】
[0052] 図3Aは、(図2Aからの)例示のツール208、ならびに面214および216と縁218とを備える基準物体212の平面図300を示す。図3Bは、(図2Aからの)同じ例示のツール208、および基準物体212の側面図350を示す。ツール208は、2フィンガ平行グリッパである。表示された実施形態では、様々な関心点が、様々な寸法および/またはツールオフセットを決定するために計算され得るグリッパについて示されている。
【0048】
[0053] 図3Aおよび図3Bの表示された実施形態では、グリッパ208は、第1のフィンガ301と、第2のフィンガ302と、接続部303と、取り付け点209とを備える。グリッパ208は、基準物体212に向けて作動方向304に沿って移動させられる。計算され得るグリッパの寸法の一部は、外側幅寸法305、内側幅寸法306、外側の長さ寸法307、内側の長さ寸法308、および高さ寸法309を含む。グリッパ208は、計算される他の寸法を有してもよい。
【0049】
[0054] 第1のフィンガ301は、内面311と、外面312と、上面313とを備える。同様に、第2のフィンガ302は、内面321と、外面322と、上面323と、底面324とを備える。さらに、接続部303は、内面331と、外面332と、上面333とを備える。各フィンガおよび/または接続部は、上記のものよりも多いおよび/または上記のものとは異なる面を備えてもよい。
【0050】
[0055] グリッパ208は、様々な関心点も備える。関心点は、第1のフィンガ301の第1の点341、第1のフィンガ301の第2の点343、第2のフィンガ302の第1の点342、第2のフィンガ302の第2の点344、および第2のフィンガ302の第3の点348を含む。接続部303は、グリッパ208について第1の点345、第2の点346、および第3の点347も含む。グリッパ208についての他の関心点も可能であり得る。
【0051】
[0056] 第1のフィンガ301については、第1の点341は、第1のフィンガ301の上面313と内面311が交差する隅に位置する。第2の点343は、第1のフィンガ301の上面313と外面312が交差する隅に位置する。第2のフィンガ302については、第1の点342は、上面323と内面321が交差する隅に位置する。第2の点344は、第2のフィンガ302の上面323と外面322が交差する隅に位置する。第3の点348は、第2のフィンガ302の外面322と底面324が交差する隅に位置する。
【0052】
[0057] 接続部303については、第1の点345は、接続部303の内面331と第1のフィンガ301の内面311が接続部303の上面333に沿って交差する隅に位置する。第2の点346は、接続部303の内面331と第2のフィンガ302の内面321が接続部303の上面333に沿って交差する隅に位置する。第3の点347は、第2のフィンガ302の外面322と接続部303の外面332が接続部303の上面333に沿って交差する隅に位置する。
【0053】
[0058] グリッパ208の正確かつ精密な制御を実行するために、ロボット100は、グリッパ208についての様々な関心点に基づいて寸法およびツールオフセットを決定することができる。例えば、寸法305〜309は、1つまたは複数の関心点341〜348に基づいてロボット100によって決定することができる。詳細には、外側幅寸法305は、点343および344の位置に基づいて決定することができる。内側幅寸法306は、点341および342(または345および346)の位置に基づいて計算することができる。外側の長さ寸法307は、点344および347の位置に基づいて決定することができる。内側のフィンガ長さ寸法308は、点341および345(または点342および346)に基づいて決定することができる。高さ寸法309は、点344および348の位置に基づいて決定することができる。各点についての位置は、関心点についてツールオフセット決定方法を実行することによってロボット100によって決定することができる。
【0054】
[0059] 図3Aおよび図3Bは、XYZ座標系についてX、Y、およびZ方向を示す凡例351および352を含む。表示された実施形態では、幅寸法305および306は、X方向に沿った距離を記述することができる。加えて、長さ寸法307および308は、Y方向に沿った距離を記述することができる。さらに、作動方向304も、Y方向に沿ったものであり得る。また、高さ寸法309は、Z方向に沿った距離を説明することができる。しかしながら、他の実施形態では、寸法は、異なる方向に沿って距離を説明することができる。
【0055】
[0060] ツールオフセットを決定する自動プロセスの一部として、ロボット100は、ツール208を基準物体212に接触させることによって1つまたは複数の接触イベントを発生させるようにツール208を制御することができる。接触イベントは、ツール208が基準物体212に接触するようにロボット100に接続されたツール208が移動させられるときに生じる。接触イベント中、ロボット100は、ロボットポジションデータ、力検知データ、およびまたは他の情報を含むデータを収集することができる。ロボット100は、少なくとも第1の接触イベントを含む1回または複数回だけ基準物体212に接触するようにツール208を移動させることができる。
【0056】
[0061] ツール208が基準物体212に接触するとき、ロボットは、ツール208の移動を停止することができ、それによってツール208を基準物体212が接触したままになるとともにデータを収集することを可能にする。次いで、ロボット100は、ツール208が基準物体212にもはや接触しないポジションへツール208を移動することができる。接触イベントは、最初にツール208が基準物体212と継続的接触するときに開始し、基準物体212との継続的接触が終わるときに終了する。しかしながら、他の実施形態では、接触イベントを異なったように定めてもよい。
【0057】
[0062] 力検知データは、力フィードバックセンサを介してロボット100によって取得される。力フィードバックセンサは、取り付け点209でロボットに設けることができ、または何らかの他の点でロボット100に設けることができる。力フィードバックセンサは、ツール208が基準物体212に接触しているときの指示を与えるように使用される。センサは、接触イベントの精密かつ正確な測定値を得ることができるようにセンサが受ける力に敏感であるように設計され得る。接触イベントの精密かつ正確な測定値は、ロボットが精密かつ正確なツールオフセットを決定することを可能にし、これはツール208の精密かつ正確な制御を可能にする。
【0058】
[0063] 力フィードバックセンサが、ツール208が基準物体212に接触していることを示すデータを受信すると、センサは、ロボット100がツール208の移動を停止するとともに、ロボット100がデータを集めることを可能にする。ロボットの移動を中断することによって、力センサは、ツール208、基準物体212、ロボット100、およびロボティックアーム200が、反復的な接触または過度の接触による何らかの追加の損傷を受けるのを防ぐのを助ける。
【0059】
[0064] 代替の実施形態では、接触イベントの指示は、接触イベント電気回路が作られる(または壊される)ことに対応し得る。具体的には、接触イベント電気回路は、ツール208が基準物体212に接触するときに作られ(または壊され)得る。したがって、接触イベント電気回路が作られる(または壊される)との指示は、ツール208が基準物体212に接触することによって開始する接触イベントに対応し得る。接触イベントが終わる(すなわち、ツール208は、基準物体212にもはや接触しない)とき、接触イベント電気回路は、その元の開いた(または閉じた)状態に戻ることができる。接触イベントを決定する他の実施形態も可能であり得る。
【0060】
[0065] 接触イベント中、ロボット100は、接触イベント中のロボットのポジションを示すロボットポジションデータを得ることもできる。ロボットポジションデータは、接触イベント中のロボットのエンコードされた関節角に基づいて決定することができる。エンコードされた関節角および/または他の情報は、ロボット100、ロボティックアーム200、取り付け点209、または決定されるロボットの他の部分のポジション、位置、および/または向きを与えることができる。ロボットポジションデータを得るために、ロボット100に取り付けられたIMUセンサが使用され得る。ロボットポジションデータは、ツールオフセットデータの一部を決定するために、ロボットに対しての基準物体のポジションと組み合わせて使用することができる。
【0061】
[0066] 1つまたは複数の接触イベントを発生させることによって、ツールオフセットデータの一部は、ツール208について決定することができる。ツールオフセットデータは、取得されたロボットポジションデータ、ロボットに対しての基準物体のポジション、および場合によっては、先に決定されたツールオフセットデータに基づいて決定することができる。他のファクタも、ツールオフセットデータの決定に影響を及ぼし得る。
【0062】
[0067] 外側の長さ寸法307は、取り付け点209に関して点344および347についてのツールオフセットデータを用いて決定することができる。表示された実施形態では、取り付け点209の位置は、ロボット100によって知られる。取り付け点209は、接続部303の外面332のほぼ中央に位置することができる。加えて、基準物体212、面214および216、ならびに縁218の位置および向きは、ロボット100によって知られる。したがって、点344および347についてのツールオフセットデータは、取り付け点209および基準物体212についての知られている位置および向きに基づいて決定することができる。
【0063】
[0068] 点についてのツールオフセットデータは、取り付け点209に対してのXYZ座標系上の点(X,Y,Z)として記述することができる。点についてのツールオフセットデータの決定は、取り付け点209に対しての特定の点についての3つのツールオフセットの寸法(X、Y、およびZ)の各々を決定することを含み得る。取り付け点に対しての特定の点についてのツールオフセットの寸法は、接触イベントを発生させるための作動方向304に沿ったグリッパの移動がロボットポジションデータに基づくツールオフセットの寸法の計算を可能にするようにグリッパを向けることによって決定することができる。
【0064】
[0069] 例えば、点347についてのツールオフセットデータを決定することは、取り付け点209に対しての点347についてのツールオフセットの寸法X、Y、およびZを決定することを含む。点347についてのツールオフセットのX寸法は、第2のフィンガ302の外面322が接触イベント中に基準物体212の縁218に接触するように方向304に沿ってグリッパ208を移動させることによって決定することができる。加えて、点347についてのツールオフセットのY寸法は、接続部303の外面332が接触イベント中に基準物体212の縁218に接触するように方向304に沿ってグリッパ208を移動させることによって決定することができる。さらに、点347についてのツールオフセットのZ寸法は、第2のフィンガ302の上面323が接触イベント中に基準物体212の縁218に接触するように方向304に沿ってグリッパ208を移動させることによって決定することができる。
【0065】
[0070] 特定の点についてのツールオフセットの寸法X、Y、およびZは、接触イベント中に計算することができる。詳細には、グリッパがY方向に対応する方向304に沿って移動している接触イベントについて、特定のツールオフセットの寸法は、基準物体位置、取り付け点位置、および基準物体に接触するグリッパ208の部分に基づいて決定することができる。具体的には、ツールオフセットの寸法の大きさは、接触イベント中の基準物体と取り付け点の各位置のY座標の差に等しい。決定される特定の寸法は、接触イベント中にグリッパのどの面が基準物体212に接触しているのか次第である。
【0066】
[0071] 例えば、点347については、ツールオフセットのX寸法は、第2のフィンガ302の外面322が基準物体212の縁218に接触する接触イベント中に計算される。ツールオフセットのX寸法の大きさは、接触イベント中の縁218と取り付け点209の各位置のY座標の差に等しい。ロボット100は、接触イベント中の取り付け点209の位置を決定することができる。いくつかの実施形態では、取り付け点209の位置は、接触イベント中のエンコードされた関節角に基づいて決定される。より早く述べたように、ロボット100は、縁218を含む基準物体212の位置をすでに知っている。この接触イベント中、Y座標の差は、外側幅寸法305の半分(すなわち、W/2)に等しい。したがって、取り付け点209に対しての点347についてのツールオフセットのX寸法は、W/2である。
【0067】
[0072] 加えて、ツールオフセットのY寸法は、接続部303の外面332が基準物体212の縁218に接触する接触イベント中に計算される。この接触イベント中、基準物体212の縁218および取り付け点209のY座標の差は、ゼロに等しい。したがって、取り付け点209に対しての点347についてのツールオフセットのY寸法は、ゼロである。
【0068】
[0073] さらに、ツールオフセットのZ寸法は、第2のフィンガ302の上面323が基準物体212の縁218に接触する接触イベント中に計算される。この接触イベント中、基準物体212の縁218と取り付け点209のY座標の差は、グリッパ208の高さ309の半分(すなわち、H/2)に等しい。したがって、取り付け点209に対しての点247についてのツールオフセットのZ寸法は、H/2である。したがって、取り付け点209に対しての点347についてのツールオフセットデータは、(W/2,0,H/2)に等しい。
【0069】
[0074] 取り付け点209に対しての点344についてのツールオフセットデータは、上述した点347のツールオフセットデータの決定と同様のやり方で決定することができる。点344および347についてのツールオフセットデータが決定されると、グリッパ208の外側の長さ寸法307が計算することができる。同様に、他の関心点341〜348についてのツールオフセットデータは、取り付け点209に対して決定することができる。次いで、計算されたツールオフセットデータは、グリッパ寸法305〜309を決定するために使用することができる。
【0070】
[0075] いくつかの実施形態では、ロボット100は、接触イベントを開始する前に、ツール208を用いて基準物体212を探索することができる。ロボット100は、基準物体を探索するために基準物体の知られている位置および向きに基づいてツール208を移動させることができる。ロボット100がツール208を用いて基準物体212を探索、発見、および接触したら、接触イベントを開始することができる。
【0071】
[0076] 例えば、ロボットが取り付け点209に対しての点347についてのツールオフセットデータを決定しているとき、ロボット100は、縁218で基準物体212に接触するようにツール208を制御することができる。しかしながら、ツールは、最初に面214または216で基準物体212に接触することができる。したがって、ロボット100は、縁218を探索するようにツール208を制御しなければならない場合がある。
【0072】
[0077] ロボット100は、基準物体212の位置および向きを知っているので、ロボット100は、縁218が見つかるまで面214および/または面216に沿ってツール208を移動させることによって縁218を探索することができる。ロボット100は、それが面214と面216の間の角度トランジションを検知すると、縁218が見つかったことを知る。ロボットが縁218に接触していると、接触イベントが開始され得る。ロボットは、縁218との終点接点までツールを移動させる前に、ロボットポジションデータおよび力検知データを収集することができる。ツール208による他のタイプの探索も可能であり得る。
【0073】
[0078] 基準物体212が、角度付きの面214および216を備えるので、ロボットは、ツールオフセットデータを決定するために様々なタイプの接触イベントを使用することができる。例えば、ロボット100は、グリッパの特定の寸法を決定するために、基準物体212の2つの点で1つの接触イベントを発生させるようにグリッパ218を制御することができる。具体的には、ロボットアーム200は、点341を面214に接触させるとともに、同時に点342を面216に接触させるようにグリッパ208を移動させることによって接触イベントを発生させることができる。この接触イベント中、ロボット100は、グリッパ208の内側幅寸法306を決定するために、ロボットポジションデータを得ることができる。
【0074】
[0079] 最初に、グリッパ208は、基準物体212に向けて方向304に沿って移動させられ得る。グリッパ208が基準物体212に接触した後、グリッパは、点341が面214に接触するとともに、同時に点342が面216に接触するように、基準物体を探索することができる。詳細には、グリッパ208は、適切な点が適切な面に接触しているまで、基準物体212のまわりでグリッパ208を移動させることができる。点341が面214に接触しているとともに、同時に点342が面216に接触していると、ロボット100は、グリッパ208の移動を停止させ、ロボットポジションデータを得ることができる。
【0075】
[0080] 得られたロボットポジションデータは、グリッパ208の内側幅寸法306を決定するために、知られている基準物体位置および向きと組み合わせて使用することができる。具体的には、ロボットポジションデータは、接触イベント中の取り付け点209のポジションを決定するために、エンコードされた関節角を頼ることができる。決定された取り付け点のポジション、基準物体位置および向き、ならびに先に得られたツールオフセットデータ(例えば、グリッパ208の外側の長さ寸法307)に基づいて、次いで、ロボットは、面214との接触中の点341の位置、および面216との接触中の点342の位置を決定することができる。これらの決定された位置を用いて、次いで、ロボットは、グリッパ208の内側幅寸法306を計算することができる。他の実施形態では、ロボット100は、異なるツールオフセットデータを得るために、異なるツールオフセット決定方法を用いることができる。
【0076】
[0081] ツールオフセットの決定に使用される関心点は、ロボット100に取り付けられたツール208のタイプに依存している。例えば、図2Bでは、ロボット100のロボティックアーム200は、エンドエフェクタ208Bとしてシリンジを備えて示されている。2フィンガ平行グリッパとは違って、シリンジについての関心点210は、針の先端である。ロボット100は、ツールオフセット決定方法を実行して、取り付け点209に対して点210の位置を決定することができる。点210についてのツールオフセットデータの決定は、ロボット100によるシリンジ208Bの正確かつ精密な制御を可能にする。
【0077】
[0082] ロボット100は、点347について説明されたものと同様の方法を用いてシリンジ208Bの点210についてのツールオフセットデータを決定することができる。詳細には、点210についてのツールオフセットデータは、取り付け点209に対して決定される。ツールオフセットの寸法X、Y、およびZは、取り付け点209に対して点210について決定される。シリンジ208の針は、グリッパ208のような面を有さないが、ロボティックアーム200は、ツールオフセットの寸法X、Y、およびZが点210について測定され得るように、シリンジ針の異なる部分が接触イベント中に基準物体212に接触することを可能にするように適切な向きへ回転することができる。ツールオフセットデータの決定のために、他のツールタイプおよび関心点も可能であり得る。
【0078】
[0083] 他の実施形態では、ロボットは、ツールについてのツールオフセットデータを継続的に得るために、複数の接触イベントを反復して発生させることができる。一実施形態では、ロボットは、取り付けられたツールの3Dモデルを生成するのに十分な関心点についての十分なツールオフセットデータを決定するのに十分な接触イベントを反復して発生させる。ツールオフセット決定方法の他の実施形態も可能である。
【0079】
[0084] 図4は、例示の実施形態によるツールオフセットを決定することを可能にすることができる方法400を示す流れ図を示す。方法400は、図1に関して図示および説明されたロボットなどのロボットによって実施することができる。しかしながら、ロボット制御システム、または図1に記載されたロボットとは異なる何らかの他の装置も、方法400を実施することができる。
【0080】
[0085] さらに、本明細書中に記載された流れ図と共に説明される機能性は、図4に示された流れ図と共に説明される特定の論理機能、決定、および/または工程を実現するために、特定機能および/または設定された汎用機能のハードウェアモジュール、プロセッサによって実行されるプログラムコードの一部として実施することができることに留意されたい。使用される場合、プログラムコードは、任意のタイプのコンピュータ可読媒体、例えば、ディスクまたはハードドライブを含む記憶装置などに記憶することができる。
【0081】
[0086] 加えて、図4に示された流れ図の各ブロックは、プロセス内の特定の論理機能を実行するように配線されている回路構成を表すことができる。特に示されない限り、図4に示された流れ図の機能は、記載された方法の機能性全体が維持される限り、含まれる機能性に応じて、いくつかの例では別個に記載された機能をほぼ同時に実行することまたは逆の順序でも実行することを含めて図示または説明されたものとは異なる順序で実行することができる。
【0082】
[0087] 図4のブロック402によって示されるように、方法400は、ロボットに対しての基準物体のポジションを決定するステップを伴うことができる。いくつかの例では、基準物体は、1つまたは複数の平坦面を有する剛体構造とすることができる。追加の例では、基準物体は、ロボットから遠隔位置にあってもよく、またはロボットに取り付けられてもよい。
【0083】
[0088] 方法400は、図4のブロック404によって示されるように、ロボットに取り付け点で接続されたツールが第1の接触イベント中に基準物体に接触するようにロボットを制御するステップをさらに含むことができる。いくつかの例では、ロボットに接続されているツールは、2フィンガ平行グリッパ、シリンジ、ドリル、ブラシ、または何らかの他のツールとすることができる。追加の例では、取り付け点位置は、ロボットによって知られている、一部知られている、または知られていないものである得る。
【0084】
[0089] 方法400は、図4のブロック406によって示されるように、第1の接触イベント中にツールが基準物体に接触するときにロボットのポジションを示すロボットポジションデータを受信するステップを含むこともできる。いくつかの例では、ロボットポジションデータは、第1の接触イベント中のロボットのエンコードされた関節角に基づいて決定することができる。追加の例では、エンコードされた関節角は、ロボットおよび/またはロボット部品のポジション、位置、または向きを決定するために使用することができる。
【0085】
[0090] 方法400は、図4のブロック408によって示されるように、ロボットに対しての基準物体のポジションおよびロボットポジションデータに少なくとも基づいてツールについてのツールオフセットデータを決定するステップをさらに含むことができ、ただし、ツールについてのツールオフセットデータは、取り付け点とツール上の少なくとも1つの点の間の距離を記述する。いくつかの例では、ツールオフセットデータは、ツール上の関心点と取り付け点の間の距離に基づいてツールの寸法(例えば、ツール長さ)を記述することができる。追加の例では、2フィンガ平行グリッパなどのツールオフセットデータを決定することができるツールについての複数の関心点が存在することができる。さらなる例では、シリンジなどについてのツールオフセットデータが決定される1つだけの関心点が存在してもよい。追加の一例では、ツールオフセットデータが決定されるシリンジの関心点は、シリンジの針の端とすることができる。
【0086】
[0091] 本開示のシステムおよび方法にとって、ツールを取り付けたロボットを用いる様々な応用および環境が可能である。例えば、ツールを取り付けたロボットについてのツールオフセットの決定が適用可能であり得るいくつかの環境には、製造設備、郵便または出荷設備、空港、病院、またはツールを取り付けたロボットを用いる他の環境が含まれる。さらに、ツールを取り付けたロボットについてのツールオフセットの決定が適用可能であり得る他の応用には、建設、出荷、製造、ヘルスケア、および/またはツールを取り付けたロボットを用いる他の応用が含まれる。本開示のシステムおよび方法についての他の適用可能な環境および応用も可能であり得る。
【0087】
[0092] 本開示は、様々な態様の例示として意図されている本出願に記載された特定の実施形態の観点に限定されるべきではない。多くの修正および変形は、当業者にとって明らかであるので、本開示の趣旨および範囲から逸脱することなくなされてもよい。本開示の範囲内の機能的に均等な方法および装置は、本明細書中に挙げられたものに加えて、前述の説明から当業者に明らかであろう。そのような修正および変形は、添付の特許請求の範囲内に含まれることが意図される。
【0088】
[0093] 上記の発明を実施するための形態は、開示されたシステム、装置、および方法の様々な特徴および機能を、添付図面を参照して説明する。各図において、文脈上別段の指示がない限り、典型的には同様の記号は、同様の構成要素を特定する。本明細書および図面に記載された例示の実施形態は、限定していることを意図していない。本明細書中に提示された主題の趣旨または範囲から逸脱することなく、他の実施形態が利用されてもよく、他の変更がなされてもよい。概して本明細書中に説明されるおよび図に示されるような本開示の態様は、幅広い種類の異なる構成にアレンジ、置換、組み合わせ、分離、および設計されてもよく、それらの全ては本明細書中で明確に考えられることが容易に理解されよう。
【0089】
[0094] 情報処理を表すブロックは、本明細書中に記載した方法または技法の特定の論理機能を実行するように構成され得る回路構成に対応し得る。代替としてまたは加えて、情報処理を表すブロックは、モジュール、セグメント、または(関連データを含む)プログラムコードの一部に対応し得る。プログラムコードは、上記方法もしくは技法における特定の論理機能または操作を実施するためのプロセッサによって実行可能な1つまたは複数の命令を含むことができる。プログラムコードおよび/または関連データは、ディスクもしくはハードドライブ、または他の記憶媒体を含む記憶装置などの任意のタイプのコンピュータ可読媒体に記憶することができる。
【0090】
[0095] コンピュータ可読媒体は、レジスタメモリ、プロセッサキャッシュ、およびランダムアクセスメモリ(RAM)のような短期間にわたってデータを記憶するコンピュータ可読媒体などの非一時的なコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、例えば、リードオンリメモリ(ROM)、光ディスクもしくは磁気ディスク、コンパクトディスクリードオンリメモリ(CD-ROM)のような二次または永続性長期ストレージなどのより長期間にわたってプログラムコードおよび/またはデータを記憶する非一時的なコンピュータ可読媒体も含み得る。コンピュータ可読媒体は、任意の他の揮発性または不揮発性記憶システムとすることもできる。コンピュータ可読媒体は、例えば、コンピュータ可読記憶媒体、または有形の記憶装置とみなされもよい。
【0091】
[0096] また、1つまたは複数の情報伝送を表すブロックは、同じ物理的装置内のソフトウェアおよび/またはハードウェアモジュール間の情報伝送に対応し得る。しかしながら、他の情報伝送が、異なる物理的装置内のソフトウェアモジュールおよび/またはハードウェアモジュール間にあってもよい。
【0092】
[0097] 図に示された特定の構成は、限定と見られるべきではない。他の実施形態は、所与の図に示された各要素をより多くまたはより少なく備えてもよいことを理解されたい。さらに、示された要素の一部が組み合わされたり、または省かれたりしてもよい。またさらに、例示の実施形態は、図に示されていない要素を備えてもよい。
【0093】
[0098] 様々な態様および実施形態を本明細書中に開示してきたが、他の態様および実施形態が、当業者には明らかであろう。本明細書中に開示された様々な態様および実施形態は、例示のためであり、限定していることを意図しておらず、真の範囲は、添付の特許請求の範囲によって示されている。
図1
図2A
図2B
図3A
図3B
図4