本願は、2021年04月16日出願の米国仮特許出願第63/175,787号「ROBOT WITH LINEAR 7TH AXIS」に基づく優先権を主張し、その仮特許出願は、すべての目的のために参照により本明細書に組み込まれる。
本発明は、処理、装置、システム、物質の組成、コンピュータ読み取り可能な格納媒体上に具現化されたコンピュータプログラム製品、および/または、プロセッサ(プロセッサに接続されたメモリに格納および/またはそのメモリによって提供される命令を実行するよう構成されたプロセッサ)を含め、様々な形態で実施されうる。本明細書では、これらの実施例または本発明が取りうる任意の他の形態が、技術と呼ばれうる。一般に、開示されている処理の工程の順序は、本発明の範囲内で変更されてもよい。特に言及しない限り、タスクを実行するよう構成されるものとして記載されたプロセッサまたはメモリなどの構成要素は、或る時間にタスクを実行するよう一時的に構成された一般的な構成要素として、または、タスクを実行するよう製造された特定の構成要素として実装されてよい。本明細書では、「プロセッサ」という用語は、1または複数のデバイス、回路、および/または、コンピュータプログラム命令などのデータを処理するよう構成された処理コアを指すものとする。
以下では、本発明の原理を示す図面を参照しつつ、本発明の1または複数の実施形態の詳細な説明を行う。本発明は、かかる実施形態に関連して説明されているが、どの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定されるものであり、本発明は、多くの代替物、変形物、および、等価物を含む。以下の説明では、本発明の完全な理解を提供するために、多くの具体的な詳細事項が記載されている。これらの詳細事項は、例示を目的としたものであり、本発明は、これらの具体的な詳細事項の一部または全てがなくとも特許請求の範囲に従って実施可能である。簡単のために、本発明に関連する技術分野で周知の技術事項については、本発明が必要以上にわかりにくくならないように、詳細には説明していない。
本明細書で用いられているアイテムまたは1セットのアイテムのパレチゼーションは、移動元位置(搬送構造など)からアイテムをピックして、パレット上(パレット上のアイテムのスタック上など)にアイテムをプレースすることを含む。
本明細書で用いられているデパレチゼーションは、パレットから(パレット上のアイテムのスタックから、など)アイテムをピックして、アイテムを移動させ、移動先位置(搬送構造など)にアイテムをプレースすることを含む。
本明細書で用いられているアイテムのシンギュレーションは、移動元の山/流れからアイテムをピックして、搬送構造(例えば、仕切り付きコンベヤまたは同様の搬送手段)にアイテムをプレースすることを含む。任意選択的に、シンギュレーションは、移動元の山/流れからコンベヤ上のスロットまたはトレイへアイテムを1つずつプレースするなど、搬送構造上の様々なアイテムの仕分けを含みうる。
本明細書で用いられているキッティングは、1または複数のアイテム/物体を対応する位置からピックして、1または複数のアイテムのセットがキットに対応するように1または複数のアイテムを所定の位置にプレースすることを含む。
本明細書で用いられている車両は、カート、トロリー、台車、キャリッジ、ワゴン、パレット、または、1または複数のアイテム(トレイ(例えば、トレイのスタック)など)を保持または支持するよう構成されているその他の構造を意味する。
様々な実施形態が、ロボットシステムを含む。ロボットシステムは、通信インターフェースと、通信インターフェースに接続された1または複数のプロセッサと、を備える。1または複数のプロセッサは、通信インターフェースを介してセンサデータを受信し、センサデータを用いて、アイテムに関するタスクを実行するようにn軸ロボットを制御するための戦略を決定して実施するよう構成されている。戦略は、少なくとも部分的に、ロボットのn軸と1または複数のさらなる軸とを考慮に入れることによって決定される。戦略は、アイテムに関するタスクを実行するようにロボットのn軸と1または複数のさらなる軸との少なくとも一部に関してロボットを操作するための1または複数のコマンドのセットを含む。いくつかの実施形態において、ロボットシステムは、さらに、データ(タスクを実行するための戦略または計画、1または複数のタスクを実行するようロボットを制御するためのモデル、など)を格納するよう構成されているメモリを備える。
様々な実施形態が、ロボット制御システムを含む。ロボット制御システムは、メモリと、1または複数のプロセッサと、を備える。メモリは、少なくとも線形軸ならびに1または複数の回転軸を含む複数の制御軸を有するロボットのモデルを格納するよう構成されている。1または複数のプロセッサは、少なくとも線形軸を含む制御軸の内の2以上に関してロボットを動作させるための制御信号のセットをロボットへ送信することなどによって、タスクを実行するようロボットを制御するために、モデルを用いるよう構成されている。
様々な実施形態が、ロボットを含む。ロボットは、(i)ロボットの複数の制御軸の内の対応する1つと各々関連付けられている複数のモータと、制御軸は、少なくとも線形軸ならびに1または複数の回転軸を含み、(ii)モータの内の1つと各々関連付けられている複数のモータコントローラと、(iii)通信インターフェースと、(iv)モータコントローラおよび通信インターフェースに接続されているプロセッサであって、通信インターフェースを少なくとも線形軸を含む制御軸の内の2以上の各々に関して固有の方法でロボットを動作させるための制御信号のセットを介して受信し、固有の方法でロボットを動作させるようモータを制御するためのコマンドをモータコントローラの内の対応するモータコントローラに送信するよう構成されている、プロセッサと、を備える。
様々な実施形態が、ラックアンドピニオンパワートレインアセンブリにおけるバックラッシュを調整するためのメカニズムを含む。メカニズムは、(i)駆動アセンブリの作用端を受け入れるように規定された開口部を有する取り付けフレームと、駆動アセンブリの作用端は、駆動アセンブリの作用端の遠位端の上または近くに取り付けられた動力駆動ピニオンを有し、駆動アセンブリは、開口部よりも大きい取り付けフランジを備え、取り付けフレームおよび取り付けフランジは、相補的な穴のセットを備え、各セットは、取り付けフレームにおける穴および取り付けフランジにおける対応する穴を含み、(ii)取り付けフランジを取り付けフレームへ移動可能に結合するために、取り付けフランジの第1端における第1相補的な穴のセットを通して配置されているショルダファスナと、ファスナは、取り付けフランジおよび駆動アセンブリが第1相補的な穴のセットの縦軸の周りで自由に旋回するように固定され、(iii)取り付けプレートへ機械的に結合されている第1端および取り付けフランジの第1端と実質的に反対側の位置で取り付けフランジへ機械的に結合されている第2端を有する長さ調整可能な結合装置と、結合装置の長さの調整は、取り付けフランジと、取り付けフランジへ直接的または間接的に取り付けられている駆動アセンブリの構成要素とを、第1相補的な穴のセットの縦軸の周りで回転させ、結果としてラックアンドピニオンパワートレインアセンブリのバックラッシュの対応する調整につながるように、長さ調整可能な結合装置の第1端が取り付けプレートに結合され、長さ調整可能な結合装置の第2端が取り付けフランジに結合されていること、を備える。
様々な実施形態が、n軸ならびに1または複数のさらなる軸に関してロボットを制御する方法、もしくは、非一時的なコンピュータ読み取り可能媒体内に具現化され、上記の制御のためのコンピュータ命令を備えるコンピュータプログラム製品を含む。方法は、(i)1または複数のプロセッサによって、通信インターフェースを介してセンサデータを受信し、(ii)センサデータを用いて、アイテムに関するタスクを実行するようにn軸ロボットを制御するための戦略を決定して実施すること、を備える。戦略は、少なくとも部分的に、ロボットのn軸と1または複数のさらなる軸とを考慮に入れることによって決定される。戦略は、アイテムに関するタスクを実行するようにロボットのn軸と1または複数のさらなる軸との少なくとも一部に関してロボットを操作するための1または複数のコマンドのセットを含む。いくつかの実施形態において、タスクは、アイテムを把持し、移動し、プレースすることを含む。
関連技術のロボットシステムは、一般に、6軸ロボットを実装している。かかるロボットの6軸は、(i)ベースの周りでのロボットの回転に対応する第1軸と、(ii)前方および後方へのロボットの下腕の動作に対応する第2軸と、(iii)ロボットの上腕を持ち上げるための動作に対応する第3軸と、(iv)ロボットの上腕の回転に対応する第4軸と、(v)ロボットの手首を持ち上げるための動作に対応する第5軸と、(vi)ロボットの手首の回転に対応する第6軸と、を含む。関連技術のシステムは、作業空間内の固定位置でかかる6軸ロボットを用いる。6軸の各々に関する動作は、1または複数のモータ(例えば、サーボモータなど)によって制御される。いくつかの実装例において、関連技術の6軸ロボットは、ロボットが停止して、レールに対して静止位置にある間にタスクを実行する位置までロボットを運ぶレール上に取り付けられうる。例えば、ロボットは、タスクが実行される位置までレールに沿って移動され、ロボットは、かかる位置で停止し、レールに対して固定位置でタスクを実行する。
6軸ロボットは、作業空間に配置されると、一般に、ロボットがタスク(例えば、アイテムを把持し、移動させ、プレースするなどのために行う作業エリア内でのアイテムに関するタスク)を実行するために配置される作業エリアの周りの楕円形エリアの範囲内で動作する。例えば、ロボットは、ロボットが作業エリアに配置された時に動作できる卵形のエリアを有する。楕円形エリア(例えば、卵形エリア)は、エンドエフェクタまたはエンドエフェクタに把持されたアイテムが移動されることが可能な位置の解空間(例えば、エンドエフェクタまたはエンドエフェクタによって把持されたアイテムの軌道の少なくとも一部でありうる位置のセット)を規定する。しかしながら、ロボットがタスクを実行するために固定位置で動作する関連技術のシステムは、エンドエフェクタまたはエンドエフェクタによって把持されたアイテムが移動されうる位置に関して楕円形エリア(例えば、卵形エリア)内に準最適な解のセットを有する。例えば、楕円形エリア(例えば、卵形エリア)は、ロボットの関節の制約(例えば、関節が配置されうる角度に関する制約)などのために、エンドエフェクタが移動されえない特定の位置を含む。別の例として、楕円形エリア(例えば、卵形エリア)は、ロボットの動作が非効率的またはそうでなければぎこちない特定の位置を含む。
様々な実施形態が、タスクの実行中に1または複数のさらなる次元内で移動するよう制御されるロボットを実行する。1または複数のさらなる次元内で移動するようロボットを制御することで、ロボットは、ロボットのベースの周りの楕円形エリア(例えば、卵形エリア)内で動作する(例えば、エンドエフェクタまたはエンドエフェクタによって把持されたアイテムを移動させる)ことが可能になる。様々な実施形態によると、作業エリアに対応する楕円形エリア(例えば、卵形エリア)全体が、エンドエフェクタまたはエンドエフェクタに把持されたアイテムが移動されることが可能な位置の解空間(例えば、エンドエフェクタまたはエンドエフェクタによって把持されたアイテムの軌道の少なくとも一部でありうる位置のセット)として利用可能である。例えば、タスクの実行中に作業エリアにおける特定の位置に固定されたロボットを用いることにより、(例えば、ロボット関節の制約、もしくは、ロボットの非効率的または不適切なポジショニングのために)解空間に含まれていない作業エリアに対応する楕円形エリア(例えば、卵形エリア)内に特定の位置を有する関連技術のシステムとは対照的に、様々な実施形態が、関連技術のシステムについては作業エリアの解空間から除外されているかかる特定の位置においてロボットが動作するのを容易にするために、1または複数のさらなる軸内で動くようロボットを制御する。様々な実施形態が、ロボットのポジショニングと、ロボットのかかる対応するポジショニングが非効率的または不適切であるか否かの示唆とのマッピングを格納している。システムは、非効率的または不適切な位置にロボットを配置しまたはそこでロボットを動作させることを避けるように、ロボットを制御できる。いくつかの実施形態において、システムは、ロボットの動作/ポジショニングに関連するコスト関数を格納している。いくつかの実施形態において、コスト関数は、ロボットのロボットアームの不適切な姿勢(例えば、ロボットのポジショニング/方向付け)を用いてタスクを実行するコストが高いことを示す。いくつかの実施形態において、コスト関数は、線形軸ならびに1または複数のその他の軸(例えば、回転軸)に沿った動作の様々な組みあわせに基づいてタスクを実行する際の速度または効率を示す。コスト関数は、タスク実行の最小の成功可能性の閾値を満たすものに解を限定できる。
いくつかの実施形態において、ロボットシステムは、タスクを実行するために、第7軸を動的に用いる。ロボットシステムは、ガイドレール(例えば、線形軌道など)上を移動するキャリッジに取り付けられた6軸ロボットを備える。作業エリア内でタスクを実行することに関連して、ロボットシステムは、ガイドレールに対応する次元に沿ってロボットを移動させるよう制御する。タスクの実行中にロボットを移動させるかかる制御は、作業エリアの周りの楕円形エリア内のすべての位置が、可能な位置(例えば、アイテムエンドエフェクタまたはアイテムが作業エリアを通して移動された時のエンドエフェクタまたはエンドエフェクタによって把持されたアイテムの可能な位置)の解空間に含まれることを可能にする。
様々な実施形態によると、ロボットシステムは、アイテムに関するタスクの実行を決定する。アイテムに関するタスクの実行を決定したことに応じて、ロボットシステムは、作業エリア内にロボットを配置するためにロボットを制御する。例えば、ロボットシステムは、レールに沿って作業エリアへロボットを移動させるよう制御する。いくつかの実施形態において、ロボットシステムは、アイテムに関するタスクを実行するための計画および/または戦略を取得する。一例として、ロボットシステムは、作業エリアのモデルおよび/またはアイテム(例えば、アイテムに関連する1または複数の属性)に少なくとも部分的に基づいて、計画および/または戦略を決定する。システムは、ロボットが、例えば最適な姿勢および効率的な動作などを用いて、最も効率的にアイテムを把持、移動、および/または、プレースすることを可能にするために、ロボットをレールに沿って(例えば、第7軸に沿って)移動させるか否かを決定する。一例として、1または複数のさらなる軸内でロボットを移動させる制御は、常に最適な姿勢からアイテムをピックアンドプレースする能力をロボットに与える。
様々な実施形態によると、1または複数のさらなる軸(例えば、6軸ロボットの6軸に追加した軸)が完全に統合され、ロボット制御内の自由度になる。様々な実施形態において、本明細書で開示されているように、その制御に統合された第7線形自由度を備えたロボットが、レールまたはその他の線形搬送手段に配置される。ロボットは、最初に、次のタスクの近くの位置(例えば、作業エリア)へレールに沿って配置され、その後、例えば、ロボットが、準最適な姿勢を避け、そうでなければ最適化された速度および効率で動作することを可能にするために、線形DOFに沿った迅速な再ポジショニングを用いて、本明細書に開示されているように、タスクを実行するよう、線形自由道を含む7自由度内で制御されてよい。
様々な実施形態が、ロボットのための頑強でしっかりとした取り付け位置または構造を含む。取り付け位置、および/または、パワートレインアセンブリから生じるバックラッシュの調整により、ロボットシステムは、比較的高速および高加速度でタスクを実行できる。例えば、パワートレインアセンブリにおけるバックラッシュの制限、および、固定された取り付け位置または構造により、ロボットシステムは、例えば、ロボットが把持したアイテムを有している間に、かかるアイテムに関するタスクの実行に関連して、比較的高速かつ高加速度でレールに沿ってロボットを移動させることができる。
様々な実施形態が、ロボットシステムを用いて作業エリア内でアイテムに関するタスクを実行する効率および有効性を改善する。n軸ロボットが、アイテムに関するタスクを実行するために、1または複数のさらなる軸(例えば、n軸ロボットのn軸に追加した軸)内で動かされてよく、もしくは、1または複数のさらなる自由度を用いる。様々な実施形態によると、ロボットの動作に関わる1または複数のさらなる軸を実装することは、ロボットの範囲の拡大と、移動元位置から移動先位置へアイテムを移動させるのに効率的な(例えば、最適な)経路/軌道および戦略に対する解空間とを可能にする。
いくつかの実施形態において、1または複数のさらなる軸に沿ったロボット(例えば、6軸ロボット)の動作は、(i)少なくとも1または複数のさらなる軸に沿ったロボットのリーチ、および、(ii)システムの視界を拡大する。
いくつかの実施形態において、システム(例えば、1または複数のプロセッサ)は、ロボットが把持したアイテムを有している間、1または複数のさらなる軸の内の少なくとも1つに沿って動作するようロボットを制御する。
図1Aは、関連技術に従って、ロボットラインキッティングシステムを示すブロック図である。図の例においては、システム100は、この例において提供されている入力スタック搬送手段(例えば、搬送手段106)に沿って入力端(ステージング/積み込みエリア)108から移動している移動元トレイスタック102および104を含む。この例における移動元トレイスタック102および104の各々は、車輪付きカートまたはシャーシの上に積み上げられている様子が示されている。様々な実施形態において、移動元トレイスタック102および104は、搬送手段106上に手動で押されてよく、搬送手段106は、搬送手段106によって規定された作業空間を通して移動元トレイスタック102および104を前進させるよう構成されているコンベヤベルトまたはその他の構造であってよい。いくつかの実施形態において、移動元トレイが積み上げられたシャーシまたはその他のベース構造は、自走式であってよい。いくつかの実施形態において、移動元トレイスタック102および104は、ロボット制御下で搬送手段106を通して/によって前進されてよい。例えば、移動元トレイスタック102および104が搬送手段106によって/を通して前進される速度および時刻は、移動元トレイスタック102および104からのトレイの効率的な把持を容易にするように制御されてよい。
図の例において、単一のレール(例えば、レール110)が、搬送手段106の片側の長辺に沿って配置されている。この例において、2つのロボット(一方はロボット112を含み、他方はロボット114を含む)が、レール110上へ互いに独立して移動可能に取り付けられている。例えば、各ロボット112、114は、レール110に沿って進む自走式シャーシ上に取り付けられていてよい。この例において、各ロボット112、114は、トレイハンドリングエンドエフェクタ(例えば、エンドエフェクタ116、118)を末端に有する。
トレイハンドリングエンドエフェクタ(例えば、エンドエフェクタ116、118)は、移動元トレイスタック102、104から1または複数のトレイを把持するようにロボット制御下で操作される。図1Aに示すように、各エンドエフェクタ116、118は、ロボット112、114の端部に取り付けられている横部材を備える。側方部材が、横部材の各端部に取り付けられている。図に示すように、側方部材の少なくとも一方は、トレイが(側方部材を閉じることによって)把持され、または、(側方部材を開くことによって)解放されることを可能にするために、様々な実施形態において、ロボット制御下で開閉される。
各エンドエフェクタ116、118は、1つの非可動(「パッシブ」)側方部材と、1つの可動(「アクティブ」)側方部材と、を備える。この例において、可動すなわち「アクティブ」側方部材は、例えば、エンドエフェクタが1または複数のトレイを把持する位置に配置されることを可能にするために、スイングして開き(図のエンドエフェクタ116の位置)、例えば、1または複数のトレイの把持を完了させるために、スイングして閉じる(図のエンドエフェクタ118の位置)。ロボット制御システム(例えば、ロボット112、114を制御するコンピュータ(制御コンピュータ128など))が、トレイの把持または解放などに関連して、エンドエフェクタの開閉を作動させるようエンドエフェクタを制御する。ロボット制御システムは、作業空間の画像データならびに/もしくは対応するエンドエフェクタに備えられている(または接続されている)1または複数のセンサに少なくとも部分的に基づいてエンドエフェクタを制御する。いくつかの実施形態において、対応するエンドエフェクタに備えられている(または接続されている)1または複数のセンサは、(i)エンドエフェクタの把持メカニズム(例えば、アクティブ部材)が開位置のあるのか閉位置にあるのかを示す情報を取得し、(ii)把持メカニズムが開いている程度を示す情報を取得し、(iii)エンドエフェクタが、エンドエフェクタの少なくとも片側(例えば、パッシブ部材またはパッシブ部材に備えられている構造)を、トレイ(例えば、把持されるトレイ)の片側に備えられている穴、凹部、または、ハンドルと係合させるよう制御される位置に、トレイ(またはトレイに対するエンドエフェクタ)があることを示す情報を取得し、(iv)エンドエフェクタ(例えば、パッシブ部材またはパッシブ部材に備えられている構造)が、トレイの片側に備えられている穴、凹部、または、ハンドルと係合される位置に、トレイ(またはトレイに対するエンドエフェクタ)があることを示す情報を取得し、ならびに/もしくは、(v)把持メカニズムが閉じられまたは他の方法でトレイと係合されているか否かを示す情報を取得するよう構成されている。
各エンドエフェクタ116、118は、把持されるトレイの両側の穴またはその他の開口部にはまり、様々な実施形態においてロボット制御下で滑り込ませられうるようなサイズおよび形状の1または複数の突起または同様の構造を、各側方部材上に備える。例えば、いくつかの実施形態において、側方部材の内面上の突起(本明細書では「親指」とも呼ぶ)が、後により完全に記載および説明するように、トレイの両側の取っ手(例えば、人間の手が収まるようなサイズの穴)に差し込まれてよい。
それぞれのロボット112、114は、移動元トレイスタック102、104からトレイをピックし、搬送手段106および移動元トレイスタック102、104からレール110を挟んで反対側の移動先トレイスタックアセンブリエリアにおける移動先トレイスタック(移動先トレイスタック120、122など)の上にそれらをプレースするために、完全に自律的に、同時に動作される。移動先トレイスタックは、様々な実施形態において、インボイス、マニフェスト、注文書、または、その他の情報に従って、組み立てられてよい。例えば、複数の物理的な目的地(例えば、小売店)の各々に対して、(例えば、目的地によってなされた注文に従った)その目的地に関連する移動先スタックが、それぞれの移動元トレイスタック102、104からトレイを選択して、対応する移動先トレイスタック120、122に積み上げることによって組み上げられる。完成した移動先トレイスタック120、122は、例えば、さらなる目的地(小売店など)への配達に向けて、トラック、鉄道車両、コンテナなどに配置されるために、矢印124で示すように、移動先トレイスタックアセンブリエリアから移動されてよい。
図1Aをさらに参照すると、図に示す例において、システム100は、システム100を構成するロボット要素と無線通信するよう構成されている制御コンピュータ128を備えており、ロボット要素は、様々な実施形態において、搬送手段106と、移動元トレイスタック102、104が積み上げられる車輪付きシャーシ(自走式である場合)と、ロボット112、114、および/または、ロボット112、114がレール110(本明細書ではガイドレールとも呼ばれうる)上で取り付けられるそれぞれのシャーシと、ロボット制御されるトレイハンドリングエンドエフェクタ(例えば、エンドエフェクタ116、118)と、の内の1または複数を含む。様々な実施形態において、ロボット要素は、インボイス、注文書、および/または、マニフェスト情報などの入力データと、移動元トレイスタックがどのようなタイプおよび/または数量の製品を含むのかを示すインベントリデータなどの入力状態情報とに基づいて、制御コンピュータ128によって制御される。
様々な実施形態によると、ロボット112およびロボット114は、n軸ロボットである。例えば、ロボット112およびロボット114は、6軸ロボットである。ロボット112および114は、少なくともロボット112およびロボット114のn軸上に規定された解空間に基づいて、アイテム(トレイまたはトレイ上の物体など)に関するタスクを実行するよう制御される。Nは、正の整数であってよい。例えば、制御コンピュータ128は、(例えば、移動元位置からアイテムを把持し、アイテムを移動させ、移動先位置にアイテムをプレースする、などの)タスクを実行するための計画および/または戦略を決定する。制御コンピュータ128は、ロボット112および/またはロボット114が動く経路または軌道(例えば、対応するエンドエフェクタの軌道)を決定する。いくつかの実施形態において、制御コンピュータ128は、ロボット112および/またはロボット114の対応するn軸に少なくとも部分的に基づいているモデルを用いる。例えば、制御コンピュータ128は、制約または解(例えば、解空間)のセットに基づいて、計画/戦略(例えば、経路または軌道)を決定(例えば、選択)する。制約または解のセットは、ロボット112および/またはロボット114のn軸に少なくとも部分的に基づいている。一例として、ロボット112および/またはロボット114のn軸は、ロボット112および/またはロボット114の可能な位置および/または可能な構成のセットを規定するのに役立つ。可能な位置および/または可能な構成のセットは、楕円形エリア(例えば、卵形エリア)に対応しうるものであり、楕円形エリア内の位置は、ロボットが、制約(ロボット関節の制約など)によりその位置または構成に自身を置くことができないため、もしくは、かかる位置または構成が、閾値(効率の閾値など)を満たさない(例えば、ロボットがかかる構成で自身を構成することが困難である、など)ために、可能な位置および/または可能な構成のセットから除外されてよい。制御コンピュータ128は、最適な計画(例えば、最適な経路)に少なくとも部分的に基づいて、計画を決定できる。制御コンピュータ128は、1または複数の閾値(最大コスト閾値など)を満たす計画を決定することに少なくとも部分的に基づいて、計画を決定できる(例えば、コストは、モデルの所定のコスト関数に従って決定されうる、など)。効率の閾値、時間の閾値、速度の閾値など、様々なその他の閾値が実装されてもよい。
様々な実施形態によると、制御コンピュータ128は、タスク(例えば、アイテムの把持、移動、プレースなど)の実行に関連して、1または複数のさらなる軸(例えば、ロボットのn軸に追加した軸)を用いるよう、ロボット112および/またはロボット114を動的に制御する。制御コンピュータ128は、(i)ロボット(例えば、ロボット112および/またはロボット114)に対応するn軸と、(ii)1または複数のさらなる軸とに少なくとも部分的に基づいて、計画または戦略を決定する。例えば、計画/戦略を決定するためのモデルは、1または複数のさらなる軸に関してロボットが動く可能性を含む(例えば、解空間は、1または複数のさらなる軸におけるロボットの動作を考慮して、可能になりおよび/または効率的であると見なされる位置または構成を含む)。図1Aに示す例に関して、1または複数のさらなる軸は、レール110に基づいて規定されている次元(例えば、第7軸)を含む。ロボット112および/またはロボット114は、レール110によって規定されている方向に沿って平行移動されるよう制御されうる。制御コンピュータ128は、少なくとも部分的に、ロボットのn軸と1または複数のさらなる軸とを考慮に入れることによって、アイテムに関するタスクを実行するための戦略を決定する。戦略は、アイテムに関するタスクを実行するようにロボットのn軸と1または複数のさらなる軸との少なくとも一部に関してロボットを操作するための1または複数のコマンドのセットを含む。
いくつかの実施形態において、制御コンピュータ128は、1または複数のさらなる軸に少なくとも部分的に基づいて、アイテムに関するタスクを実行するための戦略を決定する。例えば、制御コンピュータ128は、レール110に沿った動作を含めるように、アイテムに関するタスクを実行する際のロボット112および/またはロボット114の動作のための解空間を拡張する。タスクを実行するための戦略を実施することに関連して、制御コンピュータ128は、タスクが実行されている時に、レール110(例えば、対応するロボットが取り付けられ、レール110上を移動するキャリッジ)によって規定されている次元に沿ってロボット112および/またはロボット114を移動させることができる。一例として、ロボット112および/またはロボット114は、経路/軌道(ロボットが移動されなかった場合に、可能ではなくまたはそうでなければ非効率的でありえた経路または軌道)に沿ってアイテムを移動させるために、アイテムが把持されている間に、レール110によって規定されている方向に沿って移動される。
様々な実施形態によると、システム(例えば、制御コンピュータ128)は、所定のコスト関数に少なくとも部分的に基づいて、アイテムに関するタスクを実行するための戦略を決定する。所定のコスト関数は、(i)タスクを実行する時間、(ii)タスクの成功裏に完了される可能性、(iii)タスクを実行するのに必要とされるエネルギの量(例えば、ロボットを動作させる1または複数のモータへの負荷、など)、の内の1または複数に少なくとも部分的に基づきうる。システムは、所定のコスト関数を用いて、タスクを効率的に実行する戦略を選択する。一例として、タスクの実行に効率的な戦略は、タスクに関して決定されたすべての可能な戦略または1セットの戦略の中で最適な戦略を含みうる。別の例として、タスクの実行に効率的な戦略は、タスクに関して決定されたすべての可能な戦略または1セットの戦略の中で最低コストを有する戦略を含みうる。別の例として、タスクの実行に効率的な戦略は、1または複数の所定の基準を満たすコスト(例えば、所定のコスト閾値未満のコスト、など)を有する戦略を含みうる。所定のコスト関数は、(例えば、ロボットが、ロボットの関節の制約またはロボットの非効率的な姿勢/構成に基づいて制約を受けていた作業エリア全体を用いることを可能にするために)作業エリアの閾値距離内でレールに沿ってロボットを移動させるなど、1または複数のさらなる軸に沿ってロボットを移動させることによって可能になる解を含むように拡張されうる。
いくつかの実施形態において、アイテムに関するタスクが実行される(例えば、トレイがスタックから移動先位置へ移動される)との決定に応じて、制御コンピュータ128は、アイテムの近く(例えば、移動元位置、すなわち、位置ロボットがアイテムと係合する位置)にロボット112を移動させるよう制御する。例えば、制御コンピュータ128は、作業エリアにロボットを移動させるよう制御する。いくつかの実施形態において、作業エリアは、アイテムすなわちアイテムの移動元位置の所定の距離内にある(例えば、ロボットのベース、または、ロボットが取り付けられているキャリッジの位置に対応する)エリアに対応する。所定の距離は、管理者によって設定されうる。所定の距離は、対応するロボットの動作範囲に少なくとも部分的に基づいて決定されうる。タスクを実行するための戦略を実施することに関連して、制御コンピュータ128は、1または複数のさらなる次元において(例えば、レール110によって規定されている方向に沿って)ロボット112を移動させるよう制御する。1または複数のさらなる次元にロボット112を移動させることで、ロボットは、エンドエフェクタまたはエンドエフェクタによって把持されたアイテムを作業エリアを通して移動させるための効率的または最適な戦略を利用できるようになる。いくつかの実施形態において、ロボット112がタスクの実行中に1または複数のさらなる次元において移動される程度は、1または複数の所定の閾値によって制約されている。例えば、制御コンピュータ128は、ロボットが移動元位置または作業エリアの近くにとどまる程度まで1または複数の次元に関してロボット112を移動させるよう制御する。いくつかの実施形態において、タスクを実行するための戦略の決定に用いられるモデルは、ロボットがタスクを実行している間に(例えば、ロボットが作業エリアに移動した後、などに)ロボットが1または複数の方向に移動してよいさらなる所定の閾値に少なくとも基づいている。
移動元トレイスタック102、104は、搬送手段106の入力端108でゲートまたはその他の入口/制御構造に挿入されてよい。搬送手段106は、例えば、移動元トレイを把持してそれらをそれぞれの移動先スタック上にプレースするために、ロボット112、114をレール110に沿って移動させなければならない距離および/または頻度を最小化することによって、スループットを最適化すると共にロボットの変位を最小化するように、レール110に沿って移動元トレイスタック102、104を移動させる装置(スタックムーバ)を備えてよい。移動元トレイスタック102、104は、異なる向き/重量/および重量分布のトレイを備えて到着しうる。システム100は、力およびモーメントの制御を用いて、親指またはその他の突起を穏やかにしっかりとトレイに挿入するようロボット112、114を動作させ、ロボット自身または環境と衝突しないようにロボットの動きおよびトレイの軌道を計画する。様々な実施形態において、各ロボット112、114は、約2.5mの幅の非常に狭いスペースで動作し、非常に軽いフットプリントを有する。ロボットは、その作業空間を十分に活用して、移動元トレイスタック102、104のデスタッキングの際にその把持および/または効率(例えば、時間、衝突回避、など)を最適化する動きをインテリジェントに計画する。ロボットは、障害物を回避する際に、向きの変更を実行する必要性を認識し、それに従って対処する。ロボットは、レール110上の他のロボットと連携しつつ、正しい顧客に対応する正確な出力(例えば、移動先トレイスタック120、122)へ移動する。次いで、高度な力制御および環境との相互作用を利用して、適切なプレース戦略を見出す。次いで、サイクルは再開する。
図1Aに示す例において、システム100は、3Dカメラ126を備える。様々な実施形態において、システム100は、複数の3Dカメラ(またはその他のカメラ)(カメラ126など)を備えてよく、かかるカメラによって生成された画像および深度データを用いて、作業空間およびシーン(図1Aに示すシーン/状態など)の少なくとも関係のある部分の三次元ビューを生成してよい。いくつかの実施形態において、カメラ(カメラ126など)は、例えば、かかるアイテムのサイズ、形状、パッケージ、および/または、ラベリングを認識することによって、ならびに/もしくは、移動元スタックトレイ自体の形状、色、寸法、または、その他の属性を認識することによって、ならびに/もしくは、トレイ上にありまたはトレイによって発せられるバーコード、QRコード(登録商標)、無線タグ、もしくは、その他の画像ベースまたは非画像ベースの情報を読み取ることによって、トレイスタックを構成する移動元トレイにおけるトレイの内容を識別するために用いられてよい。
様々な実施形態において、カメラ(カメラ126など)によって生成された画像データは、移動元スタックから把持およびピックされる1つのトレイまたは2以上のトレイのスタックの近くの位置に、ならびに/もしくは、トレイが配置される移動先の近くの位置に(例えば、対応する移動先スタックの上部に)、ロボットアームおよびエンドエフェクタを移動させるために用いられる。いくつかの実施形態において、ピック/把持エピソードおよび/またはプレースエピソードの最終段階を完了させるために、力制御が、後により完全に記載するように用いられる。
システム100の作業空間に取り付けられた単一のカメラ(例えば、カメラ126)が図1Aに示されているが、様々な実施形態において、複数のカメラまたはその他のセンサもしくはそれらの組み合わせが、作業空間に静的に取り付けられてもよい。追加的または代替的に、1または複数のカメラまたはその他のセンサが、各ロボット112、114の上または近く(アーム自体の上および/またはエンドエフェクタ116、118の上、など)に、ならびに/もしくは、レール110に沿って移動された時にロボット112、114と共に移動する構造の上に、取り付けられてもよい。いくつかの実施形態において、垂直支持および/または上側フレームを備えた上部構造が、3Dカメラまたはその他のセンサの取り付け位置を提供する。様々な実施形態において、1または複数の3Dカメラは、ロボットのベースの近くに配置されてもよい。垂直支持は、ロボット112、114に結合または一体化されていてよい。例えば、垂直支持は、ロボット112、114と一体化または結合されたシャーシであってよい。また、かかるシャーシは、ロボット112、114が動作している(例えば、アイテムを移動されている)時、または、ロボット112、114がレール110に沿って移動される時、などに、ロボット112、114のバックラッシュを減衰または他の方法で低減しうる。
図1Bは、関連技術に従って、ロボットラインキッティングシステムを示すブロック図である。図1Bには、図1Aのシステム100が動作しうる作業空間の俯瞰図の一例が示されている。図の例において、ロボット112、114は、コンベヤ(例えば、搬送手段106)に沿って移動する移動元スタック140にアクセスしてそこからトレイをピックし、移動元スタック140および搬送手段106からレール110を挟んで反対側にある移動先スタックアセンブリエリアにおける対応する移動先スタック142上にトレイをプレースするために、図1Aのように、共通のレール(例えば、レール110)に沿って移動する。この例では、人間の作業員が、搬送手段106上に移動元スタックを手動で供給しているが、いくつかの実施形態において、ロボット作業員が、例えば、対応する目的地に各々関連付けられている注文のセットを満たすようプログラム的に生成された計画に従って、タスクの全部または一部を実行する。移動先スタック142が完成すると、図1Aの矢印124に対応する図1Bの上部の矢印によって示すように、移動先スタックアセンブリエリアから移動される。
図1Aおよび図1Bに示す例において、トレイは各々、1つのタイプのみのアイテム(例えば、物体)を収容しているが、様々な実施形態および応用例において、混在したアイテムを有する移動元トレイおよび移動先トレイが、本明細書で開示されているように、トレイの移動先スタックを組み立てるために操作されてもよい。同様に、図1Aおよび図1Bに示す例において、トレイの移動元スタックは各々、同じタイプおよび内容のトレイのみを収容しているが、他の実施形態および応用例において、移動元トレイスタックは、混在したトレイおよび/またはアイテムタイプを含んでもよい。例えば、制御コンピュータ128は、どのタイプのトレイが各移動元トレイスタックのどの位置にあるのかを示す情報を提供されてよく、各移動先トレイスタックの必要な内容を示すマニフェストまたはその他の情報と共に、その情報を用いて、移動元トレイスタック上の各々対応する位置から必要なトレイをピックし、対応する移動先スタックにトレイを追加することによって、必要とされる移動先トレイスタックを構築してよい。
図2Aは、関連技術に従って、ロボットラインキッティングシステムを示すブロック図である。図の例において、キッティングシステム200は、キッティング棚システム(キッティング棚システム202など)と、ロボット210(例えば、キャリッジに取り付けられたロボットアームなど)と、を備える。いくつかの実施形態において、キッティングシステム200は、米国特許出願第17/219,503号および米国特許出願第17/246,356号に記載されているキッティングシステムに対応しており、これらの出願は、全体がすべての目的のために本明細書に組み込まれる。様々な実施形態によると、キッティング棚システム202は、1または複数の棚を備える。1または複数の棚の各々は、提示面(例えば、提示面204b、提示面206b、および/または、提示面208b)を備える。提示面は、アイテムがキッティング棚システム上で配置される領域または表面に対応する。1または複数のアイテムのキッティングに関連して、ロボットアーム(本明細書ではロボットも呼ばれる)が、少なくとも1つの提示面からアイテム(またはアイテム内からの物体)をピックする。キッティング棚システム202は、1または複数のフィーダ部分(例えば、フィーダ部分204a、フィーダ部分206a、および/または、フィーダ部分208a)を備えてよい。いくつかの実施形態において、キッティング棚システム204は、フィーダ部分から対応する提示面へのアイテムの搬送を制御するよう構成されているゲート構造(例えば、ゲート部分204c、ゲート部分206c、および/または、ゲート部分208c)を備える。ゲート構造は、提示面に結合または一体化されていてよい。
いくつかの実施形態において、ロボット210は、キッティングシステム200に対して、および/または、容器が配置されているコンベヤまたはその他の位置に対して、移動可能である。図2Aに示す例では、ロボット210は、キャリッジ220上に取り付けられており、キャリッジ220は、コンベヤ218と並んで実質的に平行に配置されたレールまたはその他の直線ガイド(例えば、レール222)に沿って走るよう構成されている。一例として、ロボット210は、キッティングシステム200の反対側に取り付けられてよい。一例として、ロボット210は、キッティングシステム200と同じ側に取り付けられてよい。いくつかの実施形態において、1または複数のロボット(例えば、ロボットアーム)が、コンベヤ218に対してキッティング棚システムと同じ側に取り付けられ、1または複数のロボットが、コンベヤ218を挟んでキッティング棚システムと反対側に取り付けられる。様々な実施形態において、1または複数のキッティング棚システムからアイテムを自動取得し、容器216(例えば、箱、トレイ、など)がコンベヤ218に沿って移動される間に容器216の中にアイテム(例えば、物体214)を配置することを容易にするように、キャリッジ220および取り付けられたロボット210をレールまたはガイド(例えば、レール222)に沿って移動させるために、モータ、ベルト、鎖、または、その他の原動力源が、コントローラ(図1では図示せず)を介して適用される。ロボットアームの制御は、容器216へピックアンドプレースされる1または複数のアイテム、容器216の位置(例えば、アイテムがキッティングされる所定の位置)、および/または、(例えば、コンベヤ218の決定済みの動きに基づいた)容器216の経路、に少なくとも部分的に基づいて、調整されてよい。
いくつかの実施形態において、キッティングシステム200は、制御コンピュータ224および/または運転遠隔操作装置226を備える。図の例において、キッティング棚システム202、コンベヤ218、および、ロボット210、および/または、キャリッジ220の動作は、制御コンピュータ224の制御下で協調的に操作される。図の例においては、制御コンピュータ224は、コントローラ(図2Aでは図示せず)と通信(例えば、無線通信)し、各コントローラは、キッティングシステム200を構成する対応する要素(例えば、キッティング棚システム202、ロボット210、コンベヤ218、キャリッジ220、および/または、容器ソース(図示せず))の動作を制御するよう構成されている。無線接続が図2Aに示されているが、様々な実施形態において、有線接続、もしくは、有線接続および無線接続の組みあわせが用いられてもよい。
様々な実施形態によると、ゲート構造は、フィーダ部分から提示面へアイテムが流れることを許容または防止する。フィーダ部分から提示面へのアイテムの流れの制御は、アイテムが提示面上で雑然となるのを防いでよく、ロボットアームが提示面からアイテム/物体をピックアンドプレースするのに十分な空間と提示面上のアイテムの秩序とを提供する助けとなりうる。ゲート構造は、任意の特定の時間に閾値より多いアイテムが提示面上に配置されることを防止/抑制するよう構成されていてよい。いくつかの実施形態において、ゲート構造は、開位置と閉位置との間で切り替えられる(例えば、移動される)。一例として、開位置は、アイテムが提示面上に存在しない時のゲート構造の向きに対応してよい。別の例として、開位置は、アイテムの提示面上のアイテムの数量がアイテムの閾値数より小さい時のゲート構造の向きに対応してよい。別の例として、開位置は、提示面上の重量(または提示面に掛かっている力)が閾値重量(または閾値力)より小さい時のゲート構造の向きに対応してよい。ゲート構造が開位置に向けられている時、フィーダ部分から提示面へのアイテムの流れすなわち搬送が許容されうる(例えば、ブロックされない)。逆に、ゲート構造が閉位置に向けられている時、フィーダ部分から提示面へのアイテムの流れまたは搬送が防止されうる(例えば、アイテムの流れがブロックされる)。図2Aに示す例において、提示面204b、206b、および/または、208bの一部が、対応するフィーダ部分204a、206a、および/または、208aからのアイテムの搬送をブロックするために用いられており、対応するゲート部分204c、206c、および/または、208cは、提示面204b、206b、および/または、208bへ動作可能に結合されているヒンジであってよい。いくつかの実施形態において、ゲート構造は、開位置および/または閉位置への移動について、対応する提示面とは異なる要素を移動させるよう構成される。
いくつかの実施形態において、ゲート構造は、対応する提示面に掛かっている重量(例えば、もしあれば、アイテムの重量)に少なくとも部分的に基づいて、(例えば、開位置と閉位置との間で移動するよう)機械的に動作される。ゲート構造は、開位置に向けられるようにゲート構造を付勢する付勢要素を備えてよい。提示面に掛かっている力(例えば、提示面上のアイテムの重量に対応する力)が、ゲート構造の付勢を超えると、ゲート構造は、閉位置になるよう動作しうる。いくつかの実施形態において、ゲート構造は、電気機械的に動作される。例えば、ゲート構造は、信号を受信してよく、その信号に少なくとも部分的に基づいて、ゲート構造は、閉位置または開位置で動作してよい。信号は、コンピュータ(制御コンピュータ224など)によって提供されてよい。ゲート構造を制御するための信号は、作業空間内で1または複数のセンサによって取得された情報に少なくとも部分的に基づいて、決定/提供されてよい。例えば、(例えば、対応する提示面上にアイテムが配置されているか否かの判定に少なくとも部分的に基づいて)ゲート構造を開位置に向けるのかまたは閉位置に向けるのかを決定することに関連して、キッティングシステム200のカメラ212によって取得された画像データが用いられてよい。1または複数のその他のセンサによって取得された情報が、ゲート構造を開位置に向けて制御するのかまたは閉位置に向けて制御するのかを決定することに関連して用いられてもよい。かかる情報を取得するために実装されてよいセンサの例は、重量センサ、力センサ、トルクセンサ、圧力センサ、赤外線センサ、などを含む。ゲート構造を開位置に向けて制御するのかまたは閉位置に向けて制御するのかを決定することに関連して用いられる情報は、対応する提示面上にアイテムがあるか否かを判定するため、提示面上のアイテムが閾値(例えば、閾値重量、閾値力)を超えているか否かを判定するため、などに用いられてよい。一例として、1または複数のセンサによって取得された情報のモデルが生成されてよい。モデルは、提示面上にアイテムが存在するか否か、または、提示面上に存在するアイテムの数量がアイテムの閾値数量より小さいか否か、などを示す情報などを決定/規定してよい。制御コンピュータ224は、そのモデルを用いて、ゲート構造を開位置に向けて制御するのかまたは閉位置に向けて制御するのかを決定してよい。例えば、提示面上にアイテムが存在するとの判定に応じて、制御コンピュータ224は、ゲート構造へ信号を送信して、ゲート構造を閉位置へ移動させてよい(例えば、それにより、さらなるアイテムを提示面へ搬送することを防ぐ)。
図2Aに示すように、提示面(例えば、提示面204b、提示面206b、および/または、提示面208b)は、可動である。例えば、提示面は、(204d、206d、および、208dで示す)空き位置と、(204b、206b、および、208bで示す)占有位置との間で切り替わる。図2Aに示す例は、2つの位置/向きの間で切り替わる提示面を示しているが、キッティング棚システム202は、複数の位置/向きの1つに向くように提示面が動かされるように構成されてよい。例えば、提示面は、作業空間の状況(例えば、提示面上に提供されるアイテム、アイテムをピックするロボットアームの位置、センサまたはカメラの位置、など)に少なくとも部分的に基づいて、複数の位置/向きの任意の1つに向けられてよい。
様々な実施形態において、空き位置は、フィーダ部分から提示面への1または複数のアイテムの流れ/搬送を容易にするように提示面が向けられる位置に対応する。例えば、空き位置は、提示面上のアイテムの数量が閾値数より小さい時に提示面が向けられる位置に対応してよい。別の例において、空き位置は、提示面が空いている(例えば、その上にアイテムが全く配置されていない)時に提示面が向けられる位置に対応する。別の例として、空き位置は、提示面上の重量(または、そこに掛かっている力)が閾値重量(または閾値力)より小さい時に提示面が向けられる位置に対応する。いくつかの実施形態において、特定のキッティング棚システム(例えば、キッティング棚システム202)における各提示面は、対応する空き位置に向けられた時に同じ方位角(例えば、地面への垂線に対する角度など)を有してよい。いくつかの実施形態において、特定のキッティング棚システム(例えば、キッティング棚システム202)における2以上の提示面が、対応する空き位置に向けられた時に異なる方位角(例えば、地面への垂線に対する角度など)を有する。一例として、1または複数の提示面の第1セットが、1または複数の提示面の第2セットの方位角とは異なる方位角を有する。別の例として、特定のキッティング棚システム内の各提示面は、対応する空き位置に向けられた時に異なる方位角(例えば、地面への垂線に対する角度など)を有する。キッティング棚システム上の棚(例えば、対応するフィーダ部分およびキッティング部分の少なくとも一方)は、地面に対する棚の高さに基づいて異なる角度に構成されてよい。異なる角度に棚を構成することで、作業空間内のセンサ(カメラ212など)のより良好な視線が可能になりえ、かかる構成は、作業空間に関する情報を改善しうる(例えば、アイテム上の識別子が、より容易または正確に取得されうる、など)。
いくつかの実施形態において、アイテムが提示されている最下棚(例えば、フィーダ部分208aに対応する棚など、アイテムが取得されうる棚)は、より高い棚の提示面(提示面204bおよび206bなど)よりも可動域の小さい対応する提示面208bを有する。かかる最下棚上の提示面は、フィーダ部分に対して固定されていてもよい。例えば、かかる最下棚上の提示面は、フィーダ部分と一体化されてもよいし、他の方法でフィーダ部分に対する位置を変えなくてもよい。かかる最下棚またはかかる最下棚の提示面(例えば、提示面208b)は、1または複数のより高い棚もしくは1または複数のより高い棚の提示面(例えば、提示面204bおよび/または206b)よりも浅いピッチ/角度を有してよい。いくつかの実施形態において、棚(例えば、提示面上にアイテムがある時などのかかる棚の提示面)は、棚がキッティング棚システム(キッティングシステム200など)において下にあるほど、徐々に浅いピッチまたは角度を有する。
様々な実施形態において、占有位置は、(例えば、ロボットアームによる)提示面からの1または複数のアイテムのピックを容易にするように提示面が向けられる位置に対応する。提示面は、フィーダ部分から提示面への1または複数のアイテムの搬送/流れが防止されるべきである時に、占有位置に向けられうる。いくつかの実施形態において、特定のキッティング棚システム(例えば、キッティング棚システム202)における各提示面は、対応する空き位置に向けられた時に同じ方位角(例えば、地面への垂線に対する角度など)を有してよい。いくつかの実施形態において、特定のキッティング棚システムにおける2以上の提示面が、対応する占有位置に向けられた時に異なる方位角(例えば、地面への垂線に対する角度など)を有する。一例として、1または複数の提示面の第1セットが、1または複数の提示面の第2セットの方位角とは異なる方位角を有する。別の例として、特定のキッティング棚システム内の各提示面は、対応する占有位置に向けられた時に異なる方位角(例えば、地面への垂線に対する角度など)を有する。図2Aに示すように、キッティング棚システム上の棚(例えば、対応するフィーダ部分およびキッティング部分の少なくとも一方)は、地面に対する棚の高さに基づいて異なる角度に構成されてよい。異なる角度に棚を構成することで、作業空間内のセンサ(カメラ212など)のより良好な視線が可能になりえ、かかる構成は、作業空間に関する情報を改善しうる(例えば、アイテム上の識別子が、より容易または正確に取得されうる、など)。
いくつかの実施形態において、提示面の向きは、対応する棚が地面に対して低いほど、下向きに大きく傾いてよい。提示面のかかる向きは、提示棚もしくは提示面上の1または複数のアイテム/物体に関する情報を取得するための1または複数のセンサ(例えば、カメラ212)を強化しうる。さらに、かかる向きは、ロボットアームがロボットアームのエンドエフェクタでアイテムと係合する能力を強化しうる。ロボットアームは、その手首の伸展能力/構成および/またはその手首の屈曲能力/構成に関して制限を有しうる。一例として、(例えば、少なくとも占有位置にある)提示面の向きは、提示面からアイテム/物体をピックするのにロボットアームによって必要とされる手首伸展の程度に少なくとも部分的に基づいて構成される。棚/提示面は、キッティング棚システムにおけるロボットアームの手首の可動域(例えば、手首伸展/屈曲に関する可動域)に少なくとも部分的に基づいて構成されてよい。ロボットアームのエンドエフェクタまたは手首構成要素は、ロボットアームが提示面上に配置されたアイテムと(例えば、特定の角度および高さ/位置で)係合する能力を阻害するサイズ制限を有しうる。したがって、棚の(例えば、少なくとも占有位置にある)提示面の向きは、ロボットアームが、アイテム/物体に対して直角にロボットアームのエンドエフェクタで提示面上のアイテム/物体と係合するようにその位置を構成する可能性/能力を改善するよう構成されてよい。占有位置にある時の提示面の向きは、その上に配置されたトレイ/アイテムが、搭載カメラ(例えば、作業空間内ならびに/もしくはロボットアームまたはそのシャーシ上に配置されているカメラ)からのより良好な映像のために(各レベル/棚で)最適に傾斜されている向きに対応しうる。いくつかの実施形態において、空き位置および/または占有位置にある提示面の向きは、対応するゲート構造の構成に少なくとも部分的に基づいている。例えば、ゲート構造がヒンジである場合、空き位置および/または占有位置にある提示面の向きは、ヒンジの可動域に少なくとも部分的に基づいている。
様々な実施形態によると、キッティング棚システム202は、1または複数のフィーダ部分(例えば、204a、206a、および/または、208a)を備える。いくつかの実施形態において、キッティング棚システム202は、1または複数のアイテムを複数の提示面へ搬送する単一のフィーダ部分を有してよい。他の実施形態において、図2Aに示すように、キッティング棚システム202は、各提示面に対して単一のフィーダ部分を有する(例えば、フィーダ部分と提示面との一対一対応)。フィーダ部分は、提示面へアイテムを搬送するよう構成されていてよい。一例として、アイテムの搬送は、フィーダ部分上に配置されたアイテムに作用する重力によるなど、受動的であってよい(例えば、フィーダ部分が提示面に向かって傾斜するよう構成されている場合)。別の例として、アイテムの搬送は、フィーダ部分が、フィーダ部分の入力位置から提示面へアイテムを運ぶコンベヤを備えるよう構成されていることに基づいて、少なくとも部分的に能動的であってよい。様々な実施形態において、フィーダ部分は、受け入れ端部上(例えば、フィーダ部分への入力)で連続的にアイテムを受け入れ、目的端部(例えば、提示面へ動作可能に接続/結合され、または、他の方法でフィーダ部分を出て適切な提示面へ至る端部)へアイテムを搬送するよう構成されている。一連のアイテムは、(例えば、人間のオペレータ228によって)フィーダ部分またはキッティング棚システムへ手動でロードされてよく、もしくは、一連のアイテムは、(例えば、ロボットアーム/構成要素によって、または、供給源の流れ/山からアイテムを搬送するシュートにフィーダ部分が結合されていることに少なくとも部分的に基づいて)フィーダ部分へ自動的にロードされてよい。
様々な実施形態によると、制御コンピュータ224は、タスク(例えば、アイテムの把持、移動、プレースなど)の実行に関連して、1または複数のさらなる軸(例えば、ロボットのn軸に追加した軸)を用いるよう、ロボット210を動的に制御する。制御コンピュータ224は、(i)ロボット210に対応するn軸と、(ii)1または複数のさらなる軸とに少なくとも部分的に基づいて、計画または戦略を決定する。例えば、計画/戦略を決定するためのモデルは、1または複数のさらなる軸に関してロボットが動く可能性を含む(例えば、解空間は、1または複数のさらなる軸におけるロボットの動作を考慮して、可能になりおよび/または効率的であると見なされる位置または構成を含む)。図2Aに示す例に関して、1または複数のさらなる軸は、レール222に基づいて規定されている次元(例えば、第7軸)を含む。ロボット210は、レール222によって規定されている方向に沿って平行移動されるよう制御されうる。制御コンピュータ224は、少なくとも部分的に、ロボットのn軸と1または複数のさらなる軸とを考慮に入れることによって、アイテムに関するタスクを実行するための戦略を決定する。戦略は、アイテムに関するタスクを実行するようにロボットのn軸と1または複数のさらなる軸との少なくとも一部に関してロボットを操作するための1または複数のコマンドのセットを含む。
いくつかの実施形態において、制御コンピュータ224は、1または複数のさらなる軸に少なくとも部分的に基づいて、アイテムに関するタスクを実行するための戦略を決定する。例えば、制御コンピュータ224は、レール222に沿った動作を含めるように、アイテムに関するタスクを実行する際のロボット210の動作のための解空間を拡張する。タスクを実行するための戦略を実施することに関連して、制御コンピュータ224は、タスクが実行されている時に、レール222(例えば、レール222上を移動するように、対応するロボットが取り付けられているキャリッジ)によって規定されている次元に沿ってロボット210を移動させることができる。一例として、ロボット210は、経路/軌道(ロボットが移動されなかった場合に、可能ではなくまたはそうでなければ非効率的でありえた経路または軌道)に沿ってアイテムを移動させるために、アイテムが把持されている間に、レール222によって規定されている方向に沿って移動される。
様々な実施形態において、本明細書で開示されているロボットシステムは、例えば、制御コンピュータ(制御コンピュータ224など)の動作によって、以下の内の1または複数を備え、および/または、行う。
・コンピュータビジョン情報が、1または複数のキッティング棚システムを含む(それに応じて、キッティング棚システムの1または複数の棚を含みうる)作業空間の三次元ビューを生成するために、2Dカメラ、3D(例えば、RGBD)カメラ、赤外線、および、その他のセンサの内の1または複数を含む、複数のセンサからのデータをマージすることによって生成される。ロボットシステムは、作業空間の三次元ビューにおけるアイテムおよび/またはデブリまたはその他の異常の特徴を決定する。
・ロボットシステムは、衝突と、互いの妨げになることと、別のロボットと同じアイテムをピックアップしおよび/または同じ移動先位置(例えば、コンベヤ上の容器)にアイテムをプレースしようと競合することと、を回避するように、複数のロボットの動作を調整する。ロボットシステムは、(例えば、異なる容器内または同じ容器内のアイテムをキッティングするために)複数のアイテム/物体に関するキッティングを実行するよう、同じ作業空間内で動作する複数のロボットの動作を連携させる。一例として、様々な実施形態において、複数のロボットは、アイテムをピックアンドプレースするよう独立的に動作する。別の例として、複数のロボットは、(例えば、異なる容器内に異なるセットのアイテムをプレースするために)異なる注文についてアイテムを独立的にピックアンドプレースするよう動作する。衝突のリスクが検出された場合、複数のロボットがシンギュレーション中に互いに衝突しないようにする応答動作が取られる。
・ロボットシステムは、すべてのアイテムが対応する容器にプレースされることを確実にするように、複数のロボットの動作を連携させる。例えば、ロボットAがアイテムを落とした場合に、システムがロボットBにそれをピックアップするタスクを課す、プレースされたが向きが不適切であるアイテムが、同じまたば別のロボットによって、ピックアップされ、調整されるか、または、別の位置に移動される、異なる注文の2以上のアイテムが単一の容器にプレースされた時に、下流のロボットが容器から2以上のアイテムの1つをピックして、新たな容器にそのアイテムをプレースする、などである。
・ロボットシステムは、(例えば、全体的スループットを最大化するため、全体的スループットの所定の閾値に到達するため、など)所望の全体的スループットを達成するために、各ロボットおよび全ロボットのための動作計画を絶えず更新する。アイテムをキッティングするためのそれぞれの計画に従って動いた場合に、2以上のロボットが衝突したかまたは衝突するとの判定に応じて、ロボットシステムは、2以上のロボットが衝突を避けまたは別の方法で2以上のロボットの独立動作をリセットすることを確実にするために、積極的な対策を実施する。
・2つのロボットが独立的に同じアイテムを取得するタスクを課されたとの判定に応じて、システムは、そのアイテムを取るために一方のロボットをランダムに選択し、他方のロボットは、次のアイテムへ移行する(例えば、把持戦略を特定、選択、決定し、ピックして、計画に従って移動させ、プレースする)。
・ロボットシステムは、2つの異なるロボットによるシンギュレーションに対して同じアイテムが選択されることを回避するために、ロボットが異なる時にアイテムを選択することを確実にするように、複数のロボットの独立動作を管理できる。
・所望のロボット生産性(スループット)を達成し、ロボットが所望の容器に物体をプレースするのに十分な時間を許容するために必要に応じて制御されるコンベヤの動きおよび/または速度。
・アイテムが誤配置または落下したとの判定に応じて、システムは、誤配置されたアイテムをピックアップして、適切なキッティング棚システムに(例えば、フィーダ部分を介するなどして、棚上へ)戻すか、もしくは、利用可能またはより最適であれば、コンベヤ上の容器に置く作業を、ロボットまたは必要であれば人間の作業員に割り当てる。
・下流のロボットがコンベヤ上に(例えば、対応する容器内に)アイテムをプレースするために、いくつかの容器を意図的に空き状態にするよう制御される上流ロボット。
・(例えば、2以上の容器(トレイなど)内にあるアイテム、または、適切な容器ではなくコンベヤ上にあるアイテムの配置を修正するため、アイテムまたはキット/注文の識別子と、上流ロボットがアイテムをプレースした容器との間の関係でデータ構造を更新するため、など)コンベヤ上の容器にアイテムをプレースする上流からのエラーを修正するよう制御される下流ロボット。
・同じまたは別のロボットによって修正できない失敗の結果として、解決するために人間(またはその他のロボット)の介入を得るために警告が通信される。
・把持力(例えば、エンドエフェクタによって達せられる圧力)が異常である(例えば、通常動作中に期待されるよりも低い)との判定に応じて、エンドエフェクタに関して是正措置が必要か否かを判定することに関して、所定の表面上の把持力をテストすることを含む診断処理を実行する。
・作業空間内のデブリを移動/除去し、または、キッティングされるアイテムを再構成する(例えば、アイテムが成功裏に、棚(または棚の提示面)からピックされ、コンベヤ上に(コンベヤ上の容器などに)プレースされる可能性を改善するために)。
・作業空間環境状態システムからのセンサデータを用いて、キッティングに向けて選択されたアイテムの1または複数の特徴(例えば、属性)を検出し、アイテムの把持または解放が積極的な対策の実施に応じて改善を期待されると判定し、アイテムの把持または解放を改善するために積極的な対策を実施する。
・センサデータを用いて、アイテム内の1つのキッティングに関連してロボットアームが複数のアイテムを把持したと判定し、コンベヤ上の1または複数の容器における対応する位置に各アイテムを1つずつプレースするためまたはキッティング棚システムの棚/提示面にアイテムの1つを戻すために複数のアイテムを解放する計画を決定する(例えば、複数のアイテムの第2サブセットとは異なる時に複数のアイテムの第1サブセットを解放するようにエンドエフェクタを動作させるための戦略を決定する)。
・コンベヤ上の容器にアイテムをキッティングするための経路を、そのアイテムの属性(例えば、選択されたアイテムのサイズ、アイテムの重量、など)ならびに/もしくはコンベヤ上の容器内のアイテムの1または複数の属性(例えば、特徴)に基づいて選択する。
・キッティング棚システムからアイテムをピックし、コンベヤベルトの速度に少なくとも部分的に基づいて適切な容器にアイテムをプレースするロボットアームの動きおよび速度を決定する。
・アイテムの特徴、作業空間環境の特徴、および/または、コンベヤの特徴(例えば、コンベヤベルトの速度)の内の1または複数に少なくとも部分的に基づいて、キッティングされるアイテムの軌道を決定する。
・キッティングされるアイテムの1または複数の経路/軌道に対応するキッティング成功の確率を決定し、対応する成功確率に基づいて、アイテムがキッティングされる経路/軌道を選択する。
・(例えば、把持成功の確率、アイテムのパッケージのタイプ、アイテムの寸法、閾値に関する期待把持力、などに基づいて決定されたように)把持を成功させるために、ロボットアームおよび/またはロボットアームのエンドエフェクタのポジショニングを決定する。エンドエフェクタのポジショニングは、エンドエフェクタがアイテムの表面と直角をなすように、ロボットアームまたはロボットアームの手首の移動を制御することを含みうる。
・ロボットシステムが空き容器を検出する能力を更新する。例えば、空き容器を識別するためにロボットシステムによって用いられる空き容器の定義が、時と共に更新される。
・アイテムに関するタスクを実行する戦略を決定する。戦略は、少なくとも部分的に、ロボットのn軸と1または複数のさらなる軸とを考慮に入れることによって決定される。戦略は、アイテムに関するタスクを実行するようにロボットのn軸と1または複数のさらなる軸との少なくとも一部に関してロボットを操作するための1または複数のコマンドのセットを含む。
・アイテムに関するタスクの実行を決定したことに応じて、ロボットシステムは、作業エリア内にロボットを配置するためにロボットを制御する。例えば、ロボットシステムは、レールに沿って作業エリアへロボットを移動させるよう制御する。いくつかの実施形態において、ロボットシステムは、アイテムに関するタスクを実行するための計画および/または戦略を取得する。一例として、ロボットシステムは、作業エリアのモデルおよび/またはアイテム(例えば、アイテムに関連する1または複数の属性)に少なくとも部分的に基づいて、計画および/または戦略を決定する。システムは、ロボットが、例えば最適な姿勢および効率的な動作などを用いて、最も効率的にアイテムを把持、移動、および/または、プレースすることを可能にするために、ロボットをレールに沿って(例えば、第7軸に沿って)移動させるか否かを決定する。
図2Bは、関連技術に従って、ロボットラインキッティングシステムを示すブロック図である。様々な実施形態によると、キッティングシステム250は、図10の処理1000、図11の処理1100、および/または、図12の処理1200を実行しうる。
図2Bに示すように、様々な実施形態において、キッティングシステム250は、1または複数のキッティング棚システム(例えば、キッティング棚システム252、キッティング棚システム254、および/または、キッティング棚システム256)を備える。キッティングシステム250が複数のキッティング棚システムを備える場合、キッティング棚システムは、コンベヤ(例えば、コンベヤ268)の片側に沿って配置されてよく、または、キッティング棚システムは、コンベヤの異なる側に配置されてもよい。
様々な実施形態において、キッティングシステム250は、1または複数のロボットアーム(例えば、ロボット260)を備える。キッティングシステム250が複数のロボットアームを備える場合、ロボットアームは、コンベヤ(例えば、コンベヤ268)の片側に沿って配置されてよく、または、ロボットアームは、コンベヤの異なる側に配置されてもよい。さらに、ロボットアームは、コンベヤに対して1または複数のキッティング棚システムと同じ側に配置されてよく、もしくは、ロボットアームは、コンベヤを挟んで1または複数のキッティング棚システムと反対の側に配置されてもよい。様々な実施形態において、キッティングシステム250が複数のロボットアームを備える場合、ロボットアームの位置、特定のロボットアームがアイテムのピックに成功する有効性(例えば、計算された成功の可能性)、特定のロボットアームのリーチ、特定のロボットアームがアイテムのピックアンドプレースを完了する時間に基づいて、キッティング棚システムからアイテム(またはアイテム内からの物体)を取得するために、複数のロボットアームの中から1つのロボットアームが選択される。アイテムをピックアンドプレースするために選択される特定のロボットアームは、制御コンピュータ274によって選択されてよい。例えば、制御コンピュータ274は、キッティングシステム250の作業空間ならびに/もしくは作業空間内のロボットアームの内の1または複数のロボットアームに関するモデルを格納していてよい。制御コンピュータは、モデルを用いて、アイテムをピックアンドプレースするためのロボットアーム、ならびに/もしくは、特定の注文のために1または複数のアイテムの各々をピックアンドプレースするためのロボットアームを決定してよい(例えば、単一のロボットアームが、注文のためにアイテムをキッティングするために用いられうる)。いくつかの実施形態において、キッティング棚システムと同じ側に配置されているロボットアームは、閾値高さより高いキッティング棚システム上の棚からアイテムをピックアンドプレースする際により有効/効率的である。閾値高さより低い棚については、かかる棚上のアイテムに到達するのに必要なロボットアームの捻転により、コンベヤに対して特定のキッティング棚システムと同じ側にあるロボットアームは非効率的になる。さらに、かかる棚上のアイテムに到達するのに必要なロボットアームの捻転は、高さ閾値より低い棚からアイテムをピックする際のロボットアームのレンジ/可動性を制限する。したがって、閾値高さより低い棚上のアイテムの場合、キッティングシステム250は、アイテムが取得されるキッティング棚システムとコンベヤ268を挟んで反対側のロボット260を利用してよい。
キッティング棚システム252は、1または複数の棚を備える。いくつかの実施形態において、1または複数の棚は、それぞれ、上に配置された1または複数のアイテムを含む。キッティング棚システム252内の異なる棚は、異なるアイテム(例えば、異なるタイプのアイテム、1または複数の異なる識別子(シリアル番号、モデル番号、ロット番号、など)を有するアイテム、など)を含んでよい。キッティング棚システムの内の1または複数は、図2Aのキッティングシステム200に関して開示したのと同様のフィーダ部分、ゲート構造、および、提示面を有してよい。図2Bに示すように、キッティング棚システムは、提示面258aと、ゲート構造258bと、フィーダ部分258cとを有する棚を備える。
いくつかの実施形態において、ロボット260は、1または複数のキッティング棚システム252、254、および、および、256に対して、ならびに/もしくは、容器が配置されているコンベヤ(例えば、コンベヤ268)またはその他の位置に対して、移動可能である。図2Bに示す例では、ロボット260が、キャリッジ270上に取り付けられており、キャリッジ270は、キッティング棚システム252の向かい側で、コンベヤ268と並んで実質的に平行に配置されたレールまたはその他の直線ガイド272(例えば、レール272)に沿って走るよう構成されている。様々な実施形態において、1または複数のキッティング棚システムからアイテムを自動取得し、容器276(例えば、箱、トレイ、など)がコンベヤ268に沿って移動される間に容器276の中にアイテムを配置することを容易にするように、キャリッジ270および取り付けられたロボット260をレールまたはガイド(例えば、レール272)に沿って移動させるために、モータ、ベルト、鎖、または、その他の原動力源が、コントローラ(図2Bでは図示せず)を介して適用される。ロボットアームの制御は、容器276へピックアンドプレースされる1または複数のアイテム、容器276の位置、および/または、(例えば、コンベヤ268の決定済みの動きおよび/または速度に基づいた)容器276の経路、に少なくとも部分的に基づいて、調整されてよい。
いくつかの実施形態において、キッティングシステム250は、制御コンピュータ274を備える。図の例において、キッティング棚システム252、コンベヤ268、および、ロボット260、および/または、キャリッジ270の動作は、制御コンピュータ274の制御下で協調的に操作される。図の例においては、制御コンピュータ274は、コントローラ(図2Bでは図示せず)と通信(例えば、無線通信)し、各コントローラは、キッティングシステム250を構成する対応する要素(例えば、キッティング棚システム252、254、および/または、256の内の1または複数、ロボット260、コンベヤ268、キャリッジ270、および/または、容器ソース(図示せず))の動作を制御するよう構成されている。無線接続が図2Bに示されているが、様々な実施形態において、有線接続、もしくは、有線接続および無線接続の組みあわせが用いられてもよい。
図2Bに示す例において、ロボット260は、2本指グリッパに対応するエンドエフェクタを有する。様々な実施形態において、ロボット260は、1または複数のその他のおよび/または異なるタイプのエンドエフェクタ/取得ツールを備えてもよく、かかるツールは、3以上の指を有するグリッパ、図に示すものとは異なる属性の指(例えば、クッション付きの指、小さい指、大きい指など)を有するグリッパ、および/または、グリッパではない取得ツール(吸引、摩擦、静電力、磁力などを用いてアイテムをピックアップするよう構成されているものなど)を含むが、それらに限定されない。いくつかの実施形態において、ロボット260のグリッパは、取得されるアイテムの1または複数の属性(例えば、重さ、壊れやすさ、圧縮性、剛性、サイズ、形状など)に応じて、1または複数の異なるエンドエフェクタと交換されてもよい。いくつかの実施形態において、ロボット260のグリッパは、例えば、取得されるアイテムの1または複数の属性に応じて、異なるエンドエフェクタ(例えば、グリッパ保持型ツール)を取得して、アイテムのピックアンドプレースに用いるために用いられてよい。アイテムの1または複数の属性は、1または複数のセンサ(カメラ262など)から取得された情報に少なくとも部分的に基づいて決定されてよい。
様々な実施形態において、制御コンピュータ274は、取得されて一緒に梱包されるアイテムの送り状、注文、部品リスト、ピックアップリスト、または、その他のリストに関連するデータを受信し、必要とされるアイテムの取得および梱包を遂行するための戦略/計画を決定し、要求を遂行するように協調して、キッティングシステム250の要素(例えば、キッティング棚システム252、254、および/または、256、コンベヤ268、ならびに、ロボットアーム260および/またはキャリッジ270)を動作させるよう、例えば、制御コンピュータ274上で実行するソフトウェアによって、構成されている。いくつかの実施形態において、キッティングシステム250は、複数のキッティング棚システムおよび/または複数のロボットアームを備え、1または複数の制御コンピュータが、キッティングシステム250の要素を調整/操作するために制御される。
例えば、いくつかの実施形態において、制御コンピュータ274は、梱包されるアイテムのリストを受信するよう構成されている。制御コンピュータ274は、どのアイテムがどのキッティング棚システムに関連しているのか(または、どのアイテムがキッティング棚システム(キッティング棚システム252など)の特定の棚に関連しているのか)を決定し、アイテムを取得して梱包する計画を作成する。いくつかの実施形態において、コンピュータ274は、箱組み立てマシン(図示せず)または容器供給モジュールを制御し、コンベヤ268上に容器を配置し、1または複数の第1アイテムが載せられる位置へ容器を前進させるようコンベヤ268を制御する。制御コンピュータ274は、1または複数の第1アイテムを関連するキッティング棚システム(またはキッティング棚システム252の棚)から取得するためにロボット260を配置する必要に応じて、キャリッジ270および/またはロボット260を制御する。制御コンピュータ274は、例えば、必要な数量の必要なアイテムが、コンベヤ268およびロボット260に最も近いキッティング棚システム252、254、および/または、256(もしくは、キッティング棚システムの棚)の端のピックアップゾーン(例えば、提示面)に存在することを確実にするように、キッティング棚システム252、254、および/または、256を制御してよい。制御コンピュータ274は、ロボット260を制御して、対応するピックアップゾーンからアイテムを取得させ、容器(例えば、容器276)の中にアイテムをプレースさせ、その後、その特定のキットに含める必要のある任意のさらなるアイテムの協調的な取得および梱包を実行するために移動させる。すべてのアイテムが(例えば、1または複数のアイテムをキッティングするための計画に従って)取得され梱包されたとの判定に応じて、制御コンピュータ274は、コンベヤ268を制御して、図2Bでは図示されていないフルフィルメントの次の段階(例えば、箱が密閉され、ラベル付けされ、出荷に向けて送られるステーション)へと容器(例えば、容器276)を進める。
図2Bに示す例において、キッティング棚システム252は、例えば、人間の作業員、ロボット、および/または、その他のマシン、もしくは、それらの組みあわせによって、バックエンド(図2Bに示すように左上側)から積み込まれるよう構成されている傾斜した棚または傾斜したコンベヤ(例えば、提示面258a、ゲート構造258b、および、フィーダ部分258cを備える棚)を備える。キッティング棚システム252は、フィーダ部分において、または、棚のそれぞれのフィーダ部分にアイテムを運ぶ積み込み要素(例えば、シュート)において、積み込みされてよい。アイテムは、アイテムおよび/またはアイテムタイプまたはその他のアイテム属性を各キッティング棚システムと関連付けるデータを決定して、制御コンピュータ274上に格納するために、スキャン、コンピュータビジョンによる認識、などされてよい。様々な実施形態において、異なるタイプのキッティング棚システムが混在して、キッティングシステム(キッティングシステム250など)に含められてよい。例えば、キッティング棚システム252によって供給される図2Bに示すアイテムは、いくつかの実施形態において、アイテムが転がり落とされる固定斜面によって供給されてよい。いくつかの実施形態において、キッティング棚システムは、複数の隣接するローラ、斜面、コンベヤベルト、1セットの回転容器、などを有する重力タイプのコンベヤを含むがそれらに限定されないものなど、関連するピックゾーンにアイテムを供給するために複数の構造およびメカニズムの内の任意の1つを備えてよい。
いくつかの実施形態において、キッティング棚システム252は、傾斜した棚または傾斜したコンベヤへまたはその中へのアイテムの搬送を制御する1または複数のゲーティングメカニズム(例えば、ゲート構造258b)を備える。1または複数のゲーティングメカニズムは、1または複数のアイテムのキッティング(例えば、ロボットアームによるアイテムの取得および対応する容器へのアイテムの配置)に関連して、キッティング棚システムの1または複数の提示面(例えば、提示面258a)への1または複数のアイテムの搬送を制御しうる。1または複数のゲーティングメカニズムは、制御コンピュータ274によって制御されてよく、もしくは、1または複数のゲーティングメカニズムは、(例えば、制御コンピュータによる介入なしに)機械的に動作するよう構成されてもよい。様々な実施形態において、1または複数のゲーティングメカニズムは、計画(例えば、注文に少なくとも部分的に基づいてアイテムをキッティングするための所定の計画)に少なくとも部分的に基づいて、1または複数のアイテムの搬送を制御する。
様々な実施形態において、システム250は、制御コンピュータ274に自動処理、手動構成、および/または、それらの組みあわせを通して、各キッティング棚システム(例えば、キッティング棚システム252、254、および/または、256)の配置、タイプ、機能と、各キッティング棚システムに関連付けられるアイテムとを決定させることによって、初期化される。さらに、キッティングシステム250の要素が、制御コンピュータ274に登録されてもよい。登録は、要素(キッティング棚システムの各々など)が制御ネットワークに入るのを許可することを含んでよい。いくつかの実施形態において、動作テストが実行されてよい。例えば、制御コンピュータ274は、前後方向に、様々な速度で、などの方法で、キッティングマシン(キッティング棚システム252など)のコンベヤベルトを動作させることなどによって、新たに登録された要素を制御できるかをテストしてよい。
様々な実施形態において、キッティングシステム250の要素が、追加、除去、交換などされてもよい。かかる例において、制御コンピュータ274は、新たな要素を初期化および登録し、動作テストを実行し、キッティング動作を開始/再開して、例えば、新たに追加された要素を組み込む。
図2Bをさらに参照すると、図の例において、キッティングシステム250は、キッティングシステム250に備えられている要素の画像(例えば、ビデオ画像)をキャプチャするよう構成されているカメラ262(例えば、ビデオカメラ)を備える。カメラ262は、作業空間(例えば、キッティングシステム250に対応する作業空間)に関する情報を取得する複数のセンサの1つであってよい。例えば、カメラ262は、システム250を構成する要素を制御するために制御コンピュータ274によって用いられる複数のセンサの内の1つであってよい。例えば、図の例において、カメラ262によって生成されて制御コンピュータ274へ送信されたビデオは、十分かつ過剰ではない数のアイテムがピックアップゾーン(例えば、キッティング棚システム252の提示面258a)で利用可能であることを保証するように、および/または、ロボット260による取得に向けてアイテムを配置または再配置するように、キッティング棚システム252に備えられているコンベヤベルトの速度および/または方向、ならびに/もしくは、キッティング棚システム252におけるゲーティングメカニズム(例えば、258b)を制御するために、制御コンピュータ274によって用いられてよい。さらに、カメラ262ならびに/もしくはその他のカメラおよび/またはセンサは、ロボット260がアイテムをピックし、および/または、容器(例えば、箱)の中にアイテムをプレースすることを容易にするために用いられてもよい。様々な実施形態において、複数のカメラが、自動化された(そして、必要に応じて、人間が支援する)キッティング動作を容易にするために、環境内、および、キッティングシステム250を構成するそれぞれの要素上など、複数の位置に配備されてよい。様々な実施形態において、接触スイッチまたはリミットスイッチ、圧力センサ、重量センサなどを含むがこれらに限定されない、カメラ以外のセンサが配備されてもよい。
様々な実施形態において、1または複数のセンサ(例えば、カメラ262)は、キッティング棚システム252、254、および/または、256に関連するアイテムに関する情報をキャプチャするために用いられる。例えば、カメラ262は、棚上の1または複数のアイテムの画像をキャプチャしてよい。別の例として、棚上のアイテムがトレイまたはその他の容器である場合、カメラ262は、トレイ内の物体に関する情報をキャプチャしてよい。制御コンピュータ274は、キッティング棚システム252からアイテム(またはアイテム内からの物体)をピックするために、作業空間に関する情報を用いて、計画を決定し、および/または、ロボット260の動作を制御してよい。制御コンピュータ274は、棚上のトレイ内の物体の位置、トレイ内の物体の数量、トレイ内の物体のタイプ、トレイ内の1または複数の物体の向き、などを決定することに関連して、作業空間に関する情報を用いてよい。
様々な実施形態において、制御コンピュータ274は、キッティングシステム250に備えられているロボット260およびその他の要素(例えば、キッティング棚システム252、254、および/または、256、コンベヤ268、容器供給モジュール(例えば、箱組み立てマシン)(図示せず)、ロボット260、ならびに/もしくは、キャリッジ270)のモデルに少なくとも部分的に基づいて、キッティング要求を満たすための計画を決定するようプログラムされている。それぞれのモデルは、様々な実施形態において、それぞれの要素の機能および制限を反映している。例えば、キッティング棚システム252、254、および/または、256の棚は、この例では固定位置にあるが、各々が、前後方向に、および/または、異なる速度で、動かされることが可能なコンベヤベルトを有してもよい。さらに、制御コンピュータ274は、例えば、どのアイテムがどのキッティング棚システム(または、どのキッティング棚システムのどの棚)のどの位置にあるか、各キッティング棚システムおよび/またはそれに関連するピックアップゾーン(例えば、提示面)がどこに配置されるかなど、初期化および/または構成に関連して格納された情報を用いて、要求を満たすための計画を決定してよい。さらに、制御コンピュータ274は、センサデータ(カメラ262によってキャプチャされたビデオなど)に少なくとも部分的に基づいて決定されたデータを用いて、要求を遂行するための計画を立ててもよい。
様々な実施形態によると、シンギュレートされるアイテムの属性および作業空間内の別のアイテム(例えば、コンベヤ上のアイテムおよび/または容器)の属性の1または複数を用いて、アイテムのキッティングのための経路または軌道を決定する動的キッティング方法またはシステムを用いることで、1または複数のキッティング棚システムからのアイテムのキッティングが改善される。動的キッティング方法またはシステムは、キッティングされるアイテムの属性および作業空間内の別のアイテム(例えば、コンベヤ上のアイテム)の属性の1または複数を検出したことに応じて、アイテムのキッテクングのための経路または軌道を更新することを含んでよい。動的キッティング方法またはシステムは、作業空間の属性を決定したことに応じて、アイテム(またはキッティング棚システム上のアイテムからの物体)のキッティングに関連して、キッティング棚システムのフィーダ部分からキッティング棚システムの提示面へのアイテムの搬送を更新することを含んでよい。アイテム/物体のキッティングのための計画の更新に関連して用いられる作業空間の属性は、キッティングされるアイテム/物体の属性、アイテム(例えば、キッティング棚システム上のトレイ)内の物体の数量、コンベヤの速度、コンベヤ上の容器に関連する特徴、キッティング棚システム上のアイテムの向き、キッティング棚システムの提示面の向き、などを含んでよい。いくつかの実施形態において、キッティングシステム250(例えば、制御コンピュータ274)は、作業空間の状況(例えば、アイテムの状態または条件、アイテムの特性、作業空間内の別のアイテム、コンベヤ268の速度、容器276の識別子、など)に基づいて、キッティング中にアイテムをキッティングするための計画を動的に更新する。
様々な実施形態において、制御コンピュータ274は、制御コンピュータ274にプログラムされ、および/または、制御コンピュータ274によって学習された(次の)タスクまたはサブタスクを行うための戦略を用いて、要求を遂行するための計画を策定ならびに/もしくは更新または再策定し、その計画を実施するかまたは実施しようとするよう構成されている。例としては、アイテムの属性(剛性、壊れやすさ、形状、向きなど)に基づいて所与のアイテム(または、キッティング棚システムの提示面上のアイテムからの物体)をピックアップするためにロボット260を用いる戦略が含まれるが、それに限定されない。いくつかの実施形態において、制御コンピュータ274は、第1戦略(例えば、好ましい戦略または最良の戦略)を用いてタスク(例えば、ロボット260でアイテムをピックアップするタスク)を実行しようと試み、第1戦略が失敗した場合に、利用可能であれば代替戦略(例えば、ロボット260を用いてアイテム(または物体)を軽く突いた後に再試行する戦略、キッティング棚システム252、254、および/または、256(または、キッティング棚システムの棚)のコンベヤまたはその他の装置を順方向および/または逆方向に若干動かして再試行する戦略、など)を決定して用いるようプログラムされている。好ましい戦略または最良の戦略は、物体のピックアンドプレースが成功する可能性に関連するモデルに少なくとも部分的に基づいて決定されうる。
図2Bに示す例において、制御コンピュータ274は、人間オペレータ278によって操作されるオンデマンド遠隔操作装置275に接続されている。図2Bにおいて、遠隔操作装置275は、人間オペレータによって操作されているが、いくつかの実施形態において、遠隔操作装置275は、非人間オペレータ(高度な技能を有するロボットなど)によって操作されてもよい。様々な実施形態において、制御コンピュータ274は、制御コンピュータ274がキッティング動作および/またはその構成タスクを完全自動動作で継続/完了させるために利用可能な戦略を持たないとの制御コンピュータ274による決定に少なくとも部分的に基づいて、オンデマンド遠隔操作を呼び出すよう構成されている。例えば、ロボット260がアイテムを取得できない位置にアイテムが落とされた場合、または、所定の最大試行回数までアイテムのピックアップが試行されても、その取得に成功していない場合、エンドエフェクタの動作が、規定された通常動作から逸脱している場合(例えば、吸着カップが壊れている場合)、などである。かかる決定に基づいて、制御コンピュータ274は、警告またはその他の通信をオンデマンド遠隔操作装置275へ送信し、人間オペレータ278が遠隔操作装置275を用いて、制御コンピュータ274による完全自動制御下でキッティングシステム250が完了できなかったタスクまたはサブタスクを少なくとも実行するために、キッティングシステム250の1または複数の要素(例えば、キッティング棚システム252、254、および/または、256(または、棚)、コンベヤ268、容器供給モジュール(例えば、箱組み立てマシン)(図示せず)、ロボット260、ならびに/もしくは、キャリッジ268、の内の1または複数)を操作するようにプロンプトする。
様々な実施形態によると、制御コンピュータ274は、タスク(例えば、アイテムの把持、移動、プレースなど)の実行に関連して、1または複数のさらなる軸(例えば、ロボットのn軸に追加した軸)を用いるよう、ロボット260を動的に制御する。制御コンピュータ274は、(i)ロボット210に対応するn軸と、(ii)1または複数のさらなる軸とに少なくとも部分的に基づいて、計画または戦略を決定する。例えば、計画/戦略を決定するためのモデルは、1または複数のさらなる軸に関してロボットが動く可能性を含む(例えば、解空間は、1または複数のさらなる軸におけるロボットの動作を考慮して、可能になりおよび/または効率的であると見なされる位置または構成を含む)。図2Aに示す例に関して、1または複数のさらなる軸は、レール272に基づいて規定されている次元(例えば、第7軸)を含む。ロボット210は、レール272によって規定されている方向に沿って平行移動されるよう制御されうる。制御コンピュータ274は、少なくとも部分的に、ロボットのn軸と1または複数のさらなる軸とを考慮に入れることによって、アイテムに関するタスクを実行するための戦略を決定する。戦略は、アイテムに関するタスクを実行するようにロボットのn軸と1または複数のさらなる軸との少なくとも一部に関してロボットを操作するための1または複数のコマンドのセットを含む。
いくつかの実施形態において、制御コンピュータ274は、1または複数のさらなる軸に少なくとも部分的に基づいて、アイテムに関するタスクを実行するための戦略を決定する。例えば、制御コンピュータ224は、レール272に沿った動作を含めるように、アイテムに関するタスクを実行する際のロボット260の動作のための解空間を拡張する。タスクを実行するための戦略を実施することに関連して、制御コンピュータ274は、タスクが実行されている時に、レール272によって規定されている次元に沿ってロボット260を移動させる(例えば、対応するロボットが取り付けられているキャリッジが、レール272上を移動する)ことができる。一例として、ロボット260は、経路/軌道(ロボットが移動されなかった場合に、可能ではなくまたはそうでなければ非効率的でありえた経路または軌道)に沿ってアイテムを移動させるために、アイテムが把持されている間に、レール272によって規定されている方向に沿って移動される。コンベヤ268が容器(例えば、容器276)を運ぶよう動作している場合、ロボット260が容器276にアイテムを配置する時に、容器276は、ロボット260が容器にアイテムをプレースできない位置に存在する場合がある。例えば、制御コンピュータ274が、現在位置からの容器276内のアイテムのプレースを容易にする構成にロボット260を配置することを、ロボット260の関節の制約が妨げることがある。制御コンピュータ274は、容器276へのアイテムのプレースを容易にする位置へレール272に沿って移動するようロボット260を制御できる。
図2Bに示す例において、システムは、レール上の位置(またはキッティング棚システムまたはアイテムに対する相対位置、など)に対応する作業エリア280を決定できる。作業エリア280は、ロボット260の移動先であり、ロボット260が、キッティング棚システム254からアイテムをピックアンドプレースして容器276にアイテムをプレースするなど、特定のタスクを実行する位置に対応する。制御コンピュータ274は、タスクが実行されるとの決定に応じて、最初に作業エリア280へ移動するよう、ロボット260および/またはキャリッジ270を制御しうる。その後、制御コンピュータ274は、ロボット260が作業エリア280でアイテムに関するタスクを実行するための最適戦略(例えば、軌道、ロボットの構成、ロボットの協調動作)を決定することを可能にするために、作業エリア280の閾値距離内へレール272に沿って移動するよう、ロボット260および/またはキャリッジ270を制御しうる。
上述の例は、キッティングシステムの文脈で様々な実施形態を記載しているが、(例えば、アイテムをシンギュレートするためのロボットの制御に関連して)シンギュレーションシステムまたはパレチゼーションシステムなど、様々なその他のシステムに関連して、様々な実施形態が実施されてよい。
図3Aは、6軸ロボットのリーチ空間を示す図である。図3Aに示すように、システム300は、6軸ロボット305を備える。6軸ロボット305は、レール310に沿って移動するキャリッジに取り付けられている。図の例においては、6軸ロボット305は、6軸ロボット305が動作する(作業空間内でアイテムに関するタスクを実行するなど)ことができるレンジ315(本明細書ではリーチ空間とも呼ばれている)を有する。
関連技術によると、6軸ロボット305は、レール310に沿って特定の位置へ移動するよう制御される。特定の位置は、6軸ロボット305がその位置からアイテムに関するタスクを実行するよう動作する作業空間内の位置でありうる。一例として、特定の位置は、6軸ロボット305のレンジ315に基づいて決定される。例えば、システム300は、6軸ロボット305に対するレンジ315のマッピングを格納している。システム300は、6軸ロボット305がタスクを実行するアイテムの位置を決定し、その後、アイテムの位置および所定の/予め格納されたレンジ315に少なくとも部分的に基づいて(例えば、アイテムがレンジ315内に入るように)、6軸ロボット305がタスクを実行するために移動されるレール310上の特定の位置を決定する。特定の位置を決定したことに応じて、システム300は、特定の位置へレール310に沿って移動するよう、6軸ロボット305(または6軸ロボットが取り付けられているキャリッジ)を制御し、その後、特定の位置で停止されている間に、システム300は、アイテムに関するタスクを実行するよう、6軸ロボット305を制御する。6軸ロボット305が特定の位置で停止されている時、ロボットの制御は、一般に、6軸に対応する6自由度に制限される。
図3Bは、様々な実施形態に従って、7軸ロボットのリーチ空間を示す図である。図の例において、システム350は、ロボット355を備える。いくつかの実施形態において、ロボット355は、レール360に沿って移動するキャリッジに取り付けられている。システム350は、作業空間におけるアイテムに関するタスクの実行などに関連して、レール360に沿ってロボット355を移動させるよう制御する。
様々な実施形態によると、システム300は、6個の回転軸(例えば、6軸ロボットの6軸句)と、1または複数の線形軸(レール360によって規定されている軸など)とに少なくとも部分的に基づいて、タスクを実行するための計画を決定する。例えば、特定の位置からタスクを実行するための解空間は、6軸ロボットの6軸と1または複数の線形軸とを含む少なくとも7軸でのロボットの動作を含む。
図3Bに示すように、ロボット355は、305が動作する(作業空間内でアイテムに関するタスクを実行するなど)ことができるレンジ365(本明細書ではリーチ空間とも呼ばれている)を有する。例えば、図3Aおよび図3Bを比較すると、特定の位置にある時の6軸おボット305のレンジ315は、対応するレールに沿った同じ位置から動作する時のロボット355のレンジ365よりも著しく狭い。いくつかの実施形態において、ロボット355のレンジの増大は、タスクを実行する戦略を決定するための解空間において1または複数の線形軸を用いることに基づいている。
関連技術のシステムは、6軸ロボットの6軸に加えて、軸を実装していない。むしろ、システムは、異なるモジュールを用いて、レールに沿ってロボットの位置を制御し、特定の位置にある時にロボットの動作を制御する。逆に、様々な実施形態は、ロボットを操作するための解空間に1または複数の線形軸を統合する。様々な実施形態によると、1または複数のさらなる軸(例えば、1または複数の線形軸)に沿ったロボット355の制御が、以下の6個のその他の軸に対するロボットの制御と統合される。(i)ベースの周りでのロボットの回転に対応する第1軸、(ii)前方および後方へのロボットの下腕の動作に対応する第2軸、(iii)ロボットの上腕を持ち上げるための動作に対応する第3軸、(iv)ロボットの上腕の回転に対応する第4軸、(v)ロボットの手首を持ち上げるための動作に対応する第5軸、ならびに、(vi)ロボットの手首の回転に対応する第6軸。一例として、システム350は、システム350が(例えば、レール360に沿った特定の位置で)タスクを実行するための戦略を決定している時、ロボット355が7自由度を有すると決定する。
図4Aは、様々な実施形態に従って、アイテムをパレタイズおよび/またはデパレタイズするための処理の一例を示すフローチャートである。様々な実施形態において、図4Aの処理400は、多様なアイテムをパレタイズおよび/またはデパレタイズするためのロボットシステムを構成する制御コンピュータによって実行される。いくつかの実施形態において、かかるロボットシステムは、米国特許出願第17/343,606号に記載のシステムを備え、または、それと同様であり、その出願は、参照によりすべての目的のためにその全体が本明細書に組み込まれる。ロボットシステムは、1または複数のロボットアームを備えてよい。1または複数のパレットが、ロボットアームの各々の周りに配置されてよい。例えば、複数の所定のゾーンが、ロボットアームの近傍内または閾値レンジ内に設定されてよく、少なくともパレットが、所定のゾーンに配置されてよい。別の例として、複数の所定のゾーンが、ロボットアームの周りに放射状に設定されてもよく、複数のパレットが、対応する所定のゾーンにそれぞれ置かれてよい。システムは、ロボットアームのための作業空間へ/からアイテムを運ぶ1または複数のコンベヤを備えてよい(例えば、1または複数のコンベヤの少なくとも一部が、ロボットアームのリーチ/レンジ内にあってよい)。
図の例において、工程405で、1または複数のプラットフォームまたは容器(パレットなど)へ/から、1セットの異なるアイテム(すなわち、そのセットは、2以上の異なるタイプのアイテムを含む)をピックアンドプレースする高レベル目標を示すデータが受信される。例えば、制御コンピュータが、コンベヤで到着するアイテムをパレット上へ積むための入力を受信してよい。逆に、別の例として、制御コンピュータは、パレットからコンベヤ上へアイテムを降ろすための入力を受信してよい。入力は、ユーザインターフェースを介したユーザ選択などに対応しうる。アイテムを積み/降ろすための入力は、特定のパレットまたは特定のロボットアームに対応する。例えば、複数のパレットがロボットアームに対応している(例えば、ロボットアームに関連付けられた所定のゾーン内に配置されている)場合、ユーザは、パレットごとに(例えば、個別に各パレットに対して)アイテムを積み/降ろすよう、ロボットアームへ選択的に命令してよい。別の例として、複数のパレットがロボットアームに対応している場合、ユーザは、ロボットアームに対応するパレットの一部またはパレットの全部を積み/降ろすよう、ロボットアームへ選択的に命令してもよい。
様々な実施形態によると、積み込まれることを求められおよび/または望まれるアイテムを明確に示す入力(インボイスまたはマニフェストなど)が受信されてよい。例えば、注文または注文を満たすための命令を受信したことに応じて、注文に対応するアイテムのマニフェストまたはリストが生成されてよい(以降、「マニフェスト」と呼ぶ)。注文を満たすことに関連して、ロボットシステムは、マニフェストに対応するアイテムをパレタイズするよう命令されてよい。マニフェストに対してアイテムをパレタイズすることは、1または複数のパレット上にアイテムを積むことを含む。ロボットアームに対応する所定のゾーン内に複数のパレットが配置されている場合、ロボットアームは、同時に(例えば、並列しておよび/または同時期に)マニフェストに対応するアイテムを複数のパレット上に積み重ねてよい。
パレットは、その上に識別子を有してよく、ロボットシステムは、パレットの識別子をマニフェストと関連付けてよい。例えば、ロボットシステムは、マニフェストに対するパレット識別子のマッピングを格納するデータストレージを格納してよい(または、それにアクセスできてよい)。別の例として、所定のゾーンが、一時的にマニフェストに関連付けられてもよい。所定のゾーンとマニフェストとの間の関連付けは、マニフェストに対する所定のゾーンのマッピングの中に格納されてよい。ロボットシステムは、アイテムをパレット上にプレースすることに関連して、マニフェストと、パレット識別子またはパレットがパレットが位置する所定のゾーンとの間の関連付けを利用してよい。同じマニフェストに対応する複数のパレット上へのアイテムの同時(例えば、並行または同時期)スタッキングは、アイテムがパレット上に積み重ねられる方法を計画する際により大きい柔軟性を提供する。例えば、ロボットシステムは、アイテムが最も良好に適合するパレット(例えば、最も効率的にパッキングされたスタックにつながり、および/または、より良いスタックの安定性指標につながるパレット)を決定できる。
工程410で、工程405において受信された高レベル目標と、利用可能なセンサ情報とに基づいて、アイテムをピック/プレースする計画を生成するために、プランニング(または再プランニング)が実行される。制御コンピュータは、センサ(例えば、重量センサ)からのセンサデータと共に、カメラの内の1または複数によって生成された3D画像データまたはその他の画像データを用いて、コンベヤを介して到着するアイテムをピックし、パレット(またはその他の容器など)上にプレースして積み重ねるための計画を特定して決定する。
様々な実施形態によると、制御コンピュータは、1または複数のさらなる軸に少なくとも部分的に基づいて、アイテムをピック/プレースする計画/戦略を生成する。例えば、制御コンピュータは、レールに沿った動作を含めるように、アイテムに関するタスクを実行する際のロボットの動作のための解空間を拡張する。タスクを実行するための戦略を実施することに関連して、制御コンピュータは、タスクが実行されている時に、レールによって規定されている次元に沿ってロボットを移動させる(例えば、対応するロボットが取り付けられているキャリッジが、レール上を移動する)ことができる。一例として、ロボットは、経路/軌道(ロボットが移動されなかった場合に、可能ではなくまたはそうでなければ非効率的でありえた経路または軌道)に沿ってアイテムを移動させるために、アイテムが把持されている間に、レールによって規定されている方向に沿って移動される。
いくつかの実施形態において、システムは、マニフェスト(例えば、注文に対応するインボイスまたはその他のリストなど)に少なくとも部分的に基づいて、計画を作成してよい。アイテムを積み重ねるための計画が、アイテムのサイズ、重量、密度、重量分布、剛性、アイテムの上部に積み重ねられる重量を支えるアイテムならびに/もしくはその箱またはその他のパッケージの能力、などに基づいて生成されてよい。制御コンピュータは、いくつかの実施形態において、コンベヤなどによってアイテムが荷積み位置に到着する順序を制御する。いくつかの実施形態において、アイテムが事前に知られていない順序で到着する場合があり、および/または、アイテムのリストが知られていない場合がある。いくつかのかかる実施形態において、アイテムおよび/またはその属性を特定し、パレット上にアイテムをスタックするための計画を生成/更新するため、ならびに/もしくは、工程410で決定されたスタッキング計画に従って、各アイテムを把持、ピックアップ、移動して、対応する場所にプレースするための戦略を決定するために、カメラおよび/またはその他のセンサが用いられる。
いくつかの実施形態において、アイテムに関するタスクが実行される(例えば、アイテムがパレットから移動先位置へ移動される)との決定に応じて、制御コンピュータは、アイテムの近く(例えば、移動元位置、すなわち、位置ロボットがアイテムと係合する位置)にロボットを移動させるよう制御する。例えば、制御コンピュータは、作業エリアにロボットを移動させるよう制御する。いくつかの実施形態において、作業エリアは、アイテムすなわちアイテムの移動元位置の所定の距離内にある(例えば、ロボットのベース、または、ロボットが取り付けられているキャリッジの位置に対応する)エリアに対応する。所定の距離は、管理者によって設定されうる。所定の距離は、対応するロボットの動作範囲に少なくとも部分的に基づいて決定されうる。タスクを実行するための戦略を実施することに関連して、制御コンピュータは、1または複数のさらなる次元において(例えば、ロボットが取り付けられているレールによって規定されている方向に沿って)ロボットを移動させるよう制御する。1または複数のさらなる次元にロボットを移動させることで、ロボットは、エンドエフェクタまたはエンドエフェクタによって把持されたアイテムを作業エリアを通して移動させるための効率的または最適な戦略を利用できるようになる。いくつかの実施形態において、ロボットがタスクの実行中に1または複数のさらなる次元において移動される程度は、1または複数の所定の閾値によって制約されている。例えば、制御コンピュータは、ロボットが移動元位置または作業エリアの近くにとどまる程度まで1または複数の次元に関してロボットを移動させるよう制御する。いくつかの実施形態において、タスクを実行するための戦略の決定に用いられるモデルは、ロボットがタスクを実行している間に(例えば、ロボットが作業エリアに移動した後、などに)ロボットが1または複数の方向に移動してよいさらなる所定の閾値に少なくとも基づいている。
様々な実施形態によると、ロボットシステムは、パレットが安定し密にパッキングされる方法で、アイテムをパッキングまたは積み重ねるために、アイテムをピック/プレースする計画を決定する。一例として、アイテムがパレット上にパッキングまたは積み重ねられる方法に関する1または複数の閾値が、アイテムをピック/プレースする計画を決定することに関連して用いられてよい。1または複数の閾値は、ユーザ(例えば、管理者)によって設定されてよい。いくつかの実施形態において、閾値は、履歴情報(例えば、パレットへのアイテムのスタッキングまたはアイテムの個々の配置/属性に関する履歴情報)に少なくとも部分的に基づくなどしてプランニング処理を改善させる機械学習処理など、機械学習処理に基づいて設定されてよい。1または複数の閾値は、(i)パレットのパッキング密度の程度に関するパッキング効率閾値、(ii)パレット上のアイテムのスタックの安定性の程度に関する安定性閾値、(iii)パレット上(例えば、既存のスタック上など)にアイテムが適合する方法の程度に関する適合度閾値を含んでよい。ロボットシステムは、特定の移動先位置におけるアイテムの期待された配置によって得られるはずの(または得られると期待される)それぞれの最小値として閾値を用いてよい。
いくつかの実施形態において、パレット上のアイテムのモデルが生成されてよい。例えば、モデルは、パレット上のアイテムのスタックについて生成されてよい。モデルは、新たなアイテムがパレットに追加(例えば、パレット上にプレース)された時に更新されてよい。代替的または追加的に、モデルは、ユーザ/管理者によって構成可能でありうる所定の時間間隔で更新されてよい。特定のパレットに関するアイテムのモデルは、アイテムがロボットアームによってピック/プレースされることが決定される度に、および/または、1または複数のパレットに対応するマニフェストにアイテムが関連付けられているとロボットシステムが判定する度に、モデル化されてよい。しかしながら、いくつかの実施形態において、パレットに関するアイテムのモデルは、アイテムがそのアイテムに対応するマニフェストに関連付けられているとの判定に応じて、キャッシュおよび取得されてもよい。ロボットシステムは、キャッシュされたモデルを取得し、モデルが生成された後に1または複数の他のアイテムがパレット上に配置されたとの判定に応じて、モデルを更新してよい。いくつかの実施形態において、ロボットシステムは、ロボットアームがアイテムをパレット上にプレースした後に、モデルを更新およびキャッシュすることで、次のアイテムがパレット上にプレースされる時に、モデルを計算/更新する必要性を回避する。
アイテムがピックされパレット上にプレースされると決定したことに応じて、ロボットシステムは、アイテムが関連付けられているマニフェストの決定に少なくとも部分的に基づいて、アイテムがプレースされうるパレットのセットを決定してよい。アイテムに対応するマニフェストを決定したことに応じて、ロボットシステムは、マニフェストの遂行時にアイテムが含められることを可能にするように、アイテムが配置されうる1または複数のパレットを決定するために、パレットに対するマニフェストのマッピングにおいてルックアップを実行してよい。いくつかの場合において、1または複数のパレットはすべて、特定のロボットアームのレンジ内にある(例えば、ロボットアームに対応する所定のゾーン内にある)。他の場合では、1または複数のパレットの一部が、特定のロボットアームのレンジ内にある(例えば、1または複数のパレットの一部が、任意のロボットアームのためのゾーンにまだ配置されていない場合があり、ならびに/もしくは、1または複数のパレットの一部が、別のロボットアームに対応する所定のゾーンに配置されている場合がある)。したがって、ロボットシステムは、さらに、パレットに対するマニフェストのマッピング、ならびに/もしくは、ロボットアームおよび/または所定のゾーンに対するパレットのマッピングに基づいて、ロボットアームによってアイテムが配置されうる1または複数のパレットを決定してよい。
アイテムがロボットアームに対応する1または複数のパレットにプレースされうると決定したことに応じて、ロボットシステムは、アイテムが、1または複数のパレット上にプレースされる方法を決定してよい。パレットが現在、ロボットアームの所定のゾーンにある場合、そのパレットがロボットアームに対応しうる。一例として、アイテムがロボットアームに対応する複数のパレットの1つにプレースされうる場合、ロボットシステムは、アイテムをプレースする1つのパレットを複数のパレットから選択してよい。アイテムをプレースするパレットの選択は、(例えば、他のパレット/スタック上にアイテムをプレースするのに対して)アイテムが最も適合するパレットまたはスタックを決定することを含んでよい。いくつかの実施形態において、ロボットシステムは、アイテムをプレースするパレットまたはスタックを決定することに関連して、パレットに対応するアイテムのモデルを用いる。例えば、ロボットシステムは、アイテムがプレースされうるパレットの内の1または複数へのアイテムのプレースをシミュレート/モデル化し、アイテムがパレット上にプレースされた場合に予測されるパレットまたはパレット上のアイテムに関連する1または複数の特徴を決定してよい。関連する1または複数の特徴は、パレット上のアイテムの安定性に関する指標(例えば、アイテムのスタックの安定性)、パレット上のアイテムの密度に関する指標、パレット上の他のアイテムと比べたアイテムの適合度、などを含みうる。
いくつかの実施形態において、ロボットシステムは、先述の1または複数の特徴の一部に少なくとも部分的に基づいて、アイテムが最も適合する位置を決定するために、特定のパレット上の異なる位置へのアイテムのプレースをシミュレートする。ロボットシステムは、特定のパレットに関する複数の位置へのアイテムをプレースをシミュレートしてよく、アイテムがプレースされうる複数のパレット(例えば、アイテムが属するマニフェストに関連する複数のパレット)に関してかかるシミュレーションを実行してよい。ロボットシステムは、アイテムのプレースの1または複数のシミュレーションに少なくとも部分的に基づいて、アイテムの移動先位置を決定してよい。例えば、ロボットシステムは、1または複数のシミュレーションに従って様々な位置にアイテムをプレースすることに関連して予測される1または複数の特徴に少なくとも部分的に基づいて、移動先位置を決定してよい。特定の位置にアイテムをプレースすることに関連する合成スコアが、1または複数の特徴(例えば、スタックの密度、スタックの安定性、他のアイテムと比べたアイテムの適合度、など)に少なくとも部分的に基づいて決定されてよい。いくつかの実施形態において、1または複数の特徴は、特定の位置にアイテムをプレースすることに関連する合成スコアの決定に用いられる対応する重み付けを有する。
ロボットシステムは、パレット上にアイテムをプレースするための異なるシミュレーション/モデルの中で最高の対応する合成スコアを有する位置に対応するように、移動先位置を決定してよい。いくつかの実施形態において、移動先位置は、シミュレーションおよびコスト関数に少なくとも部分的に基づいて決定される。例えば、合成スコアが閾値を満たす(例えば、超える)移動先位置のセットが決定されてよく、ロボットシステムは、移動先位置のセットの中から、コスト関数に関して最も効率的な結果(例えば、最低コスト)を有する移動先位置をアイテムがプレースされる移動先位置として選択してよい。いくつかの実施形態において、移動先位置が選択される移動先位置のセットは、(i)最小の特徴値(例えば、適合度、安定性、効率などの特徴値)を満たす特徴値を有する移動先位置の各々と、(ii)閾値合成スコアを満たす合成スコアを有する移動先位置の各々とに少なくとも部分的に基づいて、決定される。
パレット上のアイテムの安定性は、アイテムに関連する1または複数の属性の影響を受けうる。属性は、アイテムの形状、アイテムの重心(または、アイテムの予測された重心)、パッキングのタイプ(例えば、段ボール箱、ポリバッグ、など)、アイテムの重量、アイテムが壊れやすいことの表示、などを含みうる。一例として、比較的軽いアイテムまたは不規則形状のアイテムは、アイテムがスタックの下部にプレースされた場合にアイテムのスタックが比較的不安定になる原因となりうる。アイテムが枕である場合、アイテムのスタックの安定性は、枕をスタックの底部にまたはスタックの底部/中間部付近にプレースした場合と比較して、スタックの上部にまたはスタックの上部付近にプレースすることによって改善されうる。ロボットシステムは、アイテムに関連する1または複数の属性を取得してよい。例えば、ロボットシステムは、アイテムがコンベヤ上に提供された時(例えば、アイテムがロボットアームの近くにもたらされた時)、または、アイテムがコンベヤからピックアップされる次のアイテムとして決定された時、1または複数の属性を取得してよい。いくつかの実施形態において、1または複数の属性の取得は、アイテム上の1または複数の識別子(バーコード、QRコード、近距離無線通信ラベル/タグ、など)を取得(例えば、スキャン)することを含む。属性は、アイテム、アイテムのタイプ、などに関連付けて予め格納されていてよい。例えば、アイテムに関連する識別子を取得したことに応じて、ロボットシステムは、属性に対するアイテム(またはアイテムの識別子)のマッピングに対してルックアップを実行してよい。いくつかの実施形態において、属性は、1または複数の上流のセンサまたはコンピュータによって取得され、アイテムに関連付けて格納される。ロボットシステムは、1または複数の上流のセンサによって取得されたアイテムに関連する属性を、データ構造からリトリーブしてよい。センサまたはセンサアレイが、アイテムのサイズを決定することに関連して用いられてよい。センサまたはセンサアレイは、コンベヤ上またはその周りに、もしくは、ロボットアームの作業空間内に、配置されてよい。追加的または代替的に、ロボットシステムは、アイテムをピックアップしたことに応じて、アイテムに関連する1または複数の属性を決定してよい。例えば、アイテムの重量が、1または複数のセンサ(力センサ、または、電流センサ、または、アイテムを持ち上げるために費やされる作業量を測定するその他のセンサ、など)によって、アイテムをピックアップしたことに応じて決定されてよい。別の例として、ロボットアームは、アイテムに関連する識別子(例えば、アイテム上のバーコード)を取得しうる1または複数のセンサの閾値レンジ/エリア内にアイテムを移動させてよく、識別子は、予め格納された属性を取得するために用いられてよい。
アイテムに関連する1または複数の属性は、アイテムをピック/プレースするための計画を決定するために用いられてよい。例えば、ロボットシステムは、アイテムが移動元位置(例えば、コンベヤ上の位置)から移動先位置(例えば、アイテムがプレースされるパレット上の位置)へ移動される軌道を決定してよい。別の例として、アイテムに関連する1または複数の属性は、対応するマニフェストについてパレット上の異なる位置へのまたは異なるパレット上の異なる位置へのアイテムのプレースをシミュレートする時に、移動先位置を決定することに関連して用いられてもよい。
いくつかの実施形態において、ロボットシステムは、移動元位置から移動先位置へアイテムを移動することに関連する効率またはコスト関数に基づいて、アイテムをピック/プレースするための計画を決定する。一例として、ロボットシステムは、効率またはコスト関数の最適化に基づいて、計画を決定してよい。別の例として、ロボットシステムは、最小効率閾値および/またはコスト関数の最小値の閾値が、移動元位置から移動先位置へのアイテムの対応する移動によって満たされるように、計画を決定してよい。計画の効率に関する1または複数の値は、ロボットアームがアイテムを移動させるための予測時間、移動元位置と移動先位置との間の高低差、移動元位置と移動先位置との間の距離(例えば、ユークリッド距離など)、などを含んでよい。いくつかの実施形態において、コスト関数は、移動先位置でのアイテムのピック/プレースに関する1または複数の変数、(例えば、アイテムが移動先位置プレースされた後の)パレット上のアイテムのスタックの予測安定性、移動先位置でのアイテムの適合度、特定のマニフェストに対応するすべてのアイテムをパレタイズするために用いられるパレットの数、などを含む。コスト関数は、コスト関数に含まれる1または複数の変数に対する1または複数の重み付けを含んでよい。
いくつかの実施形態において、パレットは、パレットが、現在ロボットアームの所定のゾーンに存在し、および/または、所定のゾーンが利用可能になった将来に所定のゾーンに挿入されるよう計画されている場合に、ロボットアームに対応していると見なされてよい。かかる場合に、ロボットシステムは、アイテムが、かかる挿入予定のパレットにプレースされることを決定してよく、ロボットシステムは、対応するパレットが所定のゾーンに挿入され、アイテムがかかるパレットにプレースされると決定されるかかる時刻まで、コンベヤからアイテムをピックしてバッファまたはステージングエリアにアイテムをプレースすることを含むように、アイテムのピックアンドプレースのための計画を決定してよい。
いくつかの実施形態において、アイテムが属するマニフェストに対応する1または複数のパレット上に適切な位置が現在存在しないと判定したことに応じて、ロボットシステムは、バッファまたはステージングエリアにアイテムをピックアンドプレースすると決定してよい。バッファまたはステージングエリアは、1または複数のパレットの内の1つのパレット上に理想的な位置(例えば、安定性、適合度、および/または、効率などに関する基準が満たされている位置)が存在すると、ロボットシステムが決定するまで、アイテムが少なくとも一時的に保管される作業空間内の事前設定されたエリアであってよい。ロボットシステムは、現在のアイテムの前に1または複数の上流のアイテム(例えば、閾値時間および/または閾値アイテム数の範囲内でコンベヤによって搬送されるアイテム)をパレット上にプレースすることが、より良好なスタック(例えば、より良好な適合度、安定性、効率、など)をもたらすと判定してよい。かかる判定に応じて、ロボット構造は、現在のアイテムをピックアンドプレースする前に1または複数の上流のアイテムをピックアンドプレースするようロボットアームを制御してよい。一例として、現在のアイテムは、ロボットアームが1または複数の上流のアイテムを積む間、または、その時まで、バッファ/ステージングエリアへ一時的に移動されてよい。
様々な実施形態によると、アイテムをピックアンドプレースするための経路または軌道のセットが決定され、アイテムが移動される経路または軌道が経路または軌道のセットから選択される。経路または軌道は、セット内の対応する経路または軌道に関連する様々な特性に基づいて選択されてよい。経路または軌道を選択することに関連して利用されうる対応する経路または軌道に関連する特性の例は、アイテムが移動される速度、アイテムがピックされる移動先位置、特定の経路または軌道に従ってアイテムが移動先位置にピックアンドプレースされる成功確率、作業空間内の別のアイテムまたは物体が特定の経路または軌道と交わるか否かの示唆、作業空間内の領域またはエリアが制限され特定の経路または軌道と交わることの示唆、などを含みうる。いくつかの実施形態において、アイテムが特定の経路または軌道に従って移動先位置にピックアンドプレースされる成功確率が、経路または軌道のセットの少なくとも一部に対して決定され、経路または軌道は、他の経路または軌道に対応する成功確率と比較して、対応する成功確率に基づいて選択される。一例として、経路または軌道は、経路または軌道に対応する成功確率が閾値確率を超え、もしくは、上記一部の中の他の経路または軌道の閾値数または割合を超えていると判定したことに応じて、選択される。
工程415で、アイテムは、工程410で決定および/または更新された計画に従って、ピックされ(例えば、図1に示した例においては、コンベヤから把持され)、アイテムがプレースされる場所の近くの位置へ(所定の/計画された)軌道を通して移動され、移動先位置にプレースされる。
様々な実施形態において、制御コンピュータは、アイテムをピックし、アイテムを移動させ、および/または、アイテムをプレースすることに関連して、1または複数のさらなる軸(例えば、ロボットのn軸に追加した軸)に関して移動するよう、ロボット(例えば、n軸ロボット)を制御する。例えば、制御コンピュータは、ロボットがタスクを実行するために配置されるロボットの作業エリアへレールに沿ってロボットを移動させるよう、ならびに、(例えば、コスト関数または戦略に関連する成功確率に基づくなどして、第7軸に沿った移動がよりコスト効率が良くまたはより最適な戦略である場合に)作業エリアを通してアイテムをピック、移動、および、プレースするのを容易にするために作業エリアの閾値距離内の位置へレールに沿ってロボット移動させるよう、制御する。
様々な実施形態において、梱包計画が、より小さいおよび/または不定形のアイテムをまとめて、より容易に積み重ねられる単位として梱包するために、積み重ね可能なトレイ、木箱、箱、置き場、または、その他のコンテナを計画的に用いることを含んでよい。いくつかの実施形態において、デパレタイズ動作において、本明細書で開示されているロボットシステムは、かかるコンテナを認識し、必要に応じてそれらを開き、個々のアイテムを取り出すことによってそれらを空にするよう構成されている。空になると、コンテナは、ステージング位置(待機位置)に移動され、そこから、様々な実施形態において、他のロボットおよび/または人間の労働者が、回収してどかしてよい。
図の例において、(再)プランニングおよび計画実施(工程410、415)は、高レベル目標(工程405)が完了(工程420)するまで継続し、完了すると、処理400は終了する様々な実施形態において、再プランニング(工程410)は、予期しないおよび/または識別できないアイテムの到着、属性を示すセンサ読み取り値が、アイテム識別および/または関連するアイテムモデル情報に基づいて予測されたもの以外の値を有すること、などの条件によってトリガされてよい。予期されない条件の他の例は、予期されたアイテムが紛失していると判定すること、アイテム識別を再評価して、アイテムが元々識別されたもの以外であると判定すること、識別されたアイテムと一致しないアイテム重量またはその他の属性を検出すること、アイテムを落下させ、または、アイテムを把持しなおす必要があること、後に到着するアイテムが元々の計画および/または現在の計画によって予定されているように1または複数の他のアイテム上に積み重ねられるには重すぎると判定すること、ならびに、容器に積み重ねられたアイテムのセットにおける不安定性を検出することを含むが、これらに限定されない。
図4Bは、様々な実施形態に従って、アイテムをシンギュレートするための処理の一例を示すフローチャートである。いくつかの実施形態において、処理425は、作業空間内の1または複数のアイテムをシンギュレートするよう動作するロボットシステムによって実施される。ロボットシステムは、処理425を実行することなどによって、ロボット構造(例えば、ロボットアーム)に仕分けのためにアイテムをピックアンドプレースさせるよう動作する1または複数のプロセッサを備える。
工程430で、作業空間に関するセンサデータが取得される。いくつかの実施形態において、ロボットシステムは、システム内で動作する1または複数のセンサから作業空間に関するセンサデータを取得する。いくつかの実施形態において、かかるロボットシステムは、米国特許出願第17/202,040号に記載のシステムを備え、または、それと同様であり、その出願は、参照によりすべての目的のためにその全体が本明細書に組み込まれる。一例として、センサデータは、画像センサ(例えば、2Dまたは3Dカメラ)、赤外センサアレイ、レーザアレイ、スケール、ジャイロスコープ、電流センサ、電圧センサ、電力センサ、力センサ、圧力センサ、などからの出力に少なくとも部分的に基づいて、取得される。
様々な実施形態によると、作業空間に関して取得されたセンサデータは、作業空間のモデルが生成されうる元となる情報を含む。例えば、作業空間に関連する1または複数の特徴が、センサデータに少なくとも部分的に基づいて決定される。センサデータは、作業空間内の1または複数のアイテム(移動元の山/シュートの流れの中のアイテム、または、ロボットアームによって把持されたアイテムなど)の少なくとも1つの特徴を決定することに関連して利用されうる。いくつかの実施形態において、センサデータは、コンベヤ上の空のスロットまたは予定のないスロットを決定し、コンベヤの速度を決定し、および/または、少なくとも1つのスロットの特徴またはコンベヤ上にすでにある少なくとも1つのアイテムの特徴を決定するなど、コンベヤの1または複数の特徴を決定することに関連して用いられる。
工程435で、作業空間内の1または複数のアイテムをシンギュレートするための計画または戦略が決定される。いくつかの実施形態において、ロボットシステムは、作業空間内の移動元の山/流れから少なくとも1つのアイテムをピックし、コンベヤ上のスロット内に少なくとも1つのアイテムを1つずつプレースするための計画または戦略を決定する。1または複数のアイテムをシンギュレートするための計画または戦略は、ロボットシステムが複数のロボットを備える場合に、各ロボットが他のロボットと独立して動作するように、様々な実施形態においてロボットごとに決定される。
様々な実施形態によると、作業空間内の1または複数のアイテムをシンギュレートするための計画または戦略は、センサデータに少なくとも部分的に基づいて決定される。例えば、1または複数のアイテムをシンギュレートするための計画または戦略は、シンギュレートされる移動元の山/流れの中のアイテムを選択することを含む。選択されたアイテムは、センサデータに少なくとも部分的に基づいて、作業空間内の他のアイテムまたは物体から識別されうる(例えば、作業空間内のアイテムと他のアイテムまたは物体との境界が決定されうる)。一例として、選択されたアイテムに関する1または複数の特徴が、センサデータに少なくとも部分的に基づいて決定される。選択されたアイテムに関する1または複数の特徴は、アイテムの寸法、アイテムのパッケージ、アイテム上の1または複数の識別子またはラベル(アイテムが壊れやすいことの表示、アイテム上の出荷ラベル、など)、アイテムの推定重量など、もしくは、それらの任意の組みあわせ、を含みうる。別の例として、1または複数のアイテムをシンギュレートするための計画は、ロボット構造(例えば、ロボットアーム)がアイテムを1つずつプレースする搬送構造上の位置(例えば、コンベヤ上のスロット)を決定することを含む。アイテムがプレースされるコンベヤ上の位置は、タイムスタンプ、コンベヤの速度、および、コンベヤのスロットの1または複数の特徴(例えば、スロットが占有または予約されているか否かの示唆)など、もしくは、それらの任意の組みあわせ、に少なくとも部分的に基づいて決定されうる。別の例として、1または複数のアイテムをシンギュレートするための計画または戦略は、ロボットアームがシンギュレーション中にアイテムを移動させる際のアイテムの経路または軌道を決定することを含む。アイテムが移動される際のアイテムの経路または軌道は、作業空間内の1または複数のその他の物体(シュートのフレームなど)の位置、移動元の山/流れの中の他のアイテム、コンベヤ上のアイテム、作業空間内で動作する他のロボット、他のロボットの動作のために確保された空域、作業空間内のセンサ、などに少なくとも部分的に基づいて決定されうる。例えば、アイテムの経路または軌道は、識別子(例えば、出荷ラベル)を含むアイテムの部分を、スキャナが識別子をスキャンできるエリアへ移動させるように決定され、もしくは、アイテムの経路または軌道は、アイテム上の識別子が経路または軌道に沿った1または複数のスキャナによって読み取られる可能性を最大化するように決定される。
様々な実施形態によると、1または複数のアイテムをシンギュレートするための計画または戦略は、1または複数のアイテムを移動させることに関連するコストに少なくとも部分的に基づいて決定される。システムは、アイテムを移動させるコストを最小化する計画または戦略を決定することなどによって、アイテムを移動させるコストに少なくとも部分的に基づいて、アイテムを移動させるための計画または戦略を決定してよい。アイテムを移動させるコストを最小化することは、1または複数の所定の条件または制約の影響下でかかるコストを最適化することを含んでよい。いくつかの実施形態において、システムは、計画または戦略に従ってアイテムを移動させるコストがコスト値の閾値よりも小さいと予期される方法でアイテムを移動させるための計画または戦略を決定する。アイテムを移動させることに関連するコストは、アイテムに関連する属性(例えば、アイテムのサイズ)、アイテムがピックされる作業空間内の位置(例えば、シュート上の位置)、アイテムがプレースされるコンベヤ上の移動先位置、などに少なくとも部分的に基づきうる。いくつかの実施形態において、作業空間内の1または複数の他のアイテムまたは物体(例えば、コンベヤ上にすでにあるアイテム)の存在は、経路/軌道に従ってアイテムを移動させるコストなどに影響を与えうる。
計画または戦略は、ロボットに関連する1または複数の制約、もしくは、ロボットに対応するモデル(ロボットに関連する1または複数の制約(例えば、ロボットの自由度、ロボットの様々な自由度にわたる範囲、など)に少なくとも部分的に基づいて生成されたモデル)に基づいて決定される。
様々な実施形態によると、ロボットは、n軸ロボットである。例えば、ロボットは、6軸ロボットである。コンピュータシステムは、少なくともロボットのn軸上に規定されている解空間に基づいて、アイテムをピックアンドプレース(例えば、アイテムをシンギュレート)するようロボットを制御するための計画/戦略を決定する。Nは、正の整数であってよい。例えば、制御コンピュータは、(例えば、移動元位置からアイテムを把持し、アイテムを移動させ、移動先位置にアイテムをプレースする、などの)タスクを実行するための計画および/または戦略を決定する。制御コンピュータは、ロボットまたはロボットによって把持されているアイテムが移動する経路または軌道(例えば、対応するエンドエフェクタの軌道)を決定する。いくつかの実施形態において、制御コンピュータは、ロボットの対応するn軸に少なくとも部分的に基づいているモデルを用いる。例えば、制御コンピュータは、制約または解(例えば、解空間)のセットに基づいて、計画/戦略(例えば、経路または軌道)を決定(例えば、選択)する。制約または解のセットは、ロボットのn軸に少なくとも部分的に基づいている。一例として、ロボットのn軸は、ロボットの可能な位置および/または可能な構成のセットを規定するのに役立つ。可能な位置および/または可能な構成のセットは、楕円形エリア(例えば、卵形エリア)に対応しうるものであり、楕円形エリア内の位置は、ロボットが、制約(ロボット関節の制約など)によりその位置または構成に自身を置くことができないため、もしくは、かかる位置または構成が、閾値(効率の閾値など)を満たさない(例えば、ロボットがかかる構成で自身を構成することが困難である、など)ために、可能な位置および/または可能な構成のセットから除外されてよい。制御コンピュータは、最適な計画(例えば、最適な経路)を決定することに少なくとも部分的に基づいて計画を決定でき、かかる最適な計画は、1または複数のさらなる軸に対応するさらなる自由度を含む(例えば、ロボットが動作している作業エリアの閾値距離内の位置へロボットを移動させる)制御コンピュータは、1または複数の閾値(最大コスト閾値など)を満たす計画を決定することに少なくとも部分的に基づいて、計画を決定できる(例えば、コストは、モデルの所定のコスト関数に従って決定されうる、など)。効率の閾値、時間の閾値、速度の閾値など、様々なその他の閾値が実装されてもよい。
工程440で、アイテムがシンギュレートされる。いくつかの実施形態において、アイテムは、アイテムをシンギュレートするための計画または戦略が決定されたことに応じてシンギュレートされる。例えば、ロボットアームが、作業空間から1または複数のアイテムをピックし、シンギュレーションコンベヤにおける対応する位置に1つずつ各アイテムをプレースするよう動作される。アイテムのシンギュレーションは、作業空間から(例えば、移動元の山/流れから)アイテムをピックし、コンベヤ上にアイテムを1つずつプレースすることを含む。ロボットシステムは、アイテムをシンギュレートするための計画または戦略に少なくとも部分的に基づいてアイテムをシンギュレートする。
アイテムをシンギュレートすることに関連して、制御コンピュータは、1または複数のさらなる次元において(例えば、ロボットが取り付けられているレールによって規定されている方向に沿って)ロボットを移動させるよう制御する。1または複数のさらなる次元にロボットを移動させることで、ロボットは、エンドエフェクタまたはエンドエフェクタによって把持されたアイテムを作業エリアを通して移動させるための効率的または最適な戦略を利用できるようになる。いくつかの実施形態において、ロボットがタスクの実行中に1または複数のさらなる次元において移動される程度は、1または複数の所定の閾値によって制約されている。例えば、制御コンピュータは、ロボットが移動元位置または作業エリアの近くにとどまる程度まで1または複数の次元に関してロボットを移動させるよう制御する。
工程445で、さらなるアイテムがシンギュレートされるか否かについて判定がなされる。さらなるアイテムが存在する場合、工程430、435、440、および、445のさらなる反復が実行され、ピックアンドプレースされるアイテムがシュート(もしくは、その他の容器または移動元)にもはや存在しないと工程445で判定されるまで、次の反復が実行される。
図4Cは、様々な実施形態に従って、アイテムのキットを構築するための処理の一例を示すフローチャートである。いくつかの実施形態において、処理450は、作業空間内の1または複数のアイテムをキットにするよう動作するロボットシステムによって実施される。ロボットシステムは、処理450を実行することなどによって、ロボット構造(例えば、ロボットアーム)に、1セットのアイテムをキットにまとめるためにアイテムをピックアンドプレースさせるよう動作する1または複数のプロセッサを備える。
工程455で、アイテムのリストが取得される。いくつかの実施形態において、ロボットシステムは、1または複数のキットにするアイテムのリストを取得する。ロボットシステムは、キッティングシステム(図2Aのキッティングシステム200など)でありうる。アイテムのリストは、インボイスまたはマニフェスト(注文に対応するインボイスまたはマニフェストなど)から取得されてよく、そうでなければ、アイテムのセットが別の位置に提供されることを示す注文または情報から取得されてよい。アイテムのリストは、データ構造(倉庫システムとまたは別のロボットシステムと共有されているデータ構造など)から取得されてよい。
工程460で、作業空間内の1または複数のアイテムを移動させるための計画または戦略が決定される。いくつかの実施形態において、ロボットシステムは、作業空間内の棚(例えば、棚マシンの棚)から少なくとも1つのアイテムをピックし、容器(箱、トレイ、トート、バッグ、または、その他の容器など)に少なくとも1つのアイテムをプレースするための計画または戦略を決定する。容器は、コンベヤ上にあってよい。1または複数のアイテムをピックアンドプレースするための計画または戦略は、ロボットシステムが複数のロボットを備える場合に、各ロボットが他のロボットと独立して動作するように、様々な実施形態においてロボットごとに決定されてよい。
1または複数のアイテムを移動させる計画または戦略は、作業空間に関するセンサデータに少なくとも部分的に基づいて決定されてよい。いくつかの実施形態において、ロボットシステムは、システム内で動作する1または複数のセンサから作業空間に関するセンサデータを取得する。一例として、センサデータは、画像センサ(例えば、2Dまたは3Dカメラ)、赤外センサアレイ、レーザアレイ、スケール、ジャイロスコープ、電流センサ、電圧センサ、電力センサ、力センサ、圧力センサ、などからの出力に少なくとも部分的に基づいて、取得される。
様々な実施形態によると、作業空間に関して取得されたセンサデータは、作業空間のモデルが生成されうる元となる情報を含む。例えば、作業空間に関連する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または複数のさらなる軸に沿って移動するよう制御される。
工程465で、アイテムが移動される。いくつかの実施形態において、アイテムは、1または複数のアイテムを移動させるための計画または戦略が決定されたことに応じてピックアンドプレースされる。例えば、ロボットが、作業空間から1または複数のアイテムをピックし、容器内の対応する位置に各アイテムをプレースするよう動作される。アイテムのシンギュレーションは、作業空間から(例えば、対応する棚から)アイテムをピックし、コンベヤ上またはそうでなければ適切な容器にアイテムを配置することを含む。ロボットシステムは、アイテムを移動させるための計画または戦略に少なくとも部分的に基づいてアイテムをピックアンドプレースする。
工程470で、キットを構築/梱包することなどに関連して、さらなるアイテムがピックアンドプレースされるか否かに関して判定がなされる。さらなるアイテムが存在する場合、工程455、460、および、465のさらなる反復が実行され、ピックアンドプレースされるアイテムがシュート(もしくは、その他の容器または移動元)にもはや存在しないと工程470で判定されるまで、次の反復が実行される。
図5Aは、様々な実施形態に従って、ロボットシステムを示す図である。図の例において、ロボットシステム500は、ロボット502(例えば、ロボットアーム)およびレール518を備える。ロボット502は、アイテムのシンギュレーション、キッティング、または、パレタイズ/デパレタイズを実行するために実装されているn軸ロボットである。図5Aに示す例において、ロボット502は、6軸ロボットである。ロボット502は、実行されるタスクおよび/またはタスクが実行されるアイテムのタイプに基づいて選択または構成されうるエンドエフェクタを備える。エンドエフェクタのタイプの例は、空気圧制御エンドエフェクタ、ピンサー、1または複数の吸着カップの構成など吸着ベースのエンドエフェクタ、ハンド、グリッパ、磁石、などを含みうる。様々なその他のタイプのエンドエフェクタが実装されてもよい。
様々な実施形態によると、ロボットシステム500は、アイテムに関するタスクを実行することに関連して、1または複数のさらなる軸に沿ってロボット502を移動させる。例えば、レール518は、ロボットシステム500のさらなる軸(例えば、第7軸)に対応する。システム(例えば、制御コンピュータ)は、ロボット502を制御して、ロボット502のn軸の内の1または複数と、レール518によって規定されているさらなる軸とを用いて、タスクを実行するための戦略を実施するよう動作させる。レールに沿って所定の位置へロボットを移動させた後に、レールに対して静止した位置にとどまってタスクを実行する関連技術のシステムとは対照的に、ロボットシステム500は、作業エリア内でタスクの実行することに関連して、レール518によって規定されているさらなる軸を用いる。さらなる軸の利用は、ロボットが特定の位置へ到達しまたは軌道に沿ってアイテムを移動させることを可能にし、かかる位置および軌道は、ロボットがタスクの実行中にレールに対して静止した位置に維持される場合には(例えば、ロボットの関節の制約に基づいて)それぞれ非効率的または不可能でありえたものである。
ロボット502のさらなる自由度としてさらなる軸を用いることに関連して、ロボット502は、ロボット502が移動される時またはアイテムを移動させるよう動作している時に生じるバックラッシュまたはその他の力に関して、減衰、低減、または、別の方法で回復するよう構成されている。ロボットシステム500は、動作中のバックラッシュを避けるために、ロボット502のための極度に頑強でしっかりとした取り付け位置を備える。
様々な実施形態によると、ロボット502は、キャリッジ504を備える。キャリッジ504は、ロボット502の実装に従ってキャリッジをカスタマイズできるように、カスタマイズ可能なキャリッジであってよい。
キャリッジ504は、カメラ、センサなどに、支持を提供しうる。図の例において、キャリッジ504は、垂直構造506を備えた上部構造を備えており、上側フレーム508が、3Dカメラ510、512のための取り付け位置を提供している。様々なその他のセンサが、上側フレーム508に取り付けられてもよい。様々な実施形態において、1または複数の3Dカメラは、ロボットのベースの近くに配置されてもよい。いくつかの実施形態において、キャリッジ504に(例えば、垂直構造506および/または上側フレーム508に)取り付けられた1または複数のセンサが、ロボットシステム500の視界を拡大する。カメラ、センサなどは、ロボット502の作業エリアに関する情報(画像データなど)を取得できる。画像データは、作業エリア内のアイテムの検出、作業エリア内の障害物の識別、などに関連して利用されうる。様々な実施形態において、画像データは、作業空間に存在する他のロボット、容器(例えば、トレイスタック、パレット、トレイ、など)、および、その他のアイテムとの衝突を避け、軌道を計画し、ロボット502のエンドエフェクタおよび/またはロボット502のエンドエフェクタに把持されているアイテム(例えば、トレイ、箱、パッケージ、など)を位置制御下で少なくとも初期位置に配置すること内の1または複数を実行するために用いられてよい。
いくつかの実施形態において、カメラ510および512は、本明細書で開示されているロボットシステムの制御に用いられるビジョンシステムに含まれている。いくつかの実施形態において、ビジョンシステムは、自己較正するよう設計されている。ロボットは、その関節の1つに設置されているマーカを利用し、マーカを認識してワールド座標系における自身の姿勢を理解するために姿勢評価を実行するシステム内のカメラ(例えば、カメラ510および512)にマーカを見えるようにする。ロボットは、カメラに近い位置にマーカを移動させて高品質の較正を実現するために、衝突回避を用いて自身の動きを計画する。
キャリッジ504は、頑丈で強固な取り付け位置をロボット502に提供する。取り付け位置は、その上に取り付けられる特定のロボット502、または、ロボット502が配備されている用途、などに従ってカスタマイズが可能であってよい。例えば、ロボット502が大きいアイテム(例えば、重いアイテム)を移動させる用途、もしくは、ロボット502が比較的速い速度および加速度で動作する用途の場合、ロボット502が、ロボット502の動作中に発生するバックラッシュまたはその他の力によって大きい影響を受けない(または影響を受けない)ように、キャリッジ504は、比較的頑丈(例えば、より剛性、強い、など)に構成される。
いくつかの実施形態において、ロボットシステム500は、一体型ドライブトレイン514を備える。一体型ドライブトレイン514は、レール518によって規定されているさらなる軸に沿ってロボットの制御を提供するドライブトレインアセンブリを備えてよい。例えば、一体型ドライブトレイン514は、特定のタスクを実施することなどに関連して、ロボット502をレール518に沿って移動させるよう制御される。一体型ドライブトレイン514は、1または複数のさらなる軸(例えば、レール518によって規定されるさらなる軸)を、ロボット自体のさらなる自由度として用いる。いくつかの実施形態において、ロボットシステム500は、タスクの実行中にレール518に沿ってロボット502を移動させる制御を可能にするソフトウェアを備える。関連技術のロボットのためのファームウェアは、ロボットが取り付けられているレールに沿ったロボットの移動の制御を提供(または統合)していない。対照的に、様々な実施形態は、ロボット502の他のn軸と同様のレベルの制御可能性を提供する(レール518に関する)線形ドライブトレインを提供する。
様々な実施形態によると、キャリッジ504は、ラインまたはケーブル(例えば、吸着を提供するための空気ライン、電力ライン、ネットワークケーブル、センサからの通信ライン、など)が通される通路または開口部を有するよう構成されている。キャリッジ504は、ラインまたはケーブルがロボットの動作を妨げないように、ラインまたはケーブルを導くよう形成されうる。
いくつかの実施形態において、ロボットシステム500は、ラックアンドピニオンパワートレインアセンブリ516におけるバックラッシュを調整するメカニズム(本明細書では、バックラッシュ調整メカニズムまたは調節モジュールとも呼ばれる)を備える。バックラッシュ調整メカニズム516は、ロボット502が動作中にバックラッシュまたはその他の力を受ける程度を調整するために用いられる。ラックアンドピニオンパワートレインアセンブリにおいて、ギアが互いに係合される程度が、ロボット502によって経験されるバックラッシュまたはその他の力の量に影響しうる。一例として、対応するギアの歯が係合される程度が、ロボット502によって経験されるバックラッシュまたはその他の力の量と、レール518に沿ったロボット502の移動可能性とに影響を与える。ギアが十分に係合されていない場合、ギアの対応する歯は、ガタつきうる(例えば、対応するギアの歯の間の空間が、ロボット502がバックラッシュを受ける原因となりうる)。逆に、ギアが係合されすぎている場合、ギアは、動かなくなることにより、ギアの回転を妨げる(または阻止する)ことで、レール518に沿ったロボット502(例えば、ロボットが取り付けられているキャリッジ)の移動を妨げる(または阻止する)。このように、様々な実施形態は、パワートレインの制御された調整を可能にするために(例えば、ギアの相補的な歯の係合などによって、バックラッシュを微調整するための利用を可能にするために)、一体型ドライブトレイン514に関するバックラッシュ調整メカニズムを備える。
様々な実施形態によると、バックラッシュ調整メカニズム516は、取り付けフレーム、ショルダファスナ、および、長さ調整可能な結合装置を備える。
取り付けフレームは、駆動アセンブリの作用端を受け入れるようにその中に規定された開口部を有する。駆動アセンブリの作用端は、駆動アセンブリの作用端の遠位端の上またはその近くに取り付けられた動力駆動ピニオンを有する。駆動アセンブリは、開口部よりも大きい取り付けフランジを有する。いくつかの実施形態において、取り付けフレームおよび取り付けフランジは、相補的な穴のセットを備え、各セットは、取り付けフレームにおける穴および取り付けフランジにおける対応する穴を含む。
ショルダファスナは、取り付けフランジを取り付けフレームへ移動可能に結合するために、取り付けフランジの第1端における第1相補的な穴のセットを通して配置されている。ファスナは、取り付けフランジおよび駆動アセンブリが第1相補的な穴のセットの縦軸の周りで自由に旋回するように固定されている。
長さ調整可能な結合装置は、取り付けプレートへ機械的に結合されている第1端および取り付けフランジの第1端と実質的に反対側の位置で取り付けフランジへ機械的に結合されている第2端を有する。結合装置の長さの調整が、取り付けフランジと、取り付けフランジへ直接的または間接的に取り付けられている駆動アセンブリの構成要素とを、第1相補的な穴のセットの縦軸の周りで回転させ、結果としてラックアンドピニオンパワートレインアセンブリのバックラッシュの対応する調整につながるように、長さ調整可能な結合装置の第1端が取り付けプレートに結合され、長さ調整可能な結合装置の第2端が取り付けフランジに結合されている。
様々な実施形態によると、レール518は、少なくとも1つの方向に沿って伸びている。レール518は、タスクを実行することに関連してロボット502がそれに沿って移動されうるさらなる軸に対応しうる。いくつかの実施形態において、レール518は、複数のレールセグメントを含む。レールセグメントは、互いに結合されて、連続的なレールを形成している。いくつかの実施形態において、レール518は、レール518が地面上で静止するために用いる(もしくは、レール518が、1または複数のアンカーの穴を通して提供されたボルトによって地面に固定されるのに用いられる)1または複数のアンカー(またはレールフット)を備える。いくつかの実施形態において、1または複数のアンカー(もしくは、1または複数のアンカーへの対応するレールセグメントの結合)は、レール518によって規定されているさらなる軸にわたってレール518を水平にし、および/または、対応するレールセグメントを整列させるために、調整可能である。
図5Bは、様々な実施形態に従って、ロボットシステムのキャリッジアセンブリを示す図である。いくつかの実施形態において、キャリッジ550は、キャリッジ504に対応し、または、同様である。図の例において、キャリッジ550は、ライザー552、取り付けプレート554、および、ベース556を備える。ロボットシステムがレールなどに沿ってロボットを移動させることを可能にするように、ロボットが、取り付けプレート554に取り付けられうる。取り付けプレート554は、ロボットが取り付けプレート554にしっかりと取り付けられている場合にバックラッシュが低減または減衰されるように、剛性/固い支持をロボットに提供できる。いくつかの場合において、十分に剛性の取り付けプレート554およびライザー552が実装されている場合、バックラッシュが排除されうる。例えば、ライザー552および取り付けプレート554は剛性であり、取り付けプレート554に取り付けられたロボットへバックラッシュまたはその他の力を伝えない(もしくは、ライザー552および取り付けプレート554は、バックラッシュまたはその他の力を減衰させて、例えば、わずかなバックラッシュのみを伝える)。いくつかの実施形態において、ロボットは、様々なロボット製造業者によって市販されている既製のロボットである。
ベース556は、ライザー552に支持を提供し、キャリッジ550が移動するレールに結合(例えば、配置)される。ベース556は、取り付けフレーム(例えば、バックラッシュ調整メカニズムのための取り付けフレーム)に対応しうる。ベース556は、開口部560を備える。開口部560は、駆動アセンブリの作用端を受け入れるよう構成されている。駆動アセンブリの作用端は、駆動アセンブリの作用端の遠位端の上またはその近くに取り付けられた動力駆動ピニオンを有しうる。ベース556は、さらに、ロボットシステムのバックラッシュを調整/調節するために(例えば、パワートレインにおけるギアの係合を調整するために)長さ調整可能な結合装置562を備える。
いくつかの実施形態において、キャリッジ550は、支持構造558を備える。支持構造558は、カメラ、センサなどを取り付けるためのカスタマイズ可能な支持を提供しうる。例えば、垂直構造(例えば、ロボットシステム500の垂直構造506)が、支持構造558に結合され、かかる垂直構造は、作業空間に見晴らしのきく場所を提供することなどによって、ロボットシステムの視界を拡大できる。支持構造558は、垂直構造と、取り付けられたロボットが動作する作業エリアとの間に隙間を設けるために提供されうる。
図6は、様々な実施形態に従って、ロボットシステムのガイドレールのためのアンカーメカニズムを示す図である。いくつかの実施形態において、ロボットシステムは、ガイドレール(例えば、図5Aのロボットシステム500のレール518などのガイドメカニズム)の適切なレベリングを保証するためにアンカーメカニズムを備える。アンカーメカニズムは、レールセグメントの間のアライメントを提供するためにも利用可能である。様々な実施形態によると、アンカーメカニズムは、ロボットシステムが配備される位置にレールをしっかりと固定するよう構成されている。
図の例において、アンカーメカニズムのアンカーポイント600が示されている。アンカーメカニズムは、レールに支持を提供するフット640を備える。図の例において、フット640は、レールのレールセグメント610および620に支持を提供している。フットは、ロボットシステムが配備される位置の地面または表面にフット640を結合するための1または複数のメカニズムを有しうる。例えば、フット640は、フット640を地面またはその他の表面に結合するためにボルトが挿入される1または複数の貫通孔を備えうる。
様々な実施形態によると、アンカーメカニズムは、レベリングメカニズムを備える。例えば、レベリングメカニズムは、アンカーメカニズムと一体化されている。例えば、図に示すように、アンカーポイント600は、レベリングメカニズム630を備える。レベリングメカニズム630は、個々のレールセグメント(レールセグメント610など)を微調整するために利用可能である。アンカーポイント600は、アンカーポイント600によって直接的に支持されているレールセグメントの各々に関するレベリング制御を提供するために、複数のレベリングメカニズム630および650を備えうる(例えば、レベリングメカニズム630は、レールセグメント610を調整するために用いられ、レベリングメカニズム650は、レールセグメント620を調整するために用いられる)。レベリングメカニズム630は、レールセグメント610をアンカーポイント600に(例えば、フット640に)結合するネジまたはボルトでありうる。レベリングメカニズムは、対応するレールセグメントが整列される(例えば、レールセグメント610およびセグメント620が整列される)こと、ならびに、レールセグメントによって支持されているレールが水平であることを保証するように、調整されうる。
図7は、様々な実施形態に従って、ロボットシステムのガイドレールを示す図である。いくつかの実施形態において、ロボットシステムは、ロボットシステムがロボットアーム(例えば、キャリッジに取り付けられたロボット)をレールに沿って移動させることを可能にするガイドメカニズム700を備える。ガイドメカニズムは、ロボットアームがしっかりと効率的にレール上を移動することを確実にする。
様々な実施形態に従って、ガイドメカニズム700は、軸(例えば、タスクを実行するようロボットを制御するための自由度を高めるために利用できる軸)に沿って伸びるレールに支持を提供するために整列(およびレベリング)される複数のレールセグメントを備える。図の例では、第1レールセグメントおよび第2レールセグメントが提供されている。第1レールセグメントは、ベースプレート710を備える。ベースプレート710は、レールに支持を提供し、アンカーメカニズム(例えば、フットなど)を介して地面に固定される。複数のレールセグメントのためのベースプレートは、最低限の精密機械加工された特徴部を必要とするよう構成されうる。いくつかの実施形態において、ベースプレートをアンカーメカニズム、レール720、および、ギアラック730に結合する取り付け穴だけが、精密機械加工を必要とする。ベースプレートに精密機械加工される特徴部が最低限であることは、ロボットシステムのコストを削減し、ロボットシステムの迅速な配備/設置を可能にする。
ガイドメカニズム700は、(例えば、ロボットが取り付けられている)キャリッジが移動するレール720を備える。いくつかの実施形態において、ガイドメカニズム700は、キャリッジに備えられているパワートレインアセンブリがレール720に沿ったキャリッジの移動を制御するために連動するギアラック730を備える。
いくつかの実施形態において、ガイドツール740(本明細書ではアライメントツールとも呼ぶ)が、ベースプレート、ギアラック、および、レールの内の1または複数を整列させるために用いられる。いくつかの実施形態において、ガイドツール740は、ベースプレート、ギアラック、および、レールのすべてを整列するために用いられる。例えば、単一のガイドツール740が、2つのレールセグメントのセットに対して、ベースプレート、ギアラック、および、レールを整列するために用いられる。ガイドツール740が挿入され、ガイドツール740の位置が、整列/設置されるレールセグメントにおける対応する穴または凹部へガイドツール740を通して伸びるピンを用いて設定される。ガイドメカニズムが適切に整列/較正された(例えば、様々なレールセグメントがレベリングされた、など)後、ガイドツール740は、ロボットシステムの通常動作中には取り外される。ガイドツール740は、ガイドメカニズム700のレールセグメントの適切な設置および/またはアライメントを保証するためのコスト効率の高い非常に迅速なメカニズムである。
様々な実施形態によると、ガイドメカニズム700の長さを構成するために1セットのレールセグメントを用いることで、ロボットシステムが様々な構成(例えば、顧客の選好、または、ロボットが配備されるよう意図された動作に基づいて設定された構成)に拡張可能になる。一例として、レールの長さは、ガイドメカニズム700の長さを構成するために1セットのレールセグメントを用いるので、調整可能/構成可能である。レールの長さを長くするために、追加のレールセグメントを導入できる。逆に、レールの長さを短くするために、いくつかのレールセグメントを除去できる。いくつかの実施形態において、レールセグメントの各々は、(例えば、少なくともレールが伸びる方向に)同じ寸法を有する。
図8Aは、様々な実施形態に従って、バックラッシュ調整メカニズムを示す図である。いくつかの実施形態において、調整可能なバックラッシュメカニズムが、図5Aのロボットシステム500のバックラッシュ調整メカニズム516に対応し、または、同様である。
バックラッシュ調整メカニズム800は、ロボットが動作中にバックラッシュまたはその他の力を受ける程度を調整するために用いられる。ラックアンドピニオンパワートレインアセンブリにおいて、ギアが互いに係合される程度が、ロボットによって経験されるバックラッシュまたはその他の力の量に影響しうる。一例として、対応するギアの歯が係合される程度が、ロボットによって経験されるバックラッシュまたはその他の力の量と、レールに沿ったロボットの移動可能性とに影響を与える。ギアが十分に係合されていない場合、ギアの対応する歯は、ガタつきうる(例えば、対応するギアの歯の間の空間が、ロボットがバックラッシュを受ける原因となりうる)。逆に、ギアが係合されすぎている場合、ギアは、動かなくなることにより、ギアの回転を妨げる(または阻止する)ことで、レールに沿ったロボット(例えば、ロボットが取り付けられているキャリッジ)の移動を妨げる(または阻止する)。
図の例において、バックラッシュ調整メカニズム800は、パワートレインアセンブリをキャリッジ(例えば、ロボットが取り付けられ、レール上を移動するキャリッジなど)に取り付けるために用いられる取り付けフレーム802と、パワートレインアセンブリが結合される複数のスロットと、を備える。例えば、バックラッシュ調整メカニズム800は、パワートレインアセンブリをキャリッジに結合するために用いられる複数のスロットおよび対応する締め具(例えば、スロットおよび締め具804、806)を備える。複数のスロットおよび対応する締め具は、動作中にパワートレインを所定の位置にしっかりとロックする。
いくつかの実施形態において、バックラッシュ調整メカニズム800は、段付きボルト808を備える。段付きボルト808は、パワートレインアセンブリの取り付けのためのピボットポイントとして機能しうる。一例として、(例えば、締め具がパワートレインアセンブリを結合するために挿入される)複数のスロットの少なくとも一部は、段付きボルト808が挿入されているピボットポイントを中心に設けられている。段付きボルト808は、パワートレインアセンブリを挿入して、パワートレインアセンブリをキャリッジと整列するために利用されうる。例えば、段付きボルト808は、パワートレインアセンブリがキャリッジに設置される時に、ピボットポイントに挿入される。パワートレインアセンブリは、取り付けフレーム802における穴(例えば、スロット)がキャリッジと整列するまで、段付きボルト808の周りで回転されてよく、その時点で、締め具は、対応して複数の穴に挿入され、パワートレインアセンブリをキャリッジにしっかりと結合するよう構成されうる(例えば、締め付けられうる)。スロットは、パワートレインアセンブリが取り付けられるキャリッジまたはその他の表面における対応する穴/凹部とのスロットの迅速なアライメントを可能にするために楕円形であってよい。
様々な実施形態によると、バックラッシュ調整メカニズム800は、長さ調整可能な結合装置810を備える。長さ調整可能な結合装置810は、ロボットシステムのバックラッシュを調整するために(または、少なくともロボットシステムのパワートレインに関して)、作動(例えば、調整)される。いくつかの実施形態において、バックラッシュ調整メカニズム800(例えば、長さ調整可能な結合装置810)は、駆動アセンブリの作用端が取り付けフレームの開口部に通された時にピニオンが機械的に係合されるよう構成されているラックギアに対するピニオンの位置を調整する。
図8Bは、様々な実施形態に従って、長さ調整可能な結合装置を示す図である。いくつかの実施形態において、長さ調整可能な結合装置820は、図8Aのバックラッシュ調整メカニズム800の長さ調整可能な結合装置810に対応し、または、同様である。
長さ調整可能な結合装置820は、取り付けプレートへ機械的に結合されている第1端822および取り付けフランジの第1端822と実質的に反対側の位置で取り付けフランジへ機械的に結合されている第2端830を有する。結合装置の長さの調整が、取り付けフランジと、取り付けフランジへ直接的または間接的に取り付けられている駆動アセンブリの構成要素とを、第1相補的な穴のセットの縦軸の周りで回転させ、結果としてラックアンドピニオンパワートレインアセンブリのバックラッシュの対応する調整につながるように、長さ調整可能な結合装置の第1端822が取り付けプレートに結合され、長さ調整可能な結合装置の第2端830が取り付けフランジに結合されている。
いくつかの実施形態において、長さ調整可能な結合装置820は、第1端822および第2端830を有するターンバックルである。ターンバックルは、各端部にネジ切りされたエンドフィッティングを備える。ターンバックル本体を或る方向に回転させると、エンドフィッティングが互いに近くなる。例えば、ターンバックル本体を回転させることで、エンドフィッティングの間の張力を調整する(例えば、増大させる)。逆に、ターンバックル本体を反対方向に回転させることで、エンドフィッティングを引き離す(例えば、エンドフィッティングの間の張力を減少させる)。
様々な実施形態によると、長さ調整可能な結合装置820(例えば、ターンバックル)は、コスト効率が高く、製造が容易であり、調整が容易である。さらに、いくつかの実施形態において、長さ調整可能な結合装置820は、高精密な部品も作動のための専門技術も必要としない。ロボットシステムの設置および較正の時に、ロボットシステムの再構成を容易にするために、ターンバックルの設定を省くことができる。例えば、ターンバックルは、較正時にターンバックルの設定に対応する位置がマークされうる。長さ調整可能な結合装置820としてのターンバックルの実装は、ロボットシステムをメンテナンスする際の容易さを改善する。例えば、ロボットシステムがメンテナンスされる場合、ドライブトレインをベースプレートギア(例えば、ガイドメカイズム上のギア)から完全に切り離すように、ターンバックルを作動させることができ、例えば、キャリッジおよびロボットを現在の位置からレールに沿って所望の位置へ移動させてメンテナンスのための十分なスペースを提供するために、キャリッジを自由に移動させることができる。メンテナンス動作の完了時に、ロボットシステムは、ガイドメカニズム上のギアに対してドライブトレインを再配置することによって迅速に再構成されうる。例えば、ターンバックルは、(例えば、ロボットシステムが較正された時の位置に対応するターンバックルのマークされたスポット/設定を用いて)、較正された位置へ回転されうる。ターンバックルのかかる作動およびロボットシステムの較正は、正確な測定なしに実行可能である。
様々な実施形態によると、ターンバックルは、ターンバックルが作動された時に、ターンバックルがパワートレインを引くように、ギアラック(例えば、ガイドメカニズム上のギア)に対応する側で固定される。
図9は、様々な実施形態に従って、ロボットシステムのキャリッジを示す図である。図の例において、キャリッジは、レールおよび/またはキャリッジの洗浄、潤滑、および、保護の内の1または複数を提供する統合メカニズム900を有する。
様々な実施形態によると、統合メカニズム900は、サイドスカート910、サイドスカート920、1または複数のワイパー940のセット、ならびに/もしくは、1または複数の潤滑ポート(例えば、潤滑ポート950)のセットを備える。
いくつかの実施形態において、サイドスカート910および/またはサイドスカート920は、キャリッジに結合されている。図の例において、サイドスカート910は、磁石930を介してキャリッジへ磁気的に取り付けられている。磁気的な取り付けは、メンテナンスのための容易なアクセスを可能にする。
いくつかの実施形態において、1または複数のワイパー940のセットは、レールから汚れおよび粒子状物質を除去するために用いられる。キャリッジがレール上を移動すると、1または複数のワイパー940のセットが、レールに集積した任意のかかる汚れおよび粒子状物質を拭き取る/除去する。
いくつかの実施形態において、1または複数の潤滑ポート(例えば、潤滑ポート950)のセットは、(潤滑剤がシステムに導入される)開口部からレールの表面へ潤滑剤を流すよう構成されている。潤滑ポートは、レールとキャリッジとの間の界面に潤滑剤を提供するための効率的なメカニズムにより、レールの容易なメンテナンスを可能にする。
図10は、アイテムに関するタスクを実行することに関連して、1または複数のさらなる軸内で移動するようn軸ロボットを制御する方法を示すフローチャートである。
工程1010で、アイテムに関するタスクを実行する決定がなされる。システムは、シンギュレーション動作、キッティング動作、および、パレタイズ/デパレタイズ動作の内の1または複数を実行することに関連して、タスクを実行することを決定する。一例として、システムは、作業空間の画像データ(または、ロボットがタスクを実行する作業空間内の作業エリアの画像データ)を用いて、アイテムを特徴付け(例えば、アイテムの1または複数の属性を決定し)、および/または、アイテムの画像データ/属性を用いて、動作が実行されるアイテムを選択する。
工程1020で、ロボットが、レールに沿って作業エリアへ移動される。システムがアイテムに関するタスクを実行すると決定したことに応じて、システム(例えば、制御コンピュータ)は、ロボット(または、ロボットが取り付けられているキャリッジ)をレールに沿って作業エリアへ移動させるよう制御する。いくつかの実施形態において、システムは、アイテムに関するタスクを実行するとの決定に少なくとも部分的に基づいて、ロボットが移動すべき位置(例えば、その位置は、決定された作業エリアに対応しうる)を粗く/大まかに決定する。一例として、システムは、キャリッジ/ロボットをレールに沿って移動させるために、キャリッジに備えられまたはキャリッジに取り付けられたパワートレインを制御する。パワートレインを制御するためのシステム制御は、システムがロボット(例えば、アイテムの把持、移動、および、プレースに用いられるロボットアーム)を制御するための制御と統合されてよい。例えば、パワートレインを制御することは、システムがタスクを実行するためにロボットを制御している時に、ロボットシステムがロボットのさらなる軸(例えば、ロボットのさらなる自由度)としてレールを用いることを可能にするように、システムがロボットを制御するための制御と統合されてよい。
いくつかの実施形態において、システムは、n軸ロボットのためのn軸の各々に関して、1セットのドライバおよび/またはアプリケーションプログラミングインターフェース(API)を備える。システムは、さらに、1または複数のさらなる軸のための1セットのドライバおよび/またはアプリケーションプログラミングインターフェース(API)を備える。したがって、システムは、対応するドライバを用いて、特定の軸に関して動作するようロボットを制御できる。いくつかの実施形態において、ドライバのセットは、対応する軸(例えば、n軸ロボットのn軸の内の1つ、または、さらなる軸の内の1つ)に関してロボットを動作させるために制御される1または複数のモータのための1または複数のドライバを含む。例えば、システムは、ロボットをレールに沿って移動させるために用いられるパワートレインアセンブリに備えられているモータを制御するためのドライバを備える。
工程1030で、アイテムに関するタスクを実行するための計画および/または戦略が作成される。システムが、アイテムに関するタスクを実行するための計画または戦略を決定する。システムは、ビジョンシステムからの画像データ(例えば、作業空間の中または周りにあるセンサならびに/もしくはロボットまたはキャリッジに取り付けられたセンサまたはカメラによって得られたものなど、作業空間の画像データ)に少なくとも部分的に基づいて、計画/戦略を決定する。
様々な実施形態によると、システムは、タスク(例えば、アイテムの把持、移動、プレースなど)の実行に関連して、1または複数のさらなる軸(例えば、ロボットのn軸に追加した軸)を用いるよう、ロボットを動的に制御する。システムは、(i)ロボットに対応するn軸と、(ii)1または複数のさらなる軸とに少なくとも部分的に基づいて、計画または戦略を決定する。さらに、システムは、アイテムまたはエンドエフェクタの軌道を計画することに関連して、他のロボット、アイテム、または、その他の障害物(例えば、ロボットアームの一部によって占有されている作業エリア内のスペースなど)の存在を用いるなど、作業空間に対応する画像データに少なくとも部分的に基づいて戦略を決定する。例えば、計画/戦略を決定するためのモデルは、1または複数のさらなる軸に関してロボットが動く可能性を含む(例えば、解空間は、1または複数のさらなる軸におけるロボットの動作を考慮して、可能になりおよび/または効率的であると見なされる位置または構成を含む)。ロボット(例えば、レール上に配置されたキャリッジに取り付けられているロボット)が運ばれるレールを備えたロボットシステム例において、1または複数のさらなる軸は、レールに基づいて規定される次元(例えば、第7軸)を含む。システムは、レールによって規定される方向に沿ってロボットを移動させるよう制御できる。様々な実施形態によると、システムは、少なくとも部分的に、ロボットのn軸と1または複数のさらなる軸とを考慮に入れることによって、アイテムに関するタスクを実行するための戦略を決定する(例えば、アイテムがロボットによって把持されている間、そうでなければ、システムが、タスクの実行される粗く規定された作業エリアへロボットを移動させた後に、1または複数のさらなる軸を用いる)。戦略は、アイテムに関するタスクを実行するようにロボットのn軸と1または複数のさらなる軸との少なくとも一部に関してロボットを操作するための1または複数のコマンドのセットを含む。
いくつかの実施形態において、システムは、1または複数のさらなる軸に少なくとも部分的に基づいて、アイテムに関するタスクを実行するための戦略を決定する。例えば、システムは、ロボットが動作可能に取り付けられているレールに沿った動作を含めるように、アイテムに関するタスクを実行する際のロボットの動作のための解空間を拡張する。
工程1040で、ロボットシステムは、計画および/または戦略を実行するよう制御される。
タスクを実行するための戦略を実施することに関連して、システムは、タスクが実行されている時に、レールによって規定されている次元に沿ってロボットを移動させる(例えば、対応するロボットが取り付けられているキャリッジが、レール上を移動する)ことができる。一例として、ロボットは、経路/軌道(ロボットが移動されなかった場合に、可能ではなくまたはそうでなければ非効率的でありえた経路または軌道)に沿ってアイテムを移動させるために、アイテムが把持されている間に、レールによって規定されている方向に沿って移動される。
工程1050で、タスクは、6軸ロボットの6軸と1または複数のさらなる線形軸とに関して動作するようロボットを制御することに基づいて実行される。いくつかの実施形態において、ロボットを作業エリアへ移動させたことに応じて、システムは、(i)ベースの周りでのロボットの回転に対応する第1軸と、(ii)前方および後方へのロボットの下腕の動作に対応する第2軸と、(iii)ロボットの上腕を持ち上げるための動作に対応する第3軸と、(iv)ロボットの上腕の回転に対応する第4軸と、(v)ロボットの手首を持ち上げるための動作に対応する第5軸と、(vi)ロボットの手首の回転に対応する第6軸と、(vii)1または複数のさらなる線形軸と、に関して動作するようロボットを制御することに少なくとも部分的に基づいて、タスクを実行する。いくつかの実施形態において、(i)~(vii)に対応する軸は、ロボットの自由度に対応する。システムは、作業エリアへ移動するようロボットを制御し、次いで、(例えば、アイテムに関する)タスクを実行するよう、かかる自由度に従ってロボットを制御する。一例として、システムは、タスクを実行するようロボット(および、キャリッジに取り付けられたパワートレイン)を制御する。別の例として、キャリッジに取り付けられたパワートレインは、ロボットが特定の作業空間へ移動された時にタスクを実行するための計画を決定することに関連して、ロボットの自由度と見なされる。
工程1060で、処理1000が完了したか否かについて判定がなされる。いくつかの実施形態において、処理1000は、アイテムに関するタスクが実行されたこと、他のアイテムに関するさらなるタスクが実行されないこと、管理者が処理1000の一時停止または停止を示唆していること、などの決定に応じて、完了したと判定される。処理1000が完了したとの判定に応じて、処理1000は終了する。処理1000が完了していないという判定に応じて、処理1000は工程1010へ戻る。
図11は、アイテムに関するタスクを実行することに関連して、1または複数のさらなる軸内で移動するようn軸ロボットを制御する方法を示すフローチャートである。
工程1110で、アイテムに関するタスクを実行する決定がなされる。システムは、シンギュレーション動作、キッティング動作、および、パレタイズ/デパレタイズ動作の内の1または複数を実行することに関連して、タスクを実行することを決定する。一例として、システムは、作業空間の画像データ(または、ロボットがタスクを実行する作業空間内の作業エリアの画像データ)を用いて、アイテムを特徴付け(例えば、アイテムの1または複数の属性を決定し)、および/または、アイテムの画像データ/属性を用いて、動作が実行されるアイテムを選択する。
工程1120で、センサデータが受信される。システムは、作業空間内の1または複数のセンサおよび/またはカメラからセンサデータを受信する。例えば、システムは、ロボットに取り付けられた1または複数のセンサ/カメラ(例えば、キャリッジに取り付けられた上部構造に取り付けられたものなど)からセンサデータを受信する。システムは、作業空間(または、タスクの実行中にロボットが動的に配置される作業エリア)のモデルを決定できる。
工程1130で、センサデータは、アイテムに関するタスクを実行するための計画および/または戦略を決定するために用いられる。いくつかの実施形態において、システムは、タスクを実行するための戦略を決定する。戦略を決定することは、アイテムが作業空間(例えば、タスクを実行するためにロボットが操作される作業空間内の作業エリア)を移動される軌道を決定することを含みうる。工程1130は、図10の処理1000の工程1030に対応し、または、同様でありうる。タスクを実行するための戦略は、タスクを実行している間にロボットが動的に配置される位置として識別された作業エリアへロボットを移動させるための一連のコマンドを含みうる。作業エリアは、(例えば、ロボットがアイテムと係合できるアイテムの範囲内にあるように)アイテムに近くにありうる。
工程1140で、ロボットが、レールに沿って作業エリアへ移動される。工程1140は、図10の処理1000の工程1020に対応し、または、同様でありうる。
工程1150で、タスクは、6軸ロボットの6軸と1または複数のさらなる線形軸とに関して動作するようロボットを制御することに基づいて実行される。いくつかの実施形態において、ロボットを作業エリアへ移動させたことに応じて、システムは、(i)ベースの周りでのロボットの回転に対応する第1軸と、(ii)前方および後方へのロボットの下腕の動作に対応する第2軸と、(iii)ロボットの上腕を持ち上げるための動作に対応する第3軸と、(iv)ロボットの上腕の回転に対応する第4軸と、(v)ロボットの手首を持ち上げるための動作に対応する第5軸と、(vi)ロボットの手首の回転に対応する第6軸と、(vii)1または複数のさらなる線形軸と、に関して動作するようロボットを制御することに少なくとも部分的に基づいて、タスクを実行する。いくつかの実施形態において、(i)~(vii)に対応する軸は、ロボットの自由度に対応する。システムは、作業エリアへ移動するようロボットを制御し、次いで、(例えば、アイテムに関する)タスクを実行するよう、かかる自由度に従ってロボットを制御する。
いくつかの実施形態において、工程1140および1150は同時に実行される。例えば、ロボットシステムは、タスクが実行されている間に、1または複数のさらなる軸に沿ってロボットを移動させるよう制御される。
工程1160で、処理1100が完了したか否かについて判定がなされる。いくつかの実施形態において、処理1100は、アイテムに関するタスクが実行されたこと、他のアイテムに関するさらなるタスクが実行されないこと、管理者が処理1100の一時停止または停止を示唆していること、などの決定に応じて、完了したと判定される。処理1100が完了したとの判定に応じて、処理1100は終了する。処理1100が完了していないという判定に応じて、処理1100は工程1110へ戻る。
図12は、様々な実施形態に従って、パワートレインアセンブリにおけるバックラッシュを調整するための方法を示すフローチャートである。
工程1210で、パワートレインアセンブリにおけるバックラッシュを調整するとの決定がなされる。システム内のロボットの動作中に発生する力の測定、または、ロボットが受けるバックラッシュの測定に基づいて、決定がなされうる。いくつかの実施形態において、バックラッシュを調整するとの決定は、システムの設置または較正の際になされる。
工程1220で、ターンバックルが、パワートレインアセンブリにおけるギアの係合を制御するために作動される。ターンバックルは、ユーザによって手動で作動されうる。いくつかの実施形態において、ターンバックルの作動は、制御コンピュータによって制御される。例えば、システムは、1または複数のセンサ(例えば、ロボットに結合され、または、他の方法で作業空間内にある力センサなど)によって得られたデータに基づいて、システム内で経験されるバックラッシュを調整するために、システムを自動的に較正できる。いくつかの実施形態において、測定されたバックラッシュまたはその他の力が閾値を超えたと判定したことに応じて、システムは、自動的にシステムを較正する(例えば、システムは、ギアの係合を制御するためにターンバックルを自動的に作動させる)。いくつかの実施形態において、キャリッジがレール上を移動する速度が所定の速度閾値より小さい、または、レールに沿って移動される際に生じた摩擦が所定の摩擦閾値より大きいと判定したことに応じて、システムは、ギアの係合を減少させるなどのために、ターンバックルを作動させることを決定する。
工程1230で、パワートレインおよびレールの係合が所望の位置にあることをダイヤルが示しているか否かについての判定がなされる。いくつかの実施形態において、パワートレインおよびギアラックが所望の相対位置にあることをダイヤルが示しているか否かの判定は、目視検査などで、ユーザによって手動でなされる。いくつかの実施形態において、パワートレインおよびギアラックが所望の相対位置にあることをダイヤルが示しているか否かの判定は、センサによって得られたデータに少なくとも一部は基づくなどして、システムによって自動的になされる(例えば、システムは、キャリッジおよびロボットが所定の閾値(ロボットが受けるバックラッシュまたはその他の力に対応する閾値など)内で動作しているか否かを判定する)。
工程1230で、パワートレインおよびレールの係合が所望の位置にないことをダイヤルが示しているとの判定に応じて、処理1200は、ターンバックルが作動される工程1220に戻る。処理1200は、パワートレインおよびレールが所望の位置になるまで、工程1220および1230を反復する。例えば、工程1220および1230は、パワートレインアセンブリにおけるギアの間の所望の係合が達成されるまで実行される。
工程1230で、パワートレインおよびレールとの係合が所望の位置にあることをダイヤルが示しているとの判定に応じて、処理1200は、バックラッシュが調整されるとの決定がなされる工程1240に進む。例えば、ギアの間の係合を調整することで、パワートレインおよび/またはパワートレインによって駆動されるキャリッジに取り付けられたロボットを移動および/または操作する際に発生する力によって生じるバックラッシュを改善(例えば、バックラッシュを低減または減衰)させる。いくつかの実施形態において、ギアの間の係合を調整することで、ロボットシステムが比較的高速かつ比較的高加速度で移動することが可能になる。
工程1250で、処理1100が完了したか否かについて判定がなされる。いくつかの実施形態では、処理1200は、バックラッシュが所望のレベルに調整されたこと、バックラッシュへのさらなる調整が必要でなくまたは望ましくないこと、管理者が処理1200の一時停止または停止を示唆していること、などの決定に応じて、完了したと判定される。処理1200が完了したとの判定に応じて、処理1200は終了する。処理1200が完了していないという判定に応じて、処理1200は工程1210へ戻る。
本明細書に記載されている実施形態の様々な例は、フローチャートに関連して記載されている。それらの例は、特定の順序で実行されるいくつかの工程を含みうるが、様々な実施形態に従って、様々な工程が、様々な順序で実行されてよく、および/または、様々な工程が、単一の工程に統合されまたは並行して実行されてよい。
上述の実施形態は、理解しやすいようにいくぶん詳しく説明されているが、本発明は、提供されている詳細事項に限定されるものではない。本発明を実施する多くの代替方法が存在する。開示されている実施形態は、例示であり、限定を意図するものではない。
[適用例1]ロボット制御システムであって、
少なくとも線形軸ならびに1または複数の回転軸を含む複数の制御軸を有するロボットのモデルを格納するよう構成されているメモリと、
前記メモリに接続され、少なくとも前記線形軸を含む前記制御軸の内の2以上に関して前記ロボットを動作させるための制御信号のセットを前記ロボットへ送信することを含む、タスクを実行するよう前記ロボットを制御するために、前記モデルを用いるよう構成されている1または複数のプロセッサと、
を備える、ロボット制御システム。
[適用例2]適用例1に記載のロボット制御システムであって、前記1または複数のプロセッサは、さらに、
タスクを示すデータを受信し、
センサデータを取得し、
前記センサデータを用いて、前記タスクを実行するための戦略を決定するよう構成されている、ロボット制御システム。
[適用例3]適用例1に記載のロボット制御システムであって、前記1または複数のプロセッサは、1または複数の回転軸を中心に動作すると同時に前記線形軸に沿って移動するよう前記ロボットを制御する、ロボット制御システム。
[適用例4]適用例1に記載のロボット制御システムであって、前記1または複数のプロセッサは、さらに、
前記タスクを実行するための戦略を決定するよう構成されている、ロボット制御システム。
[適用例5]適用例4に記載のロボット制御システムであって、前記タスクを実行するための前記戦略は、前記モデルに少なくとも部分的に基づいて決定される、ロボット制御システム。
[適用例6]適用例4に記載のロボット制御システムであって、前記タスクを実行するための前記戦略は、前記ロボットの動作または向き関するコスト関数に少なくとも部分的に基づいて決定される、ロボット制御システム。
[適用例7]適用例6に記載のロボット制御システムであって、前記コスト関数は、前記ロボットのロボットアームの所定の向きのセットを用いてロボットが前記タスクを実行する際のコストが高いことを示唆する、ロボット制御システム。
[適用例8]適用例6に記載のロボット制御システムであって、前記コスト関数は、前記ロボットのロボットアームの所定の不適切な姿勢を用いる際のコストが高いことを示唆する、ロボット制御システム。
[適用例9]適用例4に記載のロボット制御システムであって、前記タスクを実行するための前記戦略は、前記線形軸ならびに前記1または複数の回転軸に沿った動作の様々な組みあわせに従ってタスクを実行する速度または効率に関するコスト関数に少なくとも部分的に基づいて決定される、システム。
[適用例10]適用例9に記載のロボット制御システムであって、前記タスクを実行するための前記戦略は、特定の戦略に従った前記タスクの前記実行が成功すると期待される可能性を示す最小成功閾値に基づいて決定される、ロボット制御システム。
[適用例11]適用例1に記載のロボット制御システムであって、前記1または複数のプロセッサは、さらに、前記タスクを実行するために、7軸を用いて、3D空間内の位置および向きへエンドエフェクタを動かすための戦略を決定するよう構成されている、ロボット制御システム。
[適用例12]適用例11に記載のロボット制御システムであって、前記戦略は、所定の効率閾値を満たすように決定される、ロボット制御システム。
[適用例13]適用例11に記載のロボット制御システムであって、前記タスクを実行するための前記戦略は、最も効率的な戦略になるように決定される、ロボット制御システム。
[適用例14]適用例11に記載のロボット制御システムであって、戦略の効率が、所定のコスト関数に従って決定される、ロボット制御システム。
[適用例15]ロボットであって、
前記ロボットの複数の制御軸の内の対応する1つに各々関連付けられている複数のモータと、前記制御軸は、少なくとも線形軸ならびに1または複数の回転軸を含み、
前記モータの内の1つに各々関連付けられている複数のモータコントローラと、
通信インターフェースと、
前記モータコントローラおよび前記通信インターフェースに接続され、前記通信インターフェースを介して少なくとも前記線形軸を含む前記制御軸の内の2以上の各々に関して固有の方法で前記ロボットを動作させるための制御信号のセットを受信し、前記固有の方法で前記ロボットを動作させるよう前記モータを制御するためのコマンドを前記複数のモータコントローラの内の対応するモータコントローラに送信するよう構成されている、プロセッサと、
を備える、ロボット。
[適用例16]ロボットシステムであって、
通信インターフェースと、
前記通信インターフェースに接続されている1または複数のプロセッサと、
を備え、
前記1または複数のプロセッサは、
前記通信インターフェースを介してセンサデータを受信し、
前記センサデータを用いて、アイテムに関するタスクを実行するようn軸ロボットを制御するための戦略を決定して実行するよう構成され、
前記戦略は、少なくとも部分的に、前記ロボットの前記n軸と1または複数のさらなる軸とを考慮に入れることによって決定され、
前記戦略は、前記アイテムに関する前記タスクを実行するように前記ロボットの前記n軸と前記1または複数のさらなる軸との少なくとも一部に関して前記ロボットを操作するための1または複数のコマンドのセットを含む、ロボットシステム。
[適用例17]適用例16に記載のロボットシステムであって、前記n軸ロボットは、6軸ロボットである、ロボットシステム。
[適用例18]適用例17に記載のロボットシステムであって、前記6軸ロボットは、第7軸内で動作するよう構成されている、ロボットシステム。
[適用例19]適用例18に記載のロボットシステムであって、前記第7軸は、前記ロボットが取り付けられているレールまたはその他の線形搬送手段に対応する線形軸である、システム。
[適用例20]適用例19に記載のロボットシステムであって、前記戦略を実行することは、前記第7軸に沿って移動するよう前記ロボットを制御することを含む、ロボットシステム。
[適用例21]適用例16に記載のロボットシステムであって、前記1または複数のプロセッサは、さらに、
前記n軸ロボットの前記n軸と、前記ロボットの前記n軸以外の対応するさらなる軸に各々関連付けられている1または複数のさらなる自由度とを組み込んだモデルを用いるよう構成されている、ロボットシステム。
[適用例22]適用例21に記載のシステムであって、さらに、
前記モデルを格納するよう構成されているメモリを備える、ロボットシステム。
[適用例23]適用例16に記載のシステムであって、
前記アイテムに関する前記タスクを実行するよう前記ロボットを制御することは、1または複数のコマンドをモータドライバへ通信することを含み、
前記モータドライバは、前記n軸の少なくとも1つについて1または複数のモータを駆動する、システム。
[適用例24]適用例23に記載のシステムであって、前記システムは、前記n軸の各々について1または複数のドライバを備える、システム。
[適用例25]適用例16に記載のシステムであって、
前記n軸ロボットは、6軸ロボットであり、
前記6軸ロボットは、1または複数のさらなる軸内で動作するよう構成され、
前記戦略は、前記1または複数のさらなる軸に沿った動作を用いて、前記n軸ロボットにとって効率的に前記タスクを実行するように前記ロボットを配置する、システム。
[適用例26]適用例16に記載のシステムであって、前記1または複数のプロセッサは、非効率的な動作に従って前記ロボットを制御することを避け、または、不適切なロボットの配置を避けるように、戦略を選択する、システム。
[適用例27]適用例16に記載のシステムであって、さらに、
1または複数のセンサを備え、
前記n軸ロボットは、6軸ロボットであり、
前記6軸ロボットは、1または複数のさらなる軸内で動作するよう構成され、
前記戦略は、前記1または複数のさらなる軸に沿った動作を用いて、前記n軸ロボットにとって効率的に前記タスクを実行するように前記ロボットを配置し、
前記1または複数のセンサの少なくとも1つは、前記ロボットへ機械的に結合され前記1または複数のさらなる軸に沿って前記ロボットと共に移動する構造に取り付けられている、システム。
[適用例28]適用例28に記載のシステムであって、前記1または複数のセンサの前記少なくとも1つの移動が、前記システムの視界を拡大する、システム。
[適用例29]適用例16に記載のシステムであって、さらに、
前記ロボットが取り付けられているキャリッジと、
前記キャリッジが取り付けられている第1レールと、
を備え、
前記n軸ロボットは、6軸ロボットであり、
前記第1レールは、前記6軸の少なくとも1つに沿った動作をガイドするよう構成され、
前記キャリッジは、前記1または複数のさらなる軸に沿って前記ロボットをガイドするよう構成されている第2レールを備える、システム。
[適用例30]適用例16に記載のシステムであって、さらに、
前記1または複数のさらなる軸に沿って前記ロボットを移動させるよう構成されている1または複数のモータと、
前記ロボットの移動を制御することに関連して、前記1または複数のモータを駆動するよう構成されているモータドライバと、
前記ロボットが結合されているラックアンドピニオンドライブトレインであって、前記ラックアンドピニオンドライブトレインに関連して、前記1または複数のモータが前記ロボットを移動させる、ラックアンドピニオンドライブトレインと、
前記ラックアンドピニオンドライブトレインのギアの係合を調整するよう構成されている調整モジュールと、を備え、
前記調整モジュールは、前記1または複数のさらなる軸に沿った前記ロボットの動作によって生じる前記ロボットのバックラッシュを制御するために、前記ラックアンドピニオンドライブトレインの前記ギアの前記係合を調整するよう制御される、システム。