JP2021528259A - ロボットビンピッキングのためのシステム及び方法 - Google Patents

ロボットビンピッキングのためのシステム及び方法 Download PDF

Info

Publication number
JP2021528259A
JP2021528259A JP2020569995A JP2020569995A JP2021528259A JP 2021528259 A JP2021528259 A JP 2021528259A JP 2020569995 A JP2020569995 A JP 2020569995A JP 2020569995 A JP2020569995 A JP 2020569995A JP 2021528259 A JP2021528259 A JP 2021528259A
Authority
JP
Japan
Prior art keywords
robot
bin
candidate object
candidate
user interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2020569995A
Other languages
English (en)
Other versions
JP7437326B2 (ja
Inventor
エリック レンハルト トルーベンバッハ、
ダグラス イー. バーカー、
クリストファー トーマス アロイジオ、
エヴゲニー ポリャコフ、
チュ−イン チャン、
Original Assignee
テラダイン、 インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by テラダイン、 インコーポレイテッド filed Critical テラダイン、 インコーポレイテッド
Publication of JP2021528259A publication Critical patent/JP2021528259A/ja
Application granted granted Critical
Publication of JP7437326B2 publication Critical patent/JP7437326B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1674Programme controls characterised by safety, monitoring, diagnostic
    • B25J9/1676Avoiding collision or forbidden zones
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39138Calculate path of robots from path of point on gripped object
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39473Autonomous grasping, find, approach, grasp object, sensory motor coordination
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39484Locate, reach and grasp, visual guided grasping
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40053Pick 3-D object from pile of objects
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40607Fixed camera to observe workspace, object, workpiece, global
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/50Machine tool, machine tool null till machine tool work handling
    • G05B2219/50362Load unload with robot

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Manipulator (AREA)

Abstract

ロボットが選択するための1つ又は複数の候補対象物を識別する方法及びコンピューティングシステム。1つ又は複数の候補対象物までの経路は、少なくとも一部には、ロボット環境と、少なくとも1つのロボット拘束に基づいて特定されてよい。1つ又は複数の候補対象物のうちの第一の候補対象物を把持する実現可能性の妥当性が確認されてよい。実現可能性の妥当性が確認されると、ロボットはその第一の候補対象物を物理的に選択するように制御される。実現可能性の妥当性が確認されない場合、第一の候補対象物の異なる把持地点、第二の経路、又は第二の候補対象物の少なくとも1つが選択されてよい。

Description

関連出願の相互参照
本願は、2018年6月26日に出願された米国仮特許出願第62/690,186号の利益を主張するものであり、同仮出願の全内容のすべてを参照によって本願に援用する。
本発明は一般に、ロボット工学に関し、より詳しくはロボットビンピッキングのためのシステムと方法に関する。
ビン(容器)から一度に1つのワークを取り出して機械の中に移すこと、バルク部品の分別、及び注文履行といった特定の形態の手作業は、多大な労働力を要する。これらの仕事は、ワーク又は作業が重い、尖った部分がある、又はそれ以外に危害の及ぶ可能性のある場合には危険であることが多い。これらの問題に対処する試みとして、ビンピッキングロボットによるこのような冗漫な仕事への取り組みがなされている。しかしながら、ロボットビンピッキングは、求められる正確度と精度のレベルが、多くの場合、システムの能力を超えるため、マスタするのに特に困難なタスクである。
1つの実施例において、ロボットが選択するための1つ又は複数の候補対象物を識別するための方法。1つ又は複数の候補対象物までの経路は、少なくとも一部に、ロボット環境及び少なくとも1つのロボット制約に基づいて特定されてよい。1つ又は複数の候補対象物のうちの第一の候補対象物の把持の実現可能性の妥当性が確認されてよい。実現可能性の妥当性が確認されると、ロボットは、第一の候補対象物を物理的に選択するように制御されてよい。実現可能性の妥当性が確認されない場合、第一の候補対象物の異なる把持地点、第二の経路、又は第二の候補対象物のうちの少なくとも1つが選択されてよい。
以下の特徴のうちの1つ又は複数が含まれていてよい。妥当性を確認するステップは、ロボットの運動学モデルを使用するステップを含んでいてよい。経路は、実現可能経路又は最適経路の少なくとも一方であってよい。経路は、ロボットを制御しながらリアルタイムで特定されてよい。経路を特定するステップは、候補対象物に隣接する少なくとも1つの物体の1つ又は複数の表面に関する情報を使用するステップと、候補対象物に隣接するその少なくとも1つの物体との衝突を回避するステップを含んでいてよい。ロボット又は1つ若しくは複数の候補対象物の少なくとも一方は、グラフィカルユーザインタフェースに表示されてよい。グラフィカルユーザインタフェースにより、ユーザはロボット、経路特定、シミュレーション、ワークセル定義、性能パラメータの明示、又はセンサ構成のうちの少なくとも1つを視覚化し、又は制御することができてよい。グラフィカルユーザインタフェースにより、プログラムとプログラムに関連付けられるデバッグプロセスの同時生成が可能となってよい。グラフィカルユーザインタフェースは、ティーチペンダント、ハンドヘルド機器、パーソナルコンピュータ、又はロボットのうちの1つ又は複数に関連付けられてよい。スキャナを用いた1つ又は複数の静的及び動的対象物を含む環境の画像が提供されてよく、ロボットは、画像を受信し、画像を使用して環境を学習し、経路及び衝突回避を特定するように構成される。ロボットを制御するステップは、第一の候補対象物の第二のスキャンを実行するステップ、第一の候補対象物を、ある精度要求の固定位置を有する設置標的まで移動させるステップ、第一の候補対象物を操作するステップ、及び第一の候補対象物をその精度要求に従って設置標的まで送達するステップを含んでいてよい。ロボットを制御するステップは、第一の候補対象物をスキャナに提示して、第一の候補対象物上の1つ又は複数のフィーチャを最大限に利用して、第一の候補対象物の位置を精密に特定するステップを含んでいてよい。ロボットを制御するステップは、第一の候補対象物を、物理的選択が成功する可能性を最大化するような方法で位置特定し、ピックするステップを含んでいてよい。第二のスキャンは、スキャナの最大分解能エリアにおいて行われてよい。1つ又は複数の候補対象物までの経路を特定するステップは、少なくとも一部に、ロボットリンケージ又はロボットジョイントの限度の少なくとも一方に基づいていてよい。1つ又は複数の候補対象物以外の非選択コンポーネント及び非選択表面のすべてにわたるシュリンクラップ可視化が、グラフィカルユーザインタフェースに表示されてよい。識別するステップ、特定するステップ、妥当性を確認するステップ、又は制御するステップの少なくとも1つは、一次プロセッサと少なくとも1つのコプロセッサのうちの少なくとも1つを使って実行されてよい。1つ又は複数の候補対象物までの経路を特定するステップは、少なくとも一部に、大域的経路計画及と局所的経路計画の少なくとも一方に基づいていてよい。第一の候補対象物を把持する実現可能性の妥当性を確認するステップは、ユーザプログラムに関連付けられる条件付きロジックを分析するステップを含んでいてよい。第一の候補対象物を把持する実現可能性の妥当性を確認するステップは、すべての経路代替案の妥当性を確認するステップ、特定の経路代替案の妥当性を確認するステップ、何れかの経路代替案の妥当性を確認するステップ、1つ若しくは複数の例外経路の妥当性を確認するステップ、1つ又は複数の区間を妥当性確認から除外するステップ、又は経路の複数の区間の並行妥当性確認を行うステップ、のうちの少なくとも1つを含んでいてよい。
他の実施例において、プロセッサ及びメモリを含むコンピューティングシステムは、ロボットが選択するための1つ又は複数の候補対象物を識別するステップを含む動作を実行するように構成される。1つ又は複数の候補対象物までの経路は、少なくとも一部に、ロボット環境及び少なくとも1つのロボット拘束に基づいて特定されてよい。1つ又は複数の候補対象物のうちの第一の候補対象物を把持する実現可能性の妥当性が確認されてよい。実現可能性の妥当性が確認されると、ロボットは、第一の候補対象物を物理的に選択するように構成されてよい。実現可能性の妥当性が確認されない場合、第一の対象物の異なる把持地点、第二の経路、又は第二の候補対象物のうちの少なくとも1つが選択されてよい。
以下の特徴のうちの1つ又は複数が含まれていてよい。妥当性を確認するステップは、ロボットの運動学モデルを使用するステップを含んでいてよい。経路は、実現可能経路又は最適経路の少なくとも一方であってよい。経路は、ロボットを制御しながらリアルタイムで特定されてよい。経路を特定するステップは、候補対象物に隣接する少なくとも1つの物体の1つ又は複数の表面に関する情報を使用するステップと、候補対象物に隣接するその少なくとも1つの物体との衝突を回避するステップを含んでいてよい。ロボット又は1つ若しくは複数の候補対象物の少なくとも一方は、グラフィカルユーザインタフェースに表示されてよい。グラフィカルユーザインタフェースにより、ユーザはロボット、経路特定、シミュレーション、ワークセル定義、性能パラメータの明示、又はセンサ構成のうちの少なくとも1つを視覚化し、又は制御することができてよい。グラフィカルユーザインタフェースにより、プログラムとプログラムに関連付けられるデバッグプロセスの同時生成が可能となってよい。グラフィカルユーザインタフェースは、ティーチペンダント、ハンドヘルド機器、パーソナルコンピュータ、又はロボットのうちの1つ又は複数に関連付けられてよい。スキャナを用いた1つ又は複数の静的及び動的対象物を含む環境の画像が提供されてよく、ロボットは、画像を受信し、画像を使用して環境を学習し、経路及び衝突回避を特定するように構成される。ロボットを制御するステップは、第一の候補対象物の第二のスキャンを実行するステップ、第一の候補対象物を、ある精度要求の固定位置を有する設置標的まで移動させるステップ、第一の候補対象物を操作するステップ、及び第一の候補対象物をその精度要求に従って設置ターゲットまで送達するステップを含んでいてよい。ロボットを制御するステップは、第一の候補対象物をスキャナに提示して、第一の候補対象物上の1つ又は複数のフィーチャを最大限に利用して、第一の候補対象物の位置を精密に特定するステップを含んでいてよい。ロボットを制御するステップは、第一の候補対象物を、物理的選択が成功する可能性を最大限にするような方法で位置特定し、ピックするステップを含んでいてよい。第二のスキャンは、スキャナの最大分解能エリアにおいて行われてよい。1つ又は複数の候補対象物までの経路を特定するステップは、少なくとも一部に、ロボットリンケージ又はロボットジョイントの限度の少なくとも一方に基づいていてよい。1つ又は複数の候補対象物以外の非選択コンポーネント及び非選択表面のすべてにわたるシュリンクラップ可視化が、グラフィカルユーザインタフェースに表示されてよい。識別するステップ、特定するステップ、妥当性を確認するステップ、又は制御するステップの少なくとも1つは、一次プロセッサと少なくとも1つのコプロセッサのうちの少なくとも1つを使って実行されてよい。1つ又は複数の候補対象物までの経路を特定するステップは、少なくとも一部に、大域的経路計画及び局所的経路計画の少なくとも一方に基づいていてよい。第一の候補対象物を把持する実現可能性の妥当性を確認するステップは、ユーザプログラムに関連付けられる条件付きロジックを分析するステップを含んでいてよい。第一の候補対象物を把持する実現可能性の妥当性を確認するステップは、すべての経路代替案の妥当性を確認するステップ、特定の経路代替案の妥当性を確認するステップ、何れかの経路代替案の妥当性を確認するステップ、1つ若しくは複数の例外経路の妥当性を確認するステップ、1つ又は複数の区間を妥当性確認から除外するステップ、又は経路の複数の区間の並行妥当性確認を行うステップ、のうちの少なくとも1つを含んでいてよい。
1つ又は複数の実施例の詳細は、添付の図面及び以下の説明に示される。その他の特徴と利点も、説明、図面、及び特許請求の範囲から明らかとなるであろう。
添付の図面は本開示の実施形態をさらに理解できるようにするために含められ、本明細書の一部に組み込まれ、それを構成しており、本開示の実施形態を例示し、説明と共に本開示の実施形態の原理を説明する役割を果たす。
分散型コンピューティングネットワークに連結されたロボットビンピッキングプロセスの線図である。 図1のロボットビンピッキングプロセスの1つの実施例のフローチャートである。 本開示の実施形態による、URのReal−Time Data Exchangeインタフェースを用いた、コプロセッサ上のすべてのモジュールとEthernet(登録商標)接続によるURコントローラとのインタフェースを実行するように構成されたビンピッキングシステムである。 本開示の実施形態によるビンピッキングシステムの配置図を示すインタフェースである。 本開示の実施形態によるビンピッキングシステムに適合する実施形態を示すインタフェースである。 本開示の実施形態によるビンピッキングプロセスに適合するグラフィカルユーザインタフェースを示すインタフェースである。 本開示の実施形態によるビンピッキングプロセスに適合するグラフィカルユーザインタフェースである。 本開示の実施形態によるビンピッキングプロセスに適合するグラフィカルユーザインタフェースである。 本開示の実施形態によるプログラムテンプレートを生成するグラフィカルユーザインタフェースである。 本開示の実施形態によるプログラムテンプレートを生成するグラフィカルユーザインタフェースである。 本開示の実施形態によるプログラムテンプレートを生成するグラフィカルユーザインタフェースである。 本開示の実施形態によるEOATの構成を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態によるツール衝突形状の構成を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態によるビン構成を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態によるビン位置合わせを可能にするグラフィカルユーザインタフェースである。 本開示によるビン衝突形状の構成を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態によるワークの構成とワークモデルのロードを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態によるワーク衝突形状の構成を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態によるワーク検出の妥当性確認を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による再スキャン位置の構成を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による把持ヒエラルキ及び/又は把持選択メトリクスの構成を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による把持ヒエラルキ及び/又は把持選択メトリクスの構成を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による把持の追加及び/又は配置を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による把持及び設置の訓練を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による設置位置及びオフセットの訓練を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による設置位置及びオフセットの訓練を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態によるグラブ及びリリースシーケンスの構成を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態によるシステム動作を可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがUSBドライブ又はその他の適当なデバイスからのビンピッキングURCapをインストールすることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザが環境を構成することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがセンサを構成することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがセンサを位置合わせすることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがセンサを位置合わせすることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがセンサを位置合わせすることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがセンサを位置合わせすることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがビンピッキングプログラムを作ることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、プログラムテンプレートを生成するオプションを示すグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザにとって利用可能であってよいオプションの例を示すグラフィカルユーザインタフェースである。 本開示の実施形態による、把持メトリクスを設定するための1つのアプローチを示すグラフィカルユーザインタフェースである。 本開示の実施形態による、RRTノードを設定することを可能にする例示的なグラフィカルユーザインタフェースを示すグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザが原位置を設定することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがツールを構成することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがビンを位置合わせすることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがビンを位置合わせすることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがビン衝突形状を構成することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザが部品テンプレートの妥当性を確認することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザが再スキャン位置を構成することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザが把持を追加することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザが把持及び設置を訓練することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがピックを訓練することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがEOAT信号を構成することを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザがシステムを動作させることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態による、ユーザが追加のノードを作ることを可能にするグラフィカルユーザインタフェースである。 本開示の実施形態に適合するインストレーション、プログラム構成、及びビンピッキング動作の例を示すフローチャートである。
本開示の実施形態は、ロボットビンピッキングのためのシステム及び方法に関する。したがって、本明細書に含められるビンピッキング方法によれば、ロボットがスキャニングシステムと協働して、ビン内の部品を識別し、部品をビンからピックし、ピックされた部品を指定された場所に設置することを可能にし得る。
本願の実施形態は、米国特許第6,757,587号明細書、米国特許第7,680,300号明細書、米国特許第8,301,421号明細書、米国特許第8,408,918号明細書、米国特許第8,428,781号明細書、米国特許第9,357,708号明細書、米国特許出願公開第2015/0199458号明細書、米国特許出願公開第2016/0321381号明細書、米国特許出願公開第2018/0060459号明細書の概念を含み得、各々の全内容のすべてを参照によって本願に援用する。
ここで、図1を参照すると、ネットワーク(例えば、ネットワーク14)(例えば、インターネット又はローカルエリアネットワーク)に接続されてよいコンピューティングデバイス12の上にあってよい、又はそれによって実行されてよいロボットビンピッキングプロセス10が示されている。コンピューティングデバイス12(及び/又は後述のクライアント電子機器のうちの1つ又は複数)の例としては、パーソナルコンピュータ、ラップトップコンピュータ、モバイルコンピューティングデバイス、サーバコンピュータ、一連のサーバコンピュータ、メインフレームコンピュータ、又はコンピューティングクラウドが含まれていてよいが、これらに限定されない。コンピューティングデバイス12はオペレーティングシステムを実行してよく、これは例えば、Microsoft(登録商標)Windows(登録商標)、Mac(登録商標)OS X(登録商標)、Red Hat(登録商標)、Linux(登録商標)、又はカスタムオペレーティングシステムであるが、これらに限定されない。(Microsoft及びWindowsは米国、外国、又はそれら両方におけるMicrosoft Corporationの登録商標であり、Mac及びOS Xは米国、外国、又はそれら両方におけるApple Inc.の登録商標であり、Red Hatは、米国、外国、又はそれら両方におけるRed Hat Corporationの登録商標であり、Linuxは米国、外国、又はそれら両方におけるLinus Torvaldsの登録商標である)。
後でより詳しく述べるように、図1のロボットビンピッキングプロセス10等のロボットビンピッキングプロセスは、ロボットにより選択されるための1つ又は複数の候補対象物を識別してよい。1つ又は複数の候補対象物までの経路は、少なくとも一部に、ロボット環境及び少なくとも1つのロボット拘束に基づいて特定されてよい。1つ又は複数の候補対象物のうちの第一の候補対象物を把持する実現可能性の妥当性が確認されてよい。実現可能性の妥当性が確認されると、ロボットは、第一の候補対象物を物理的に選択するように制御されてよい。実現可能性の妥当性が確認されないと、第一の候補対象物の異なる把持地点、第二の経路、又は第二の候補対象物のうちの少なくとも1つが選択されてよい。
ロボットビンピッキングプロセス10の命令群及びサブルーチンは、コンピューティングデバイス12に連結された記憶装置16上に記憶されていてよく、コンピューティングデバイス12に含まれる1つ又は複数のプロセッサ(図示せず)及び1つ又は複数のメモリアーキテクチャ(図示せず)により実行されてよい。記憶装置16としては、ハードディスクドライブ、フラッシュドライブ、テープドライブ、光ドライブ、RAIDアレイ、ランダムアクセスメモリ(RAM)、及びリードオンリメモリ(ROM)が含まれてよいが、これらに限定されない。
ネットワーク14は、1つ又は複数の第二のネットワーク(例えば、ネットワーク18)に接続されてよく、その例としては、例えばローカルエリアネットワーク、ワイドエリアネットワーク、又はイントラネットが含まれていてよいが、これらに限定されない。
ロボットビンピッキングプロセス10は、クライアントアプリケーション22、24、26、28、66を介してアクセスされるアプレット/アプリケーションとインタフェースするスタンドアロンアプリケーションであってよい。幾つかの実施形態において、ロボットビンピッキングプロセス10は、全体的又は部分的に、クラウドコンピューティングトポロジに分散されてよい。このようにして、コンピューティングデバイス12及び記憶装置16とは複数のデバイスを指してよく、これらもまた、ネットワーク14及び/又はネットワーク18全体を通じて分散されてよい。
コンピューティングデバイス12はロボット制御アプリケーション(例えば、ロボット制御アプリケーション20)を実行してよく、その例としては、マサチューセッツ州ケンブリッジのEnergid TechnologiesのActin(登録商標)Software Development Kit及びその他のあらゆるビンピッキングアプリケーション又はソフトウェアが含まれていてよいが、これらに限定されない。ロボットビンピッキングプロセス10及び/又はロボット制御アプリケーション20には、クライアントアプリケーション22、24、26、28、68を介してアクセスしてよい。ロボットビンピッキングプロセス10は、スタンドアロンアプリケーションであってよく、又はロボット制御アプリケーション20、ロボット制御アプリケーション20のコンポーネント、及び/又はクライアントアプリケーション22、24、26、28、68のうちの1つ又は複数と相互作用する、及び/又はその中で実行されてよいアプレット/アプリケーション/スクリプト/拡張機能であってよい。ロボット制御アプリケーション20は、スタンドアロンアプリケーションであってよく、又はロボットビンピッキングプロセス10、ロボットビンピッキングプロセス10のコンポーネント、及び/又はクライアントアプリケーション22、24、26、28、68のうちの1つ又は複数と相互作用し、及び/又はその中で実行されてよいアプレット/アプリケーション/スクリプト/拡張機能であってよい。クライアントアプリケーション22、24、26、28、68のうちの1つ又は複数は、スタンドアロンアプリケーションであってよく、又はロボットビンピッキングプロセス10及び/又はロボット制御アプリケーション20のコンポーネントと相互作用し、及び/又はその中で実行されてよいアプレット/アプリケーション/スクリプト/拡張機能であってよい。クライアントアプリケーション22、24、26、28、68の例としては、1つ又は複数のデータベース、サーバ、クラウドストレージサーバ等からコンテンツを検索するためのクエリを受けるアプリケーション、テキスト及び/又はグラフィカルユーザインタフェース、カスタマイズされたウェブブラウザ、プラグイン、アプリケーションプログラミングインタフェース(API)、又はカスタムアプリケーションが含まれていてよいが、これらに限定されない。クライアントアプリケーション22、24、26、28、68の、クライアント電子機器38、40、42、44に連結された記憶装置30、32、34、36に記憶されていてよい命令群及びサブルーチンは、1つ又は複数のプロセッサ(図示せず)及び、クライアント電子機器38、40、42、44に組み込まれた1つ又は複数のメモリアーキテクチャ(図示せず)によって実行されてよい。
記憶装置30、32、34、36としては、ハードディスクドライブ、フラッシュドライブ、テープドライブ、光ドライブ、RAIDアレイ、ランダムアクセスメモリ(RAM)、及びリードオンリメモリ(ROM)が含まれていてよいが、これらに限定されない。クライアント電子機器38、40、42、44(及び/又はコンピューティングデバイス12)の例としては、パーソナルコンピュータ(例えば、クライアント電子機器38)、ラップトップコンピュータ(例えば、クライアント電子機器40)、スマート/データイネーブル携帯電話(例えば、クライアント電子機器42)、ノートブックコンピュータ(例えば、クライアント電子機器44)、タブレット(図示せず)、サーバ(図示せず)、テレビ(図示せず)、スマートテレビ(図示せず)、メディア(例えば、動画、写真等)撮影機器(図示せず)、及び専用ネットワークデバイス(図示せず)が含まれていてよいが、これらに限定されない。クライアント電子機器38、40、42、44の各々は、オペレーティングシステムを実行してよく、その例としては、Microsoft(登録商標)Windows(登録商標)、Mac(登録商標)OS X(登録商標)、Red Hat(登録商標)、Linux(登録商標)、Windows(登録商標)Mobile、Chrome OS、Blackberry OS、Fire OS、又はカスタムオペレーティングシステムが含まれていてよいが、これらに限定されない。
クライアントアプリケーション22、24、26、28、68のうちの1つ又は複数は、ロボットビンピッキングプロセス10の機能の幾つか又は全部を実行するように構成されてよい(及びその逆でもよい)。したがって、ロボットビンピッキングプロセス10は、純粋なサーバ側アプリケーション、純粋なクライアント側アプリケーション、又はクライアントアプリケーション22、24、26、28、68のうちの1つ又は複数及び/又はロボットビンピッキングプロセス10により協働して実行されるサーバ側/クライアント側ハイブリッドアプリケーションであってよい。
クライアントアプリケーション22、24、26、28、68のうちの1つ又は複数は、ロボット制御アプリケーション20の機能の幾つか又は全部を実行するように構成されてよい(及びその逆でもよい)。したがって、ロボット制御アプリケーション20は、純粋なサーバ側アプリケーション、純粋なクライアント側アプリケーション、又はクライアントアプリケーション22、24、26、28、68のうちの1つ又は複数及び/又はロボット制御アプリケーション20により協働して実行されるサーバ側/クライアント側ハイブリッドアプリケーションであってよい。クライアントアプリケーション22、24、26、28、68のうちの1つ又は複数、ロボットビンピッキングプロセス10、及びロボット制御アプリケーション20は、単独でも何れかの組合せによっても、同じ機能の幾つか又は全部を実行してよいため、クライアントアプリケーション22、24、26、28、68のうちの1つ又は複数、ロボットビンピッキングプロセス10、ロボット制御アプリケーション20、又はそれらの組合せを介したこれらの機能の実行に関する何れの説明も、及びクライアントアプリケーション22、24、26、28、68のうちの1つ又は複数、ロボットビンピッキングプロセス10、ロボット制御アプリケーション20、又はそれらの組合せの間の、このような機能を実行するための説明された何れの相互作用も、本開示の範囲を限定するものではなく例として解釈されるべきである。
ユーザ46、48、50、52は、コンピューティングデバイス12及びロボットビンピッキングプロセス10に(例えば、クライアント電子機器38、40、42、44のうちの1つ又は複数を使用して)直接、又はネットワーク14を通じて、若しくは第二のネットワーク18を通じて間接にアクセスしてよい。さらに、コンピューティングデバイス12は、第二のネットワーク18を通じてネットワーク14に接続されてもよく、これは破線の結合線54により示されている。ロボットビンピッキングプロセス10は、1つ又は複数のユーザインタフェース、例えばブラウザ及びテキスト又はグラフィカルユーザインタフェースを含んでいてよく、これを通じてユーザ46、48、50、52は、ロボットビンピッキングプロセス10にアクセスしてよい。
各種のクライアント電子機器は、直接又は間接にネットワーク14(又はネットワーク18)に連結されてよい。例えば、クライアント電子機器38は、ハードワイヤネットワーク接続を介してネットワーク14に直接連結されるように示されている。さらに、クライアント電子機器44は、ハードワイヤネットワーク接続を介してネットワーク18に直接連結されるように示されている。クライアント電子機器40は、クライアント電子機器40と、ネットワーク14に直接連結されるように示されている無線アクセスポイント(すなわち、WAP)58との間で確立された無線通信チャネル56を介してネットワーク14に無線連結されるように示されている。WAP 58は、例えばIEEE 800.11a、800.11b、800.11g、Wi−Fi(登録商標)、及び/又はBluetooth(商標)(Bluetooth(商標)Low Energyを含む)デバイスであってよく、これらはクライアント電子機器40とWAP 58との間に無線通信チャネル56を確立することができる。クライアント電子機器42は、クライアント電子機器42と、ネットワーク14に直接連結されるように示されている携帯電話/ブリッジ62との間に確立される無線通信チャネル60を介してネットワーク14に無線連結されるように示されている。幾つかの実施例において、ロボットシステム64は、クライアント電子機器42と、ネットワーク14に直接連結されるように示されているセルラネットワーク/ブリッジ62との間に確立される無線通信チャネル66を介してネットワーク14に無線連結されてよい。記憶装置70は、ロボットシステム64に連結されてよく、これにはハードディスクドライブ、フラッシュドライブ、テープドライブ、光ドライブ、RAIDアレイ、ランダムアクセスメモリ(RAM)、及びリードオンリメモリ(ROM)が含まれていてよいが、これらに限定されない。ユーザ72は、コンピューティングデバイス12及びロボットビンピッキングプロセス10に(例えば、ロボットシステム64を使って)、直接又は、ネットワーク14を通じて、若しくは第二のネットワーク18を通じて間接にアクセスしてよい。
IEEE 800.11x標準の幾つか又は全部は、Ethernet(登録商標)プロトコル及び搬送波感知多重アクセス/衝突回避方式(すなわち、CSMA/CA:carrier sense multiple access with collision avoidance)を経路共有のために使用してよい。各種の800.11x標準は、例えば位相シフトキーイング(すなわち、PSK:phase−shift keying)変調又は相補コードキーイング(すなわち、CCK:complementary code keying)変調を使用してよい。Bluetooth(登録商標)(Bluetooth(登録商標)Low Energyを含む)は、例えばモバイルフォン、コンピュータ、スマートフォン、及びその他の電子機器が短距離無線接続を使って相互に接続できるようにする、電気通信業界の標準である。その他の形態の相互通信(例えば、近距離無線通信(NFC:Near Field Communication))も使用されてよい。
図2〜54も参照すると、幾つかの実施形態において、ロボットビンピッキングプロセス10は一般に、ロボットが選択するための1つ又は複数の候補対象物を識別するステップ200を含んでいてよい。1つ又は複数の候補対象物までの経路は、少なくとも一部に、ロボット環境及び少なくとも1つのロボット制約に基づいて特定されてよい202。1つ又は複数の候補対象物のうちの第一の候補対象物を把持する実現可能性の妥当性が確認されてよい204。実現可能性の妥当性が確認されると、ロボットは第一の候補対象物を物理的に選択するように制御されてよい206。実現可能性の妥当性が確認されない場合、第一の候補対象物の異なる把持地点、第二の経路、又は第二の候補対象物のうちの少なくとも1つが選択されてよい208。
本明細書で使用されるかぎり、「Actinビューワ」という用語は、グラフィカルユーザインタフェースを指してよい。「Actin」は、ロボット制御ソフトウェアを指してよく、「UR」は「Universal Robots」を指してよい。これらの特定の会社及び製品の何れの使用も、例として提供されているにすぎない。そのため、何れの適当なグラフィカルユーザインタフェース、ロボット制御ソフトウェア、及び機器/モジュールも使用されてもよく、これも本開示の範囲から逸脱しない。
幾つかの実施形態において、ビンピッキングシステム(例えば、ビンピッキングシステム64)は、ロボットアーム(例えば、Universal Robotsから入手可能なUniversal Robots UR5等)、コントローラ、グリッパ、センサ、及びコプロセッサ(例えば、認識及びタスク計画からの計算コストの高い動作を実行するため)を含んでいてよい。しかしながら、ビンピッキングシステムは、本開示の範囲内で、追加のコンポーネントを含んでいてよく、及び/又はこれらの例示的なコンポーネントの1つ又は複数を省いてもよいと理解されたい。
幾つかの実施形態において、図3も参照すると、ビンピッキングシステム(例えば、ビンピッキングシステム64)は、コプロセッサのすべてのモジュール及びURからのReal−Time Data Exchangeインタフェースを使って、例えばEthernet(登録商標)接続によるURコントローラとのインタフェースを実行するように構成されてよい。ソフトウェアアプリケーションは、Energid Technologiesから入手可能な「Actin Viewer」等の1つ又は複数のグラフィカルユーザインタフェースのためのカスタムプラグインから作成されてよい。幾つかの実施形態において、センサは、何れの適当なセンサ(例えば、3Dセンサ)であってもよい。幾つかの実施形態において、ビンピッキングシステム(例えば、ビンピッキングシステム64)は、少なくとも1つのコプロセッサ上の幾つかのモジュール及びURコントローラ上の幾つかのモジュールを実行するように構成されてよい。幾つかの実施形態において、すべてのモジュールがURコントローラ上で実行されてよい。
幾つかの実施形態において、コプロセッサはコアプロセッサとグラフィクスカードを含んでいてよい。オペレーティングシステムとコンパイラは、何れの適当なタイプのものであってもよい。コプロセッサは、複数の外部インタフェース(例えば、URコントローラとのEthernet(登録商標)、カメラとのUSB3.0、プロジェクタとのHDMI(登録商標)等)を含んでいてよい。これらの特定の機器とシステムのほか、本文書中に記載されているその他のものは、例として提供されているにすぎない。
幾つかの実施形態において、Universal Robots UR5がビンピッキングシステム64内で利用されてよい。コントローラは、改良型でなくてもよい。例えば、サクションカップアームエンドツール(EOAT:end of arm tool)は、例えば24 VDCデジタル出力チャネルを介してコントローラに接続されてよい。しかしながら、何れのEOATが何れのロボットアーム上で使用されてもよく、この場合も本開示の範囲内であると理解されたい。
幾つかの実施形態において、何れのスキャナが使用されてもよい。これは、構造化光センサであってよく、また、サードパーティ統合を可能にするものでもよい。SDKと共に、スキャナはワークのメッシュテンプレートを作るために使用されてよいアプリケーションを備えていてよい。
幾つかの実施形態において、ビンピッキングアプリケーション(例えば、ビンピッキングアプリケーション20)は、前述のGUIベースのActin Viewerの代わりに、ビンピッキングシステム(例えば、ビンピッキングシステム64)のコプロセッサ上で動作するように構成されてよい。例えば、ユーザインタフェースは、ビンピッキングキャップを介してコントローラ及びティーチペンダントに移動されてもよい。「キャップ」とは、本明細書で使用されるかぎり、一般にロボットの機能、アクセサリ、又は周辺機器を指してよい。「UR」キャップとは、「Universal Robotics」、すなわち本開示の譲受人から入手可能なキャップを指してよい。一例において、C++Cap Daemonは、コントローラ上で動作して、RTI Connext DDS上でのコプロセッサとの通信を可能にしてよい。例示的な展開が図4に示されている。
幾つかの実施形態において、産業用PC(IPC)がコプロセッサのために利用されてよい。ビンピッキングアプリケーションと共に、コプロセッサは、EOAT、ビン、及びワークのためのSTEPファイルを含めた、ビンピッキング関連ファイルをホストしてよい。ユーザはこれらのファイルを、USBを介して、又はネットワークを通じてコプロセッサにロードしてよい。
幾つかの実施形態において、ビンピッキングアプリケーションは、コプロセッサ上で動作して、ワーク検出及びモーション計画を含めた計算コストの高いすべてのタスクを実行してよい。このアプリケーションは、Actin SDKを使って構築されてよく、ビンピッキングに必要なキーライブラリにリンクされてよい。一例において、RTI Connext DDS 5.3.1がURコントローラ上で動作するURCapと通信するために使用されてよい。しかしながら、本開示の範囲内で様々な構成が可能であると理解されたい。幾つかの実施形態において、また、後でより詳しく述べるように、標的対象物又はワークは、点群データから検出されてよい。一例において、APIを使って、センサとインタフェースしてよい。他の例では、Open Cascadeを使って、STEPファイルを、Actinモデルの生成に必要なメッシュファイル及びビンピッキングシステムコンポーネントの点群に変換してよい。幾つかの実施形態において、ビンピッキングURCapは、URティーチペンダント上のユーザインタフェース及びコプロセッサとの通信のためのデーモンを形成するJavaコンポーネントを含んでいてよい。例えば、デーモンは、Actinライブラリ及び、例えばRTI Connext DDS 5.3.1とのリンク上に構築されてよい。
幾つかの実施形態において、ビンピッキングシステムは複数のフェーズを含んでいてよい。これらのフェーズとしては、インストレーション、較正及びアラインメント、アプリケーション構成、及びビンピッキング動作が含まれていてよいが、これらに限定されない。
幾つかの実施形態において、ビンピッキングシステムが構成されてよい。例えば、ロボット、センサ、及びグリッパはすべて、動作のこのフェーズで物理的に据え付けられ、較正されてよい。センサ較正は、カメラ及びプロジェクタの内部及び外部パラメータを特定するために実行されてよい。センサとロボットのアラインメントは、3Dプリンティングによる、球のアレイからなるアラインメントオブジェクトを使って行われてよい。例えば、標的ワークは容易に検出されてよく、これはワーク姿勢推定が関係するロボット座標系を定義してよい。インストレーション、較正、及びアラインメントパラメータは、コプロセッサ上のファイに保存されてよい。
幾つかの実施形態において、ビンピッキングプログラム構成フェーズは、ユーザが、あるワークについてのビンピッキング動作及び設置又は固定を行うようにビンピッキングシステムを構成する段階である。ユーザはまず、新しいプログラム構成をロードするか、作成してよい。新しいプログラムを作成するステップには、ツール、ワークテンプレート、及びビンの構成並びにその後の把持及び設置の訓練が含まれていてよいが、これらに限定されない。
ビンピッキング動作フェーズでは、ユーザはビンピッキングシステムがビンピッキングを実行する、又は停止する、及び進行状況をモニタするのをトリガしてよい。ビンピッキングシステムは、毎回のピック試行の前に自動的に動作してビンをスキャンしてよい。幾つかの実施形態において、ビンピッキングシステムについて2つの予想されるユーザの役割があり、これらにはユーザの役割とデベロッパの役割が含まれていてよい。ユーザは、ビンピッキングシステムとグラフィカルユーザインタフェースを通じて対話してよい(例えば、プログラミングの経験は不要であってもよい)。デベロッパは、ビンピッキングソフトウェアを拡張して、新規センササポート、新規グリッパ、新規姿勢推定(マッチャ)アルゴリズム、新規バウンダリジェネレータ、及び新規把持スクリプトセレクタを含めてよい。各種のタスクがユーザによって実行されてよく、その他のタスクはデベロッパにより実行されてよい。
幾つかの実施形態において、ビンピッキングソフトウェアは、Actin Viewerへのカスタムプラグインで実装されてよい。これらのカスタムプラグインとしては、perceptionPlugin、taskExecutionPlugin、及びurHardwarePluginが含まれていてよいが、これらに限定されない。
幾つかの実施形態において、perceptionPluginは、taskExecutionプラグインとPerceptionSystemクラスを通じて相互作用してよい。このクラスは、認識モジュールに含まれ、3つの主要クラスインタフェース、すなわちセンサ、マッチャ、及びバウンダリジェネレータからなる。
幾つかの実施形態において、センサインタフェースは、以下の方法を含んでいてよく、スキャナと相互作用するためにセンサクラスを通じて実装されてよい。
Figure 2021528259
幾つかの実施形態において、マッチャインタフェースは以下の方法を含んでいてよく、SDK姿勢推定ユーティリティを利用するために、マッチャクラスを通じて実装される。
Figure 2021528259
幾つかの実施形態において、バウンダリジェネレータインタフェースは以下の方法を含み、高さフィールドジェネレータによって実装される。
Figure 2021528259
幾つかの実施形態において、TaskPlanEvaluatorクラスは、各種のメトリクスを介して予期される把持の高速評価を実行する。このクラスは、Task Planningモジュール内にあり、EcBaseTaskPlanMetricと呼ばれる1つのコアインタフェースを含む。
幾つかの実施形態において、TaskPlanMetricインタフェースは以下の方法を含み、ビン内のその高さに基づいて把持スクリプトにスコアをつける(ビン内の最高点が最高スコアを得る)HeightTaskPlanMetricと、把持の垂直度に基づいて把持スクリプトにスコアをつける(垂直把持角度は最大スコアを得て、テーブルの底部からの動きを必要とする把持角度は最小スコアを得る)AngleTaskPlanMetricにより実装されてよい。
Figure 2021528259
幾つかの実施形態において、ビンピッキングURCapはURCap SDKを使って、「パレット」及び「シーク」等のネイティブURタスクウィザードのパターン及びコンベンションに密接に従うテンプレートプログラムを作成してよい。構成要素は2つの主なグループに分けられてよく、ビンピッキングシステムセットアップに関して一般的なものはインストレーションノードに設置され、特定のビンピッキングアプリケーションに特異のものは、そのビンピッキングテンプレートによって作られるプログラムノードの中に設置される。ランタイム状態は、URプログラムの実行により提供されるネイティブプログラムノードハイライト機構を通じて、及び主要ビンピッキングシーケンスノード上にある表示要素を通じて表示されてよい。
幾つかの実施形態において、UIの全体的デザインは、前述のビンピッキングのユースケースに従っていてよい。ビンピッキングURCapデザインは、各ユースケースに関して提示されてよい。各UI要素について、スクリーンショットは、その要素が関係する、ユースケースのリストと共に提供されてよい。ユースケースについては、後でより詳しく説明する。
次に、図5を参照すると、ビンピッキングシステムに適合する実施形態が提供されている。ビンピッキングシステムのインストレーションは、コプロセッサをURコントローラにEthernet(登録商標)ケーブルを通じて接続することから始めてよい。次に、ユーザがコプロセッサを起動すると、それが自動的にビンピッキングアプリケーションをスタートさせる。まず、ユーザはビンピッキングURCapをURコントローラに移行させ、「ロボットの設定」のページからインストールする。
次に、図6を参照すると、ビンピッキングプロセスに適合するグラフィカルユーザインタフェースが提供されている。URCapはインストレーションタブにビンピッキングノードを作る。ユーザは、このノードを選択し、「状態」ページを見る。状態ページは、URCapデーモン、コプロセッサ、及びセンサを含む必要なコンポーネントの状態のLED型インディケータを示している。問題が検出されると、エラーメッセージがURログに書き込まれ、ログのタブ上で見えるようになってよい。
次に、図7を参照すると、ビンピッキングプロセスに適合するグラフィカルユーザインタフェースが提供されている。次に、ユーザは環境タブを選択して、ワークスペースの障害物を構成してよい。このタブで、ユーザは、ビンピッキング動作中に回避され得るワークスペース内の障害物のすべてを定義する形状群をロードし、作成し、編集し、及び/又は保存することができる。3種類の形状がサポートされてよく、これらはすなわち、球、カプセル、ひし形である。しかしながら、他の多くの形状種類もまた本開示の範囲内である。ユーザは、衝突形状をビンピッキングシステム上のファイルからロードし、保存してよい。
次に、図8を参照すると、ビンピッキングプロセスに適合する追加的なグラフィカルユーザインタフェースが提供されている。ユーザは、センサタブを選択して、センサタイプを選択し、パラメータを構成してよい。これらのパラメータは、センサを調整するために使用されてよく、このページは、試験及び調整フェーズ中に何度も開いてよい。
次に、図9を参照すると、プログラムテンプレートを生成するグラフィカルユーザインタフェースが提供されている。ユーザは、ビンピッキングURプログラム(.urp)を、次のステップ及びユースケースを通じて構成してよい。ユーザはまず、テンプレートビンピッキングプログラムツリーを生成し、ルートノードをクリックする。
次に図10を参照すると、プログラムテンプレートを生成するグラフィカルユーザインタフェースが提供されている。ユーザは、「ベーシック」タブを選択することによって、ベーシックプログラムのオプションを編集できる。これには、ビン内の衝突の再スキャンを完了する、しない、その有無をチェックする、及びその他のオプションを設定することを含む。図11に示されるように、ユーザは、アドバンストタブを選択し、追加のパラメータを編集してもよい。これには、ピックされないワークの衝突検出半径が含まれる。
次に、図12を参照すると、EOATを構成できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、まずプログラムツリーの「ツール」ノードをクリックすることによって、EOATを構成してよい。
次に、図13を参照すると、ツール衝突形状の構成を可能にするグラフィカルユーザインタフェースが提供されている。ツール衝突形状は、環境衝突形状について使用されたものと同様のエディタの中で構成されてよい。ツール及び形状は常にレンダリングされてよく、ユーザは、形状を編集しながら見えるように回転させ、ズームすることができる。
次に、図14を参照すると、ビン構成を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の「ビン」ノードをクリックすることによってビンを構成してよい。
次に、図15を参照すると、ビン位置合わせを可能にするグラフィカルユーザインタフェースが提供されている。ビンは、ロボットのベースに関して位置合わせされてよい。ユーザはまず、ビンの3つの隅のEOAT TCPをタッチオフすることからURフィーチャ平面を定義してよい。この平面はその後、ビンノードの「位置合わせ平面」のドロップダウンの中で選択されてよい。
次に、図16を参照すると、ビン衝突形状の構成を可能にするグラフィカルユーザインタフェースが提供されている。ビンの衝突形状は次に、環境、ツール、及びワークのノードと同様のダイアログを使って構成される。
次に、図17を参照すると、ワークの構成とワークモデルのロードを可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の「部品テンプレート」のノードをクリックすることによって、ピックすべきワークを構成してよい。ユーザは、ワークのCADモデルをビンピッキングシステム上のファイルからロードしてよい。CADモデルは、レンダリングのためのメッシュファイル及び姿勢検出のための点群に変換されてよい。ユーザは、レンダリングウィンドウ内でワークテンプレートを見て、それがロードされ、正しく変換されたことを確認してよい。
次に、図18を参照すると、ワーク衝突形状の構成を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、ワークに関する衝突形状を構成してよい。これらの形状は、ワークがピックされた後のワークと環境との間の衝突を検出し、回避するために使用される。
次に、図19を参照すると、ワーク検出の妥当性確認を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、部品をビンに追加し、その後、スキャン及び検出をトリガしてマッチを見つけることによって、ワーク構成の妥当性を確認してよい。検出結果は、レンダリングされ、リストとして表示される。
次に、図20を参照すると、再スキャン位置の構成を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、次にロボットの再スキャン位置を設定してよい。これは、把持地点を訓練するため及びピック中の再スキャンのため(そのオプションが有効にされている場合)に使用されてよい位置である。
次に、図21〜22を参照すると、把持ヒエラルキ及び/又は把持選択メトリクスの構成を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、把持メトリクス、把持地点、及びオフセットを含む把持ヒエラルキと、次に、設置地点及びオフセットを構成してよい。把持選択メトリクスは、幾つかの選択肢がある時にどの把持を使用するかをプログラムがどのように選ぶかを定義する。ユーザは、リストから把持メトリクスを選択し、各々のパラメータを編集できる。
次に図23を参照すると、把持の追加及び/又は配置を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、ヒエラルキの中に把持を追加し、その中で配置できる。把持リストは、把持を評価する際に使用する優先順位を定義してよい。把持は、把持を追加及び把持を削除のボタンをクリックすることによって追加及び削除できる。把持は、クリックによってリスト内で選択できる。選択された把持は、提供されるボタンによりリスト内で上下に移動できる。
次に、図24を参照すると、把持と設置の訓練を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、左側のプログラムツリーの把持ノードをクリックし、把持ページのタブを左から右へと追うことによって、把持及び設置を訓練してよい。各把持ページにより、ユーザは、1)ワークに関する把持位置を定義し、2)ワークに近付く際に使用する把持オフセットを定義し、3)ロボットベースに関する設置位置を定義し、4)設置位置に近付く際に使用する設置オフセットを定義することができてよい。ユーザは、「名前」フィールドをクリックすることによって、各把持に固有の名前をつけることができる。ユーザは、「ピック位置」のタブ上のダイアログに示されるステップに従うことによって、把持ピック位置を設定してよい。ピック位置は、ワークの表面上の、EOATが取り付けられる点を指してよい。ユーザは、第一のボタンをクリックしてロボットを教示位置(再スキャン位置)に移動させてよい。次に、ユーザはワークをグリッパの中に入れ、第二のボタンをクリックしてスキャンをトリガしてよい。EOATに関するワークの姿勢は、把持位置として記録され、保存されてよい。ユーザはすると、ピックオフセットに切り替えて、オフセット値を設定してよい。
次に、図25を参照すると、ピック位置及びオフセットの訓練を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、「ピック位置」及び「ピックオフセット」のタブに従うことによって、ワークピック位置とオフセットを訓練してよい。
次に、図26を参照すると、設置位置及びオフセットの訓練を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、「設置位置」及び「設置オフセット」のタブに従うことによって、ワークの設置位置及びオフセットを訓練してよい。
次に、図27を参照すると、グラブ及びリリースシーケンスの構成を可能にするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラム構造をグラブ及びリリースシーケンスフォルダに追加して、EOATを作動させるためにとるべきEOATアクションを定義してよい。各シーケンスのデフォルトノードは、設定及び待機ノードを含んでいてよい。これらのフォルダで、ユーザは、EOATに特定のノードを追加してよく、これは他のURCapsにより提供されるものを含むことができる。
次に、図28を参照すると、システム動作を可能にするグラフィカルユーザインタフェースが提供されている。ここで、ユーザはプログラムを試験、調整、及び実行できる。ビンピッキングシステムの状態情報を見るために、ユーザはプログラムツリーの中の「ビンピッキングシーケンス」ノードをクリックすることができる。このノードページは、ビンピッキングシステムのレンダリングされたビューを、スキャン及び検出部品のための点群オーバレイと共に示してよい。ユーザは、標準的なUR再生、一時停止、及び停止ボタンを使ってプログラムを実行してよい。プログラム動作は、停止ボタン、その後、再生ボタンをクリックすることによってリセットできる。ユーザは、「ビンピッキングシーケンス」ノードページを見ることによって、ビンピッキングシステムの状態をモニタしてよい。選択された把持は、「現在のビュー」のウィンドウの中でレンダリングされてよく、そのIDがこのウィンドウの左側に表示される。
幾つかの実施形態において、グラフィカルユーザインタフェースによって、ユーザはロボットを設定し得る。ロボット設定のオプションが選択されると、図29に示されるようなグラフィカルユーザインタフェースによって、ユーザはビンピッキングURCapをUSBドライバ又はその他の適当なデバイスからインストールできてよい。ユーザは、「URCaps」と「+」を選択して、URCapファイルをロードしてよい。ロボットは、インストレーション後に再起動されてよい。
次に、図30を参照すると、ユーザが環境を構成できるようにするグラフィカルユーザインタフェースが提供されている。この例では、ユーザは「環境」を選択して、衝突形状を作り、保存してよい。例えば、球−1点、カプセル−2点、ひし形−3点等。幾つかの実施形態において、点は、多くの方法で定義されてよい。そのうちの幾つかには、フィーチャポイントから設定すること、ロボット位置から設定すること、マニュアルで設定すること等が含まれていてよいが、これらに限定されない。
次に、図31を参照すると、ユーザがセンサを構成できるようにするグラフィカルユーザインタフェースが提供されている。幾つかの実施形態において、ユーザはドロップダウンメニューからセンサを選択し、その設定を構成してよい。
次に、図32〜35を参照すると、ユーザがセンサの位置合わせを行うことができるようにするグラフィカルユーザインタフェースが提供されている。幾つかの実施形態において、センサは、ロボットのベースに関するその姿勢オフセットを特定するために位置合わせされてよい。ユーザは、「ウィザード起動」オプションを選択して開始してよい。図33は、グラフィカルユーザインタフェースと、位置合わせマーカをグリッパに固定するオプションを示す。位置合わせマーカは、3Dプリンティングによるプラスチックの球又は半球であってよく、これはグリッパに直接取り付けられてよい。図34は、ロボットを移動させて、スキャンゾーン内の異なる位置に位置合わせマーカを設置することを描いている。位置合わせマーカは、センサと直接対面してよい。ユーザは、「サンプル追加」オプションを選択して、各ステップを記録してよい。位置合わせ誤差は、幾つかのサンプル後に例えば2mm未満であってよい。幾つかの実施形態において、10を超えるサンプルが使用されてよい。図35において、位置合わせマーカがグリッパから取り除かれてよく、「終了」オプションの選択により、位置合わせが完了されてよい。
次に、図36を参照すると、ユーザがビンピッキングプログラムを作成することができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、「プログラム」オプションを選択し、「エンプティプログラム」を選択し、新しいタスクを作成してよい。図37において、プログラムテンプレートを生成するオプションが提供される。ここで、ユーザは、「構造」及び「URCaps」オプションを選択してから、「ビンピッキング」を選択してもよい。これによって、ビンピッキングプログラムテンプレートがプログラムツリーに挿入される。図38は、ユーザが利用可能なオプションの例を示し、図39は、把持メトリクスを設定する1つの方法を示す。把持メトリクスは、幾つかの選択肢がある時にどの把持を使用するかをプログラムがどのように選ぶかを定義する。図40は、RRTノードの設定を可能にする例示的なグラフィカルユーザインタフェースを示す。RRTノードは、ビンの中の異なる位置にある(例えば、壁に近い、隅にある、等)部品をロボットがピックアップするための経路計画のガイダンスを提供するように構成されてよい。RRTノードは、異なるワークのピック位置からある距離に設定されてよい。幾つかの実施形態において、ロボットは、ワークをピックするために、大きくその姿勢を変化させずに、直線に沿って移動するか、特異点に遭遇するだけでよいことがある。
次に、図41を参照すると、ユーザが原位置を設定できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の「原位置」のオプションを選択し、その後、「原位置を設定する」を選択してよい。ユーザは次に、ティーチペンダント上の命令に従って、ロボットを所望の原位置に移動させてよい。
次に、図42を参照すると、ユーザがツールを構成できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の「ツール」オプションを選択し、座標と方位を手で入力することによってツールの中心点を設定してよい。ユーザには、オブジェクトファイルをロードする選択肢も提供されてよい。
次に、図43を参照すると、ユーザがビンの位置合わせを行うことができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、「ベース」のオプションを位置合わせ平面として選択し、「教示」オプションをビンタイプとして選択してよい。ポインタがエンドエフェクタに装着されてよい。
次に、図44を参照すると、ユーザがビンの位置合わせを行うことができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、ポインタを使って各ビンの壁の内部の4地点にタッチして、位置合わせしてもよい。幾つかの実施形態において、教示地点は広げられてよい。各辺の位置合わせを行うために、辺定義の例が提供されてもよい。LEDインディケータは、位置合わせが完了するたびにトグルしてよい。
次に、図45を参照すると、ユーザがビン衝突形状を構成できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、「デフォルト形状」のオプションを選択して、ビンの衝突形状を位置合わせに基づいて定義してよい。幾つかの実施形態において、ユーザは、衝突形状の大きさを変更してよい。
次に、図46を参照すると、ユーザが部品テンプレートの妥当性を確認できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、「スキャン」オプションを選択して、ビン内のワークをスキャンしてよい。幾つかの実施形態において、ビンピッキングシステムは、点群を部品テンプレートとマッチさせるように試みてよい。
次に、図47を参照すると、ユーザが再スキャン位置を構成できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の「再スキャン位置」のオプションを選択して、「再スキャン位置を設定」を選択してよい。ロボットが所望の再スキャン位置に移動したら、ユーザは「ok」を選択してよい。
次に、図48を参照すると、ユーザが把持リストを編集できるようにするグラフィカルユーザインタフェースが提供されている。幾つかの実施形態において、把持リストは、把持を評価する際に使用の優先順位を定義してよい。把持は、「把持を追加」又は「把持を削除」を選択することによって追加及び削除されてよい。選択された把持は、図中に示されるボタンを用いて、リストの上下に移動されてよい。
次に、図49を参照すると、ユーザが把持ウィザードを見ることができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の新規の把持ノードを選択するか、「次へ」を選択して、把持ウィザードにアクセスしてよい。ユーザは、「オプション」タブで把持の名前を変更してよい。
次に、図50を参照すると、ユーザがピックを訓練することができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、「ピックアプローチを教示する」のオプションを選択して、ロボットをビックアプローチ位置へと移動させてよい。アプローチ位置は、部品テンプレート衝突ゾーン内にあるべきではない。ユーザは、「ok」のオプションを選択して、位置を記録し、その後、続いて他の位置の設定をしてよい。
次に、図51を参照すると、ユーザがEOAT信号を構成できるようにするグラフィカルユーザインタフェースが提供されている。幾つかの実施形態において、標準的UR設定ノードを使用して、EOATを作動させるためのデジタル又はアナログ出力をトリガしてよい。ユーザは、各シーケンスでノードを削除又は追加してよい。
次に、図52を参照すると、ユーザがビンピッキングシステムを動作させることができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、点群及び検出された部品を表示してよい。ユーザは、UR再生及び一時停止ボタンを使ってプログラムを実行してよい。
次に、図53を参照すると、ユーザがパレタイズシーケンスを訓練できるようにするグラフィカルユーザインタフェースが提供されている。パレタイズシーケンスの中で、ビンピッキングプログラムは、設置位置のリストについて反復処理し、後続の各部品をパレタイズパターンにより明示される異なる位置に設置する。
幾つかの実施形態において、本明細書に記載のビンピッキングシステムは、センサの集合又は、異なるレンズを有する1つのセンサで実装されてもよいが、動作範囲全体をカバーする1つのセンサモデルが使用されてよい。製品は、例えば10×10×10cm〜例えば1.2×0.9×0.8メートル(H×W×D)の体積で有効に動作してよい。分解能及び正確度仕様は、体積内の最悪のケースの位置で満たされてよい。
幾つかの実施形態において、分解能及び正確度は、ビンの大きさと共に変化してよい。この実施例は、複数センサモデル又は構成を使って、この体積全体をカバーしてよい。センサの視野の外にあるビンがビンピッキングシステムの性能に影響を与える場合、ソフトウェアがこのエラーを検出し、報告してよい。センサは、ビンの上方、アーム上、又は何れの適当な場所に取付け可能であってもよい。
幾つかの実施形態において、ビンの上方には、センサとピッキング体積の上部との間には、ロボットがサイクルタイムに影響を与えずに動作するのに十分な余地があってよい。ビンの上方には、オペレータがビンの中にさらに部品を投げ込むのに十分な余地があってよい。センサとビンとの間の距離は、±10%又は±10cmの何れか大きい方だけ変動可能であってよい。同様に、センサは、ビン全体が見えているかぎり、センサ取付けにおいてx、y、又はx軸の何れかの周囲で±10°の誤差を許容してよい。
幾つかの実施形態において、センサは、アラインメントの後は移動しないことを前提として、仕様を満たすために精密な位置決めを必要としなくてよい。セルを構成し、較正した後、センサは不動と考えられてよい。ビンピッキングシステムは、センサとビンとの間の一時的な障害物に耐えられてよい。一時的障害物としては、オペレータ、補充ビン、かき回し棒等が含まれていてよい。「耐えられる」とは、ビンピッキングシステムがピックを合理的時間にわたって再試行してよく、複数回の再試行又は経過時間の後のみエラーとなることを示してよい。どちらの構成でも、力限界の原因となる障害物が検出され、再試行を強制してよい。
幾つかの実施形態において、ビンピッキングシステムは、任意の形状、例えば段ボール箱、円筒形のバケツ、膿盆等のビンで有効に動作する。プログラミングには、ほぼ平行六面体の形状のビンには、ビンのCADモデルは不要であってもよい。CADモデルが必要である場合、ビンピッキングシステムは、ビンにCADモデルとのわずかな違いがあっても、例えば反った段ボール箱、ひびの入ったプラスチックビン、スラットが紛失した木製クレート等であっても、依然として機能してよい。動作には、センサ主軸がビンの上又は下平面に垂直である必要がないことがある。これによって、ビンを斜めに押してもよく、又はセンサの設置位置が不正確であってもよい。
幾つかの実施形態において、セットアップには空のビンをスキャンすることが必要であってもよい。設定は、ビンの大きさと形状に依存しなくてよい。好ましくは、ビンはピックとピックの間で、例えばプラスチックの袋から段ボール箱に変化することさえあり、これもシステムの動作に影響を与えない。ビンピッキングシステムは、開いたフラップを有する段ボール箱についても有効に動作してよい。ビンピッキングシステムは、ビンがなくても、例えば部品が積み重ねられていても有効に動作してよい。ビンピッキングシステムは、2Dビンピッカとしても有効に動作してよく、部品は平坦な表面上で均一な姿勢を取る。ビンピッキングシステムは、1×1×0.1cmと小さい、及び30×30×30cmと大きいワークでも有効に動作してよい。分解能と正確度は、ワークの大きさと共に変化してよい。ビンピッキングシステムは、ワークのCADモデルを受け入れることができてよく、及び/又はワークの点群でも有効に動作してよい。
幾つかの実施形態において、ビンピッキングシステムは、1つ又は2つの次元において非常に薄い、又は非常に狭い(すなわち、シートメタルのように薄いか、ワイヤロッドのアスペクト比を有する)が、依然としてワークが剛性を有するという要求事項を満たすワークについても有効に動作してよい。ビンピッキングシステムはまた、ビン内に異物又は変形したワークがある場合でも有効に動作してよい。これらのワークは、回避され、ピックされなくてよい。ビンピッキングシステムによって、同じビンの中に複数の種類のピック可能なワークが存在できてよい。これが当てはまる場合、ビンピッキングシステムは、ピックを開始する前に、どのタイプのワークが望まれるかをプログラムにより明示できてよい。ビンピッキングシステムはまた、真空ピックアップと機械的グリッパのどちらについても有効に動作してよい。機械的グリッパは、内側及び外側グリップの両方を含んでいてよい。グリップは、グリッパが隣接する部品に当たらないように十分なクリアランスをする部品の識別を取り入れてよい。
幾つかの実施形態において、ビンピッキングシステムはエンドエフェクタのCADモデルを受け入れることができてよい。ビンピッキングシステムまた、エンドエフェクタの点群でも有効に動作してよい。ビンピッキングシステムは、エンドエフェクタとビン又は把持されないワークとの間の衝突を回避する選択可能なオプションを有していてもよい。隣接するワークとの衝突回避が選択されると、グリッパ、ロボット、及び把持された何れのワークも、把持中に他のワークと接触すべきではない。これは、経路計画が標的ワークの周囲のある程度のクリアランスを探してよいことを示唆する。ビンピッキングシステムによって、あるワークについての複数のピック地点又は把持の定義が可能となってよい。異なるワークのための複数のピック地点又は把持が定義が可能である場合、どのグリップが使用されたかの表示が、制御プログラムにとって利用可能であってもよい。異なるワークのための複数のピック地点又は把持が定義可能である場合、把持の選好ヒエラルキがあってよい。
幾つかの実施形態において、ビンピッキングシステムは、ピック可能な部品が1つも見えないとき、信号をアサートするか、警告を返してよい。ビンピッキングシステムは、「部品が1つも見えない」と「部品は見えるが、ピック対象ではない」とを区別してよい。ビンピッキングシステムはまた、ビンが「ほとんど空である」ことを信号で知らせてもよい。ピッキング動作により、ピッキング中にロボットによってビンの視界が遮られてもよい。
幾つかの実施形態において、ビンピッキングシステムは、コーリングプログラムへの信号送信又はエラー返送機構を含んでいてよい。ビンピッキングシステムは、「合理的」範囲のエラー分解能(error resolution)を有していてよく、例えば、「部品が1つも見つからない」がエラーではなく、ある状態であるモードを含んでいてよく、周期的にセンサはこのエリアを再スキャンし、ワークが到着するのを待機する。センサはまた、ビンの上方又はロボットアーム上の固定位置のどちらにも装着可能であってよい。センサは、工場の床に見られるかもしれないような小さい振動に耐えられてよい。
幾つかの実施形態において、センサは、天井灯と作業照明の両方があり、ロボット、通行人、及びその他の機械が様々な影を落とすかもしれない環境において標的信頼度で動作してよい。「周囲光」は、蛍光灯、LED蛍光灯、白熱光、間接自然光等であってよく、すなわち、それは狭いスペクトルバンドを有していても、広いスペクトルを有していてもよい。ビンピッキングシステムは、投射されたパターンをプログラムにより変更し、将来の改良を可能にする能力を含んでいてよい。ビンピッキングシステムは、ワークの表面テクスチャに対する感受性を持たなくてよい。ビンピッキングシステムは、正反射率の高い部品の使用を排除しなくてよい。ビンピッキングシステムは、正反射率の大きいビンの使用を排除しなくてよい。ビンピッキングシステムは、背景とのコントラストに対する感受性を持たなくてよい(背景は、むしろワークと同じタイプであるため、定義上、コントラストは低くなるため)。ビンピッキングシステムは、透明な部品との動作を排除してもよい。ビンピッキングシステムでは、部品のある程度の半透明性が許容され得る。幾つかの実施形態において、ビンピッキングシステムは、透明なビン又は半透明なビンでの動作を排除しなくてよい。ビンピッキングシステムは、設置場所が不正確なビン及びサイクルの合間に移動するビンでも有効に動作してよい。
ビンピッキングシステムの場合、平均的なURのプログラマが8時間以内の作業でビンピッキングプログラムを作成し得る(プログラムのうちのビンピッキング以外の部分、例えば最終的なワークの設置、オペレータへの信号送信、その他の動作等は除く)。ビンピッキングシステムでは、生産スループットへの影響を最小限にするために、オフラインのビンピッキングプログラム開発が可能であってよい。過去に訓練したワークの種類を呼び戻し、1時間以内に新しいビンピッキングプログラムを作ることも可能であってよい。ビンピッキングシステムは、ウィザード又はその他の対話式ツールを使って、プログラムを生成してもよい。
幾つかの実施形態において、ビンピッキングシステムは、URコントローラ又は、第二の画像処理コンピュータがある場合はそのコンピュータの何れかで実行されてよい。幾つかの実施形態において、ビンピッキングシステム(例えば、ビンピッキングシステム64)により、上記2つのコンピュータのうちの1つ又は別のコンピュータで、ビンピッキングプログラムをシミュレーションに基づいて生成してよい。ビンピッキングシステムは、URCaps適合アプリケーションであってよい。複数のセンサモデル又はバリエーションが使用される場合、コンフィギュレーション及びプログラミングソフトウェアは、すべてのセンサタイプで動作してよい。複数のセンサモデル又はバリエーションが使用される場合、コンフィギュレーション及びプログラミングソフトウェアは、どのセンサタイプが使用されるかを自動的に検出してよい。
幾つかの実施形態において、ビンピッキングシステムは、把持されたワークのグリッパに関する位置を確認し、ワークの設置においてあらゆるオフセットを補償するための視覚的機構を含んでいてよい。任意のビン形状がサポートされる場合、プログラミングにはビンのCADモデルが必要であり得る。ビンピッキングシステムは、エンドエフェクタの一般的な説明(例えば、長さ、幅、横幅)で有効に動作してよい。エンドエフェクタと把持されていないワークとの衝突の有無のチェックは、ユーザにより選択可能であってよい。ビンピッキングシステムでは、ピック地点のための一般的領域の定義が可能であってよい。
設置訓練手順は、以下のステップを含んでいてよい:1)オフライン:ロボットに、ワークをピックアップし、スキャンのためにセンサに提示するように教示する。エンドエフェクタの姿勢とワークの姿勢の両方を記録する。2)オフライン:ロボットに、ワークをその目的地に設置し、エンドエフェクタの姿勢を記録するように教示する。3)オンライン:ステップ1と同じロボットの姿勢を使って、ワークをピックし、それをスキャンのためにセンサに提示し、エンドエフェクタの姿勢とワークの姿勢を記録する。4)オンライン:以前のステップで収集された情報により、ワークをその目的地に設置する。
幾つかの実施形態において、設置の正確度は3つの根本要素により決まってよい:1)ロボットの運動学モデルの較正、2)センサの較正及びアラインメント、及び3)ワークの姿勢の推定。これら3つのタスクは、ロボットのエンドエフェクタの姿勢、センサの姿勢、及びワークの姿勢を及び一般的な座標系で定義する座標系変換を決定する。最終的なワーク設置は、これらの変換の関数として計算されてよい。
幾つかの実施形態において、エンドエフェクタと把持されていないワークとの間の衝突の有無のチェックは、ユーザにより選択可能であってよい。幾つかの実施形態において、経路計画では、標的ワークの周囲のある程度のクリアランスが探されてよい。分解能及び正確度の仕様は、ビン内の最悪のケースの位置で満たされてよい。
幾つかの実施形態において、ビンの上方には、オペレータがビンの中にさらに部品を投げ込むのに十分な余地があってよい。一般に、これは、ビンの上方で同様の大きさの補充ビンを回転させるための余地があってもよいことを意味し、ビンの大きさは深さ40cmまでである(すなわち、補充ビンの大きさの上限がある)。幾つかの実施形態において、動作には、センサ主軸がビンの上又は下平面に垂直である必要がないことがある。これによって、ビンを斜めに押してもよく、又はセンサの設置位置が不正確であってもよい。幾つかの実施形態において、動作には、ビンを水平にする必要がないことがある。プロセッサは、センサと組み合わせられていなければ、URコントローラの筐体内でURプロセッサと組み合わせられてよい。センサからの点群を作成する別の何れのソフトウェアも、製品ファミリのすべてのセンサをサポートしてよい。
幾つかの実施形態において、力限界を生じさせる障害物が検出され、再試行を強制してもよい。ビンピッキングシステムは、ピック対象部品が1つも見えない場合に、信号をアサートするか、警告を返してもよい。ビンピッキングシステムは、ウィザード又はその他の対話式ツールを使ってプログラムを生成してもよい。幾つかの実施形態において、ビンピッキングアプリケーションは、URCaps適合アプリケーションであってよい。ビンピッキングシステムは、設置動作を行うのではなく、コーリングプログラムに6次元オフセットを返すオプションを含んでいてよい。ビンピッキングシステムは、ピックを開始する前に、どのタイプのワークが望まれるかをプログラムにより明示することができてよい。ビンピッキングシステムは、コーリングプログラムに対して信号を送信するか、エラーを返す機構を含んでいてよい。設定は、ビンの大きさと形状に依存しなくてよい。幾つかの実施形態において、ビンピッキングシステムは、ワークのCADモデルを受け入れることができてよい。幾つかの実施形態において、ビンピッキングシステムにより、上記の2つのコンピュータのうちの1つ又は別のコンピュータ上でビンピッキングプログラムをシミュレーションに基づいて生成することができてよい。ビンピッキングシステムは、センサとビンとの間の一時的な障害物に耐えられてよい。一時的な障害物には、オペレータ、補充ビン、かき回し棒等が含まれていてよい。
幾つかの実施形態において、ビンピッキングシステムは、真空ピックアップ及び機械的グリッパの両方で有効に動作してよい。幾つかの実施形態において、ビンピッキングシステムは、1×1×0.1cmと小さい、及び30×30×30cmと大きいワークでも有効に動作してよい。しかしながら、何れの大きさのワーク又は対象物も本開示の範囲内で使用されてよいことがわかるであろう。
次に、図54を参照すると、本開示の実施形態に適合するビンピッキング動作の例を示すフローチャートが提供されている。例えば、幾つかの実施形態において、ロボットビンピッキングプロセス10は、ピックアップすべき候補ワーク又は対象物のリストを識別してよい200。前述のように、ワークは一般に、ロボットにより操作されてよい(例えば、把持される、ピックアップされる、移動される等)対象物を含んでいてよい。幾つかの実施形態において、このリストは1つ又は複数のメトリクスに基づいてランク付けされてよい。メトリクスには、ピックが成功する可能性、設置が成功する可能性、及び/又は特定の位置への設置の適当性が含まれていてよい。前述のように、幾つかの実施形態において、ビンピッキングシステム(例えば、ビンピッキングシステム64)は、ビン内の部品を識別するように構成されたスキャニングシステム(例えば、1つ又は複数のセンサ及び/又はスキャナ)を含んでいてよい。
幾つかの実施形態において、ロボットビンピッキングプロセス10は、1つ又は複数の候補対象物までの経路を、少なくとも一部に、ロボット環境及び少なくとも1つのロボット制約に基づいて特定してよい202。例えば、ロボットビンピッキングプロセス10は、候補対象物又はワークまでの経路を、ワークの形状、環境、ビン、アームエンドツール、及び/又はロボットリンク/ジョイントの限界/制約を含むがこれらに限定されない1つ又は複数の態様を考慮しながら定義してよい。幾つかの実施形態において、経路は実現可能経路、最適経路、又はその両方であってよい。例えば、実現可能経路は一般に、ワークまでの考え得る経路を含んでいてよく、最適経路は一般に、1つ又は複数の属性に合わせて最適化された(例えば、最短時間、ロボットアームの最も少ない調整等)経路を含んでいてよい。幾つかの実施形態において、経路は、候補ワークがピックアップされるときに、その場でリアルタイムで特定されてよい。
幾つかの実施形態において、センサは3Dセンサであってよい。幾つかの実施形態において、センサは2Dセンサであってよい。再スキャンは、センサ分解能が最大である検出空間の領域内で行われてよい。センサ(例えば、スキャナ)はまた、静的及び動的対象物を含む認識された環境を説明するデータセットを提供してもよい。幾つかの実施形態において、ロボットビンピッキングプロセス10は、データセットを使って、経路特定のため、及び/又は衝突回避のために環境を学習してよい。
幾つかの実施形態において、ロボットビンピッキングプロセス10は、1つ又は複数の候補対象物のうちの第一の候補対象物を把持する実現可能性の妥当性を確認してよい204。例えば、ロボットビンピッキングプロセス10は、リスト上の候補対象物又はワークを把持する実現可能性の妥当性を、ピックアンドプレース動作を実際の時間より高速でシミュレートすることによって確認するステップ204を試みてもよい。幾つかの実施形態において、シミュレーションは、ロボット運動学モデルを使用することを含んでいてよい。幾つかの実施形態において、シミュレーションは、ロボットの周囲の環境のモデルを含んでいてよい。環境は、静的物体及び動的物体(例えば、移動する物体)を含むことができる。幾つかの実施形態において、これらの物体は、運動学モデルにより表される機械を含んでいてよく、その状態は少なくとも一部に、センサのフィードバックに基づいて更新される。幾つかの実施形態において、1つ又は複数の物体は、センサからの点群データに基づく動的障害物としてモデル化されてよい。点群は、認識された物体の外面を表すボクセルグリッド、高さフィールド、又はメッシュに変換されてよい。第一の候補対象物の把持の実現可能性の妥当性をシミュレーション用いて確認する例を上述したが、本開示の範囲内で物体の把持の実現可能性の妥当性が他の方法でも確認されてよいことがわかるであろう。
幾つかの実施形態において、実現可能性の妥当性が確認されると、ロボットビンピッキングプロセス10は、第一の候補対象物を物理的に選択するようにロボットを制御してよい206。例えば、妥当性確認が合格した場合、ロボットビンピッキングプロセス10は、その候補ワークをピックアップするようにロボットを制御してよい。
幾つかの実施形態において、実現可能性の妥当性が確認されない場合、ロボットビンピッキングプロセス10は、第一の候補対象物の別の把持地点、第二の経路、又は第二の候補対象物のうちの少なくとも1つを選択してよい208。例えば、第一の候補対象物の把持の実現可能性の妥当性確認204が不合格であった場合、ロボットビンピッキングプロセス10は、以下のうちの少なくとも1つを選択してよい:同じ候補ワークの別の把持地点、異なる経路、及び/又はリスト上の異なる候補ワーク(例えば、リスト上のより下位の対象物)。幾つかの実施形態において、異なる把持地点、異なる経路、及び/又は異なる候補対象物を選択するステップには、前述のように異なる把持地点、異なる経路、及び/又は異なる候補対象物の実現可能性をシミュレートするステップを含んでいてよい。
幾つかの実施形態において、前述のように、1つ又は複数の候補対象物までの経路を特定するステップ202は、候補対象物に隣接する少なくとも1つの物体の1つ又は複数の表面に関する情報を使用するステップと、候補対象物に隣接する少なくとも1つの物体との衝突を回避するステップを含んでいてよい。このようにして、ロボットビンピッキングプロセス10は、候補対象物までの経路を特定する際に候補ワークの周囲の物体の表面に関する情報を使用して、候補ワークの周囲の物体との衝突を回避してもよい。例えば、幾つかの実施形態において、候補対象物に隣接する少なくとも1つの物体の1つ又は複数の表面に関する情報は、候補対象物を識別するステップの一環として収集される。幾つかの実施形態において、候補対象物を識別するステップ200は、1つ又は複数の隣接物体から候補対象物を区別するステップを含んでいてよく、これは、隣接物体に関する情報を収集するステップを含んでいてよい。幾つかの実施形態において、ロボットビンピッキングプロセス10は、ワークの外面に基づいてワークの簡略モデルを生成してもよい。
幾つかの実施形態において、ロボットを制御するステップ206は、第一の候補対象物の第二のスキャンを行うステップ、第一の候補対象物を、ある精度要求の固定位置を有する設置標的まで移動させるステップと、第一の候補対象物を操作するステップと、その精度要求に従って第一の候補対象物を設置標的まで送達するステップを含んでいてよい。例えば、ロボットは、候補ワークをピックアップし、それを機械であってよい設置位置まで移動させてよい。機械は、より高い精度要求を有する固定位置を有していてよい。したがって、設置の正確度を高めるために、ロボットビンピッキングプロセス10は、ピックアップされたワークをスキャンし(例えば、再スキャン)、ワークを操作し、それを機械に位置付けてよい。再スキャン動作は、ワークを位置付けるのに使用されたものと同じセンサ/スキャナ又は、追加のセンサ/スキャナを使用してよい。幾つかの実施形態において、候補対象物の第二のスキャンは、スキャナの最大分解能の領域で行われてよい。設置標的又は設置位置は前述の例の中で機械として説明されているが、本開示の範囲内で、設置標的は機械に限定されず、候補対象物を設置するための何れの標的であってもよいことがわかるであろう。
幾つかの実施形態において、ロボットを制御するステップ206は、第一の候補対象物をスキャナに提示し、第一の候補対象物の1つ又は複数のフィーチャを最大限に利用して第一の候補対象物を正確に位置付けるステップを含んでいてよい。例えば、ロボットビンピッキングプロセス10は、ワークをセンサ/スキャナに対して、ワーク上のフィーチャを最大限に利用してワークを正確に位置付けるような方法で提示してよい。幾つかの実施形態において、ロボットビンピッキングプロセス10は、ワークを、ピックの正確度を最大化するのではなく、それが物理的に選択されるか、又はピックされるのを成功させることができる可能性を最大にするような方法で位置特定し、ピックしてよい。
幾つかの実施形態において、ロボットビンピッキングプロセス10は、グラフィカルユーザインタフェース(GUI)において、ロボット又は1つ若しくは複数の候補対象物のうちの少なくとも1つを表示してよく、グラフィカルユーザインタフェースにより、ユーザはロボット、経路特定、シミュレーション、ワークセルの定義、性能パラメータ仕様、又はセンサ構成のうちの少なくとも1つを可視化し、又は制御することができる。例えば、ロボットビンピッキングプロセス10は、GUIを表示してよく、これは、ビンピッキングシステムを動作させるために使用されてよい。前述のように、幾つかの実施形態において、GUIを表示するステップは、経路特定、シミュレーション、ワークセルの定義、性能パラメータ仕様、モデルのインポート及びエクスポート、センサ構成等をユーザに提供することを含んでいてよいがこれらに限定されない。幾つかの実施形態において、GUIにより、プログラムの作成と、作成されたプログラムのデバッグを同時に行うことができてよい。GUIにより、ビンピッキングプログラムのコマンドを他のロボット制御コマンドと混ぜ合わせることができてもよい。
幾つかの実施形態において、ロボットビンピッキングプロセス10は、グラフィカルユーザインタフェースで、1つ又は複数の候補対象物以外の選択されていないコンポーネント及び選択されていない表面のすべてにわたるシュリンクラップ可視化を表示してよい。この表示は、プログラマが、訓練された把持が、周囲の物体の存在を考慮してワークをピックするのに適しているか否かを特定するのを支援してよい。
幾つかの実施形態において、前述のように、GUIは、何れの適当なデバイス上にあってもよく、これにはティーチペンダント上、ハンドヘルドデバイス上、パーソナルコンピュータ上、ロボット自体の上等が含まれるが、これら限定されない。幾つかの実施形態において、GUIは、その表示情報を複数の情報源から、例えばロボットコントローラから、及びロボットコントローラとは別のプロセッサから引き出してもよい。幾つかの実施形態において、GUIは、ユーザ入力を1つ又は複数の目的地、例えばロボットコントローラ及び/又はロボットコントローラとは別のプロセッサに誘導してよい。幾つかの実施形態において、GUIのユーザは、複数のデータソース又は目的地の存在を知っていても、知らなくてもよい。
幾つかの実施形態において、1つ又は複数の候補対象物を識別するステップ、1つ又は複数の候補対象物までの経路を特定するステップ、第一の候補対象物の把持の実現可能性の妥当性を確認するステップ、及び/又はロボットを制御するステップの少なくとも1つは、一次プロセッサ及び少なくとも1つのコプロセッサを使って実行されてよい。幾つかの実施形態において、前述のように、ロボットビンピッキングプロセス10は、GUIをコプロセッサからロボットのティーチペンダントへとストリームするように構成されてよい。このようにして、ロボットビンピッキングプロセス10は、GUIアプリケーションをコプロセッサ上で実行してよく、これはロボット及びワークセルの3Dレンダリングビューを含むことができ、その後、GUIの画像をティーチペンダントにストリームして表示されるようにしてよい。幾つかの実施形態において、ユーザのタッチイベントは、GUIアプリケーションとの遠隔インタラクションのために、ティーチペンダントからコプロセッサにストリームされてよい。
幾つかの実施形態において、1つ又は複数の候補対象物までの経路を特定するステップ202は、少なくとも一部に、大域的経路計画及び局所的経路計画のうちの少なくとも一方に基づいていてよい。例えば、ロボットビンピッキングプロセス10は、大域的経路計画、局所的経路計画、又はこれら2つの組合せを利用してよい。本明細書で使用されるかぎり、大域的経路計画は一般に、局所的経路計画では不可能な、衝突の起きない経路を発見するのを助け得る。局所的計画は、勾配降下法アルゴリズムと同様であることがあり、これはもっぱら局所解を求めることができる。これは、環境中に多くの障害物がある場合に発生してよい。ロボットビンピッキングプロセス10の局所的計画方式は、衝突回避最適化を含めたリアルタイム制御を含んでいてよい。例えば、これは素早く動作してよいが、解を求めるために常にロボットのワークスペース全体を探索するとはかぎらないことがある。それに対して、ロボットビンピッキングプロセス10を介した大域的経路計画は、解を求めてワークスペース全体を探索するように構成されてよい。
幾つかの実施形態において、第一の候補対象物を把持する実現可能性の妥当性を確認するステップ204は、ユーザプログラムに関連付けられる条件付きロジックを分析するステップを含んでいてよい。前述のように、幾つかの実施形態において、ビンピッキングアプリケーションの中で、ユーザは各種のシステム特性を定義するほか、部品のピックアンドプレースのためのユーザプログラムを開発する必要があることがある。このようにして、ロボットビンピッキングプロセス10は、制約された環境中でのエンドツーエンドのロボットの動きが成功することを、ロボットのスタート(ピック)位置とエンド(プレース)位置の変化及びユーザプログラムの中の条件付きロジックにより定義される複数の代替的経路を考慮して、保証しようとしてよい。ユーザプログラムが実行されると、ロボットビンピッキングプロセス10は、3つの主要タスクを繰り返し実行してよく、これらは、認識(すなわち、センサを使ってビンの中の部品を識別する)、妥当性確認(すなわち、環境の制約を考慮して、ユーザプログラムに明記されたルールに従ってロボットによりどの部品をピックし、その後設置できるかを識別する)、及び動き(すなわち、ユーザプログラムに明記されたルールにより、有効性が確認された部品に対するロボットの動きを実行すること)である。妥当性確認試験中、ロボットビンピッキングプロセス10は、部品をピックし、設置するために起こす必要のあるロボットの動きを特定してから、その動きが実際に行われるようにしてもよい。その結果、ロボットビンピッキングプロセス10は、ロボットが運動の途中で、何れかの環境又はロボットの柔軟性の制約によって停止するような状況を回避できる。
幾つかの実施形態において、第一の候補対象物の把持の実現可能性の妥当性を確認するステップ204は、すべての経路の代替案の妥当性を確認するステップ、特定の経路の代替案の妥当性を確認するステップ、何れかの経路の代替案の妥当性を確認するステップ、1つ又は複数の例外経路の妥当性を確認するステップ、1つ又は複数の区間を妥当性の確認から除外するステップ、又は経路の複数の区間の妥当性確認を並行して実行するステップを含んでいてよい。例えば、すべての経路の妥当性を確認するために、ユーザプログラムは条件付きロジックを有していてよく、ロボットは、有効性確認の時点では未知の幾つかの条件に基づいて異なる経路をとると予想される。例えば、部品が、ピックされた後にカメラにより検査する必要がある場合、検査結果により、その部品が、例えば設置位置1に設置されるか、又は設置位置2に設置されるかが決まる。動きの成功を保証するために、ロボットビンピッキングプロセス10の妥当性確認ロジックは、これらの代替案の両方を確認してよく、その後で、部品を移動させることができる。
特定の経路の代替案の妥当性を確認するために、ユーザプログラムは条件付きロジックを有することができ、ロボットは、妥当性確認の時点で既知の幾つかの条件に基づいて異なる経路を取ると予想してよい。例えば、ユーザプログラムは、その部品がどのようにピックされたか(すなわち、ロボットがどのようにその部品を保持しているか)を条件として、ロボットの動きを定義してよい。パレタイズ中、部品は、幾つかの既知の位置のうちの1つに設置されてもよく、プログラムは予測可能なパターンでこれらの位置について反復処理する。これらの場合に、考え得る代替的経路を特定する条件は、妥当性確認の時点でわかっている。動きの成功を保証するために、ユーザプログラムの中の条件付きフローの幾つかの支流において明示される動きだけを分析すればよい。実際に、すべてのコードパスを分析することは、この場合、有害であるかもしれず、それは、ユーザプログラム内の条件付きロジックに基づいて取ることのできない経路区間が、これらの妥当性が確認できるか否かに関係なく、ロボットの移動を阻止すべきではないため、より長い時間を要するからである。
何れかの経路の代替案の妥当性を確認するために、ユーザプログラムが何れの代替案も容認可能な幾つかの経路代替案を定義し得るようにすることができる。例えば、パレタイズ中、部品又は対象物は、幾つかの既知の位置のうちの何れか1つに設置できる。この場合、妥当性確認は、プログラムにより明示される幾つかの経路オプションを考慮して、有効に動作する1つを見つけることになる。
1つ又は複数の例外経路の妥当性を確認するために、1つ又は複数の経路が、例外条件の結果としてロボットにより取られてもよい。例えば、ピック中に部品又は対象物がロボットのグリッパに取り付けられそこなった場合、ロボットビンピッキングプロセス10は、ロボットを原位置に戻るように誘導できる。ロボットが、部品のピック時にその動きに対抗する過剰な力に遭遇すると、ロボットビンピッキングプロセス10は、ロボットを原位置に戻るように誘導することができる。これらの場合、妥当性確認では、これらの部品の成立性を、これらがユーザプログラムのフローの中で明示されていなくても、確認する必要があり得る。
1つ又は複数の区間を妥当性確認から除外するために、ユーザは、プログラムフローの幾つかの区間を妥当性確認から除外することを選択してよい。例えば、1つ又は複数のコードパスは、妥当性を確認できない種類の動きを含んでいてもよい。幾つかの実施形態において、ユーザは、性能を最適化するために妥当性確認を行うように選択してよい。これらの場合、妥当性確認は、条件付きで、行われなくてよい。
幾つかの実施形態において、ロボットビンピッキングプロセス10は、経路の複数の区間の並行妥当性確認を行ってよい。例えば、性能を最適化するために、経路の複数のサブセクションは、並行して妥当性を確認することができる。
上で説明したように、本発明は、方法のステップを実行するための機能を提供する各種のモジュールからなる方法及びそれに対応する機器の両方を提供する。モジュールは、ハードウェアとして実装されてよく、又は、コンピュータプロセッサにより実行されるソフトウェア又はファームウェアとして実装されてもよい。特に、ファームウェア又はソフトウェアの場合、本発明は、その上にコンピュータプロセッサにより実行されるためのコンピュータプログラムコード(すなわち、ソフトウェア又はファームウェア)を具現化したコンピュータ可読記憶構造を含むコンピュータプログラム製品として提供できる。
上記の構成は本発明の原理の応用の例示にすぎないと理解されたい。当業者により、本開示の範囲から逸脱することなく、様々な改良や代替的構成が考案されてよい。

