(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-05-12
(54)【発明の名称】ボックスのパレタイズのロボットおよび方法
(51)【国際特許分類】
B25J 9/22 20060101AFI20220502BHJP
【FI】
B25J9/22 Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021552962
(86)(22)【出願日】2020-03-12
(85)【翻訳文提出日】2021-11-05
(86)【国際出願番号】 US2020022360
(87)【国際公開番号】W WO2020197784
(87)【国際公開日】2020-10-01
(32)【優先日】2019-03-27
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】518096722
【氏名又は名称】ボストン ダイナミクス,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ネヴィル,ネイル
(72)【発明者】
【氏名】ブランクスプアー,ケビン
(72)【発明者】
【氏名】バリー,ジェニファー
(72)【発明者】
【氏名】パーキンス,アレクサンダー,ダグラス
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS02
3C707BS10
3C707BS27
3C707CS08
3C707FS01
3C707FT02
3C707HS09
3C707KT02
3C707MT04
3C707NS19
3C707WA13
3C707WA16
(57)【要約】
【課題】 作業環境でボックスを正確かつ効率的にパレタイズ化することである。
【解決手段】 パレタイズの方法(300)は、ロボット(100)によって把持されたボックス(20)のターゲットボックス位置(202)を受信することを含む。この方法はまた、ターゲットボックス位置に隣接する初期位置(212)にボックスを配置すること、および接地面(12)に対してある角度でボックスを傾斜することを含む。この方法はさらに、ボックスを初期位置から第1の方向(D
1)に、閾値の第1の位置合わせ距離(224、224a)を満たす第1の位置合わせ位置(222、222a)にシフトすること、およびボックスを前記第1の位置合わせ位置から第2の方向(D
2)に、閾値の第2の位置合わせ距離(224、224b)を満たすターゲットボックス位置にシフトすること、ロボットによって把持されたボックスを放出することを含む。ボックスの放出は、ターゲットボックス位置の境界エッジ(24)にボックスが旋回することを引き起こす。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
方法であって、
ロボット(100)のデータ処理ハードウェア(142)で、前記ロボット(100)によって保持されたボックス(20)のターゲットボックス位置(202)を受信することであって、前記ボックス(20)は、上面(26、26
T)、底面(26、26
B)、および側面(26)を有する、前記ターゲットボックス位置を受信すること、
前記ロボット(100)によって、前記ターゲットボックス位置(202)に隣接する初期位置(212)に前記ボックス(20)を配置すること、
前記ロボット(100)によって、接地面(12)に対してある角度で前記ボックス(20)を傾斜させることであって、前記角度は前記接地面(12)と前記ボックス(20)の前記底面との間に形成される、前記ボックスを傾斜させること、
前記ロボット(100)によって、前記ボックス(20)を前記初期位置(212)から第1の方向(D
1)に、閾値の第1の位置合わせ距離(224、224a)を満たす第1の位置合わせ位置(222、222a)にシフトすること、
前記ロボット(100)によって、前記ボックス(20)を前記第1の位置合わせ位置(222、222a)から第2の方向(D
2)に、閾値の第2の位置合わせ距離(224、224b)を満たす前記ターゲットボックス位置(202)にシフトすること、および
前記ロボット(100)によって、前記ロボット(100)から前記ボックス(20)を放出することであって、前記ボックス(20)の前記放出は、前記ボックス(20)に前記ターゲットボックス位置(202)の境界エッジ(24)に向かって旋回させる、前記ボックスを放出することを含む、方法。
【請求項2】
前記第2の方向(D
2)が前記第1の方向(D
1)に垂直である、請求項1に記載の方法。
【請求項3】
前記初期位置(212)が前記第1の方向(D
1)と前記第2の方向(D
2)への前記ターゲットボックス位置(202)からのオフセット(214)を含む、請求項1または2に記載の方法。
【請求項4】
前記データ処理ハードウェア(142)で、前記ロボット(100)のビジョンシステムからセンサデータ(174)を受信すること、および、
前記データ処理ハードウェア(142)によって、前記第1の方向(D
1)の第1の補償距離、および前記第2の方向(D
2)の第2の補償距離を決定することであって、前記第1の補償距離および前記第2の補償距離は、前記ボックス(20)の実際の位置と、前記センサデータ(174)に基づく前記ボックス(20)の知覚された位置との間の差を補償し、前記初期位置(212)は、
前記第1の補償距離に基づく前記第1の方向(D
1)における前記ターゲットボックス位置(202)からの第1のオフセット(214、214a)と、
前記第2の補償距離に基づく、前記第2の方向(D
2)における前記ターゲットボックス位置(202)からの第2のオフセット(214、214b)と、を含む、前記第1の補償距離および前記第2の補償距離を決定することをさらに含む、請求項1~3のいずれか一項に記載の方法。
【請求項5】
前記ボックス(20)を前記初期位置(212)から前記第1の方向(D
1)に前記第1の位置合わせ位置(222、222a)にシフトすることは、前記閾値の第1の位置合わせ距離(224、224a)を満たす前に、前記ボックス(20)が、閾値接触力(F
thresh)または閾値速度(v
thresh)を経ていると決定することを含み、
前記ボックス(20)を前記第1の位置合わせ位置(222、222a)から前記第2の方向(D
2)に前記ターゲットボックス位置(202)までシフトすることは、前記閾値の第2の位置合わせ距離(224、224b)を満たす前に、前記ボックス(20)が、前記閾値接触力(F
thresh)または前記閾値速度(v
thresh)を経ていると決定することを含む、請求項1~4のいずれか一項に記載の方法。
【請求項6】
前記閾値の第1の位置合わせ距離(224、224a)または前記閾値の第2の位置合わせ距離(224、224b)を満たす前に、前記ボックス(20)が閾値時間期間(T
thresh)にわたり前記第1の方向(D
1)または前記第2の方向(D
2)の対応する1つで移動したことを決定する、請求項1~4のいずれか一項に記載の方法。
【請求項7】
前記ボックス(20)を前記初期位置(212)に配置することは、隣接するボックス(20)に接触することなく、前記ボックス(20)を前記ターゲットボックス位置(202)の上方に保持することを含む、請求項1~6のいずれか一項に記載の方法。
【請求項8】
前記ロボット(100)から前記ボックス(20)を放出することにより、前記ボックス(20)が1つまたは複数の隣接するボックス(20)に当接する、請求項1~7のいずれか一項に記載の方法。
【請求項9】
前記ターゲットボックス位置(202)が、複数のボックス(20)を支えるように構成されたパレット(30)に配置される、請求項1~8のいずれかに記載の方法。
【請求項10】
前記ロボット(100)が、前記ボックス(20)を把持するように構成されたエンドエフェクタ(160)を備えたマニピュレータアーム(150)を備える、請求項1~9のいずれか一項に記載の方法。
【請求項11】
前記エンドエフェクタ(160)が、前記ボックス(20)を把持するために吸引力を加えるように構成された複数の吸引カップを含む、請求項10に記載の方法。
【請求項12】
前記ロボット(100)が、
第1の端部(112)、第2の端部(114)、および複数の関節(J)を有する倒立振子本体(110)、
前記複数の関節(J)の第1の関節(J、J
A1)で前記倒立振子本体(110)に結合されたアーム(150)であって、前記アーム(150)は、前記ボックス(20)を把持するよう構成されるエンドエフェクタ(160)を含む、アーム(150)、
第1および第2の端部(122、124)を有する少なくとも1つの脚(120)であって、前記第1の端部(122)は、前記複数の関節(J)の第2の関節(J、J
H)で前記倒立振子本体(110)に結合される、少なくとも1つの脚(120)、
前記少なくとも1つの脚(120)の前記第2の端部(124)に回転可能に結合された駆動輪(130)であって、前記接地面(12)との転がり接触によって前記ロボット(100)を動かすように構成された駆動輪(130)、を含む、請求項1~9のいずれか一項に記載の方法。
【請求項13】
前記少なくとも1つの脚(120)が、
第1および第2の端部(122、124)を有する右脚(120、120a)であって、前記右脚(120、120a)の前記第1の端部(122)は前記倒立振子本体(110)の前記第2の端部(114)にプリズム状に結合され、前記右脚(120、120a)は前記右脚(120、120a)の前記第2の端部(124)に回転可能に結合された右駆動輪(130、130a)を有する、右脚(120、120a)と、
第1および第2の端部(122、124)を有する左脚(120、120b)であって、前記左脚(120、120b)の前記第1の端部(122)は前記倒立振子本体(110)の前記第2の端部(114)にプリズム状に結合され、前記左脚(120、120b)は前記左脚(120、120b)の前記第2の端部(124)に回転可能に結合された左駆動輪(130、130b)を有する、左脚(120、120b)と、を含む、請求項12に記載の方法。
【請求項14】
前記ロボット(100)が、前記倒立振子本体(110)に配置され、前記倒立振子本体(110)に対して移動するように構成されたカウンターバランス本体(110、110b)をさらに備える、請求項12に記載の方法。
【請求項15】
ロボット(100)であって、
1つまたは複数の関節(J)を含む本体(110)、
前記1つまたは複数の関節(J)の第1の関節(J、J
A1)で前記本体(110)に結合されたアーム(150)であって、エンドエフェクタ(160)を備える、アーム(150)、
データ処理ハードウェア(142)、および
前記データ処理ハードウェア(142)と通信するメモリハードウェア(144)、を備え、前記メモリハードウェア(144)が、前記データ処理ハードウェア(142)で実行されると、前記データ処理ハードウェア(142)に、
前記ロボット(100)によって保持されたボックス(20)のターゲットボックス位置(202)を受信することであって、前記ボックス(20)は、上面(26、26
T)、底面(26、26
B)、および側面(26)を有する、前記ターゲットボックス位置を受信すること、
前記ロボット(100)に、前記ターゲットボックス位置(202)に隣接する初期位置(212)に前記ボックス(20)を配置するように指示すること、
前記ロボット(100)に、接地面(12)に対して、前記接地面(12)と前記ボックス(20)の前記底面との間に形成される角度で前記ボックス(20)を傾けるように指示すること、
前記ロボット(100)に、前記ボックス(20)を前記初期位置(212)から第1の方向(D
1)に、閾値の第1の位置合わせ距離(224、224a)を満たす第1の位置合わせ位置(222、222a)にシフトするよう指示すること、
前記ロボット(100)に、前記ボックス(20)を前記第1の位置合わせ位置(222、222a)から第2の方向(D
2)に、閾値の第2の位置合わせ距離(224、224b)を満たす前記ターゲットボックス位置(202)にシフトするよう指示すること、および
ロボット(100)に、前記ロボット(100)から前記ボックス(20)を放出するように指示することであって、前記ボックス(20)の前記放出は、前記ボックス(20)に前記ターゲットボックス位置(202)の境界エッジ(24)に向かって旋回させる、前記ロボットから前記ボックスを放出するように指示すること
を含む操作を実行させる指示を格納している、ロボット。
【請求項16】
前記第2の方向(D
2)が前記第1の方向(D
1)に垂直である、請求項15に記載のロボット。
【請求項17】
前記初期位置(212)が前記第1の方向(D
1)と前記第2の方向(D
2)への前記ターゲットボックス位置(202)からのオフセット(214)を含む、請求項15または16に記載のロボット
。
【請求項18】
前記操作は、
前記ロボット(100)のビジョンシステムからセンサデータ(174)を受信すること、および
前記第1の方向(D
1)の第1の補償距離、および前記第2の方向(D
2)の第2の補償距離を決定することであって、前記第1の補償距離および前記第2の補償距離は、前記ボックス(20)の実際の位置と、前記センサデータ(174)に基づく前記ボックス(20)の知覚された位置との間の差を補償し、前記初期位置(212)は、
前記第1の補償距離に基づく前記第1の方向(D
1)における前記ターゲットボックス位置(202)からの第1のオフセット(214、214a)と、
前記第2の補償距離に基づく、前記第2の方向(D
2)における前記ターゲットボックス位置(202)からの第2のオフセット(214、214b)と、を含む、前記第1の補償距離および前記第2の補償距離を決定することをさらに含む、請求項15~17のいずれか一項に記載のロボット。
【請求項19】
前記ボックス(20)を前記初期位置(212)から前記第1の方向(D
1)に前記第1の位置合わせ位置(222、222a)にシフトすることは、前記閾値の第1の位置合わせ距離(224、224a)を満たす前に、前記ボックス(20)が、閾値接触力(F
thresh)または閾値速度(v
thresh)を経ていると決定することを含み、
前記ボックス(20)を前記第1の位置合わせ位置(222、222a)から前記第2の方向(D
2)に前記ターゲットボックス位置(202)までシフトすることは、前記閾値の第2の位置合わせ距離(224、224b)を満たす前に、前記ボックス(20)が、前記閾値接触力(F
thresh)または前記閾値速度(v
thresh)を経ていると決定することを含む、請求項15~18のいずれか一項に記載のロボット(100)。
【請求項20】
前記閾値の第1の位置合わせ距離(224、224a)または前記閾値の第2の位置合わせ距離(224、224b)を満たす前に、前記ボックス(20)が閾値時間期間(T
thresh)にわたり前記第1の方向(D
1)または前記第2の方向(D
2)の対応する1つで移動したことを決定する、請求項15~18のいずれか一項に記載のロボット。
【請求項21】
前記ボックス(20)を前記初期位置(212)に配置することは、隣接するボックス(20)に接触することなく、前記ボックス(20)を前記ターゲットボックス位置(202)の上方に保持することを含む、請求項15~20のいずれか一項に記載のロボット。
【請求項22】
前記ロボット(100)から前記ボックス(20)を放出することにより、前記ボックス(20)が1つまたは複数の隣接するボックス(20)に当接する、請求項15~21のいずれか一項に記載のロボット。
【請求項23】
前記ターゲットボックス位置(202)が、複数のボックス(20)を支えるように構成されたパレット(30)に配置される、請求項15~22のいずれか一項に記載のロボット。
【請求項24】
前記エンドエフェクタ(160)が、前記ボックス(20)を把持するために吸引力を加えるように構成された複数の吸引カップを含む、請求項15~23のいずれか一項に記載のロボット。
【請求項25】
前記ロボットは、
第1および第2の端部(122、124)を有する少なくとも1つの脚(120)であって、前記第1の端部(122)は、前記複数の関節(J)の第2の関節(J、J
H)で前記本体(110)に結合される、少なくとも1つの脚(120)、
前記少なくとも1つの脚(120)の前記第2の端部(124)に回転可能に結合された駆動輪(130)であって、前記接地面(12)との転がり接触によって前記ロボット(100)を動かすように構成された駆動輪(130)、を含む、請求項15~24のいずれかに記載のロボット。
【請求項26】
前記少なくとも1つの脚(120)が、
第1および第2の端部(122、124)を有する右脚(120、120a)であって、前記右脚(120、120a)の前記第1の端部(122)は前記本体(110)の前記第2の端部(114)にプリズム状に結合され、前記右脚(120、120a)は前記右脚(120、120a)の前記第2の端部(124)に回転可能に結合された右駆動輪(130、130a)を有する、右脚(120、120a)と、
第1および第2の端部(122、124)を有する左脚(120、120b)であって、前記左脚(120、120b)の前記第1の端部(122)は前記本体(110)の前記第2の端部(114)にプリズム状に結合され、前記左脚(120、120b)は前記左脚(120、120b)の前記第2の端部(124)に回転可能に結合された左駆動輪(130、130b)を有する、左脚(120、120b)と、を含む、請求項25に記載のロボット。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ボックスのパレタイズに関する。
【背景技術】
【0002】
ロボットは、概して、任務を実行するために、可変のプログラムされた動作を介して材料、部品、ツール、または特殊なデバイスを移動するように設計された再プログラム可能な多機能マニピュレータとして定義される。ロボットは、物理的に固定されたマニピュレータ(例えば、産業用ロボットアーム)、周囲全体を(例えば、脚、車輪、もしくは牽引ベースのメカニズムを使用して)移動する可動ロボット、またはマニピュレータと可動ロボットとの何らかの組み合わせであり得る。ロボットは、例えば、製造、輸送、危険な環境、探査、およびヘルスケアを含む、様々な産業で利用されている。これらの各産業には、ある程度のロジスティクスおよび/またはパッケージ商品との相互作用が含まれるか、これらに依存している。そのため、ボックスをパレタイズできることは、ロボットの機能を強化し、これらの業界にさらなるメリットを付与する可能性がある。
【発明の概要】
【0003】
本開示の一態様は、ボックスのパレタイズのための方法を提供する。この方法は、ロボットのデータ処理ハードウェアで、ロボットによって保持されているボックスのターゲットボックス位置を受信することを含む。ボックスには、上面、底面、および側面がある。この方法はまた、ロボットによって、ターゲットボックス位置に隣接する初期位置にボックスを配置すること、および、ロボットによって、接地面に対してある角度でボックスを傾斜させることであって、角度は接地面とボックスの底面との間に形成される、傾斜させること、を含む。この方法はさらに、ロボットによって、ボックスを初期位置から第1の方向に、閾値の第1の位置合わせ距離を満たす第1の位置合わせ位置にシフトすること、およびロボットによって、ボックスを前記第1の位置合わせ位置から第2の方向に、閾値の第2の位置合わせ距離を満たすターゲットボックス位置にシフトすることを含む。この方法はまた、ロボットによって、ロボットからボックスを放出することを含み、ボックスを放出することにより、ボックスは、ターゲットボックス位置の境界エッジに向かって旋回させる。
【0004】
本開示の実装形態は、以下の任意選択の特徴のうちの1つ以上を含み得る。いくつかの実装形態では、初期位置は、第1の方向および第2の方向におけるターゲットボックス位置からのオフセットを含む。ここで、この方法は、データ処理ハードウェアで、ロボットのビジョンシステムからセンサデータを受信すること、およびデータ処理ハードウェアによって、第1の方向の第1の補償距離、および第2の方向の第2の補償距離を決定することであって、第1の補償距離および第2の補償距離は、ボックスの実際の位置と、センサデータに基づくボックスの知覚された位置との間の差を補償する、決定することを含み得る。ビジョンシステムからセンサデータを受信するとき、初期位置は、第1の補償距離に基づく第1の方向におけるターゲットボックス位置からの第1のオフセットと、第2の補償距離に基づく、第2の方向におけるターゲットボックス位置からの第2のオフセットとを含む。
【0005】
いくつかの例では、第1の位置合わせ位置に第1の方向に初期位置からボックスをシフトすることは、第1の位置合わせ距離を満たす前に、ボックスが閾値接触力または閾値速度を経ると判定すること、ボックスを第1の位置合わせ位置から第2の方向にターゲットボックス位置までシフトすることは、閾値の第2の位置合わせ距離を満たす前に、ボックスが閾値接触力または閾値速度を経ると判定することを含む。閾値の第1の位置合わせ距離または閾値の第2の位置合わせ距離を満たす前に、方法は、ボックスが、閾値期間の第1の方向または第2の方向の対応する1つに移動したと判断することを含み得る。
【0006】
いくつかの構成では、ボックスを初期位置に配置することは、隣接するボックスに接触することなく、ターゲットボックス位置の上方にボックスを保持することを含む。ボックスをロボットから放出することは、ボックスが1つまたは複数の隣接するボックスに当接することを生じる場合がある。ターゲットボックス位置が、複数のボックスを支えるように構成されたパレットに配置され得る。ロボットは、ボックスを把持するように構成されたエンドエフェクタを備えたマニピュレータアームを含み得る。ここで、エンドエフェクタは、ボックスを把持するために吸引力を加えるように構成された複数の吸盤を含み得る。
【0007】
いくつかの実装形態では、ロボットは、第1の端部、第2の端部、および複数の関節を有する倒立振子本体、複数の関節の第1の関節で倒立振子本体に結合されたアームであって、ボックスを把持するように構成されたエンドエフェクタを含むアーム、複数の関節の第2の関節で倒立振子本体に結合された第1の端部および第2の端部を有する少なくとも1つの脚、および少なくとも片方の脚の第2の端部に回転可能に結合された駆動輪であって、接地面との転がり接触に従ってロボットを動かすように構成されている駆動輪を含む。少なくとも1つの脚は、第1および第2の端部を有する右脚を含み得、右脚の第1の端部は、倒立振子本体の第2の端部部分にプリズム状に結合され、右脚は、右脚の第2の端部に回転可能に結合された右駆動輪を有する。少なくとも1つの脚はまた、第1および第2の端部を有する左脚を含み得、左脚の第1の端部は、倒立振子本体の第2の端部部分にプリズム状に結合され、左脚は、左脚の第2の端部に回転可能に結合される左駆動輪を有する。ロボットは、倒立振子本体上に配置され、倒立振子本体に対して移動するように構成されたカウンターバランス本体を含むことができる。
【0008】
本開示の別の態様は、ボックスのパレタイズのためのロボットを提供する。ロボットは、1つまたは複数の関節を有する本体と、1つまたは複数の関節の第1の関節で本体に結合されたアームとを含み、アームは、エンドエフェクタを含む。ロボットは、データ処理ハードウェアと、データ処理ハードウェアと通信するメモリハードウェアも含む。メモリハードウェアは、データ処理ハードウェア上で実行されると、データ処理ハードウェアに動作を実行させる命令を格納する。操作には、エンドエフェクタによって把持されたボックスのターゲットボックス位置を受信することであって、ボックスは、上面、底面、および側面を有する、受信することが含まれる。この操作はまた、ロボットが、ターゲットボックス位置に隣接する初期位置にボックスを配置するよう指示すること、および、ロボットが、接地面に対してある角度でボックスを傾斜させるよう指示することであって、角度は接地面とボックスの底面との間に形成される、指示すること、を含む。操作はさらに、ロボットに、ボックスを第1の方向の初期位置から閾値の第1の位置合わせ距離を満たす第1の位置合わせ位置にシフトするように指示すること、ロボットに、ボックスを第1の位置合わせ位置から閾値の第2の位置合わせ距離を満たすターゲットボックス位置まで第2の方向にシフトするように指示すること、およびエンドエフェクタからボックスを放出するようにロボットに指示することであって、ボックスの放出により、ボックスはターゲットボックス位置の境界エッジに向かって旋回する、指示することを含む。
【0009】
本態様は、以下の任意選択的な機能のうちの1つ以上を含んでもよい。いくつかの例では、第2の方向は第1の方向に垂直である。初期位置は、第1の方向および第2の方向におけるターゲットボックス位置からのオフセットを含み得る。この操作は、ロボットのビジョンシステムからセンサデータを受信すること、および第1の方向の第1の補償距離、および第2の方向の第2の補償距離を決定することであって、第1の補償距離および第2の補償距離は、ボックスの実際の位置と、センサデータに基づくボックスの知覚された位置との間の差を補償する、決定することを含み得る。ここで、初期位置は、第1の補償距離に基づく第1の方向におけるターゲットボックス位置からの第1のオフセットと、第2の補償距離に基づく、第2の方向におけるターゲットボックス位置からの第2のオフセットとを含む。
【0010】
いくつかの構成では、ボックスを第1の方向に初期位置から第1の位置合わせ位置にシフトすることは、第1の位置合わせ距離を満たす前に、ボックスが閾値接触力または閾値速度を経ていることを決定すること、およびボックスを第1の位置合わせ位置から第2の方向にターゲットボックス位置までシフトすることは、閾値の第2の位置合わせ距離を満たす前に、ボックスが閾値接触力または閾値速度を経ていると判定することを含む。閾値の第1の位置合わせ距離または閾値の第2の位置合わせ距離を満たす前に、操作は、ボックスが閾値期間中に第1の方向または第2の方向の対応する1つに移動したことを決定することを含む。
【0011】
いくつかの実装形態では、ボックスを初期位置に配置することは、隣接するボックスに接触することなく、ターゲットボックス位置の上方にボックスを保持することを含む。ボックスをロボットから放出することは、ボックスが1つまたは複数の隣接するボックスに当接することを生じる場合がある。ターゲットボックス位置が、複数のボックスを支えるように構成されたパレットに配置され得る。エンドエフェクタは、ボックスを把持するために吸引力を加えるように構成された複数の吸盤を含み得る。
【0012】
いくつかの例では、ロボットは、第1および第2の端部を有する少なくとも1つの脚、複数の関節の第2の関節で本体に結合された第1の端部、および少なくとも1つの脚の第2の端部に回転可能に結合された駆動輪であって、接地面との転がり接触に従ってロボットを動かすように構成された駆動輪を含む。少なくとも1つの脚は、第1および第2の端部を有する右脚と、第1および第2の端部を有する左脚とを含む。右脚の第1の端部は、プリズム状に本体に結合されており、右脚は、右脚の第2の端部に回転可能に結合された右駆動輪を有する。左脚の第1の端部は、プリズム状に本体に結合されており、左脚は、左脚の第2の端部に回転可能に結合された左駆動輪を有する。
【0013】
本開示の1つ以上の実装例の詳細が、添付図面および以下の説明において記述される。他の態様、特徴および利点は、説明および図面から、ならびに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0014】
【
図1A】
図1Aは、環境内のボックスを把持するロボットの例の斜視図である。
【0015】
【0016】
【0017】
【0018】
【
図2B】
図2Bは、把持されたボックスをパレット上のボックスのスタックに配置する、
図1Aのロボットの例の上面図である。
【0019】
【
図2C】
図2Cは、把持されたボックスをパレット上のボックスのスタックに配置する、
図1Aのロボットの例の正面図である。
【0020】
【
図2D】
図2Dは、把持されたボックスをパレット上のボックスのスタックに配置する、
図1Aのロボットの例の側面図である。
【0021】
【
図2E】
図2Eは、パレット上のボックスのスタックに対して、把持されたボックスを第1の方向に移動する、
図1Aのロボットの例の上面図である。
【0022】
【
図2F】
図2Fは、パレット上のボックスのスタックに対して、把持されたボックスを第1の方向に移動する、
図1Aのロボットの例の正面図である。
【0023】
【
図2G】
図2Gは、パレット上のボックスのスタックに対して、把持されたボックスを第1の方向に移動する、
図1Aのロボットの例の側面図である。
【0024】
【
図2H】
図2Hは、パレット上のボックスのスタックに対して、把持されたボックスを第2の方向に移動する、
図1Aのロボットの例の上面図である。
【0025】
【
図2I】
図2Iは、パレット上のボックスのスタックに対して、把持されたボックスを第2の方向に移動する、
図1Aのロボットの例の正面図である。
【0026】
【
図2J】
図2Jは、パレット上のボックスのスタックに対して、把持されたボックスを第2の方向に移動する、
図1Aのロボットの例の側面図である。
【0027】
【
図2K】
図2Kは、パレット上にボックスのスタックがある状態で、把持されたボックスを位置に放出する、
図1Aのロボットの例の上面図である。
【0028】
【
図2L】
図2Lは、パレット上にボックスのスタックがある状態で、把持されたボックスを位置に放出する、
図1Aのロボットの例の正面図である。
【0029】
【
図2M】
図2Mは、パレット上にボックスのスタックがある状態で、把持されたボックスを位置に放出する、
図1Aのロボットの例の側面図である。
【0030】
【
図3】
図3は、ロボットが環境内のボックスをパレタイズするための操作の例示的構成である。
【0031】
【
図4】
図4は、本明細書に記載のシステムおよび方法を実施するために使用され得る例示的なコンピューティングデバイスの概略図である。
【発明を実施するための形態】
【0032】
様々な図面の同様の参照符号は、同様の要素を示す。
【0033】
ロジスティクスは、あらゆる形状とサイズの商品を梱包および/または輸送するように進化した。この進化に伴い、ボックスなどのパッケージ商品が様々なロジスティックチャネルをいっそう移動するようになった。特に、ここ数十年で、とりわけオンラインショッピングの増加により、パッケージ商品に対する消費者の需要が大幅に増加した。今日、大手輸送会社は、毎日数百万の荷物を輸送すると見積もっている。輸送ロジスティクスの一環として、カウント、仕分け、運送、パレタイズなど、ボックスに関連する特定の任務を実行する必要があることがよくある。これらの任務は、様々なビジネス、倉庫、フルフィルメントセンターなどの入庫および/または出庫施設の両方で必要になる場合がある。現在、パッケージ商品のボックスに関連する作業は、無数の人的労力と時間を用いている。さらに、速度と精度が重要な場合があるが、これらの任務は単調で、退屈で、時間がかかり、および/または骨の折れる作業であることがよくある。
【0034】
人間の倦怠感の本質と人間の精度への悪影響のため、これらの任務は一般的にロボットに適している。ロボットは、疲労に悩まされることなく、再現性および/または信頼性の高い方法でボックス関連の任務を実行できる。有利なことに、輸送ロジスティクスのいくつかの側面は、すでに機械および/または機械処理を伴っている。例えば、輸送環境には通常、コンピュータ、スキャナー、はかり、コンベヤー、フォークリフトなどの機器が含まれる。ロボットを使用してボックスの任務を実行することにより、ロボットはこの機器の役割を統合するように機能し得る。場合によっては、ロボットはこの機器や関連するロジスティックシステムとより簡単に統合できることがある。これらの利点やその他の利点に基づいて、作業環境でボックスを正確かつ効率的にパレタイズ化できるロボットは、進化するロジスティクス分野に大きなメリットをもたらす可能性がある。
【0035】
図1Aは、少なくとも1つのボックス20を含む作業環境10の内部で動作するロボット100の例である。ここで、作業環境10は、接地面12にあるパレット30に積み重ねられた複数のボックス20、20a~nを含む。概して、ボックス20は、保護、運送の容易さ、積み重ねる可能性などのために商品を包装するために使用される。ボックス20は、通常、長方形の柱体または直方体に似た構造を有する。ボックス20は、面26のエッジ24が交差するコーナー22を含む。長方形の柱体として、ボックス20は、6つの面26(ボックス20の表面またはボックス20の側面とも呼ばれる)を含み、各面26は、4つのエッジ24の境界によって形成される長方形である。各面26は、2つの平面の交差がエッジ24を形成する空間平面内の表面に対応する。コーナー22は、少なくとも2つのエッジ24(例えば、二次元コーナーの場合は2つのエッジ、または三次元コーナーの場合は3つのエッジ)が概して90度の角度(すなわち、直角)で交差する点または頂点を指す。ボックス20は、8つのコーナー22(すなわち、頂点)および12のエッジ24を有する。ロジスティクスでは、ボックス20は、ボックス20内に含まれる商品のためのストックキーピングユニット(例えば、バーコードの形態で)を含むことが多い。パレタイズされる(すなわち、パレット30上に積み重ねられる)とき、SKUまたはバーコードは、露出されているボックス20の面26に配置されるのが一般的である。
【0036】
作業環境10は、例えば、保管施設、流通センター、またはフルフィルメントセンターを含み得る。ロボット100は、作業環境10内のボックス20(例えば、パレタイズ)を検出および/または操作するために、接地面12を横切って移動(例えば、駆動)することができる。例えば、パレット30は、ロボット100が積載する配送トラックに対応する。ロボット100は、ロジスティクスの輸送および/または受け取り段階に関連付けられ得、ここで、ロボット100は、ロジスティクスの履行または在庫管理のためにボックス20をパレタイズする。
【0037】
パレット30は、通常、商品を支持し、商品をユニット(またはユニット積載)として運送することを可能にする平らなプラットフォーム構造(すなわち、デッキ)を指す。パレット30は、運送および移動の容易さのために、ジャッキ装置(例えば、フォークリフト、スキッドステア、ラバ、パレットジャッキ、フロントローダーなど)がパレット30を持ち上げることを可能にする入口点を含む。パレット30の縁は、パレット30によって支持される商品の境界を形成する。パレット30上の商品は、通常、パレット30の上にスタックを形成するボックス20に包装される。パレット30は、すべての形状およびサイズの任意の数のボックス20を含むことができる。空間を効率的に利用するために、パレット30は、頻繁に、層L(または列)によって定められるボックス20の積み重ねられた構造を含み得る。層Lの数または層Lを構成するボックス20の数は、ボックス20のサイズおよび/または形状に応じて変化し得る。いくつかの構成では、パレット30のサイズは、許容可能な高さ(パレット30のデッキの上部から上層ボックス20の上部まで)および/または運送のための許容可能な重量に基づく。これは、パレット30のボックス20内に含まれる商品のタイプに応じて変化し得る。簡単にするために、
図2B~2Mは、多くの場合、2つの層L、L
1~2を備えたパレット30を描写し、各層Lは、4つのボックス20、20a~dを含む。多くの場合、層L上または層L間のボックス20は、運送中のパレット30の安定性を補助するために連結される。したがって、パレット30は、ボックス20を支持する物理的構造とボックス20のユニットの両方を指すことができる。パレット30は、それらの構造(例えば、ブロックパレット、ストリンガーパレット、翼付きパレット、フラッシュパレット、リバーシブルパレット、非リバーシブルパレットなど)、それらの材料(例えば、スキッドパレット、金属パレット、木製パレット、紙パレットなど)、またはそれらの入口点(例えば、2方向パレットまたは4方向パレット)によって言及され得る。
【0038】
歴史的に、パレタイズという用語は、商品のボックス20をパレット30上に配置または積み重ねることを意味する。しかし、パレット30は、運送の目的でボックス20を積み重ねるのに便利な表面であることが多いにもかかわらず、より一般的には、商品のボックス20を任意の表面に配置または積み重ねて集合ユニットを形成することを指すように進化した。パレタイズの目標は、ボックス20の密に結合されたスタックをもたらすことである。ボックス20の緊密に結合されたスタックは、スタック内のボックス20の空間的関係が運送中に、(例えば、隣接するボックスの表面間の摩擦力を利用することによる)保護および/または動きの低減の手段として機能するように、ボックス間のスペースが最小限またはまったくない。さらに、ボックス20間に空隙がほとんどないかまったくない状態で、ボックス20は、運送中の相対運動に抵抗する可能性が高い質量を有する集合ユニットを形成することができる。言い換えれば、ボックス20の集合的な質量は、スタック内のボックス20を損傷、転倒、または概して切り離す可能性のある運動量を生成するためにより大きな力を必要とするであろう。ボックス20の間にスペースまたは空隙なしでボックス20を積み重ねることにより、パレタイズは、パレット30の運送中に、空隙によりボックス20が動いたり、ぶつかったりし得るようになるのを防ぐ。ロボット100のシステムは、パレット30上のボックス20をパレタイズすることに関して簡素化するために示されているが、ロボット100は、任意の表面でボックス20を一緒にパレタイズ(すなわち、配置/位置決め)するように構成され得る。
【0039】
ボックス20をパレタイズすることは、ロボットにとって理想的な任務であるように見えるかもしれないが、ロボットは頻繁にこの任務に苦労する。まず、ロボットは、任務を迅速に実行したり、平均的な人間の強度を超える強度を必要とする任務を実行したりするために、かなりの強度で設計されている場合がある。この強度により、ロボットは、ボックス20を一緒に積み重ねようとするときに、ボックス20を容易に押したり、スライドさせたり、倒したりすることができる。ロボットの強度に関する問題を悪化させるように、ロボットはコマンドに従って機能し、コマンドの実行からのフィードバックに応じて機能する場合がある。ここで、ロボットがボックス20に強い力を加えて別のボックス20と衝突させると、ロボットは、他のボックス20を望ましくない場所に移動する前に、衝撃を補償するための設備が整っていない。他のボックス20を望ましくない位置に移動することにより、ロボットは、積み重ねられたボックス20のユニットの完全性を損なう可能性がある(例えば、互いに間隔が広すぎるボックスまたは積み重ねボックスを倒す)。ロボットに関する別の問題は、ボックス20を操作するとき、ロボットのシステムとボックス20のスタックの実際の位置との間の不正確さおよび/または公差が、隣接するボックス20の間に空隙またはスペースを有するボックス20を配置する結果となる可能性があることである。同様の効果は、ロボットがボックス20を空間的に保持していると知覚する場所と実際にボックス20を保持している場所との間で発生する可能性がある。例えば、ロボットが実際に認識された持ち上げ位置とは数インチ異なってボックス20を持ち上げた場合、ボックスを下に置くと、ボックス20は数インチの差をボックス20のタッチダウン位置に移し、結果として配置されたボックス20と他のボックス20との間の数インチの潜在的な空隙を生じる。ボックス20が異なる重量または重量分布を有する商品を含む場合、これらの問題はさらに複雑になる可能性がある。例えば、ロボットがボックス20をあまりにも速く配置する場合、ボックス20の配置が隣接するボックス20との衝突を引き起こさないとしても、配置されたボックス20内の商品は、ボックス20の配置中ロボットによる動きにより勢いを備え、隣接するボックス20との衝突を引き起こす可能性がある。これらの問題では、これらの問題に対応せずに、ボックス20をボックス20のスタック内のターゲット位置に移動するだけで、パレタイズが不十分になる可能性が高い。これは、パレタイズ中にロボットがボックス20を複数回配置する際に、これらの問題のいずれかまたは組み合わせが繰り返し発生する場合に特に当てはまる。言い換えれば、パレット30が2つの層L
1~2を含み、各層Lに4つのボックス20を有する場合、残念ながら、ロボットは、パレットユニットの完全性を損なう8つの機会を有する。ここで、これらの問題に対処するために、
図1A~1Cに示されるロボット100は、ボックス20を確実にかつ繰り返しパレタイズするためのシステムを含む。
【0040】
図1Bに示すように、ロボット100は、重力方向に沿った垂直重力軸V
gと、ロボット100が質量のゼロサム分布を有する点である重心CMを有する。さらに、ロボット100は、垂直方向の重力軸V
gに対するCMに基づいたポーズPを有し、ロボット100によって採られる特定の姿勢またはスタンスを定める。ロボット100の姿勢は、空間における対象物の配向または角度位置によって定義され得る。
【0041】
ロボット100は、概して、本体110および1つまたは複数の脚120を含む。ロボット100の本体110は、作業環境10で実行される任務に応じて、単一構造またはより複雑な設計であり得る。本体110は、ロボット100のバランスを取ることか、作業環境10を感知すること、ロボット100に電力を供給すること、作業環境10内での任務を補助すること、またはロボット100の他の構成要素を支えることを可能にし得る。いくつかの例では、ロボット100は、2つの部分からなる本体110を含む。例えば、ロボット100は、倒立振子本体(IPB)110、110a(すなわち、ロボット100の胴体110aと呼ばれる)およびカウンターバランス本体(CBB)110、110b(すなわち、ロボット100のテール110b)がIPB110a上に配置されている。
【0042】
本体110(例えば、IPB110aまたはCBB110b)は、第1の端部112および第2の端部114を有する。例えば、IPB110aは、第1の端部112aおよび第2の端部114aを有し、一方、CBB110bは、第1の端部112bおよび第2の端部114bを有する。いくつかの実装形態では、CBB110bは、IPB110aの第2の端部114aに配置され、IPB110aに対して移動するように構成される。いくつかの例では、カウンターバランス本体110bは、ロボット100に電力を供給するのに役立つ電池を含む。バック関節JBは、CBB110bをIPB110aの第2の端部114aに回転可能に結合して、CBB110bがIPB110aに対して回転することを可能にし得る。バック関節JBは、ピッチ関節と呼ばれることがある。図示の例では、バック関節JBはCBB110bを支えて、CBB110bが、ロボット100の重力垂直軸Vgと垂直に延びる横軸(y軸)、および前後軸(X軸)の周りに移動/ピッチすることを可能にする。前後軸(x軸)は、ロボット100による現在の進行方向を示し得る。IPB110aに対するCBB110bの移動が、垂直重力軸Vgに対するロボット100のCMを移動させることにより、ロボット100のポーズPを変える。回転アクチュエータまたはバック関節アクチュエータA、AB(例えば、テールアクチュエータまたはカウンターバランス本体アクチュエータ)は、横軸(y軸)の周りのCBB110b(例えば、テール)による動きを制御するために、バック関節JBまたはその近くに配置され得る。回転アクチュエータABは、電気モータ、電気油圧サーボ、圧電アクチュエータ、ソレノイドアクチュエータ、空気圧アクチュエータ、またはIPB110aに対するCBB110bの動きを正確に生じるのに適した他のアクチュエータ技術を含み得る。
【0043】
IPB110aに対するCBB110bによる回転運動は、ロボット100のバランスを取り、直立位置に維持するために、ロボット100のポーズPを変更する。例えば、従来の倒立振子フライホイールのフライホイールによる回転と同様に、重力垂直軸Vgに対するCBB110bによる回転は、ロボット100のポーズPを変更するために、バック関節JBでモーメントMCBBを生成/与える。CBB110bをIPB110aに対して移動させてロボット100のポーズPを変更することにより、ロボット100のCMは、ロボット100が移動中および/または荷を運んでいるときのシナリオにおいて、重力垂直軸Vgに対して移動し、直立位置にロボット100のバランスを取り、維持する。しかし、モーメント点を中心とする質量を有する従来の倒立振子フライホイールのフライホイール部分とは対照的に、CBB110bは、バック関節JBで与えられるモーメントからオフセットされた対応する質量を含む。いくつかの構成では、CBB110bの代わりに後部関節JBに配置されたジャイロスコープを使用して、ロボット100を直立位置にバランスを取り、維持するために回転する、およびモーメント(回転力)を与えることができる。
【0044】
CBB110bは、時計回りおよび反時計回りの両方向(例えば、「ピッチ方向」のy軸の周り)に後部関節JBの周りを回転(例えば、ピッチ)して、振動(例えば、揺れ)運動を作り出すことができる。位置間のIPB110aに対するCBB110bによる移動は、ロボット100のCMをシフトさせる(例えば、接地面12に向かってより低く、または接地面12から離れてより高く)。CBB110bは、動きの間で振動して、揺れる動きを作り出すことができる。IPB110aに対して移動するときのCBB110bの回転速度は、ロボット100の動的バランスをとるためにロボット100のポーズPをどれだけ速く変更する必要があるかに応じて、一定または変化(加速または減速)し得る。
【0045】
脚120は、作業環境10の周りでロボット100を動かすように構成された移動ベースの構造(例えば、脚および/または車輪)である。ロボット100は、任意の数の脚120を有することができる(例えば、4本の脚を備えた四足歩行、2本の脚を備えた二足歩行、6本の脚を備えた六脚、8本の脚を備えたクモ類のようなロボットなど)。例えば、ロボット100は、作業環境10の周りでロボット100を動かすために、1つまたは複数の車輪がベースから伸びて表面に接触する、移動ベースの構造として機能する単一のベースまたは脚120を有し得る。ここでは、簡単にするために、ロボット100は、概して、2つの脚120、120a~bで示され、説明されている。
【0046】
二足歩行ロボット100として、ロボットは、第1の脚120、120aおよび第2の脚120、120bを含む。いくつかの例では、各脚120は、第1の端部122および第2の端部124を含む。第2の端部124は、ロボット100が作業環境10を横断できるように、表面(例えば、接地面)に接触するロボット100の部材に接触するか、または隣接する脚120の端部に対応する。例えば、第2の端部124は、歩行パターンに従って移動するロボット100の足に対応する。いくつかの実装形態では、ロボット100は、ロボット100が駆動輪130を含むように、回転運動に従って移動する。駆動輪130は、ロボット100の足のような部材に追加するか、またはその代わりにすることができる。例えば、ロボット100は、歩行運動および/または転がり運動に従って移動することができる。ここで、
図1Bに示されるロボット100は、本体110に(例えば、IPB110aで)結合された第1の端部122を示し、一方で第2の端部124は、駆動ホイール130に結合されている。駆動ホイール130を脚120の第2の端部124に結合することにより、駆動ホイール130は、結合部の軸の周りを回転して、ロボット100を作業環境10の周りで動かすことができる。
【0047】
本体110の各々の側にある股関節JH(例えば、ロボット100の矢状面PSに関して対称な第1股関節JH、JHaおよび第2股関節JH、JHb)は、脚120の第1の端部122を本体110の第2の端部114に回転自在に結合して、脚120の少なくとも一部が、本体110に対して横軸(y軸)の周りを移動/ピッチングすることを可能にする。例えば、脚120の第1の端部122(例えば、第1の脚120aまたは第2の脚120b)は、股関節JHでIPB110aの第2の端部114aに結合して、脚120の少なくとも一部が、IPB110aに対して横軸(y軸)の周りを移動/ピッチングするのを可能にする。
【0048】
脚アクチュエータA、ALは、各股関節JHに関連付けられ得る(例えば、第1の脚アクチュエータAL、ALaおよび第2の脚アクチュエータAL、ALb)。股関節JHに関連する脚アクチュエータALは、脚120の上部126(例えば、第1の脚120aまたは第2の脚120b)を、本体110(例えば、IPB110a)に対して横軸(y軸)の周りで移動/ピッチングさせることができる。いくつかの構成では、各脚120は、対応する上部126および対応する下部128を含む。上部126は、第1の端部122の股関節JHから対応する膝関節JKまで延びることができ、下部128は、膝関節JKから第2の端部124まで延びることができる。膝関節JKに関連付けられた膝アクチュエータA、AKは、脚120の下側部分128が脚120の上部126に対して横軸(y軸)について移動/ピッチさせることができる。
【0049】
各脚120は、駆動輪130を脚120の第2の端部124に回転可能に結合するように構成された対応する足首関節JAを含み得る。例えば、第1の脚120aは、第1の足首関節JA、JAaを含み、第2の脚120bは、第2の足首関節JA、JAbを含む。ここで、足首関節JAは、駆動輪130と共通の回転のために結合され、横軸(y軸)に実質的に平行に延びる輪軸に関連付けられ得る。駆動輪130は、前後軸(x軸)に沿って、接地面12(交換可能に作業面12または接地面12と呼ばれることがある)を横切って駆動輪130を移動させる足首関節JAについて駆動輪130を回転させるための対応する車軸トルクを印加するように構成されている対応するトルクアクチュエータ(駆動モータ)A、ATを含んでいてもよい。例えば、車軸トルクは、駆動輪130を前後軸(x軸)に沿って前方方向にロボット100を動かす方向に回転させ、および/または駆動輪130を、ロボット100を前後軸(x軸)に沿って後方に移動させる反対方向に、回転させてもよい。
【0050】
いくつかの実施形態では、脚120は、各脚120の長さが股関節J
H、股関節J
Hおよび膝関節J
Kの近くに配置された一対のプーリー(図示せず)、およびプーリーの回転を同期させるタイミングベルト(図示せず)に近接する対応するアクチュエータ(例えば、脚アクチュエータA
L)を介して伸縮し得るように、本体110(例えば、IPB110a)にプリズム状に結合される。各脚アクチュエータA
Lは、線形アクチュエータまたは回転アクチュエータを含み得る。ここで、コントローラ142(例えば、
図1Cに示される)を備えた制御システム140は、各脚120に関連するアクチュエータを作動させて、対応する下部128を、時計回りの方向または反時計回りの方向の一方で上部126に対して対応する膝関節J
Kの周りで回転させることによって、脚120の長さをプリズム状に延長/拡張するよう時計回り方向または反時計回りの方向の他方に本体110(例えば、IPB110a)に対して対応する上部126を回転させることができる。任意選択で、少なくとも1つの脚120は、2リンクの脚の代わりに、脚120の第2の端部124が線形レールに沿って本体110(例えば、IPB110a)から離れるように/それに向かってプリズム状に移動するように、プリズム状に直線的に伸長/収縮する単一のリンクを含み得る。他の構成では、膝関節J
Kは、一対の同期プーリーの代わりに、上部126に対して下部128を回転させるための膝アクチュエータA
Kとして、対応する回転アクチュエータを使用することができる。
【0051】
駆動輪130のそれぞれに加えられる対応する車軸トルク(例えば、第1の脚120aに関連する第1の駆動輪130、130aおよび第2の脚120bに関連する第2の駆動輪130、130b)は、ロボット100を、接地面12を横切って操縦するために変化し得る。例えば、第2の駆動輪130bに加えられる車軸トルクよりも大きい第1の駆動輪130aに加えられる車軸トルクは、第1の駆動輪130よりも第2の駆動輪130bにより大きな車軸トルクを加えることが、ロボット100を右に回転させることができるにもかかわらず、ロボット100を左に回転させることができる。同様に、駆動輪130のそれぞれに実質的に同じ大きさの車軸トルクを加えると、ロボット100は、接地面12を横切って順方向または逆方向のいずれかに実質的に真っ直ぐに移動することができる。各駆動輪130に加えられる車軸トルクの大きさはまた、前後軸(x軸)に沿ったロボット100の速度を制御する。任意選択で、駆動輪130は、反対方向に回転して、ロボット100が接地面12で旋回することによって、向きを変えることを可能にすることができる。したがって、各車軸トルクは、他の駆動輪130に加えられる車軸トルク(もしあればだが)とは無関係に、対応する駆動輪130に加えられ得る。
【0052】
いくつかの例では、本体110(例えば、CBB110bにある)はまた、少なくとも1つの非駆動ホイール(図示せず)を含む。非駆動ホイールは概して受動的であり(例えば、受動キャスターホイール)、非駆動ホイールの動きは、ロボット100に関連する他の駆動ホイールまたは移動によって決定される。例えば、非駆動輪は、本体110が、本体110(例えば、CBB110b)が接地面12によって支持されているポーズPに移動しない限り、地面12に接触しない。
【0053】
いくつかの実装形態では、ロボット100は、本体110(例えば、IPB110a)上に配置され、本体110に対して移動するように構成された連節式アーム150(アームまたはマニピュレータアームとも呼ばれる)などの1つまたは複数の付属物をさらに含む。連節式アーム150は、1つまたは複数の自由度を有することができる(例えば、比較的固定されたものから、作業環境10において広範囲の任務を実行することができるものまでの範囲)。この場合、
図1Bに示される連節式アーム150には5つの自由度がある。
図1Bは、本体110の第1の端部112(例えば、IPB110a)に配置された連節式アーム150を示しているが、連節式アーム150は、他の構成で本体110の任意の部分に配置され得る。例えば、連節式アーム150は、CBB110bまたはIPB110aの第2の端部114aに配置されている。
【0054】
連節式アーム150は、近位の第1の端部152と遠位の第2の端部154との間に延びる。アーム150は、第1の端部152と第2の端部154との間に1つまたは複数のアーム関節JAを含み得、各アーム関節JAは、アーム150が作業環境10で関節運動できるように構成される。これらのアーム関節JAはアーム150のアーム部材156を本体110に結合する、または2つ以上のアーム部材156を一緒に結合することができる。例えば、第1の端部152は、第1の連節式アーム関節JA1(例えば、肩関節に似ている)で本体110(例えば、IPB110a)に接続する。いくつかの構成において、第1の連節式アーム関節JA1は、股関節JHの間に配置されている(例えば、本体110の中心にロボット100の矢状面PSに沿って整列)。いくつかの例では、第1の連節式アーム関節JA1は、アーム150の近位の第1の端部152を本体110(例えば、IPB110a)に回転可能に結合して、アーム150が本体110(例えば、IPB110a)に対して回転できるようにする。例えば、アーム150は、本体110に対して横軸(y軸)を中心に移動/ピッチングすることができる。
【0055】
図1Bなどのいくつかの実装形態では、アーム150は、第2のアーム関節J
A2(例えば、肘関節に似ている)および第3のアーム関節J
A3(例えば、手首関節に似ている)を含む。第2のアーム関節J
A2は、第1のアーム部材156aを第2のアーム部材156bに結合して、これらの部材156a~bが互いに対して、また本体110(例えば、IPB110)に対しても回転可能であるようにする。アーム150の長さに応じて、アーム150の第2の端部154は、アーム部材156の端部と一致する。例えば、アーム150は、任意の数のアーム部材156を有することができるが、
図1Bは、第2のアーム部材156bの端部がアーム150の第2の端部154と一致するように、2つのアーム部材156a~bを備えたアーム150を示している。ここで、アーム150の第2の端部154において、アーム150は、作業環境10の内部で任務を実行するように構成されたエンドエフェクタ160を含む。エンドエフェクタ160は、アーム150の第2の端部154のアーム関節J
A(例えば、第3のアーム関節J
A3)に配置されて、エンドエフェクタ160が動作中に複数の自由度を有することを可能にする。エンドエフェクタ160は、物体を把持/把握するための1つまたは複数のエンドエフェクタアクチュエータA、A
EEを含み得る。例えば、エンドエフェクタ160は、エンドエフェクタ160と標的物体、例えば、標的ボックスとの間に真空シールを設けることによって物体を把持または把握するためのエンドエフェクタアクチュエータA
EEとして、1つまたは複数の吸盤を含む。
【0056】
連節式アーム150は、本体110(例えば、IPB110a)に対して横軸(y軸)の周りを移動/ピッチングすることができる。例えば、連節式アーム150は、回転操作を実行している間、本体110に対して横軸(y軸)を中心に重力方向に回転して、ロボット100のCMを下げることができる。CBB110bはまた、ロボット100のCMを下げるのを助けるために、重力の方向にIPB110に対して横軸(y軸)の周りを同時に回転することができる。ここで、連節式アーム150およびCBB110bは、ロボット100のCMを前後軸(x軸)に沿って前後方向にシフトすることをキャンセルすることができるが、それでもロボット100のCMを接地面12に近づくよう下向きにシフトするように実行する。
【0057】
図1Cを参照すると、ロボット100は、ロボット100の動作を監視および制御するように構成された制御システム140を含む。いくつかの実装形態では、ロボット100は、自律的および/または半自律的に動作するように構成される。しかし、ユーザはまた、ロボット100にコマンド/方向を提示することによってロボット100を操作することができる。示される例では、制御システム140は、コントローラ142(例えば、データ処理ハードウェア)およびメモリハードウェア144を含む。コントローラ142は、それ自体のメモリハードウェアを含むか、または制御システム140のメモリハードウェア144を利用することができる。いくつかの例では、制御システム140(例えば、コントローラ142を備えたもの)は、アクチュエータA(例えば、後部アクチュエータA
B、脚アクチュエータA
L、膝アクチュエータA
K、駆動ベルトアクチュエータ、回転アクチュエータ、エンドエフェクタアクチュエータA
EEなど)と通信(例えば、コマンド動作)して、ロボット100が作業環境10の周りを移動できるようにするように構成される。制御システム140は、示される構成要素に限定されず、本開示の範囲から逸脱することなく、追加の(例えば、電源)またはより少ない構成要素を含むことができる。構成要素は、無線または有線接続によって通信することができ、ロボット100の複数の場所に分散させることができる。いくつかの構成では、制御システム140は、リモートコンピューティングデバイスおよび/またはユーザとインターフェースする。例えば、制御システム140は、ジョイスティック、ボタン、送信機/受信機、有線通信ポート、および/または遠隔コンピューティングデバイスおよび/またはユーザからの入力を受信、およびリモートコンピューティングデバイスおよび/またはユーザにフィードバックを提供するための無線通信ポートなど、ロボット100と通信するための様々な構成要素を含み得る。
【0058】
コントローラ142は、1つまたは複数の汎用プロセッサ、デジタル信号プロセッサ、および/または特定用途向け集積回路(ASIC)を含み得るデータ処理ハードウェアに対応する。いくつかの実装形態では、コントローラ142は、ロボット100の1つまたは複数のサブシステムで特定の操作を実行するように構成された専用の組み込みデバイスである。メモリハードウェア144は、コントローラ142と通信しており、揮発性および/または不揮発性ストレージ構成要素などの1つまたは複数の非一時的なコンピュータ可読ストレージメディアを含み得る。例えば、メモリハードウェア144は、互いに通信している1つまたは複数の物理デバイスに関連付けられ得、光学的、磁気的、有機的、または他のタイプのメモリまたはストレージを含み得る。メモリハードウェア144は、とりわけ、命令(例えば、コンピュータ可読プログラム命令)を格納するように構成され、コントローラ142によって実行されると、コントローラ142に、バランスを維持するようロボット100のポーズPを変更すること、ロボット100を操作すること、物体を検出すること、物体を運送すること、および/または作業環境10内で他の任務を実行することなどの、非限定的な多数の操作を実行させる。コントローラ142は、センサシステム170との直接的または間接的な相互作用に基づいて動作を実行することができる。
【0059】
センサシステム170は、1つ以上のセンサ172、172a~nを含む。センサ172は、画像センサ(例えば視覚センサまたは感覚センサ)、慣性センサ(例えば、慣性測定ユニット(IMU))、および/または運動学的センサを含み得る。画像センサ172のいくつかの例としては、モノラルカメラまたはステレオカメラなどのカメラ、飛行時間(TOF)深度センサ、走査型光検出および測距(LIDAR)センサ、または走査型レーザー検出および測距(LADAR)センサが挙げられる。より一般的には、センサ172は、力センサ、トルクセンサ、速度センサ、加速度センサ、位置センサ(線形および/または回転位置センサ)、運動センサ、位置センサ、負荷センサ、温度センサ、タッチセンサ、深度センサ、超音波距離センサ、赤外線センサ、および/またはオブジェクトセンサのうちの1つまたは複数を含み得る。いくつかの実施例では、センサ172は、センサ172に対応する感知範囲または領域を画定する、対応する視野を有する。各センサ172は、センサ172が、例えば、1つ以上の軸(例えば、接地面12に関するx軸、y軸、またはz軸)周りの視野を変更し得るように、枢動可能および/または回転可能であり得る。いくつかの実装形態では、ロボット100の本体110は、ロボット100の周りのすべての方向でセンサデータ174を収集するために、本体の周りに複数のセンサ172を有するセンサシステム170を含む。追加的または代替的に、センサシステム170のセンサ172は、ロボット100のアーム150に取り付けられ得る(例えば、本体110に取り付けられた1つまたは複数のセンサ172と併せて)。ロボット100は、ロボット100の周りの作業環境10のセンサデータ172を生成するために、センサシステム170の一部として、任意の数のセンサ172を含み得る。例えば、ロボット100が作業環境10を操作しているとき、センサシステム170が、(例えば、IMUによって測定された)慣性測定データを含む、ロボット100のポーズデータを収集する。いくつかの実施例では、ポーズデータは、ロボット100に関する運動学的データおよび/または向きのデータを含む。
【0060】
視野をセンサ172で調査するときに、センサシステム170が、視野に対応するセンサデータ174(画像データ174とも称する)を生成する。画像センサ172の場合、センサ172は、センサデータ174が時間間隔で視野に対応するフレームFを含むように、特定の周波数でセンサデータ174として画像176をキャプチャすることができる。センサシステム170が複数の画像センサ172を含む構成では、センサシステム170は、画像センサ172に対応する複数の視野が重なり、異なるタイプの画像データ174を一緒に画像処理に使用できるようにするように、各センサ172の方向(例えば、視野)を制御するように構成され得る。いくつかの例では、センサシステム170は、第1のセンサ172、172aとして少なくとも1つの単眼カメラと、第2のセンサ172、172bとして少なくとも1つの深度センサ(例えば、ステレオカメラ、LIDAR、TOFなど)を含む。センサ172a~bは、それらの視野と重なる場合がある。重なり合う視野を用いて、センサ172a~bは、作業環境10の同じ視野(またはセンサの取り付け位置によるほぼ同じ視野)に対して同じ例で単眼画像(すなわち、二次元)および深度画像(すなわち、三次元)をキャプチャする。
【0061】
作業環境10に関する画像データ、ポーズデータ、慣性データ、運動学的データなどの、センサシステム170によって収集されたセンサデータ174は、ロボット100の制御システム140(例えば、コントローラ142および/またはメモリハードウェア144)に伝達され得る。いくつかの実施例では、センサシステム170は、センサデータ174を収集および格納する(例えば、メモリハードウェア144、またはロボット100と通信するリモートリソースと関連するメモリハードウェア内に)。他の実施例では、センサシステム170は、センサデータ174をリアルタイムで収集し、センサデータ174を生で(すなわち、未処理で)格納せずに、センサデータ174を処理する。さらに他の実施例では、コントローラシステム140および/またはリモートリソースが、処理済みのセンサデータ174と、生のセンサデータ174との両方を格納する。センサ172からのセンサデータ174は、ロボット100のシステムがロボット100に関する状態を検出および/または分析することを可能にし得る。例えば、センサデータ174は、制御システム140がロボット100を操作し、ロボット100のポーズPを変更し、および/またはロボット100の機械的構成要素を移動/回転させるための様々なアクチュエータAを作動させることを可能にし得る。
【0062】
図1Cなどのいくつかの例では、センサシステム170は、アーム150の手首関節J
A3に取り付けられた、または結合された1つまたは複数のセンサ172を含む。例えば、手首センサ172は、6軸力/トルクセンサ172である。ここで、センサ172は、ロボット100が保持しているボックス20にかかる力を感知する。パレタイザ200は、ロボット100が保持しているボックス20にこの力を使用して、ロボット100が保持しているボックス20と1つまたは複数の他のボックス20との間の相互作用を間接的に検出する。いくつかの実装形態では、パレタイザ200は、ロボット100の関節Jに基づいて、ロボット100が保持しているボックス20の速度を決定する(またはロボット100の別のシステムから受け取る)。言い換えれば、センサシステム170を用いて、ロボット100は、各関節Jおよび駆動輪130に対応する速度を決定することができる。これらの速度に基づいて、ロボット100は、エンドエフェクタ160がボックス20と共に移動する速度を決定し、これを使用してボックス20の速度を導出する。
【0063】
いくつかの構成では、ロボット100は、力感知のために同様のアプローチを使用する。より具体的には、ロボット100は、1つまたは複数の関節Jに関する力とロボット100の運動学との組み合わせに基づいて、エンドエフェクタ160での力を決定することができる。このアプローチは、ロボット100の設計が速度および/または精度を重視する場合、困難になる可能性がある。例えば、肩関節JA1など、手首関節JA3以外の関節Jに基づいて力を決定する場合、エンドエフェクタ160の加速により、ロボット100は、慣性質量の慣性力(例えば、肩関節JA1の場合、アーム150の慣性力)およびエンドエフェクタ160での力の両方を感知する。したがって、ロボット100が計算リソースを最小化し、および/または潜在的な不正確さを防止したい場合、ロボット100は、エンドエフェクタ160に最も近い位置(例えば、手首関節JA3)でエンドエフェクタ160の周りの力を感知する。
【0064】
いくつかの例では、ロボット100は、関節力フィードバック制御およびエンドエフェクタインピーダンス制御を使用して、エンドエフェクタ160の動きに準拠させる。例えば、インピーダンス制御は、手首関節JA3に取り付けられた、または手首関節JA3に結合された手首センサ172からの力フィードバックに従って増強される(例えば、エンドエフェクタ160を感知する)。ここで、インピーダンス制御は、入力として、所望のエンドエフェクタ位置および測定されたエンドエフェクタ位置を含む。任意選択で、インピーダンス制御の他の入力は、所望のエンドエフェクタ速度および/または加速度、ならびに測定されたエンドエフェクタ速度および/または加速度を含み得る。これらの入力が与えられると、インピーダンス制御は目的のエンドエフェクタ力を出力する。いくつかの実装形態では、インピーダンス制御は、これらの入力と出力との間の関係が、剛性、減衰、または慣性などのばねのような特性に対応するように構成されている。
【0065】
ボックス20のスタックを密に詰め込まれた方法で構築するために、ロボット100は、ロボット100が何かが配置されていると考える場所と実際に配置されている場所との間のエラー(すなわち、知覚エラー)を克服しなければならない。例えば、ロボット100がビジョンシステム(すなわち、ビジョンベースのセンサ172)を使用して、ロボット100が保持しているボックス20の位置を識別するか、またはターゲット位置(例えば、ターゲットボックス位置202(
図2A))を識別し、ボックス20がパレット30上に配置される場合、これらの場所の両方は、ある程度の誤差に苛まれる。ロボット100のこれらの認識のみに頼ることは、これらのエラーをパレタイズ中の配置エラーに変換する。ロボット100の知覚に関する不確実性に対処するために、ロボット100は、それが保持するボックス20での1つまたは複数の動きを使用して、ボックス20のターゲット位置への道を感じるように構成される。対照的に、伝統的に、ロボットは、ボックス20が行くべき場所にプログラムされ、ロボットは、ボックス20をその位置に堅く動かす傾向がある。この従来のアプローチは、ロボット100が近くの他のボックスを破壊および/または妨害することを容易にする。
【0066】
ロボット100が保持しているボックス20は、「把持されたボックス20
G」と呼ばれる。ロボット100がアーム150のエンドエフェクタ160を使用してそれ自体をボックス20に結合すると、ボックス20はロボット100によって把持されるようになる。
図1Aに示されるように、ロボット100は、把持されたボックス20
Gの上面26、26
Tのアーム150のエンドエフェクタ160で(例えば、エンドエフェクタアクチュエータA
EEで)、ボックス20を把持する
。例えば、エンドエフェクタ160は、ボックス20を把持するためのエンドエフェクタアクチュエータA
EEとして吸盤による吸引力を使用する。他の例では、ロボット100は、2つ以上のアーム150を有し、ボックス20の側面(すなわち、面26)に対してアーム150を互いに向かって押し付けることによって、少なくとも2つのアーム150で集合的にボックス20を把持する。把持アプローチに関係なく、パレタイザ200は、把持されたボックス20
Gをターゲットボックス位置202に配置して、スタックのボックス20間のスペースが最小またはまったくないボックス20のスタックを形成するように構成される(例えば、隣接するボックスは効果的に嵌合または隣接している)。
【0067】
図2Aを参照すると、パレタイザ200は、ポジショナー210およびアライナー220を含む。パレタイザ200は、把握ボックス20
Gを配置する場所の位置を識別する特定把握ボックス20
Gのターゲットボックスの位置202を受信するように構成されている。ターゲットボックス位置202は、ボックス20の既存のスタック内(例えば、パレット30上)にあるか、またはボックス20のスタックを開始することができる。理想的な世界では、このロボット100は、把持されたボックス20
Gをこのターゲットボックス位置202に配置し、その位置にあるボックス20のスタックは破壊されない。しかし、知覚エラー、制御許容値、および/またはボックスの分散により、把持されたボックス20
Gをターゲットボックス位置202に移動させることは、他のボックス20を破壊する可能性がある。代わりに、パレタイザ200は、把持されたボックス20
Gが隣接するボックス20との許容可能な空間的関係を有する位置に到達したときに体系的に感知しようと努める。いくつかの例では、パレタイザ200は、許容可能な空間関係として、隣接するボックス20間のスペースが最小またはまったくないと見なす。
【0068】
ポジショナー210は、把持されたボックス20Gを、ターゲットボックス位置202に隣接する初期位置212に配置するように構成される。初期位置212は、別の対象物(例えば、別のボックス20)によって占有されていないスペースであることを意図している。例えば、初期位置212は、ターゲットボックス位置202からオフセットされて、空いている位置からパレタイズプロセスを開始し、その結果、ロボット100は、把持されたボックス20Gが別のボックス20に遭遇したときに正確に感知できる。
【0069】
図2B~2Dは、初期位置212で把持されたボックス20
Gの例である。いくつかの実装形態では、
図2Bに示されるように、初期位置212は、第1の方向(例えば、y方向)のオフセット214と、第2の方向(例えば、x方向)のオフセット214とを含む。いくつかの例では、
図2Aのパレタイザ200などのロボット100のシステムは、センサシステム170からのセンサデータ174に基づいてオフセット214を決定する。センサデータ174を用いて、ロボット100は、オフセット214が第1の方向(例えば、x方向)の第1の補償距離であり、第2の方向(例えば、y方向)の第2の補償距離であると決定する。ここで、オフセット214は、ロボット100の知覚誤差(例えば、センサデータ174に基づくボックス20の実際の位置とボックス20の知覚位置との間の差)を補償する。ロボット100は、オフセット214を生成するために、これらのエラーの典型的な値を決定するように構成され得る。いくつかの例では、オフセット214は、エンドエフェクタ160の位置、エンドエフェクタ160に対するボックス20の位置、および/またはロボット100に対するボックス20のスタックに対応するボックス20の位置などのエラーを説明する。ロボット100が誤差量(例えば、平均誤差量)に基づいて第1の補償距離および第2の補償距離を決定するとき、初期位置212は、第1の方向(例えば、x方向)で第1のオフセット214、214a、第2の方向(例えば、y方向)で第2のオフセット214、214bにて定められる。各オフセット214は、初期位置212が占有されないことを保証するための公差をさらに含み得る。言い換えれば、オフセット214が各方向の平均誤差にのみ等しい場合、初期位置212は占有されていても、部分的に占有されていてもよい。例えば、典型的な誤差が3cmである場合、オフセット214は、2cmの追加の許容誤差を含むために合計5cmであり得る。
【0070】
図2Cおよび2Dを参照すると、いくつかの構成では、ポジショナー210は
、隣接するボックス20に接触することなく、把持されたボックス20
Gを(z方向に対して)ターゲットボックス位置202の上に配置する。把持されたボックス20
Gをターゲットボックス位置202の上にホバリング状態で配置することにより、パレタイザ200は、把持されたボックス20
Gが標的ボックス位置202に移動するときに、把持されたボックス20
Gと他のボックス20との間の摩擦を排除することができる。摩擦がなければ、ロボット100は、把持されたボックス20
Gと他のボックス20との間の接触力をより容易に感知することができる。把持されたボックス20
Gは、ターゲットボックス位置202の上にある高さで保持され得るので、アライナー220は、把持されたボックス20
Gを放出する前に下降させることができる。アライナー220が放出する前に把持されたボックス20
Gを下げる量は、ホバリング状態での把持されたボックス20
Gの高さ、ロボット100の動作速度、および/または把持されたボックス20
Gの内容物(ロボット100が把持されたボックス20
Gを持ち上げる/運ぶ間、センサ172に基づいて既知または決定される場合)などの変数に応じて変化し得る。
【0071】
図2Aおよび2Cを引き続き参照すると、ポジショナー210は、把持されたボックス20
Gを地面12(または接地面)に対してある角度で傾けるように構成される。換言すれば、把持されたボックス20
Gの底面26、26
B(すなわち、底面26)は、接地面12との角度を形成する。いくつかの例では、把持されたボックス20
Gは、隣接するボックス20に向かって上向きに傾斜している。ここで、把持されたボックス20
Gがロボット100によって放出されると(
図2L)、今や放出されているボックス20は、旋回ボックス20のエッジ24および面26が隣接するボックス20のエッジ24および面26に当接し、ボックス20間には、ほとんどまたはまったく空隙をもたらさないように隣接するボックス20に向かって旋回する(例えば、
図2K~2Mに示されるように)。換言すれば、そのロボット100が放出しているボックス20のエッジ24(例えば、
図2Iに示すように、エッジ24
G)では、ターゲットボックスの位置202を達成するためのガイドとして、傾斜(例えば、放出されたボックス20の対向する面26と隣接するボックス20との間の嵌合関係)により、隣接するボックス20の面26を使用することができる。
図2Cおよび
図2Dなどのいくつかの例では、ポジショナー210は
、把持されたボックス20
Gが初期位置212にあるとき、またはその前に、把持されたボックス20
Gを傾けることができる。他の例では、アライナー220が把持されたボックス20
Gを初期位置212から移動させるときに、ポジショナー210は把持されたボックス20
Gを傾斜させる。
【0072】
図2Aを引き続き参照すると、パレタイザ200のアライナー220は、把持されたボックス20
Gを初期位置212からターゲットボックス位置202に移動させるように構成される。把持されたボックス20
Gがターゲットボックス位置202に、または他のボックス20が許す限りターゲットボックス位置202にできるだけ近く移動すると、アライナー220は、把持されたボックス20
Gを放出して、把持されたボックス20
Gを所定の位置に着座させる(例えば、
図2K~2Mに示すように)。いくつかの例では、アライナー220は、把持されたボックス20
Gを2つの別個の動きで移動して、ターゲットボックス位置202の近くまたはその位置に位置合わせ位置222を成す。例えば、
図2E~2Gは、把持されたボックス20
Gを第1の方向D
1(例えば、y方向沿い)にシフトするアライナー220を示しているが、
図2H~2Jは、把持されたボックス20
Gを第2の方向D
2(例えば、x方向)にシフトするアライナー220を示している。いくつかの例では、第1の方向D
1は、第2の方向D
2に垂直である。いくつかの実装形態では、アライナー220は、第1の方向の成分および第2の方向の成分を有する移動ベクトルに沿って、把持されたボックス20
Gをシフトする(例えば、アライナー220は、把持されたボックス20
Gをxy平面でシフトする。追加的または代替的に、作業環境10は三次元空間であるため、移動ベクトルは、第3の方向を含み得る(例えば、移動ベクトルは、z方向の成分を含む)。したがって、たとえ
図2B~2Jは、アライナー220が各方向に順次移動し得ることを示していても、アライナー220は、把持されたボックス20
Gを任意の順序の方向および/または三次元空間のすべての方向に同時にシフトするように構成され得る。アライナー220が、把持されたボックス20
Gを所与の方向に移動させるとき、移動中にパレタイザ200および/またはアライナー220が監視するいくつかの条件が存在する。
【0073】
いくつかの例では、アライナー220は、把持されたボックス20
Gが位置合わせ位置222に到達するまで、把持されたボックス20
Gを移動させる。説明するために、
図2B~2Dから
図2E~2Gまで、アライナー220は、把持されたボックス20
Gを初期位置212(
図2B)から第1の位置合わせ位置222a(
図2E~2G)に移動させた。いくつかの例では、アライナー220が把持されたボックス20
Gを初期位置212から第1の方向D
1に第1の位置合わせ222、222aまでシフトするとき、アライナー220は、第1の位置合わせ位置222aが閾値の第1の位置合わせ距離224、224a(例えば、
図2Eに示される)を満たすかどうかを決定する。閾値の第1の位置合わせ距離224aは、アライナー220が把持されたボックス20
Gを所与の方向に動かすことができる有限の距離に対応する。有限の距離で、パレタイザ200は、把持されたボックス20
Gがターゲットボックス位置202から離れすぎないようにする。例えば、有限距離がない場合、ロボット100は、接触力または特定の速度が把持されたボックス20
Gの動きを停止するのを待つ間、把持されたボックス20
Gをボックス20のスタックから完全に移動させることができる。有限の距離はまた、把持されたボックス20
Gを動かすときにアライナー220がミスアラインメントを悪化させるのを防ぐことができる。例えば、ボックス20のスタックのボックス20は、その理想的な位置からの大きなオフセットを有し得る。アライナー220が、把持されたボックス20
Gを動かして、大きなオフセットで位置が外れているボックス20に当接させる場合、把持されたボックス20
Gはまた、ミスアライメントを共有する。いくつかの例では、閾値の位置合わせ距離224は、アライナー220が把持されたボックス20
Gを動かすことができる最大移動距離に対応する。
【0074】
図2H~2Jを参照すると、アライナー220は、把持されたボックス20
Gを第1の位置合わせ位置222a(
図2E~2Gに示す)から第2の方向D
2にターゲットボックス位置202まで(または、可能な場合ターゲットボックス位置202の近くに)シフトする。アライナー220が把持されたボックス20
Gを第1の位置合わせ位置222から第2の方向D
2にターゲットボックス位置202まで移動すると、ターゲットボックス位置202への移動が閾値の第2の位置合わせ距離224、224b(例えば、
図2Hに示される)を満たすかどうかを決定する。いくつかの例では、閾値の第2の位置合わせ距離224bは、閾値の第1の位置合わせ距離224aと同じ大きさを有する。他の例では、これらの閾値の位置合わせ距離224は、ボックス20の形状のために異なる。例えば、各ボックス20は、長方形プリズムの長さに沿った閾値の位置合わせ距離224が、長方形プリズムの幅に対応する閾値の位置合わせ距離224よりも大きくなるように、細長い長方形プリズムであり得る。
【0075】
アライナー220による移動中に、把持されたボックス20Gは、閾値の位置合わせ距離224が発生する前に他の条件を達成することができる。例えば、パレタイザ200は、把持されたボックス20Gが移動を停止する必要があることを、閾値接触力Fthreshまたは閾値速度vthreshにより(すなわち、第1のアライメント位置222またはターゲットボックスの位置202を達成した)検知することができる。換言すれば、閾値接触力Fthreshまたは閾値速度vthreshが、把持されたボックス20Gは隣接するボックス20により生じる抵抗を満たしていることを示す。ここで、パレタイザ200は、理想的には、把持されたボックス20Gと隣接するボックス20が、ボックス20を積み重ねるための許容可能な空間的関係を形成するように、非破壊的で完全に非弾性の衝突を引き起こす必要がある(例えば、把持されたボックス20Gが隣接するボックス20をノックして位置をずらさない、および/または運送に有害な隙間がない)。このように、閾値接触力Fthreshは、パレット化時に、把持されたボックス20Gが少なくとも1つの隣接するボックス20との接触を開始したことだけでなく、力の大きさが少なくとも1つの隣接するボックス20を大幅には乱していない(例えば、静止摩擦力に打ち勝つには十分な大きさではない)ことを示す力の大きさを指す。同様に、閾値速度vthreshは、ロボット100が(例えば、エンドエフェクタ160によって)移動力を発生しているが、把持されたボックス20Gは、もはや隣接するボックス20に起因している抵抗により移動しないことを示す速度を指す。例えば、閾値速度vthreshは、把持されたボックス20Gによる動きの欠如を示すためにゼロに設定される。いくつかの例では、閾値接触力Fthreshおよび/または閾値速度vthreshは、ベクトルとして表される。ベクトルとして、パレタイザ200は、これらのベクトルの合計の大きさ(例えば、三次元作業環境において)またはこれらのベクトルの成分(例えば、アライナー220が現在把持されたボックス20Gを動かしている方向)を使用して、これらの閾値が満たされているかどうかを決定することができる。
【0076】
いくつかの例では、閾値接触力Fthreshの大きさは、任務に特異的である。例えば、ロボット100は、一緒に積み重ねられるボックス20およびこれらのボックス20に関する情報を示す命令を受信する。ここで、情報は、各ボックス20の重量を含み得る。他のタイプの情報は、ロボット100がパレタイズ中にボックス20間の摩擦係数を説明できるように、ボックス自体の材料のタイプ(例えば、標準の段ボールボックスまたは表面コーティングされたボックス)を含む。情報に基づいて、ロボット100は、閾値接触力Fthreshを構成することができる。例えば、パレタイザ200は、以前に配置されたボックス20を移動させることが期待される力F未満である、ロボット100がボックス20に発揮することができる最大の力に対応するように、閾値接触力Fthreshを設定する。いくつかの実装形態において、ロボット100のセンサ172は、それぞれ先に配置されたボックス20の重量を決定し、閾値接触力Fthreshを設定するために決定された重量を使用している。いくつかの例では、パレタイザ200はインピーダンス制御と力フィードバック制御の組み合わせを使用して、積極的に(すなわち、閾値接触力Fthreshを設定するために)ボックス20に対してロボット100によって及ぼされる力を制限する。例えば、ロボット100は、インピーダンス制御からの所望のエンドエフェクタの力を、以前に配置されたボックス20を動かすと予想される力よりも小さくなるように制限する(例えば、質量、摩擦係数などの以前に配置されたボックス20の物理的特性を考慮する)。所望のエンドエフェクタの力を制限することによって、インピーダンス制御は、ロボット100が把持されたボックス20Gにどの程度力を及ぼすかを制限し、それにより、把持されたボックス20Gが隣接するボックス20と接触するときに、把持されたボックス20Gが送ることが可能である力を制限する。他のアプローチでは、パレタイザ200は、エンドエフェクタ160および把持されたボックス20Gの運動エネルギーを制限して、パレット30の配置されたまたは既存のボックス20に与えられるエネルギーの量が、配置されたボックス20を動かさないか、または配置されたボックス20を許容可能な距離だけ動かすことができる。この状態は、ロボット100が把持されたボックス20Gと別のボックス20との間の接触を検出できない場合である可能性がある。ここで、許容可能な距離はまた、摩擦によって放散されるエネルギーの量を説明し得る(例えば、ロボット100は、ボックスの材料および/またはボックス20間の摩擦係数を認識している)。
【0077】
いくつかの例では、パレタイザ200は、アライナー220が把持されたボックス20Gを動かすときに、接触検出中に以前に配置されたボックス20を扱うように構成される。以前に配置されたボックス20を考慮することにより、パレタイザ200は、その接触感度を潜在的に高め得る。言い換えれば、パレタイザ200は、把持されたボックス20Gと他のボックス20との間の既知の近接性を利用することができる。パレタイザ200を把持されたボックス20Gが、ロボット100が以前に配置されたボックス20について持っている知識に基づいて、経る力に(例えば、エンドエフェクタ160に関する手首関節JA3で経たもの)、および/または把持されたボックス20Gの速度に重量を適用することによって、増加した感度を達成することができる。例えば、接触を期待するとき、例えば、パレタイザ200は、特定の重量により、閾値接触力Fthreshまたは閾値速度vthreshを変更することができる。いくつかの例では、特定の重量は、パレタイザ200の接触信頼度を表す確率分布に対応し得る。
【0078】
いくつかの例では、パレタイザ200は、アライナー220が把持されたボックス20Gを所与の方向に移動する閾値時間期間Tthreshを含む。ここで、この状態は、アライナー220が閾値アライメント距離224を満たすために把持されたボックス20Gをそれほど移動しないだけでなく、閾値接触力Fthreshまたは閾値速度vthreshを経ないという事実を説明することができる。このシナリオでは、アライナー220は、把持されたボックス20Gの移動を停止して、ボックス20間の潜在的な混乱を最小限に抑えるように構成される。パレタイザ200がセンサ172にていくつかのノイズを受ける、さもなければ他のボックス20との接触を検出するのに失敗した場合、閾値時間期間Tthreshが有利であり得る。これが発生した場合、閾値時間期間Tthreshは、接触が閾値時間期間Tthreshの間のみ存在するため、検出の欠如によって引き起こされる問題を最小限に抑える設定時間である。
【0079】
図3は、ボックス20をパレタイズするための方法300の例である。操作302において、方法300は、ロボットによって保持されたボックス20
Gのターゲットボックス位置202を受信する。ボックス20
Gは
、上面26
T、底面26
B、側面26を有する。操作304において、方法300は、ボックス20
Gを、ターゲットボックス位置202に隣接する初期位置212に配置する。操作306において、方法300は、接地面12に対してある角度でボックス20
Gを傾斜させる。ここで、角度は、接地面12とボックス20
Gの底面26
Bとの間に形成される。操作308において、方法300は、ボックス20を、初期位置212から第1の方向D
1に、閾値の第1の位置合わせ距離224aを満たす第1の位置合わせ位置222aにシフトする。操作310において、方法300は、ボックス20
Gを、第1の位置合わせ位置222aから第2の方向D
2に、閾値の第2の位置合わせ距離224bを満たすターゲットボックス位置202にシフトする。操作312で、方法300は、ボックス20
Gをロボット100から放出させる。ここで、ボックス20
Gの放出は、ターゲットボックス位置202の境界エッジにボックス20
Gが旋回することを引き起こす。
【0080】
いくつかの実装形態では、第1の位置合わせ位置222aに第1の方向D1に初期位置212からボックス20Gをシフトすることは、第1の位置合わせ距離224aを満たす前に、ボックス20Gが閾値接触力Fthreshまたは閾値速度vthreshを経ると判定する。これらの実装形態では、ボックス20Gを第1の位置合わせ位置222aから第2の方向D2にターゲットボックス位置202までシフトすることは、閾値の第2の位置合わせ距離224bを満たす前に、ボックス20Gが閾値接触力Fthreshまたは閾値速度vthreshを経ると判定する。いくつかの例において、閾値の第1の位置合わせ距離224aまたは閾値の第2の位置合わせ距離224bを満たす前に、方法300は、ボックス20Gが、閾値期間Tthreshの第1の方向D1または第2の方向D2の対応する1つに移動したと判断する。
【0081】
図4は、本明細書に記載のシステムおよび方法を実施するために使用され得る例示的なコンピューティングデバイス400の概略図である。コンピューティングデバイス400は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すことが意図される。本明細書に示されている構成要素、それらの接続および関係、ならびにそれらの機能は、例示のみを意図しており、本明細書で説明および/または特許請求されている本発明の実装を制限することを意味するものではない。
【0082】
コンピューティングデバイス400は、プロセッサ410(例えば、データ処理ハードウェア)と、メモリ420(例えば、メモリハードウェア)と、ストレージデバイス430と、メモリ420および高速拡張ポート450に接続する高速インターフェース/コントローラ440と、低速バス470およびストレージデバイス430に接続する低速インターフェース/コントローラ460と、を含む。構成要素410、420、430、440、450、および460の各々は、様々なバスを使用して相互接続されており、共通のマザーボードに、または必要に応じて他の方法で取り付けられ得る。プロセッサ410は、グラフィカルユーザインターフェース(GUI)のためのグラフィカル情報を、高速インターフェース440に結合されたディスプレイ480などの外部入出力デバイス上に表示するために、メモリ420内またはストレージデバイス430上に格納された命令を含む、コンピューティングデバイス400内で実行するための命令を処理し得る。他の実装例では、必要に応じて、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに使用され得る。また、複数のコンピューティングデバイス400が、各デバイスが必要な動作の一部を提供する状態で(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)、接続され得る。
【0083】
メモリ420は、コンピューティングデバイス400内に非一時的に情報を格納する。メモリ420は、コンピュータ可読媒体、揮発性メモリユニット(複数可)、または不揮発性メモリユニット(複数可)であり得る。非一時的メモリ420は、コンピューティングデバイス400で使用するために、プログラム(例えば、命令のシーケンス)またはデータ(例えば、プログラム状態情報)を一時的または永続的に格納するために使用される物理デバイスであり得る。不揮発性メモリの例としては、以下に限定されないが、フラッシュメモリおよび読み取り専用メモリ(ROM)/プログラム可能な読み取り専用メモリ(PROM)/消去可能なプログラム可能な読み取り専用メモリ(EPROM)/電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)(例えば、通常、ブートプログラムなどのファームウェアに使用される)が挙げられる。揮発性メモリの例としては、以下に限定されないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、相変化メモリ(PCM)、ならびにディスクまたはテープが挙げられる。
【0084】
ストレージデバイス430は、コンピューティングデバイス400に大容量記憶装置を提供し得る。いくつかの実装例では、ストレージデバイス430は、コンピュータ可読媒体である。様々な異なる実装例では、ストレージデバイス430は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成のデバイスを含むデバイスのアレイであり得る。追加の実装例では、コンピュータプログラム製品は、情報担体内に実体的に具体化される。コンピュータプログラム製品は、実行されると、上記のような1つ以上の方法を実行する命令を含む。情報担体は、メモリ420、ストレージデバイス430、またはプロセッサ410上のメモリなどの、コンピュータ可読媒体または機械可読媒体である。
【0085】
高速コントローラ440が、コンピューティングデバイス400の帯域幅集中動作を管理する一方で、低速コントローラ460は、より低い帯域幅集中動作を管理する。そのようなデューティの割り当ては、例示にすぎない。いくつかの実装形態では、高速コントローラ440は、メモリ420と、ディスプレイ480(例えば、グラフィックプロセッサまたはアクセラレータを介して)と、様々な拡張カード(図示せず)を受容する高速拡張ポート450と、に結合されている。いくつかの実装例では、低速コントローラ460は、ストレージデバイス430と、低速拡張ポート490と、に結合されている。様々な通信ポート(例えば、USB、Bluetooth、イーサネット、ワイヤレスイーサネット)を含み得る低速拡張ポート490は、キーボード、ポインティングデバイス、スキャナーなどの1つ以上の入出力デバイスに、または、例えば、ネットワークアダプタを介して、スイッチもしくはルータなどのネットワーキングデバイスに結合され得る。
【0086】
コンピューティングデバイス400は、図に示すように、いくつかの異なる形態で実装され得る。例えば、これは、標準のサーバ400aとして、もしくはそのようなサーバ400aのグループ内に複数回、ラップトップコンピューター400bとして、またはラックサーバシステム400cの一部として実装され得る。
【0087】
本明細書に記載のシステムおよび技術の様々な実装は、デジタル電子および/もしくは光回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、ならびに/またはそれらの組み合わせで実現され得る。これらのさまざまな実装形態は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信し、かつ、それらにデータおよび命令を送信するよう連結された専用または汎用であってもよい少なくとも1つのプログラマブルプロセッサを含む、プログラマブルシステムで実行可能および/または解釈可能な1つ以上のコンピュータプログラムにおける実装形態を含み得る。
【0088】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)は、プログラマブルプロセッサ用の機械命令を含み、高レベル手続き型および/もしくはオブジェクト指向プログラミング言語で、ならびに/またはアセンブリ言語/機械語で実装され得る。本明細書で使用される場合、「機械可読媒体」および「コンピュータ可読媒体」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、非一時的なコンピュータ可読媒体、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指し、機械命令を機械可読信号として受け取る機械可読媒体を含む。「機械可読信号」という用語は、プログラマブルプロセッサに機械命令および/またはデータを提供するために使用される任意の信号を指す。
【0089】
本明細書で説明されるプロセスおよびロジックフローは、入力データを処理して出力を生成することによって機能を実行するために、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行され得る。プロセスおよびロジックフローはまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によっても実行され得る。コンピュータプログラムの実行に好適なプロセッサには、例として、汎用および専用マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータのうちの任意の1つ以上のプロセッサが含まれる。概して、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリ、またはその両方から命令および/またはデータを受信することになる。コンピュータの必須要素は、命令を実行するためのプロセッサ、ならびに命令およびデータを格納するための1つ以上のメモリデバイスである。概して、コンピュータはまた、データを格納するための1つ以上の大容量ストレージデバイス、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、または大容量ストレージデバイスからデータを受信、もしくはデータを転送、またはその両方を行うように動作可能に結合される。しかし、コンピュータは必ずしもそのようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを格納するための好適なコンピュータ可読媒体には、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスが含まれ、例としては、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば内蔵ハードディスクまたは取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクが挙げられる。プロセッサおよびメモリは、専用論理回路によって補足されるか、または専用論理回路に組み込まれ得る。
【0090】
ユーザとの相互作用を提供するために、本開示の1つ以上の態様は、ユーザに情報を表示するための、例えば、CRT(陰極線管)、LCD(液晶ディスプレイ)モニタ、もしくはタッチスクリーンなどの表示デバイス、ならびに任意選択で、ユーザがコンピュータに入力を提供できるキーボード、および、例えば、マウスもしくはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装され得る。他の種類のデバイスを使用して、ユーザとの相互作用を提供することもでき、例えば、ユーザに提供されるフィードバックは、例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバックなどの任意の形態の感覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受け取ることができる。さらに、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、当該デバイスからドキュメントを受信することによって、例えば、ウェブブラウザから受信された要求に応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと相互作用することができる。
【0091】
多数の実装形態が説明されてきた。それでもなお、本発明の趣旨および範囲から逸脱することなく、様々な修正が行われ得ることが理解されよう。したがって、他の実装は、以下の特許請求の範囲内にある。
【国際調査報告】