(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022174984
(43)【公開日】2022-11-25
(54)【発明の名称】作業状態判定装置、方法、及びプログラム
(51)【国際特許分類】
B25J 13/08 20060101AFI20221117BHJP
【FI】
B25J13/08 Z
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021081072
(22)【出願日】2021-05-12
(71)【出願人】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】沖 賢太朗
(72)【発明者】
【氏名】的場 俊亮
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707BS12
3C707KS33
3C707KX06
3C707LW12
3C707LW15
3C707MT01
3C707MT06
(57)【要約】
【課題】正常系及び異常系を含む作業状態を判定する。
【解決手段】取得部32が、ロボットハンドの手先部に作用する力を検知する力覚センサにより検知されたデータを取得し、判定部38が、ロボットハンドの作業状態を判定する判定器36であって、正常系の作業状態の特徴を抽出する第1判定器と、異常系の作業状態の特徴を抽出する第2判定器とが結合され、作業状態として、作業完了、作業継続、及び作業継続不可の3状態を出力する判定器36に、取得部32により取得されたデータを入力して、作業状態を判定する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
ロボットハンドの手先部に作用する力を検知する力覚センサにより検知されたデータを取得する取得部と、
前記ロボットハンドの作業状態を判定する判定器であって、正常系の作業状態の特徴を抽出する第1判定器と、異常系の作業状態の特徴を抽出する第2判定器とが結合され、前記作業状態として、作業完了、作業継続、及び作業継続不可の3状態を出力する判定器に、前記取得部により取得されたデータを入力して、前記作業状態を判定する判定部と、
を含む作業状態判定装置。
【請求項2】
前記判定器には、前記取得部により取得された時系列のデータが入力され、前記第1判定器に入力されるデータの時間幅より、前記第2判定器に入力されるデータの時間幅の方が長い請求項1に記載の作業状態判定装置。
【請求項3】
前記第1判定器についての前記時間幅は、作業完了時に生じるデータの過渡応答に対応した時間幅であり、前記第2判定器についての前記時間幅は、異常が発生し、前記ロボットハンドの動作を停止させるまでの時間に対応した時間幅である請求項2に記載の作業状態判定装置。
【請求項4】
前記第1判定器は、作業状態が作業継続から作業完了へ遷移した場合の時系列のデータの遷移前の各データに作業継続のラベルを付し、遷移後のデータに作業完了のラベルを付した学習データを用いて学習されており、前記第2判定器は、作業状態が作業継続から作業継続不可へ遷移した場合の時系列のデータの遷移前のデータに作業継続のラベルを付し、遷移後のデータに作業継続不可のラベルを付した学習データを用いて学習されている請求項1~請求項3のいずれか1項に記載の作業状態判定装置。
【請求項5】
前記学習データを用いて、前記判定器の学習を実行する学習部を含む請求項4に記載の作業状態判定装置。
【請求項6】
前記学習部は、前記学習データ及び乱数を用いて疑似的な学習データを生成し、前記学習データに前記疑似的な学習データを追加して、前記判定器の学習に用いる請求項5に記載の作業状態判定装置。
【請求項7】
前記取得部は、さらに、前記ロボットハンドの手先部の位置を取得し、
前記判定部は、前記力覚センサにより検知されたデータと、前記手先部の位置とを前記判定器に入力して、前記作業状態を判定する
請求項1~請求項6のいずれか1項に記載の作業状態判定装置。
【請求項8】
前記判定器は、前記第1判定器を構成する第1のニューラルネットワークと、前記第2判定器を構成する第2のニューラルネットワークとを含み、前記第1のニューラルネットワークの出力と、前記第2のニューラルネットワークの出力とを結合した結果を出力する請求項1~請求項7のいずれか1項に記載の作業状態判定装置。
【請求項9】
前記判定部により判定された前記作業状態に基づいて、前記ロボットハンドの動作を制御する制御部を含む請求項1~請求項7のいずれか1項に記載の作業状態判定装置。
【請求項10】
取得部が、ロボットハンドの手先部に作用する力を検知する力覚センサにより検知されたデータを取得し、
判定部が、前記ロボットハンドの作業状態を判定する判定器であって、正常系の作業状態の特徴を抽出する第1判定器と、異常系の作業状態の特徴を抽出する第2判定器とが結合され、前記作業状態として、作業完了、作業継続、及び作業継続不可の3状態を出力する判定器に、前記取得部により取得されたデータを入力して、前記作業状態を判定する
作業状態判定方法。
【請求項11】
コンピュータを、
ロボットハンドの手先部に作用する力を検知する力覚センサにより検知されたデータを取得する取得部、及び、
前記ロボットハンドの作業状態を判定する判定器であって、正常系の作業状態の特徴を抽出する第1判定器と、異常系の作業状態の特徴を抽出する第2判定器とが結合され、前記作業状態として、作業完了、作業継続、及び作業継続不可の3状態を出力する判定器に、前記取得部により取得されたデータを入力して、前記作業状態を判定する判定部
として機能させるための作業状態判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、作業状態判定装置、作業状態判定方法、及び作業状態判定プログラムに関する。
【背景技術】
【0002】
製造現場でのロボットによる組立作業において、ロボットの知能化を進めることで治具などを用いず調整作業を簡単化する技術が研究されている。例えば、スナップフィットをもつワークの組立作業を対象とした、RNN(Recurrent Neural Network) を用いた判定手法が提案されている(非特許文献1参照)。この手法は、ワークを嵌め込んだときのロボット手先反力の過渡的な変化に注目し、過渡的な波形を捉える小さな時間幅でRNNを構成し学習する。
【0003】
また、例えば、嵌合及び挿入作業において、様々な原因に依存する作業良否を判定するロボットシステムが提案されている(特許文献1参照)。このシステムでは、作業成功時の特徴量の存在範囲と作業失敗時の特徴量存在範囲を失敗原因毎に算出して、各特徴量の存在領域を記録し、作業実行時の特徴量がどの特徴量存在領域内にあるかによって作業良否と失敗時の原因を判定する。
【先行技術文献】
【特許文献】
【0004】
【非特許文献】
【0005】
【非特許文献1】M. Karlsson, A. Robertsson, and R. Johansson, "Detection and control of contact force transients in robotic manipulation without a force sensor", In 2018 IEEE International Conference on Robotics and Automation (ICRA), 2018.
【発明の概要】
【発明が解決しようとする課題】
【0006】
従来技術では、組立作業の完了又は未完了を判定可能である。しかし、実際の製造現場では、例えば、ワークの持ち替え作業を行わなければ組立作業を継続できないといった異常系の状態も存在する。従来技術では、そのような異常系の状態を判定できない、又は、特徴エンジニアリングによって一品一様に判定器を調整する必要がある、という問題がある。
【0007】
本発明は、上記の点に鑑みてなされたものであり、正常系及び異常系を含む作業状態を判定することを目的とする。
【課題を解決するための手段】
【0008】
上記目的を達成するために、本発明に係る作業状態判定装置は、ロボットハンドの手先部に作用する力を検知する力覚センサにより検知されたデータを取得する取得部と、前記ロボットハンドの作業状態を判定する判定器であって、正常系の作業状態の特徴を抽出する第1判定器と、異常系の作業状態の特徴を抽出する第2判定器とが結合され、前記作業状態として、作業完了、作業継続、及び作業継続不可の3状態を出力する判定器に、前記取得部により取得されたデータを入力して、前記作業状態を判定する判定部と、を含んで構成される。
【0009】
また、前記判定器には、前記取得部により取得された時系列のデータが入力され、前記第1判定器に入力されるデータの時間幅より、前記第2判定器に入力されるデータの時間幅の方を長くしてもよい。
【0010】
また、前記第1判定器についての前記時間幅は、作業完了時に生じるデータの過渡応答に対応した時間幅であり、前記第2判定器についての前記時間幅は、異常が発生し、前記ロボットハンドの動作を停止させるまでの時間に対応した時間幅としてもよい。
【0011】
また、前記第1判定器は、作業状態が作業継続から作業完了へ遷移した場合の時系列のデータの遷移前の各データに作業継続のラベルを付し、遷移後のデータに作業完了のラベルを付した学習データを用いて学習されており、前記第2判定器は、作業状態が作業継続から作業継続不可へ遷移した場合の時系列のデータの遷移前のデータに作業継続のラベルを付し、遷移後のデータに作業継続不可のラベルを付した学習データを用いて学習されたものとしてもよい。
【0012】
また、本発明に係る作業状態判定装置は、前記学習データを用いて、前記判定器の学習を実行する学習部をさらに含んで構成されてもよい。
【0013】
また、前記学習部は、前記学習データ及び乱数を用いて疑似的な学習データを生成し、前記学習データに前記疑似的な学習データを追加して、前記判定器の学習に用いてもよい。
【0014】
また、前記取得部は、さらに、前記ロボットハンドの手先部の位置を取得し、前記判定部は、前記力覚センサにより検知されたデータと、前記手先部の位置とを前記判定器に入力して、前記作業状態を判定してもよい。
【0015】
また、前記判定器は、前記第1判定器を構成する第1のニューラルネットワークと、前記第2判定器を構成する第2のニューラルネットワークとを含み、前記第1のニューラルネットワークの出力と、前記第2のニューラルネットワークの出力とを結合した結果を出力するようにしてもよい。
【0016】
また、本発明に係る作業状態判定装置は、前記判定部により判定された前記作業状態に基づいて、前記ロボットハンドの動作を制御する制御部をさらに含んで構成されてもよい。
【0017】
また、本発明に係る作業状態判定方法は、取得部が、ロボットハンドの手先部に作用する力を検知する力覚センサにより検知されたデータを取得し、判定部が、前記ロボットハンドの作業状態を判定する判定器であって、正常系の作業状態の特徴を抽出する第1判定器と、異常系の作業状態の特徴を抽出する第2判定器とが結合され、前記作業状態として、作業完了、作業継続、及び作業継続不可の3状態を出力する判定器に、前記取得部により取得されたデータを入力して、前記作業状態を判定する方法である。
【0018】
また、本発明に係る作業状態判定プログラムは、コンピュータを、ロボットハンドの手先部に作用する力を検知する力覚センサにより検知されたデータを取得する取得部、及び、前記ロボットハンドの作業状態を判定する判定器であって、正常系の作業状態の特徴を抽出する第1判定器と、異常系の作業状態の特徴を抽出する第2判定器とが結合され、前記作業状態として、作業完了、作業継続、及び作業継続不可の3状態を出力する判定器に、前記取得部により取得されたデータを入力して、前記作業状態を判定する判定部として機能させるためのプログラムである。
【発明の効果】
【0019】
本発明に係る作業状態判定装置、方法、及びプログラムによれば、正常系及び異常系を含む作業状態を判定することができる。
【図面の簡単な説明】
【0020】
【
図1】ロボットシステムの概略を示す構成図である。
【
図3】作業状態判定装置のハードウェア構成を示すブロック図である。
【
図4】作業状態判定装置の機能構成の例を示すブロック図である。
【
図5】学習データの生成を説明するための図である。
【
図7】学習処理の流れを示すフローチャートである。
【
図8】判定制御処理の流れを示すフローチャートである。
【
図9】疑似的な学習データの生成を説明するための図である。
【発明を実施するための形態】
【0021】
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法及び比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0022】
図1に示すように、本実施形態に係るロボットシステム100は、作業状態判定装置10と、ロボット部50とを含んで構成される。ロボット部50は、手先部としてのグリッパ56を含むマニピュレータ52と、力覚センサ54とを含む。マニピュレータ52は、開示の技術の「ロボットハンド」の一例であり、グリッパ56は、開示の技術の「手先部」の一例である。
【0023】
マニピュレータ52は、例えば、3次元空間における動作に必要な6自由度の構成を備えた垂直多関節型のロボットである。なお、マニピュレータ52の自由度は、6自由度に冗長自由度を加えた7自由度としてもよい。マニピュレータ52は、各関節の回転角度が、作業状態判定装置10から出力される制御情報(詳細は後述)に応じた角度となるように、各関節を駆動する。これにより、グリッパ56が指定の位置及び姿勢となるように制御される。また、マニピュレータ52は、現在の各関節の回転角度を作業状態判定装置10へ出力する。
【0024】
グリッパ56は、多様なワークを、多様な把持状態で把持可能な汎用性を有し、かつ大きな把持ズレを防止する構成を備えたものが好ましい。例えば、グリッパ56は、ワークを把持する面に滑り止めのゴムが取り付けられた、平行2指グリッパとしてよい。
【0025】
力覚センサ54は、マニピュレータ52の手首部とグリッパ56との間に設置され、グリッパ56に作用する、平行3軸及び回転3軸の6方向の外力値を検知し、力覚センサ値として出力する。力覚センサ値は、開示の技術の「力覚センサにより検知されたデータ」の一例である。
【0026】
作業状態判定装置10は、マニピュレータ52による作業状態を判定しながら、マニピュレータ52の動作を制御する。本実施形態では、
図1に示すように、グリッパ56で把持した主ワーク60を、作業台上の副ワーク62へ挿入する作業を想定する。主ワーク60は、例えばコネクタであり、副ワーク62は、例えばソケットである。また、本実施形態では、主ワーク60と副ワーク62とは、主ワーク60が副ワーク62へ適切に挿入された場合に、スナップフィットにより接合されるものとする。
【0027】
また、本実施形態では、判定対象の作業状態としては、
図2に示すように、作業完了、作業継続不可、及び作業継続を設定する。作業完了は、副ワーク62への主ワーク60の挿入が完了した状態である。作業継続不可は、副ワーク62への主ワーク60の挿入が完了する前に、グリッパ56の先端が副ワーク62と干渉するなどしており、グリッパ56による主ワーク60の持ち替え作業を行うなどしないと、作業を継続できない状態である。作業継続は、副ワーク62への主ワーク60の挿入作業を継続可能な状態である。
【0028】
図3は、本実施形態に係る作業状態判定装置10のハードウェア構成を示すブロック図である。
図3に示すように、作業状態判定装置10は、CPU(Central Processing Unit)12、メモリ14、記憶装置16、入力装置18、出力装置20、記憶媒体読取装置22、及び通信I/F(Interface)24を有する。各構成は、バス26を介して相互に通信可能に接続されている。
【0029】
記憶装置16には、後述する学習処理及び判定制御処理を実行するための作業状態判定プログラムが格納されている。CPU12は、中央演算処理ユニットであり、各種プログラムを実行したり、各構成を制御したりする。すなわち、CPU12は、記憶装置16からプログラムを読み出し、メモリ14を作業領域としてプログラムを実行する。CPU12は、記憶装置16に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。
【0030】
メモリ14は、RAM(Random Access Memory)により構成され、作業領域として一時的にプログラム及びデータを記憶する。記憶装置16は、ROM(Read Only Memory)、及びHDD(Hard Disk Drive)、SSD(Solid State Drive)等により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0031】
入力装置18は、例えば、キーボードやマウス等の、各種の入力を行うための装置である。出力装置20は、例えば、ディスプレイやプリンタ等の、各種の情報を出力するための装置である。出力装置20として、タッチパネルディスプレイを採用することにより、入力装置18として機能させてもよい。記憶媒体読取装置22は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、ブルーレイディスク、USB(Universal Serial Bus)メモリ等の各種記憶媒体に記憶されたデータの読み込みや、記憶媒体に対するデータの書き込み等を行う。通信I/F24は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0032】
次に、第1実施形態に係る作業状態判定装置10の機能構成について説明する。
【0033】
図4は、作業状態判定装置10の機能構成の例を示すブロック図である。
図4に示すように、作業状態判定装置10は、機能構成として、取得部32と、学習部34と、判定部38と、制御部40とを含む。各機能構成は、CPU12が記憶装置16に記憶された作業状態判定プログラムを読み出し、メモリ14に展開して実行することにより実現される。また、作業状態判定装置10の所定の記憶領域には、判定器36が記憶される。
【0034】
取得部32は、学習処理時において、作業状態判定装置10に入力された学習データを取得する。学習データは、力覚センサ54により各時刻において検知された力覚センサ値、及び各時刻におけるグリッパ56の手先位置に関する情報と、各時刻における作業状態の正解を示すラベルとが対応付けられたデータである。グリッパ56の手先位置に関する情報(以下、単に「手先位置」ともいう)は、グリッパ56の先端等の所定位置の絶対位置でもよいし、1タイムステップ間における所定位置の相対移動量や絶対移動量でもよい。手先位置は、マニピュレータ52から出力された、各関節の回転角度(以下、「関節角値」という)、及びマニピュレータ52のキネマティクス情報に基づく行列演算により得られる。
【0035】
ここで、学習データの生成について説明する。上述したように、本実施形態では、作業完了、作業継続不可、及び作業継続の3つの作業状態を判定する。そこで、作業状態が作業継続から作業完了へ遷移した場合、
図5左図中の破線に示すように、力覚センサ値における過渡応答のピークに対応する時刻を、作業状態が切り替わった時刻として特定する。これは、本実施形態で想定しているスナップフィットを適用した作業において、主ワーク60が副ワーク62に挿入された際に生じる過渡的な応答を示す波形に基づいて、作業が完了したタイミングを特定するものである。なお、
図5において、力覚センサ値は、グリッパ56に作用する垂直方向の力に関する力覚センサ値を表している。そして、特定した時刻を作業状態の遷移の基準として、力覚センサ値及び手先位置の時系列のデータの遷移前の各時刻のデータに作業継続のラベルを付し、遷移後の各時刻のデータに作業完了のラベルを付す。
【0036】
また、作業状態が作業継続から作業継続不可へ遷移した場合、
図5右図中の破線に示すように、マニピュレータ52が動作を止めたタイミングを、作業状態が切り替わった時刻として特定する。マニピュレータ52が動作を止めたタイミングは、力覚センサ値が所定値以下となったタイミングとしてよい。これは、グリッパ56が副ワーク62と干渉することにより、力覚センサ値がなだらかに減少する現象に基づいて、マニピュレータ52が停止するタイミングを捉えたものである。そして、特定した時刻を作業状態の遷移の基準として、力覚センサ値及び手先位置の時系列のデータの遷移前の各時刻のデータに作業継続のラベルを付し、遷移後の各時刻のデータに作業継続不可のラベルを付す。
【0037】
なお、上記のように学習データを生成した場合、作業継続のラベルが付与された学習データの数に比べ、作業完了及び作業継続不可の各々のラベルが付与された学習データの数が少なくなり、学習データの数に偏りが生じる。そこで、ラベル毎の学習データの数が同程度となるように、数の少ないラベルの学習データをコピーして増やしてもよい。これにより、過学習を防ぎ、汎化性能を損なわないようにすることができる。
【0038】
取得部32は、学習データを取得した場合、取得した学習データを学習部34へ受け渡す。以下、作業状態が作業継続から作業完了へ遷移した場合における学習データを「正常系の学習データ」、作業状態が作業継続から作業継続不可へ遷移した場合における学習データを「異常系の学習データ」という。
【0039】
また、取得部32は、判定制御処理時において、力覚センサ54から出力された力覚センサ値、及びマニピュレータ52から出力された関節角値を取得する。取得部32は、取得した関節角値、及びマニピュレータ52のキネマティクス情報に基づく行列演算により、手先位置を演算する。取得部32は、取得した力覚センサ値と、演算した手先位置とを対応付けて対象データとし、判定部38へ受け渡す。
【0040】
学習部34は、取得部32から受け渡された学習データを用いて、マニピュレータ52の作業状態を判定する判定器36のパラメータの学習を実行する。判定器36は、例えば、DNN(Deep Neural Network)で構成してよい。本実施形態では、時系列データを対象としたRNN(Recurrent Neural Network)により判定器36を構成する場合について説明する。
【0041】
図6に、判定器36の一例を示す。
図6の例では、判定器36は、正常系の作業状態の特徴が抽出される第1判定器36Aと、異常系の作業状態の特徴が抽出される第2判定器36Bとが結合されている。判定器36は、入力層、中間層、及び出力層を含む。入力層の各ニューロンへは、学習データの各時刻のベクトル値x
i
(t)が入力される。iは、第1判定器36Aと第2判定器36Bとを識別するための番号であり、i=1は第1判定器36A、i=2は第2判定器36Bを表す。また、x
i
(t)は、時刻tの力覚センサ値であるベクトル値F
(t)と手先位置のベクトル値P
(t)とを結合したベクトル値である。tは、1,2,・・・,T
iである。
【0042】
中間層の各ニューロンへは、対応する入力層の各ニューロンから出力される値に重み付けがされた値が入力される。また、中間層の各ニューロンへは、1時刻前の中間層のニューロンから出力される値に重み付けされた値が入力される。中間層の各ニューロンは、入力された値に活性化関数を適用した値を、1時刻後の中間層のニューロンへ出力する。例えば、中間層の各ニューロンは、下記のようなベクトル値hi
(t)を出力してよい。
hi
(1)=tanh(bi+Uixi
(1))
hi
(t)=tanh(bi+Wihi
(t-1)+Uixi
(t))
i∈[1;2],t∈[2;Ti]
【0043】
Uiは、入力層の各ニューロンから出力される値に掛かる重みを表すパラメータであり、Wiは、1時刻前の中間層の各ニューロンから出力される値に掛かる重みを表すパラメータである。また、tanhは、活性化関数の一例であり、biは、バイアスを表すパラメータである。第1判定器36Aの中間層の出力h1
(T_1)は、時刻t=1~t=T1における力覚センサ値及び手先位置を特徴量化したベクトル値である。また、第2判定器36Bの中間層の出力h2
(T_2)は、時刻t=1~t=T2における力覚センサ値及び手先位置を特徴量化したベクトル値である。
【0044】
出力層は、例えば、下記に示すように、第1判定器36Aからの出力と、第2判定器36Bからの出力とを結合し、判定結果を出力する。
o=c+V
1h
1
(T_1)+V
2h
2
(T_2)
y^=softmax(o)
V
iは、t=T
iの中間層のニューロンからの出力h
i
(T_i)に係る重みであり、cは、パラメータ、softmaxは、活性化関数の一例である。y^(
図6では、「y」の上に「^(ハット)」)は、作業状態の判定結果であり、現在の作業状態が作業完了である確率、作業継続不可である確率、及び作業継続である確率を表す3次元のベクトルである。なお、出力層は、確率が最も大きい作業状態を判定結果として出力するようにしてもよい。
【0045】
ここで、第1判定器36A及び第2判定器36Bの各々に入力されるデータの時間幅T
i(i∈[1;2])について説明する。上述したように、作業状態が作業継続から作業完了へ遷移する場合、
図5左図に示すように、作業状態の切り替わり時に、力覚センサ値に過渡応答を示す波形が発生する。したがって、T
1としては、判定したい状態を意味付ける特徴的な過渡応答の波形の時間幅を設定することが好ましい。一方、作業状態が作業継続から作業継続不可へ遷移する場合、グリッパ56と副ワーク62との干渉が発生することにより、
図5右図に示すように、力覚センサ値のなだらかな減少を示す波形が発生する。したがって、T
2としては、このなだらかな波形の変化を捉えることができる、T
1よりも長い時間幅を設定することが好ましい。このように、正常系及び異常系の各々の特徴に応じた適切な時間幅を判定器36に設定することにより、学習データの数を比較的少なくすることができる。
【0046】
学習部34は、取得部32から受け渡された学習データを用いて、上述したような判定器36の学習を実行することにより、判定器36のパラメータを決定する。具体的には、学習部34は、まず、T1及びT2を決定する。例えば、学習部34は、学習データに基づいて、ユーザにより指定されたT1及びT2を受け付けることにより、T1及びT2を決定してよい。また、学習部34は、T1及びT2の各々を、時間幅を所定値ずつ変更させながら学習を実行することにより、最も精度の良い出力が得られるT1及びT2を決定してもよい。
【0047】
学習部34は、決定したT1及びT2を第1判定器36A及び第2判定器36Bにそれぞれ設定すると共に、中間層の出力hi
(T-i)に、下記に示すような仮の出力層を追加する。
oi=ci+Vihi
(T_i)
yi^=softmax(oi) ,i∈[1;2]
【0048】
学習部34は、仮の出力層を追加した第1判定器36Aに、正常系の学習データを入力し、仮の出力層を追加した第2判定器36Bに、異常系の学習データを入力する。そして、学習部34は、出力値yi^と学習データに付与されたラベルとの差異(例えば、交差エントロピー等)を最小化するように、判定器36の入力層及び中間層に含まれるパラメータUi、Wi、及びbiを決定する。
【0049】
さらに、学習部34は、上述のように決定したTi、Ui、Wi、及びbiを固定した上で、判定器36に学習データを入力する。そして、学習部34は、出力値y^と学習データに付与されたラベルとの差異(例えば、交差エントロピー等)を最小化するように、出力層に含まれるパラメータVi及びcを決定する。なお、ここで判定器36に入力される学習データは、入力層及び中間層のパラメータを決定した際に用いた学習データとは異なる学習データであってよい。また、入力層及び中間層のパラメータを決定した際に用いた正常系の学習データと異常系の学習データとをランダムに混ぜて用いてもよい。
【0050】
学習部34は、上記のようにパラメータTi、Ui、Wi、bi、Vi、及びcが決定された判定器36を所定の記憶領域に記憶する。
【0051】
判定部38は、取得部32から受け渡された対象データを判定器36に入力して、現在の作業状態を判定し、判定結果を制御部40へ受け渡す。
【0052】
制御部40は、判定部38から受け渡された判定結果が示す作業状態に基づいて、マニピュレータ52の行動を決定する。例えば、制御部40は、予め定められた、作業状態に応じたマニピュレータ52の行動ルールに基づいて、行動を決定してよい。行動ルールとしては、例えば、作業状態が作業完了の場合には、初期姿勢に戻る、作業状態が作業継続不可の場合には、主ワーク60を持ち替える等を定めておいてよい。制御部40は、決定した行動に応じた動作をマニピュレータ52に実行させるための制御情報を生成する。制御情報は、具体的には、決定された行動におけるマニピュレータ52の姿勢を実現するための各関節の回転角度である。制御部40は、生成した制御情報をマニピュレータ52へ出力する。
【0053】
次に、本実施形態に係るロボットシステム100の作用について説明する。
【0054】
作業状態判定装置10に学習データが入力され、判定器36の学習が指示されると、作業状態判定装置10において、学習処理が実行される。そして、学習が実行された判定器36が所定の記憶領域に記憶された状態で、マニピュレータ52による作業が開始されると、作業状態判定装置10において、判定制御処理が実行される。学習処理及び判定制御処理は、開示の技術の「作業状態判定方法」の一例である。
【0055】
図7は、作業状態判定装置10のCPU12により実行される学習処理の流れを示すフローチャートである。CPU12が記憶装置16から作業状態判定プログラムを読み出して、メモリ14に展開して、学習処理に関するプロセスを実行することにより、CPU12が作業状態判定装置10の各機能構成として機能し、
図7に示す学習処理が実行される。
【0056】
ステップS10で、取得部32が、作業状態判定装置10に入力された、正常系及び異常系を含む学習データを取得し、学習部34へ受け渡す。次に、ステップS12で、学習部34が、ユーザからT1及びT2を受け付けるなどして、第1判定器36Aの時間幅T1、及び第2判定器36Bの時間幅T2を決定する。
【0057】
次に、ステップS14で、学習部34が、決定したT1及びT2を第1判定器36A及び第2判定器36Bにそれぞれ設定すると共に、中間層の出力hi
(T-i)に仮の出力層を追加する。また、学習部34が、仮の出力層を追加した第1判定器36Aに、正常系の学習データを入力し、仮の出力層を追加した第2判定器36Bに、異常系の学習データを入力する。そして、学習部34が、仮の出力層からの出力値と学習データに付与されたラベルとの差異を最小化するように、判定器36の入力層及び中間層に含まれるパラメータUi、Wi、及びbi(i∈[1;2])を決定する。
【0058】
次に、ステップS16で、学習部34が、上記ステップS12及びS14で決定したTi、Ui、Wi、及びbiを固定した上で、判定器36に学習データを入力する。そして、学習部34が、出力層からの出力値と学習データに付与されたラベルとの差異を最小化するように、出力層に含まれるパラメータVi及びcを決定する。
【0059】
次に、ステップS18で、学習部34が、上記ステップS12~S16でパラメータTi、Ui、Wi、bi、Vi、及びcが決定された判定器36を所定の記憶領域に記憶し、学習処理は終了する。
【0060】
図8は、作業状態判定装置10のCPU12により実行される判定制御処理の流れを示すフローチャートである。CPU12が記憶装置16から作業状態判定プログラムを読み出して、メモリ14に展開して、判定制御処理に関するプロセスを実行することにより、CPU12が作業状態判定装置10の各機能構成として機能し、
図8に示す判定制御処理が実行される。
【0061】
ステップS20で、取得部32が、力覚センサ54から出力された力覚センサ値、及びマニピュレータ52から出力された関節角値を取得する。次に、ステップS22で、取得部32が、取得した関節角値、及びマニピュレータ52のキネマティクス情報に基づく行列演算により、手先位置を演算する。
【0062】
次に、ステップS24で、取得部32が、上記ステップS20で取得した力覚センサ値と、上記ステップS22で演算した手先位置とを対応付けて対象データとし、判定部38へ受け渡す。判定部38が、判定器36の入力層の各ニューロンに入力されているベクトル値xi
(t)を1時刻前のニューロンへ移行させると共に、取得部32から受け渡された対象データをxi
(t)に対応する入力層のニューロンへ入力する。そして、判定部38が、判定器36の出力層からの出力値に基づいて、現在の作業状態を判定し、判定結果を制御部40へ受け渡す。
【0063】
次に、ステップS26で、制御部40が、判定部38から受け渡された判定結果が示す作業状態に基づいて、マニピュレータ52の行動を決定する。次に、ステップS28で、制御部40が、決定した行動に応じた動作をマニピュレータ52に実行させるための制御情報を生成し、マニピュレータ52へ出力する。そして、判定制御処理は終了する。
【0064】
以上説明したように、本実施形態に係るロボットシステムでは、作業状態判定装置が、マニピュレータのグリッパについて、力覚センサ値及び手先位置を取得する。そして、力覚センサ値及び手先位置を、正常系の作業状態の特徴を抽出する第1判定器と、異常系の作業状態の特徴を抽出する第2判定器とが結合され、マニピュレータの作業状態を判定する判定器に入力する。作業状態判定装置は、判定器の出力値に基づいて、作業状態が、作業完了、作業継続、及び作業継続不可の何れであるかを判定し、判定結果に基づいて、マニピュレータを制御する。これにより、正常系及び異常系を含む作業状態を判定することができる。
【0065】
また、本実施形態によれば、作業継続不可の作業状態も判定できることにより、様々なワークを対象とした組立作業を対象とした場合でも、ワークを持ち替える等の動作を自動で実行させるなど、ロボットシステムによる作業の自動化を促進することができる。また、本実施形態によれば、ユーザは、対象のワーク毎に力覚センサ値の閾値を設定する等の特徴エンジニアリングから解放されるため、自動組み立ての生産ラインの立ち上げの負担を軽減することができる。
【0066】
また、本実施形態によれば、正常系及び異常系のそれぞれにおける力覚センサ値の波形が、判定器の学習に用いた学習データと類似する場合には、学習時に用いたワークとは異なるワークを対象とした作業に対しても、精度良く作業状態を判定することができる。例えば、4ピンタイプの車載コネクタの挿入組立作業時の力覚センサ値を学習データとして用いて学習した判定器を用いて、未学習の9ピンタイプの車載コネクタの挿入組立作業の作業状態を判定することができる。
【0067】
また、第1判定器に入力されるデータの時間幅より、第2判定器に入力されるデータの時間幅の方を長くすることで、正常系及び異常系のデータの特徴を捉え、精度良く作業状態を判定することができる。
【0068】
なお、上記実施形態では、判定器に入力するデータとして、力覚センサ値及び手先位置を用いる場合について説明したが、手先位置は必須ではなく、少なくとも力覚センサ値を入力として用いればよい。
【0069】
また、力覚センサ値及び手先位置の両方を用いる場合において、力覚センサ値と手先位置との論理積(AND)、又は論理和(OR)で判定を行うようにしてもよい。作業継続か作業完了かを判定する第1判定器においては、作業未完了品を完了と誤判定した場合の不良品の発生を抑制するために、AND判定を行うことが望ましい。また、作業継続か作業継続不可かを判定する第2判定器においては、作業の内容や、作業継続不可時の対処方法等に応じて、AND判定とするか、OR判定とするかを設定するようにしてもよい。このようなAND判定又はOR判定を行うためには、AND条件又はOR条件に従ってラベルを付与した学習データを用いて判定器の学習を実行すればよい。力覚センサ値と手先位置とのAND条件に対してラベルを付与した学習データを用いた場合には、AND判定を実現する判定器となり、OR条件に対してラベルを付与した学習データを用いた場合には、OR判定を実現する判定器となる。
【0070】
また、学習データとして、力覚センサやマニピュレータから実際に取得されたデータ(元の学習データ)に加え、乱数を用いて疑似的に生成した学習データを用いてもよい。具体的には、センサノイズや力覚センサ値のスケールなど、現場で発生し得るデータのバラつき要素から乱数を決定し、決定した乱数に基づいて疑似的な学習データを生成する。例えば、
図9に示すように、元の学習データである力覚センサ値を、発生させた乱数を乗算するなどしてスケール変換して、疑似的な学習データを生成してよい。このように生成した疑似的な学習データを元の学習データに追加して学習を実行することにより、より少数な現場の学習データを用いて精度良い判定器を学習することができる。
【0071】
また、上記実施形態では、各機能構成を1つのコンピュータで実現する場合について説明したが、これに限定されない。例えば、取得部、学習部、及び判定部を含む作業状態判定装置と、制御部を含む制御装置とをそれぞれ異なるコンピュータで実現してもよい。さらに、作業状態判定装置についても、取得部及び学習部を含む学習装置と、取得部及び判定部を含む判定装置とをそれぞれ異なるコンピュータで実現してもよい。
【0072】
また、上記実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した学習処理及び判定制御処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、学習処理及び判定制御処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0073】
また、上記実施形態では、作業状態判定プログラムが記憶装置に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM、DVD-ROM、ブルーレイディスク、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0074】
本実施形態は、コネクタの挿入やフタ部品の嵌め込みなど、自動挿入や嵌め合い作業を実行する機能を有する産業用ロボット、サービスロボット等に適用可能である。
【符号の説明】
【0075】
10 作業状態判定装置
12 CPU
14 メモリ
16 記憶装置
18 入力装置
20 出力装置
22 記憶媒体読取装置
24 通信I/F
26 バス
32 取得部
34 学習部
36 判定器
36A 第1判定器
36B 第2判定器
38 判定部
40 制御部
50 ロボット部
52 マニピュレータ
54 力覚センサ
56 グリッパ
60 主ワーク
62 副ワーク
100 ロボットシステム