Claims (19)

  1. ロボットビンピッキングの方法であって、
    ロボットが選択するための1つ又は複数の候補対象物を識別するステップと、
    前記1つ又は複数の候補対象物までの経路を、少なくとも部分的に、ロボット環境及び少なくとも1つのロボット制約に基づいて決定するステップと、
    前記1つ又は複数の候補対象物のうちの第一の候補対象物の把持の実現可能性の妥当性を確認するステップと、
    前記実現可能性の妥当性が確認された場合、前記第一の候補対象物を物理的に選択するように前記ロボットを制御するステップと、
    前記実現可能性の妥当性が確認されない場合、前記第一の候補対象物の異なる把持地点、第二の経路、又は第二の候補対象物のうちの少なくとも1つを選択するステップと
    を含む方法。
  2. 妥当性を確認するステップは、ロボットの運動学モデルを使用するステップを含む、請求項1に記載の方法。
  3. 前記経路は、実現可能経路又は最適経路の少なくとも一方である、請求項1に記載の方法。
  4. 前記経路は、少なくとも部分的に、前記ロボットを制御しながらリアルタイムで決定される、請求項1に記載の方法。
  5. 前記経路を決定するステップは、
    前記候補対象物に隣接する少なくとも1つの物体の1つ又は複数の表面に関する情報を使用するステップと、
    前記候補対象物に隣接する前記少なくとも1つの物体との衝突を回避するステップと
    を含む、請求項1に記載の方法。
  6. 前記ロボット又は前記1つ若しくは複数の候補対象物の少なくとも一方をグラフィカルユーザインタフェースに表示するステップをさらに含み、
    前記グラフィカルユーザインタフェースにより、ユーザは前記ロボット、経路決定、シミュレーション、ワークセル定義、性能パラメータ仕様、又はセンサ構成のうちの少なくとも1つを視覚化し、又は制御できる、請求項1に記載の方法。
  7. 前記グラフィカルユーザインタフェースにより、プログラムと前記プログラムに関連付けられるデバッグプロセスの同時生成が可能となる、請求項6に記載の方法。
  8. 前記グラフィカルユーザインタフェースは、ティーチペンダント、ハンドヘルド機器、パーソナルコンピュータ、又は前記ロボットのうちの1つ又は複数に関連付けられる、請求項6に記載の方法。
  9. スキャナを用いた1つ又は複数の静的及び動的物体を含む環境の画像を提供するステップをさらに含み、
    前記ロボットは、前記画像を受信し、前記画像を使用して前記環境を学習し、前記経路及び衝突回避を決定するように構成される、請求項1に記載の方法。
  10. 前記ロボットを制御するステップは、
    前記第一の候補対象物の第二のスキャンを実行するステップと、
    前記第一の候補対象物を、一定の精度要求の固定位置を有する設置標的まで移動させるステップと、
    前記第一の候補対象物を操作するステップと、
    前記第一の候補対象物を前記精度要求に従って前記設置標的まで送達するステップと
    を含む、請求項1に記載の方法。
  11. 前記ロボットを制御するステップは、前記第一の候補対象物上の1つ又は複数のフィーチャを最大限に利用して前記第一の候補対象物の位置を精密に特定するべく、前記第一の候補対象物をスキャナに提示するステップを含む、請求項1に記載の方法。
  12. 前記ロボットを制御するステップは、前記第一の候補対象物を、物理的選択が成功する可能性を最大限にする方法で位置特定及びピックするステップを含む、請求項1に記載の方法。
  13. 前記第二のスキャンは、前記スキャナの最大分解能エリアにおいて行われる、請求項10に記載の方法。
  14. 前記1つ又は複数の候補対象物までの経路を決定するステップは、少なくとも部分的に、ロボットリンケージ又はロボットジョイントの限度の少なくとも一方に基づく、請求項1に記載の方法。
  15. 前記1つ又は複数の候補対象物以外の非選択コンポーネント及び非選択表面のすべてにわたるシュリンクラップ可視化を前記グラフィカルユーザインタフェースに表示するステップをさらに含む、請求項6に記載の方法。
  16. 識別するステップ、決定するステップ、妥当性を確認するステップ、又は制御するステップの少なくとも1つは、一次プロセッサと少なくとも1つのコプロセッサのうちの少なくとも1つを使って実行される、請求項1に記載の方法。
  17. 前記1つ又は複数の候補対象物までの経路を決定するステップは、少なくとも部分的に、大域的経路計画及び局所的経路計画の少なくとも一方に基づく、請求項1に記載の方法。
  18. 第一の候補対象物を把持する実現可能性の妥当性を確認するステップは、ユーザプログラムに関連付けられる条件付きロジックを分析するステップを含む、請求項1に記載の方法。
  19. 第一の候補対象物を把持する実現可能性の妥当性を確認するステップは、すべての経路代替案の妥当性を確認するステップ、特定の経路代替案の妥当性を確認するステップ、何れかの経路代替案の妥当性を確認するステップ、1つ若しくは複数の例外経路の妥当性を確認するステップ、1つ若しくは複数の区間を妥当性確認から除外するステップ、又は前記経路の複数の区間の並行妥当性確認を行うステップ、のうちの少なくとも1つを含む、請求項18に記載の方法。
