(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-07-12
(45)【発行日】2024-07-23
(54)【発明の名称】ロボット制御システム、ロボット制御方法、及びプログラム
(51)【国際特許分類】
B25J 13/00 20060101AFI20240716BHJP
B65B 69/00 20060101ALN20240716BHJP
【FI】
B25J13/00 Z
B65B69/00 103
(21)【出願番号】P 2023103529
(22)【出願日】2023-06-23
【審査請求日】2023-06-23
(73)【特許権者】
【識別番号】000006622
【氏名又は名称】株式会社安川電機
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】宮内 幸平
(72)【発明者】
【氏名】巣山 崇
(72)【発明者】
【氏名】出口 央
(72)【発明者】
【氏名】太刀掛 浩貴
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2018-122906(JP,A)
【文献】特開2021-146477(JP,A)
【文献】特開平07-136966(JP,A)
【文献】特開2018-031585(JP,A)
【文献】特開2007-168874(JP,A)
【文献】国際公開第2017/203971(WO,A1)
【文献】特開2013-100118(JP,A)
【文献】特開2007-160437(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
B65B 69/00
(57)【特許請求の範囲】
【請求項1】
所定の場所に置かれた不定形物の一部を吸着する第1吸着器と、前記第1吸着器の第1吸着圧を検出する第1吸着圧検出器と、を有する第1ロボットと、
前記不定形物における前記一部とは異なる部分を吸着する第2吸着器と、前記第2吸着器の第2吸着圧を検出する第2吸着圧検出器と、を有する第2ロボットと、
前記第2吸着圧を取得可能な第1ロボット制御部であって、前記第1
吸着器を前記不定形物に向けて移動させ、前記第2吸着圧が第2閾値以上になった場合に前記第1吸着器の移動速度がそれまでよりも遅くなるように、前記第1ロボットを制御する第1ロボット制御部と、
前記第1吸着圧を取得可能な第2ロボット制御部であって、前記第2
吸着器を前記不定形物に向けて移動させ、前記第1吸着圧が第1閾値以上になった場合に前記第2吸着器の移動速度がそれまでよりも遅くなるように、前記第2ロボットを制御する第2ロボット制御部と、
を有するロボット制御システム。
【請求項2】
前記第2ロボット制御部は、前記第2ロボットが、前記第1ロボットとの間で前記不定形物を挟み込んで支持するように、前記第2ロボットを制御する第2挟み込み制御部を有する、
請求項1に記載のロボット制御システム。
【請求項3】
前記
第1吸着器
及び前記第2吸着器の少なくとも一方は、前記不定形物を吸引する吸引機である、
請求項
1又は2に記載のロボット制御システム。
【請求項4】
前記ロボット制御システムは、
前記
第1吸着圧
又は前記第2吸着圧が閾値以上になるまで、前記
第1吸着器又は
前記第2吸着器が前記不定形物に向けて前進するように、前記
第1ロボット
又は前記第2ロボットを制御する前進制御部と、
を有する請求項
1又は2に記載のロボット制御システム。
【請求項5】
前記第1ロボット制御部は、
前記第1吸着圧を取得する第1吸着圧取得部と、
前記第2吸着圧を取得する第2吸着圧取得部と、
前記第1吸着圧が
前記第1閾値以上になった場合には、前記第1吸着器が移動を停止し、前記第1吸着圧が前記第1閾値以上になる前に、前記第2吸着圧が前記第2閾値以上になった場合には、前記第1吸着器の移動速度が
それまでよりも遅くなるように、前記第1ロボットを制御する第1速度制御部と、
を有し、
前記第2ロボット制御部は、
前記第1吸着圧を取得する第1吸着圧取得部と、
前記第2吸着圧を取得する第2吸着圧取得部と、
前記第2吸着圧が前記第2閾値以上になった場合には、前記第2吸着器が移動を停止し、前記第2吸着圧が前記第2閾値以上になる前に、前記第1吸着圧が前記第1閾値以上になった場合には、前記第2吸着器の移動速度が
それまでよりも遅くなるように、前記第2ロボットを制御する第2速度制御部と、
を有する請求項
4に記載のロボット制御システム。
【請求項6】
前記第2ロボット制御部は、前記第1ロボットが前記不定形物を支持する位置に基づいて、前記第2ロボットが前記不定形物を支持する位置を決定する位置制御部を有する、
請求項1又は2に記載のロボット制御システム。
【請求項7】
前記ロボット制御システムは、前記吸
引機が前記不定形物に触れてから、前記吸
引機による吸
引を開始させる開始制御部を有する、
請求項
3に記載のロボット制御システム。
【請求項8】
前記ロボット制御システムは、前記不定形物に応じた吸着力となるように、前記
第1吸着器
及び前記第2吸着器の少なくとも一方を制御する吸着力制御部を有する、
請求項
1又は2に記載のロボット制御システム。
【請求項9】
前記ロボット制御システムは、前記不定形物の種類を特定する種類特定部を更に有し、
前記吸着力制御部は、前記種類に応じた吸着力となるように、前記
第1吸着器
及び前記第2吸着器の少なくとも一方を制御する、
請求項
8に記載のロボット制御システム。
【請求項10】
前記ロボット制御システムは、
前記場所に置かれた前記不定形物の重心を特定する重心特定部と、
前記第1ロボット及び前記第2ロボットの少なくとも一方のロボットが、前記重心に応じた支持位置で前記不定形物を支持するように、当該少なくとも一方のロボットを制御する支持位置支持部を有する、
請求項1又は2に記載のロボット制御システム。
【請求項11】
水平方向における前記重心の位置と、水平方向における前記第1ロボットの第1支持位置と、が同じ又は所定距離以内になり、かつ、垂直方向における前記第1支持位置が所定の位置になるように、前記第1支持位置を決定する第1支持位置支持部と、
水平方向における前記重心の位置と、水平方向における前記第2ロボットの第2支持位置と、が同じ又は所定距離以内になり、かつ、垂直方向における前記第2支持位置が所定の位置になるように、前記第2支持位置を決定する第2支持位置支持部と、
を有する請求項1
0に記載のロボット制御システム。
【請求項12】
前記支持位置支持部は、前記少なくとも一方のロボットが、前記垂直方向は前記重心よりも下の第2垂直位置で前記不定形物を支持するように、前記少なくとも一方のロボットを制御する、
請求項1
1に記載のロボット制御システム。
【請求項13】
前記重心特定部は、カメラにより撮影された前記不定形物を示す画像に基づいて、前記重心を特定する、
請求項1
0に記載のロボット制御システム。
【請求項14】
前記ロボット制御システムは、
前記不定形物のサイズを特定するサイズ特定部と、
前記第1ロボット及び前記第2ロボットの少なくとも一方のロボットが、前記サイズに応じたサイズ位置で前記不定形物を支持するように、前記少なくとも一方のロボットを制御するサイズ位置支持部と、
を有する請求項1又は2に記載のロボット制御システム。
【請求項15】
前記ロボット制御システムは、
搬送中における前記不定形物の重心を特定する重心特定部と、
前記重心に基づいて、前記不定形物を搬送中の前記第1ロボット及び前記第2ロボットの少なくとも一方の姿勢を制御する姿勢制御部と、
を有する請求項1又は2に記載のロボット制御システム。
【請求項16】
前記ロボット制御システムは、前記
第1吸着器
及び前記第2吸着器の少なくとも一方が前記不定形物に応じた向きで前記不定形物を吸着するように、前記第1ロボット及び前記第2ロボットの少なくとも一方を制御する向き制御部を有する、
請求項
1又は2に記載のロボット制御システム。
【請求項17】
前記ロボット制御システムは、前記第1ロボット及び前記第2ロボットの少なくとも一方のロボットが、前記不定形物が搬送された後に行われる後工程に応じた後工程位置で前記不定形物を支持するように、前記少なくとも一方のロボットを制御する後工程位置制御部を有する、
請求項1又は2に記載のロボット制御システム。
【請求項18】
所定の場所に置かれた不定形物の一部
を吸着する第1吸着器と前記第1吸着器の第1吸着圧を検出する第1吸着圧検出器とを有する第1ロボット
と、前記不定形物における前記一部とは異なる部分
を吸着する第2吸着器と前記第2吸着器の第2吸着圧を検出する第2吸着圧検出器とを有する第2ロボット
と、のロボット制御方法であって、
前記第1吸着器を前記不定形物に向けて移動させ、前記第2吸着圧が第2閾値以上になった場合に前記第1吸着器の移動速度がそれまでよりも遅くなるように、前記第1ロボットを制御し、
前記第2吸着器を前記不定形物に向けて移動させ、前記第1吸着圧が第1閾値以上になった場合に前記第2吸着器の移動速度がそれまでよりも遅くなるように、前記第2ロボットを制御する、
ロボット制御方法。
【請求項19】
所定の場所に置かれた不定形物の一部を吸着する第1吸着器と前記第1吸着器の第1吸着圧を検出する第1吸着圧検出器とを有する第1ロボットと協働する第2ロボット
であって、前記不定形物における前記一部とは異なる部分を吸着する第2吸着器と前記第2吸着器の第2吸着圧を検出する第2吸着圧検出器とを有する前記第2ロボットを制御する第2ロボットコントローラを、
前記第1吸着圧を取得可能な第2ロボット制御部であって、前記第2
吸着器を前記不定形物に向けて移動させ、前記第1吸着圧が第1閾値以上になった場合に前記第2吸着器の移動速度がそれまでよりも遅くなるように、前記第2ロボットを制御する第2ロボット制御部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボット制御システム、ロボット制御方法、及びプログラムに関する。
【背景技術】
【0002】
例えば、特許文献1には、基部と、基部に連結され先端にて物体を支持可能な複数の先端アームと、基部に対する先端アームの位置及び姿勢を変更する駆動手段と、前記駆動手段を制御することにより物体の位置及び姿勢を制御する制御手段と、を備えるマニピュレータ装置が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示の目的の1つは、例えば、所定の場所に置かれた状態の不定形物を、安定した状態で支持して搬送することである。
【課題を解決するための手段】
【0005】
本開示の一側面に係るロボット制御システムは、第1ロボットと、第2ロボットと、前記第1ロボットが、所定の場所に置かれた不定形物の一部を支持するように、前記第1ロボットを制御する第1ロボット制御部と、前記第2ロボットが、前記第1ロボットと協働して、前記不定形物における前記一部とは異なる部分を支持して前記不定形物を搬送するように、前記第2ロボットを制御する第2ロボット制御部と、を有する。
【発明の効果】
【0006】
本開示によれば、例えば、所定の場所に置かれた状態の不定形物を、安定した状態で支持して搬送できる。
【図面の簡単な説明】
【0007】
【
図1】ロボット制御システムのハードウェア構成の一例を示す図である。
【
図2】第1ロボットコントローラ、第2ロボットコントローラ、第1ロボット、及び第2ロボットが配置された空間の一例を示す図である。
【
図4】第1ロボット及び第2ロボットの動作の一例を示す図である。
【
図5】第1ロボット及び第2ロボットの動作の一例を示す図である。
【
図6】第1ロボット及び第2ロボットの動作の一例を示す図である。
【
図7】ロボット制御システムで実現される機能の一例を示す図である。
【
図8】第1ロボット及び第2ロボットの移動経路の一例を示す図である。
【
図9】ロボット制御システムで実行される処理の一例を示す図である。
【
図10】変形例のロボット制御システムで実現される機能の一例を示す図である。
【
図11】変形例1におけるロボット制御システムのハードウェア構成の一例を示す図である。
【
図12】重心に応じた第1支持位置及び第2支持位置の一例を示す図である。
【
図13】第1吸着器及び第2吸着器の各々が不定形物に応じた向きで不定形物OBを吸着する様子の一例を示す図である。
【発明を実施するための形態】
【0008】
[1.ロボット制御システムのハードウェア構成]
本開示に係るロボット制御システム、ロボット制御方法、及びプログラムの実施形態の一例を説明する。
図1は、ロボット制御システムのハードウェア構成の一例を示す図である。例えば、ロボット制御システム1は、第1ロボットコントローラ10、第2ロボットコントローラ20、第1ロボット30、及び第2ロボット40を含む。
【0009】
第1ロボットコントローラ10は、第1ロボット30を制御する装置である。第1ロボットコントローラ10は、電力線又は信号線等のケーブルによって、第1ロボット30と接続される。第1ロボットコントローラ10は、産業用ネットワーク又はLAN等のネットワークによって、第2ロボットコントローラ20と通信可能に接続される。例えば、第1ロボットコントローラ10は、CPU11、記憶部12、及び通信部13を含む。
【0010】
例えば、CPU11は、少なくとも1つのプロセッサを含む。記憶部12は、揮発性メモリと、不揮発性メモリと、の少なくとも一方を含む。通信部13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。第1ロボットコントローラ10は、第1ロボット30に含まれる少なくとも1つのモータに電力を供給するための電力供給部等の他のハードウェアも含む。
【0011】
第2ロボットコントローラ20は、第2ロボット40を制御する装置である。第2ロボットコントローラ20は、電力線又は信号線等のケーブルによって、第2ロボット40と接続される。第2ロボットコントローラ20は、産業用ネットワーク又はLAN等のネットワークによって、第1ロボットコントローラ10と通信可能に接続される。なお、第1ロボットコントローラ10及び第2ロボットコントローラ20の間には、主従関係が存在してもよい。例えば、第1ロボットコントローラ10が第2ロボットコントローラ20からの指示に基づいて動作してもよい。逆に、第2ロボットコントローラ20が第1ロボットコントローラ10からの指示に基づいて動作してもよい。
【0012】
例えば、第2ロボットコントローラ20は、CPU21、記憶部22、及び通信部23を含む。CPU21、記憶部22、及び通信部23のハードウェア構成は、それぞれCPU11、記憶部12、及び通信部13と同様であってよい。第2ロボットコントローラ20は、第2ロボット40に含まれる少なくとも1つのモータに電力を供給するための電力供給部等の他のハードウェアも含む。
【0013】
第1ロボット30は、第1ロボットコントローラ10により制御される少なくとも1つのモータを含む装置である。本実施形態では、第1ロボット30が垂直多関節ロボットである場合を説明するが、第1ロボット30は、任意の種類であってよく、垂直多関節ロボットに限られない。例えば、第1ロボット30は、水平多関節ロボット、パラレルリンクロボット、又は直交ロボットであってもよい。第1ロボット30は、任意の軸数であってよく、例えば、4~7軸の何れかであってもよい。
【0014】
例えば、第1ロボット30は、少なくとも1つの第1吸着器31を含む。本実施形態では、第1吸着器31が吸引機である場合を例に挙げるが、第1吸着器31は、物体を吸着可能な装置であればよく、吸引機に限られない。例えば、第1吸着器31は、吸盤を有するロボットハンド、磁力によって物体を吸着する装置、又は静電気力によって物体を吸着する装置であってもよい。第1ロボット30は、第1吸着器31を含まずに、吸着機能を有しないエンドエフェクタによって物体を支持してもよい。例えば、第1ロボット30は、吸着機能を有しないロボットハンド又は板によって、物体を支持してもよい。
【0015】
例えば、第1吸着器31は、物体と接触する吸着カップ(吸盤)と、吸引のためのポンプと、を含む吸引機である。第1吸着器31は、ポンプによって、吸着カップと、吸着カップが触れた物体と、の間で真空状態を作り出す。なお、第1吸着器31は、任意の種類の吸引機であってよく、吸着カップを含む吸引機に限られない。例えば、第1吸着器31は、吸着カップではなくマット状の吸引機であってもよいし、バキュームグリッパーと呼ばれる吸引機であってもよい。
【0016】
例えば、第1ロボット30は、少なくとも1つのカメラ32を含む。カメラ32は、ビジョンセンサと呼ばれることもある。本実施形態では、カメラ32が3Dカメラである場合を説明するが、カメラ32は、任意の種類であってよく、3Dカメラに限られない。例えば、カメラ32は、2Dカメラ(深度センサを有しないカメラ)又は赤外線カメラであってもよい。カメラ32は、所定のフレームレートで連続的に撮影を行って動画を生成してもよいし、連続的な撮影を行わずに静止画を生成してもよい。
【0017】
第2ロボット40は、第2ロボットコントローラ20により制御される少なくとも1つのモータを含む装置である。本実施形態では、第2ロボット40が垂直多関節ロボットである場合を説明するが、第2ロボット40は、第1ロボット30と同様に、任意の種類であってよい。第2ロボット40の軸数も、第1ロボット30と同様に、任意の軸数であってよい。第2ロボット40は、第1ロボット30から物理的に独立したロボットである。
【0018】
例えば、第2ロボット40は、少なくとも1つの第2吸着器41を含む。第2吸着器41のハードウェア構成は、第1吸着器31と同様であってよい。本実施形態では、第1吸着器31及び第2吸着器41が何れも吸引機である場合を例に挙げるが、第1吸着器31及び第2吸着器41が互いに異なる種類の装置であってもよい。例えば、第1吸着器31が吸引機であり、第2吸着器41が吸引機能を有しないロボットハンドであってもよい。例えば、第1吸着器31が吸引機能を有しないロボットハンドであり、第2吸着器41が吸引機であってもよい。
【0019】
なお、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、不定形物を吸着する吸着器を含めばよい。当該少なくとも一方のロボットの吸着器は、不定形物を吸引する吸引機であってもよいし、先述した他の吸着器であってもよい。例えば、第1ロボット30が第1吸着器31を有し、第2ロボット40が、第2吸着器41を有さずに、吸着機能を有しないエンドエフェクタを有してもよい。第1ロボット30が、第1吸着器31を有さずに、吸着機能を有しないエンドエフェクタを有し、第2ロボット40が第2吸着器41を有してもよい。以降、第1吸着器31及び第2吸着器41を区別しないときは、単に吸着器ということがある。
【0020】
なお、記憶部12に記憶されるプログラム又はデータは、産業用ネットワーク、インターネット、又はLANといったネットワークを介して、第1ロボットコントローラ10に供給されてもよい。記憶部22に記憶されるプログラム又はデータは、当該ネットワークを介して、第2ロボットコントローラ20に供給されてもよい。例えば、第1ロボットコントローラ10及び第2ロボットコントローラ20の少なくとも一方は、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部(例えば、メモリカードスロット)と、外部機器と接続するための入出力部(例えば、USB端子)と、の少なくとも一方を含んでもよい。コンピュータ読み取り可能な情報記憶媒体に記憶されたプログラム又はデータが、読取部又は入出力部を介して、第1ロボットコントローラ10及び第2ロボットコントローラ20の少なくとも一方に供給されてもよい。
【0021】
また、第1ロボットコントローラ10、第2ロボットコントローラ20、第1ロボット30、及び第2ロボット40は、種々のハードウェアを適用可能である。第1ロボットコントローラ10、第2ロボットコントローラ20、第1ロボット30、及び第2ロボット40のハードウェア構成は、上記の例に限られない。例えば、第1ロボットコントローラ10及び第2ロボットコントローラ20の少なくとも一方は、FPGA又はASICといった回路を含んでもよい。本実施形態では、CPU11,21がcircuitryと呼ばれる構成に相当する場合を説明するが、FPGA又はASICといった他の回路がcircuitryに相当してもよい。
【0022】
また、ロボット制御システム1に含まれる装置は、
図1の例に限られない。ロボット制御システム1は、任意の装置を含んでよい。例えば、ロボット制御システム1は、第1ロボットコントローラ10及び第2ロボットコントローラ20を制御する上位コントローラを含んでもよい。例えば、ロボット制御システム1は、モータエンコーダ、トルクセンサ、位置センサ、加速度センサ、ジャイロセンサ、感圧センサ、又は接触センサといったセンサを含んでもよい。これらのセンサは、第1ロボットコントローラ10及び第2ロボットコントローラ20の少なくとも一方に接続されていてもよいし、第1ロボット30及び第2ロボット40の少なくとも一方に含まれてもよい。第2ロボット40は、カメラ32と同様のカメラを含んでもよい。
【0023】
また、第1ロボット30及び第2ロボット40は、1台のロボットコントローラによって制御されてもよい。例えば、第1ロボットコントローラ10が第1ロボット30及び第2ロボット40を制御してもよい。この場合、ロボット制御システム1に第2ロボットコントローラ20は含まれない。逆に、第2ロボットコントローラ20が第1ロボット30及び第2ロボット40を制御してもよい。この場合、ロボット制御システム1に第1ロボットコントローラ10は含まれない。ロボット制御システム1は、第1ロボットコントローラ10及び第2ロボットコントローラ20以外の他のロボットコントローラと、第1ロボット30及び第2ロボット40以外の他のロボットと、の少なくとも一方を含んでもよい。
【0024】
[2.ロボット制御システムの概要]
図2は、第1ロボットコントローラ10、第2ロボットコントローラ20、第1ロボット30、及び第2ロボット40が配置された空間の一例を示す図である。例えば、第1ロボットコントローラ10、第2ロボットコントローラ20、第1ロボット30、及び第2ロボット40は、工場等の施設に配置される。本実施形態では、第1ロボット30及び第2ロボット40が、作業台Tに置かれた不定形物OBを挟み込むように支持する。
【0025】
不定形物OBは、形状が定まっていない物体である。不定形物OBは、柔軟物ということもできる。不定形物OBは、形状が変わりやすい。不定形物OBにある程度の力が加わると、不定形物OBの形状が変わる。例えば、不定形物OBは、袋に入れられた物体、又は、緩衝材で覆われた物体である。袋又は緩衝材も不定形物OBの一部である。不定形物OBは、作業台T以外の任意の場所に置かれてよい。例えば、不定形物OBは、床、地面、搬送用ロボット、棚、梱包資材、又はその他の場所に置かれてもよい。
【0026】
本実施形態では、内容物が詰められたポリ袋が不定形物OBに相当する場合を説明するが、不定形物OBは、任意の物体であってよく、ポリ袋に限られない。例えば、不定形物OBは、内容物が詰められたビニール袋、アルミ蒸着袋、紙袋、麻袋、フレコンバッグ、輸液バッグ、又はその他の袋であってもよい。例えば、不定形物OBには、工場で生産される製品の原料又は材料が、内容物として詰められていてもよい。
【0027】
例えば、不定形物OBは、ダンボール等の梱包資材に梱包されている。第1ロボットコントローラ10は、第1ロボット30がカッターの刃で梱包資材を切断するように、第1ロボット30を制御する。第2ロボットコントローラ20は、第2ロボット40が梱包資材を固定するように、第2ロボット40を制御する。梱包資材の切断が完了すると、梱包資材の少なくとも一部が取り除かれる。第1ロボット30及び第2ロボット40の少なくとも一方のエンドエフェクタは、着脱可能であるものとする。なお、梱包資材の開梱は、第1ロボット30及び第2ロボット40ではなく、作業員によって行われてもよい。
【0028】
例えば、第1ロボット30及び第2ロボット40の間に配置された作業台Tの上に、不定形物OBが載せられている。不定形物OBの開口部がテープ等によって留められる場合には、第1ロボット30、第2ロボット40、他のロボット、又は作業員によって、不定形物OBの開口部が開けられていてもよい。
図2の例では、不定形物OBの開口部が上を向くように、作業台Tの上に配置されている。作業台Tの付近には、不定形物OBの内容物を格納する格納容器Cが配置されている。
【0029】
例えば、第1ロボット30及び第2ロボット40は、開口部が開けられた不定形物OBを挟み込むように支持し、格納容器Cの上方に不定形物OBを搬送する。第1ロボット30及び第2ロボット40は、不定形物OBの開口部が下を向くように不定形物OBを回転させて、不定形物OBの内容物を格納容器Cの中に落とす。第1ロボットコントローラ10及び第2ロボットコントローラ20は、互いに同期を取り、これらの一連の動作を行う第1ロボット30及び第2ロボット40を制御する。
【0030】
本実施形態では、第1ロボットコントローラ10は、不定形物OBの位置と、不定形物OBの全体的な形状と、を特定するために、第1ロボット30がカメラ32で不定形物OBを撮影するように、第1ロボット30を制御する。カメラ32による撮影は、第1ロボット30及び第2ロボット40によって不定形物OBが搬送される前に行われる。本実施形態では、予め定められた複数の撮影位置の各々から、不定形物OBが撮影される。
【0031】
図3は、撮影位置の一例を示す図である。例えば、第1ロボットコントローラ10は、第1ロボット30が配置された土台に対応する原点O10を中心にX10軸、Y10軸、及びZ10軸が設定された座標系で、現実空間の位置を特定する。座標系は、ロボット制御で利用される任意の座標系であってよく、
図3の例に限られない。例えば、第1ロボット30の軸ごとに座標系が設定されていてもよい。
【0032】
図3の例では、不定形物OBの上側の撮影位置FP1と、不定形物OBの横側の撮影位置FP2と、が予め定められている。撮影位置FP1には、Z10軸負方向の撮影方向FD1が定められている。撮影位置FP2には、X10軸正方向の撮影方向FD2が定められている。例えば、第1ロボットコントローラ10は、カメラ32が、撮影位置FP1から撮影方向FD1に向けて不定形物OBを撮影するように、第1ロボット30を制御する。その後、第1ロボットコントローラ10は、カメラ32が、撮影位置FP2から撮影方向FD2に向けて不定形物OBを撮影するように、第1ロボット30を制御する。
【0033】
なお、撮影位置及び撮影方向の組み合わせは、
図3のような2つに限られない。撮影位置及び撮影方向の組み合わせは、1つだけであってもよいし、3つ以上であってもよい。例えば、第1ロボットコントローラ10は、カメラ32が、不定形物OBの周囲を移動しながら不定形物OBを満遍なく撮影するように、第1ロボット30を制御してもよい。撮影位置及び撮影方向の組み合わせは、予め定められていなくてもよい。例えば、第1ロボットコントローラ10は、カメラ32により生成された撮影画像に基づいて、撮影位置及び撮影方向の組み合わせを、その場で決定してもよい。
【0034】
例えば、第1ロボットコントローラ10は、カメラ32により生成された撮影画像を解析し、不定形物OBの位置と、不定形物OBの形状と、を特定する。これらの特定方法は、画像処理分野で利用されている任意の方法を利用可能である。例えば、第1ロボットコントローラ10は、ニューラルネットワーク等の機械学習手法、又は、撮影画像から抽出した特徴点のパターンに基づいて、不定形物OBの形状を特定してもよい。第1ロボットコントローラ10は、不定形物OBの位置と、不定形物OBの形状と、に基づいて、不定形物OBの支持位置を決定する。
【0035】
例えば、第1ロボットコントローラ10は、第2ロボットコントローラ20に対し、不定形物OBの位置と、不定形物OBの形状と、を示す不定形物データを送信する。不定形物データは、物体の3次元的な位置と、物体の3次元的な形状と、を表現可能な形式であればよい。例えば、不定形物データは、3D-CADのソフトウェアで採用されている形式のデータであってもよい。不定形物データは、不定形物OBの表面を示す点群のデータ、又は、不定形物OBの表面の輪郭線を示すデータであってもよい。第2ロボットコントローラ20は、第1ロボットコントローラ10から、不定形物データを受信する。
【0036】
例えば、不定形物データが、第1ロボット30を基準とした座標系で表現されている場合、第2ロボットコントローラ20は、不定形物データを、第2ロボット40を基準とした座標系に変換する。
図3の例では、第2ロボットコントローラ20は、第2ロボット40が配置された土台に対応する原点O20を中心にX20軸、Y20軸、及びZ20軸が設定された座標系に、不定形物データに示された座標を変換する。第2ロボットコントローラ20は、第1ロボット30及び第2ロボット40の相対的な位置関係を予め特定しており、座標変換のための情報(例えば、行列)を予め記憶部22に記憶しているものとする。座標系の変換は、第1ロボットコントローラ10により実行されてもよい。
【0037】
例えば、第1ロボットコントローラ10は、不定形物データに基づいて、第1吸着器31が不定形物OBを支持する第1支持位置を決定する。第1支持位置は、第1吸着器31が不定形物OBに触れる位置である。第1ロボットコントローラ10は、第1吸着器31が第1支持位置に移動するように、第1ロボット30を制御する。第2ロボットコントローラ20は、不定形物データに基づいて、第2吸着器41が不定形物OBを支持する第2支持位置を決定する。第2支持位置は、第2吸着器41が不定形物OBに触れる位置である。第2ロボットコントローラ20は、第2吸着器41が第2支持位置に移動するように、第2ロボット40を制御する。
【0038】
図4~
図6は、第1ロボット30及び第2ロボット40の動作の一例を示す図である。
図4~
図6では、第1ロボット30及び第2ロボット40のうち、先端付近(第1吸着器31及び第2吸着器41付近)のみが示されている。
図4のP10の符号は、第1ロボット30の初期位置である第1初期位置を示す。P20の符号は、第2ロボット40の初期位置である第2初期位置を示す。第1初期位置P10及び第2初期位置P20は、予め定められた位置であればよい。なお、
図4と、
図5の上側と、においては、格納容器Cが省略されている。
【0039】
例えば、
図4の上側のように、第1ロボットコントローラ10は、第1初期位置P10において、第1吸着器31の吸着カップが不定形物OBの方を向くように、第1吸着器31の向きを制御する。第1ロボットコントローラ10は、第1吸着器31が、第1初期位置P10から第1支持位置P11に近づくように、第1ロボット30を制御する。第2ロボットコントローラ20は、第2初期位置P20において、第2吸着器41の吸着カップが不定形物OBの方を向くように、第2吸着器41の向きを制御する。第2ロボットコントローラ20は、第2吸着器41が、第2初期位置P20から第2支持位置P21に近づくように、第2ロボット40を制御する。
【0040】
例えば、
図4の下側のように、第1ロボットコントローラ10は、第1吸着器31が第1支持位置P11に移動し、第1吸着器31が一定程度の吸着圧で不定形物OBを吸着すると、第1吸着器31が移動を停止するように、第1ロボット30を制御する。第2ロボットコントローラ20は、第2吸着器41が第2支持位置P21に移動し、第2吸着器41が一定程度の吸着圧で不定形物OBを吸着すると、第2吸着器41が移動を停止するように、第2ロボット40を制御する。これらの一連の動作により、不定形物OBは、第1ロボット30及び第2ロボット40によって挟み込まれる。
【0041】
以降、第1ロボットコントローラ10及び第2ロボットコントローラ20は、互いに同期を取り、不定形物OBが格納容器Cの上方に搬送されるように、第1ロボット30及び第2ロボット40を制御する。例えば、
図5の上側のように、第1ロボットコントローラ10は、第1ロボット30が上方向に不定形物OBを搬送するように、第1ロボット30を制御する。第2ロボットコントローラ20は、第2ロボット40が上方向に不定形物OBを搬送するように、第2ロボット40を制御する。例えば、
図5の下側のように、第1ロボットコントローラ10は、第1ロボット30が格納容器Cの上方に不定形物OBを搬送するように、第1ロボット30を制御する。第2ロボットコントローラ20は、第2ロボット40が格納容器Cの上方に不定形物OBを搬送するように、第2ロボット40を制御する。
【0042】
例えば、
図6の上側のように、第1ロボットコントローラ10は、不定形物OBが格納容器Cの上方に移動すると、第1ロボット30が移動を停止するように、第1ロボット30を制御する。第2ロボットコントローラ20は、不定形物OBが格納容器Cの上方に移動すると、第2ロボット40が移動を停止するように、第2ロボット40を制御する。その後、第1ロボットコントローラ10は、第1吸着器31が回転するように、第1ロボット30を制御する。第2ロボットコントローラ20は、第2吸着器41が回転するように、第2ロボット40を制御する。
【0043】
例えば、
図6の下側のように、第1吸着器31及び第2吸着器41が回転すると、不定形物OBの内容物が格納容器Cに落ちる。内容物が格納容器Cに落ち始めると、不定形物OBが変形する。第1ロボットコントローラ10は、不定形物OBの内容物が格納容器Cに落ち切ると、第1吸着器31の吸着を停止するように、第1ロボット30を制御する。第2ロボットコントローラ20は、不定形物OBの内容物が格納容器Cに落ち切ると、不定形物OBを他の場所に移動させてから第2吸着器41の吸着を停止するように、第2ロボット40を制御する。内容物が出された状態の不定形物OB(例えば、ポリ袋のみ)は、他の場所に配置される。
【0044】
例えば、第1ロボット30及び第2ロボット40は、次の不定形物OBが作業台Tに載せられるたびに、同様の流れの動作を行う。本実施形態のロボット制御システム1は、第1ロボット30及び第2ロボット40が、作業台Tに置かれた状態の不定形物OBを支持して搬送することによって、安定した状態で不定形物OBを搬送できるようになっている。以降、ロボット制御システム1の詳細を説明する。
【0045】
[3.ロボット制御システムで実現される機能]
図7は、ロボット制御システム1で実現される機能の一例を示す図である。
【0046】
[3-1.第1ロボットコントローラで実現される機能]
例えば、第1ロボットコントローラ10は、第1データ記憶部100及び第1ロボット制御部101を含む。第1データ記憶部100は、記憶部12により実現される。第1ロボット制御部101は、CPU11により実現される。
【0047】
[第1データ記憶部]
第1データ記憶部100は、第1ロボットコントローラ10が第1ロボット30を制御するために必要なデータを記憶する。例えば、第1データ記憶部100は、第1ロボット30の制御内容を示すコード(コマンド)を含むプログラムを記憶する。プログラムは、任意の言語で作成可能であり、例えば、ロボット言語又はラダー言語により作成されてもよい。コードは、これらの言語で採用されているものであればよい。例えば、プログラムは、第1ロボット30を移動させるためのコードと、第1ロボット30の向き(姿勢)を変更するためのコードと、の少なくとも一方を含む。
【0048】
例えば、第1データ記憶部100は、第1ロボットコントローラ10が、カメラ32により生成された撮影画像に基づいて、不定形物OBの形状を認識するための形状認識プログラムを記憶する。形状認識プログラムは、カメラ32により生成された撮影画像に基づいて、不定形物OBの形状を認識するためのコードを含む。例えば、不定形物OBの表面が湾曲している場合には、当該湾曲した表面の形状も形状認識プログラムによって特定されるものとする。
【0049】
なお、形状認識プログラムは、公知の物体検出で用いられるプログラムであってもよい。本実施形態では、カメラ32が3Dカメラなので、形状認識プログラムは、3Dカメラにより撮影された撮影画像(カメラ32及び被写体の間の深度を含む画像)に基づいて、不定形物OBの形状を認識するコードを含む。例えば、形状認識プログラムは、カメラ32により撮影された複数の撮影画像に基づいて、不定形物OBの3次元的な形状を特定する。また、不定形物OBの位置及び形状が毎回同じ場合には、不定形物OBの位置及び形状の認識のための処理は省略されてもよい。
【0050】
例えば、第1データ記憶部100は、第1ロボット30が不定形物OBを支持して搬送する一連の動作を示す第1ロボット制御プログラムを記憶する。第1ロボット制御プログラムは、不定形物OBの形状に基づいて、第1吸着器31が不定形物OBを支持する第1支持位置P11を決定するためのコードを含む。第1ロボット制御プログラムは、不定形物OBの側面のうち、第1ロボット30側にある面の中心点又はその付近(例えば、中心点から所定距離以内の位置)を、第1ロボット30の第1支持位置P11として決定するコードを含む。第1ロボット制御プログラムは、第1ロボット30の第1初期位置P10から、当該決定された第1支持位置P11までの経路を計算するコードを含む。
【0051】
図8は、第1ロボット30及び第2ロボット40の移動経路の一例を示す図である。
図8のMP1の符号は、第1ロボット30の移動経路である第1移動経路である。MP2の符号は、第2ロボット40の移動経路である第2移動経路である。第1移動経路MP1を計算するためのアルゴリズムは、ロボット制御における任意のアルゴリズムが利用されてよい。例えば、第1ロボット制御プログラムは、直線補完、円弧補間、又はスプライン補完に基づく移動経路の計算のコードを含んでもよい。本実施形態では、第1ロボット制御プログラムは、これらのアルゴリズムを示すコードに加えて、第1ロボット30が第1吸着器31を回転させる動作のコードを含む。
【0052】
例えば、第1ロボット制御プログラムは、第1初期位置P10に第1吸着器31を移動させるコードを含む。第1初期位置P10は、ロボット制御システム1のユーザが予め指定しているものとする。第1ロボット制御プログラムは、第1初期位置P10から第1支持位置P11に第1吸着器31を移動させるコードを含む。第1ロボット制御プログラムは、第1支持位置P11から第1目標位置P12まで第1吸着器31を移動させるコードを含む。第1目標位置P12は、予め定められた位置であればよい。例えば、第1目標位置P12は、格納容器Cの上方の位置である。第1ロボット制御プログラムは、第1目標位置P12で第1吸着器31を回転させるコードを含む。
【0053】
例えば、第1ロボット制御プログラムは、各位置における第1吸着器31の向きを制御するコードを含む。第1初期位置P10における第1吸着器31の向きは、任意の向きであってよく、第1吸着器31が第1支持位置P11に到着するまでの間に、第1吸着器31の吸着カップが不定形物OBの側面を向くようにすればよい。例えば、不定形物OBの重心に応じた第1支持位置P11を第1吸着器31が吸着するように、第1吸着器31の向きを制御するコードが、第1ロボット制御プログラムに含まれる。例えば、第1支持位置P11の水平方向の位置は、不定形物OBの重心の水平方向の位置と同じであってもよい。第1支持位置P11の垂直方向の位置は、不定形物OBの重心の垂直方向の位置よりも下であってもよい。本実施形態では、第1支持位置P11以降の第1吸着器31の向きは、不定形物OBの搬送中において一定に保たれるものとするが、第1支持位置P11以降の第1吸着器31の向きを変えるコードが、第1ロボット制御プログラムに含まれてもよい。
【0054】
例えば、第1ロボット制御プログラムは、第1吸着器31による吸引のオン/オフを制御するコードと、第1吸着器31の吸引力(吸着力)を変えるコードと、の少なくとも一方を含んでもよい。例えば、第1ロボット制御プログラムは、第1吸着器31が第1支持位置P11に到着するまでの間、又は、第1吸着器31が第1支持位置P11に到着した後に、第1吸着器31による吸引をオンにするコードを含む。第1ロボット制御プログラムは、第1吸着器31が第1目標位置P12に到着し、不定形物OBの内容物が格納容器Cに落とされた後に、第1吸着器31による吸引をオフにするコードを含む。以上説明した一連の動作が、第1ロボット制御プログラムに定義されている。
【0055】
なお、第1データ記憶部100が記憶するデータは、上記の例に限られない。例えば、第1データ記憶部100は、形状認識プログラム及び第1ロボット制御プログラム以外の他のプログラムを記憶してもよい。また、第1データ記憶部100が記憶するデータは、プログラムに限られない。例えば、第1データ記憶部100は、第1移動経路MP1を示す第1移動経路データを記憶してもよい。第1ロボットコントローラ10が第2移動経路MP2を計算する場合には、第1データ記憶部100は、第2移動経路MP2を示す第2移動経路データを記憶してもよい。例えば、第1データ記憶部100は、上記のプログラムにより参照されるパラメータを記憶してもよい。パラメータは、ロボット制御で利用されているものであればよく、例えば、第1ロボット30内のモータの位置を示す位置パラメータ、又は、トルクセンサ等の各種センサにより検出された値であってもよい。
【0056】
[第1ロボット制御部]
第1ロボット制御部101は、第1データ記憶部100に記憶されたプログラム及びパラメータに基づいて、第1ロボット30を制御する。第1ロボット制御部101は、第1ロボット30が、作業台Tに置かれた不定形物OBの一部を支持するように、第1ロボット30を制御する。当該一部は、不定形物OBのうち、第1ロボット30が触れる部分である。例えば、当該一部は、不定形物OBのうち、第1吸着器31が触れる部分である。本実施形態における支持とは、吸着、吸引、及び把持を含む概念である。
【0057】
作業台Tは、所定の場所の一例である。このため、作業台Tと記載した箇所は、所定の場所と読み替えることができる。先述したように、不定形物OBは、作業台T以外の任意の場所に置かれてよい。このため、所定の場所は、作業台Tに限られない。第1ロボット制御部101は、第1ロボット30が、不定形物OBの一部を支持して搬送するように、第1ロボット30を制御する。本実施形態では、第1ロボットコントローラ10及び第2ロボットコントローラ20の間で互いの動作の同期が取られるので、第1ロボット制御部101は、第1ロボット30が、第2ロボット40と協働して、不定形物OBの一部を支持して搬送するように、第1ロボット30を制御する。
【0058】
例えば、第1ロボット制御部101は、形状認識プログラム及び第1ロボット制御プログラムに基づいて、第1ロボット30を制御する。第1ロボット制御部101は、形状認識プログラムを実行し、不定形物OBの位置及び形状を認識する。第1ロボット制御部101は、不定形物OBの位置及び形状を示す不定形物データを生成し、第1データ記憶部100に記録する。第1ロボット制御部101は、第2ロボットコントローラ20に対し、不定形物データを送信する。なお、不定形物データは、PLC(Programmable Logic Controller)又はビジョンコントローラといった他の装置により生成され、当該他の装置から第1ロボットコントローラ10及び第2ロボットコントローラ20の各々に送信されてもよい。
【0059】
例えば、第1ロボット制御部101は、不定形物データ及び第1ロボット制御プログラムに基づいて、第1移動経路MP1と、第1移動経路MP1上における第1吸着器31の向きを決定する。第1ロボット制御部101は、予め指定された第1吸着器31のオン/オフのタイミングを取得する。第1ロボット制御部101は、第1吸着器31が不定形物OBに接触したタイミング、又は、第1吸着器31が不定形物OBに触れた後(例えば、第1吸着器31が停止して所定時間が経過した後)に、第1吸着器31をオンにしてもよい。第1ロボット制御部101は、第1吸着器31が当該計算された第1移動経路MP1上を当該計算された向きで移動し、第1吸着器31による吸引が当該計算されたタイミングでオン/オフするように、第1ロボット30を制御する。
【0060】
例えば、第1ロボット制御部101は、第1挟み込み制御部102を含む。第1挟み込み制御部102は、第1ロボット30が、第2ロボット40との間で不定形物OBを挟み込んで支持するように、第1ロボット30を制御する。第1挟み込み制御部102は第2ロボット30が不定形物OBに力を加える方向(
図8の例では、第2初期位置P20から第2支持位置P21に対する方向)と逆方向(
図8の例では、第1初期位置P10から第1支持位置P11に対する方向)に第1ロボット30が不定形物OBに力を加えるように、第1ロボット30を制御する。なお、ここでの逆方向は、真逆の方向だけではなく、真逆の方向から多少のずれが許容されてよい。
【0061】
本実施形態では、第1支持位置P11が、不定形物OBにおける第2支持位置P21の反対側となるように決定される。このため、第1挟み込み制御部102は、第2支持位置P21の反対側となるように第1支持位置P11を計算し、当該計算された第1支持位置P11に第1吸着器31を移動させることによって、第1ロボット30に、第2ロボット40との間で不定形物OBを挟み込んで支持させる。その後の搬送の流れは、先述した通りである。なお、第1ロボットコントローラ10及び第2ロボットコントローラ20の間で、第1支持位置P11及び第2支持位置P21が互いに共有されるものとする。
【0062】
なお、第1ロボット制御部101は、第1挟み込み制御部102を含まなくてもよい。例えば、第1ロボット制御部101は、第2ロボット40が不定形物OBに触れる前に、第1ロボット30が第1支持位置P11に移動するように、第1ロボット30を制御する。不定形物OBは、後述の第2挟み込み制御部202の制御によって、第1ロボット30及び第2ロボット40によって挟み込まれてもよい。第1ロボット制御部101は、第2ロボット40の動作とは関係なく、第1ロボット30が動作するように、第1ロボット30を制御してもよい。即ち、第1ロボット制御部101は、第1ロボット30が第2ロボット40と協働するようには、第1ロボット30を制御しなくてもよい。
【0063】
[3-2.第2ロボットコントローラで実現される機能]
例えば、第2ロボットコントローラ20は、第2データ記憶部200及び第2ロボット制御部201を含む。第2データ記憶部200は、記憶部22により実現される。第2ロボット制御部201は、CPU21により実現される。
【0064】
[第2データ記憶部]
第2データ記憶部200は、第2ロボットコントローラ20が第2ロボット40を制御するために必要なデータを記憶する。例えば、第2データ記憶部200は、第2ロボット40の制御内容を示すコード(コマンド)を含むプログラムを記憶する。プログラムは、任意の言語で作成可能であり、例えば、ロボット言語又はラダー言語により作成されてもよい。コードは、これらの言語で採用されているものであればよい。例えば、プログラムは、第2ロボット40を移動させるためのコードと、第2ロボット40の向き(姿勢)を変更するためのコードと、の少なくとも一方を含む。
【0065】
例えば、第2データ記憶部200は、第2ロボット40が不定形物OBを支持して搬送する一連の動作を示す第2ロボット制御プログラムを記憶する。第2ロボット制御プログラムは、不定形物OBの形状に基づいて、第2吸着器41が不定形物OBを支持する第2支持位置P21を決定するためのコードを含む。第2ロボット制御プログラムは、不定形物OBの側面のうち、第2ロボット40側にある面の中心点又はその付近(例えば、中心点から所定距離以内の位置)を、第2ロボット40の第2支持位置P21として決定するコードを含む。第2ロボット制御プログラムは、第2ロボット40の第2初期位置P20から、当該決定された第2支持位置P21までの経路を計算するコードを含む。
【0066】
例えば、第2移動経路MP2を計算するためのアルゴリズムは、ロボット制御における任意のアルゴリズムが利用されてよい。第2ロボット制御プログラムは、直線補完、円弧補間、又はスプライン補完に基づく移動経路の計算のコードを含んでもよい。本実施形態では、第2ロボット制御プログラムは、これらのアルゴリズムを示すコードに加えて、第2ロボット40が第2吸着器41を回転させる動作のコードを含む。なお、第2移動経路MP2は、第1ロボットコントローラ20によって計算されてもよい。この場合、第1ロボット制御プログラムは、第2移動経路MP2を計算する上記コードを含む。
【0067】
例えば、第2ロボット制御プログラムは、第2初期位置P20に第2吸着器41を移動させるコードを含む。第2初期位置P20は、ロボット制御システム1のユーザが予め指定しているものとする。第2ロボット制御プログラムは、第2初期位置P20から第2支持位置P21に第2吸着器41を移動させるコードを含む。第2ロボット制御プログラムは、第2支持位置P21から第2目標位置P22まで第2吸着器41を移動させるコードを含む。第2目標位置P22は、予め定められた位置であればよい。例えば、第2目標位置P22は、格納容器Cの上方の位置である。第2ロボット制御プログラムは、第2目標位置P22で第2吸着器41を回転させるコードを含む。
【0068】
例えば、第2ロボット制御プログラムは、各位置における第2吸着器41の向きを制御するコードを含む。第2初期位置P20における第2吸着器41の向きは、任意の向きであってよく、第2吸着器41が第2支持位置P21に到着するまでの間に、第2吸着器41の吸着カップが不定形物OBの側面を向くようにすればよい。例えば、不定形物OBの重心に応じた第2支持位置P21を第2吸着器41が吸着するように、第2吸着器41の向きを制御するコードが、第2ロボット制御プログラムに含まれる。例えば、第2支持位置P21の水平方向の位置は、不定形物OBの重心の水平方向の位置と同じであってもよい。第2支持位置P21の垂直方向の位置は、不定形物OBの重心の垂直方向の位置よりも下であってもよい。本実施形態では、第1支持位置P11以降の第2吸着器41の向きは、不定形物OBの搬送中において一定に保たれるものとするが、第1支持位置P11以降の第2吸着器41の向きを変えるコードが、第2ロボット制御プログラムに含まれてもよい。
【0069】
例えば、第2ロボット制御プログラムは、第2吸着器41による吸引のオン/オフを制御するコードと、第2吸着器41の吸引力(吸着力)を変えるコードと、の少なくとも一方を含んでもよい。例えば、第2ロボット制御プログラムは、第2吸着器41が第2支持位置P21に到着するまでの間に、第2吸着器41による吸引をオンにするコードを含む。第2ロボット制御プログラムは、第2吸着器41が第2目標位置P22に到着し、不定形物OBの内容物が格納容器Cに落とされた後に、第2吸着器41による吸引をオフにするコードを含む。以上説明した一連の動作が、第2ロボット制御プログラムに定義されている。
【0070】
なお、第2データ記憶部200が記憶するデータは、上記の例に限られない。例えば、第2データ記憶部200は、第2ロボット制御プログラム以外の他のプログラムを記憶してもよい。また、第2データ記憶部200が記憶するデータは、プログラムに限られない。例えば、第2データ記憶部200は、第2移動経路MP2を示す第2移動経路データを記憶してもよい。例えば、第2データ記憶部200は、上記のプログラムにより参照されるパラメータを記憶してもよい。パラメータは、ロボット制御で利用されているものであればよく、例えば、第2ロボット40内のモータの位置を示す位置パラメータ、又は、トルクセンサ等の各種センサにより検出された値であってもよい。
【0071】
[第2ロボット制御部]
第2ロボット制御部201は、第2データ記憶部200に記憶されたプログラム及びパラメータに基づいて、第2ロボット40を制御する。第2ロボット制御部201は、第2ロボット40が、第1ロボット30と協働して、不定形物OBにおける一部(第1ロボット制御部101の処理で説明した一部)とは異なる部分を支持して不定形物OBを搬送するように、第2ロボット40を制御する。
【0072】
不定形物OBにおける一部とは異なる部分は、不定形物OBのうち、第2ロボット40が触れる部分である。本実施形態では、当該異なる部分は、不定形物OBのうち、第2吸着器41が触れる部分である。当該異なる部分は、第1ロボット30が支持する部分以外の他の部分である。例えば、当該異なる部分は、不定形物OBのうち、第1ロボット30が支持する部分とは反対側の部分である。当該異なる部分は、反対側の部分に限られず、他の部分であってもよい。例えば、当該異なる部分は、第1ロボット30が支持する不定形物OBの側面の隣の側面であってもよい。即ち、第1ロボット30及び第2ロボット40は、不定形物OBを挟み込むのではなく、第1ロボット30が不定形物OBを支持する側面の隣の側面を第2ロボット40が支持してもよい。
【0073】
例えば、第2ロボット制御部201は、第1ロボットコントローラ10から受信した不定形物データと、第2ロボット制御プログラムと、に基づいて、第2ロボット40を制御する。第2ロボット制御部201は、第1ロボットコントローラ10から受信した不定形物データが示す不定形物OBの位置及び形状を、第2ロボット40を基準とした座標に変換する。第2ロボット制御部201は、当該変換後の不定形物データを、第2データ記憶部200に記録する。第1ロボットコントローラ10が第2移動経路MP2を計算する場合には、第2ロボットコントローラ20は、第1ロボットコントローラ10から、第2移動経路データを受信する。第2ロボット制御部201は、第1ロボットコントローラ10から、受信した第2移動経路データに基づいて、第2ロボット40を制御する。
【0074】
例えば、第2ロボット制御部201は、座標が変換された不定形物データと、第2ロボット制御プログラムと、に基づいて、第2移動経路MP2と、第2移動経路MP2上における第2吸着器41の向きを決定する。第2吸着器41のオン/オフのタイミングは、予め指定されていてもよい。例えば、第2ロボット制御部201は、予め指定された第2吸着器41のオン/オフのタイミングを取得する。第2ロボット制御部201は、第2吸着器41が不定形物OBに接触したタイミング、又は、第2吸着器41が不定形物OBに触れた後(例えば、第2吸着器41が停止して所定時間が経過した後)に、第2吸着器41をオンにしてもよい。第2ロボット制御部201は、第2吸着器41が当該計算された第2移動経路MP2上を当該計算された向きで移動し、第2吸着器41による吸引が当該計算されたタイミングでオン/オフするように、第2ロボット40を制御する。
【0075】
例えば、第2ロボット制御部201は、座標が変換された不定形物データ、第1移動経路MPを示す第1移動経路データ、及び第2ロボット制御プログラムに基づいて、第2移動経路MP2を計算してもよい。第1移動経路データは、第1ロボットコントローラ10から第2ロボットコントローラ20に適宜送信されるものとする。例えば、第2ロボット制御部201は、不定形物データに基づいて、不定形物OBの厚みdを特定する。第2ロボット制御部201は、第1移動経路データに基づいて、第1支持位置P11を特定する。第2ロボット制御部201は、第1支持位置P11から、第1支持位置P11から見て不定形物OBの反対側に厚みdだけ離れた位置を、第2支持位置P21として決定する。
【0076】
例えば、第2ロボット制御部201は、第1移動経路データが示す第1移動経路MPのうち、第1支持位置P11から第1目標位置P12までの経路から厚みdだけ離れた経路を、第2支持位置P21から第2目標位置P22までの経路として決定する。第2ロボット制御部201は、第2初期位置P20から第2支持位置P21までの経路と、第2支持位置P21から第2目標位置P22までの経路と、を合わせた経路を、第2移動経路MP2として決定する。
【0077】
なお、第1移動経路データには、第1ロボット30の移動速度が示されていてもよい。第2ロボット制御部201は、第1移動経路データに基づいて、第1支持位置P11から第1目標位置P12までの第1ロボット30の移動速度を特定する。第2ロボット制御部201は、第2ロボット40が第2目標位置P22に到着する到着時間と、、第1ロボット10が第1目標位置P12に到着する到着時間と、が一緒になるように、第2支持位置P21から第2目標位置P22までの第2ロボット40の移動速度を決定してもよい。なお、第2ロボット制御部201は、第2支持位置P21から第2目標位置P22までの第2ロボット40の移動速度が、第1支持位置P11から第1目標位置P12までの第1ロボット30の移動速度と同じ速度になるように、第2ロボット40の移動速度を決定してもよい。
【0078】
また、第1移動経路データには、第1目標位置P12における第1吸着器31の回転方向及び回転速度が示されていてもよい。第2ロボット制御部201は、第1移動経路データに基づいて、第1目標位置P12における第1吸着器31の回転方向及び回転速度を特定する。第2ロボット制御部201は、第2目標位置P22における第2吸着器41の回転速度が、第1目標位置P12における第1吸着器31の回転速度と同じになるように、第2目標位置P22における第2吸着器41の回転速度を決定してもよい。なお、第1ロボット30から見たときの第1吸着器31の回転方向と、第2ロボット40から見たときの第2吸着器41の回転方向と、は逆になる。
【0079】
なお、第2ロボットコントローラ20ではなく、第1ロボットコントローラ10が、第2移動経路MP2を計算してもよい。この場合、第2ロボット制御プログラムのうち、第2移動経路MP2を計算するコードと同様のコードが、第1ロボット制御プログラム又は他のプログラムに含まれていてもよい。第1ロボットコントローラ10は、第1ロボット制御プログラム又は他のプログラムに基づいて、第2移動経路MP2を計算する。第1ロボットコントローラ10は、第2ロボット40の移動速度と、第2目標位置P22における第2吸着器41の回転方向及び回転速度と、を決定する。
【0080】
例えば、第1ロボットコントローラ10は、第2移動経路MP2と、第2ロボット40の移動速度と、第2目標位置P22における第2吸着器41の回転方向及び回転速度と、を示す第2移動経路データを、第2ロボットコントローラ20に送信する。第2ロボットコントローラ20は、第2移動経路データを受信する。第2ロボット制御部201は、第1ロボットコントローラ10により生成された第2移動経路データに基づいて、第2ロボット40を制御してもよい。上記とは逆に、第2ロボットコントローラ20が、第1移動経路MP1等を計算し、第1ロボットコントローラ10に対し、第1移動経路MP1等の計算結果を示すデータを送信してもよい。
【0081】
なお、第1ロボットコントローラ10は、第1ロボット30が第1支持位置P11で不定形物OBを支持した場合に(第1吸着器31が不定形物OBの吸着を完了した場合に)、第2ロボットコントローラ20に対し、第1ロボット30による支持が完了したことを示す第1支持完了通知を送信する。第2ロボットコントローラ20は、第2ロボット40が第2支持位置P21で不定形物OBを支持した場合に(第2吸着器41が不定形物OBの吸着を完了した場合に)、第1ロボットコントローラ10に対し、第2ロボット40による支持が完了したことを示す第2支持完了通知を送信する。
【0082】
その後、第1ロボットコントローラ10及び第2ロボットコントローラ20の間で、互いの動作の同期が取られることによって、第1ロボット30及び第2ロボット40が、それぞれ第1移動経路MP1及び第2移動経路MP2上を移動する。例えば、第2ロボット制御部201は、第1吸着器31及び第2吸着器41の互いの位置関係が一定に保たれるように、第2ロボット40の移動を制御する。同様に、第1ロボット制御部101は、第1吸着器31及び第2吸着器41の互いの位置関係が一定に保たれるように、第1ロボット30の移動を制御する。
【0083】
例えば、第2ロボット制御部201は、第2挟み込み制御部202を含む。第2挟み込み制御部202は、第2ロボット40が、第1ロボット30との間で不定形物OBを挟み込んで支持するように、第2ロボット40を制御する。本実施形態では、第2支持位置P21が、不定形物OBにおける第1支持位置P11の反対側となるように決定される。このため、第2挟み込み制御部202は、第1支持位置P11の反対側となるように第2支持位置P21を計算し、当該計算された第2支持位置P21に第2吸着器41を移動させることによって、第2ロボット40に、第2ロボット40との間で不定形物OBを挟み込んで支持させる。その後の搬送の流れは、先述した通りである。
【0084】
なお、第1ロボットコントローラ10及び第2ロボットコントローラ20の間で、第1支持位置P11及び第2支持位置P21が互いに共有されてもよい。また、第2挟み込み制御部202は、第2ロボット40が第2支持位置P21に移動した場合に、吸着力を検出するセンサによって、第1ロボット30及び第2ロボット40による不定形物OBの吸着力を検出し、当該吸着力に基づいて、第2ロボット40を不定形物OBの方に更に前進させてもよい。第1ロボットコントローラ10及び第2ロボットコントローラ20の間で、不定形物OBの挟み込みが完了したことが共有された後に、第1支持位置P11及び第2支持位置P21以降の移動が制御される。
【0085】
なお、第2ロボット制御部201は、第2挟み込み制御部202を含まなくてもよい。この場合、第2ロボット制御部201は、第1ロボット30が不定形物OBに触れる前に、第2ロボット40が第1支持位置P11に移動するように、第2ロボット40を制御してもよい。不定形物OBは、第2挟み込み制御部202の制御によって、第1ロボット30及び第2ロボット40によって挟み込まれてもよい。先述したように、不定形物OBは、第1ロボット30及び第2ロボット40によって挟み込まれなくてもよい。
【0086】
[4.ロボット制御システムで実行される処理]
図9は、ロボット制御システム1で実行される処理の一例を示す図である。CPU11,21が、記憶部12,22に記憶されたプログラムを実行することによって、
図9の処理が実行される。
図9の処理は、不定形物OBを梱包する梱包資材の開梱が完了した後に実行される。梱包資材が開梱されたことは、任意の方法によって検出可能であり、例えば、第1ロボット30が梱包資材を切断する場合には、第1ロボット30による切断の動作が完了し、梱包資材の少なくとも一部が除去された後に、
図9の処理が実行される。
【0087】
図9に示すように、第1ロボットコントローラ10は、第1ロボット30がカメラ32で不定形物OBを撮影するように、第1ロボット30を制御する(S1)。第1ロボットコントローラ10は、カメラ32により生成された撮影画像と、形状認識プログラムと、に基づいて、不定形物OBの位置及び形状を認識する(S2)。第1ロボットコントローラ10は、S2で認識された不定形物OBの位置及び形状と、ロボット制御プログラムと、に基づいて、第1移動経路MP1を計算する(S3)。
【0088】
第1ロボットコントローラ10は、S2で認識された不定形物OBの位置及び形状と、第1ロボット制御プログラムと、に基づいて、第2移動経路MP2を計算する(S4)。S4では、第1ロボットコントローラ10は、不定形物データの座標を、第2ロボット40を基準とした座標に変換し、変換後の不定形物データ、第1移動経路データ、及び第1ロボット制御プログラムに基づいて、第2移動経路MP2を計算する。第1ロボットコントローラ10は、第2ロボットコントローラ20に対し、S4で計算した第2移動経路MP2を示す第2移動経路データを送信する(S5)。S5において、第1ロボットコントローラ10は、不定形物データも一緒に送信してもよい。第2ロボットコントローラ20は、第1ロボットコントローラ10から、第2移動経路データを受信する(S6)。S6において、第2ロボットコントローラ20は、不定形物データも一緒に受信してもよい。
【0089】
第1ロボットコントローラ10は、S3で計算した第1移動経路MP1に基づいて、第1ロボット30が不定形物OBの一部を支持して搬送するように、第1ロボット30を制御する(S7)。第2ロボットコントローラ20は、S6で受信した第2移動経路データが示す第2移動経路MP2に基づいて、第2ロボット40が、不定形物OBのうち、第1ロボット30が支持する部分とは異なる部分を支持して搬送するように、第2ロボット40を制御する(S8)。S7及びS8の処理では、第1ロボットコントローラ10及び第2ロボットコントローラ20が、互いに通信し、第1ロボット30及び第2ロボット40が互いに同期して不定形物OBを搬送するように、第1ロボット30及び第2ロボット40を制御する。以降のS9~S12の処理でも、第1ロボットコントローラ10及び第2ロボットコントローラ20が、互いに通信し、第1ロボット30及び第2ロボット40の動作を同期させる。
【0090】
第1ロボットコントローラ10は、不定形物OBが格納容器Cの上方に移動すると、不定形物OBの開口部が下方を向くように、第1吸着器31を回転させる(S9)。第2ロボットコントローラ20は、不定形物OBが格納容器Cの上方に移動すると、不定形物OBの開口部が下方を向くように、第2吸着器41を回転させる(S10)。S9及びS10の処理によって、不定形物OBの中身が格納容器Cの中に落ちる。第1ロボットコントローラ10は、第1吸着器31による吸引を停止するように、第1ロボット30を制御する(S11)。その後、第1ロボット30は、第1初期位置P10に移動する。第2ロボットコントローラ20は、第2ロボット40が不定形物OBを捨てるように、第2ロボット40を制御し(S12)、本処理は終了する。その後、第2ロボット40は、第2初期位置P20に移動する。
【0091】
[5.実施形態のまとめ]
本実施形態のロボット制御システム1は、第1ロボット30が、所定の場所に置かれた不定形物OBの一部を支持するように、第1ロボット30を制御する。ロボット制御システム1は、第2ロボット40が、第1ロボット30と協働して、不定形物OBにおける上記一部とは異なる部分を支持して不定形物OBを搬送するように、第2ロボット40を制御する。第2ロボット40が、第1ロボット30と協働して、所定の場所に置かれた不定形物OBを支持して搬送するので、ロボット制御システム1は、安定した状態で不定形物OBを支持して搬送できる。例えば、不定形物OBが1台のロボットだけで支持されて搬送される場合には、搬送中に不定形物OBが落ちたり不定形物OBのバランスが崩れたりする可能性があるが、第1ロボット30及び第2ロボット40が不定形物OBを支持して搬送するので、搬送中に不定形物OBが落ちたり不定形物OBのバランスが崩れたりする可能性を低減できる。
【0092】
また、ロボット制御システム1は、第2ロボット40が、第1ロボット30との間で不定形物OBを挟み込んで支持するように、第2ロボット40を制御する。第1ロボット30及び第2ロボット40の間で不定形物OBが挟み込まれるので、ロボット制御システム1は、より安定した状態で不定形物OBを支持できる。
【0093】
また、第1ロボット30及び第2ロボット40の少なくとも一方のロボットは、不定形物OBを吸着する吸着器を有する。ロボット制御システム1は、不定形物OBを吸着する吸着器によって、より安定した状態で不定形物OBを支持できる。例えば、本実施形態のように、第1ロボット30が第1吸着器31を有し、かつ、第2ロボット40が第2吸着器41を有する場合には、搬送中に不定形物OBが落ちたり不定形物OBのバランスが崩れたりする可能性を、より低減できる。
【0094】
また、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが有する吸着器は、不定形物OBを吸引する吸引機である。ロボット制御システム1は、不定形物OBを吸引する吸引機によって、より安定した状態で不定形物OBを支持できる。例えば、本実施形態のように、第1ロボット30及び第2ロボット40の両方が吸引機を有する場合には、搬送中に不定形物OBが落ちたり不定形物OBのバランスが崩れたりする可能性を、より低減できる。
【0095】
[6.変形例]
本開示は、以上に説明した実施形態に限定されない。本開示は、本開示の趣旨を逸脱しない範囲で、適宜変更可能である。
【0096】
図10は、変形例のロボット制御システム1で実現される機能の一例を示す図である。例えば、第1ロボットコントローラ10は、第1吸着圧取得部103、第1前進制御部104、第2吸着圧取得部105、第1速度制御部106、第1開始制御部107、第1吸着力制御部108、第1種類特定部109、第1重心特定部110、第1支持位置支持部111、第1サイズ特定部112、第1サイズ位置支持部113、第1姿勢制御部114、第1向き制御部115、及び第1後工程位置制御部116を含む。これらの各機能は、CPU11により実現される。
【0097】
例えば、第2ロボットコントローラ20は、第2吸着圧取得部203、第2前進制御部204、第1吸着圧取得部205、第2速度制御部206、位置制御部207、第2開始制御部208、第2吸着力制御部209、第2種類特定部210、第2重心特定部211、第2支持位置支持部212、第2サイズ特定部213、第2サイズ位置支持部214、第2姿勢制御部215、第2向き制御部216、及び第2後工程位置制御部217を含む。これらの各機能は、CPU21により実現される。
【0098】
[6-1.変形例1]
例えば、第1ロボット30及び第2ロボット40のうちの少なくとも一方のロボットは、吸着器の吸着圧を検出する吸着圧検出器を有してもよい。変形例1では、第1ロボット30及び第2ロボット40の両方が吸着圧検出器を有する場合を説明するが、第1ロボット30又は第2ロボット40の何れか一方のみが吸着圧検出器を有してもよい。
【0099】
図11は、変形例1におけるロボット制御システム1のハードウェア構成の一例を示す図である。
図11のように、第1ロボット30は、第1吸着器31の吸着圧である第1吸着圧を検出する第1吸着圧検出器33を含む。例えば、第1吸着圧検出器33は、圧力センサである。第1吸着器31が吸引機である場合には、第1吸着圧検出器33は、真空計であってもよい。第1吸着圧検出器33は、第1吸着器31に配置される。即ち、第1吸着圧検出器33は、第1ロボット30の先端に配置される。
【0100】
例えば、第2ロボット40は、第2吸着器41の吸着圧である第2吸着圧である第2吸着圧を検出する第2吸着圧検出器42を含む。第2吸着圧検出器42のハードウェア構成は、第1吸着圧検出器33と同様であってよい。第2吸着圧検出器42は、第2吸着器41に配置される。即ち、第2吸着圧検出器42は、第2ロボット40の先端に配置される。以降、第1吸着圧検出器33及び第2吸着圧検出器42を区別しないときは、単に吸着圧検出器という。同様に、第1吸着器31及び第2吸着器41を区別しなときは、単に吸着器という。
【0101】
変形例1の第1ロボットコントローラ10は、第1吸着圧取得部103及び第1前進制御部104を含む。第2ロボットコントローラ20は、第2吸着圧取得部203及び第2前進制御部204を含む。第1吸着圧取得部103及び第2吸着圧取得部203は、吸着圧を取得する吸着圧取得部の一例である。変形例1のロボット制御システム1は、2つの吸着圧取得部を含むことになる。
【0102】
第1前進制御部104及び第2前進制御部204は、吸着圧が閾値以上になるまで、吸着器が不定形物OBに向けて前進するように、吸着圧検出器を有する少なくとも一方のロボットを制御する前進制御部の一例である。変形例1のロボット制御システム1は、2つの前進制御部を含むことになる。即ち、変形例1では、第1ロボット30が第1吸着圧検出器33を含み、かつ、第2ロボット40が第2吸着圧検出器42を含むので、ロボット制御システム1が第1前進制御部104及び第2前進制御部204を含むものとする。
【0103】
なお、第1ロボット30が第1吸着圧検出器33を含み、かつ、第2ロボット40が第2吸着圧検出器42を含まない場合には、ロボット制御システム1は、第2前進制御部204を含まなくてもよい。この場合、第1前進制御部104が、前進制御部に相当する。第1ロボット30が第1吸着圧検出器33を含まず、かつ、第2ロボット40が第2吸着圧検出器42を含む場合には、ロボット制御システム1は、第1前進制御部104を含まなくてもよい。この場合、第2前進制御部204が、前進制御部に相当する。
【0104】
例えば、第1吸着圧取得部103は、第1吸着圧検出器33により検出された第1吸着圧を取得する。第1前進制御部104は、第1吸着圧が第1閾値以上になるまで、第1吸着器31が不定形物OBに向けて前進するように、第1ロボット30を制御する。第1前進制御部104は、第1吸着圧が第1閾値以上になったか否かを、繰り返し判定する。第1閾値は、予め定められた値であればよく、ユーザが指定してもよい。
【0105】
例えば、第1前進制御部104は、第1吸着圧が第1閾値未満であると判定した場合、第1初期位置P10から第1支持位置P11に対する方向に第1吸着器31が移動するように(現在の移動方向を保ったまま第1ロボット30が前進するように)、第1ロボット30を制御する。第1前進制御部104は、第1吸着圧が第1閾値以上であると判定した場合、第1吸着器31が移動を停止するように、第1ロボット30を制御する。即ち、第1前進制御部104は、第1吸着圧が第1閾値以上になると判定するまで、第1初期位置P10から第1支持位置P11に対する方向に第1吸着器31が移動するように、第1ロボット30を制御する。
【0106】
なお、変形例1では、第1ロボット30が第1支持位置P11に到達しても、第1吸着圧が第1閾値以上にならなければ、第1前進制御部104は、第1初期位置P10から第1支持位置P11に対する方向に、第1吸着器31を移動させるものとする。逆に、第1ロボット30が第1支持位置P11に到達しなかったとしても、第1吸着器31が第1閾値以上になれば、第1前進制御部104は、第1吸着器31を停止させるものとする。第1移動経路MP1は、第1ロボット30が前進を停止した位置に応じて更新される。
【0107】
例えば、第2吸着圧取得部203は、第2吸着圧検出器42により検出された第2吸着圧を取得する。第2前進制御部204は、第2吸着圧が第2閾値以上になるまで、第2吸着器41が不定形物OBに向けて前進するように、第2ロボット40を制御する。第2前進制御部204は、第2吸着圧が第2閾値以上になったか否かを、繰り返し判定する。第2閾値は、予め定められた値であればよく、ユーザが指定してもよい。
【0108】
例えば、第2前進制御部204は、第2吸着圧が第2閾値未満であると判定した場合、第2初期位置P20から第2支持位置P21に対する方向に第2吸着器41が移動するように(現在の移動方向を保ったまま第2ロボット40が前進するように)、第2ロボット40を制御する。第2前進制御部204は、第2吸着圧が第2閾値以上であると判定した場合、第2吸着器41が移動を停止するように、第2ロボット40を制御する。即ち、第2前進制御部204は、第2吸着圧が第2閾値以上になると判定するまで、第2初期位置P20から第2支持位置P21に対する方向に第2吸着器41が移動するように、第2ロボット40を制御する。
【0109】
なお、変形例1では、第2ロボット40が第2支持位置P21に到達しても、第2吸着圧が第2閾値以上にならなければ、第2前進制御部204は、第2初期位置P20から第2支持位置P21に対する方向に、第2吸着器41を移動させるものとする。逆に、第2ロボット40が第2支持位置P21に到達しなかったとしても、第2吸着器41が第2閾値以上になれば、第2前進制御部204は、第2吸着器41を停止させるものとする。第2移動経路MP2は、第2ロボット40が前進を停止した位置に応じて更新される。
【0110】
変形例1のロボット制御システム1は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、吸着器の吸着圧を検出する吸着圧検出器を有する。ロボット制御システム1は、吸着圧が閾値以上になるまで、吸着器が不定形物OBに向けて前進するように、当該少なくとも一方のロボットを制御する。吸着圧が閾値以上になるまで、吸着器が不定形物OBに向けて前進するので、ロボット制御システム1は、吸着器を、より確実に不定形物OBに吸着させることができる。
【0111】
[6-2.変形例2]
例えば、第1吸着器31及び第2吸着器41は、互いに同時に不定形物OBの吸着を完了するとは限らない。ここでの吸着の完了とは、変形例1で説明した吸着圧が閾値以上になることである。第1吸着器31が、第2吸着器41よりも先に、吸着を完了することがある。この場合、第2吸着器41の移動速度が遅くなるようにしてもよい。逆に、第2吸着器41が、第1吸着器31よりも先に、吸着を完了することがある。この場合、第1吸着器31の移動速度が遅くなるようにしてもよい。
【0112】
変形例2の第1ロボット30は、変形例1と同様に、第1吸着器31と、第1吸着器31の吸着圧である第1吸着圧を検出する第1吸着圧検出器33と、を有する。第2ロボット40は、変形例2と同様に、第2吸着器41と、第2吸着器41の吸着圧である第2吸着圧を検出する第2吸着圧検出器42と、を有する。
【0113】
変形例2の第1ロボット制御部101は、第1吸着圧取得部103、第2吸着圧取得部105、及び第1速度制御部106を含む。第1吸着圧取得部103は、変形例1と同様である。第2吸着圧取得部105は、第2吸着圧を取得する。例えば、第2吸着圧取得部105は、第2ロボットコントローラ20から、第2吸着圧を取得する。第2吸着圧取得部105は、第2ロボットコントローラ20に対し、第2吸着圧を要求する。第2ロボットコントローラ20は、第2吸着圧の要求を受け付けると、第1ロボットコントローラ10に対し、第2吸着圧を送信する。第2吸着圧取得部105は、第2ロボットコントローラ20から、最新の第2吸着圧を繰り返し取得する。なお、第2吸着圧取得部105は、第2ロボットコントローラ20からではなく、他の装置から、又は、第2ロボット40から直接的に第2吸着圧を取得してもよい。この場合、第1ロボットコントローラ10は、当該他の装置又は第2ロボット40に接続されているものとする。
【0114】
第1速度制御部106は、第1吸着圧が第1閾値以上になった場合には、第1吸着器31が移動を停止し、第1吸着圧が第1閾値以上になる前に、第2吸着圧が第2閾値以上になった場合には、第1吸着器31の移動速度が遅くなるように、第1ロボット30を制御する。例えば、第1速度制御部106は、第1吸着圧が第1閾値以上になったか否かを判定する。第1速度制御部106は、第2吸着圧が第2閾値以上になったか否かを判定する。第1速度制御部106は、最新の第1吸着圧及び第2吸着圧に基づいて、これらの判定を繰り返し実行する。
【0115】
例えば、第1速度制御部106は、第2吸着圧が第2閾値未満であると判定され、かつ、第1吸着圧が第1閾値以上であると判定された場合には、第1吸着器31が移動を停止するように、第1ロボット30を制御する。第1速度制御部106は、第2吸着圧が第2閾値以上であると判定され、かつ、第1吸着圧が第1閾値未満であると判定された場合には、第1吸着器31の移動速度が、それよりも前の移動速度よりも遅くなるように、第1ロボット30を制御する。この場合の移動速度は、予め定められた移動速度であればよい。その後、第1速度制御部106は、第1吸着圧が第1閾値以上であると判定された場合には、第1吸着器31が移動を停止するように、第1ロボット30を制御する。
【0116】
第2ロボット制御部201は、第2吸着圧取得部203、第1吸着圧取得部205、及び第2速度制御部206を含む。第2吸着圧取得部203は、変形例1と同様である。第1吸着圧取得部205は、第1吸着圧を取得する。例えば、第1吸着圧取得部205は、第1ロボットコントローラ10から、第1吸着圧を取得する。第1吸着圧取得部205は、第1ロボットコントローラ10に対し、第1吸着圧を要求する。第1ロボットコントローラ10は、第1吸着圧の要求を受け付けると、第2ロボットコントローラ20に対し、第1吸着圧を送信する。第1吸着圧取得部205は、第1ロボットコントローラ10から、最新の第1吸着圧を繰り返し取得する。なお、第1吸着圧取得部205は、第1ロボットコントローラ10からではなく、他の装置から、又は、第1ロボット30から直接的に第1吸着圧を取得してもよい。この場合、第2ロボットコントローラ20は、当該他の装置又は第1ロボット30に接続されているものとする。
【0117】
第2速度制御部206は、第2吸着圧が第2閾値以上になった場合には、第2吸着器41が移動を停止し、第2吸着圧が第2閾値以上になる前に、第1吸着圧が第1閾値以上になった場合には、第2吸着器41の移動速度が遅くなるように、第2ロボット40を制御する。例えば、第2速度制御部206は、第1吸着圧が第1閾値以上になったか否かを判定する。第2速度制御部206は、第2吸着圧が第2閾値以上になったか否かを判定する。第2速度制御部206は、最新の第1吸着圧及び第2吸着圧に基づいて、これらの判定を繰り返し実行する。
【0118】
例えば、第2速度制御部206は、第1吸着圧が第1閾値未満であると判定され、かつ、第2吸着圧が第2閾値以上であると判定された場合には、第2吸着器41が移動を停止するように、第2ロボット40を制御する。第2速度制御部206は、第1吸着圧が第1閾値以上であると判定され、かつ、第2吸着圧が第2閾値未満であると判定された場合には、第2吸着器41の移動速度が、それよりも前の移動速度よりも遅くなるように、第2ロボット40を制御する。この場合の移動速度は、予め定められた移動速度であればよい。その後、第2速度制御部206は、第2吸着圧が第2閾値以上であると判定された場合には、第2吸着器41が移動を停止するように、第2ロボット40を制御する。
【0119】
変形例2のロボット制御システム1は、第1吸着圧が第1閾値以上になった場合には、第1吸着器31が移動を停止し、第1吸着圧が第1閾値以上になる前に、第2吸着圧が第2閾値以上になった場合には、第1吸着器31の移動速度が遅くなるように、第1ロボット30を制御する。これにより、ロボット制御システム1は、第1吸着器31が十分に吸着したにも関わらず不定形物OBの方に移動してしまい、不定形物OBが動いてしまうことを防止できる。更に、第2吸着器41の方が先に吸着を完了した場合に、第1吸着器31が不定形物OBに勢いよく当たると不定形物OBが変形したり動いたりする可能性があるが、第1吸着器31が不定形物OBの方にゆっくりと近づくことによって、このような可能性を低減できる。
【0120】
また、ロボット制御システム1は、第2吸着圧が第2閾値以上になった場合には、第2吸着器41が移動を停止し、第2吸着圧が第2閾値以上になる前に、第1吸着圧が第1閾値以上になった場合には、第2吸着器41の移動速度が遅くなるように、第2ロボット40を制御する。これにより、ロボット制御システム1は、第2吸着器41が十分に吸着したにも関わらず不定形物OBの方に移動してしまい、不定形物OBが動いてしまうことを防止できる。更に、第1吸着器31の方が先に吸着を完了した場合に、第2吸着器41が不定形物OBに勢いよく当たると不定形物OBが変形したり動いたりする可能性があるが、第2吸着器41が不定形物OBの方にゆっくりと近づくことによって、このような可能性を低減できる。
【0121】
[6-3.変形例3]
例えば、第2ロボット制御部201は、第1ロボット30が不定形物OBを支持する第1支持位置P11に基づいて、第2ロボット40が不定形物OBを支持する第2支持位置P21を決定する位置制御部207を有してもよい。例えば、第2ロボット制御部201は、第2支持位置P21が第1支持位置P11に合うように、第2支持位置P21を決定する。第2支持位置P21が第1支持位置P11に合うとは、第1支持位置P11及び第2支持位置P21の相対的な位置関係が所定の関係になることである。第1支持位置P11に基づいて第2支持位置P21を計算することは、第2支持位置P21を第1支持位置P11に合わせることに相当する。位置制御部207の制御は、第2ロボット制御部201の制御として実施形態でも多少説明した内容を含む。
【0122】
例えば、位置制御部207は、第1ロボットコントローラ10から第1支持位置P11を取得し、第1支持位置P11との相対的な位置関係が所定の関係になるように、第2支持位置P21を決定する。
図9の例であれば、位置制御部207は、第1支持位置P11から、不定形物OBの厚みdの分だけ不定形物OBの反対側に離れた位置を、第2支持位置P21として決定する。位置制御部207は、当該位置から多少離れた位置を、第2支持位置P21として決定してもよい。第2支持位置P21が決定された後の第2ロボット40の制御は、実施形態と同様であってよい。
【0123】
変形例3のロボット制御システム1は、第1支持位置P11に基づいて、第2支持位置P21を決定する。ロボット制御システム1は、第1支持位置P11に基づいて第2支持位置P21を決定するので、より安定した状態で不定形物OBを支持できる。
【0124】
[6-4.変形例4]
例えば、ロボット制御システム1は、吸着器が不定形物OBに触れてから、吸着器による吸着を開始させる開始制御部を有してもよい。変形例4では、第1ロボットコントローラ10が第1開始制御部107を含み、第2ロボットコントローラ20が第2開始制御部208を含む。第1開始制御部107及び第2開始制御部208は、開始制御部の一例である。第1ロボットコントローラ10が第1開始制御部107を含まずに、第2ロボットコントローラ20が第2開始制御部208を含んでもよい。逆に、第2ロボットコントローラ20が第2開始制御部208を含まずに、第1ロボットコントローラ10が第1開始制御部107を含んでもよい。
【0125】
例えば、第1開始制御部107は、第1吸着器31が不定形物OBに触れたか否かを判定する。変形例4では、第1吸着器31が接触センサを有し、第1開始制御部107は、第1吸着器31の接触センサの検出信号に基づいて、第1吸着器31が不定形物OBに触れたか否かを判定する。第1開始制御部107は、他の方法によって、第1吸着器31が不定形物OBに触れたか否かを判定してもよい。例えば、第1開始制御部107は、第1ロボット30内のトルクセンサが検出したトルクの変化に基づいて、第1吸着器31が不定形物OBに触れたか否かを判定してもよい。他にも例えば、第1開始制御部107は、カメラ32により生成された撮影画像を画像解析することによって、第1吸着器31が不定形物OBに触れたか否かを判定してもよい。
【0126】
例えば、第1開始制御部107は、第1吸着器31が不定形物OBに触れたと判定されない場合には、第1吸着器31による吸着を開始しない。第1開始制御部107は、第1吸着器31が不定形物OBに触れたと判定された場合に、第1吸着器31による吸着を開始する。第1開始制御部107は、第1吸着器31が不定形物OBに触れたと判定された場合に、第1吸着器31に対し、吸引をオンにする旨の信号を送信する。第1吸着器31は、当該信号を受信すると、吸引を開始する。第1吸着器31が吸引を開始した後の第1ロボット制御部101の処理は、実施形態と同様であってよい。
【0127】
例えば、第2開始制御部208は、第2吸着器41が不定形物OBに触れたか否かを判定する。変形例4では、第2吸着器41が接触センサを有し、第2開始制御部208は、第2吸着器41の接触センサの検出信号に基づいて、第2吸着器41が不定形物OBに触れたか否かを判定する。第2開始制御部208は、他の方法によって、第2吸着器41が不定形物OBに触れたか否かを判定してもよい。例えば、第2開始制御部208は、第2ロボット40内のトルクセンサが検出したトルクの変化に基づいて、第2吸着器41が不定形物OBに触れたか否かを判定してもよい。他にも例えば、第2開始制御部208は、カメラ32により生成された撮影画像を画像解析することによって、第2吸着器41が不定形物OBに触れたか否かを判定してもよい。
【0128】
例えば、第2開始制御部208は、第2吸着器41が不定形物OBに触れたと判定されない場合には、第2吸着器41による吸着を開始しない。第2開始制御部208は、第2吸着器41が不定形物OBに触れたと判定された場合に、第2吸着器41による吸着を開始する。第2開始制御部208は、第2吸着器41が不定形物OBに触れたと判定された場合に、第2吸着器41に対し、吸引をオンにする旨の信号を送信する。第2吸着器41は、当該信号を受信すると、吸引を開始する。第2吸着器41が吸引を開始した後の第2ロボット制御部201の処理は、実施形態と同様であってよい。
【0129】
変形例4のロボット制御システム1は、吸着器が不定形物OBに触れてから、吸着器による吸着を開始させる。吸着器が不定形物OBに触れてから吸着を開始するので、ロボット制御システム1は、より安定した状態で不定形物OBを支持できる。例えば、吸着器が不定形物OBに触れる前に吸引を開始すると、不定形物OBの表面にシワができてしまいうまく吸引できない可能性があるが、ロボット制御システム1は、このような可能性を抑止できる。
【0130】
[6-5.変形例5]
例えば、ロボット制御システム1は、不定形物OBに応じた吸着力となるように、吸着器を制御する吸着力制御部を有してもよい。変形例5では、第1ロボットコントローラ10が第1吸着力制御部108を含み、第2ロボットコントローラ20が第2吸着力制御部209を含む。第1吸着力制御部108及び第2吸着力制御部209は、吸着力制御部の一例である。第1ロボットコントローラ10が第1吸着力制御部108を含まずに、第2ロボットコントローラ20が第2吸着力制御部209を含んでもよい。逆に、第2ロボットコントローラ20が第2吸着力制御部209を含まずに、第1ロボットコントローラ10が第1吸着力制御部108を含んでもよい。
【0131】
例えば、第1吸着力制御部108は、後述の変形例6のように、不定形物OBの種類に応じた第1吸着力となるように、第1吸着器31を制御してもよい。変形例5では、変形例6以外の方法として、第1吸着力制御部108は、不定形物OBのサイズに応じた第1吸着力となるように、第1吸着器31を制御する場合を例に挙げる。第1吸着力制御部108は、カメラ32により撮影された撮影画像に基づいて、不定形物OBのサイズを特定してもよい。ユーザが入力した不定形物OBのサイズを示すサイズパラメータが第1データ記憶部100に記憶されている場合には、第1吸着力制御部108は、サイズパラメータに基づいて、不定形物OBのサイズを特定してもよい。
【0132】
例えば、第1吸着力制御部108は、不定形物OBのサイズが大きいほど、第1吸着力が強くなるように、第1吸着器31を制御する。不定形物OBのサイズと、第1吸着力と、の関係を示すデータは、第1データ記憶部100に記憶されているものとする。第1吸着力制御部108は、当該データに基づいて、第1吸着力を制御する。第1吸着力制御部108は、不定形物OBのサイズ以外にも、不定形物OBの位置、形状、又は素材に応じた第1吸着力となるように、第1吸着器31を制御してもよい。
【0133】
例えば、第2吸着力制御部209は、後述の変形例6のように、不定形物OBの種類に応じた第2吸着力となるように、第2吸着器41を制御してもよい。変形例5では、変形例6以外の方法として、第2吸着力制御部209は、不定形物OBのサイズに応じた第2吸着力となるように、第2吸着器41を制御する場合を例に挙げる。第2吸着力制御部209は、カメラ32により撮影された撮影画像に基づいて、不定形物OBのサイズを特定してもよい。ユーザが入力した不定形物OBのサイズを示すサイズパラメータが第2データ記憶部200に記憶されている場合には、第2吸着力制御部209は、サイズパラメータに基づいて、不定形物OBのサイズを特定してもよい。
【0134】
例えば、第2吸着力制御部209は、不定形物OBのサイズが大きいほど、第2吸着力が強くなるように、第2吸着器41を制御する。不定形物OBのサイズと、第2吸着力と、の関係を示すデータは、第2データ記憶部200に記憶されているものとする。第2吸着力制御部209は、当該データに基づいて、第2吸着力を制御する。第2吸着力制御部209は、不定形物OBのサイズ以外にも、不定形物OBの位置、形状、又は素材に応じた第2吸着力となるように、第2吸着器41を制御してもよい。
【0135】
変形例5のロボット制御システム1は、不定形物OBに応じた吸着力となるように、吸着器を制御する。吸着器が不定形物OBに応じた吸着力で不定形物OBを吸着するので、ロボット制御システム1は、不定形物OBに応じた最適な状態で、不定形物OBを支持できる。
【0136】
[6-6.変形例6]
例えば、変形例5のように、不定形物OBに応じた吸着力とする場合に、ロボット制御システム1は、不定形物OBの種類に応じた吸着力としてもよい。変形例6のロボット制御システム1は、不定形物OBの種類を特定する種類特定部を更に有する。例えば、第1ロボットコントローラ10が第1種類特定部109を含み、第2ロボットコントローラ20が第2種類特定部210を含む。第1種類特定部109及び第2種類特定部210は、種類制御部の一例である。第1ロボットコントローラ10が第1種類特定部109を含まずに、第2ロボットコントローラ20が第2種類特定部210を含んでもよい。逆に、第2ロボットコントローラ20が第2種類特定部210を含まずに、第1ロボットコントローラ10が第1種類特定部109を含んでもよい。
【0137】
例えば、ユーザが不定形物OBの種類を指定する場合には、ユーザが指定した種類を示す種類パラメータが第1データ記憶部100及び第2データ記憶部200に予め記憶されているものとする。第1種類特定部109は、種類パラメータに基づいて、不定形物OBの種類を特定する。第2種類特定部210は、種類パラメータに基づいて、不定形物OBの種類を特定する。
【0138】
なお、不定形物OBの種類の特定方法は、ユーザによる指定に限られない。例えば、第1種類特定部109は、カメラ32により生成された撮影画像を画像解析し、不定形物OBの種類を特定してもよい。第2種類特定部210は、カメラ32により生成された撮影画像を画像解析し、不定形物OBの種類を特定してもよい。第2種類特定部210は、自ら画像解析するのではなく、第1種類特定部109による特定結果を取得してもよい。
【0139】
変形例6の吸着力制御部は、不定形物OBの種類に応じた吸着力となるように、吸着器を制御する。変形例6では、第1吸着器31及び第2吸着器41の各々が吸引機なので、吸引機による吸引力が吸着力に相当する。吸引機以外の他の吸着器が利用される場合には、吸着力は、当該他の吸着器に応じたものであればよい。例えば、他の吸着器が吸盤である場合には、不定形物OBに対する吸盤の押し付け力が吸着力に相当する。他の吸着器がロボットハンドである場合には、ロボットハンドの把持力が吸着力に相当する。
【0140】
例えば、第1吸着力制御部108は、不定形物OBの種類に応じた第1吸着力となるように、第1吸着器31を制御する場合を例に挙げる。例えば、第1吸着力制御部108は、不定形物OBが第1の種類(例えば、紙袋)である場合には、不定形物OBが第2の種類(例えば、ビニール袋)である場合よりも第1吸着力が強くなるように、第1吸着器31を制御する。不定形物OBの種類と、第1吸着力と、の関係を示すデータは、第1データ記憶部100に記憶されているものとする。第1吸着力制御部108は、当該データに基づいて、第1吸着力を制御する。
【0141】
例えば、第2吸着力制御部209は、不定形物OBの種類に応じた第2吸着力となるように、第2吸着器41を制御する場合を例に挙げる。例えば、第2吸着力制御部209は、不定形物OBが第2の種類である場合には、不定形物OBが第2の種類である場合よりも第2吸着力が強くなるように、第2吸着器41を制御する。不定形物OBの種類と、第2吸着力と、の関係を示すデータは、第2データ記憶部200に記憶されているものとする。第2吸着力制御部209は、当該データに基づいて、第2吸着力を制御する。
【0142】
変形例6のロボット制御システム1は、不定形物OBの種類を特定する。ロボット制御システム1は、不定形物OBの種類に応じた吸着力となるように、吸着器を制御する。吸着器が、不定形物OBの種類に応じた吸着力で不定形物OBを吸着するので、ロボット制御システム1は、より安定した状態で不定形物OBを支持できる。
【0143】
[6-7.変形例7]
例えば、第1ロボット30及び第2ロボット40の少なくとも一方は、不定形物OBの重心に応じた支持位置を支持してもよい。例えば、支持位置は、不定形物OBの表面のうち、重心と同じ高さの位置である。支持位置は、不定形物OBの表面のうち、重心と同じ高さの位置から所定距離以内の位置である。
【0144】
変形例7のロボット制御システム1は、所定の場所に置かれた不定形物OBの重心を特定する重心特定部を含む。例えば、第1ロボットコントローラ10は、第1重心特定部110を含む。第2ロボットコントローラ20は、第2重心特定部211を含む。第1重心特定部110及び第2重心特定部211は、重心特定部の一例である。第1ロボットコントローラ10が第1重心特定部110を含まずに、第2ロボットコントローラ20が第2重心特定部211を含んでもよい。逆に、第2ロボットコントローラ20が第2重心特定部211を含まずに、第1ロボットコントローラ10が第1重心特定部110を含んでもよい。
【0145】
例えば、第1重心特定部110は、カメラ32により撮影された不定形物OBを示す撮影画像に基づいて、不定形物OBの重心を特定する。第1重心特定部110は、予め定められた方法で画像解析を実行し、不定形物OBの重心を特定すればよい。第1重心特定部110は、不定形物OBの中心点を、不定形物OBの重心として特定してもよい。第1重心特定部110は、種々の物体の重心を訓練データとして学習させた機械学習モデルに撮影画像を入力し、機械学習モデルから出力された重心を取得してもよい。第2重心特定部211は、第1重心特定部110と同じ方法で重心を特定してもよいし、第1重心特定部110により特定された重心を、第1ロボットコントローラ10から取得してもよい。なお、重心は、撮影画像ではなく、ユーザがパラメータとして指定してもよい。
【0146】
変形例7のロボット制御システム1は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、重心に応じた支持位置で不定形物OBを支持するように、当該少なくとも一方のロボットを制御する支持位置支持部を有する。例えば、第1ロボットコントローラ10は、第1支持位置支持部111を含む。第2ロボットコントローラ20は、第2支持位置支持部212を含む。第1支持位置支持部111及び第2支持位置支持部212は、支持位置支持部の一例である。第1ロボットコントローラ10が第1支持位置支持部111を含まずに、第2ロボットコントローラ20が第2支持位置支持部212を含んでもよい。逆に、第2ロボットコントローラ20が第2支持位置支持部212を含まずに、第1ロボットコントローラ10が第1支持位置支持部111を含んでもよい。
【0147】
図12は、重心に応じた第1支持位置P11及び第2支持位置P21の一例を示す図である。
図12の例では、重心をGとする。第1支持位置支持部111は、第1ロボット30側にある不定形物OBの面のうち、重心Gと同じ高さの位置を、第1支持位置P11として決定する。第2支持位置支持部212は、第2ロボット40側にある不定形物OBの面のうち、重心Gと同じ高さの位置を、第2支持位置P21として決定する。第1支持位置P11及び第2支持位置P21の決定方法が実施形態とは異なるが、第1支持位置P11及び第2支持位置P21が決定された後の第1ロボット30及び第2ロボット40の制御方法は、実施形態と同様であってよい。
【0148】
変形例7のロボット制御システム1は、所定の場所に置かれた不定形物OBの重心を特定する。ロボット制御システム1は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、重心に応じた支持位置で不定形物OBを支持するように、当該少なくとも一方のロボットを制御する。第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、重心に応じた支持位置で不定形物OBを支持するので、ロボット制御システム1は、より安定した状態で不定形物OBを支持できる。
【0149】
また、ロボット制御システム1は、カメラ32により撮影された不定形物OBを示す画像に基づいて、重心を特定する。ロボット制御システム1は、カメラ32によって不定形物OBの重心を確実に特定できる。
【0150】
[6-8.変形例8]
例えば、変形例7において、支持位置支持部は、少なくとも一方のロボットが、水平方向は重心に応じた第1水平位置で不定形物OBを支持し、垂直方向は所定の第1垂直位置で不定形物OBを支持するように、少なくとも一方のロボットを制御してもよい。変形例8では、変形例7と同様、第1支持位置支持部111及び第2支持位置支持部212が支持位置支持部の一例である場合を説明する。
【0151】
例えば、第1支持位置支持部111は、水平方向における重心の位置と、水平方向における第1支持位置P11と、が同じ又は所定距離以内になり、かつ、垂直方向における第1支持位置P11が所定の位置になるように、第1支持位置P11を決定する。第2支持位置支持部212は、水平方向における重心の位置と、水平方向における第2支持位置P21と、が同じ又は所定距離以内になり、かつ、垂直方向における第2支持位置P21が所定の位置になるように、第2支持位置P21を決定する。第1支持位置P11及び第2支持位置P21の決定方法が実施形態とは異なるが、第1支持位置P11及び第2支持位置P21が決定された後の第1ロボット30及び第2ロボット40の制御方法は、実施形態と同様であってよい。
【0152】
変形例8のロボット制御システム1は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、水平方向は重心に応じた第1水平位置で不定形物OBを支持し、垂直方向は所定の第1垂直位置で不定形物OBを支持するように、少なくとも一方のロボットを制御する。第1ロボット30及び第2ロボット40の少なくとも一方が、水平方向は不定形物OBの重心に応じた位置で不定形物OBを支持し、垂直方向は所定の位置で不定形物OBを支持するので、ロボット制御システム1は、より安定した状態で不定形物OBを支持できる。
【0153】
[6-9.変形例9]
例えば、変形例7において、支持位置支持部は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、垂直方向は重心よりも下の第2垂直位置で不定形物OBを支持するように、少なくとも一方のロボットを制御してもよい。変形例9では、変形例7と同様、第1支持位置支持部111及び第2支持位置支持部212が支持位置支持部の一例である場合を説明する。
【0154】
例えば、第1支持位置支持部111は、垂直方向における重心の位置から、垂直方向における第1支持位置P11に対する下方向の距離が所定距離未満となるように、第1支持位置P11を決定する。第2支持位置支持部212は、垂直方向における重心の位置から、垂直方向における第2支持位置P21に対する下方向の距離が所定距離未満となるように、第2支持位置P21を決定する。第1支持位置P11及び第2支持位置P21の決定方法が実施形態とは異なるが、第1支持位置P11及び第2支持位置P21が決定された後の第1ロボット30及び第2ロボット40の制御方法は、実施形態と同様であってよい。
【0155】
変形例9のロボット制御システム1は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、垂直方向は重心よりも下の第2垂直位置で不定形物OBを支持するように、当該少なくとも一方のロボットを制御する。第1ロボット30及び第2ロボット40の少なくとも一方が、垂直方向は不定形物OBの重心よりも下を支持するので、ロボット制御システム1は、より安定した状態で不定形物OBを支持できる。
【0156】
[6-10.変形例10]
例えば、第1ロボット30は、不定形物OBのサイズに応じた第1支持位置P11を支持してもよい。第2ロボット40は、不定形物OBのサイズに応じた第2支持位置P21を支持してもよい。
【0157】
ロボット制御システム1は、不定形物OBのサイズを特定するサイズ特定部を含む。例えば、第1ロボットコントローラ10が第1サイズ特定部112を含み、第2ロボットコントローラ20が第2サイズ特定部213を含む。第1サイズ特定部112及び第2サイズ特定部213は、サイズ特定部の一例である。第1ロボットコントローラ10が第1サイズ特定部112を含まずに、第2ロボットコントローラ20が第2サイズ特定部213を含んでもよい。逆に、第2ロボットコントローラ20が第2サイズ特定部213を含まずに、第1ロボットコントローラ10が第1サイズ特定部112を含んでもよい。
【0158】
例えば、ユーザが不定形物OBのサイズを指定する場合には、ユーザが指定したサイズを示すサイズパラメータが第1データ記憶部100及び第2データ記憶部200に予め記憶されているものとする。第1サイズ特定部112は、サイズパラメータに基づいて、不定形物OBのサイズを特定する。第2サイズ特定部213は、サイズパラメータに基づいて、不定形物OBのサイズを特定する。なお、不定形物OBのサイズの特定方法は、ユーザによる指定に限られない。例えば、第1サイズ特定部112は、カメラ32により生成された撮影画像を画像解析し、不定形物OBのサイズを特定してもよい。第2サイズ特定部213は、カメラ32により生成された撮影画像を画像解析し、不定形物OBのサイズを特定してもよい。第2サイズ特定部213は、自ら画像解析するのではなく、第1サイズ特定部112による特定結果を取得してもよい。
【0159】
ロボット制御システム1は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、サイズに応じたサイズ位置で不定形物OBを支持するように、少なくとも一方のロボットを制御するサイズ位置支持部を有する。例えば、第1ロボットコントローラ10が第1サイズ位置支持部113を含み、第2ロボットコントローラ20が第2サイズ位置支持部214を含む。第1サイズ位置支持部113及び第2サイズ位置支持部214は、サイズ位置支持部の一例である。第1ロボットコントローラ10が第1サイズ位置支持部113を含まずに、第2ロボットコントローラ20が第2サイズ位置支持部214を含んでもよい。逆に、第2ロボットコントローラ20が第2サイズ位置支持部214を含まずに、第1ロボットコントローラ10が第1サイズ位置支持部113を含んでもよい。
【0160】
例えば、第1サイズ位置支持部113は、不定形物OBのサイズが大きいほど、第1支持位置P11が高くなるように、第1支持位置P11を決定する。第2サイズ位置支持部214は、不定形物OBのサイズが大きいほど、第2支持位置P21が高くなるように、第2支持位置P21を決定する。第1支持位置P11及び第2支持位置P21の決定方法が実施形態とは異なるが、第1支持位置P11及び第2支持位置P21が決定された後の第1ロボット30及び第2ロボット40の制御方法は、実施形態と同様であってよい。
【0161】
変形例10のロボット制御システム1は、不定形物OBのサイズを特定する。ロボット制御システム1は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、サイズに応じたサイズ位置で不定形物OBを支持するように、当該少なくとも一方のロボットを制御する。ロボット制御システム1は、不定形物OBの性質に応じたサイズ位置で不定形物OBを支持できる。
【0162】
[6-11.変形例11]
例えば、第1ロボット30及び第2ロボット40は、不定形物OBの搬送中に、不定形物OBの重心に応じた姿勢になってもよい。変形例11のロボット制御システム1は、変形例7と同様の重心特定部を含む。変形例11でも、変形例7と同様に、第1ロボットコントローラ10が第1重心特定部110を含み、第2ロボットコントローラ20が第2重心特定部211を含む場合を例に挙げる。変形例7では、搬送前に不定形物OBの重心が特定される場合を説明したが、変形例11では、搬送中に不定形物OBの重心が特定される。重心の特定方法自体は、変形例7で説明した通りである。
【0163】
変形例11のロボット制御システム1は、搬送中における不定形物OBの重心に基づいて、不定形物OBを搬送中の第1ロボット30及び第2ロボット40の少なくとも一方の姿勢を制御する姿勢制御部を有する。例えば、第1ロボットコントローラ10は、第1姿勢制御部114を含む。第2ロボットコントローラ20は、第2姿勢制御部215を含む。第1姿勢制御部114及び第2姿勢制御部215は、姿勢制御部の一例である。第1ロボットコントローラ10が第1姿勢制御部114を含まずに、第2ロボットコントローラ20が第2姿勢制御部215を含んでもよい。逆に、第2ロボットコントローラ20が第2姿勢制御部215を含まずに、第1ロボットコントローラ10が第1姿勢制御部114を含んでもよい。
【0164】
例えば、不定形物OBの重心と、第1ロボット30の姿勢と、の関係を示すデータは、第1データ記憶部100に予め記憶されているものとする。当該データは、第1ロボット制御プログラムであってもよいし、第1ロボット制御プログラムとは異なるデータ(例えば、数式形式又はテーブル形式のデータ)であってもよい。第1姿勢制御部114は、当該データに基づいて、不定形物OBの重心に関連付けられた姿勢になるように、第1ロボット30を制御する。例えば、第1姿勢制御部114は、不定形物OBの重心が下であるほど、第1吸着器31が上方向を向くように、第1ロボット30を制御する。
【0165】
例えば、不定形物OBの重心と、第2ロボット40の姿勢と、の関係を示すデータは、第2データ記憶部200に予め記憶されているものとする。当該データは、第2ロボット制御プログラムであってもよいし、第2ロボット制御プログラムとは異なるデータ(例えば、数式形式又はテーブル形式のデータ)であってもよい。第2姿勢制御部215は、当該データに基づいて、不定形物OBの重心に関連付けられた姿勢になるように、第2ロボット40を制御する。例えば、第2姿勢制御部215は、不定形物OBの重心が下であるほど、第2吸着器41が上方向を向くように、第2ロボット40を制御する。
【0166】
変形例11のロボット制御システム1は、搬送中における不定形物OBの重心を特定する。ロボット制御システム1は、搬送中における不定形物OBの重心に基づいて、不定形物OBを搬送中の第1ロボット30及び第2ロボット40の少なくとも一方の姿勢を制御する。ロボット制御システム1は、搬送中の重心に応じた制御を実行できる。
【0167】
[6-12.変形例12]
例えば、ロボット制御システム1は、吸着器が不定形物OBに応じた向き(姿勢)で不定形物OBを吸着するように、第1ロボット30及び第2ロボット40の少なくとも一方を制御する向き制御部を有してもよい。変形例12では、第1ロボットコントローラ10が第1向き制御部115を含み、第2ロボットコントローラ20が第2向き制御部216を含む。第1向き制御部115及び第2向き制御部216は、向き制御部の一例である。第1ロボットコントローラ10が第1向き制御部115を含まずに、第2ロボットコントローラ20が第2向き制御部216を含んでもよい。逆に、第2ロボットコントローラ20が第2向き制御部216を含まずに、第1ロボットコントローラ10が第1向き制御部115を含んでもよい。
【0168】
図13は、第1吸着器31及び第2吸着器41の各々が不定形物OBに応じた向きで不定形物OBを吸着する様子の一例を示す図である。例えば、第1向き制御部115は、不定形物OBが縦長である場合には、第1吸着器31が縦長の状態で不定形物OBを吸着するように、第1吸着器31の姿勢を制御する。第1向き制御部115は、不定形物OBが横長である場合には、第1吸着器31が横長の状態で不定形物OBを吸着するように、第1吸着器31の姿勢を制御する。
【0169】
例えば、第2向き制御部216は、不定形物OBが縦長である場合には、第2吸着器41が縦長の状態で不定形物OBを吸着するように、第2吸着器41の姿勢を制御する。第2向き制御部216は、不定形物OBが横長である場合には、第2吸着器41が横長の状態で不定形物OBを吸着するように、第2吸着器41の姿勢を制御する。
【0170】
変形例12のロボット制御システム1は、吸着器が不定形物OBに応じた向きで不定形物OBを吸着するように、第1ロボット30及び第2ロボット40の少なくとも一方を制御する。ロボット制御システム1は、不定形物OBに応じた向きで吸着できるので、不定形物OBを支持する確実性が高まる。
【0171】
[6-13.変形例13]
例えば、ロボット制御システム1は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、不定形物OBが搬送された後に行われる後工程に応じた後工程位置で不定形物OBを支持するように、少なくとも一方のロボットを制御する後工程位置制御部を有してもよい。後工程は、不定形物OBの搬送後の工程である。実施形態の例であれば、不定形物OBの内容物を格納容器Cに落とす工程が後工程に相当する。後工程位置は、変形例13における支持位置である。なお、ユーザが指定した後工程を示す後工程パラメータが第1データ記憶部100及び第2データ記憶部200に記憶されていてもよいし、第1ロボット制御プログラム及び第2ロボット制御プログラム内のコードに基づいて、後工程が特定されてもよい。
【0172】
変形例5では、第1ロボットコントローラ10が第1後工程位置制御部116を含み、第2ロボットコントローラ20が第2後工程位置制御部217を含む。第1後工程位置制御部116及び第2後工程位置制御部217は、後工程位置制御部の一例である。第1ロボットコントローラ10が第1後工程位置制御部116を含まずに、第2ロボットコントローラ20が第2後工程位置制御部217を含んでもよい。逆に、第2ロボットコントローラ20が第2後工程位置制御部217を含まずに、第1ロボットコントローラ10が第1後工程位置制御部116を含んでもよい。
【0173】
例えば、後工程と、第1後工程位置(変形例13における第1支持位置P11)と、の関係を示すデータは、第1データ記憶部100に予め記憶されているものとする。当該データは、第1ロボット制御プログラムであってもよいし、第1ロボット制御プログラムとは異なるデータ(例えば、数式形式又はテーブル形式のデータ)であってもよい。第1後工程位置制御部116は、当該データに基づいて、後工程に関連付けられた第1支持位置P11になるように、第1支持位置P11を決定する。例えば、第1後工程位置制御部116は、不定形物OBの内容物を格納容器Cに落とす工程が後工程に相当する場合、後工程が他の工程(例えば、不定形物OBをベルトコンベア上に配置する工程)である場合よりも、第1支持位置P11が下になるように、第1支持位置P11を決定する。
【0174】
例えば、後工程と、第2後工程位置(変形例13における第2支持位置P21)と、の関係を示すデータは、第2データ記憶部200に予め記憶されているものとする。当該データは、第2ロボット制御プログラムであってもよいし、第2ロボット制御プログラムとは異なるデータ(例えば、数式形式又はテーブル形式のデータ)であってもよい。第2後工程位置制御部217は、当該データに基づいて、後工程に関連付けられた第2後工程位置が第2支持位置P21になるように、第2支持位置P21を決定する。第1支持位置P11及び第2支持位置P21の決定方法が実施形態とは異なるが、第1支持位置P11及び第2支持位置P21が決定された後の第1ロボット30及び第2ロボット40の制御方法は、実施形態と同様であってよい。
【0175】
変形例13のロボット制御システム1は、第1ロボット30及び第2ロボット40の少なくとも一方のロボットが、不定形物OBが搬送された後に行われる後工程に応じた第1後工程位置で不定形物OBを支持するように、少なくとも一方のロボットを制御する。ロボット制御システム1は、後工程に応じた挟み込み位置で不定形物OBを挟み込める。
【0176】
[6-14.その他変形例]
例えば、上記変形例を組み合わせてもよい。
【0177】
例えば、上記説明した各機能は、ロボット制御システム1における任意の装置で実現されるようにすればよい。第1ロボットコントローラ10に含まれるものとして説明した機能が第2ロボットコントローラ20又は他の装置により実現されてもよい。第2ロボットコントローラ20に含まれるものとして説明した機能が第1ロボットコントローラ10又は他の装置により実現されてもよい。1つの装置で実現されるものとして説明した機能は、複数の装置で分担されてもよい。
【0178】
例えば、ロボット制御システムは、下記のような構成も可能である。
(1)
第1ロボットと、
第2ロボットと、
前記第1ロボットが、所定の場所に置かれた不定形物の一部を支持するように、前記第1ロボットを制御する第1ロボット制御部と、
前記第2ロボットが、前記第1ロボットと協働して、前記不定形物における前記一部とは異なる部分を支持して前記不定形物を搬送するように、前記第2ロボットを制御する第2ロボット制御部と、
を有するロボット制御システム。
(2)
前記第2ロボット制御部は、前記第2ロボットが、前記第1ロボットとの間で前記不定形物を挟み込んで支持するように、前記第2ロボットを制御する第2挟み込み制御部を有する、
(1)に記載のロボット制御システム。
(3)
前記第1ロボット及び前記第2ロボットの少なくとも一方のロボットは、前記不定形物を吸着する吸着器を有する、
(1)又は(2)に記載のロボット制御システム。
(4)
前記吸着器は、前記不定形物を吸引する吸引機である、
(3)に記載のロボット制御システム。
(5)
前記少なくとも一方のロボットは、前記吸着器の吸着圧を検出する吸着圧検出器を有し、
前記ロボット制御システムは、
前記吸着圧を取得する吸着圧取得部と、
前記吸着圧が閾値以上になるまで、前記吸着器が前記不定形物に向けて前進するように、前記少なくとも一方のロボットを制御する前進制御部と、
(3)又は(4)に記載のロボット制御システム。
(6)
前記第1ロボットは、第1吸着器と、前記第1吸着器の吸着圧である第1吸着圧を検出する第1吸着圧検出器と、を有し、
前記第2ロボットは、第2吸着器と、前記第2吸着器の吸着圧である第2吸着圧を検出する第2吸着圧検出器と、を有し、
前記第1ロボット制御部は、
前記第1吸着圧を取得する第1吸着圧取得部と、
前記第2吸着圧を取得する第2吸着圧取得部と、
前記第1吸着圧が第1閾値以上になった場合には、前記第1吸着器が移動を停止し、前記第1吸着圧が前記第1閾値以上になる前に、前記第2吸着圧が前記第2閾値以上になった場合には、前記第1吸着器の移動速度が遅くなるように、前記第1ロボットを制御する第1速度制御部と、
を有し、
前記第2ロボット制御部は、
前記第1吸着圧を取得する第1吸着圧取得部と、
前記第2吸着圧を取得する第2吸着圧取得部と、
前記第2吸着圧が前記第2閾値以上になった場合には、前記第2吸着器が移動を停止し、前記第2吸着圧が前記第2閾値以上になる前に、前記第1吸着圧が前記第1閾値以上になった場合には、前記第2吸着器の移動速度が遅くなるように、前記第2ロボットを制御する第2速度制御部と、
を有する(5)に記載のロボット制御システム。
(7)
前記第2ロボット制御部は、前記第1ロボットが前記不定形物を支持する位置に基づいて、前記第2ロボットが前記不定形物を支持する位置を決定する位置制御部を有する、
(1)~(6)の何れかに記載のロボット制御システム。
(8)
前記ロボット制御システムは、前記吸着器が前記不定形物に触れてから、前記吸着器による吸着を開始させる開始制御部を有する、
(3)~(6)の何れかに記載のロボット制御システム。
(9)
前記ロボット制御システムは、前記不定形物に応じた吸着力となるように、前記吸着器を制御する吸着力制御部を有する、
(3)~(6)の何れか又は(8)に記載のロボット制御システム。
(10)
前記ロボット制御システムは、前記不定形物の種類を特定する種類特定部を更に有し、
前記吸着力制御部は、前記種類に応じた吸着力となるように、前記吸着器を制御する、
(9)に記載のロボット制御システム。
(11)
前記ロボット制御システムは、
前記場所に置かれた前記不定形物の重心を特定する重心特定部と、
前記第1ロボット及び前記第2ロボットの少なくとも一方のロボットが、前記重心に応じた支持位置で前記不定形物を支持するように、当該少なくとも一方のロボットを制御する支持位置支持部を有する、
(1)~(10)の何れかに記載のロボット制御システム。
(12)
前記支持位置支持部は、前記少なくとも一方のロボットが、水平方向は前記重心に応じた第1水平位置で前記不定形物を支持し、垂直方向は所定の第1垂直位置で前記不定形物を支持するように、前記少なくとも一方のロボットを制御する、
(11)に記載のロボット制御システム。
(13)
前記支持位置支持部は、前記少なくとも一方のロボットが、前記垂直方向は前記重心よりも下の第2垂直位置で前記不定形物を支持するように、前記少なくとも一方のロボットを制御する、
(12)に記載のロボット制御システム。
(14)
前記重心特定部は、カメラにより撮影された前記不定形物を示す画像に基づいて、前記重心を特定する、
(11)~(13)の何れかに記載のロボット制御システム。
(15)
前記ロボット制御システムは、
前記不定形物のサイズを特定するサイズ特定部と、
前記第1ロボット及び前記第2ロボットの少なくとも一方のロボットが、前記サイズに応じたサイズ位置で前記不定形物を支持するように、前記少なくとも一方のロボットを制御するサイズ位置支持部と、
(1)~(14)の何れかに記載のロボット制御システム。
(16)
前記ロボット制御システムは、
搬送中における前記不定形物の重心を特定する重心特定部と、
前記重心に基づいて、前記不定形物を搬送中の前記第1ロボット及び前記第2ロボットの少なくとも一方の姿勢を制御する姿勢制御部と、
を有する(1)~(15)の何れかに記載のロボット制御システム。
(17)
前記ロボット制御システムは、前記吸着器が前記不定形物に応じた向きで前記不定形物を吸着するように、前記第1ロボット及び前記第2ロボットの少なくとも一方を制御する向き制御部を有する、
(3)~(6)の何れか又は(8)又は(9)に記載のロボット制御システム。
(18)
前記ロボット制御システムは、前記第1ロボット及び前記第2ロボットの少なくとも一方のロボットが、前記不定形物が搬送された後に行われる後工程に応じた後工程位置で前記不定形物を支持するように、前記少なくとも一方のロボットを制御する後工程位置制御部を有する、
(1)~(17)の何れかに記載のロボット制御システム。
【符号の説明】
【0179】
1 ロボット制御システム、10 第1ロボットコントローラ、20 第2ロボットコントローラ、11,21 CPU、12,22 記憶部、13,23 通信部、30 第1ロボット、31 第1吸着器、32 カメラ、33 第1吸着圧検出器、41 第2吸着器、42 第2吸着圧検出器、100 第1データ記憶部、101 第1ロボット制御部、102 第1挟み込み制御部、103 第1吸着圧取得部、104 第1前進制御部、105 第2吸着圧取得部、106 第1速度制御部、107 第1開始制御部、108 第1吸着力制御部、109 第1種類特定部、110 第1重心特定部、111 第1支持位置支持部、112 第1サイズ特定部、113 第1サイズ位置支持部、114 第1姿勢制御部、115 第1向き制御部、116 第1後工程位置制御部、200 第2データ記憶部、201 第2ロボット制御部、202 第2挟み込み制御部、203 第2吸着圧取得部、204 第2前進制御部、205 第1吸着圧取得部、206 第2速度制御部、207 位置制御部、208 第2開始制御部、209 第2吸着力制御部、210 第2種類特定部、211 第2重心特定部、212 第2支持位置支持部、213 第2サイズ特定部、214 第2サイズ位置支持部、215 第2姿勢制御部、216 第2向き制御部、217 第2後工程位置制御部、OB 不定形物、T 作業台、C 格納容器、FP1,FP2 撮影位置、FD1,FD2 撮影方向、P10 第1初期位置、P11 第1支持位置、P12 第1目標位置、MP1 第1移動経路、P20 第2初期位置、P21 第2支持位置、P22 第2目標位置、MP2 第2移動経路。
【要約】
【課題】所定の場所に置かれた状態の不定形物を、安定した状態で支持して搬送する。
【解決手段】ロボット制御システム(1)は、第1ロボット(30)と、第2ロボット(40)と、を含む。第1ロボット制御部(101)は、第1ロボット(30)が、所定の場所に置かれた不定形物(OB)の一部を支持するように、第1ロボット(30)を制御する。第2ロボット制御部(102)は、第2ロボット(40)が、第1ロボット(30)と協働して、不定形物における上記一部とは異なる部分を支持して不定形物(OB)搬送するように、第2ロボット(40)を制御する。
【選択図】
図7