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

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

▶ テラダイン、 インコーポレイテッドの特許一覧

特表2022-541120高度なスキャニング技法を用いるロボットビンピッキングのためのシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-09-22
(54)【発明の名称】高度なスキャニング技法を用いるロボットビンピッキングのためのシステム及び方法
(51)【国際特許分類】
   B25J 9/16 20060101AFI20220914BHJP
【FI】
B25J9/16
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021576977
(86)(22)【出願日】2020-07-10
(85)【翻訳文提出日】2021-12-24
(86)【国際出願番号】 US2020041598
(87)【国際公開番号】W WO2021015967
(87)【国際公開日】2021-01-28
(31)【優先権主張番号】16/520,007
(32)【優先日】2019-07-23
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLACKBERRY
(71)【出願人】
【識別番号】502391840
【氏名又は名称】テラダイン、 インコーポレイテッド
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100095500
【弁理士】
【氏名又は名称】伊藤 正和
(74)【代理人】
【識別番号】100111235
【弁理士】
【氏名又は名称】原 裕子
(74)【代理人】
【識別番号】100195257
【弁理士】
【氏名又は名称】大渕 一志
(72)【発明者】
【氏名】アロイジオ、 クリストファー トーマス
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS02
3C707JS03
3C707JU03
3C707JU12
3C707JU13
3C707JU17
3C707KS04
3C707KT01
3C707KT03
3C707LS15
3C707LT17
3C707LV07
3C707LV14
(57)【要約】
ワークのピック及び設置をプログラムするための方法及びシステムが提供される。実施形態は、ロボットに取り付けられたエンドエフェクタにワークを関連付けることと、ワークがエンドエフェクタに関連付けられている間にワークをスキャンすることとを含んでいてよい。実施形態はまた、スキャンすることに少なくとも部分的に基づいて、ロボットに対するワークの姿勢を判定することを含んでいてよい。
【特許請求の範囲】
【請求項1】
ワークのピック及び設置をプログラムする方法であって、
ロボットに取り付けられたエンドエフェクタにワークを関連付けることと、
前記ワークが前記エンドエフェクタに関連付けられている間に前記ワークをスキャンすることと、
前記スキャンすることに少なくとも部分的に基づいて、前記ロボットに対する前記ワークの姿勢を判定することと
を含む、方法。
【請求項2】
前記ロボットを介して前記ワークをピックすることをさらに含み、
前記ワークをピックすることは、前記ワークの前記姿勢に対する前記ロボットの1つ又は複数の姿勢を指定することを含む、請求項1に記載の方法。
【請求項3】
前記ワークを設置することをさらに含み、
前記ワークを設置することは、ロボット姿勢を判定することと、前記ロボット姿勢から前記ワークの前記姿勢を推測することとを含む、請求項1に記載の方法。
【請求項4】
前記ワークを設置することをさらに含み、
前記ワークを設置することは、前記ワークの前記姿勢に対する前記ロボットの1つ又は複数の姿勢を指定することを含む、請求項1に記載の方法。
【請求項5】
グラフィカルユーザインタフェースにおいて、視覚的確認を可能にするように前記ロボットに対する前記ワークの前記姿勢を表示することをさらに含む、請求項1に記載の方法。
【請求項6】
スキャンすること及び判定することは、前記ロボットが固定位置にある間に行われる、請求項1に記載の方法。
【請求項7】
1つ又は複数の座標を入力することによって、前記ロボットに対する前記ワークの前記姿勢をユーザが調整できるようにすることをさらに含む、請求項1に記載の方法。
【請求項8】
グラフィカルユーザインタフェースにおいて、確認のために前記ワークの調整された姿勢を表示することをさらに含む、請求項7に記載の方法。
【請求項9】
ワークのピック及び設置をプログラムするためのシステムであって、
ロボットに取り付けられ、自身にワークを関連付けるように構成されたエンドエフェクタと、
前記ワークが前記エンドエフェクタに関連付けられている間に前記ワークをスキャンするように構成されたスキャナと、
前記スキャンすることに少なくとも部分的に基づいて、前記ロボットに対する前記ワークの姿勢を判定するように構成されたコンピューティングデバイスと
を備える、システム。
【請求項10】
前記ロボットは前記ワークをピックするように構成され、
前記ワークをピックすることは、前記ワークの前記姿勢に対する前記ロボットの1つ又は複数の姿勢を指定することを含む、請求項9に記載のシステム。
【請求項11】
前記ロボットは、前記ワークを設置するように構成され、
前記ワークを設置することは、ロボット姿勢を判定することと、前記ロボット姿勢から前記ワークの前記姿勢を推測することとを含む、請求項9に記載のシステム。
【請求項12】
前記ロボットは、前記ワークを設置するように構成され、
前記ワークを設置することは、前記ワークの前記姿勢に対する前記ロボットの1つ又は複数の姿勢を指定することを含む、請求項9に記載のシステム。
【請求項13】
前記コンピューティングデバイスは、グラフィカルユーザインタフェースにおいて、視覚的確認を可能にするべく前記ロボットに対する前記ワークの前記姿勢を表示するように構成される、請求項9に記載のシステム。
【請求項14】
スキャンすること及び判定することは、前記ロボットが固定位置にある間に行われる、請求項9に記載のシステム。
【請求項15】
前記グラフィカルユーザインタフェースは、1つ又は複数の座標を入力することによって、前記ロボットに対する前記ワークの前記姿勢をユーザが調整できるようにするように構成される、請求項13に記載のシステム。
【請求項16】
前記グラフィカルユーザインタフェースは、前記グラフィカルユーザインタフェースにおいて、確認のために前記ワークの調整された姿勢を表示するように構成される、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2019年7月23日に出願された米国非仮特許出願第16/520,007号の利益を主張するものである。同仮出願の全内容を参照によって本願に援用する。
【0002】
本発明は一般に、ロボット工学に関し、より詳しくはロボットビンピッキングのためのシステムと方法に関する。
【背景技術】
【0003】
ビン(容器)から一度に1つのワークを取り出して機械の中に移すこと、バルク部品の分別、及び注文履行といった特定の形態の手作業は、多大な労働力を要する。これらの仕事は、ワーク又は作業が重いか、尖った部分があるか、又はそれ以外に危害の及ぶ可能性のある場合には危険であることが多い。これらの問題に対処する試みとして、ビンピッキングロボットによるこのような冗漫な仕事への取り組みがなされている。しかしながら、ロボットビンピッキングは、求められる正確度と精度のレベルが、多くの場合システムの能力を超えるため、マスタすることが特に困難なタスクである。ビンピッキングは一般に、ビン内の部品を見つけ出し、部品をピックし、部品を指定場所に移動した後、部品を下ろすことを含む。従来のロボットプログラミングは一般に、一連のロボット姿勢をプログラムで指定することを伴う。「例示プログラミング(programming by example)」、「リードスループログラミング(lead-through programming)」、又は「ティーチインプログラミング(teach-in programming)」は、従来、一連の姿勢を通してロボットを案内することを意味する。
【発明の概要】
【課題を解決するための手段】
【0004】
1つの実施例において、ワークのピック及び設置をプログラムするための方法が提供される。本方法は、ロボットに取り付けられたエンドエフェクタにワークを関連付けることと、ワークがエンドエフェクタに関連付けられている間にワークをスキャンすることとを含んでいてよい。本方法は、スキャンすることに少なくとも部分的に基づいて、ロボットに対するワークの姿勢を判定することを更に含んでいてよい。
【0005】
以下の特徴のうちの1つ又は複数が含まれていてよい。本方法は、ロボットを介してワークをピックすることであって、ワークをピックすることが、ワークの姿勢に対するロボットの1つ又は複数の姿勢を指定することを含む、ことを含んでいてよい。本方法は、ワークを設置することであって、ワークを設置することが、ロボット姿勢を判定することと、ロボット姿勢からワークの姿勢を推測することとを含む、ことを更に含んでいてよい。本方法はまた、ワークを設置することであって、ワークを設置することが、ワークの姿勢に対するロボットの1つ又は複数の姿勢を指定することを含む、ことを含んでいてよい。本方法は、グラフィカルユーザインタフェースにおいて、視覚的確認を可能にするようにロボットに対するワークの姿勢を表示することを更に含んでいてよい。幾つかの実施形態において、スキャンすること及び判定することが、ロボットが固定位置にある間に行われてよい。本方法は、1つ又は複数の座標を入力することによって、ロボットに対するワークの姿勢をユーザが調整できるようにすることを更に含んでいてよい。本方法はまた、グラフィカルユーザインタフェースにおいて、確認のためにワークの調整された姿勢を表示することを含んでいてよい。
【0006】
別の実施例において、ワークのピック及び設置をプログラムするためのシステムが提供される。本システムは、ロボットに取り付けられ、自身にワークを関連付けるように構成されたエンドエフェクタを含んでいてよい。本システムはまた、ワークがエンドエフェクタに関連付けられている間にワークをスキャンするように構成されたスキャナを備えていてよい。本システムは、スキャンすることに少なくとも部分的に基づいて、ロボットに対するワークの姿勢を判定するように構成されたコンピューティングデバイスを更に備えていてよい。
【0007】
以下の特徴のうちの1つ又は複数が含まれていてよい。ロボットが、ワークをピックするように構成されてよく、ワークをピックすることが、ワークの姿勢に対するロボットの1つ又は複数の姿勢を指定することを含む。ロボットが、ワークを設置するように構成されてよく、ワークを設置することが、ロボット姿勢を判定することと、ロボット姿勢からワークの姿勢を推測することとを含む。ロボットが、ワークを設置するように構成されてよく、ワークを設置することが、ワークの姿勢に対するロボットの1つ又は複数の姿勢を指定することを含む。コンピューティングデバイスが、グラフィカルユーザインタフェースにおいて、視覚的確認を可能にするようにロボットに対するワークの姿勢を表示するように構成されてよい。スキャンすること及び判定することが、ロボットが固定位置にある間に行われてよい。グラフィカルユーザインタフェースが、1つ又は複数の座標を入力することによって、ロボットに対するワークの姿勢をユーザが調整できるようにするように構成されてよい。グラフィカルユーザインタフェースが、確認のためにワークの調整された姿勢をグラフィカルユーザインタフェースにおいて表示するように構成されてよい。
【0008】
1つ又は複数の実施例の詳細は、添付の図面及び以下の説明に示される。その他の特徴と利点も、説明、図面、及び特許請求の範囲から明らかとなるであろう。
【0009】
添付の図面は本開示の実施形態を更に理解できるようにするために含められ、本明細書の一部に組み込まれ、及びそれを構成しており、本開示の実施形態を例示し、説明と共に本開示の実施形態の原理を説明する役割を果たす。
【図面の簡単な説明】
【0010】
図1】分散型コンピューティングネットワークに連結されたロボットビンピッキングプロセスの線図である。
図2図1のロボットビンピッキングプロセスの1つの実施例のフローチャートである。
図3】本開示の実施形態による、URのReal-Time Data Exchangeインタフェースを用いた、コプロセッサ上のすべてのモジュールとEthernet接続によるURコントローラとのインタフェースを実行するように構成されたビンピッキングシステムである。
図4】本開示の実施形態によるビンピッキングシステムの配置図を示すインタフェースである。
図5】本開示の実施形態による、ユーザが原位置を設定できるようにするグラフィカルユーザインタフェースである。
図6】本開示の実施形態による、ユーザがツールを構成できるようにするグラフィカルユーザインタフェースである。
図7】本開示の実施形態による、ユーザがビンを位置合わせできるようにするグラフィカルユーザインタフェースである。
図8】本開示の実施形態による、ユーザがビンを位置合わせできるようにするグラフィカルユーザインタフェースである。
図9】本開示の実施形態による、ユーザがビン衝突形状を構成できるようにするグラフィカルユーザインタフェースである。
図10】本開示の実施形態による、ユーザが部品テンプレートの妥当性を確認できるようにするグラフィカルユーザインタフェースである。
図11】本開示の実施形態による、ユーザが再スキャン位置を構成できるようにするグラフィカルユーザインタフェースである。
図12】本開示の実施形態による、ユーザが把持を追加できるようにするグラフィカルユーザインタフェースである。
図13】本開示の実施形態による、ユーザが把持及び設置を訓練できるようにするグラフィカルユーザインタフェースである。
図14】本開示の実施形態による、ユーザがピックを訓練できるようにするグラフィカルユーザインタフェースである。
図15】本開示の実施形態による、ユーザがピックルールを設定できるようにするグラフィカルユーザインタフェースである。
図16】本開示の実施形態による、ユーザがピックルールを設定できるようにするグラフィカルユーザインタフェースである。
図17】本開示の実施形態による、ユーザがピックルールを設定できるようにするグラフィカルユーザインタフェースである。
図18】本開示の実施形態による、ユーザがピックルールを設定できるようにするグラフィカルユーザインタフェースである。
図19】本開示の実施形態による、ユーザがピックルールを設定できるようにするグラフィカルユーザインタフェースである。
図20】本開示の実施形態による、ユーザがピックルールを設定できるようにするグラフィカルユーザインタフェースである。
図21】本開示の実施形態による、ユーザが設置ルールを設定できるようにするグラフィカルユーザインタフェースである。
図22】本開示の実施形態による、ユーザが設置ルールを設定できるようにするグラフィカルユーザインタフェースである。
図23】本開示の実施形態による、ユーザが設置ルールを設定できるようにするグラフィカルユーザインタフェースである。
図24】本開示の実施形態による、ユーザが設置ルールを設定できるようにするグラフィカルユーザインタフェースである。
図25】本開示の実施形態による、ユーザが設置ルールを設定できるようにするグラフィカルユーザインタフェースである。
図26】本開示の実施形態によるグラフィカルユーザインタフェースである。
【発明を実施するための形態】
【0011】
本開示の実施形態は、ロボットビンピッキングのためのシステム及び方法に関する。したがって、本明細書に含められるビンピッキング方法によれば、ロボットがスキャニングシステムと協働して、ビン内の部品を識別し、部品をビンからピックし、ピックされた部品を指定された場所に設置することを可能にし得る。上述の従来のロボットプログラミング例とは対照的に、本明細書で説明されるロボットビンピッキングプロセスの各実施形態は、ロボット単独とは対照的に、ロボットのエンドエフェクタに対するワークの関係に重点を置いて構成される。ワークはビン内のどこにあってもよく、最終的なワーク設置は、多くの異なるロボット姿勢を用いて達成され得る。
【0012】
本願の実施形態は、米国特許第6,757,587号明細書、米国特許第7,680,300号明細書、米国特許第8,301,421号明細書、米国特許第8,408,918号明細書、米国特許第8,428,781号明細書、米国特許第9,357,708号明細書、米国特許出願公開第2015/0199458号明細書、米国特許出願公開第2016/0321381号明細書、米国特許出願公開第2018/0060459号明細書、並びに米国特許出願第16/453,197号明細書及び16/378,343号明細書の概念を含み得、各々の全内容のすべてを参照によって本願に援用する。
【0013】
ここで、図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の登録商標である)。
【0014】
後でより詳しく述べるように、図1及び図2のロボットビンピッキングプロセス10等のロボットビンピッキングプロセスは、ワークのピック及び設置をプログラムするために使用されてよい。本プロセスは、ロボットに取り付けられたエンドエフェクタにワークを関連付けること200と、ワークがエンドエフェクタに関連付けられている間にワークをスキャンすること202とを含んでいてよい。本プロセスは、スキャンすることに少なくとも部分的に基づいて、ロボットに対するワークの姿勢を判定すること204を更に含んでいてよい。
【0015】
ロボットビンピッキングプロセス10の命令群及びサブルーチンは、コンピューティングデバイス12に連結された記憶装置16上に記憶されていてよく、コンピューティングデバイス12に含まれる1つ又は複数のプロセッサ(図示せず)及び1つ又は複数のメモリアーキテクチャ(図示せず)により実行されてよい。記憶装置16としては、ハードディスクドライブ、フラッシュドライブ、テープドライブ、光ドライブ、RAIDアレイ、ランダムアクセスメモリ(RAM)、及びリードオンリメモリ(ROM)が含まれてよいが、これらに限定されない。
【0016】
ネットワーク14は、1つ又は複数の第二のネットワーク(例えば、ネットワーク18)に接続されてよく、その例としては、例えばローカルエリアネットワーク、ワイドエリアネットワーク、又はイントラネットが含まれていてよいが、これらに限定されない。
【0017】
ロボットビンピッキングプロセス10は、クライアントアプリケーション22、24、26、28、66を介してアクセスされるアプレット/アプリケーションとインタフェースするスタンドアロンアプリケーションであってよい。幾つかの実施形態において、ロボットビンピッキングプロセス10は、全体的又は部分的に、クラウドコンピューティングトポロジに分散されてよい。このようにして、コンピューティングデバイス12及び記憶装置16とは複数のデバイスを指してよく、これらもまた、ネットワーク14及び/又はネットワーク18全体を通じて分散されてよい。
【0018】
コンピューティングデバイス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つ又は複数のメモリアーキテクチャ(図示せず)によって実行されてよい。
【0019】
記憶装置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、又はカスタムオペレーティングシステムが含まれていてよいが、これらに限定されない。
【0020】
クライアントアプリケーション22、24、26、28、68のうちの1つ又は複数は、ロボットビンピッキングプロセス10の機能の幾つか又は全部を実行するように構成されてよい(及びその逆でもよい)。したがって、ロボットビンピッキングプロセス10は、純粋なサーバ側アプリケーション、純粋なクライアント側アプリケーション、又はクライアントアプリケーション22、24、26、28、68のうちの1つ又は複数及び/又はロボットビンピッキングプロセス10により協働して実行されるサーバ側/クライアント側ハイブリッドアプリケーションであってよい。
【0021】
クライアントアプリケーション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、又はそれらの組合せの間の、このような機能を実行するための説明された何れの相互作用も、本開示の範囲を限定するものではなく例として解釈されるべきである。
【0022】
ユーザ46、48、50、52は、コンピューティングデバイス12及びロボットビンピッキングプロセス10に(例えば、クライアント電子機器38、40、42、44のうちの1つ又は複数を使用して)直接、又はネットワーク14を通じて、若しくは第二のネットワーク18を通じて間接にアクセスしてよい。更に、コンピューティングデバイス12は、第二のネットワーク18を通じてネットワーク14に接続されてもよく、これは破線の結合線54により示されている。ロボットビンピッキングプロセス10は、1つ又は複数のユーザインタフェース、例えばブラウザ及びテキスト又はグラフィカルユーザインタフェースを含んでいてよく、これを通じてユーザ46、48、50、52は、ロボットビンピッキングプロセス10にアクセスしてよい。
【0023】
各種のクライアント電子機器は、直接又は間接にネットワーク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を通じて間接にアクセスしてよい。
【0024】
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))も使用されてよい。
【0025】
幾つかの実施形態において、ビンピッキングシステム(例えば、ビンピッキングシステム64)は、ロボットアーム(例えば、Universal Robotsから入手可能なUniversal Robots UR5等)、コントローラ、グリッパ、センサ、及びコプロセッサ(例えば、認識及びタスク計画からの計算コストの高い動作を実行するため)を含んでいてよい。しかしながら、ビンピッキングシステムは、本開示の範囲内で、追加のコンポーネントを含んでいてよく、及び/又はこれらの例示的なコンポーネントの1つ又は複数を省いてもよいと理解されたい。
【0026】
幾つかの実施形態において、図3も参照すると、ビンピッキングシステム(例えば、ビンピッキングシステム64)は、コプロセッサのすべてのモジュール及びURからのReal-Time Data Exchangeインタフェースを使って、例えばEthernet接続によるURコントローラとのインタフェースを実行するように構成されてよい。ソフトウェアアプリケーションは、Energid Technologiesから入手可能な「Actin Viewer」等の1つ又は複数のグラフィカルユーザインタフェースのためのカスタムプラグインから作成されてよい。幾つかの実施形態において、センサは、何れの適当なセンサ(例えば、3Dセンサ)であってもよい。幾つかの実施形態において、ビンピッキングシステム(例えば、ビンピッキングシステム64)は、少なくとも1つのコプロセッサ上の幾つかのモジュール及びURコントローラ上の幾つかのモジュールを実行するように構成されてよい。幾つかの実施形態において、すべてのモジュールがURコントローラ上で実行されてよい。
【0027】
本明細書で使用されるかぎり、「Actinビューワ」という用語は、グラフィカルユーザインタフェースを指してよい。「Actin」は、ロボット制御ソフトウェアを指してよく、「UR」は「Universal Robots」を指してよい。これらの特定の会社及び製品の何れの使用も、例として提供されているにすぎない。そのため、何れの適当なグラフィカルユーザインタフェース、ロボット制御ソフトウェア、及び機器/モジュールも、本開示の範囲から逸脱することなく使用されてよい。
【0028】
幾つかの実施形態において、コプロセッサはコアプロセッサとグラフィクスカードを含んでいてよい。オペレーティングシステムとコンパイラは、何れの適当なタイプのものであってもよい。コプロセッサは、複数の外部インタフェース(例えば、URコントローラとのEthernet、カメラとのUSB3.0、プロジェクタとのHDMI(登録商標)等)を含んでいてよい。これらの特定の機器とシステムのほか、本文書中に記載されているその他のものは、例として提供されているにすぎない。
【0029】
幾つかの実施形態において、Universal Robots UR5がビンピッキングシステム64内で利用されてよい。コントローラは、改良型でなくてもよい。例えば、サクションカップアームエンドツール(EOAT:end of arm tool)は、例えば24 VDCデジタル出力チャネルを介してコントローラに接続されてよい。しかしながら、何れのEOATが何れのロボットアーム上で使用されてもよく、この場合も本開示の範囲内であると理解されたい。
【0030】
幾つかの実施形態において、何れのスキャナが使用されてもよい。これは、構造化光センサであってよく、また、サードパーティ統合を可能にするものでもよい。SDKと共に、スキャナはワークのメッシュテンプレートを作るために使用されてよいアプリケーションを備えていてよい。
【0031】
幾つかの実施形態において、ビンピッキングアプリケーション(例えば、ビンピッキングアプリケーション20)は、前述のGUIベースのActin Viewerの代わりに、ビンピッキングシステム(例えば、ビンピッキングシステム64)のコプロセッサ上で動作するように構成されてよい。例えば、ユーザインタフェースは、ビンピッキングキャップを介してコントローラ及びティーチペンダントに移動されてもよい。「キャップ」とは、本明細書で使用されるかぎり、一般にロボットの機能、アクセサリ、又は周辺機器を指してよい。「UR」キャップとは、「Universal Robotics」、すなわち本開示の譲受人から入手可能なキャップを指してよい。一例において、C++Cap Daemonは、コントローラ上で動作して、RTI Connext DDS上でのコプロセッサとの通信を可能にしてよい。例示的な展開が図4に示されている。
【0032】
幾つかの実施形態において、ビンピッキングシステムは複数のフェーズを含んでいてよい。これらのフェーズとしては、インストレーション、較正及びアラインメント、アプリケーション構成、及びビンピッキング動作が含まれていてよいが、これらに限定されない。
【0033】
幾つかの実施形態において、ビンピッキングシステムが構成されてよい。例えば、ロボット、センサ、及びグリッパはすべて、動作のこのフェーズで物理的に据え付けられ、較正されてよい。センサ較正は、カメラ及びプロジェクタの内部及び外部パラメータを特定するために実行されてよい。センサとロボットのアラインメントは、3Dプリンティングによる、球のアレイからなるアラインメントオブジェクトを使って行われてよい。例えば、標的ワークは容易に検出されてよく、これはワーク姿勢推定が関係するロボット座標系を定義してよい。インストレーション、較正、及びアラインメントパラメータは、コプロセッサ上のファイルに保存されてよい。
【0034】
幾つかの実施形態において、ビンピッキングプログラム構成フェーズは、ユーザが、あるワークについてのビンピッキング動作及び設置又は固定を行うようにビンピッキングシステムを構成する段階である。ユーザはまず、新しいプログラム構成をロードするか又は作成してよい。新しいプログラムを作成するステップには、ツール、ワークテンプレート、及びビンの構成並びにその後の把持及び設置の訓練が含まれていてよいが、これらに限定されない。
【0035】
ビンピッキング動作フェーズでは、ユーザはビンピッキングシステムがビンピッキングを実行するか又は停止すること、及び進行状況をモニタすることをトリガしてよい。ビンピッキングシステムは、毎回のピック試行の前に、自動的に動作してビンをスキャンしてよい。幾つかの実施形態において、ビンピッキングシステムについて2つの予想されるユーザの役割があり、これらにはユーザの役割とデベロッパの役割が含まれていてよい。ユーザは、ビンピッキングシステムとグラフィカルユーザインタフェースを通じて対話してよい(例えば、プログラミングの経験は不要であってもよい)。デベロッパは、ビンピッキングソフトウェアを拡張して、新規センササポート、新規グリッパ、新規姿勢推定(マッチャ)アルゴリズム、新規バウンダリジェネレータ、及び新規把持スクリプトセレクタを含めてよい。各種のタスクがユーザによって実行されてよく、その他のタスクはデベロッパにより実行されてよい。
【0036】
次に、図5を参照すると、ユーザが原位置を設定できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の「原位置」のオプションを選択し、その後、「原位置を設定する」を選択してよい。ユーザは次に、ティーチペンダント上の命令に従って、ロボットを所望の原位置に移動させてよい。
【0037】
次に、図6を参照すると、ユーザがツールを構成できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の「ツール」オプションを選択し、座標と方位を手で入力することによってツールの中心点を設定してよい。ユーザには、オブジェクトファイルをロードする選択肢も提供されてよい。
【0038】
次に、図7を参照すると、ユーザがビンの位置合わせを行うことができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、「ベース」のオプションを位置合わせ平面として選択し、「教示」オプションをビンタイプとして選択してよい。ポインタがエンドエフェクタに装着されてよい。
【0039】
次に、図8を参照すると、ユーザがビンの位置合わせを行うことができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、ポインタを使って各ビンの壁の内部の4地点にタッチして、位置合わせしてもよい。幾つかの実施形態において、教示地点は広げられてよい。各辺の位置合わせを行うために、辺定義の例が提供されてもよい。LEDインディケータは、位置合わせが完了するたびにトグルしてよい。
【0040】
次に、図9を参照すると、ユーザがビン衝突形状を構成できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、「デフォルト形状」のオプションを選択して、ビンの衝突形状を位置合わせに基づいて定義してよい。幾つかの実施形態において、ユーザは、衝突形状の大きさを変更してよい。
【0041】
次に、図10を参照すると、ユーザが部品テンプレートの妥当性を確認できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、「スキャン」オプションを選択して、ビン内のワークをスキャンしてよい。幾つかの実施形態において、ビンピッキングシステムは、点群を部品テンプレートとマッチさせるように試みてよい。
【0042】
次に、図11を参照すると、ユーザが再スキャン位置を構成できるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の「再スキャン位置」のオプションを選択して、「再スキャン位置を設定」を選択してよい。ロボットが所望の再スキャン位置に移動したら、ユーザは「ok」を選択してよい。
【0043】
次に、図12を参照すると、ユーザが把持リストを編集できるようにするグラフィカルユーザインタフェースが提供されている。幾つかの実施形態において、把持リストは、把持を評価する際に使用の優先順位を定義してよい。把持は、「把持を追加」又は「把持を削除」を選択することによって追加及び削除されてよい。選択された把持は、図中に示されるボタンを用いて、リストの上下に移動されてよい。
【0044】
次に、図13を参照すると、ユーザが把持ウィザードを見ることができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、プログラムツリーの中の新規の把持ノードを選択するか、「次へ」を選択して、把持ウィザードにアクセスしてよい。ユーザは、「オプション」タブで把持の名前を変更してよい。
【0045】
次に、図14を参照すると、ユーザがピックを訓練することができるようにするグラフィカルユーザインタフェースが提供されている。ユーザは、「ピックアプローチを教示する」のオプションを選択して、ロボットをピックアプローチ位置へと移動させてよい。アプローチ位置は、部品テンプレート衝突ゾーン内にあるべきではない。ユーザは、「ok」のオプションを選択して、位置を記録し、その後に続いて他の位置を設定してよい。
【0046】
次に、図15図26を参照すると、ロボットビンピッキングプロセス10の実施形態は、ロボットのエンドエフェクタに関連付けられてよい、及び/又は取り付けられてよいワークをスキャンすることと、スキャンすることに少なくとも部分的に基づいて、ロボットに対するワークの姿勢を判定することとによって、ロボットをプログラムするために使用されてよい様々なグラフィカルユーザインタフェースを示している。図15は、ピックルール又は設置ルールを追加するプロセスを開始するために使用されてよい例示的なグラフィカルユーザインタフェースを示している。
【0047】
幾つかの実施形態において、図16に示されるように、ロボットビンピッキングプロセス10は、ロボットに取り付けられたエンドエフェクタにワークを関連付けることを含んでいてよい。操作の際、ユーザは、ワークを選択し、エンドエフェクタ又はロボットに関連付けられたツールにワークを取り付けることによりピックを教示してよい。ワークは、磁化アタッチメント、吸引アタッチメントなどを含むが、これらに限定されない、何れの適当な手法を用いてエンドエフェクタに関連付けられてよいことに留意されたい。ワークがエンドエフェクタに関連付けられると、ユーザは「教示」オプションを選択してよい。また、ツール中心点(tool center point、「TCP」)からのオフセットがグラフィカルユーザインタフェースにおいて表示されてよい、及び/又はユーザによって編集されてよい。
【0048】
幾つかの実施形態において、図17に示されるように、ロボットビンピッキングプロセス10は、ワークがエンドエフェクタに関連付けられている間にワークをスキャンすることを含んでいてよい。そのため、ロボットアーム及び/又はエンドエフェクタは、スキャナがエンドエフェクタに関連付けられているワークをスキャンしてよいように移動されてよい。ユーザは次に、ワーク及びエンドエフェクタが期待通りに関連付けられている又は取り付けられていることをグラフィカルユーザインタフェースにおいて確認してよい。ユーザは、アラインメントを確認したならば、スキャンオプションを選択してよい。アラインメントが更なる調整を必要とする場合、アラインメントがキャンセルされ、1つ又は複数の調整が行われてよい。スキャンオプションが選択された場合、グラフィカルユーザインタフェースは、図18に示すようにスキャンが進行中であることを示してよい。
【0049】
幾つかの実施形態において、ロボットビンピッキングプロセス10は、スキャンすることに少なくとも部分的に基づいて、ロボットに対するワークの姿勢を判定することを含んでいてよい。図19に示されているように、ロボット又はエンドエフェクタに対するワークの姿勢は、グラフィカルユーザインタフェースにおいてユーザに表示されてよい。これにより、図19及び図20に示されているように、ワーク及びワークがエンドエフェクタに関連付けられている様子とTCPからのX、Y、及びZのオフセットとの両方を視覚的に確認できるようにされてよい。X、Y、及びZ座標系が、グラフィカルユーザインタフェースにおいて示されてよく、ユーザの好みに基づいて調整されてよい。本プロセスは、座標を入力すること及び/又は編集することによって、ロボットに対するワークの姿勢をユーザが調整できるようにしてよい。ワークの調整された姿勢が、確認のためにグラフィカルユーザインタフェースにおいて表示されてよい。
【0050】
幾つかの実施形態において、ロボットビンピッキングプロセス10は、ロボット及び/又はエンドエフェクタを使用して、ワークをピックすることを含んでいてよい。このことは、ワークの姿勢に対するロボットの1つ又は複数の姿勢を指定することを含んでいてよい。
【0051】
幾つかの実施形態において、ロボットビンピッキングプロセス10は、ワークを設置することであって、ワークを設置することが、ロボット姿勢を判定することと、ロボット姿勢からワークの姿勢を推測することとを含む、ことを含んでいてよい。ワークを設置することはまた、ワークの姿勢に対するロボットの1つ又は複数の姿勢を指定することを含んでいてよい。幾つかの実施形態において、ワークをスキャンすること及び判定することが、ロボットが固定位置にある間に行われてよい。
【0052】
次に、図21図25を参照すると、1つ又は複数の設置ルールに従って使用されてよい例示的なグラフィカルユーザインタフェースが提供されている。図21に示されているように、設置ルールは、エンドエフェクタにワークを取り付け、グラフィカルユーザインタフェースから「教示」オプションを選択することにより教示されてよい。スキャンのための準備をするために、ユーザは、ロボット及び/又はエンドエフェクタを移動して、ワーク及びエンドエフェクタをスキャナに提示することを必要としてよい。幾つかの場合においては、エンドエフェクタは、グラフィカルユーザインタフェースを通してアクセス可能な1つ又は複数のコントロールを使用して制御されてよいが、手動による提示もまた本開示の範囲内である。ワーク及びエンドエフェクタがスキャナにおいて視認可能となると、図21図23に示されているように、スキャンが開始されてよい。
【0053】
次に、図24を参照すると、スキャン結果を示す例示的なグラフィカルユーザインタフェースが提供されている。この特定の例では、スキャン結果は、エンドエフェクタ位置及び特定のX、Y、及びZの座標を示している。プロセス10は、ワークとエンドエフェクタとの関係をユーザが確認できるようにし、必要に応じて再スキャンを行う能力も提供する。図25は、ユーザ又はシステムが、所望の設置位置を定義してよい例示的なグラフィカルユーザインタフェースを示している。幾つかの実施形態において、「次へ」オプションを選択すると、エンドエフェクタ及びワークは、所望の設置位置に移動されてよい。図26は、ツール位置とジョイント位置との両方の座標を示すグラフィカルユーザインタフェースを示している。
【0054】
本開示の実施形態により、シーケンスとしてではなく、ロボットに対するワークの姿勢を確立することにより開始し、初期開始点から前後に動作するようにピック及び設置をプログラムすることができてよい。関係は、エンドエフェクタによってワークが保持されている間にワークをスキャンすることによって確立されてよい。エンドエフェクタは、しっかりとロボットに取り付けられてよく、またそのために、ロボットに対するワークの姿勢を確立してよい。以降のピックは、確立されたワーク/ロボット姿勢に対するロボット位置の数値オフセットを指定することにより指定されてよい。以降の設置は、ロボット姿勢を読み取り、ロボット姿勢からワーク姿勢を推測し、確立されたワーク姿勢に対するロボット位置の数値オフセットを指定することにより指定されてよい。
【0055】
したがって、本明細書で説明されるロボットビンピッキングプロセス10の実施形態は、従来の手法と比べて多くの利点を提供してよい。例えば、ピック及び設置は、毎回スキャンを開始することによって、独立にプログラム及びデバッグされてよい。ワークとエンドエフェクタとの関係はスキャン前に最適化されて、部品の移動、ピック中の吸引のカップ変形(又は機械的グリッパの弾性パッドの変形)、不要なオフセットなどの誤差を排除してよい。ワークとエンドエフェクタとの関係は、スキャン後に視覚的に確認されてよい。この手法は、ピックに戻り、設置に進む、「ミドルアウトからの」プログラミングと見なされてよい。このことにより、あらゆる誤差蓄積の連鎖を半分にすることができる。ピックをプログラムすることは、ロボットを動かすことを全く必要とせず、労力を削減し、人間がロボット位置を視覚的に確立することにより生じる誤差を排除し得る。本明細書に含まれる実施形態は、目立った特徴部を提示すること、スキャンされる立体物の最適な部分をスキャンすること、ワークを他のワーク又は環境外乱から隔離してスキャンすることなどによりワーク姿勢検出の精度を改善してよい。
【0056】
幾つかの実施形態において、設置訓練手順は、以下のステップを含んでいてよい:1)オフライン:ロボットに、ワークをピックアップし、スキャンのためにセンサに提示するように教示する。エンドエフェクタの姿勢とワークの姿勢の両方を記録する。2)オフライン:ロボットに、ワークをその目的地に設置し、エンドエフェクタの姿勢を記録するように教示する。3)オンライン:ステップ1と同じロボットの姿勢を使って、ワークをピックし、それをスキャンのためにセンサに提示し、エンドエフェクタの姿勢とワークの姿勢を記録する。4)オンライン:以前のステップで収集された情報により、ワークをその目的地に設置する。
【0057】
幾つかの実施形態において、設置の正確度は3つの根本要素により決まってよい:1)ロボットの運動学モデルの較正、2)センサの較正及びアラインメント、及び3)ワークの姿勢の推定。これら3つのタスクは、ロボットのエンドエフェクタの姿勢、センサの姿勢、及びワークの姿勢を及び一般的な座標系で定義する座標系変換を決定する。最終的なワーク設置は、これらの変換の関数として計算されてよい。
【0058】
幾つかの実施形態において、前述のように、GUIは、何れの適当なデバイス上にあってもよく、これにはティーチペンダント上、ハンドヘルドデバイス上、パーソナルコンピュータ上、ロボット自体の上等が含まれるが、これら限定されない。幾つかの実施形態において、GUIは、その表示情報を複数の情報源から、例えばロボットコントローラから、及びロボットコントローラとは別のプロセッサから引き出してもよい。幾つかの実施形態において、GUIは、ユーザ入力を1つ又は複数の目的地、例えばロボットコントローラ及び/又はロボットコントローラとは別のプロセッサに誘導してよい。幾つかの実施形態において、GUIのユーザは、複数のデータソース又は目的地の存在を知っていても、知らなくてもよい。
【0059】
上で説明したように、本発明は、方法のステップを実行するための機能を提供する各種のモジュールからなる方法及びそれに対応する機器の両方を提供する。モジュールは、ハードウェアとして実装されてよく、又は、コンピュータプロセッサにより実行されるソフトウェア又はファームウェアとして実装されてもよい。特に、ファームウェア又はソフトウェアの場合、本発明は、その上にコンピュータプロセッサにより実行されるためのコンピュータプログラムコード(すなわち、ソフトウェア又はファームウェア)を具現化したコンピュータ可読記憶構造を含むコンピュータプログラム製品として提供できる。
【0060】
上記の構成は本発明の原理の応用の例示にすぎないと理解されたい。当業者により、本開示の範囲から逸脱することなく、様々な改良や代替的構成が考案されてよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
【国際調査報告】