(57)【要約】【課題】取り出すことが困難なワークの数を低減することができるワーク取り出し装置およびワーク取り出し方法の提供を図る。【解決手段】三次元空間にバラ積みされた複数のワーク(４，４ａ〜４ｄ)を計測するセンサ２と、ワークを保持するロボット１と、ロボットに取り付けられたワークを保持可能なハンド１０と、センサの出力に基づいて、ロボットによりワークを保持する位置および姿勢の保持位置姿勢データを算出する保持位置姿勢算出部３１と、センサの出力に基づいて、ロボットによりワークの積載状態を改善する動作の積載状態改善動作データを生成する積載状態改善動作生成部３２と、ロボットおよびハンドを制御するロボット制御部３０と、を備え、ロボット制御部は、保持位置姿勢算出部および積載状態改善動作生成部の出力に基づいて、ロボットおよびハンドを制御することでワークの取り出しもしくは積載状態改善動作を行う。【選択図】図３
2018126802.tif 000002
【特許請求の範囲】
【請求項１】
三次元空間にバラ積みされた複数のワークを計測するセンサと、
前記ワークを保持するロボットと、
前記ロボットに取り付けられたワークを保持可能なハンドと、
前記センサの出力に基づいて、前記ロボットにより前記ワークを保持する位置および姿勢の保持位置姿勢データを算出する保持位置姿勢算出部と、
前記センサの出力に基づいて、前記ロボットにより前記ワークの積載状態を改善する動作の積載状態改善動作データを生成する積載状態改善動作生成部と、
前記ロボットおよび前記ハンドを制御するロボット制御部と、を備え、
前記ロボット制御部は、前記保持位置姿勢算出部および前記積載状態改善動作生成部の出力に基づいて、前記ロボットおよび前記ハンドを制御することで前記ワークの取り出しもしくは積載状態改善動作を行う、
ことを特徴とするワーク取り出し装置。
【請求項２】
前記保持位置姿勢算出部は、前記ロボットにより保持することが可能な前記ワークが存在するとき、前記保持位置姿勢データを前記ロボット制御部に出力し、
前記積載状態改善動作生成部は、前記保持位置姿勢算出部の出力に基づいて、前記ロボットにより保持することが可能な前記ワークが存在しないとき、前記ロボット制御部に対して前記積載状態改善動作データを前記ロボット制御部に出力する、
ことを特徴とする請求項１に記載のワーク取り出し装置。
【請求項３】
さらに、
少なくとも１つの前記保持位置姿勢算出部、および、少なくとも１つの前記積載状態改善動作生成部を含み少なくとも１つの動作候補を出力する動作候補出力部と、
前記動作候補出力部の出力の少なくとも１つの動作候補から１つの動作を決定し、その決定された動作に基づいて前記ロボット制御部を介して前記ロボットを制御する動作決定部と、を備え、
前記動作決定部は、機械学習を行って前記ロボットにより前記ワークの積載状態を改善する動作を学習する第１機械学習装置を備え、前記第１機械学習装置は、
前記センサで取得される計測データ、少なくとも１つの前記保持位置姿勢算出部の出力に基づく保持位置姿勢データ、および、少なくとも１つの前記積載状態改善動作生成部の出力に基づく積載状態改善動作データを、状態データとして観測する第１状態観測部と、
前記センサで計測し、前記ロボットおよび前記ハンドでワークを取り出す一連の動作であるハンドリングに関連する時間データを、判定データとして取得する第１判定データ取得部と、
前記第１状態観測部が取得する状態データおよび前記第１判定データ取得部が取得する判定データに基づいて、前記動作候補出力部が出力する少なくとも１つの動作候補から１つの動作を決定する動作決定を学習する第１学習部と、を備える、
ことを特徴とする請求項１に記載のワーク取り出し装置。
【請求項４】
前記第１学習部は、
前記第１判定データ取得部が取得する判定データである時間データに基づいて報酬を計算する第１報酬計算部と、
前記少なくとも１つの動作候補から動作を決定する動作決定の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する第１価値関数更新部と、を備え、前記動作決定部は前記価値関数に基づいて動作決定を行う、
ことを特徴とする請求項３に記載のワーク取り出し装置。
【請求項５】
前記第１報酬計算部は、
１つの前記ワークのハンドリングに要した時間を平均した平均サイクルタイムが短くなればプラスの報酬を設定し、前記平均サイクルタイムが長くなればマイナスの報酬を設定する第１報酬設定と、
１つの前記ワークのハンドリングに要した時間の分散を示す分散サイクルタイムが小さくなればプラスの報酬を設定し、前記分散サイクルタイムが大きくなればマイナスの報酬を設定する第２報酬設定、の少なくとも一方を行う、
ことを特徴とする請求項４に記載のワーク取り出し装置。
【請求項６】
前記積載状態改善動作生成部は、機械学習を行って前記ロボットにより前記ワークの積載状態を改善する動作を学習する第２機械学習装置を備え、前記第２機械学習装置は、
前記センサの出力に基づく前記ワークそれぞれの計測データ、および、前記保持位置姿勢算出部の出力に基づく前記ワークそれぞれの前記保持位置姿勢データを、状態データとして観測する第２状態観測部と、
前記計測データに基づいて、前記ワークの積載状態を改善する動作の前後における前記積載状態の変化の有無、および、前記ワークの積載状態を改善する動作を行った後における前記ワークそれぞれの前記保持位置姿勢データを、判定データとして取得する第２判定データ取得部と、
前記第２状態観測部からの出力および前記第２判定データ取得部からの出力を受け取って、前記ワークの積載状態を改善する動作を学習する第２学習部と、を備える、
ことを特徴とする請求項１乃至請求項５のいずれか１項に記載のワーク取り出し装置。
【請求項７】
前記第２学習部は、
前記第２判定データ取得部の出力である前記ワークの積載状態を改善する動作の前後における前記積載状態の変化の有無、および、前記ワークの積載状態を改善する動作を行った後における前記ワークそれぞれの前記保持位置姿勢データに基づいて報酬を計算する第２報酬計算部と、
前記ワークの積載状態を改善する動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する第２価値関数更新部と、を備え、
前記積載状態改善動作生成部は第２価値関数に基づいて積載状態改善動作データを生成する、
ことを特徴とする請求項６に記載のワーク取り出し装置。
【請求項８】
前記第２報酬計算部は、
前記ワークの積載状態を改善する動作の前後における前記積載状態の変化が有ればプラスの報酬を設定し、前記積載状態の変化が無ければマイナスの報酬を設定する第３報酬設定と、
前記ワークの積載状態を改善する動作を行った後における前記ワークそれぞれの前記保持位置姿勢データの算出に成功すればプラスの報酬を設定し、前記保持位置姿勢データの算出に失敗すればマイナスの報酬を設定する第４報酬設定、の少なくとも一方を行う、
ことを特徴とする請求項７に記載のワーク取り出し装置。
【請求項９】
前記第１機械学習装置により学習された動作決定、或いは、前記第２機械学習装置により学習された前記ワークの積載状態を改善する動作は、通信媒体を介して複数の対応する第１または第２機械学習装置で相互にデータを共有または交換するようになっている、
ことを特徴とする請求項３乃至請求項８のいずれか１項に記載のワーク取り出し装置。
【請求項１０】
前記積載状態改善動作データは、
前記ロボットが前記ワークに接近するアプローチ位置、
前記ロボットが前記ワークの積載状態を改善する動作を開始する積載状態改善動作開始位置、および、
前記ロボットが前記ワークの積載状態を改善する動作を終了する積載状態改善動作終了位置、のデータを含む、
ことを特徴とする請求項１乃至請求項９のいずれか１項に記載のワーク取り出し装置。
【請求項１１】
前記積載状態改善動作データは、さらに、
前記ロボットが、前記アプローチ位置から前記積載状態改善動作開始位置まで移動する第１速度データ、および、
前記ロボットが、前記積載状態改善動作開始位置から前記積載状態改善動作終了位置まで移動する第２速度データ、を含む、
ことを特徴とする請求項１０に記載のワーク取り出し装置。
【請求項１２】
前記ハンドは、マグネットトハンドまたは吸着ハンドであり、
前記積載状態改善動作は、前記載状態改善動作開始位置で前記ワークを仮保持し、前記載状態改善動作終了位置で前記ワークを解放する、
ことを特徴とする請求項１０または請求項１１に記載のワーク取り出し装置。
【請求項１３】
前記積載状態改善動作を行っているとき、前記ロボットおよび前記ハンドの少なくとも一方に掛かる負荷を計測し、前記積載状態改善動作中に、前記ロボットおよび前記ハンドの少なくとも一方に所定以上の負荷が掛かったら前記積載状態改善動作を中断して前記ロボットを退避させる、
ことを特徴とする請求項１乃至請求項１２のいずれか１項に記載のワーク取り出し装置。
【請求項１４】
前記積載状態改善動作は、
前記ハンドによって前記ワークに外力を加えることで、前記ワークを移動または倒す動作であり、或いは、
前記積載状態改善動作にインピーダンス制御を適用することで前記ワークに適切な外力を加えながら行う動作である、
ことを特徴とする請求項１乃至請求項１３のいずれか１項に記載のワーク取り出し装置。
【請求項１５】
三次元空間にバラ積みされた複数のワークを計測するセンサと、前記ワークを保持するロボットと、前記ロボットに取り付けられたワークを保持可能なハンドと、を備えるワーク取り出し装置のワーク取り出し方法であって、
前記センサの出力に基づいて、前記ロボットにより前記ワークを保持する位置および姿勢の保持位置姿勢データを算出し、
前記センサの出力に基づいて、前記ロボットにより前記ワークの積載状態を改善する動作の積載状態改善動作データを生成し、
前記保持位置姿勢データおよび前記積載状態改善動作データに基づいて、前記ロボットおよび前記ハンドを制御することで前記ワークの取り出しもしくは積載状態改善動作を行う、
ことを特徴とするワーク取り出し方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークの取り出し動作を改善するワーク取り出し装置およびワーク取り出し方法に関する。
【背景技術】
【０００２】
従来、例えば、コンテナなどの収容物内にバラバラに積まれた部品(三次元空間にバラ積みされたワーク)をロボットによって取り出す装置(ワーク取り出し装置)が、様々な分野で使用されている。このようなワーク取り出し装置において、例えば、最後のワークを取り出すまで安定的に稼働させることは、一般的に困難なものとなっている。
【０００３】
例えば、ワーク(部品)を取り出すために、ロボットのハンドをワークに近づける動作(アプローチ動作)を行っているときに、ハンドと収容物や他のワークとの干渉が発生し、その結果、取り出そうとしたワークを保持できないといった事態が発生するためである。また、例えば、ワークを予め定められた持ち方で保持して取り出し処理を行う場合、三次元的に任意の姿勢をとるワークに対して、その予め定められた持ち方を行えないといったことも頻繁に生じる。具体的に、ワークに対する持ち方が１つしか定められていない場合、保持したい面が下を向いてしまっていると、そのワークを所定の持ち方で保持することは困難になってしまう。
【０００４】
そのため、ワーク取り出し装置(バラ積み取り出しシステム)では、収容物内にワークが残っているにも関わらず、それ以上ワークを取り出せない状況に陥ってしまうといったことが多々ある。
【０００５】
ところで、従来、多数のワークからの取り出し失敗を減らし、またリトライ動作も減らしたワーク取り出し装置として、データベースに蓄えられた過去の取り出し成否の情報に基づいて、センサで計測したワークの一部の掴みやすさを推定し、掴みにくそうなものは優先して掴まないが、他に掴めそうなものがないときは、ハンドの開閉量・動作速度・把持力のうち少なくとも１つを調整して、より丁寧な取り出し動作をおこなうようにしたものが提案されている(例えば、特許文献１参照)。
【０００６】
また、従来、装置を大型化させることなく、バラ積みされたワークを把持する確率を向上させ、後工程における作業の成功率を向上させるワーク供給技術として、バラ積みされたワークを計測した計測データと予め蓄積されたワークの形状データを照合してワークの位置および姿勢を算出し、算出したワークの位置から把持するワークを選択し、その選択したワークの位置および姿勢と、ワークを供給対象物に供給可能に算出されたワークと把持機構の位置関係を示す複数の把持姿勢との対応付けを行ってワークの把持姿勢を決定するものも提案されている(例えば、特許文献２参照)。
【０００７】
さらに、従来、バラ積みされたワークの位置と姿勢を確実に変化させ、新たなバラ積み状態を生成するピッキング用ワーク供給技術として、複数のワークをバラ積み可能とした上方が開いた容器本体の底部から上方内側に進退自在に突出部を設け、その突出部を進退自在に動作させて、ロボットに取り付けられたロボットハンドでワークを１つずつ取り出すものも提案されている(例えば、特許文献３参照)。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１３−０５２４９０号公報
【特許文献２】特開２０１６−１３２０８６号公報
【特許文献３】特開２０１２−１８３６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述したワーク取り出し装置では、例えば、取り出しを行うワークに対して他のワークの一部が重なっている場合、その状況を改善してワークを取り出すことは難しいため、効果が限定的である。また、例えば、複数の把持姿勢との対応付けを行うには、膨大な把持姿勢の候補を用意する必要が生じるため現実的ではない。さらに、例えば、容器本体の突出部を進退自在に動作させるには、その動作を行わせるための専用のハード機構が必要となり、また、ワークが重量物だと、容器本体の突出部を進退自在に動作させることは困難な場合も生じる。
【００１０】
このように、従来、ワーク取り出し装置としては様々な提案がなされているが、バラ積みされたワークを満足できる程度に取り出すことが難しく、或いは、専用のハード機構が必要になるといった課題がある。
【課題を解決するための手段】
【００１１】
第１実施形態によれば、三次元空間にバラ積みされた複数のワークを計測するセンサと、前記ワークを保持するロボットと、前記ロボットに取り付けられたワークを保持可能なハンドと、前記センサの出力に基づいて、前記ロボットにより前記ワークを保持する位置および姿勢の保持位置姿勢データを算出する保持位置姿勢算出部と、前記センサの出力に基づいて、前記ロボットにより前記ワークの積載状態を改善する動作の積載状態改善動作データを生成する積載状態改善動作生成部と、前記ロボットおよび前記ハンドを制御するロボット制御部と、を備え、前記ロボット制御部は、前記保持位置姿勢算出部および前記積載状態改善動作生成部の出力に基づいて、前記ロボットおよび前記ハンドを制御することで前記ワークの取り出しもしくは積載状態改善動作を行うワーク取り出し装置が提供される。
【００１２】
第２実施形態によれば、三次元空間にバラ積みされた複数のワークを計測するセンサと、前記ワークを保持するロボットと、前記ロボットに取り付けられたワークを保持可能なハンドと、を備えるワーク取り出し装置のワーク取り出し方法であって、前記センサの出力に基づいて、前記ロボットにより前記ワークを保持する位置および姿勢の保持位置姿勢データを算出し、前記センサの出力に基づいて、前記ロボットにより前記ワークの積載状態を改善する動作の積載状態改善動作データを生成し、前記保持位置姿勢データおよび前記積載状態改善動作データに基づいて、前記ロボットおよび前記ハンドを制御することで前記ワークの取り出しもしくは積載状態改善動作を行うワーク取り出し方法が提供される。
【発明の効果】
【００１３】
開示のワーク取り出し装置およびワーク取り出し方法によれば、取り出すことが困難なワークの数を低減することができるという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、ワーク取り出し装置の一例を模式的に示す図である。
【図２】図２は、図１に示すワーク取り出し装置の動作の一例を説明するための図である。
【図３】図３は、第１実施例に係るワーク取り出し装置を概略的に示すブロック図である。
【図４】図４は、図３に示すワーク取り出し装置の動作の一例を説明するための図である。
【図５】図５は、第１実施例に係るワーク取り出し装置によるワーク取り出し処理の一例を説明するためのフローチャートである。
【図６】図６は、第２実施例に係るワーク取り出し装置を示すブロック図である。
【図７】図７は、ニューロンのモデルを模式的に示す図である。
【図８】図８は、図７に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。
【図９】図９は、第２実施例に係るワーク取り出し装置によるワーク取り出し処理の一例を説明するためのフローチャートである。
【図１０】図１０は、第３実施例に係るワーク取り出し装置を示すブロック図である。
【図１１】図１１は、第３実施例に係るワーク取り出し装置を示すブロック図である。
【図１２】図１２は、第３実施例に係るワーク取り出し装置によるワーク取り出し処理の一例を説明するためのフローチャート(その１)である。
【図１３】図１３は、第３実施例に係るワーク取り出し装置によるワーク取り出し処理の一例を説明するためのフローチャート(その２)である。
【発明を実施するための形態】
【００１５】
まず、ワーク取り出し装置およびワーク取り出し方法の実施例を詳述する前に、図１および図２を参照して、ワーク取り出し装置の一例およびその課題を説明する。図１は、ワーク取り出し装置の一例を模式的に示す図である。図１に示されるように、ワーク取り出し装置５００は、例えば、コンテナ４０などの収容物内にバラ積みされた複数のワーク(部品)４ａ〜４ｄを順番に取り出すもので、ロボット１、センサ２、ロボット制御装置３を含む。なお、ワーク４ａ〜４ｄは、コンテナ４０に収納されたものに限定されず、例えば、三次元空間にバラ積みされたものであってもよいのはいうまでもない。
【００１６】
ロボット１の側方には、上面が開放されたボックス形状のコンテナ４０が配置されている。コンテナ４０は上面が開口され、コンテナ４０内の収容空間には、バラ積みされた複数のワーク(バラ積みされた状態を含む、乱雑に置かれた複数のワーク)４ａ〜４ｄ(４)が収納されている。なお、ワーク４は、ロボット１に取り付けられたハンド１０により保持することができ、ロボット制御装置３で制御されるロボット１およびハンド１０の動作により、コンテナ４０からワーク４(４ａ〜４ｄ)が１つずつ取り出されるようになっている。また、コンテナ４０の中央部上方には、センサ２が設置され、センサ２の出力(計測データ)２ａは、ロボット制御装置３に入力されている。
【００１７】
ここで、図１では、説明を簡略化するために、コンテナ４０内に４つの円盤形状のワーク４ａ〜４ｄ(４)がバラバラに積まれた状態で、各ワーク４の中央部の穴をハンド(内径チャック)１０で保持する例が示されているが、ワーク４の形状は円盤形状に限定されず、また、ワーク４の保持機構も内径チャックに限定されるものではない。すなわち、ハンド１０は、ワーク４を保持可能であれば様々な形態を有していてもよく、例えば、２本または複数の爪部を開閉することによってワーク４を把持する形態、或いは、ワーク４に対して吸引力を発生する電磁石または負圧発生装置を備えたものであってもよい。
【００１８】
さらに、センサ２は、それぞれのワーク４ａ〜４ｄの三次元位置および姿勢の情報を取得する三次元視覚センサであり、例えば、カメラ２台のステレオ方式、レーザスリット光を走査する方式、レーザスポット光を走査する方式、プロジェクタ等の装置を用いてパターン光を物品に投影する方式、光が投光機から出射されてからワーク４の表面で反射し受光器に入射するまでの時間を利用する方式等を適用したものであってもよい。また、センサ２の出力(２ａ)に基づいて、バラ積みされた複数のワーク４ａ〜４ｄの三次元位置および姿勢、並びに、コンテナ４０の三次元形状等の計測を行う場合、例えば、三角計測法、光切断法、Time-of-flight法、Depth from Defocus法、または、これらを併用した方法を適用することができる。
【００１９】
なお、図１において、センサ(視覚センサ)２の出力(計測データ)２ａは、ロボット制御装置３に入力され、ロボット制御装置３において画像処理等を行うようになっているが、センサ２の出力２ａは、ロボット制御装置３とは別に設けた専用の画像処理装置等により処理し、その画像処理装置の出力をロボット制御装置３に入力するように構成してもよい。さらに、センサ２は、コンテナ４０の中央部上方に固定して設けられているが、例えば、ロボット１の手先(先端部)に取り付けたハンドアイとして設けることもできる。
【００２０】
このように、図１に示すワーク取り出し装置５００において、ロボット制御装置３は、バラ積みされた複数のワーク４ａ〜４ｄ(４)の三次元位置および姿勢、並びに、コンテナ４０の三次元形状等を測定するセンサ２の出力２ａに基づいて、ロボット１の内径チャック１０によりワーク４を保持する位置および姿勢の保持位置姿勢データを算出し、ロボット１および内径チャック１０を制御して１つずつワーク４の取り出しを行うようになっている。
【００２１】
図２は、図１に示すワーク取り出し装置の動作の一例を説明するための図である。ここで、図２(a)は、図１に示すコンテナ４０内に収納された４つのワーク４ａ〜４ｄにおいて、１つのワーク４ｃの中央部(穴の位置)にロボット１の内径チャック(ハンド)１０を移動し、内径チャック１０を開いてワーク４ｃを保持した様子を示す。また、図２(b)は、図２(a)で保持したワーク４ｃを持ち上げて取り出し動作を行う様子を示す。さらに、図２(c)は、コンテナ４０内の４つのワーク４ａ〜４ｄにおいて、２つのワーク４ｃおよび４ｄの取り出し処理が終了した状態を示す。
【００２２】
上述したように、ワーク取り出し装置５００は、センサ２の出力２ａに基づいて、ロボット１の内径チャック１０によりワーク４を保持する位置および姿勢の保持位置姿勢データを算出し、ロボット１および内径チャック１０を制御して１つずつワーク４の取り出しを行う。しかしながら、例えば、図２(c)に示されるように、ワーク４ｂの上にワーク４ａが乗った状態で、しかも、ワーク４ａがコンテナ４０の隅に立っている(ワーク４ａがコンテナ４０の壁面に鋭い角度で寄り掛かっている)場合、ワーク４ａおよび４ｂのいずれも取り出すことが困難になる。
【００２３】
具体的に、ワーク４ｂに関して、例えば、ワーク４ｂの上にワーク４ａが乗っているため、ワーク４ｂの中央部にロボット１の内径チャック１０を移動させて穴に挿入するのが困難である。また、ワーク４ａに関して、例えば、コンテナ４０の壁面に鋭い角度で寄り掛かっているワーク４ａの中央部にロボット１の内径チャック１０を挿入しようとすると、ロボット１の一部がコンテナ４０の壁に干渉し、或いは、内径チャック１０を適切な角度で挿入するのが難しい。そのため、例えば、ロボット制御装置３は、ロボット１の内径チャック１０によりワーク４ａまたは４ｂを保持する保持位置姿勢データの算出に失敗することになる。このように、コンテナ４０内にはワーク４ａおよび４ｂが残存しているにも関わらず、これらのワーク４ａおよび４ｂを取り出すことができない場合には、生産性の低下等を来すことになる。
【００２４】
以下、本発明に係るワーク取り出し装置およびワーク取り出し方法の実施例を、添付図面を参照して詳述する。図３は、第１実施例に係るワーク取り出し装置１００を示すブロック図であり、ロボット制御装置３の構成を概略的に示すものである。また、図４は、図３に示すワーク取り出し装置の動作の一例を説明するための図であり、図４(a)は、ロボット１(ハンド１０)がワーク(４ａ)に接近するアプローチ位置を示し、図４(b)は、ロボット１がワーク(４ａおよび４ｂ)の積載状態を改善する動作を開始する積載状態改善動作開始位置を示し、そして、図４(c)は、ロボット１がワーク(４ａおよび４ｂ)の積載状態を改善する動作を終了する積載状態改善動作終了位置を示す。なお、図４(a)は、前述した図２(c)に示すワーク４ａまたは４ｂを保持する保持位置姿勢データの算出に失敗する状態に相当する。
【００２５】
すなわち、図４(a)〜図４(c)と、前述した図１および図２(a)〜図２(c)の比較から明らかなように、第１実施例に係るワーク取り出し装置１００は、外見上、上述したワーク取り出し装置５００と同様であるが、ロボット制御装置３の機能(構成)、すなわち、ロボット１(ロボット１のハンド(内径チャック)１０)により保持することが可能なワークが存在しないときに行う積載状態改善動作の機能が異なっている。
【００２６】
図３に示されるように、第１実施例のワーク取り出し装置１００において、ロボット制御装置３は、ロボット制御部３０、保持位置姿勢算出部３１および積載状態改善動作生成部３２を備える。保持位置姿勢算出部３１は、センサ２の出力(計測データ)２ａに基づいて、ロボット１の内径チャック１０によりワーク４(４ａ〜４ｄ)を保持する位置および姿勢の保持位置姿勢データ３１ａを算出する。積載状態改善動作生成部３２は、センサ２の出力(計測データ)２ａに基づいて、ロボット１の内径チャック１０によりワーク４の積載状態を改善する動作の積載状態改善動作データ３２ａを生成する。なお、ロボット制御部３０は、保持位置姿勢算出部３１および積載状態改善動作生成部３２の出力２ａに基づいてロボット１および内径チャック１０を制御する。
【００２７】
すなわち、保持位置姿勢算出部３１は、ロボット１(ロボット１の内径チャック１０)により保持することが可能なワーク４が存在するとき、例えば、図１に示す４つのワーク４ａ〜４ｄにおけるワーク４ｃが存在するとき、センサ２の出力２ａに基づいて、ワーク４ｃを保持するための保持位置姿勢データ３１ａを算出してロボット制御部３０に出力し、ロボット１の内径チャック１０(ロボット１)を制御してワーク４ｃの取り出し処理を行う。なお、このワーク４ｃの取り出し処理は、図２(a)および図２(b)を参照して説明したのと同様のものである。
【００２８】
これに対して、ロボット１の内径チャック１０により保持することが可能なワーク４が存在しないとき、例えば、図２(c)に示されるように、残存する２つのワーク４ａまたは４ｂを保持するための保持位置姿勢データの算出に失敗する場合、積載状態改善動作生成部３２は、センサ２の出力２ａおよび保持位置姿勢算出部３１の出力に基づいて、ワーク４(４ａおよび４ｂ)の積載状態を改善するための積載状態改善動作データ３２ａを生成してロボット制御部３０に出力し、ロボット１の内径チャック１０(ロボット１)を制御してワーク４ａおよび４ｂの積載状態の改善を行う。
【００２９】
ここで、積載状態改善動作生成部３２が生成する積載状態改善動作データ３２ａとしては、例えば、図４(a)に示すロボット１(ロボット１の内径チャック１０)がワーク４ａに接近するアプローチ位置、図４(b)に示すロボット１がワーク４ａおよび４ｂの積載状態を改善する動作を開始する積載状態改善動作開始位置、並びに、図４(c)に示すロボット１がワーク４ａおよび４ｂの積載状態を改善する動作を終了する積載状態改善動作終了位置、のデータを含む。
【００３０】
さらに、積載状態改善動作データ３２ａとしては、例えば、ロボット１(ロボット１の内径チャック１０)がアプローチ位置から積載状態改善動作開始位置まで移動する速度のデータ(第１速度データ)、および、ロボット１が積載状態改善動作開始位置から積載状態改善動作終了位置まで移動する速度のデータ(第２速度データ)を含んでもよい。なお、これらのデータは、単なる例であり、積載状態改善動作データ３２ａは、さらに他のデータを含んでもよいのはもちろんである。
【００３１】
このように、ロボット１の内径チャック１０を、図４(b)に示す積載状態改善動作開始位置から図４(c)に示す積載状態改善動作終了位置まで移動させることにより、例えば、コンテナ４０の壁面に鋭い角度で寄り掛かっているワーク４ａは、下方向に押されて倒れる。その結果、例えば、保持位置姿勢算出部３１は、積載状態改善動作が行われた後の(倒れた)ワーク４ａに対する保持位置姿勢データ３１ａを算出して、ワーク４ａの中央部(穴の位置)にロボット１の内径チャック１０を移動して挿入することができ、ワーク４ａを取り出すことが可能になる。
【００３２】
ここで、積載状態を改善する動作として、ワーク４を移動したり倒したりするために、ハンド(内径チャック)１０によりバラ積みされたワーク４に外力を加える動作を示しているが、積載状態改善動作としては、例えば、ハンド１０が吸引ハンドやマグネットハンドの場合には、任意のワーク４を仮保持してから落とす(開放する)といった動作を始めとして、様々な動作が可能なのはいうまでもない。また、例えば、積載状態改善動作を行っているとき、ロボットおよびハンドの少なくとも一方に掛かる負荷を計測し、積載状態改善動作中に、ロボット１およびハンド１０の少なくとも一方に所定以上の負荷が掛かったら積載状態改善動作を停止(中断)して、ロボット１を退避させることでより安定的にシステムを稼働することが可能になる。さらに、積載状態改善動作にインピーダンス制御を適用することで、ワークに適切な外力を加えながら積載状態改善動作を行うことも可能になる。
【００３３】
なお、積載状態改善動作を行った後、例えば、ワーク４ａではなくてワーク４ｂに対する保持位置姿勢データ３１ａの算出が可能な場合には、ワーク４ｂの取り出しを行うことができる。また、積載状態改善動作を行ったが、依然として、残存するワーク４ａおよび４ｂのいずれに対しても保持位置姿勢データ３１ａの算出に失敗する場合には、再度、積載状態改善動作生成部３２が生成する、さらなる積載状態改善動作データ３２ａに基づいて積載状態改善動作を行うことができるのはいうまでもない。このように、第１実施例のワーク取り出し装置１００によれば、取り出すことが困難なワークの数を低減することができ、生産性の向上を図ることが可能になる。
【００３４】
すなわち、第１実施例のワーク取り出し装置によれば、例えば、コンテナ内にワークが残っているにも関わらずワークを取り出すことが難しいといった状態を打開して、取り出すことができるワークの数を向上することが可能になり、例えば、最後の１つのワークまで取り出すことができる。また、第１実施例のワーク取り出し装置によれば、例えば、コンテナを揺らすといった専用の装置を設けることなく、ロボットがハンドを用いて積載状態を改善し、ワークの取り出し動作を続けることが可能になる。なお、このような積載状態改善動作を、従来のティーチングプレイバックの枠組みで実現しようとすると、臨機応変な動作を予め全てプログラミングする必要があり、ユーザの高度な熟練と多大な作業時間を要するが、本実施例のワーク取り出し装置によれば、システム稼働中にロボット自身が積載状態改善動作を行うため、ユーザが簡単に安定的なシステムを立ちあげることが可能になる。これらの効果は、第１実施例のワーク取り出し装置に限定されるものではなく、後述する機械学習を適用した第２および第３実施例により、より一層大きなものとして得られることになる。
【００３５】
図５は、第１実施例に係るワーク取り出し装置によるワーク取り出し処理の一例を説明するためのフローチャートである。図５に示されるように、第１実施例のワーク取り出し装置１００によるワーク取り出し処理の一例が開始すると、ステップＳＴ１１において、センサ２の出力に基づく計測データ２ａを取得し、ステップＳＴ１２に進んで、保持位置姿勢算出部３１により保持位置姿勢(保持位置姿勢データ３１ａ)を算出してステップＳＴ１３に進む。
【００３６】
ステップＳＴ１３では、保持位置姿勢算出部３１による保持位置姿勢算出が成功したかどうかを判定し、保持位置姿勢データ３１ａの算出に成功したと判定する(ＳＴ１３：Ｙｅｓ)と、ステップＳＴ１４に進んで、算出された保持位置姿勢データ３１ａに基づいてハンドリング動作(ロボット１の内径チャック１０によるワーク４の保持および取り出し動作)を行い、ステップＳＴ１５に進む。
【００３７】
ステップＳＴ１５では、例えば、コンテナ４０内に収納された複数のワーク４ａ〜４ｄの取り出しが全て終了したかどうかを判定し、全て終了したと判定する(ＳＴ１５：Ｙｅｓ)と、ワーク取り出し処理を終了し、全て終了してはいないと判定する(ＳＴ１５：Ｎｏ)と、ステップＳＴ１１に戻って、同様の処理を繰り返す。
【００３８】
また、ステップＳＴ１３において、保持位置姿勢の算出に失敗したと判定する(ＳＴ１３：Ｎｏ)と、ステップＳＴ１６に進んで、積載状態改善動作生成部３２により積載状態改善動作(積載状態改善動作データ３２ａ)を生成してステップＳＴ１７に進む。ステップＳＴ１７では、積載状態改善動作の価値関数を更新して、ステップＳＴ１１に戻り、前述したのと同様の処理を繰り返す。ここで、ステップＳＴ１６における積載状態改善動作データ３２ａの生成処理、および、ステップＳＴ１７における価値関数の更処理新は、例えば、機械学習(深層学習，強化学習)を適用して行うことができる。
【００３９】
或いは、ステップＳＴ１６における積載状態改善動作データ３２ａの生成処理、および、ステップＳＴ１７における価値関数の更処理新としては、機械学習を適用せずに、例えば、予め設定された積載状態改善動作に基づいて、ロボット１およびハンド(内径チャック)１０を制御することでワーク４の積載状態改善動作を行うこともできる。このとき、例えば、積載状態改善動作として、複数の積載状態改善動作データ３２ａを予め設定しておき、ステップＳＴ１２で算出された保持位置姿勢データ３１ａにより最適な積載状態改善動作データを選択し、その選択された積載状態改善動作データに基づいて、積載状態改善動作を行うことができるのは、いうまでもない。
【００４０】
図６は、第２実施例に係るワーク取り出し装置２００を示すブロック図であり、積載状態改善動作生成部３２として機械学習装置(第２機械学習装置)５を適用したものに相当する。なお、図６では、図示されていないが、保持位置姿勢算出部３１は、例えば、ロボット１およびセンサ２等が含まれる環境に設けられ、保持位置姿勢算出部３１からの保持位置姿勢データ３１ａは、状態データ(状態変数，状態量)として機械学習装置５に入力される。また、機械学習装置５は、例えば、ロボット制御部３０および保持位置姿勢算出部３１を含むロボット制御装置３(図示しない)に内蔵することもできるが、ロボット制御装置３とは別に専用の装置として設けることもできる。なお、図６では、ワーク４として円柱形状のものを示し、ハンド１０として２本の爪部を開閉することによってワーク４を把持するものを示すが、これらは様々なものであってもよいのは前述した通りである。
【００４１】
図６に示されるように、第２実施例のワーク取り出し装置２００において、機械学習装置５は、例えば、図３に示す第１実施例のワーク取り出し装置１００における積載状態改善動作生成部３２の機能を実現するものであり、状態観測部(第２状態観測部)５１、判定データ取得部(第２判定データ取得部)５２、学習部(第２学習部)５３、および、意思決定部５４を備える。状態観測部５１は、センサ２の出力である計測データ２ａ、および、保持位置姿勢算出部(３１)の出力に基づくワーク４それぞれの保持位置姿勢データ３１ａを、状態データとして観測する。
【００４２】
判定データ取得部５２は、計測データ２ａに基づくワーク４の積載状態を改善する動作の前後における積載状態の変化の有無、並びに、ワーク４の積載状態を改善する動作を行った後におけるワーク４それぞれの保持位置姿勢データ３１ａを、判定データとして取得する。意思決定部５４は、学習部５３からの出力を参照し、ロボット１(ハンド１０)に対してワーク４の積載状態を改善する動作を決定する。
【００４３】
学習部５３は、報酬計算部(第２報酬計算部)５３１および価値関数更新部(第２価値関数更新部)５３２を備え、状態観測部５１からの出力および判定データ取得部５２からの出力を受け取って、ワーク４の積載状態を改善する動作を学習する。ここで、報酬計算部５３１は、判定データ取得部５２の出力であるワーク４の積載状態を改善する動作の前後における積載状態の変化の有無、並びに、ワーク４の積載状態を改善する動作を行った後におけるワーク４それぞれの保持位置姿勢データ３１ａに基づいて報酬を計算する。また、価値関数更新部５３２は、ワーク４の積載状態を改善する動作の価値を定める価値関数を有し、報酬に応じて価値関数を更新する。
【００４４】
すなわち、報酬計算部５３１は、例えば、ワーク４の積載状態を改善する動作の前後における積載状態の変化が有ればプラスの報酬を設定し、積載状態の変化が無ければマイナスの報酬を設定(第３報酬設定)する。また、報酬計算部５３１は、例えば、ワーク４の積載状態を改善する動作を行った後におけるワーク４それぞれの保持位置姿勢データ３１ａの算出に成功すればプラスの報酬を設定し、保持位置姿勢データ３１ａの算出に失敗すればマイナスの報酬を設定(第４報酬設定)する。なお、報酬計算部５３１は、第３報酬設定および第４報酬設定の両方を行ってもよいが、どちらか一方を行ってもよい。
【００４５】
このように、第２実施例のワーク取り出し装置２００によれば、ロボット１のハンド１０による保持および取り出し(ハンドリング)が困難なワーク４が残存している場合でも、機械学習装置５を適用することでワーク４の積載状態を改善する動作を更新し、ハンドリングが可能な状態にすることができる。これにより、取り出すことが困難なワークの数を低減して生産性の向上を図ることが可能になる。
【００４６】
ここで、機械学習装置５は、それぞれのロボット１を制御するロボット制御装置３(エッジ)に対して設けてもよいが、例えば、複数のロボット１(ロボットシステム)を有する工場ごと(例えば、フォグサーバ)、或いは、複数の工場とインターネット等の通信回線を介して接続されたクラウドサーバに設けることもできる。なお、それぞれのロボットに対して設けられた機械学習装置５は、例えば、少なくとも１つの他の機械学習装置(５)と接続可能とされ、その少なくとも１つの他の機械学習装置(５)との間で機械学習の結果を相互に交換または共有することも可能である。
【００４７】
ところで、機械学習装置５は、装置に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準等を解析により抽出し、その判断結果を出力するとともに、知識の学習(機械学習)を行う機能を有する。機械学習の手法は様々であるが、大別すれば、例えば、「教師あり学習」、「教師なし学習」および「強化学習」に分けられる。さらに、これらの手法を実現するうえで、特徴量そのものの抽出を学習する、「深層学習(ディープラーニング：Deep Learning)」と呼ばれる手法がある。
【００４８】
なお、図６に示す機械学習装置５は、「強化学習(Ｑ学習)」を適用したものである。この機械学習装置５は、汎用の計算機若しくはプロセッサを用いることもできるが、例えば、ＧＰＧＰＵ(General-Purpose computing on Graphics Processing Units)や大規模ＰＣクラスター等を適用すると、より高速に処理することが可能になる。ここで、機械学習の全般に関して、概略を説明する。
【００４９】
まず、教師あり学習とは、教師データ、すなわち、ある入力と結果(ラベル)のデータの組を大量に機械学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル(誤差モデル)、すなわち、その関係性を帰納的に獲得するものである。例えば、後述のニューラルネットワーク等のアルゴリズムを用いて実現することが可能である。
【００５０】
また、教師なし学習とは、入力データのみを大量に機械学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮・分類・整形等を行う装置で学習する手法である。例えば、それらのデータセットにある特徴を、似た者どうしにクラスタリングすること等ができる。この結果を使って、何らかの基準を設けてそれを最適化するような出力の割り当てを行うことにより、出力の予測を実現することができる。
【００５１】
なお、教師なし学習と教師あり学習との中間的な問題設定として、半教師あり学習と呼ばれるものもあり、これは、例えば、一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合が対応する。
【００５２】
次に、強化学習について、説明する。まず、強化学習の問題設定として、次のように考える。
・ワーク取り出し装置(すなわち、ロボット１およびロボット制御装置(ロボット制御部３０および機械学習装置５を含む)３)２００は、環境の状態を観測し、行動を決定する。
・環境は、何らかの規則に従って変化し、さらに、自分の行動が、環境に変化を与えることもある。
・行動するたびに、報酬信号が帰ってくる。
・最大化したいのは、将来にわたっての(割引)報酬の合計である。
・行動が引き起こす結果を全く知らない、または、不完全にしか知らない状態から学習はスタートする。すなわち、ロボット制御部は、実際に行動して初めて、その結果をデータとして得ることができる。つまり、試行錯誤しながら最適な行動を探索する必要がある。
・人間の動作を真似るように、事前学習(前述の教師あり学習や、逆強化学習といった手法)した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００５３】
ここで、強化学習とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、すなわち、将来的に得られる報酬を最大にするための学習する方法を学ぶものである。以下に、例として、Ｑ学習の場合で説明を続けるが、Ｑ学習に限定されるものではない。
【００５４】
Ｑ学習は、或る環境状態ｓの下で、行動ａを選択する価値Ｑ(ｓ，ａ)を学習する方法である。つまり、或る状態ｓのとき、価値Ｑ(ｓ，ａ)の最も高い行動ａを最適な行動として選択すればよい。しかし、最初は、状態ｓと行動ａとの組合せについて、価値Ｑ(ｓ，ａ)の正しい値は全く分かっていない。そこで、エージェント(行動主体)は、或る状態ｓの下で様々な行動ａを選択し、その時の行動ａに対して、報酬が与えられる。それにより、エージェントは、より良い行動の選択、すなわち、正しい価値Ｑ(ｓ，ａ)を学習していく。
【００５５】
さらに、行動の結果、将来にわたって得られる報酬の合計を最大化したいので、最終的にＱ(ｓ，ａ)＝Ｅ［Σ(γt)ｒt］となるようにすることを目指す。ここで、期待値は、最適な行動に従って状態変化したときについてとるものとし、それは、分かっていないので、探索しながら学習することになる。このような価値Ｑ(ｓ，ａ)の更新式は、例えば、次の式(１)により表すことができる。
【００５６】
【数１】
2018126802.tif 000003
上記の式(１)において、ｓtは、時刻ｔにおける環境の状態を表し、ａtは、時刻ｔにおける行動を表す。行動ａtにより、状態はｓt+1に変化する。rt+1は、その状態の変化により得られる報酬を表している。また、ｍａｘの付いた項は、状態ｓt+1の下で、その時に分かっている最もＱ値の高い行動ａを選択した場合のＱ値にγを乗じたものになる。ここで、γは、０＜γ≦１のパラメータで、割引率と呼ばれる。また、αは、学習係数で、０＜α≦１の範囲とする。
【００５７】
上述した式(１)は、試行ａtの結果、帰ってきた報酬ｒt+1を元に、状態ｓtにおける行動ａtの評価値Ｑ(ｓt，ａt)を更新する方法を表している。すなわち、状態ｓにおける行動ａの評価値Ｑ(ｓt，ａt)よりも、報酬ｒt+1 ＋ 行動ａによる次の状態における最良の行動ｍａｘ ａの評価値Ｑ(ｓt+1，ｍａｘ ａt+1)の方が大きければ、Ｑ(ｓt，ａt)を大きくし、反対に小さければ、Ｑ(ｓt，ａt)を小さくすることを示している。つまり、或る状態における或る行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【００５８】
ここで、Ｑ(ｓ，ａ)の計算機上での表現方法は、すべての状態行動ペア(ｓ，ａ)に対して、その値をテーブルとして保持しておく方法と、Ｑ(ｓ，ａ)を近似するような関数を用意する方法がある。後者の方法では、前述の式(１)は、確率勾配降下法等の手法で近似関数のパラメータを調整していくことにより、実現することができる。なお、近似関数としては、後述のニューラルネットワークを用いることができる。
【００５９】
また、強化学習での価値関数の近似アルゴリズムとして、ニューラルネットワークを用いることができる。図７は、ニューロンのモデルを模式的に示す図であり、図８は、図７に示すニューロンを組み合わせて構成した三層のニューラルネットワークを模式的に示す図である。すなわち、ニューラルネットワークは、例えば、図７に示すようなニューロンのモデルを模した演算装置およびメモリ等で構成される。
【００６０】
図７に示されるように、ニューロンは、複数の入力ｘ(図７では、一例として入力ｘ1〜ｘ3)に対する出力(結果)ｙを出力するものである。各入力ｘ(ｘ1，ｘ2，ｘ3)には、この入力ｘに対応する重みｗ(ｗ1，ｗ2，ｗ3)が乗算される。これにより、ニューロンは、次の式(２)により表現される結果ｙを出力する。なお、入力ｘ、結果ｙおよび重みｗは、すべてベクトルである。また、下記の式(２)において、θは、バイアスであり、ｆkは、活性化関数である。
【数２】
2018126802.tif 000004
【００６１】
図８を参照して、図７に示すニューロンを組み合わせて構成した三層のニューラルネットワークを説明する。図８に示されるように、ニューラルネットワークの左側から複数の入力ｘ(ここでは、一例として、入力ｘ1〜入力ｘ3)が入力され、右側から結果ｙ(ここでは、一例として、結果ｙ1〜入力ｙ3)が出力される。具体的に、入力ｘ1，ｘ2， ｘ3は、３つのニューロンＮ11〜Ｎ13の各々に対して、対応する重みが掛けられて入力される。これらの入力に掛けられる重みは、まとめてＷ１と標記されている。
【００６２】
ニューロンＮ11〜Ｎ13は、それぞれ、ｚ11〜ｚ13を出力する。図８において、これらｚ11〜ｚ13は、まとめて特徴ベクトルＺ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルＺ１は、重みＷ１と重みＷ２との間の特徴ベクトルである。ｚ11〜ｚ13は、２つのニューロンＮ21およびＮ22の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ２と標記されている。
【００６３】
ニューロンＮ21，Ｎ22は、それぞれｚ21，ｚ22を出力する。図８において、これらｚ21，ｚ22は、まとめて特徴ベクトルＺ２と標記されている。この特徴ベクトルＺ２は、重みＷ２と重みＷ３との間の特徴ベクトルである。ｚ21，ｚ22は、３つのニューロンＮ31〜Ｎ33の各々に対して、対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてＷ３と標記されている。
【００６４】
最後に、ニューロンＮ31〜Ｎ33は、それぞれ、結果ｙ１〜結果ｙ３を出力する。ニューラルネットワークの動作には、学習モードと価値予測モードとがある。例えば、学習モードにおいて、学習データセットを用いて重みＷを学習し、そのパラメータを用いて予測モードにおいて、ロボット制御部の行動判断を行う。なお、便宜上、予測と書いたが、検出・分類・推論等多様なタスクが可能なのはいうまでもない。
【００６５】
ここで、予測モードで実際にロボット制御部を動かして得られたデータを即時学習し、次の行動に反映させる(オンライン学習)ことも、予め収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う(バッチ学習)こともできる。或いは、その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００６６】
また、重みＷ１〜Ｗ３は、誤差逆伝搬法(誤差逆転伝播法：バックプロパゲーション：Backpropagation)により学習可能なものである。なお、誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ(教師)との差分を小さくするように、それぞれの重みを調整(学習)する手法である。このようなニューラルネットワークは、三層以上に、さらに層を増やすことも可能である(深層学習と称される)。また、入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することも可能である。
【００６７】
ここで、図６を参照して説明したように、本実施例の機械学習装置５は、例えば、Ｑ学習を実施すべく、状態観測部５１、判定データ取得部５２，学習部５３、および、意思決定部５４を備えている。ただし、本発明に適用される機械学習方法は、Ｑ学習に限定されるものではなく、また、機械学習装置５は、例えば、ＧＰＧＰＵや大規模ＰＣクラスター等を適用することで実現可能なのは、前述した通りである。
【００６８】
図９は、第２実施例に係るワーク取り出し装置によるワーク取り出し処理の一例を説明するためのフローチャートであり、積載状態改善動作(積載状態改善処理)の一例を説明するためのものである。図９に示されるように、第２実施例のワーク取り出し装置２００によるワーク取り出し処理(積載状態改善処理)の一例が開始すると、ステップＳＴ２１において、状態データ(センサ２の出力に基づく計測データ２ａ)を取得し、ステップＳＴ２２に進んで、行動出力を行い、さらに、ステップＳＴ２３に進む。
【００６９】
ここで、ステップＳＴ２２における行動出力は、前述した図３における積載状態改善動作生成部３２が生成する積載状態改善動作データ３２ａに相当するもので、例えば、前述した図４(a)に示すロボット１がワーク４に接近するアプローチ位置、図４(b)に示すロボット１がワーク４の積載状態を改善する動作を開始する積載状態改善動作開始位置、および、図４(c)に示すロボット１がワーク４の積載状態を改善する動作を終了する積載状態改善動作終了位置、のデータに基づく行動を行うことに対応する。さらに、ステップＳＴ２２における行動出力は、さらに、例えば、前述したロボット１がアプローチ位置から積載状態改善動作開始位置まで移動する速度のデータ(第１速度データ)、および、ロボット１が積載状態改善動作開始位置から積載状態改善動作終了位置まで移動する速度のデータ(第２速度データ)に基づく行動を含んでもよい。
【００７０】
ステップＳＴ２３では、ステップＳＴ２２の行動出力に基づく判定データを取得し、ステップＳＴ２４の判定条件１による判定、並びに、ステップＳＴ２７の判定条件２による判定を行う。すなわち、ステップＳＴ２３における判定データの取得は、例えば、積載状態改善動作を行う前の計測データと積載状態改善動作を行った後の計測データを比較して得られる積載状態の変化の有無(判定条件１)、並びに、積載状態改善動作を行った後の計測データを用いて保持位置姿勢の算出を行ったときの成否(判定条件２)を取得する。
【００７１】
まず、ステップＳＴ２４では、ステップＳＴ２３で取得したワーク４の積載状態を改善する動作の前後における積載状態の変化の有無のデータに基づいて、例えば、ワーク４の積載状態を改善する動作の前後における積載状態の変化が有ると判定すると、ステップＳＴ２５に進んで、プラスの報酬を設定し、積載状態の変化が無いと判定すると、ステップＳＴ２６に進んで、マイナスの報酬を設定する。
【００７２】
また、ステップＳＴ２７では、ステップＳＴ２３で取得したワーク４の積載状態を改善する動作を行った後におけるワーク４それぞれの保持位置姿勢(保持位置姿勢データ３１ａ)に基づいて、例えば、ワーク４の積載状態を改善する動作を行った後におけるワーク４それぞれの保持位置姿勢データ３１ａの算出に成功したと判定すると、ステップＳＴ２８に進んで、プラスの報酬を設定し、保持位置姿勢データ３１ａの算出に失敗したと判定すると、ステップＳＴ２９に進んで、マイナスの報酬を設定する。
【００７３】
なお、ステップＳＴ２４における判定は、ワーク４の積載状態を改善する動作の前後における積載状態の変化の有無ではなく、積載状態の変化の程度により報酬を決めてもよい。具体的に、例えば、積載状態の変化の程度ＬＶを、２つの閾値ＴＨ１，ＴＨ２(ただし、ＴＨ１＞ＴＨ２)で分割し、積載状態の変化ＬＶが閾値ＴＨ１よりも大きければプラスの報酬(ＬＶ＞ＴＨ１：報酬＋５)を設定し、積載状態の変化ＬＶが閾値ＴＨ１とＴＨ２の間であれば零の報酬(ＴＨ１≧ＬＶ≧ＴＨ２：報酬０)を設定し、積載状態の変化ＬＶが閾値ＴＨ２よりも小さければマイナスの報酬(ＴＨ２＞ＬＶ：報酬−５)を設定することもできる。また、積載状態の変化の程度ＬＶは、例えば、計測データが距離画像であった場合、距離画像上で変化のあった画素数をカウントしても良いし、画素の変化量を畳み込んでも良く、その手法は問わない。
【００７４】
さらに、ステップＳＴ２４の判定条件１による判定と、ステップＳＴ２７の判定条件２による判定で重みを異ならせることも可能である。具体的に、例えば、判定条件２による保持位置姿勢データ３１ａの算出に成功した場合のステップＳＴ２８におけるプラスの報酬(例えば、＋１０)を、判定条件１による積載状態の変化が有った場合のステップＳＴ２５におけるプラスの報酬(例えば、＋５)よりも大きく設定することができる。これは、判定条件１による積載状態の変化が有った場合でも、判定条件２による保持位置姿勢データ３１ａの算出に成功しないと、ワーク４を保持して取り出すことが困難なため、判定条件２による判定結果(報酬)の重みを大きくするのが好ましいからである。なお、判定条件としては、ステップＳＴ２４の判定条件１およびステップＳＴ２７の判定条件２に限定されず、他の条件を追加してもよく、或いは、判定条件１または判定条件２のいずれかであってもよいのはもちろんである。
【００７５】
次に、ステップＳＴ３０に進んで、ステップＳＴ２４の判定条件１による判定およびステップＳＴ２７の判定条件２による判定に基づいて、すなわち、ステップＳＴ２５，ＳＴ２６，ＳＴ２８およびＳＴ２９による報酬の合計に基づいて、ワーク４の積載状態を改善する動作の価値を定める価値関数を更新し、ステップＳＴ３１に進む。ステップＳＴ３１では、積載状態改善処理を継続するかどうかを判定し、さらに継続すると判定する(ＳＴ３１：Ｙｅｓ)と、ステップＳＴ２１に戻って、上述した処理を繰り返し、継続しないと判定する(ＳＴ３１：Ｎｏ)と、積載状態改善処理を終了する。このように、機械学習(強化学習)を適用して積載状態改善処理を行うことにより、取り出すことが困難なワークの数を、より一層低減することが可能になる。
【００７６】
図１０は、第３実施例に係るワーク取り出し装置３００を示すブロック図であり、ロボット制御装置３の構成を概略的に示すものである。図１０と、前述した図３の比較から明らかなように、第３実施例のワーク取り出し装置３００において、ロボット制御装置３は、ロボット制御部３０、少なくとも１つの保持位置姿勢算出部３１-1〜３１-nおよび少なくとも１つ積載状態改善動作生成部３２-1〜３２-mを含む動作候補出力部３３、および、動作決定部３４を備える。
【００７７】
動作決定部３４は、動作候補出力部３３の出力に基づいて、ロボット制御部３０を介してロボット１を制御する。ここで、動作決定部３４は、機械学習(強化学習)を行ってロボット１によりワーク(４)の積載状態を改善する動作を学習する機械学習装置６を備える。
【００７８】
図１１は、第３実施例に係るワーク取り出し装置３００を示すブロック図であり、動作決定部３４として機械学習装置６を適用したものに相当する。なお、第３実施例に係るワーク取り出し装置３００における機械学習装置(第１機械学習装置)６は、図６を参照して説明した第２実施例に係るワーク取り出し装置２００における機械学習装置(第２機械学習装置)５に対応するものであり、例えば、図７および図８等を参照して説明したのと同様に、例えば、ニューラルネットワークにより構成することができ、また，ＧＰＧＰＵや大規模ＰＣクラスター等を適用することで実現可能である。さらに、機械学習装置６により学習された少なくとも１つ以上の動作候補から１つの動作を決定する動作決定は、通信媒体を介して複数の対応する機械学習装置(６)で相互にデータを共有または交換することができるのも、第２実施例と同様である。また、機械学習装置６は、例えば、ロボット制御部３０および保持位置姿勢算出部３１-1〜３１-n等を含むロボット制御装置３(図示しない)に内蔵することもできるが、ロボット制御装置３とは別に専用の装置として設けることもできる。
【００７９】
図１１に示されるように、機械学習装置６は、状態観測部(第１状態観測部)６１、判定データ取得部(第１判定データ取得部)６２、学習部(第１学習部)６３、および、意思決定部５４を備える。ここで、状態観測部６１は、例えば、センサ２の出力に基づくワーク４それぞれの計測データ２ａ、少なくとも１つの保持位置姿勢算出部３１-1〜３１-nの出力に基づく保持位置姿勢データ３１ａ-1〜３１ａ-n、および、少なくとも１つの積載状態改善動作生成部３２-1〜３２-mの出力に基づく積載状態改善動作データ３２ａ-1〜３２ａ-mを、状態データとして観測する。また、判定データ取得部６２は、例えば、ロボット１によるワーク４のハンドリング(ハンドリング動作)に関連する時間データを、判定データとして取得する。そして、学習部６３は、例えば、状態観測部６１からの出力および判定データ取得部６２からの出力を受け取ってワーク４の積載状態を改善する動作を学習する。
【００８０】
第１学習部６３は、判定データ取得部６２の出力であるワーク４のハンドリングに関連する時間データに基づいて報酬を計算する報酬計算部(第１報酬計算部)６３１）、並びに、少なくとも１つの動作候補から１つの動作を決定する動作決定の価値を定める価値関数を有し、報酬に応じて価値関数を更新する価値関数更新部(第１価値関数更新部)６３２を備える。ここで、報酬計算部６３１は、例えば、１つのワーク４のハンドリングに要した時間を平均した平均サイクルタイムが短くなればプラスの報酬を設定し、平均サイクルタイムが長くなればマイナスの報酬を設定(第１報酬設定)する。また、報酬計算部６３１は、例えば、１つのワーク４のハンドリングに要した時間の分散を示す分散サイクルタイムが小さくなればプラスの報酬を設定し、分散サイクルタイムが大きくなればマイナスの報酬を設定(第２報酬設定)する。なお、報酬計算部６３１は、第１報酬設定および第２報酬設定の両方を行ってもよいが、どちらか一方を行ってもよい。なお、第３実施例のワーク取り出し装置３００において、積載状態改善動作生成部３２-1〜３２-mは、例えば、前述した第２実施例のように機械学習装置５を適用して積載状態改善動作データ３２ａ-1〜３２ａ-mを生成するように構成してもよい。
【００８１】
図１２および図１３は、第３実施例に係るワーク取り出し装置によるワーク取り出し処理の一例を説明するためのフローチャートであり、図１２は、全体的な処理の流れを説明するものであり、図１３は、機械学習(強化学習)による動作決定処理を説明するためのものである。
【００８２】
まず、図１２に示されるように、第３実施例のワーク取り出し装置３００によるワーク取り出しの全体的な処理の一例が開始すると、ステップＳＴ４１において、センサ２の出力に基づく計測データ２ａを取得し、ステップＳＴ４２に進んで、１以上(少なくとも１つ)の保持位置姿勢の候補および１以上の積載状態改善動作の候補(動作候補群)を出力し、ステップＳＴ４３に進む。ステップＳＴ４３では、例えば、複数の保持位置姿勢および積載状態改善動作から、どの動作を行うかを決定し、ステップＳＴ４４に進む。
【００８３】
ステップＳＴ４４では、ハンドリング動作(例えば、ロボット１および内径チャック(ハンド)１０でワーク４を取り出す一連の動作)を行うかどうかを判定し、ハンドリング動作を行うと判定する(ＳＴ４４：Ｙｅｓ)と、ステップＳＴ４５に進んで、ハンドリング動作を行って、ステップＳＴ４７に進む。また、ステップＳＴ４４において、ハンドリング動作を行わないと判定する(ＳＴ４４：Ｎｏ)と、ステップＳＴ４６に進んで、積載状態改善動作を行って、ステップＳＴ４７に進む。
【００８４】
ここで、機械学習(強化学習)を行う場合、取り出し動作(ハンドリング動作)であれば、例えば、取り出し成功の有無を機械学習装置６に入力し、また、積載状態改善動作であれば、例えば、積載状態変更の有無を機械学習装置６に入力する。なお、ハンドリング動作および積載状態改善動作のどちらであっても、例えば、システム開始(処理を開始)してからの累計経過時間、システム開始してからの累計取出し成功数、および、計測データ２ａ等を機械学習装置６に入力する。
【００８５】
ステップＳＴ４７では、少なくとも１つの動作候補から１つの動作を決定する動作決定の価値関数を更新して、ステップＳＴ４８に進み、例えば、全てのワークの取り出しが終了したかどうかを判定し、全てのワークの取り出しが終了したと判定する(ＳＴ４８：Ｙｅｓ)と、処理を終了し、全てのワークの取り出しが終了していないと判定する(ＳＴ４８：Ｎｏ)と、ステップＳＴ４１に戻り、前述したのと同様の処理を繰り返す。ここで、計測データ２ａは、例えば、機械学習装置６による学習で用いたものを流用してもよい。
【００８６】
次に、図１３に示されるように、第３実施例のワーク取り出し装置３００(機械学習装置６)による動作決定処理の一例が開始すると、ステップＳＴ５１において、状態データを取得し、ステップＳＴ５２に進んで、行動出力を行い、さらに、ステップＳＴ５３に進む。ここで、ステップＳＴ５１で取得する状態データは、例えば、センサ２の出力に基づく計測データ２ａ，少なくとも１つの保持位置姿勢算出部３１-1〜３１-nの出力に基づく少なくとも１つの保持位置姿勢データ３１ａ-1〜３１ａ-n、および、少なくとも１つの積載状態改善動作生成部３２-1〜３２-mの出力に基づく少なくとも１つの積載状態改善動作データ３２ａ-1〜３２ａ-m等である。
【００８７】
また、ステップＳＴ５２における行動出力は、動作候補部が出力した少なくとも１つの動作候補から１つの動作を決定することに対応する。さらに、ステップＳＴ５２における行動出力は、例えば、ロボット１が動作決定に基づいて、取り出し動作または積載状態改善動作を行うことを含む。
【００８８】
ステップＳＴ５３では、ステップＳＴ５２の行動出力に基づく判定データを取得し、ステップＳＴ５４の判定条件Ａによる判定、並びに、ステップＳＴ５７の判定条件Ｂによる判定を行う。すなわち、ステップＳＴ５３における判定データの取得は、例えば、１つのワーク４のハンドリングに要した時間を平均した平均サイクルタイム(判定条件Ａ)、並びに、１つのワーク４のハンドリングに要した時間の分散を示す分散サイクルタイム(判定条件Ｂ)を取得する。
【００８９】
まず、ステップＳＴ５４では、ステップＳＴ５３で取得した１つのワーク４のハンドリングに要した時間を平均した平均サイクルタイムに基づいて、例えば、平均サイクルタイムが短くなったと判定すると、ステップＳＴ５５に進んで、プラスの報酬を設定し、平均サイクルタイムが長くなったと判定すると、ステップＳＴ５６に進んで、マイナスの報酬を設定する。すなわち、平均サイクルタイムは、短い方が単位時間当たりに処理できるワークの数が多くなるため、平均サイクルタイムが短くなると、プラスの報酬を設定するようになっている。
【００９０】
また、ステップＳＴ５７では、ステップＳＴ５３で取得した、１つのワーク４のハンドリングに要した時間の分散を示す分散サイクルタイムに基づいて、例えば、分散サイクルタイムが小さくなったと判定すると、ステップＳＴ５８に進んで、プラスの報酬を設定し、分散サイクルタイムが大きくなったと判定すると、ステップＳＴ５９に進んで、マイナスの報酬を設定する。すなわち、分散サイクルタイム(サイクルタイムの分散)は、小さい方が一定の間隔で安定してハンドリングを行うことができるため、分散サイクルタイムが小さくなると、プラスの報酬を設定するようになっている。
【００９１】
さらに、ステップＳＴ６０に進んで、ステップＳＴ５４の判定条件Ａによる判定およびステップＳＴ５７の判定条件Ｂによる判定に基づいて、すなわち、ステップＳＴ５５，ＳＴ５６，ＳＴ５８およびＳＴ５９による報酬の合計に基づいて、動作決定の価値関数を更新し、ステップＳＴ６１に進む。ステップＳＴ６１では、動作決定処理を継続するかどうかを判定し、さらに継続すると判定する(ＳＴ６１：Ｙｅｓ)と、ステップＳＴ５１に戻って、上述した処理を繰り返し、継続しないと判定する(ＳＴ６１：Ｎｏ)と、動作決定処理を終了する。このように、機械学習(強化学習)を適用して動作決定処理を行うことにより、取り出すことが困難なワークの数を、より一層低減することが可能になる。
【００９２】
なお、ステップＳＴ５４の判定条件Ａによる判定と、ステップＳＴ５７の判定条件Ｂによる判定で重みを異ならせることも可能であり、例えば、判定条件Ａによる判定結果(報酬)の重みを大きくすることで、単位時間当たりにワークを取り出すことができる数を重要視して機械学習を行わせることが可能になる。また、判定条件としては、ステップＳＴ５４の判定条件ＡおよびステップＳＴ５７の判定条件Ｂに限定されず、他の条件を追加してもよく、或いは、判定条件Ａまたは判定条件Ｂのいずれかであってもよいのはいうまでもない。
【００９３】
以上、詳述したように、各実施例によれば、取り出すことが困難なワークの数を低減することができ、例えば、最後のワークまで取り出すことが可能になり、その結果、生産性の向上を図ることができる。
【００９４】
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
【符号の説明】
【００９５】
１    ロボット
２    センサ
３    ロボット制御装置
４，４ａ〜４ｄ    ワーク
５    機械学習装置(第２機械学習装置)
６    機械学習装置(第１機械学習装置)
１０    内径チャック(ハンド)
３０    ロボット制御部
３１    保持位置姿勢算出部
３２    積載状態改善動作生成部
４０    コンテナ
５１    状態観測部(第２状態観測部)
５２    判定データ取得部(第２判定データ取得部)
５３    学習部(第２学習部)
５４，６４    意思決定部
６１    状態観測部(第１状態観測部)
６２    判定データ取得部(第１判定データ取得部)
６３    学習部(第１学習部)
１００，２０，３００，５００    ワーク取り出し装置
５３１    報酬計算部(第２報酬計算部)
５３２    価値関数更新部(第２価値関数更新部)
６３１    報酬計算部(第１報酬計算部)
６３２    価値関数更新部(第１価値関数更新部)
【図１】
2018126802.tif 000005
【図２】
2018126802.tif 000006
【図３】
2018126802.tif 000007
【図４】
2018126802.tif 000008
【図５】
2018126802.tif 000009
【図６】
2018126802.tif 000010
【図７】
2018126802.tif 000011
【図８】
2018126802.tif 000012
【図９】
2018126802.tif 000013
【図１０】
2018126802.tif 000014
【図１１】
2018126802.tif 000015
【図１２】
2018126802.tif 000016
【図１３】
2018126802.tif 000017
【手続補正書】
【提出日】平成29年11月28日(2017.11.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
三次元空間にバラ積みされた複数のワークを計測するセンサと、
前記ワークを保持するロボットと、
前記ロボットに取り付けられたワークを保持可能なハンドと、
前記センサの出力に基づいて、前記ロボットにより前記ワークを保持する位置および姿勢の保持位置姿勢データを算出する保持位置姿勢算出部と、
前記センサの出力に基づいて、前記ロボットにより前記ワークの積載状態を改善する動作の積載状態改善動作データを生成する積載状態改善動作生成部と、
前記ロボットおよび前記ハンドを制御するロボット制御部と、を備え、
前記ロボット制御部は、前記保持位置姿勢算出部および前記積載状態改善動作生成部の出力に基づいて、前記ロボットおよび前記ハンドを制御することで前記ワークの取り出しもしくは積載状態改善動作を行う、
ことを特徴とするワーク取り出し装置。
【請求項２】
前記保持位置姿勢算出部は、前記ロボットにより保持することが可能な前記ワークが存在するとき、前記保持位置姿勢データを前記ロボット制御部に出力し、
前記積載状態改善動作生成部は、前記ロボットにより保持することが可能な前記ワークが存在しないとき、前記ロボット制御部に対して前記積載状態改善動作データを前記ロボット制御部に出力する、
ことを特徴とする請求項１に記載のワーク取り出し装置。
【請求項３】
さらに、
少なくとも１つの前記保持位置姿勢算出部、および、少なくとも１つの前記積載状態改善動作生成部を含み少なくとも１つの動作候補を出力する動作候補出力部と、
前記動作候補出力部の出力の少なくとも１つの動作候補から１つの動作を決定し、その決定された動作に基づいて前記ロボット制御部を介して前記ロボットを制御する動作決定部と、を備え、
前記動作決定部は、機械学習を行って前記動作候補出力部が出力する少なくとも１つの動作候補から１つの動作を決定する動作決定を学習する第１機械学習装置を備え、前記第１機械学習装置は、
前記センサで取得される計測データ、少なくとも１つの前記保持位置姿勢算出部の出力に基づく保持位置姿勢データ、および、少なくとも１つの前記積載状態改善動作生成部の出力に基づく積載状態改善動作データを、状態データとして観測する第１状態観測部と、
前記センサで計測し、前記ロボットおよび前記ハンドでワークを取り出す一連の動作であるハンドリングに関連する時間データを、判定データとして取得する第１判定データ取得部と、
前記第１状態観測部が取得する状態データおよび前記第１判定データ取得部が取得する判定データに基づいて、前記動作候補出力部が出力する少なくとも１つの動作候補から１つの動作を決定する動作決定を学習する第１学習部と、を備える、
ことを特徴とする請求項１に記載のワーク取り出し装置。
【請求項４】
前記第１学習部は、
前記第１判定データ取得部が取得する判定データである時間データに基づいて報酬を計算する第１報酬計算部と、
前記少なくとも１つの動作候補から動作を決定する動作決定の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する第１価値関数更新部と、を備え、前記動作決定部は前記価値関数に基づいて動作決定を行う、
ことを特徴とする請求項３に記載のワーク取り出し装置。
【請求項５】
前記第１報酬計算部は、
１つの前記ワークのハンドリングに要した時間を平均した平均サイクルタイムが短くなればプラスの報酬を設定し、前記平均サイクルタイムが長くなればマイナスの報酬を設定する第１報酬設定と、
１つの前記ワークのハンドリングに要した時間の分散を示す分散サイクルタイムが小さくなればプラスの報酬を設定し、前記分散サイクルタイムが大きくなればマイナスの報酬を設定する第２報酬設定、の少なくとも一方を行う、
ことを特徴とする請求項４に記載のワーク取り出し装置。
【請求項６】
前記積載状態改善動作生成部は、機械学習を行って前記ロボットにより前記ワークの積載状態を改善する動作を学習する第２機械学習装置を備え、前記第２機械学習装置は、
前記センサの出力に基づく前記ワークそれぞれの計測データ、および、前記保持位置姿勢算出部の出力に基づく前記ワークそれぞれの前記保持位置姿勢データを、状態データとして観測する第２状態観測部と、
前記計測データに基づいて、前記ワークの積載状態を改善する動作の前後における前記積載状態の変化の有無、および、前記ワークの積載状態を改善する動作を行った後における前記ワークそれぞれの前記保持位置姿勢データを、判定データとして取得する第２判定データ取得部と、
前記第２状態観測部からの出力および前記第２判定データ取得部からの出力を受け取って、前記ワークの積載状態を改善する動作を学習する第２学習部と、を備える、
ことを特徴とする請求項１乃至請求項５のいずれか１項に記載のワーク取り出し装置。
【請求項７】
前記第２学習部は、
前記第２判定データ取得部の出力である前記ワークの積載状態を改善する動作の前後における前記積載状態の変化の有無、および、前記ワークの積載状態を改善する動作を行った後における前記ワークそれぞれの前記保持位置姿勢データに基づいて報酬を計算する第２報酬計算部と、
前記ワークの積載状態を改善する動作の価値を定める価値関数を有し、前記報酬に応じて前記価値関数を更新する第２価値関数更新部と、を備え、
前記積載状態改善動作生成部は第２価値関数に基づいて積載状態改善動作データを生成する、
ことを特徴とする請求項６に記載のワーク取り出し装置。
【請求項８】
前記第２報酬計算部は、
前記ワークの積載状態を改善する動作の前後における前記積載状態の変化が有ればプラスの報酬を設定し、前記積載状態の変化が無ければマイナスの報酬を設定する第３報酬設定と、
前記ワークの積載状態を改善する動作を行った後における前記ワークそれぞれの前記保持位置姿勢データの算出に成功すればプラスの報酬を設定し、前記保持位置姿勢データの算出に失敗すればマイナスの報酬を設定する第４報酬設定、の少なくとも一方を行う、
ことを特徴とする請求項７に記載のワーク取り出し装置。
【請求項９】
前記第１機械学習装置により学習された動作決定、或いは、前記第２機械学習装置により学習された前記ワークの積載状態を改善する動作は、通信媒体を介して複数の対応する第１または第２機械学習装置で相互にデータを共有または交換するようになっている、
ことを特徴とする請求項３乃至請求項８のいずれか１項に記載のワーク取り出し装置。
【請求項１０】
前記積載状態改善動作データは、
前記ロボットが前記ワークに接近するアプローチ位置、
前記ロボットが前記ワークの積載状態を改善する動作を開始する積載状態改善動作開始位置、および、
前記ロボットが前記ワークの積載状態を改善する動作を終了する積載状態改善動作終了位置、のデータを含む、
ことを特徴とする請求項１乃至請求項９のいずれか１項に記載のワーク取り出し装置。
【請求項１１】
前記積載状態改善動作データは、さらに、
前記ロボットが、前記アプローチ位置から前記積載状態改善動作開始位置まで移動する第１速度データ、および、
前記ロボットが、前記積載状態改善動作開始位置から前記積載状態改善動作終了位置まで移動する第２速度データ、を含む、
ことを特徴とする請求項１０に記載のワーク取り出し装置。
【請求項１２】
前記ハンドは、マグネットトハンドまたは吸着ハンドであり、
前記積載状態改善動作は、前記載状態改善動作開始位置で前記ワークを仮保持し、前記載状態改善動作終了位置で前記ワークを解放する、
ことを特徴とする請求項１０または請求項１１に記載のワーク取り出し装置。
【請求項１３】
前記積載状態改善動作を行っているとき、前記ロボットおよび前記ハンドの少なくとも一方に掛かる負荷を計測し、前記積載状態改善動作中に、前記ロボットおよび前記ハンドの少なくとも一方に所定以上の負荷が掛かったら前記積載状態改善動作を中断して前記ロボットを退避させる、
ことを特徴とする請求項１乃至請求項１２のいずれか１項に記載のワーク取り出し装置。
【請求項１４】
前記積載状態改善動作は、
前記ハンドによって前記ワークに外力を加えることで、前記ワークを移動または倒す動作であり、或いは、
前記積載状態改善動作にインピーダンス制御を適用することで前記ワークに適切な外力を加えながら行う動作である、
ことを特徴とする請求項１乃至請求項１３のいずれか１項に記載のワーク取り出し装置。
【請求項１５】
三次元空間にバラ積みされた複数のワークを計測するセンサと、前記ワークを保持するロボットと、前記ロボットに取り付けられたワークを保持可能なハンドと、を備えるワーク取り出し装置のワーク取り出し方法であって、
前記センサの出力に基づいて、前記ロボットにより前記ワークを保持する位置および姿勢の保持位置姿勢データを算出し、
前記センサの出力に基づいて、前記ロボットにより前記ワークの積載状態を改善する動作の積載状態改善動作データを生成し、
前記保持位置姿勢データおよび前記積載状態改善動作データに基づいて、前記ロボットおよび前記ハンドを制御することで前記ワークの取り出しもしくは積載状態改善動作を行う、
ことを特徴とするワーク取り出し方法。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2018126802.tif 000018