図1はロボットシステム1の構成の一例を示す概略図である。図1に示されるように、ロボットシステム1は、例えば、ロボット2と、ロボット2を制御するロボット制御装置6とを備える。ロボット制御装置6は、例えば、ロボットシステム1全体の動作を管理する。ロボット2は、例えば、アーム20及びエンドエフェクタ25を備える。ロボットシステム1は、アーム20を制御するアーム制御装置3と、エンドエフェクタ25を制御するエフェクタ制御装置4とを備える。ロボット制御装置6は、アーム制御装置3と通信することが可能であり、アーム制御装置3を制御することが可能である。アーム制御装置3はエフェクタ制御装置4と通信することが可能である。ロボット制御装置6は、アーム制御装置3を通じてエフェクタ制御装置4と通信することが可能であり、アーム制御装置3を通じてエフェクタ制御装置4を制御することが可能である。ロボット制御装置6は、アーム制御装置3を通じてアーム20を制御することが可能である。ロボット制御装置6は、アーム制御装置3及びエフェクタ制御装置4を通じてエンドエフェクタ25を制御することが可能である。ロボット制御装置6は、ロボット2を制御する上位制御装置6ともいえる。
ロボットシステム1は、例えば、第1カメラ8と、第2カメラ9と、アーム20の状態を検出するアームセンサ部50と、エンドエフェクタ25の状態を検出するエフェクタセンサ部55とを備える。ロボット制御装置6は、例えば、第1カメラ8及び第2カメラ9で得られるカメラ画像と、アームセンサ部50及びエフェクタセンサ部55での検出結果とに基づいて、ロボット2を制御する。
<ロボットについて>
図2はロボット2とその周辺の様子の一例を示す概略図である。ロボット2は、例えば、保持対象物10を保持して移動元領域から移動先領域まで移動することが可能である。保持対象物10は例えばワークピースとも呼ばれる。ロボット2は、移動元領域内の保持対象物10をエンドエフェクタ25で保持する。そして、ロボット2は、エンドエフェクタ25で保持した保持対象物10を移動元領域から移動先領域まで移動する。例えば、ロボット2は、ロボット2の姿勢、具体的にはアーム20の姿勢を変化させることによって、エンドエフェクタ25が保持した保持対象物10を移動元領域から移動先領域まで移動する。アーム20の位置は、アーム20の姿勢で決定される。また、エンドエフェクタ25の位置は、アーム20の姿勢で決定される。エンドエフェクタ25は、移動先領域まで移動した保持対象物10を解放して移動先領域に配置する。
移動元領域及び移動先領域は例えば容器である。移動元領域としての容器15(移動元容器15ともいう)内には複数の保持対象物10が存在する。移動元容器15内には、例えば、複数の保持対象物10がバラ積みされている。ロボット2は、例えば、移動元容器15内の保持対象物10を一つずつ順次保持して、移動先領域としての容器16(移動先容器16ともいう)に移動する作業を行う。移動元容器15及び移動先容器16は、例えば、作業台18及び作業台19の上にそれぞれ置かれている。ロボット2は、作業台18上の保持対象物10を作業台19まで移動するともいえる。ロボット制御装置6は、ロボット2の動きを制御して、ロボット2に作業を実行させることが可能である。以後、保持対象物10を単に対象物10と呼ぶことがある。
ロボット2が行う作業は上記の例に限られない。また、移動元領域及び移動先領域は上記の例に限られない。例えば、移動元領域及び移動先領域の少なくとも一方は、対象物10が置かれる棚であってもよいし、対象物10が直接置かれる台であってもよいし、対象物10を搬送するコンベアであってもよい。
アーム20は、例えば、複数の関節及び複数のリンク(言い換えれば腕部)等を備える。各関節は、当該関節を回転させるモータを備える。アーム20は、例えば6個の関節を備える。アーム20の自由度は例えば6である。ロボット2は、6個の関節の少なくとも一つの関節の回転角度を変化させることにより、アーム20の姿勢を変化させることができる。アーム制御装置3は、ロボット制御装置6からの指示に応じて、各関節の回転角度を制御することが可能である。つまり、ロボット制御装置6は、アーム制御装置3を通じて、各関節の回転角度を制御することが可能である。ロボット制御装置6は、アーム制御装置3を通じて、アーム20の姿勢を制御することが可能である。アーム20が備える複数の関節の数は6以外であってもよい。
エフェクタ制御装置4は、ロボット制御装置6からの指示に応じて、エンドエフェクタ25を制御することが可能である。ロボット制御装置6は、エフェクタ制御装置4に対して、例えばアーム制御装置3を通じて、各種指示を行うことが可能である。ロボット制御装置6は、アーム制御装置3及びエフェクタ制御装置4を通じてエンドエフェクタ25を制御することが可能である。
エンドエフェクタ25は、図2に示されるように、例えば、容器15内の対象物10を保持する保持部26と、容器15内の複数の対象物10をかき混ぜるかき混ぜ部材28と、保持部26及びかき混ぜ部材28を収容することが可能な筐体29とを備える。ロボット2は、作業中に、かき混ぜ部材28で容器15内の複数の対象物10をかき混ぜるかき混ぜ処理を行う。かき混ぜ処理の実行により、ロボット2は容器15内の対象物10を保持しやすくなる。
保持部26及びかき混ぜ部材28のそれぞれは、個別に、筐体29から出たり、筐体29内に入ったりすることが可能である。保持部26は、例えば、対象物10を把持する複数の指構造で構成されてよいし、対象物10を吸着して保持する少なくとも一つの吸着部で構成されてもよい。吸着部は例えば吸着パッドとも呼ばれる。図2には、一例として、少なくとも一つの吸着部で構成された保持部26が示されている。エンドエフェクタ25は、保持部26を駆動する第1駆動部を備える。エフェクタ制御装置4は、第1駆動部を制御することによって、保持部26の保持動作を制御することができる。
エンドエフェクタ25は、保持部26が取り付けられる取付部27を有する。取付部27は、例えば、筐体29内で筐体29に固定されており、細長い形状を有している。保持部26は取付部27の長手方向の一端に取り付けられている。取付部27は、筐体29に固定される固定部27ともいえる。また、取付部27は、例えば軸部ともいえる。
取付部27は、例えば伸縮可能である。取付部27が伸縮することによって、保持部26は、筐体29から出たり、筐体29内に入ったりすることが可能である。図2には、取付部27が延びて保持部26が筐体29から出ている様子の一例が示されている。エンドエフェクタ25は、取付部27を伸縮させる第2駆動部を備える。エフェクタ制御装置4は、第2駆動部を制御することによって、取付部27を伸縮させることができる。以後、保持部26の状態に関して、図2のように、保持部26が筐体29から出ている状態を露出状態と呼び、保持部26が筐体29か内に入っている状態を収容状態と呼ぶ。エフェクタ制御装置4は、第2駆動部を制御することによって、保持部26を露出状態にしたり収容状態にしたりすることができる。
かき混ぜ部材28は、例えば、複数の細長部材281と、複数の細長部材281が取り付けられる取付部280とを備える。複数の細長部材281は、取付部280から延びており、取付部280よりも柔らかい。取付部280は、例えば、細長い形状を有しており、軸部ともいえる。複数の細長部材281は、例えば、取付部280の長手方向の一方の端部から円錐状に広がるように延びている。複数の細長部材281の先端は、略同一平面上に位置する。かき混ぜ部材28は例えばかき混ぜ棒ともいえる。
細長部材281は、例えば、チューブ状を成している。細長部材281は、例えばエラストマーで構成されている。細長部材281は、ポリウレタンで構成されてもよいし、シリコン樹脂で構成されてもよい。取付部280は、例えば、金属、あるいはABS(acrylonitrile butadiene styrene)等の比較的硬い樹脂で構成されている。なお、細長部材281及び取付部280の材料はこの限りではない。
取付部280は、例えば、筐体29内で筐体29に固定されている。取付部280は、筐体29に固定される固定部280ともいえる。取付部280は、例えば伸縮可能である。取付部280が伸縮することによって、かき混ぜ部材28は、筐体29から出たり、筐体29内に入ったりすることが可能である。図3は、取付部280が延びてかき混ぜ部材28が筐体29から出ている様子の一例を示す概略図である。図2には、取付部280が縮んでかき混ぜ部材28が筐体29内に入っている様子の一例が示されている。図3では、第2カメラ9の記載は省略されている。
取付部280は、例えば、取付部27と同じ方向に沿って伸縮することが可能である。したがって、複数の細長部材281は、保持部26と同じ方向に沿って移動することが可能である。保持部26及びかき混ぜ部材28は、例えば、筐体29が有する同じ開口290(図2及び3参照)から筐体29の外側に出たり、当該開口290から筐体29内に入ったりすることができる。
図3に示されるように、かき混ぜ部材28が筐体29から出ている状態では、複数の細長部材281のそれぞれのすべてが筐体29から出るとともに、取付部280が部分的に筐体29から出ている。エンドエフェクタ25は、取付部280を伸縮させる第3駆動部を備える。エフェクタ制御装置4は、第3駆動部を制御することによって、取付部280を伸縮させることができる。以後、かき混ぜ部材28の状態に関して、図3のように、かき混ぜ部材28が部分的に筐体29から出ている状態を露出状態と呼び、かき混ぜ部材28のすべてが筐体29内に入っている状態を収容状態と呼ぶ。エフェクタ制御装置4は、第3駆動部を制御することによって、かき混ぜ部材28を露出状態にしたり収容状態にしたりすることができる。
ロボット2が容器15内の対象物10を保持する場合、図2に示されるように、保持部26の状態は露出状態に設定され、かき混ぜ部材28の状態は収容状態に設定される。一方で、ロボット2がかき混ぜ処理を行う場合、図3に示されるように、かき混ぜ部材28の状態は露出状態に設定されて、保持部26の状態は収容状態に設定される。かき混ぜ処理において、ロボット2は、複数の細長部材281が容器15内の複数の対象物10に当たるように、容器15内の複数の対象物10をかき混ぜる。例えば、ロボット2は、容器15内の複数の対象物10を複数の細長部材281で掃くようにして、容器15内の複数の対象物10をかき混ぜる。図4は、かき混ぜ部材28が容器15内の複数の対象物10をかき混ぜる様子の一例を示す概略図である。
例えば、かき混ぜ処理が実行されるとき以外においては、保持部26の状態は露出状態に設定され、かき混ぜ部材28の状態は収容状態に設定されている。そして、例えば、かき混ぜ処理が実行されるときにだけ、保持部26の状態は収容状態に設定され、かき混ぜ部材28の状態は露出状態に設定される。
なお、通常は、保持部26及びかき混ぜ部材28の状態はともに収容状態に設定され、エンドエフェクタ25が対象物10を保持するときにだけ保持部26の状態が露出状態に、かき混ぜ部材28の状態が収容状態に設定され、かき混ぜ処理が実行されるときにだけ、保持部26の状態が収容状態に、かき混ぜ部材28の状態が露出状態に設定されてもよい。
ロボット制御装置6は、ロボット2を制御してエンドエフェクタ25のかき混ぜ部材28の位置を制御することができる。具体的には、ロボット制御装置6は、アーム制御装置3を通じてアーム20の姿勢を制御することによって、かき混ぜ部材28の位置を制御することができる。ロボット制御装置6は、アーム20の姿勢を制御することによって、ロボット2にかき混ぜ処理を実行させることができる。ロボット制御装置6は、かき混ぜ処理において、かき混ぜ部材28が所定の動きをするようにアーム20の姿勢を制御する。かき混ぜ処理でのかき混ぜ部材28の動きの具体例については後で詳細に説明する。
なお、取付部27は伸縮できなくてもよい。この場合、エンドエフェクタ25が備える第1移動機構が取付部27を移動させることによって、保持部26が、筐体29から出たり、筐体29内に入ったりすることが可能であってもよい。
また、取付部280は伸縮できなくてもよい。この場合、エンドエフェクタ25が備える第2移動機構が取付部280を移動させることによって、かき混ぜ部材28が、筐体29から出たり、筐体29内に入ったりすることが可能であってもよい。
<第1カメラ及び第2カメラについて>
第1カメラ8は、例えば3次元カメラである。第1カメラ8の撮影範囲(第1撮影範囲ともいう)は、例えば、ロボット2の作業範囲を含む。第1カメラ8は、第1撮影範囲を撮影して、2次元のカラー画像と、距離画像とを生成する。カラー画像の各画素値には、例えば、R成分(赤色成分)、G成分(緑色成分)及びB成分(青色成分)が含まれる。このようなカラー画像はRGB画像とも呼ばれる。カラー画像には作業範囲の様子が写る。距離画像は、第1撮影範囲に含まれる各計測点までの距離を2次元で表す画像である。距離画像の各画素値は、当該画素値に対応する計測点までの距離を示す。距離画像はデプス画像とも呼ばれる。第1カメラ8は、カラー画像及び距離画像を含む第1カメラ画像を示す第1画像データ80(図1参照)をロボット制御装置6に出力する。ロボット制御装置6は、第1画像データ80が示す第1カメラ画像に基づいてロボット2を制御する。
第2カメラ9は、例えば3次元カメラである。図2示されるように、第2カメラ9は、例えば、エンドエフェクタ25の筐体29の外側面に固定されている。よって、第2カメラ9の撮影範囲(第2撮影範囲ともいう)は、エンドエフェクタ25の姿勢に応じて変化する。エンドエフェクタ25の姿勢はアーム20の姿勢に応じて変化することから、第2撮影範囲はアーム20の姿勢に応じて変化する。
エンドエフェクタ25が容器15内の対象物10を保持する場合、第2カメラ9は、移動元容器15をその上方から撮影する。この場合、第2撮影範囲には、容器15内の複数の対象物10が含まれる。一方で、エンドエフェクタ25が対象物10を解放して移動先容器16内に対象物10を配置する場合、第2カメラ9は移動先容器16をその上方から撮影する。
第2カメラ9は、第1カメラ8と同様に、第2撮影範囲を撮影して、例えば、2次元のカラー画像と、距離画像とを生成する。エンドエフェクタ25が容器15内の対象物10を保持する場合、カラー画像には、容器15と、容器15内の複数の対象物10とが写る。第2カメラ9は、カラー画像及び距離画像を含む第2カメラ画像を示す第2画像データ90(図1参照)をエフェクタ制御装置4に出力する。エフェクタ制御装置4は、第2画像データ90を、アーム制御装置3を通じてロボット制御装置6に送信する。ロボット制御装置6は、第2画像データ90が示す第2画像に基づいてロボット2を制御する。
<アームセンサ部及びエフェクタセンサ部について>
アームセンサ部50は、例えば、アーム20の複数の関節のそれぞれの状態を検出することが可能である。アームセンサ部50は、例えば、複数の関節のそれぞれについて、当該関節に流れる電流を検出する電流センサと、当該関節にかかるトルクを検出するトルクセンサと、当該関節の回転角度を検出するエンコーダとを備える。エンコーダは例えばロータリエンコーダとも呼ばれる。アームセンサ部50は、アームセンサ部50での検出結果を示すアーム状態情報を、アーム制御装置3に出力する。アーム状態情報は、各関節に流れる電流と、各関節にかかるトルクと、各関節の回転角度とを示す。アーム制御装置3は、アーム状態情報をロボット制御装置6に送信する。ロボット制御装置6は、アーム状態情報に基づいてロボット2を制御する。
エフェクタセンサ部55は、例えば、接触センサ及び力覚センサを備える。接触センサは、例えば、対象物10に対する保持部26の保持力(例えば、把持力あるいは吸着力)を検出することが可能である。接触センサは、例えば力センサとも呼ばれる。接触センサは、例えば、電気抵抗式であってもよいし、静電容量式であってもよいし、圧電式であってもよいし、光学式であってもよい。
力覚センサは、例えば、エンドエフェクタ25にかかる力を検出することが可能である。力覚センサは、例えば6軸力覚センサであってもよい。力覚センサは、例えば、電気抵抗式であってもよいし、静電容量式であってもよいし、圧電式であってもよいし、光学式であってもよい。
エフェクタセンサ部55は、エフェクタセンサ部55での検出結果を示すエンドエフェクタ状態情報を、エフェクタ制御装置4に出力する。エンドエフェクタ状態情報は、対象物10に対する保持部26の保持力と、エンドエフェクタ25にかかる力とを示す。エフェクタ制御装置4は、エンドエフェクタ状態情報をアーム制御装置3を通じてロボット制御装置6に送信する。ロボット制御装置6は、エンドエフェクタ状態情報に基づいてロボット2を制御する。
<ロボット制御装置の構成例>
図5はロボット制御装置6の構成の一例を示す概略図である。ロボット制御装置6は、例えば、コンピュータ装置であって、制御装置あるいは制御回路ともいえる。図5に示されるように、ロボット制御装置6は、例えば、制御部60、インタフェース61、インタフェース62及び記憶部63を備える。
インタフェース61は、第1カメラ8と通信することが可能である。インタフェース61は、例えば、インタフェース回路、通信部あるいは通信回路ともいえる。インタフェース61は、有線通信を行ってもよいし、無線通信を行ってもよい。
インタフェース62は、アーム制御装置3と通信することが可能である。制御部60は、インタフェース62を通じて、アーム制御装置3を制御することが可能である。インタフェース62は、例えば、EtherCAT(登録商標)に準拠してアーム制御装置3と有線通信を行う。アーム制御装置3は、例えば、EtherCATに準拠してエフェクタ制御装置4と有線通信を行う。インタフェース62は、アームセンサ部50が出力するアーム状態情報を受信し、エフェクタセンサ部55が出力するエフェクタ状態情報を受信する。なお、インタフェース62及びアーム制御装置3は、EtherCAT以外の通信規格に準拠してもよい。また、インタフェース62及びアーム制御装置3は無線通信を行ってもよい。
制御部60は、ロボット制御装置6の他の構成要素を制御することによって、ロボット制御装置6の動作を統括的に管理することが可能である。制御部60は、例えば制御回路ともいえる。制御部60は、以下にさらに詳細に述べられるように、種々の機能を実行するための制御及び処理能力を提供するために、少なくとも1つのプロセッサを含む。
種々の実施形態によれば、少なくとも1つのプロセッサは、単一の集積回路(IC)として、又は複数の通信可能に接続された集積回路IC及び/又はディスクリート回路(discrete circuits)として実行されてもよい。少なくとも1つのプロセッサは、種々の既知の技術に従って実行されることが可能である。
1つの実施形態において、プロセッサは、例えば、関連するメモリに記憶された指示を実行することによって1以上のデータ計算手続又は処理を実行するように構成された1以上の回路又はユニットを含む。他の実施形態において、プロセッサは、1以上のデータ計算手続き又は処理を実行するように構成されたファームウェア(例えば、ディスクリートロジックコンポーネント)であってもよい。
種々の実施形態によれば、プロセッサは、1以上のプロセッサ、コントローラ、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路(ASIC)、デジタル信号処理装置、プログラマブルロジックデバイス、フィールドプログラマブルゲートアレイ、又はこれらのデバイス若しくは構成の任意の組み合わせ、又は他の既知のデバイス及び構成の組み合わせを含み、以下に説明される機能を実行してもよい。
制御部60は、例えば、プロセッサとしてのCPU(Central Processing Unit)を備えてもよい。制御部60は、インタフェース62及びアーム制御装置3を通じてアーム20を制御することができる。制御部60は、インタフェース62が受信するアーム状態情報に基づいてアーム20の現在の姿勢を特定することができる。また、制御部60は、インタフェース62、アーム制御装置3及びエフェクタ制御装置4を通じてエンドエフェクタ25を制御することができる。制御部60は、インタフェース62が受信するエフェクタ状態情報に基づいて、エンドエフェクタ25が対象物10を適切に保持しているか、エンドエフェクタ25が対象物10を落下させたかなどを特定することができる。制御部60は、インタフェース62及びアーム制御装置3を通じてアーム20の姿勢を制御することによって、かき混ぜ部材28の位置を制御することができる。制御部60は、アーム20の姿勢を制御することによって、ロボット2にかき混ぜ処理を実行させることができる。
記憶部63は、例えば、ROM(Read Only Memory)及びRAM(Random Access Memory)などの、制御部60のCPUが読み取り可能な非一時的な記録媒体を含んでもよい。記憶部63には、例えば、ロボット制御装置6を制御するためのプログラム630が記憶されている。制御部60の各種機能は、例えば、制御部60のCPUが記憶部63内のプログラム630を実行することによって実現される。
記憶部63は、プログラム630以外にも、例えば、ロボット2の制御で使用されるロボット情報及び対象物情報を記憶する。ロボット情報はロボット2に関する情報である。ロボット情報には、例えば、ロボット2の形状を表す情報が含まれる。対象物情報は、対象物10に関する情報である。対象物情報には、例えば、対象物10の形状を表す情報が含まれる。
なお、制御部60の構成は上記の例に限られない。例えば、制御部60は、複数のCPUを備えてもよい。また制御部60は、少なくとも一つのDSP(Digital Signal Processor)を備えてもよい。また、制御部60の全ての機能あるいは制御部60の一部の機能は、その機能の実現にソフトウェアが不要なハードウェア回路によって実現されてもよい。また、記憶部63は、ROM及びRAM以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶部63は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えてもよい。
ロボット制御装置6は、ユーザからの各種入力を受け付けることが可能な入力部を備えてもよい。入力部は、例えば、マウス及びキーボードを備えてもよい。また、入力部は、ユーザのタッチ操作を受け付けるタッチセンサを備えてもよい。ロボット制御装置6が、液晶ディスプレイ等の表示部を備える場合、当該表示部とタッチセンサとで、表示機能及びタッチ検出機能を有するタッチパネルディスプレイが構成されてもよい。また、入力部は、ユーザの音声入力を受け付けるマイクを備えてもよい。制御部60は、入力部からの出力信号に基づいて、入力部が受け付けたユーザ入力の内容を認識することができる。なお、ロボット制御装置6は、第1カメラ8及びアーム制御装置3以外の外部装置と通信するインタフェースを備える場合には、当該インタフェースを通じてユーザからの入力を受け付けてもよい。
ロボット制御装置6は、複数のコンピュータ装置で構成されてもよい。また、ロボット制御装置6は、クラウドサーバで構成されてもよい。この場合、ロボット制御装置6は、例えば、インターネットを含むネットワークを通じて、アーム制御装置3等の他の構成と通信可能であってもよい。
アーム制御装置3は、例えば、ロボット制御装置6と同様の構成を備えてもよい。例えば、アーム制御装置3は、CPU等のプロセッサを有する制御部と、当該プロセッサが実行するプログラム等を記憶する記憶部と、ロボット制御装置6と通信するインタフェースと、エフェクタ制御装置4と通信するインタフェースとを備えてもよい。また、エフェクタ制御装置4は、例えば、ロボット制御装置6と同様の構成を備えてもよい。例えば、エフェクタ制御装置4は、CPU等のプロセッサを有する制御部と、当該プロセッサが実行するプログラム等を記憶する記憶部と、アーム制御装置3と通信するインタフェースとを備えてもよい。
<かき混ぜ処理について>
図6は、かき混ぜ処理に関する制御部60の動作の一例を示すフローチャートである。ロボット2の作業が開始する場合には、露出状態の保持部26が容器15の上方に位置する。ロボット2の作業が開始すると、ステップs1において、制御部60は、第2カメラ9で得られる第2カメラ画像に基づいて、容器15内に保持対象物10が存在するか否かを判定する。ステップs1においてYESと判定されると、ステップs2において、制御部60は、ロボット2(詳細にはエンドエフェクタ25の保持部26)が保持可能な対象物10が容器15内に存在するか否かを判定する。一方で、ステップs1においてNoと判定されると、ロボット2の作業は終了する。
ここで、ロボット2がアーム20の姿勢を変化させて容器15内のある対象物10をエンドエフェクタ25の保持部26で保持しようとしたとしも、容器15とロボット2とが干渉して当該ある対象物10を保持部26が保持できないことがある。また、アーム20が取り得る姿勢は、アーム20のリーチ及びアーム20の各関節の回転範囲等によって制限されることから、ロボット2がアーム20の姿勢を変化させて容器15内のある対象物10を保持部26で保持しようとしたとしても、アーム20は、保持部26が当該ある対象物10を保持することができる姿勢をとることができないことがある。制御部60は、容器15とロボット2とが干渉するなどの理由で、保持部26が保持することが可能な保持対象物10が容器15内に全く存在しない場合、ステップs4を実行する。制御部60は、例えば、第1カメラ画像に基づいて容器15に関する情報(例えば容器15の位置及び形状)を取得し、取得した容器15に関する情報に基づいて、容器15内のある対象物10をロボット2が保持しようとする場合に容器15とロボット2とが干渉するかを判定することができる。なお、容器15に関する情報は記憶部63に予め記憶されていてもよい。
ステップs2において、保持部26が保持することが可能な対象物10が容器15内に存在すると判定された場合、ステップs3が実行される。ステップs3において、制御部60は、ロボット2が容器15内の対象物10の保持を試みるようにアーム20及びエンドエフェクタ25を制御する保持制御を行う。
ロボット2が容器15内の対象物10の保持を試みた結果、ロボット2において対象物10の保持に成功した場合、制御部60は、保持部26で保持された対象物10が移動元容器15から移動先容器16に移動するように、アーム20の姿勢を制御する。制御部60は、エンドエフェクタ状態情報に基づいて、ロボット2が対象物10の保持に成功したか否かを判定することができる。制御部60は、対象物10が移動元容器15から移動先容器16に移動するように、アーム20の姿勢を制御する場合、第1カメラ画像に基づいて、作業範囲内の障害物を特定する。そして、制御部60は、特定した障害物と、ロボット2及び対象物10とが干渉しないように、アーム20の姿勢を変化させる。対象物10が移動先容器16まで移動すると、制御部60は、エンドエフェクタ25を制御して、エンドエフェクタ25に対象物10を解放させる。これにより、対象物10が移動先容器16内に配置される。その後、制御部60は、図2のように、保持部26が再び容器15の上方に位置するようにアーム20の姿勢を制御する。その後、再度ステップs1が実行される。ステップs1の実行後、制御部60は同様に動作する。
ステップs3での保持制御により、ロボット2が容器15内の対象物10の保持を試みた結果、ロボット2が対象物10の保持に失敗した場合、ステップs1が再度実行される。ステップs1の実行後、制御部60は同様に動作する。
ステップs4では、制御部60は、ロボット2にかき混ぜ処理を実行させる。ステップs4において、まず、制御部60は、保持部26及びかき混ぜ部材28が収容状態及び露出状態にそれぞれなるようにエンドエフェクタ25を制御する。次に、制御部60は、露出状態のかき混ぜ部材28が容器15内の複数の対象物10をかき混ぜるようにアーム20の姿勢を制御する。そして、制御部60は、かき混ぜ処理の終了後、保持部26及びかき混ぜ部材28の状態が露出状態及び収容状態にそれぞれなるようにエンドエフェクタ25を制御する。
ステップs4の後、再度ステップs1が実行される。以後、制御部60は同様に動作する。ステップs4が実行された後のステップs2では、かき混ぜ処理によって容器15内での複数の対象物10の配置状況が変化していることから、保持部26が保持することが可能な対象物10が容器15内に存在していると判定される可能性がある。よって、ロボット2は容器15内の対象物10を保持しやすくなる。なお、かき混ぜ処理は、容器内で互いに重なる複数の対象物10において、複数の対象物10同士の重なり状態が変化するようにかき混ぜを行なってもよい。
<かき混ぜ方法について>
以下に、かき混ぜ部材28が容器15内の複数の対象物10をかき混ぜるかき混ぜ方法の複数の例について説明する。
<第1の例>
図7はかき混ぜ方法の一例を示す概略図である。本例では、制御部60は、かき混ぜ処理において、容器15の縁側から中央部側に向かってかき混ぜ部材28が移動するように、ロボット2を制御する。言い換えれば、制御部60は、かき混ぜ処理において、容器15の縁側から中央部側に向かって容器15内の複数の対象物10に対してかき混ぜ動作を行うようロボット2を制御する。制御部60は、例えば、第2カメラ9で得られる第2カメラ画像に基づいて、容器15の縁及び中央部を特定することができる。制御部60は、容器15の縁側から中央部側に向かってかき混ぜ部材28が移動するように、第2カメラ画像に基づいてアーム20の姿勢を制御する。なお、制御部60は、記憶部63に予め記憶された容器15に関する情報に基づいて、容器15の縁及び中央部を特定してもよい。
制御部60は、例えば、かき混ぜ処理において、容器15の縁側から中央部側に向かう複数の方向300にかき混ぜ部材28が移動するように、ロボット2を制御してもよい。図7の例では、複数の方向300は、例えば、容器15を上方(言い換えれば開口側)から見た場合に、容器15の中央部を略円形に取り囲むように設定されている。制御部60は、一の方向300に沿ってかき混ぜ部材28が移動するようにアーム20の姿勢を制御し、その後、別の一の方向300に沿ってかき混ぜ部材28が移動するようにアーム20の姿勢を制御する。制御部60は、これを繰り返して実行し、複数の方向300のそれぞれについて、当該方向300に沿ってかき混ぜ部材28が移動するように、アーム20の姿勢を制御する。
制御部60は、図7のように容器15を上方から見た場合に複数の方向300を時計回りにあるいは反時計回りに一つずつ選択し、一の方向300を選択するたびに、選択した一の方向300に沿ってかき混ぜ部材28が移動するようにアーム20の姿勢を制御してもよい。なお、複数の方向300の選択順序はこの限りではない。例えば、制御部600は、一の方向300を選択した後、当該一の方向300の反対側の一の方向300を選択してもよい。
複数の方向300の数は、例えば、容器15を上方から見た場合の容器15の大きさに応じて設定されてもよい。言い換えれば、複数の方向300の数は、容器15の開口の大きさに応じて設定されてもよい。複数の方向300の並びは、容器15を上方から見た場合の容器15の形状に応じて設定されてもよい。言い換えれば、複数の方向300の並びは、容器15の開口の形状に応じて設定されてもよい。また、複数の方向300の数は、かき混ぜ部材28の大きさ等によって設定されてもよい。より具体的には、かき混ぜ部材28の容器15に対向した下面の面積または外縁の大きさ等によって設定されてもよい。また、複数の方向300の数は、複数の対象物10の残数などによって設定されてもよい。なお、複数の方向300の数は、かき混ぜ処理のタイミング毎に変更されてもよい。
図7の例のように、容器15を上方から見た場合の容器15の形状が正方形である場合には、容器15を上方から見たときに複数の方向300が略円形に並ぶように設定されてもよい。また、容器15を上方から見た場合の容器15の形状が正方形であって、図7の例よりも、容器15を上方から見た場合の容器15の形状が大きい場合には、8個よりも多い数の方向300(例えば16個の方向300)が略円形に並ぶように設定されてもよい。また、図8の例のように、容器15を上方から見た場合の容器15の形状が長方形である場合には、容器15を上方から見たときに、複数の方向300が、容器15の長手方向に沿って長い略長方形あるいは略楕円形に並ぶように設定されてもよい。
なお、制御部60は、かき混ぜ処理において、かき混ぜ部材28が一つの方向300だけに移動するようにロボット2を制御してもよい。
このように、本例では、かき混ぜ処理において、容器15の縁側から中央部側に向かってかき混ぜ部材28が移動する。つまり、かき混ぜ処理において、容器15の縁側から中央部側に向かって容器15内の複数の対象物10に対してかき混ぜが行なわれる。容器15の縁側の対象物10をエンドエフェクタ25が保持しようとすると、ロボット2が容器15と干渉して、エンドエフェクタ25が容器15の縁側の対象物10を保持できないことがある。一方で、ロボット2は、容器15の中央部側に位置する対象物10を保持しやすい。本例のように、かき混ぜ処理において、容器15の縁側から中央部側に向かってかき混ぜ部材28が移動することによって、ロボット2が対象物10を保持できない場合を少なくすることができる。言い換えれば、本例のように、かき混ぜ処理を行うことによって、ロボット2の対象物10の保持機会を向上させて、作業の中断回数を少なくすることができ、作業時間を短縮することができる。
また、容器15の縁に沿ってかき混ぜ部材28が移動する場合には、容器15の周壁部とかき混ぜ部材28の取付部280との間に対象物10が挟まる可能性がある。アーム20の関節に大きいトルクが発生した場合にロボット2が強制停止するようにロボットシステム1が構成されている場合、容器15の周壁部と硬い取付部280との間に対象物10が挟まってアーム20の関節に大きいトルクが発生すると、ロボット2が強制停止する可能性がある。本例では、かき混ぜ処理において、容器15の縁側から中央部側に向かってかき混ぜ部材28が移動することから、容器15の周壁部と硬い取付部280との間に対象物10が挟まりにくい。そのため、ロボット2が強制停止しにくくなる。
また、図7及び8の例のように、かき混ぜ処理において、容器15の縁側から中央部側に向かう複数の方向300にかき混ぜ部材28が移動する場合には、言い換えれば、容器15の縁側から中央部側に向かう複数の方向300に沿ってかき混ぜが行なわれる場合には、容器15内の複数の対象物10を十分にかき混ぜることができる。よって、ロボット2は容器15内の対象物10を保持しやすくなる。
<第2の例>
上記の第1の例のように、かき混ぜ処理において、容器15の縁側から中央部側に向かう複数の方向300にかき混ぜ部材28が移動する場合、容器15の中央部に複数の対象物10が積み上がる可能性がある。容器15の中央部に複数の対象物10が積み上がり過ぎると、ロボット2は容器15内の対象物10を保持しにくくなることがある。
そこで、本例では、制御部60は、かき混ぜ処理において、複数の方向300にかき混ぜ部材28が移動した後、かき混ぜ部材28が容器15の中央部の回りに周回するように、ロボット2を制御する。これにより、容器15の縁側から中央部側に向かう複数の方向300にかき混ぜ部材28が移動することによって容器15の中央部に積み上がった複数の対象物10を崩すようにかき混ぜることができる。つまり、容器15の縁側から中央部側に向かう複数の方向300にかき混ぜが行なわれて、容器15の中央部に集まった複数の対象物10を崩すようにかき混ぜることができる。よって、ロボット2における容器15内の対象物10の保持機会を向上させることができる。以後、かき混ぜ部材28が容器15の中央部の回りに周回する動作を周回かき混ぜ動作と呼ぶことがある。また、容器15の縁側から中央部側に向かう複数の方向300にかき混ぜ部材28が移動する動作を中央部に向かうかき混ぜ動作と呼ぶことがある。
周回かき混ぜ動作は、各かき混ぜ処理において実行されてもよいし、かき混ぜ処理が複数回実行されるたびに実行されてもよい。つまり、周回かき混ぜ動作は、上述のステップs4が実行されるたびに実行されてもよいし、ステップs4が複数回実行されるたびに実行されてもよい。また、中央部に向かうかき混ぜ動作が行われると、容器15の中央部に複数の対象物10が積み上がる可能性があることから、周回かき混ぜ動作が実行される場合には、中央部に向かうかき混ぜ動作が実行される場合よりも、容器15に対するかき混ぜ部材28の高さは大きく設定されてもよい。
図9は、かき混ぜ部材28が容器15の中央部の回りに周回する様子の一例を説明するための概略図である。かき混ぜ処理において、かき混ぜ部材28は、例えば、第1方向311に移動し、次に第2方向312に移動し、次に第3方向313に移動し、最後に第4方向314に移動することによって、容器15の中央部の回りに1周だけ周回する。
第1方向311、第2方向312及び第3方向313及び第4方向314は、容器15を上方から見た場合に、容器15の中央部を取り囲むように設定されている。第1方向311、第2方向312、第3方向313及び第4方向314は、例えば、上方から見た場合の容器15の外形が成す四角形の4辺にそれぞれ平行となるように設定されている。図9の例では、容器15を上方から見た場合、かき混ぜ部材28は、容器15の中央部の回りに四角形を描くように移動する。
なお、かき混ぜ部材28が容器15の中央部の回りに周回するときのかき混ぜ部材28の動きは図9の例に限られない。例えば、かき混ぜ部材28は、第1方向311、第2方向312、第3方向313及び第4方向314のうち、第2方向312から移動を開始してもよいし、第3方向313から移動を開始してもよいし、第4方向314から移動を開始してもよい。また、例えば、かき混ぜ部材28は、容器15の中央部の回りに2周以上周回してもよい。また、容器15を上方から見た場合、かき混ぜ部材28は、容器15の中央部の回りに円を描くように移動してもよい。
<第3の例>
ロボット2は、かき混ぜ処理を行っている場合、容器15内の対象物10を保持して移動させることができないことから、容器15内の複数の対象物10のかき混ぜに時間がかかると、ロボット2の作業効率が低下する。一方で、各かき混ぜ処理においてかき混ぜ部材28を移動させる複数の方向300の数を単純に減らすと、容器15内の複数の対象物10を十分にかき混ぜることができない可能性がある。
そこで、本例では、複数回実行されるかき混ぜ処理において、一のかき混ぜ処理においてかき混ぜ部材28が移動する複数の方向300から成るかき混ぜパターンと、他のかき混ぜ処理においてかき混ぜ部材28が移動する複数の方向300から成るかき混ぜパターンとが互いに異なるようにする。これにより、容器15内の複数の対象物10を効率良くかき混ぜることができる。
以後、かき混ぜ処理においてかき混ぜ部材28が移動する複数の方向300から成るかき混ぜパターンを、中央部に向かうかき混ぜパターンと呼ぶことがある。また、図8に示される8個の方向300において、12時の方向に位置する方向300を方向300aと呼び、3時の方向に位置する方向300を方向300cと呼び、6時の方向に位置する方向300を方向300eと呼び、9時の方向に位置する方向300を方向300gと呼ぶ。そして、方向300aと方向300cの間の方向300を方向300bと呼び、方向300cと方向300eの間の方向300を方向300dと呼び、方向300eと方向300gの間の方向300を方向300fと呼び、方向300gと方向300aの間の方向300を方向300hと呼ぶ。
本例では、中央部に向かうかき混ぜパターンが互いに異なる複数種類のかき混ぜ処理が存在する。ここで、2つの種類のかき混ぜ処理の間で、中央部に向かうかき混ぜパターンが互いに異なるとは、一方の種類のかき混ぜ処理での複数の方向300に、他方の種類のかき混ぜ処理での複数の方向300のすべてと異なる方向300が含まれるか、他方の種類のかき混ぜ処理での複数の方向300に、一方の種類のかき混ぜ処理での複数の方向300のすべてと異なる方向300が含まれるかのどちらかが成立することを意味する。したがって、2つの種類のかき混ぜ処理の間で中央部に向かうかき混ぜパターンが互いに異なることには、当該2つの種類のかき混ぜ処理の間で複数の方向300の数が互いに異なることが含まれる。また、2つの種類のかき混ぜ処理の間で中央部に向かうかき混ぜパターンが互いに異なることには、一方の種類のかき混ぜ処理での複数の方向300の一部に、他方の種類のかき混ぜ処理での複数の方向300のすべてが含まれることが含まれる。また、2つの種類のかき混ぜ処理の間で中央部に向かうかき混ぜパターンが互いに異なることには、当該2つの種類のかき混ぜ処理の間で複数の方向300の数が互いに同じであるものの、当該2つの種類のかき混ぜ処理の間で複数の方向300の並びが互いに異なることが含まれる。
例えば、中央部に向かうかき混ぜパターンが互い異なる第1かき混ぜ処理及び第2かき混ぜ処理を考える。例えば、第1かき混ぜ処理での複数の方向300が図10に示される4つの方向300a,300c,300e,300gであり、第2かき混ぜ処理での複数の方向300が図11に示される4つの方向300b,300d,300f,300hであるとする。この場合、第1かき混ぜ処理での複数の方向300には、第2かき混ぜ処理での複数の方向300のすべてと異なる方向300a,300c,300e,300gが含まれる。また、第2かき混ぜ処理での複数の方向300には、第1かき混ぜ処理での複数の方向300のすべてと異なる方向300b,300d,300f,300hが含まれる。この例では、第1かき混ぜ処理及び第2かき混ぜ処理の間で複数の方向300の数は互いに同じであるものの、第1かき混ぜ処理及び第2かき混ぜ処理の間で複数の方向300の並びが互いに異なっている。また、この例では、第1かき混ぜ処理での複数の方向300のそれぞれは、第2かき混ぜ処理での複数の方向300のそれぞれと異なる方向である。つまり、第1かき混ぜ処理での複数の方向300には、第2かき混ぜ処理での複数の方向300が含まれていない。また、第2かき混ぜ処理での複数の方向300のそれぞれは、第1かき混ぜ処理での複数の方向300のそれぞれと異なる方向である。つまり、第2かき混ぜ処理での複数の方向300には、第1かき混ぜ処理での複数の方向300が含まれていない。
他の例として、第1かき混ぜ処理での複数の方向300が図12に示される4つの方向300a,300c,300e,300hであって、第2かき混ぜ処理での複数の方向300が図11に示される4つの方向300b,300d,300f,300hであるとしる。この場合、第1かき混ぜ処理での複数の方向300には、第2かき混ぜ処理での複数の方向300のすべてと異なる方向300a,300c,300eが含まれる。また、第2かき混ぜ処理での複数の方向300には、第1かき混ぜ処理での複数の方向300のすべてと異なる方向300b,300d,300fが含まれる。この例においても、第1かき混ぜ処理及び第2かき混ぜ処理の間で複数の方向300の数が互いに同じであるものの、第1かき混ぜ処理及び第2かき混ぜ処理の間で複数の方向300の並びが互いに異なっている。
他の例として、第1かき混ぜ処理での複数の方向300が図13に示される5つの方向300a,300b,300c,300e,300gであって、第2かき混ぜ処理での複数の方向300が図11に示される4つの方向300b,300d,300f,300hであるとする。この場合、第1かき混ぜ処理での複数の方向300には、第2かき混ぜ処理での複数の方向300のすべてと異なる方向300a,300c,300e,300gが含まれる。また、第2かき混ぜ処理での複数の方向300には、第1かき混ぜ処理での複数の方向300のすべてと異なる方向300d,300f,300hが含まれる。この例では、第1かき混ぜ処理及び第2かき混ぜ処理の間で複数の方向300の数が互いに異なっている。
また、中央部に向かうかき混ぜパターンが互い異なる第1かき混ぜ処理、第2かき混ぜ処理及び第3かき混ぜ処理が存在する場合には、例えば、第1かき混ぜ処理での複数の方向300が図12に示される4つの方向300a,300c,300e,300hであって、第2かき混ぜ処理での複数の方向300が図13に示される5つの方向300a,300b,300c,300e,300gであって、第3かき混ぜ処理での複数の方向300が図11に示される4つの方向300b,300d,300f,300hであってもよい。
制御部60は、例えば、中央部に向かうかき混ぜパターンが互いに異なる複数種類のかき混ぜ処理が順番に繰り返し実行されるように、ロボット2を制御してもよい。例えば、制御部60は、第1かき混ぜ処理と第2かき混ぜ処理とをロボット2が交互に実行するように、ロボット2を制御してもよい。例えば、図6に示される処理において、奇数回目のステップs4において第1かき混ぜ処理及び第2かき混ぜ処理の一方が実行され、偶数回目のステップs4において第1かき混ぜ処理及び第2かき混ぜ処理の他方が実行されてもよい。例えば、奇数回目のステップs4において、図10に示される方向300a,300c,300e,300gにかき混ぜ部材28が移動し、偶数回目のステップs4において、図11に示される方向300b,300d,300f,300hにかき混ぜ部材28が移動してもよい。これにより、容器15内の複数の対象物10を効率良くかき混ぜることができる。つまり、ロボット2の作業中において容器15内の複数の対象物10のかき混ぜにかかる時間を低減しつつ、容器15内の複数の対象物10を十分にかき混ぜることができる。この例のように、第1かき混ぜ処理での複数の方向300のそれぞれが、第2かき混ぜ処理での複数の方向300のそれぞれと異なる方向である場合には、容器15内の複数の対象物10をさらに効率良くかき混ぜることができる。
なお、中央部に向かうかき混ぜパターンが互いに異なる複数種類のかき混ぜ処理は順番に繰り返し実行されなくてもよい。例えば、第1かき混ぜ処理及び第2かき混ぜ処理の一方が複数回連続して実行された後に、第1かき混ぜ処理及び第2かき混ぜ処理の他方が少なくとも1回実行されてもよい。また、第1かき混ぜ処理、第2かき混ぜ処理及び第3かき混ぜ処理がこの順番に実行された後、第3かき混ぜ処理、第2かき混ぜ処理及び第1かき混ぜ処理がこの順番に実行されてもよい。
<かき混ぜ部材の高さについて>
ここでは、かき混ぜ処理での容器15に対するかき混ぜ部材28の高さの設定方法の例について説明する。
図14は、かき混ぜ処理において設定されるかき混ぜ部材28の高さの一例を説明するための概略図である。図14に示されるように、制御部60は、かき混ぜ処理において、容器15内の複数の対象物10の基準高さ位置refが、細長部材281の先端と取付部280との間に位置するように、ロボット2を制御してもよい。基準高さ位置refは、容器15内の複数の対象物10の代表高さ位置ともいえる。複数の細長部材281の長さにばらつきがある場合には、かき混ぜ処理において、基準高さ位置refは、例えば、複数の細長部材281のうち最も短い細長部材281の先端と取付部280との間に位置してもよいし、複数の細長部材281のうち最も長い細長部材281の先端と取付部280との間に位置してもよい。
基準高さ位置refは、例えば、容器15内の複数の対象物10の平均高さ位置に基づいて設定されてもよい。制御部60は、上述のステップs4において、例えば、容器15内の複数の対象物10が写る第2カメラ画像に基づいて、容器15内の複数の対象物10の平均高さ位置を求める。そして、制御部60は、中央部に向かうかき混ぜ動作をロボット2に実行させる場合には、例えば、求めた平均高さ位置を、容器15内の複数の対象物10の基準高さ位置refに設定する。一方で、制御部60は、周回混ぜ動作をロボット2に実行させる場合には、求めた平均高さ位置よりも所定量だけ高い位置を、容器15内の複数の対象物10の基準高さ位置refに設定する。制御部60は、設定した基準高さ位置refが細長部材281の先端と取付部280との間に位置するようにロボット2を制御する。その後、制御部60は、ロボット2にかき混ぜ部材28を移動させて、中央部に向かうかき混ぜ動作あるいは周回かき混ぜ動作をロボット2に実行させる。
制御部60は、容器15内の複数の対象物10の平均高さ位置を求める場合、例えば、第2カメラ画像に含まれるカラー画像に基づいて、容器15内における複数の対象物10が存在する領域(対象物存在領域ともいう)を特定する。そして、制御部60は、第2カメラ画像に含まれる距離画像に基づいて、対象物存在領域の各計測点までの距離の平均値を求める。制御部60は、求めた平均値を、容器15内の複数の対象物10の平均高さ位置としてもよい。
このように、かき混ぜ処理において、容器15内の複数の対象物10の基準高さ位置refが細長部材281の先端と取付部280との間に位置するようにロボット2が制御されることから、比較的硬い取付部280が容器15内の対象物10に当たりにくくなる。これにより、かき混ぜ処理において対象物10が損傷しにくくなる。
また、アーム20の関節に大きいトルクが発生した場合にロボット2が強制停止するようにロボットシステム1が構成されている場合には、比較的硬い取付部280が対象物10に当たると、ロボット2が強制停止する可能性がある。本例では、かき混ぜ処理において、取付部280が対象物10に当たりにくくなることから、ロボット2が強制停止しにくくなる。
上記の例では、容器15全体に対して一つの基準高さ位置refが設定されていることから、容器15内において、対象物10が高く積まれた領域と、対象物10が低く積まれた領域とが存在する場合、対象物10が高く積まれた領域において、硬い取付部280が対象物10に当たる可能性がある。
そこで、制御部60は、容器15内を複数の部分領域150に区分し、部分領域150ごとに基準高さ位置refを個別に設定してもよい。この場合、制御部60は、各部分領域150について、かき混ぜ処理において当該部分領域150内の複数の対象物10がかき混ぜられる場合、当該部分領域150に対応する基準高さ位置refが細長部材281の先端と取付部280との間に位置するように、ロボット2を制御してもよい。
図15は、容器15内が複数の部分領域150に区分される様子の一例を示す概略図である。図15の例では、容器15内が行列状に均等に9個の部分領域150に区分されている。以後、複数の部分領域150のうち注目する部分領域150(言い換えれば説明対象の部分領域150)を注目部分領域150と呼ぶことがある。
制御部60は、注目部分領域150内の複数の対象物10の平均高さ位置を、上記と同様にして第2カメラ画像に基づいて求める。そして、制御部60は、求めた平均高さ位置に基づいて注目部分領域150内の複数の対象物10の基準高さ位置refを設定する。例えば、制御部60は、求めた平均高さ位置を、注目部分領域150内の複数の対象物10の基準高さ位置refに設定する。制御部60は、同様にして、各部分領域150に対応する基準高さ位置refを設定する。本例では、中央部に向かうかき混ぜ動作が行われるか、周回かき混ぜ動作が行われるか否かにかかわらず、同じようにしてかき混ぜ部材28の高さが設定される。
制御部60は、かき混ぜ処理において、例えば、容器15の上方から見た場合に取付部280の長手方向に沿った中心軸280aが注目部分領域150上に位置するとき、複数の細長部材281の先端と取付部280との間に、注目部分領域150内の複数の対象物10の基準高さ位置refが位置するように、ロボット2を制御する。
例えば、図16に示されるように、かき混ぜ処理において、容器15の上方から見た場合にかき混ぜ部材28が部分領域150aから部分領域150bに移動する場合を考える。この場合、かき混ぜ処理においては、容器15の上方から見たときに中心軸280aが部分領域150a上に位置する際、細長部材281の先端と取付部280との間に、部分領域150a内の複数の対象物10の基準高さ位置refが位置するように、ロボット2が制御される。そして、かき混ぜ処理において、容器15の上から見たときに中心軸280aが部分領域150b上に位置する際、細長部材281の先端と取付部280との間に、部分領域150b内の複数の対象物10の基準高さ位置refが位置するように、ロボット2が制御される。なお、容器15の上方から見たときに中心軸280aが複数の部分領域150a上に位置する際には、当該複数の部分領域150aのいずれか一つに対応する基準高さ位置refが細長部材281の先端と取付部280との間に位置するように、ロボット2が制御されてもよい。
このように、複数の部分領域150のそれぞれについて個別に基準高さ位置refが設定されることによって、かき混ぜ処理において、硬い取付部280が対象物10に当たりにくくなる。
なお、容器15内を複数の部分領域150に区分する方法は上記の例に限られない。例えば、容器15内が9個未満の複数の部分領域150に区分されてもよいし、10個以上の複数の部分領域150に区分されてもよい。また、容器15内は行列状に区分されなくてもよい。
<かき混ぜ処理の実行タイミングの他の例>
制御部60は、ロボット2が容器15内の対象物10の保持に成功した回数(保持成功回数ともいう)に応じて、かき混ぜ処理をロボット2に実行させてもよい。図17は、この場合の制御部60の動作の一例を示すフローチャートである。図17の例では、制御部60は、保持成功回数をカウントする成功カウンタを備える。
ロボット2の作業が開始すると、ステップs11において、制御部60は、成功カウンタをリセットして、成功カウンタの値を零にする。次に、制御部60は、上述のステップs1を実行する。制御部60は、ステップs1においてYESなら上述のステップs2を実行する。ステップs2においてYESと判定されると、ステップs12が実行される。一方で、ステップs2においてNOと判定されると、ステップs4においてかき混ぜ処理が実行される。
ステップs12において、制御部60は、成功カウンタの値が第1しきい値以上であるかを判定する。第1しきい値は、例えば1以上の整数である。ステップs12においてYESと判定されると、ステップs4が実行される。つまり、保持成功回数が第1しきい値以上のとき、かき混ぜ処理が実行される。ステップs4においてかき混ぜ処理が実行されると、ステップs15において、制御部60は、成功カウンタをリセットして成功カウンタの値を零に設定する。
ステップs12においてNOと判定されると、上述のステップs3が実行される。ステップs3の後、ステップs13が実行される。ステップs13において、制御部60は、ロボット2が容器15内の対象物10の保持に成功したかを判定する。ステップs13においてYESと判定されると、制御部60は、ステップs14において、成功カウンタをカウントアップして、成功カウンタの値を1つ増加させる。これにより、ステップs3においてロボット2が容器15内の対象物10の保持を試みた結果、ロボット2が対象物10の保持に成功した場合、成功カウンタの値が1つ増加する。ロボット2が対象物10の保持に成功した場合、制御部60は、保持部26で保持された対象物10が移動元容器15から移動先容器16に移動するように、アーム20の姿勢を制御する。その後、対象物10が移動先容器16内に配置された後、保持部26が再び容器15の上方に位置する。そして、再度ステップs1が実行される。以後、制御部60は同様に動作する。
一方で、ステップs13においてNOと判定されると、つまり、ステップs3においてロボット2が容器15内の保持対象物10の保持を試みた結果、ロボット2が対象物10の保持に失敗した場合、ステップs1が再度実行される。以後、制御部60は同様に動作する。
このように、図17の例では、保持成功回数に応じてかき混ぜ処理が実行される。ロボット2が対象物10の保持に成功すると、容器15内での複数の対象物10の配置状況は変化することから、ロボット2は容器15内の対象物10を保持しにくくなる可能性がある。本例のように、保持成功回数に応じてかき混ぜ処理が実行されることによって、ロボット2は容器15内の対象物10を保持しやすくなる。
なお、制御部60は、ステップs3において、ロボット2が対象物10の保持にいったんは成功したものの、ロボット2が対象物10を移動先容器16に向けて移動させているときにロボット2が対象物10を落下した場合には、ロボット2が保持に失敗したと判定してもよい。この場合、ステップs14が実行されずにステップs1が再度実行される。制御部60は、エフェクタセンサ部55から出力されるエンドエフェクタ状態情報に基づいて、ロボット2が対象物10を落下させたことを特定することができる。
制御部60は、ロボット2が容器15内の対象物10の保持に失敗した回数(保持失敗回数ともいう)に応じて、かき混ぜ処理をロボット2に実行させてもよい。図18は、この場合の制御部60の動作の一例を示すフローチャートである。図18の例では、制御部60は、保持失敗回数をカウントする失敗カウンタを備える。
ロボット2の作業が開始すると、ステップs21において、制御部60は、失敗カウンタをリセットして、失敗カウンタの値を零にする。次に、制御部60は、上述のステップs1を実行する。制御部60は、ステップs1においてYESなら上述のステップs2を実行する。ステップs2においてYESと判定されると、ステップs22が実行される。一方で、ステップs2においてNOと判定されると、ステップs4においてかき混ぜ処理が実行される。
ステップs22において、制御部60は、失敗カウンタの値が第2しきい値以上であるかを判定する。第2しきい値は、例えば1以上の整数である。第2しきい値は、第1しきい値と同じであってもよいし、第1しきい値よりも大きくてもよいし、第1しきい値よりも小さくてもよい。ステップs22においてYESと判定されると、ステップs4が実行される。つまり、保持失敗回数が第2しきい値以上のとき、かき混ぜ処理が実行される。ステップs4においてかき混ぜ処理が実行されると、ステップs25において、制御部60は、失敗カウンタをリセットして失敗カウンタの値を零に設定する。
ステップs22においてNOと判定されると、ステップs3が実行される。ステップs3の後、ステップs23が実行される。ステップs23において、制御部60は、ロボット2が容器15内の対象物10の保持に失敗したかを判定する。ステップs23においてYESと判定されると、制御部60は、ステップs24において、失敗カウンタをカウントアップして、失敗カウンタの値を1つ増加させる。これにより、ステップs3においてロボット2が容器15内の保持対象物10の保持を試みた結果、ロボット2が対象物10の保持に失敗した場合、失敗カウンタの値が1つ増加する。ステップs24の後、ステップs1が実行され、以後、制御部60は同様に動作する。
一方で、ステップs23においてNOと判定されると、つまり、ステップs3においてロボット2が容器15内の保持対象物10の保持を試みた結果、ロボット2が対象物10の保持に成功した場合、ロボット2は保持する対象物10を移動先容器16まで移動して移動先容器16に配置する。その後、エンドエフェクタ25の保持部26が再び容器15の上方に位置した後、ステップs1が実行される。以後、制御部60は同様に動作する。
このように、保持失敗回数に応じてかき混ぜ処理が実行されることによって、ロボット2は容器15内の対象物10を保持しやすくなる。なお、制御部60は、ステップs3において、ロボット2が対象物10の保持にいったんは成功したものの、ロボット2が対象物10を移動先容器16に向けて移動させているときにロボット2が対象物10を落下した場合には、ロボット2が保持に失敗したと判定してもよい。この場合、ステップs24が実行された後にステップs1が再度実行される。
制御部60は、ロボット2の作業の経過時間(作業経過時間ともいう)に応じて、かき混ぜ処理をロボット2に実行させてもよい。図19は、この場合の制御部60の動作の一例を示すフローチャートである。図19の例では、制御部60は、時間をカウントする時間カウンタを有する。時間カウンタの値は、例えば、所定時間が経過するたびに1だけ増加する。図19の例では、ロボット2は、作業を行っている間、かき混ぜ処理を定期的に繰り返し実行する。
ロボット2の作業が開始すると、ステップs31において、制御部60は、時間カウンタをリセットして、時間カウンタの値を零にする。次に、制御部60は、上述のステップs1を実行する。制御部60は、ステップs1においてYESなら上述のステップs2を実行する。ステップs2においてYESと判定されると、ステップs32が実行される。一方で、ステップs2においてNOと判定されると、ステップs4においてかき混ぜ処理が実行される。
ステップs32において、制御部60は、時間カウンタの値が第3しきい値以上であるかを判定する。第3しきい値は、例えば1以上の整数である。第3しきい値は、第1しきい値と同じであってもよいし、第1しきい値よりも大きくてもよいし、第1しきい値よりも小さくてもよい。また、第3しきい値は、第2しきい値と同じであってもよいし、第2しきい値よりも大きくてもよいし、第2しきい値よりも小さくてもよい。
ステップs32においてYESと判定されると、ステップs4が実行される。ステップs4においてかき混ぜ処理が実行されると、ステップs35において、制御部60は、時間カウンタをリセットして時間カウンタの値を零に設定する。
ステップs32においてNOと判定されると、ステップs3が実行される。ステップs3においてロボット2が容器15内の保持対象物10の保持を試みた結果、ロボット2が対象物10の保持に失敗した場合、再度ステップs1が実行される。以後、制御部60は同様に動作する。一方で、ステップs3においてロボット2が容器15内の保持対象物10の保持を試みた結果、ロボット2が対象物10の保持に成功した場合、ロボット2は保持する対象物10を移動先容器16まで移動して移動先容器16に配置する。その後、エンドエフェクタ25の保持部26が再び容器15の上方に位置した後、ステップs1が実行される。以後、制御部60は同様に動作する。
このように、作業経過時間に応じてかき混ぜ処理が実行されることによって、ロボット2は容器15内の対象物10を保持しやすくなる。
制御部60は、保持成功回数、保持失敗回数及び作業経過時間の少なくとも2つに応じてかき混ぜ処理をロボット2に実行させてもよい。図20は、制御部60が、保持成功回数、保持失敗回数及び作業経過時間に応じてかき混ぜ処理をロボット2に実行させる場合の制御部60の動作の一例を示すフローチャートである。
ロボット2の作業が開始すると、ステップs41において、制御部60は、成功カウンタ、失敗カウンタ及び時間カウンタをリセットして、成功カウンタ、失敗カウンタ及び時間カウンタの値を零にする。次に、制御部60は、上述のステップs1を実行する。制御部60は、ステップs1においてYESなら上述のステップs2を実行する。ステップs2においてYESと判定されると、ステップs42が実行される。一方で、ステップs2においてNOと判定されると、ステップs4においてかき混ぜ処理が実行される。
ステップs42において、制御部60は、成功カウンタの値が第1しきい値以上であるかを判定する。ステップs42においてYESと判定されると、ステップs4が実行される。ステップs4においてかき混ぜ処理が実行されると、ステップs48において、制御部60は、成功カウンタ、失敗カウンタ及び時間カウンタをリセットして、各カウンタの値を零に設定する。ステップs48の後、ステップs1が再度実行され、以後、制御部60は同様に動作する。
ステップs42においてNOと判定されると。ステップs43において、制御部60は、失敗カウンタの値が第2しきい値以上であるかを判定する。ステップs43においてYESと判定されると、ステップs4が実行される。その後、ステップs48及びステップs1が順次実行され、以後、制御部60は同様に動作する。
ステップs43においてNOと判定されると。ステップs44において、制御部60は、時間カウンタの値が第3しきい値以上であるかを判定する。ステップs44においてYESと判定されると、ステップs4が実行される。その後、ステップs48及びステップs1が順次実行され、以後、制御部60は同様に動作する。
ステップs44においてNOと判定されると、ステップs3が実行される。ステップs3の後、ステップs45が実行される。ステップs45において、制御部60は、ロボット2が容器15内の対象物10の保持に成功したかを判定する。ステップs45においてYESと判定されると、制御部60は、ステップs46において、成功カウンタをカウントアップして、成功カウンタの値を1つ増加させる。ステップs46の後、ロボット2は保持する対象物10を移動先容器16まで移動して移動先容器16に配置する。その後、エンドエフェクタ25の保持部26が再び容器15の上方に位置した後、ステップs1が実行される。以後、制御部60は同様に動作する。
一方で、ステップs45においてNOと判定さると、つまり、ロボット2が容器15内の対象物10の保持に失敗したと判定されると、制御部60は、ステップs47において、失敗カウンタをカウントアップして、失敗カウンタの値を1つ増加させる。ステップs47の後、再度ステップs1が実行され、以後、制御部60は同様に動作する。
上記の例では、ステップs42、ステップs43及びステップs44がこの順番で実行されているが、ステップs42、ステップs43及びステップs44の実行順は入れ替えられてもよい。例えば、ステップs43、ステップs44及びステップs42の順に実行されてもよいし、ステップs44、ステップs42及びステップs43の順に実行されてもよい。
制御部60が、保持成功回数及び保持失敗回数に応じてかき混ぜ処理をロボット2に実行させる場合には、図20に示されるフローチャートを以下のように変更すればよい。例えば、ステップs41において成功カウンタ及び失敗カウンタを初期化し、ステップs43においてNOと判定されると、ステップs44が実行されずにステップs3が実行される。そして、ステップs48において成功カウンタ及び失敗カウンタがリセットされる。
また、制御部60が、保持成功回数及び作業経過時間に応じてかき混ぜ処理をロボット2に実行させる場合には、図20に示されるフローチャートを以下のように変更すればよい。例えば、ステップs41において成功カウンタ及び時間カウンタを初期化し、ステップs42においてNOと判定されると、ステップs43が実行されずにステップs44が実行される。そして、ステップs45においてNOと判定されると、ステップs47が実行されずにステップs1が実行される。また、ステップs48において成功カウンタ及び時間カウンタがリセットされる。
また、制御部60が、保持失敗回数及び作業経過時間に応じてかき混ぜ処理をロボット2に実行させる場合には、図20に示されるフローチャートを以下のように変更すればよい。例えば、ステップs41において失敗カウンタ及び時間カウンタを初期化し、ステップs2においてYESと判定されると、ステップs42が実行されずにステップs43が実行される。そして、ステップs45においてYESと判定されると、ステップs46が実行されずにステップs1が実行される。また、ステップs48において失敗カウンタ及び時間カウンタがリセットされる。
上記の図17~20の例では、ステップs2においてNOと判定された場合、ステップs4においてかき混ぜ処理が実行されているが、かき混ぜ処理が実行されずに、ロボット2の作業が終了してもよい。
保持部26及び取付部27から成る部材と、かき混ぜ部材28との配置関係は上記の例に限られない。例えば、図2及び3の例とは異なり、取付部27の長手方向と、かき混ぜ部材28の取付部280の長手方向とは互いに平行を成していなくてもよい。例えば、取付部27の長手方向と、かき混ぜ部材28の取付部280の長手方向とは互いに垂直を成していてもよい。取付部27の長手方向と、取付部280の長手方向とは互いに垂直を成す場合のように、露出状態の保持部26が対象物10を保持するときに露出状態のかき混ぜ部材28が対象物10に当たらず、露出状態のかき混ぜ部材28が容器15内の複数の対象物10をかき混ぜるときに露出状態の保持部26が対象物10に当たらない場合には、保持部26及びかき混ぜ部材28は筐体29に収容されずに常に露出状態であってもよい。
上記の例では、かき混ぜ部材28は保持部26とは別に設けられているが、保持部26が容器15内の複数の対象物10をかき混ぜるかき混ぜ部材28として使用されてもよいし、保持部26及び取付部27が容器15内の複数の対象物10をかき混ぜるかき混ぜ部材28として使用されてもよい。
ロボットシステム1にアーム制御装置3が設けられずに、ロボット制御装置6がアーム制御装置3と同様の働きを行ってもよい。つまり、ロボット制御装置6とアーム制御装置3とは一つの制御装置で構成されてもよい。また、ロボットシステム1にエフェクタ制御装置4が設けられずに、ロボット制御装置6がエフェクタ制御装置4と同様の働きを行ってもよい。つまり、ロボット制御装置6とエフェクタ制御装置4とは一つの制御装置で構成されてもよい。また、ロボットシステム1にアーム制御装置3及びエフェクタ制御装置4が設けられずに、ロボット制御装置6がアーム制御装置3及びエフェクタ制御装置4と同様の働きを行ってもよい。つまり、ロボット制御装置6、アーム制御装置3及びエフェクタ制御装置4は一つの制御装置で構成されてもよい。
以上のように、ロボット制御装置、ロボット及びそれらを備えるロボットシステムは詳細に説明されたが、上記した説明は、全ての局面において例示であって、この開示がそれに限定されるものではない。また、上述した各種例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の例が、この開示の範囲から外れることなく想定され得るものと解される。
例えば、上記の例では、エンドエフェクタが保持部26とかき混ぜ部材28を有している例を説明したが、保持部26がかき混ぜ部材28として機能してもよい。この場合、上記のかき混ぜ部材28は、適宜、保持部26と読み替えられてもよい。
本開示には以下の内容が含まれる。
一実施形態において、(1)ロボット制御装置は、ロボットを制御するロボット制御装置であって、容器内の複数の保持対象物のそれぞれを順次保持する作業及び前記複数の保持対象物をかき混ぜるかき混ぜ処理を実行可能なロボットを制御する制御部を備え、前記制御部は、前記かき混ぜ処理において、前記容器の縁側から中央部側に向かって前記容器内の複数の保持対象物に対してかき混ぜ動作を行うよう前記ロボットを制御する。
(2)上記(1)のロボット制御装置において、前記制御部は、前記かき混ぜ処理において、前記容器の縁側から中央部側に向かう複数の方向に沿ってかき混ぜ動作を行なうよう前記ロボットを制御する。
(3)上記(2)のロボット制御装置において、前記制御部は、前記かき混ぜ処理において、前記複数の方向に沿ってかき混ぜ動作を行った後、前記容器の中央部に集まった前記複数の保持対象物を崩すようにかき混ぜ動作を行うよう前記ロボットを制御する。
(4)上記(2)または(3)のロボット制御装置において、前記制御部は、前記かき混ぜ処理を複数回前記ロボットに実行させ、前記複数回の前記かき混ぜ処理は、前記容器の縁側から中央部側に向かう複数の第1方向に沿ってかき混ぜ動作を行う第1かき混ぜ処理と、前記容器の縁側から中央部側に向かう複数の第2方向に沿ってかき混ぜ動作を行う第2かき混ぜ処理とを含み、前記複数の第1方向から成る第1かき混ぜパターンと、前記複数の第2方向から成る第2かき混ぜパターンとは、互いに異なる。
(5)上記(4)のロボット制御装置において、前記複数の第1方向のそれぞれは、前記複数の第2方向のそれぞれと異なる方向である。
(6)上記(1)から(5)のいずれか一つのロボット制御装置において、前記ロボットは、複数の細長部材と、前記複数の細長部材が取り付けられる取付部とを有したかき混ぜ部材を有しており、前記複数の細長部材は、前記取付部から延び、前記取付部よりも柔らかく、前記制御部は、前記かき混ぜ処理において、前記容器内の複数の保持対象物の基準高さ位置が、前記かき混ぜ部材が有する細長部材の先端と前記取付部との間に位置するように、前記ロボットを制御する。
(7)上記(6)のロボット制御装置において、前記制御部は、前記容器内の複数の保持対象物の平均高さ位置に基づいて前記基準高さ位置を決定する。
(8)上記(6)のロボット制御装置において、前記制御部は、前記容器内を複数の部分領域に区分し、前記複数の部分領域のそれぞれについて、前記かき混ぜ処理において当該部分領域内の複数の保持対象物がかき混ぜられる場合、当該部分領域内の複数の保持対象物の基準高さ位置が、前記かき混ぜ部材が有する細長部材の先端と前記取付部との間に位置するように、前記ロボットを制御する。
(9)上記(1)から(8)のいずれか一つのロボット制御装置において、前記制御部は、前記ロボットが前記容器内の保持対象物の保持に成功した回数に応じて、前記かき混ぜ処理を前記ロボットに実行させる。
(10)上記(1)から(9)のいずれか一つのロボット制御装置において、前記制御部は、前記ロボットが前記容器内の保持対象物の保持に失敗した回数に応じて、前記かき混ぜ処理を前記ロボットに実行させる。
(11)上記(1)から(10)のいずれか一つのロボット制御装置において、前記制御部は、前記作業の経過時間に応じて、前記かき混ぜ処理を前記ロボットに実行させる。
(12)上記(1)から(11)のいずれか一つのロボット制御装置において、前記制御部は、前記ロボットが保持可能な保持対象物が前記容器内に存在しない場合、前記かき混ぜ処理を前記ロボットに実行させる。
(13)ロボットは、複数の保持対象物がバラ積みされた容器内の保持対象物のそれぞれを順次保持する作業を行い、前記容器内の複数の保持対象物をかき混ぜるかき混ぜ処理を行うロボットであって、前記かき混ぜ処理において、前記容器の縁側から中央部側に向かって前記容器内の複数の保持対象物に対してかき混ぜを行う。
(14)かき混ぜ方法は、複数の保持対象物がバラ積みされた容器内の保持対象物のそれぞれを順次保持する作業を行い、前記容器内の複数の保持対象物をかき混ぜるかき混ぜ処理を行うロボットでのかき混ぜ方法であって、前記かき混ぜ処理において、前記容器の縁側から中央部側に向かって前記容器内の複数の保持対象物に対してかき混ぜを行う。
(15)プログラムは、コンピュータ装置を、上記(1)から(12)のいずれか一つのロボット制御装置が備える前記制御部として機能させる。