JP2020569995A 2018-06-26 2019-06-26 ロボットビンピッキングの方法 Active JP7437326B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862690186P 2018-06-26 2018-06-26
US62/690,186 2018-06-26
PCT/US2019/039226 WO2020006071A1 (en) 2018-06-26 2019-06-26 System and method for robotic bin picking

Publications (2)

Publication Number Publication Date
JP2021528259A true JP2021528259A (ja) 2021-10-21
JP7437326B2 JP7437326B2 (ja) 2024-02-22

Family

ID=67297328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020569995A Active JP7437326B2 (ja) 2018-06-26 2019-06-26 ロボットビンピッキングの方法

Country Status (8)

Country Link
US (1) US11511415B2 (ja)
EP (1) EP3814072A1 (ja)
JP (1) JP7437326B2 (ja)
CN (1) CN112313045A (ja)
CA (1) CA3102997A1 (ja)
MX (1) MX2020014187A (ja)
SG (1) SG11202011865WA (ja)
WO (1) WO2020006071A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7460744B1 (ja) 2022-12-27 2024-04-02 京セラ株式会社 ロボット制御装置、ロボット、かき混ぜ方法及びプログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11407111B2 (en) * 2018-06-27 2022-08-09 Abb Schweiz Ag Method and system to generate a 3D model for a robot scene
USD938960S1 (en) * 2019-03-27 2021-12-21 Teradyne, Inc. Display screen or portion thereof with graphical user interface
US11648674B2 (en) 2019-07-23 2023-05-16 Teradyne, Inc. System and method for robotic bin picking using advanced scanning techniques
KR20190104483A (ko) * 2019-08-21 2019-09-10 엘지전자 주식회사 로봇 시스템 및 그 제어 방법
US11701777B2 (en) * 2020-04-03 2023-07-18 Fanuc Corporation Adaptive grasp planning for bin picking
USD950594S1 (en) * 2020-06-30 2022-05-03 Siemens Ltd., China Display screen with graphical user interface
US11559885B2 (en) * 2020-07-14 2023-01-24 Intrinsic Innovation Llc Method and system for grasping an object
CN112734932A (zh) * 2021-01-04 2021-04-30 深圳辰视智能科技有限公司 一种条形物体拆垛方法、拆垛装置及计算机可读存储介质
CN112802093B (zh) * 2021-02-05 2023-09-12 梅卡曼德(北京)机器人科技有限公司 对象抓取方法及装置
US12017356B2 (en) * 2021-11-30 2024-06-25 Fanuc Corporation Collision handling methods in grasp generation
CN116330306B (zh) * 2023-05-31 2023-08-15 之江实验室 一种物体的抓取方法、装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004052598A1 (ja) * 2002-12-12 2004-06-24 Matsushita Electric Industrial Co., Ltd. ロボット制御装置
JP2012111029A (ja) * 2010-11-19 2012-06-14 Fanuc Robotics America Corp 3次元ロボットワークセルデータの表示システム、表示方法及び表示装置
JP2016132086A (ja) * 2015-01-22 2016-07-25 三菱電機株式会社 ワーク供給装置およびワーク把持姿勢計算方法
JP2017047505A (ja) * 2015-09-02 2017-03-09 トヨタ自動車株式会社 把持可否判定方法

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757587B1 (en) 2003-04-04 2004-06-29 Nokia Corporation Method and apparatus for dynamically reprogramming remote autonomous agents
US7680300B2 (en) 2004-06-01 2010-03-16 Energid Technologies Visual object recognition and tracking
US8301421B2 (en) 2006-03-31 2012-10-30 Energid Technologies Automatic control system generation for robot design validation
DE102007026956A1 (de) 2007-06-12 2008-12-18 Kuka Innotec Gmbh Verfahren und System zum Roboter geführten Depalettieren von Reifen
US8408918B2 (en) 2007-06-27 2013-04-02 Energid Technologies Corporation Method and apparatus for haptic simulation
JP2009032189A (ja) * 2007-07-30 2009-02-12 Toyota Motor Corp ロボットの動作経路生成装置
US9357708B2 (en) 2008-05-05 2016-06-07 Energid Technologies Corporation Flexible robotic manipulation mechanism
US8428781B2 (en) 2008-11-17 2013-04-23 Energid Technologies, Inc. Systems and methods of coordination control for robot manipulation
CN102216037B (zh) * 2008-11-19 2014-06-18 Abb技术有限公司 用于优化工业机器人的编程移动路径的方法和装置
JP5528095B2 (ja) * 2009-12-22 2014-06-25 キヤノン株式会社 ロボットシステム、その制御装置及び方法
JP5306313B2 (ja) * 2010-12-20 2013-10-02 株式会社東芝 ロボット制御装置
JP5892360B2 (ja) * 2011-08-02 2016-03-23 ソニー株式会社 ロボット指示装置、ロボット指示方法、プログラム、及び通信システム
US20150298321A1 (en) * 2012-10-16 2015-10-22 Beckman Coulter, Inc. System and method including specimen gripper
US9233470B1 (en) * 2013-03-15 2016-01-12 Industrial Perception, Inc. Determining a virtual representation of an environment by projecting texture patterns
JP5788460B2 (ja) * 2013-11-05 2015-09-30 ファナック株式会社 バラ積みされた物品をロボットで取出す装置及び方法
US9764469B1 (en) * 2013-12-13 2017-09-19 University Of South Florida Generating robotic trajectories with motion harmonics
US10078712B2 (en) 2014-01-14 2018-09-18 Energid Technologies Corporation Digital proxy simulation of robotic hardware
JP5897624B2 (ja) * 2014-03-12 2016-03-30 ファナック株式会社 ワークの取出工程をシミュレーションするロボットシミュレーション装置
DE102014008444A1 (de) * 2014-06-06 2015-12-17 Liebherr-Verzahntechnik Gmbh Vorrichtung zum automatisierten Entnehmen von in einem Behälter angeordneten Werkstücken
US10635761B2 (en) 2015-04-29 2020-04-28 Energid Technologies Corporation System and method for evaluation of object autonomy
US9724826B1 (en) * 2015-05-28 2017-08-08 X Development Llc Selecting physical arrangements for objects to be acted upon by a robot
CN104942808A (zh) * 2015-06-29 2015-09-30 广州数控设备有限公司 机器人运动路径离线编程方法及***
US10118296B1 (en) * 2015-09-10 2018-11-06 X Development Llc Tagged robot sensor data
CA3117170C (en) 2016-02-08 2023-08-29 Berkshire Grey, Inc. Systems and methods for providing processing of a variety of objects employing motion planning
EP3243607B1 (en) * 2016-05-09 2021-01-27 OpiFlex Automation AB A system and a method for programming an industrial robot
US10445442B2 (en) 2016-09-01 2019-10-15 Energid Technologies Corporation System and method for game theory-based design of robotic systems
WO2018087546A1 (en) 2016-11-08 2018-05-17 Dogtooth Technologies Limited A robotic fruit picking system
CN106553195B (zh) * 2016-11-25 2018-11-27 中国科学技术大学 工业机器人抓取过程中的物体6自由度定位方法及***
CN106406320B (zh) * 2016-11-29 2019-08-20 重庆重智机器人研究院有限公司 机器人路径规划方法及规划路线的机器人
US10363635B2 (en) * 2016-12-21 2019-07-30 Amazon Technologies, Inc. Systems for removing items from a container
CN106647282B (zh) * 2017-01-19 2020-01-03 北京工业大学 一种考虑末端运动误差的六自由度机器人轨迹规划方法
CN107263484B (zh) * 2017-08-10 2020-04-14 南京埃斯顿机器人工程有限公司 机器人关节空间点到点运动的轨迹规划方法
US11220007B2 (en) * 2017-08-23 2022-01-11 Shenzhen Dorabot Robotics Co., Ltd. Method of stacking goods by robot, system of controlling robot to stack goods, and robot
US10981272B1 (en) * 2017-12-18 2021-04-20 X Development Llc Robot grasp learning
US11458626B2 (en) * 2018-02-05 2022-10-04 Canon Kabushiki Kaisha Trajectory generating method, and trajectory generating apparatus
US10899006B2 (en) * 2018-05-01 2021-01-26 X Development Llc Robot navigation using 2D and 3D path planning
EP3581341B1 (de) * 2018-06-13 2020-12-23 Siemens Healthcare GmbH Verfahren zum betreiben eines roboters, datenspeicher mit einem entsprechenden programmcode, roboter und robotersystem

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004052598A1 (ja) * 2002-12-12 2004-06-24 Matsushita Electric Industrial Co., Ltd. ロボット制御装置
JP2012111029A (ja) * 2010-11-19 2012-06-14 Fanuc Robotics America Corp 3次元ロボットワークセルデータの表示システム、表示方法及び表示装置
JP2016132086A (ja) * 2015-01-22 2016-07-25 三菱電機株式会社 ワーク供給装置およびワーク把持姿勢計算方法
JP2017047505A (ja) * 2015-09-02 2017-03-09 トヨタ自動車株式会社 把持可否判定方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7460744B1 (ja) 2022-12-27 2024-04-02 京セラ株式会社 ロボット制御装置、ロボット、かき混ぜ方法及びプログラム

