(57)【要約】【課題】バラ積みされたワークから多くのワークを取り出すことができるロボットシステムを提供する。【解決手段】ロボットシステム５は、ロボット１と、ハンド２と、ワークまでの距離の情報を取得するレンジセンサ６とを備える。ハンド２の爪部は、ワークを把持するための形状を有する把持領域を有する。制御装置４の衝突検出部５３は、ロボット１がワークを把持するための位置まで移動している期間中に、ハンド２がワークに衝突した時にロボット１を停止する。判定部５５は、ハンド２の把持領域以外の部分にて目標のワークを把持できるか否かを判定する。移動制御部５６は、把持領域以外の部分にて目標のワークを把持できると判定した場合に、ハンド２にて目標のワークを把持して、目標のワークをコンテナの内部において移動する制御を実施する。【選択図】図２
2019198949.tif 000002
【特許請求の範囲】
【請求項１】
容器の内部にバラ積みされたワークを取り出すロボットシステムであって、
複数の爪部を有し、前記爪部にてワークを把持するハンドと、
前記ハンドを移動するロボットと、
ワークまでの距離の情報を取得する３次元センサと、
前記ハンドおよび前記ロボットを制御する制御装置と、を備え、
前記爪部は、ワークを把持するための形状を有する把持領域を有し、
前記制御装置は、前記３次元センサの出力に基づいてワークの３次元情報を取得する取得部と、
ワークの３次元情報に基づいて前記ロボットが取り出す目標のワークを選定する選定部と、
前記ロボットが目標のワークを把持するための目標位置まで移動している期間中に、ワークに前記ハンドが衝突した時に前記ロボットを停止させる衝突検出部と、
前記衝突検出部により停止した前記ロボットの停止位置を検出する位置検出部と、
前記ロボットの目標位置および停止位置に基づいて、前記ハンドの把持領域以外の部分にて目標のワークを把持できるか否かを判定する判定部と、
容器の内部においてワークを移動するように前記ロボットを制御する移動制御部とを含み、
前記移動制御部は、前記判定部が把持領域以外の部分にて目標のワークを把持できると判定した場合に、前記ハンドにて目標のワークを把持して、目標のワークを移動した後に目標のワークを離す制御を実施することを特徴とする、ロボットシステム。
【請求項２】
前記移動制御部は、容器を平面視したときの容器の中央に向かって目標のワークを移動するように前記ロボットを制御する、請求項１に記載のロボットシステム。
【請求項３】
前記移動制御部は、前記ハンドにて目標のワークを把持した後に、目標のワークを持ち上げて目標のワークを移動するように前記ロボットを制御する、請求項１または２に記載のロボットシステム。
【請求項４】
前記移動制御部は、前記ハンドにて目標のワークを把持した後に、目標のワークを持ち上げずに目標のワークを水平方向に移動するように前記ロボットを制御する、請求項１または２に記載のロボットシステム。
【請求項５】
前記移動制御部は、前記判定部が把持領域以外の部分にて目標のワークを把持できないと判定した場合に、前記爪部を駆動せずに前記ハンドを水平方向に移動して、前記ハンドにてワークを押圧するように前記ロボットを制御する、請求項１から４のいずれか一項に記載のロボットシステム。
【請求項６】
容器の内部にバラ積みされたワークを取り出すロボットシステムであって、
複数の爪部を有し、前記爪部にてワークを把持するハンドと、
前記ハンドを移動するロボットと、
ワークまでの距離の情報を取得する３次元センサと、
前記ハンドおよび前記ロボットを制御する制御装置と、を備え、
前記爪部は、ワークを把持するための形状を有する把持領域を有し、
前記制御装置は、前記３次元センサの出力に基づいてワークの３次元情報を取得する取得部と、
ワークの３次元情報に基づいて前記ロボットが取り出す目標のワークを選定する選定部と、
前記ロボットが目標のワークを把持するための目標位置まで移動している期間中に、ワークに前記ハンドが衝突した時に前記ロボットを停止させる衝突検出部と、
前記衝突検出部により停止した前記ロボットの停止位置を検出する位置検出部と、
前記ロボットの目標位置および停止位置に基づいて、前記ハンドの把持領域以外の部分にて目標のワークを押圧できるか否かを判定する判定部と、
容器の内部においてワークを移動するように前記ロボットを制御する移動制御部とを含み、
前記移動制御部は、前記判定部が把持領域以外の部分にて目標のワークを押圧できると判定した場合に、前記爪部を駆動せずに前記ハンドを水平方向に移動して、前記ハンドにてワークを押圧するように前記ロボットを制御することを特徴とする、ロボットシステム。
【請求項７】
前記移動制御部は、容器を平面視したときの容器の中央に向かって目標のワークを移動するように前記ロボットを制御する、請求項６に記載のロボットシステム。
【請求項８】
ロボットおよび複数の爪部を有するハンドを備え、容器の内部にバラ積みされたワークを取り出すロボットシステムの制御方法であって、
ワークまでの距離の情報を取得する３次元センサにてワークを撮像する撮像工程と、
前記３次元センサの出力に基づいてワークの３次元情報を取得する取得工程と、
ワークの３次元情報に基づいて前記ロボットが取り出す目標のワークを選定する選定工程と、
前記ロボットが目標のワークを把持するための目標位置まで移動している期間中に、ワークに前記ハンドが衝突した時に前記ロボットを停止させる停止工程と、
前記停止工程において停止した前記ロボットの停止位置を検出する検出工程と、
前記ロボットの目標位置および停止位置に基づいて、ワークを把持するための形状を有する前記ハンドの把持領域以外の部分にて目標のワークを把持できるか否かを判定する判定工程と、
ワークに前記ハンドが衝突した後に、容器の内部においてワークを移動するように前記ロボットを制御する移動工程とを含み、
前記移動工程は、前記判定工程において把持領域以外の部分にて目標のワークを把持できると判定された場合に、前記ハンドにて目標のワークを把持して、目標のワークを移動した後にワークを離す工程を含むことを特徴とする、ロボットシステムの制御方法。
【請求項９】
前記移動工程は、容器を平面視したときの容器の中央に向かって目標のワークを移動するように前記ロボットを制御する工程を含む、請求項８に記載のロボットシステムの制御方法。
【請求項１０】
前記移動工程は、前記ハンドにて目標のワークを把持した後に、目標のワークを持ち上げて目標のワークを移動するように前記ロボットを制御する工程を含む、請求項８または９に記載のロボットシステムの制御方法。
【請求項１１】
前記移動工程は、前記ハンドにて目標のワークを把持した後に、目標のワークを持ち上げずに目標のワークを水平方向に移動するように前記ロボットを制御する工程を含む、請求項８または９に記載のロボットシステムの制御方法。
【請求項１２】
前記移動工程は、前記判定工程において把持領域以外の部分にて目標のワークを把持できないと判定された場合に、前記爪部を駆動せずに前記ハンドを水平方向に移動して、前記ハンドにてワークを押圧するように前記ロボットを制御する工程を含む、請求項８から１１のいずれか一項に記載のロボットシステムの制御方法。
【請求項１３】
ロボットおよび複数の爪部を有するハンドを備え、容器の内部にバラ積みされたワークを取り出すロボットシステムの制御方法であって、
ワークまでの距離の情報を取得する３次元センサにてワークを撮像する撮像工程と、
前記３次元センサの出力に基づいてワークの３次元情報を取得する取得工程と、
ワークの３次元情報に基づいて前記ロボットが取り出す目標のワークを選定する選定工程と、
前記ロボットが目標のワークを把持するための目標位置まで移動している期間中に、ワークに前記ハンドが衝突した時に前記ロボットを停止させる停止工程と、
前記停止工程において停止した前記ロボットの停止位置を検出する検出工程と、
前記ロボットの目標位置および停止位置に基づいて、ワークを把持するための形状を有する前記ハンドの把持領域以外の部分にて目標のワークを押圧できるか否かを判定する判定工程と、
ワークに前記ハンドが衝突した後に、容器の内部においてワークを移動するように前記ロボットを制御する移動工程とを含み、
前記移動工程は、前記判定工程において把持領域以外の部分にて目標のワークを押圧できると判定された場合に、前記爪部を駆動せずに前記ハンドを水平方向に移動して、前記ハンドにてワークを押圧するように前記ロボットを制御する工程を含むことを特徴とする、ロボットシステムの制御方法。
【請求項１４】
前記移動工程は、容器を平面視したときの容器の中央に向かって目標のワークを移動するように前記ロボットを制御する工程を含む、請求項１３に記載のロボットシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バラ積みされたワークを取り出すロボットシステムおよびロボットシステムの制御方法に関する。
【背景技術】
【０００２】
多数のワークをコンテナなどの容器に収容する場合に、ワークの間隔または向きが不規則に配置されている場合がある。すなわち、容器の内部でワークがバラ積みされている場合がある。従来の技術においては、この容器からワークを取り出すロボットを備えるロボットシステムが知られている（例えば、特開２０１４−２１０３１１号公報）。
【０００３】
バラ積みされたワークは様々な間隔または様々な向きにて収容されている。このために、ワークの位置および姿勢を検出して、ワークを取り出すことが好ましい。従来の技術においては、ワークの位置および姿勢を検出するために、３次元センサが用いられることが知られている（例えば、特許第３９２５０２０号公報）。この方法では、３次元センサにて容器に配置されたワークを撮像する。３次元センサにより取得した画像により、バラ積みされたワークの３次元点群などの情報を取得することができる。そして、ワークの位置および姿勢を検出し、ワークの位置および姿勢に基づいてロボットの位置および姿勢を制御することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２１０３１１号公報
【特許文献２】特許第３９２５０２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ワークを把持するエンドエフェクタとしては、ワークを挟むための爪部を有するハンドを用いることができる。３次元センサは、バラ積みされた最も上側の層のワークの位置および姿勢を検出することができる。すなわち、３次元センサから見える位置に配置されているワークの位置および姿勢を検出することができる。３次元センサとしては２台のカメラを備えるステレオカメラを用いることが知られている。ステレオカメラでは、２台のカメラにて撮像した２次元の画像に基づいて、ワークの表面に設定される測定点の位置を検出することができる。
【０００６】
ところが、ステレオカメラは、２台のカメラにてワークを撮像できないと、ワークの位置および姿勢を正確に検出することができないという特徴を有する。例えば、１つのワークの死角により撮像できなかった他のワークが存在する場合に、他のワークの位置および姿勢は検出することができない。このために、ハンドが目標の位置まで進行する過程において、他のワークに爪部が衝突して、ハンドの爪部が目標の位置まで進行することができない場合があった。この結果、ワークを取り出すことができない場合がある。容器の上部のワークを取り出すことができないと、容器の下部に配置されたワークを取出すことが困難になるために、取り残しが発生してしまう場合がある。
【０００７】
ロボットにて取り出すことができなかったワークは、一旦、取出すことを中止して、周りのワークを取出すことにより、荷崩れを生じさせることができる。この後に、再び取出すことができなかったワークの取出しを試行することができる。しかしながら、この制御では、荷崩れが生じてもワークが所望の位置および姿勢にならない場合がある。または、荷崩れが生じない場合がある。この結果、取出すことができないワークが容器に残存する場合があった。この様に、バラ積みされたワークを取り出す制御には、改善の余地があった。
【課題を解決するための手段】
【０００８】
本開示の第１の態様は、容器の内部にバラ積みされたワークを取り出すロボットシステムである。ロボットシステムは、複数の爪部を有し、爪部にてワークを把持するハンドと、ハンドを移動するロボットとを備える。ロボットシステムは、ワークまでの距離の情報を取得する３次元センサと、ハンドおよびロボットを制御する制御装置とを備える。爪部は、ワークを把持するための形状を有する把持領域を有する。制御装置は、３次元センサの出力に基づいてワークの３次元情報を取得する取得部と、ワークの３次元情報に基づいてロボットが取り出す目標のワークを選定する選定部とを含む。制御装置は、ロボットが目標のワークを把持するための目標位置まで移動している期間中に、ワークにハンドが衝突した時にロボットを停止させる衝突検出部と、衝突検出部により停止したロボットの停止位置を検出する位置検出部とを含む。制御装置は、ロボットの目標位置および停止位置に基づいて、ハンドの把持領域以外の部分にて目標のワークを把持できるか否かを判定する判定部を含む。制御装置は、容器の内部においてワークを移動するようにロボットを制御する移動制御部を含む。移動制御部は、判定部が把持領域以外の部分にて目標のワークを把持できると判定した場合に、ハンドにて目標のワークを把持して、目標のワークを移動した後に目標のワークを離す制御を実施する。
【０００９】
本開示の第２の態様は、容器の内部にバラ積みされたワークを取り出すロボットシステムである。ロボットシステムは、複数の爪部を有し、爪部にてワークを把持するハンドと、ハンドを移動するロボットとを備える。ロボットシステムは、ワークまでの距離の情報を取得する３次元センサと、ハンドおよびロボットを制御する制御装置とを備える。爪部は、ワークを把持するための形状を有する把持領域を有する。制御装置は、３次元センサの出力に基づいてワークの３次元情報を取得する取得部と、ワークの３次元情報に基づいてロボットが取り出す目標のワークを選定する選定部とを含む。制御装置は、ロボットが目標のワークを把持するための目標位置まで移動している期間中に、ワークにハンドが衝突した時にロボットを停止させる衝突検出部と、衝突検出部により停止したロボットの停止位置を検出する位置検出部とを含む。制御装置は、ロボットの目標位置および停止位置に基づいて、ハンドの把持領域以外の部分にて目標のワークを押圧できるか否かを判定する判定部を含む。制御装置は、容器の内部においてワークを移動するようにロボットを制御する移動制御部を含む。移動制御部は、判定部が把持領域以外の部分にて目標のワークを押圧できると判定した場合に、爪部を駆動せずにハンドを水平方向に移動して、ハンドにてワークを押圧するようにロボットを制御する。
【００１０】
本開示の第３の態様は、ロボットおよび複数の爪部を有するハンドを備え、容器の内部にバラ積みされたワークを取り出すロボットシステムの制御方法である。制御方法は、ワークまでの距離の情報を取得する３次元センサにてワークを撮像する撮像工程と、３次元センサの出力に基づいてワークの３次元情報を取得する取得工程とを含む。制御方法は、ワークの３次元情報に基づいてロボットが取り出す目標のワークを選定する選定工程を含む。制御方法は、ロボットが目標のワークを把持するための目標位置まで移動している期間中に、ワークにハンドが衝突した時にロボットを停止させる停止工程と、停止工程にて停止したロボットの停止位置を検出する検出工程とを含む。制御方法は、ロボットの目標位置および停止位置に基づいて、ワークを把持するための形状を有するハンドの把持領域以外の部分にて目標のワークを把持できるか否かを判定する判定工程を含む。制御方法は、ワークにハンドが衝突した後に、容器の内部においてワークを移動するようにロボットを制御する移動工程を含む。移動工程は、判定工程において把持領域以外の部分にて目標のワークを把持できると判定された場合に、ハンドにて目標のワークを把持して、目標のワークを移動した後にワークを離す工程を含む。
【００１１】
本開示の第４の態様は、ロボットおよび複数の爪部を有するハンドを備え、容器の内部にバラ積みされたワークを取り出すロボットシステムの制御方法である。制御方法は、ワークまでの距離の情報を取得する３次元センサにてワークを撮像する撮像工程と、３次元センサの出力に基づいてワークの３次元情報を取得する取得工程とを含む。制御方法は、ワークの３次元情報に基づいてロボットが取り出す目標のワークを選定する選定工程を含む。制御方法は、ロボットが目標のワークを把持するための目標位置まで移動している期間中に、ワークにハンドが衝突した時にロボットを停止させる停止工程と、停止したロボットの停止位置を検出する検出工程とを含む。制御方法は、ロボットの目標位置および停止位置に基づいて、ワークを把持するための形状を有するハンドの把持領域以外の部分にて目標のワークを押圧できるか否かを判定する判定工程を含む。制御方法は、ワークにハンドが衝突した後に、容器の内部においてワークを移動するようにロボットを制御する移動工程を含む。移動工程は、判定工程において把持領域以外の部分にて目標のワークを押圧できると判定された場合に、爪部を駆動せずにハンドを水平方向に移動して、ハンドにてワークを押圧するようにロボットを制御する工程を含む。
【発明の効果】
【００１２】
本開示の態様によれば、バラ積みされたワークから多くのワークを取り出すことができるロボットシステムおよびロボットシステムの制御方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態におけるロボットシステムの斜視図である。
【図２】実施の形態におけるロボットシステムのブロック図である。
【図３】実施の形態におけるハンドの拡大斜視図である。
【図４】実施の形態におけるレンジセンサおよびワークの部分断面図である。
【図５】ハンドの把持領域においてワークを把持するときの第１工程の概略側面図である。
【図６】ハンドの把持領域においてワークを把持するときの第２工程の概略側面図である。
【図７】実施の形態における第１の制御の第１工程を説明する概略側面図である。
【図８】実施の形態における第１の制御の第２工程を説明する概略側面図である。
【図９】実施の形態における第１の制御の第３工程を説明する概略側面図である。
【図１０】把持領域以外の部分にてワークを把持できるか否かを判定するための判定範囲を説明する概略側面図である。
【図１１】実施の形態における第２の制御の第１工程を説明する概略側面図である。
【図１２】実施の形態における第２の制御の第２工程を説明する概略側面図である。
【図１３】把持領域以外の部分にてワークを押圧できるか否かを判定するための判定範囲を説明する概略側面図である。
【図１４】実施の形態における第１の制御および第２の制御を含む制御のフローチャートである。
【図１５】ワークを爪部の先端部にて把持して移動するときの他の形態を説明する概略側面図である。
【図１６】実施の形態における第１の制御を実施せずに第２の制御を実施する制御のフローチャートである。
【図１７】ワークを移動する方向を説明する部分断面図である。
【発明を実施するための形態】
【００１４】
図１から図１７を参照して、実施の形態におけるロボットシステムおよびロボットシステムの制御方法について説明する。本実施の形態のロボットシステムは、容器の内部に山の様に積まれているワークを取り出して、予め定められた位置までワークを搬送する作業を実施する。
【００１５】
図１は、本実施の形態におけるロボットシステムの斜視図である。ロボットシステム５は、ロボット１およびハンド２を備える。ロボットシステム５は、ロボット１およびハンド２を制御する制御装置４を備える。本実施の形態のロボット１は、複数の関節部を含む多関節ロボットである。本実施の形態のロボット１は、上部アーム１１と下部アーム１２とを含む。下部アーム１２は、旋回ベース１３に支持されている。旋回ベース１３は、ベース１４に支持されている。ロボット１は、上部アーム１１の端部に連結されているリスト１５を含む。リスト１５は、ハンド２を固定するフランジ１６を含む。これらのロボット１の構成部材は、予め定められた回転軸の周りに回転するように形成される。ロボットとしては、この形態に限られず、ハンドの位置および姿勢を変更可能な任意のロボットを採用することができる。
【００１６】
ハンド２は、ワークＷを把持したり解放したりする作業ツールである。ハンド２は、複数の爪部３を有し、爪部３がワークＷを挟むことによりワークＷを把持する。ハンド２は爪部３が開いたり閉じたりするように形成されている。本実施の形態のハンド２は、２つの爪部３を有するが、この形態に限られない。ハンドは、３つ以上の爪部にてワークを把持しても構わない。
【００１７】
ワークＷは、容器としてのコンテナ９の内部に配置されている。容器としては、箱または袋などのワークＷを収容できる任意の部材を採用することができる。コンテナ９の内部には、ワークＷがバラ積みされている。コンテナ９は、架台８１に載置されている。本実施の形態のロボットシステム５は、コンテナ９からワークＷを１個ずつ取り出して、所定の位置まで搬送する。
【００１８】
ロボットシステム５は、ワークＷの位置および姿勢を検出するための３次元センサとしてのレンジセンサ６を備える。レンジセンサ６は、ワークＷまでの距離の情報を取得する。レンジセンサ６は、ワークＷを撮像できる位置に配置される。本実施の形態では、レンジセンサ６は、コンテナ９の上方に配置されている。レンジセンサ６は、支持部材８３により固定されている。レンジセンサ６は、制御装置４により制御されている。
【００１９】
本実施の形態のレンジセンサ６は、２台のカメラ６１，６２を含むステレオカメラである。２台のカメラ６１，６２は、互いに離れて配置されている。カメラ６１，６２は、２次元の画像を撮像することができる２次元カメラである。カメラ６１，６２としては、ＣＣＤ（Charge-Coupled Device）センサまたはＣＭＯＳ（Complementary Metal-Oxide Semiconductor）センサなどの撮像素子を備えた任意のカメラを採用することができる。２台のカメラ６１，６２の相対的な位置は予め定められている。本実施の形態のレンジセンサ６は、ワークＷに向かって縞模様などのパターン光を投影するプロジェクタ６３を含む。
【００２０】
図２に、本実施の形態におけるロボットシステムのブロック図を示す。図１および図２を参照して、ロボット１は、ロボット１の位置および姿勢を変化させるロボット駆動装置を含む。ロボット駆動装置は、アームおよびリスト等の構成部材を駆動するロボット駆動モータ２２を含む。ロボット駆動モータ２２が駆動することにより、それぞれの構成部材の向きが変化する。
【００２１】
ロボットシステム５は、ハンド２を駆動するハンド駆動装置を備える。ハンド駆動装置は、ハンド２の爪部３を駆動するハンド駆動モータ２１を含む。ハンド駆動モータ２１が駆動することによりハンド２の爪部３が開いたり閉じたりする。なお、ハンドは、空気圧などにより駆動するように形成されていても構わない。
【００２２】
制御装置４は、ＣＰＵ（Central Processing Unit）と、ＣＰＵにバスを介して接続されたＲＡＭ（Random Access Memory）およびＲＯＭ（Read Only Memory）等を有する演算処理装置（コンピュータ）を含む。制御装置４には、ロボット１の動作を行うために予め作成された動作プログラム４１が入力される。動作プログラム４１は、記憶部４２に記憶される。本実施の形態のロボットシステム５は、動作プログラム４１に基づいてワークＷを搬送する。ロボット１は、自動的に予め定められた位置までワークＷを搬送することができる。
【００２３】
動作制御部４３は、動作プログラム４１に基づいてロボット１を駆動するための動作指令をロボット駆動部４５に送出する。ロボット駆動部４５は、ロボット駆動モータ２２を駆動する電気回路を含む。ロボット駆動部４５は、動作指令に基づいてロボット駆動モータ２２に電気を供給する。
【００２４】
また、動作制御部４３は、動作プログラム４１に基づいてハンド２を駆動する動作指令をハンド駆動部４４に送出する。ハンド駆動部４４は、ハンド駆動モータ２１を駆動する電気回路を含む。ハンド駆動部４４は、動作指令に基づいてハンド駆動モータ２１に電気を供給する。更に、動作制御部４３は、動作プログラム４１に基づいて、レンジセンサ６を駆動する動作指令をレンジセンサ６に送出する。
【００２５】
ロボット１は、ロボット１の位置および姿勢を検出するための状態検出器を含む。本実施の形態における状態検出器は、アーム等の構成部材の駆動軸に対応するロボット駆動モータ２２に取り付けられた位置検出器１８を含む。位置検出器１８の出力により、それぞれの駆動軸における構成部材の向きを取得することができる。例えば、位置検出器１８は、ロボット駆動モータ２２が駆動するときの回転角を検出する。また、位置検出器１８は、ロボット駆動モータ２２の回転角に基づいて、ロボット駆動モータ２２の回転速度を算出することができる。位置検出器１８の出力に基づいて、ハンド２の位置および姿勢が検出される。
【００２６】
制御装置４は、動作プログラム４１に基づいてロボット１の動作を監視する監視部５２を含む。監視部５２は、予め定められた条件においてロボット１の動作を制御する。本実施の形態の監視部５２は、コンテナ９から取り出すワークＷを選定し、ワークＷをハンド２にて把持する制御を実施する。また、監視部５２は、ハンド２がワークＷに衝突したことを検出して、コンテナ９の内部でワークＷを移動する制御を実施する。
【００２７】
制御装置４は、レンジセンサ６の出力に基づいて、ワークＷの３次元情報を取得する取得部５８を含む。取得部５８は、カメラ６１，６２にて撮像した画像を処理する。取得部５８は、ステレオ法によりワークＷの３次元情報を生成することができる。取得部５８は、２台のカメラ６１，６２にて撮像される２つの画像の視差に基づいて、ワークＷに設定された測定点までの距離を算出する。なお、カメラ６１，６２にて取得した画像を処理する演算処理装置が制御装置４とは別に配置されていても構わない。
【００２８】
３次元情報は、ワークＷの表面に設定された測定点の位置と、レンジセンサ６から測定点までの距離とに関する情報を含む。３次元情報は、例えば、距離画像または３次元マップである。距離画像は、距離に応じて画像の画素の明るさ又は色を変化させた画像である。３次元マップは、複数の測定点に関して、予め定められた座標系における座標値および距離の情報を含む。
【００２９】
監視部５２は、ロボット１にて取り出すための目標のワークＷを選定する選定部５９を含む。選定部５９は、レンジセンサ６の画像から取得される３次元情報に基づいて、目標のワークＷを選定する。選定部５９は、３次元情報に基づいてワークＷの位置および姿勢を検出する。選定部５９は、任意の制御により目標のワークＷを選定することができる。例えば、レンジセンサ６から最も近いワークＷを目標のワークＷに設定することができる。すなわち、ワークＷの位置が高いものから順番にワークＷを選定することができる。または、所定の条件においては、ワークＷの位置が低いものを選定しても構わない。例えば、選定部５９は、ハンドにて把持可能な部分が大きく露出しており、容易に把持することができるワークＷを選定しても構わない。
【００３０】
また、選定部５９は、ハンド２によりワークＷの把持が可能か否かを判定しても構わない。例えば、ワークＷがコンテナ９の壁面の近くに存在する場合には、ワークＷの側方にハンド２の爪部３を配置することができない場合がある。このような場合には、選定部５９は、ワークＷの把持が不可能であると判定しても構わない。
【００３１】
そして、選定部５９は、目標のワークＷの位置および姿勢に応じて、ロボット１がワークＷを把持できる目標位置および目標姿勢を算出する。選定部５９は、動作制御部４３にロボット１の目標位置および目標姿勢を送信する。ロボット１は、目標位置および目標姿勢に向かって位置および姿勢を変更する。この時に、ハンド２は、爪部３同士の間にワークＷが配置されるように、爪部３を開いた状態にする。ロボット１が目標位置および目標姿勢に到達した後に、ハンド２の爪部３が閉じることにより、ワークＷを把持することができる。次に、動作制御部４３は、ロボット１の位置および姿勢を変更してワークＷを所望の位置まで搬送する。
【００３２】
このように、本実施の形態のロボットシステム５は、レンジセンサ６の出力に基づいて取得したワークＷの３次元情報に基づいて、バラ積みされたワークＷを搬送することができる。
【００３３】
図３に、本実施の形態におけるハンドの斜視図を示す。本実施の形態におけるワークＷは、円柱状の形状を有する。特に、本実施の形態におけるワークＷは、円筒の形状を有する。ハンド２の爪部３は、矢印９１に示すように、互いに対向する方向に移動する。本実施の形態における爪部３は、凹部３ａを有する。凹部３ａは、複数の爪部３が互いに対向する面に形成されている。凹部３ａは、平面状に形成されている爪部３の表面から凹むように形成されている。２つの爪部３に形成された凹部３ａは、互いに対向するように形成されている。
【００３４】
本実施の形態の爪部３は、ワークＷを把持するための形状を有する把持領域を有する。本実施の形態では、ハンド２は、互いに対向する凹部３ａにてワークＷを挟むように形成されている。凹部３ａの表面は、把持領域３ｒに相当する。ワークＷは、爪部３が移動する方向と垂直な方向にワークＷの軸方向が延びるように把持される。把持領域３ｒにてワークＷを挟むことにより、ワークＷを安定して把持することができる。把持領域３ｒは、ワークＷの少なくとも一部が接触する領域である。把持領域は、ワークＷを把持するための任意の形状を有することができる。例えば、把持領域は、ワークの表面の形状に対応し、ワークの表面に面接触する形状を有していても構わない。
【００３５】
爪部３は、先端の部分である先端部３ｂを有する。先端部３ｂは、凹部３ａよりも爪部３の先端に配置されている。本実施の形態の先端部３ｂの互いに対向する表面は、平面状に形成されている。
【００３６】
図４に、本実施の形態におけるレンジセンサとワークとの関係を説明する部分断面図を示す。図４では、説明のためにレンジセンサ６とコンテナ９との距離が短くなるように記載している。コンテナ９の内部には、複数のワークＷ，Ｗ１，Ｗ２，Ｗ３，Ｗ４が配置されている。本実施の形態においては、コンテナ９の少なくとも１つの方向において、ワークＷ同士の間隔またはワークＷの姿勢が同一でない状態をバラ積みされた状態と称する。本実施の形態では、複数のワークＷは、ワークＷの軸線が互いに平行になるようにコンテナ９に配置されている。しかしながら、ワークＷの軸線の垂直な方向においては、ワークＷ同士の間隔が一定でないために、バラ積みされた状態である。なお、バラ積みされた状態では、複数のワークの向きが不規則であっても構わない。
【００３７】
レンジセンサ６のカメラ６１は、撮像が可能な範囲である視野６１ａを有する。カメラ６２は、撮像が可能な範囲である視野６２ａを有する。カメラ６１，６２は、視野６１ａ，６２ａの内部にコンテナ９が収容されように配置されることが好ましい。すなわち、カメラ６１，６２は、コンテナ９の上方から見える全てのワークを撮像できるように配置されることが好ましい。
【００３８】
図５に、ハンドの把持領域にてワークを把持するときの第１工程の説明図を示す。図４および図５を参照して、この例では、選定部５９は、複数のワークＷのうちワークＷ４を選定している。ワークＷ４は、バラ積みされた層のうち最も上側の層に配置されている。図５に示す状態では、ロボット１がワークＷを把持するための目標位置および目標姿勢に到達している。爪部３の凹部３ａ同士の間にワークＷ４が配置される。すなわち、ロボット１は、把持領域３ｒにて挟まれる領域にワークＷ４が配置されるように位置および姿勢が制御される。そして、矢印９２に示すように爪部３が閉じる。
【００３９】
図６に、ハンドの把持領域にてワークを把持するときの第２工程の説明図を示す。爪部３が閉じることにより、ワークＷ４は凹部３ａに挟まれる。このように、爪部３の把持領域３ｒにてワークＷ４が挟まれることにより、ワークＷ４が安定して把持される。ワークＷ４を搬送している期間中にハンド２からワークＷが脱落することはなく、安定してワークＷ４を搬送することができる。
【００４０】
図７に、本実施の形態における第１の制御の第１工程を説明する概略側面図を示す。図４および図７を参照して、ワークＷ１について着目する。ワークＷ１は、バラ積みされた山の最も上側の層に配置されている。ワークＷ１の下側には、ワークＷ３が配置されている。またワークＷ１の側方にはワークＷ２が配置されている。ここで、ワークＷ３は、視野６１ａ，６２ａの内部に配置されている。ところが、カメラ６２の視線６２ｃの方向において、ワークＷ３の前にはワークＷ１が配置されている。ワークＷ３は、ワークＷ１の死角に入ってしまう。このため、カメラ６２は、ワークＷ３の画像を撮像することができない。この結果、取得部５８にて生成される３次元情報には、ワークＷ３は存在していない。選定部５９は、ワークＷ３が存在しないとして処理するために、ワークＷ１を取り出すことが可能と判定する場合がある。この結果、選定部５９は、ロボット１にて取り出すワークとしてワークＷ１を選定する場合がある。
【００４１】
図７に示すように、ワークＷ１を把持するために、ロボット１が目標位置および目標姿勢に向かって移動している期間中に、ハンド２の爪部３がワークＷ３に衝突する場合がある。ロボット１は、ワークＷ１を把持する為の目標位置および目標姿勢までハンド２を移動することができない場合がある。
【００４２】
図２を参照して、監視部５２は、ワークＷにハンド２が衝突した時にロボット１を停止させる衝突検出部５３を有する。図２および図７を参照して、衝突検出部５３は、ロボット１が移動前の位置および姿勢から目標位置および目標姿勢まで移動している期間中に、ハンド２がワークに衝突したことを検出する。本実施の形態における衝突検出部５３は、ワークＷ３にハンド２が衝突した場合に、ロボット１を停止する制御を実施する。
【００４３】
衝突検出部５３は、任意の制御にて、ハンド２がワークＷに衝突したことを検出することができる。例えば、衝突検出部５３は、ロボット駆動モータ２２の外乱値に基づいて衝突を検出することができる。または、動作制御部４３は、ロボット１を目標位置および目標姿勢まで駆動するために、ロボット駆動モータ２２のフィードバック制御を実施している場合がある。この場合に、ロボット駆動モータ２２に供給する電流の増加量が所定の判定値を超えた場合に、衝突検出部５３は、ハンド２がワークＷに衝突したと判定することができる。
【００４４】
または、ハンドに距離センサを配置することができる。衝突検出部は、ハンドとワークとの距離を取得することにより、ハンドがワークに衝突したことを検出しても構わない。または、ハンドの先端に接触センサを配置することができる。衝突検出部は、接触センサの出力に基づいてハンドがワークに接触したことを検出しても構わない。または、リストに力覚センサを配置することができる。力覚センサにより検出されるハンドに作用する力が所定の判定値よりも大きくなった場合に、衝突検出部は、ハンドがワークに接触したと判定しても構わない。
【００４５】
監視部５２は、衝突検出部５３にて停止したロボット１の停止位置および停止姿勢を検出する位置検出部５４を含む。位置検出部５４は、位置検出器１８の出力に基づいて、ロボット１の停止位置および停止姿勢を検出する。
【００４６】
図２および図７を参照して、衝突検出部５３の機能により、少なくとも一つの爪部３がワークに衝突した場合には、ロボット１は停止する。この状態では、爪部３を閉じてもワークＷ１を凹部３ａにて把持することができない。すなわち、ハンド２は、ワークＷを確実に把持することができない。しかしながら、本実施の形態の第１の制御では、凹部３ａが形成されている把持領域３ｒ以外の部分（非把持領域）にて目標のワークＷ１を把持できる場合には、ワークＷ１を把持する。そして、コンテナ９の内部においてワークＷ１を移動する制御を実施する。
【００４７】
監視部５２は、ロボット１の目標位置および停止位置に基づいて、ハンド２の把持領域３ｒ以外の部分にて、目標のワークＷ１を把持できるか否かを判定する判定部５５を有する。本実施の形態の判定部５５は、爪部３の先端部３ｂにてワークＷ１を把持できるか否かを判定する。ここでの例では、判定部５５は、爪部３の先端部３ｂにてワークＷ１を把持できると判定する。
【００４８】
図８に、本実施の形態における第１の制御の第２工程を説明する側面図を示す。図２、図７および図８を参照して、監視部５２は、コンテナ９の内部においてワークＷ１を移動するようにロボット１を制御する移動制御部５６を含む。判定部５５にてワークＷ１の把持が可能であると判定された場合に、移動制御部５６は、爪部３を矢印９２に示すように閉じる。ワークＷ１は、先端部３ｂにて把持される。
【００４９】
図９に、本実施の形態の第１の制御の第３工程を説明する側面図を示す。移動制御部５６は、矢印９３に示すように、ワークＷ１を持ち上げて、コンテナ９の内部における他の位置に移動するようにロボット１を制御する。ワークＷ１を移動することにより、コンテナ９の内部におけるワークＷ１の位置が変化する。ワークＷ１がハンド２の把持領域３ｒにて把持できる状態になる場合がある。このために、ワークＷ１の新たな位置および姿勢にて、ワークＷ１の取出しを試行することができる。
【００５０】
また、コンテナ９を平面視したときの複数のワークＷの位置および姿勢（荷姿）を変更できる場合がある。例えば、図９に示す例において、ワークＷ２の真上においてワークＷ１を離すことにより、ワークＷ２およびワークＷ３の位置および姿勢が変化する場合がある。または、ワークＷ１を移動した時に荷崩れが生じて、複数のワークＷの位置および姿勢が変化する場合がある。または、ワークＷ１の下側に配置されていたワークＷが把持できる状態になる場合がある。このように、ワークＷの位置および姿勢を変更することができるために、ワークＷを取り出す試行の機会が増えて、多くのワークＷをコンテナ９から取り出すことができる。
【００５１】
図９に示すように、爪部３の先端部３ｂにてワークＷ１を把持している場合には、把持が不安定な状態である。把持領域以外の部分にてワークＷ１を把持する場合には、ワークＷ１を搬送している途中に、ワークＷ１が爪部３から落下する場合がある。しかしながら、ワークＷ１が落下した場合においても、ワークＷ１の位置および姿勢が変化したり、コンテナ９の内部で荷崩れが生じたりする。このため、ワークＷの位置および姿勢が変化した状態で、ワークＷの取り出しを試行することができる。
【００５２】
第１の制御の後には、ロボットシステム５は、ワークＷの位置が変化した後の状態をレンジセンサ６によって撮像する。そして、新たに取得した３次元情報に基づいて、ワークＷを取り出す作業を実施することができる。
【００５３】
図１０に、第１の制御において判定部が判定を行う際の判定範囲を説明するワークおよび爪部の側面図を示す。矢印９４は、ロボット１が目標位置および目標姿勢に到達するときのハンド２の移動方向を示している。図１０の左側の図は、爪部３の把持領域３ｒにてワークＷを把持したときの図である。ロボット１は、目標位置および目標姿勢まで到達している。このために、凹部３ａにてワークＷを把持することができる。
【００５４】
一方で、図１０の右側の図は、ハンド２が移動している期間中に爪部３がワークＷ３に衝突した例である。この場合に、衝突検出部５３の機能により、ロボット１は停止する。この時のロボット１の位置および姿勢は、停止位置および停止姿勢である。判定部５５は、矢印９４に示す爪部３の進行方向における目標位置と停止位置との差ｄ１を算出する。ロボット１の目標位置と停止位置との差としては、ハンド２の目標位置と停止位置との差を採用することができる。図１０に示す例では、判定部５５は、矢印９４の方向における凹部３ａの頂点同士の距離を差ｄ１として検出している。ハンドの位置は、予め定められた座標系の座標値にて表すことができる。例えば、ロボットの位置および姿勢が変化しても原点の位置が変化しないワールド座標系の座標値にて表すことができる。判定部５５は、この座標値に基づいて差ｄ１を算出することができる。
【００５５】
判定部５５は、差ｄ１が予め定められた判定範囲内である場合には、ワークＷ１を先端部３ｂにて把持することが可能であると判定する。例えば、判定範囲の下限値はゼロよりも僅かに大きな値に設定することができる。また、矢印９２に示す爪部３が移動する方向に平行なワークＷ１の直径と、ワークＷ１の表面との交点である点Ｐ１を算出することができる。判定範囲の上限値は、爪部３を閉じたときに点Ｐ１が先端部３ｂの表面に接触する値の最大値を設定することができる。判定部５５は、差ｄ１が判定範囲よりも大きい場合に、爪部３の先端部３ｂにてワークＷ１を把持することが不可能であると判定する。
【００５６】
なお、目標位置と停止位置との差を検出する場合には、ハンド２における任意の位置を採用することができる。例えば、判定部５５は、ハンド２のツール先端点ＴＣＰ同士の距離を算出しても構わない。
【００５７】
次に、本実施の形態の第２の制御について説明する。図１１に、本実施の形態における第２の制御の第１工程を説明する側面図を示す。ここでの例では、判定部５５がハンド２の把持領域以外の部分にて目標のワークＷを把持できないと判定した場合に、第２の制御を実施している。図２および図１１を参照して、第２の制御において、判定部５５は、ワークＷ１を爪部３にて押圧できるか否かを判定する。換言すると、判定部５５は、爪部３を駆動せずに開いた状態を維持しながら水平方向に移動した時に、爪部３がワークＷ１と接触するか否かを判定する。図１１に示す例においては、判定部５５は、爪部３にてワークＷ１の上部を押圧することができると判定する。
【００５８】
判定部５５がワークＷ１を爪部にて押圧できると判定した場合に、移動制御部５６は、爪部３を駆動せずに開いた状態を維持する。そして、移動制御部５６は、ハンド２を移動して、ハンド２にてワークＷを押圧するようにロボット１を制御する。移動制御部５６は、矢印９８に示すようにハンド２を水平方向に移動する。
【００５９】
図１２に、本実施の形態における第２の制御の第２工程を説明する側面図を示す。矢印９８に示すようにハンド２の爪部３が移動することにより、爪部３の先端部３ｂにてワークＷ１を押圧することができる。ワークＷ１が矢印９９に示すように移動することにより、ワークＷ１の位置が変化する。また、平面視したときの複数のワークの位置および姿勢が変化する場合がある。図１２に示す例では、矢印１００に示すようにワークＷ３の位置が変化する。
【００６０】
第２の制御においても、ワークＷ１の位置および姿勢が変化したり、コンテナ９の内部で荷崩れが生じたりする。このため、ワークＷの位置および姿勢が変化した状態で、ワークＷの取り出しを試行することができる。ワークを取り出す機会が増加して、多くのワークを取り出すことができる。
【００６１】
第２の制御を実施した後には、レンジセンサ６を用いてワークＷの新たな３次元情報を取得する。そして、ワークＷを取り出す制御を継続することができる。
【００６２】
図１３に、第２の制御における判定範囲を説明する概略図を示す。図１３の左側の図は、ロボット１が目標位置および目標姿勢まで到達して、ワークＷを把持した状態を示す。ワークＷは、把持領域３ｒを構成する凹部３ａに挟まれている。
【００６３】
図１３の右側の図は、爪部３がワークＷ３に衝突して、ロボット１が停止位置および停止姿勢にて停止したときの図である。判定部５５は、矢印９４に示すハンド２の移動方向における目標位置と停止位置との差ｄ２を算出することができる。差ｄ２は、図１０に示す差ｄ１よりも大きくなる。判定部５５は、点Ｐ１を設定することができる。また、判定部５５は、矢印９２に示す爪部３が移動する方向に垂直なワークＷ１の直径と、ワークＷ１の表面との交点である点Ｐ２を設定することができる。第２の制御における判定範囲としては、爪部３を水平方向に移動した時に、先端部３ｂがワークＷ１の点Ｐ１から点Ｐ２までの領域に接触する範囲を設定することができる。すなわち、判定範囲は、ハンド２を水平方向に移動したときに、ワークＷ１の上部に爪部３の先端が接触する領域に選定される。判定部５５は、差ｄ２が判定範囲内であれば、ハンド２にてワークＷ１を押圧することが可能であると判定することができる。
【００６４】
図１４に、第１の制御の後に第２の制御を実施する制御のフローチャートを示す。図２および図１４を参照して、ステップ１０１において、レンジセンサ６は、ワークＷを撮像する撮像工程を実施する。
【００６５】
ステップ１０２において、取得部５８は、レンジセンサ６の出力に基づいてワークＷの３次元情報を取得する取得工程を実施する。取得部５８は、ワークの表面に設定された測定点までの距離に基づいてワークの３次元情報を生成する。
【００６６】
ステップ１０３において、選定部５９は、ワークの３次元情報に基づいて、ロボット１が取り出す目標のワークＷを選定する選定工程を実施する。選定部５９は、３次元情報からワークＷの位置および姿勢を算出する。選定部５９は、ワークＷの位置および姿勢に基づいて、目標のワークＷを選定する。そして、選定部５９は、目標のワークＷの位置および姿勢に基づいて、ロボット１の目標位置および目標姿勢を設定する。
【００６７】
次に、ステップ１０４において、動作制御部４３は、ロボット１を目標位置および目標姿勢に向けて駆動する工程を実施する。ロボット１の位置および姿勢が変更される。
【００６８】
次に、ステップ１０５において、衝突検出部５３は、ロボット１が目標のワークＷを把持するための目標位置および目標姿勢まで移動している期間中に、ワークＷにハンド２が衝突したか否かを判定する。衝突検出部５３は、ワークＷがハンド２に衝突したことを検出した場合に、ロボット１を停止させる停止工程を実施する。ステップ１０５において、ハンド２がワークＷに衝突して停止しなかった場合には、ロボット１は、目標位置および目標姿勢に到達している。この場合には、制御はステップ１０６に移行する。
【００６９】
ステップ１０６において、動作制御部４３は、ワークＷをハンド２にて把持して、ワークＷを取り出す取出し工程を実施する。この場合には、ワークＷはハンド２の把持領域にて把持されて所定の位置まで搬送される。
【００７０】
次に、ステップ１０７において、監視部５２は、予め定められた個数のワークＷを取り出したか否かを判定する。この個数の判定値は、作業者により任意の個数を設定することができる。ステップ１０７において、予め定められた個数のワークＷを取り出した場合には、この制御を終了する。ステップ１０７において、予め定めた個数のワークＷを取り出していない場合には、制御はステップ１０３に移行する。すなわち、ロボット１にて取り出した個数が予め定められた個数の判定値未満の場合には、ステップ１０３に移行する。
【００７１】
そして、ステップ１０３において、選定部５９は、前回の取得工程にて取得した３次元情報に基づいて、次に取り出すワークＷを選定する。このように、ロボット１にて取り出すワークＷを順に選定して、ワークＷを１個ずつ取り出す工程を実施する。
【００７２】
ステップ１０５において、衝突検出部５３がハンド２の衝突を検出して停止した場合に、制御はステップ１１１に移行する。制御装置４は、第１の制御を実施する。ステップ１１１において、位置検出部５４は、ロボット１が停止したときの停止位置および停止姿勢を検出する検出工程を実施する。
【００７３】
次に、判定部５５は、ロボット１の目標位置および停止位置に基づいて、ハンド２の把持領域３ｒ以外の部分にて目標のワークＷを把持できるか否かを判定する判定工程を実施する。ステップ１１２において、判定部５５は、停止位置と目標位置とを比較する。ステップ１１３において、判定部５５は、現在のハンド２の位置および姿勢において爪部３を閉じたときに、凹部３ａ以外の部分にてワークＷを把持できるか否かを判定する。ステップ１１３において、爪部３の先端部３ｂにてワークＷを把持することができると判定された場合には、制御はステップ１１４に移行する。
【００７４】
ステップ１１４において、移動制御部５６は、コンテナ９の内部においてワークＷを移動するようにロボット１を制御する移動工程を実施する。移動制御部５６は、爪部３の先端部３ｂにてワークＷを把持する工程を実施する。移動制御部５６は、目標のワークＷを移動した後にワークＷを離す工程を実施する。この結果、コンテナ９の内部におけるワークの位置が変化する。
【００７５】
この後に、制御はステップ１０１に戻り、再びレンジセンサ６にてワークＷを撮像する撮像工程を実施する。そして、制御装置４は、ワークＷを取り出す制御を継続する。
【００７６】
ステップ１１３において、判定部５５が、把持領域３ｒ以外の部分にてワークＷを把持することができないと判定した場合に、制御はステップ１１５を移行する。この場合に、制御装置４は、第２の制御を実施する。ステップ１１５において、判定部５５は、爪部にて目標のワークＷを押圧することが可能か否かを判定する判定工程を実施する。
【００７７】
ステップ１１５において、ワークを押圧することが可能であると判定された場合に、制御はステップ１１６に移行する。ステップ１１６において、移動制御部５６は、爪部３を駆動せずに開いた状態を維持しながらハンド２を水平方向に移動する移動工程を実施する。移動制御部５６は、ハンド２にてワークＷを押圧するようにロボット１を制御する。
【００７８】
この後に、制御はステップ１０１に戻り、再びレンジセンサ６にてワークＷを撮像する撮像工程を実施する。そして、制御装置４は、ワークＷを取り出す制御を継続する。
【００７９】
ステップ１１５において、判定部５５が目標のワークＷの押圧が不可能であると判定した場合に、制御はステップ１１７に移行する。すなわち、目標のワークＷを爪部３の先端部３ｂにて把持することができずに、更に、爪部３を水平方向に移動しても爪部３がワークＷに接触しない場合に、制御はステップ１１７に移行する。ステップ１１７において、選定部５９は、目標のワークＷを変更する変更工程を実施する。すなわち、現在の目標のワークを取り出すことを中止して、別のワークＷを目標のワークに設定する。選定部５９は、現在の３次元情報に基づいて、新たなワークＷを選定する。選定部５９は、新たなワークＷの位置および姿勢に基づいて、ロボット１の目標位置および目標姿勢を設定する。この後に、制御はステップ１０４に移行する。制御装置４は、ワークＷを取り出す制御を継続する。
【００８０】
図１４に示す制御は、例えば、ステップ１０７における個数の判定値を５個などに設定して、繰り返して実施することができる。または、ステップ１０７における予め定められた個数の判定値を、コンテナ９に収容されている全てのワークＷの個数に設定することができる。
【００８１】
図１５に、第１の制御において、把持領域以外の部分にてワークを把持した時にワークを移動する他の方法を説明する側面図を示す。図９に示す制御では、ワークＷを爪部３の先端部３ｂにて把持した後に、ワークＷを持ち上げて移動している。ワークＷの移動方法としては、この形態に限られず、任意の方法にて移動することができる。図１５に示す例では、移動制御部５６は、ハンド２にて目標のワークＷ１を把持した後に、目標のワークＷ１を持ち上げずに、目標のワークＷ１を水平方向に移動するようにロボット１を制御している。すなわち、ワークＷ１を把持した後に、矢印９５に示すように、ワークＷ１の高さを維持しながらワークＷ１を移動している。
【００８２】
この移動方法によっても、矢印９６に示すようにワークＷ１の位置を変化させることができる。また、図１５に示す例では、ワークＷ１が移動することにより、ワークＷ２の位置が矢印９７に示すように変化している。このように、目標のワークＷ１以外のワークＷ２の位置および姿勢を変更することができる場合がある。この移動方法においても、平面視した時のワークの位置および姿勢を変更することができる。
【００８３】
前述の図１４に示す制御では、本実施の形態における第１の制御と第２の制御との両方の制御を実施している。ロボットシステムの制御方法は、この形態に限られず、第１の制御および第２の制御のうち一方の制御を実施しても構わない。例えば、第１の制御のみを実施する場合には、ステップ１１５およびステップ１１６を削除することができる。ステップ１１３において、把持領域以外の部分でワークを把持することができない場合に、制御はステップ１１７に移行することができる。
【００８４】
図１６に、第１の制御を実施せずに第２の制御を実施する制御のフローチャートを示す。ステップ１０１からステップ１０７およびステップ１１１からステップ１１２までの制御は、図１４に示す制御と同様である。ステップ１１８において、判定部５５は、ロボット１の目標位置および停止位置に基づいて、ハンド２の把持領域３ｒ以外の部分で目標のワークＷを押圧できるか否かを判定する判定工程を実施する。判定部５５は、爪部３の先端部３ｂを水平方向に移動した時に先端部３ｂがワークＷに接触するか否かを判定する。図１３を参照して、この場合の目標位置と停止位置との差ｄ２の判定範囲の下限値は、ゼロよりも僅かに大きな値に設定することができる。判定範囲の上限値は、ハンド２を水平方向に移動したときに、先端部３ｂが点Ｐ１から点Ｐ２までの領域に接触する値の最大値を設定することができる。ステップ１１８において、把持領域３ｒ以外の部分でワークを押圧することができると判定された場合には、制御はステップ１１６に移行する。ステップ１１６において、移動制御部５６は、爪部３を駆動せずに開いた状態を維持しながらハンド２を水平方向に移動する移動工程を実施する。また、ステップ１１８において、把持領域以外の部分でワークを押圧することができないと判定された場合には、制御はステップ１１７に移行する。ステップ１１７では、目標のワークを変更する。
【００８５】
このように、第１の制御を実施せずに第２の制御を実施することができる。この制御においても、ハンド２の把持領域３ｒにてワークを把持できない場合に、ワークの位置および姿勢を変更した後にワークの取り出しを試行することができる。
【００８６】
図１７に、ワークの移動方向を説明するコンテナの概略部分断面図を示す。前述の第１の制御および第２の制御において、ワークＷを移動する方向としては、任意の方向を採用することができる。図１７に示す例では、移動制御部５６は、ワークＷを把持した後に、コンテナ９を平面視したときのコンテナ９の中央に向かって目標のワークＷを移動する工程を実施している。移動制御部５６は、現在のワークＷの位置を取得して、コンテナ９の幅方向の中央線９ｃに向かってワークＷを移動する。または、移動制御部５６は、現在のワークＷの位置を取得し、現在のワークＷに最も近い壁部９ａを特定する。そして、ワークＷに最も近い壁部９ａから離れる方向に、ワークＷ１を移動することができる。この制御により、ワークＷをコンテナ９の中央部に集めることができる。ロボット１が目標位置および目標姿勢に向かって駆動している時に、ハンド２が壁部９ａに干渉することを回避できる。すなわち、壁部９ａにハンド２が接触して、ワークＷが把持できないことを抑制することができる。
【００８７】
移動制御部５６は、任意の移動量にてワークＷを移動することができる。ワークＷの移動量としては、予め定められた移動量を採用することができる。または、移動制御部５６は、コンテナ９の中央の近傍の予め定められた位置までワークＷを搬送するようにロボット１を制御しても構わない。
【００８８】
図９に示す第１の制御の例では、矢印９３に示すように、曲線状の移動経路にてワークＷ１を移動しているが、この形態に限られない。図１７の矢印９０に示すように、直線状の移動経路にてワークＷを移動しても構わない。図１７に示す例では、移動制御部は、ワークＷを鉛直方向に持ち上げた後に、ワークＷを水平方向に移動するようにロボット１を制御している。更に、ハンド２がワークを離す時には、最も上側に配置されたワークから離れた位置にてワークを解放することにより、ワークを落下しても構わない。または、コンテナ９に積まれている最も上側のワークの表面にワークを置いた後にワークを解放しても構わない。
【００８９】
本実施の形態におけるワークは、長手方向を有する円筒の形状を有する。このために、複数のワークは軸方向が互いに平行になる様に積まれている。ワークを移動したときもワークの姿勢は維持される。ワークの形状としては、この形態に限られず、任意の形状を採用することができる。そして、本実施の形態の制御は、ワークの向きが互いに異なるように積まれたワークを搬送するロボットシステムにも適用することができる。すなわち、それぞれのワークの向きが不規則に積まれたワークを取り出すロボットシステムにも本実施の形態の制御を適用することができる。ワークをコンテナの内部で移動することにより、ワークの位置および姿勢のうち少なくとも一方を変化させることができて、多くのワークを取り出すことができる。
【００９０】
この場合に、コンテナの中央としては、例えばコンテナを平面視したときのコンテナの形状の重心位置を採用することができる。また、本実施の形態においては、ワークの姿勢を維持しながらワークを移動しているが、この形態に限られない。ワークをコンテナ内で移動する場合に、ワークの姿勢を変更しても構わない。例えば、移動制御部は、ワークを持ち上げた後に、水平面内においてワークを９０°回転した後にワークを離すようにロボットを制御しても構わない。
【００９１】
本実施の形態の３次元センサは、２台の２次元カメラを含むが、この形態に限られない。３次元センサは、３台以上の２次元カメラを含んでいても構わない。３次元センサが３台以上のカメラを含むことにより、一部の画像がハレーション等により不鮮明であっても、他のカメラにて撮像した画像に基づいて３次元情報を取得することができる。また、本実施の形態の３次元センサはプロジェクタを備えるが、プロジェクタを備えなくても構わない。更に、３次元センサは、ワークまでの距離の情報を取得できる任意のセンサを採用することができる。例えば、３次元センサは、光飛行時間方式により距離画像を撮像するＴＯＦ（Time of Flight）カメラであっても構わない。
【００９２】
本実施の形態のレンジセンサ６は、支持部材８３に固定されているが、この形態に限られず、ワークを撮像可能なように配置することができる。例えば、レンジセンサは、ロボットのリストと一体的に移動するように、リストに固定されていても構わない。この場合に、レンジセンサは、リストと共に位置および姿勢が変化する。そして、レンジセンサの位置および姿勢に依存して、１つのワークの死角により撮像することができない他のワークが発現する場合がある。ハンドの把持領域にてワークを把持できない場合に、本実施の形態のロボットシステムは、ワークの位置および姿勢を変更することができるために好適である。
【００９３】
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。
【００９４】
上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、特許請求の範囲に示される実施の形態の変更が含まれている。
【符号の説明】
【００９５】
１    ロボット
２    ハンド
３    爪部
３ａ    凹部
３ｂ    先端部
３ｒ    把持領域
４    制御装置
５    ロボットシステム
６    レンジセンサ
９    コンテナ
９ａ    壁部
５３    衝突検出部
５４    位置検出部
５５    判定部
５６    移動制御部
５８    取得部
５９    選定部
６１，６２    カメラ
Ｗ，Ｗ１，Ｗ２，Ｗ３，Ｗ４    ワーク
【図１】
2019198949.tif 000003
【図２】
2019198949.tif 000004
【図３】
2019198949.tif 000005
【図４】
2019198949.tif 000006
【図５】
2019198949.tif 000007
【図６】
2019198949.tif 000008
【図７】
2019198949.tif 000009
【図８】
2019198949.tif 000010
【図９】
2019198949.tif 000011
【図１０】
2019198949.tif 000012
【図１１】
2019198949.tif 000013
【図１２】
2019198949.tif 000014
【図１３】
2019198949.tif 000015
【図１４】
2019198949.tif 000016
【図１５】
2019198949.tif 000017
【図１６】
2019198949.tif 000018
【図１７】
2019198949.tif 000019