Also Published As

Publication number Publication date
SG11202011865WA (en) 2021-01-28
US11511415B2 (en) 2022-11-29
MX2020014187A (es) 2021-03-09
CN112313045A (zh) 2021-02-02
WO2020006071A1 (en) 2020-01-02
US20190389062A1 (en) 2019-12-26
EP3814072A1 (en) 2021-05-05
JP7437326B2 (ja) 2024-02-22
CA3102997A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
JP7437326B2 (ja) ロボットビンピッキングの方法
EP3166084B1 (en) Method and system for determining a configuration of a virtual robot in a virtual environment
JP6931457B2 (ja) モーション生成方法、モーション生成装置、システム及びコンピュータプログラム
CN113039499B (zh) 通过自主机器支持任务的对象标记
US11648674B2 (en) System and method for robotic bin picking using advanced scanning techniques
US20230153486A1 (en) Method and device for simulation
Kootbally et al. Enabling robot agility in manufacturing kitting applications
WO2018176025A1 (en) System and method for engineering autonomous systems
US11370120B2 (en) Method and system for teaching a robot in reaching a given target in robot manufacturing
US12011835B2 (en) Engineering autonomous systems with reusable skills
WO2016132521A1 (ja) 教示データ生成装置
US9415512B2 (en) System and method for enhancing a visualization of coordinate points within a robots working envelope
US20220172107A1 (en) Generating robotic control plans
US20230249345A1 (en) System and method for sequencing assembly tasks
JP7074057B2 (ja) 産業用ロボットの作業記述作成装置および産業用ロボットの作業記述作成方法
Solberg et al. Utilizing Reinforcement Learning and Computer Vision in a Pick-And-Place Operation for Sorting Objects in Motion
US20220043455A1 (en) Preparing robotic operating environments for execution of robotic control plans
US20230321815A1 (en) General fixture for robotic assembly processes
US20220395980A1 (en) Determining robotic calibration processes
US20210187746A1 (en) Task planning accounting for occlusion of sensor observations
Švec Robotic Object Manipulation in Virtual and Physical Environment
WO2024054797A1 (en) Visual robotic task configuration system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230711

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240123

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240209

R150 Certificate of patent or registration of utility model

Ref document number: 7437326

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150