(57)【特許請求の範囲】
【請求項１】
アクチュエータにより駆動されるロボットのハンドに支持された第１部品を第２部品に組み付けるように前記ロボットを制御するロボットの制御装置であって、
予め強化学習によって得られた前記第１部品の複数の組付途中状態と各々の組付途中状態に対し最も高い報酬を与える前記ロボットの最適行動との関係を記憶する記憶部と、
前記第１部品の組付途中状態を検知する状態検知部と、
前記記憶部に記憶された前記関係に基づき、前記状態検知部により検知された組付途中状態に対応する前記ロボットの最適行動を特定し、該最適行動に従い前記アクチュエータを制御するアクチュエータ制御部と、を備え、
前記状態検知部は、前記ハンドに作用する並進力とモーメントとを検出する検出器を有し、前記検出器により検出された並進力の変化量と前記検出器により検出されたモーメントとに基づいて前記第１部品の組付途中状態を特定することを特徴とするロボットの制御装置。
【請求項２】
請求項１に記載のロボットの制御装置において、
前記最適行動は、前記ハンドの移動方向を示す角度、前記移動方向に沿った前記ハンドの移動量、および前記移動方向に対する前記ハンドの回転量の組み合わせによって規定されることを特徴とするロボットの制御装置。
【請求項３】
請求項１または２に記載のロボットの制御装置において、
前記記憶部は、前記第１部品の組付開始から組付完了に至るまでの複数の組付途中状態と各々の組付途中状態に対応する最適行動との関係を記憶することを特徴とするロボットの制御装置。
【請求項４】
アクチュエータにより駆動されるロボットのハンドに支持された第１部品を第２部品に組み付けるように前記ロボットを制御するロボットの制御方法であって、
前記ハンドの駆動により前記第１部品を前記第２部品へ組み付ける作業を複数回行って、前記第１部品の複数の組付途中状態と各々の組付途中状態に対し最も高い報酬を与える前記ロボットの最適行動との関係を取得する強化学習工程と、
前記第１部品を前記第２部品に組み付けるときに、前記第１部品の組付途中状態を検知し、検知した組付途中状態に対応する最適行動を前記強化学習工程で取得した前記関係に基づいて特定し、特定した最適行動に従い前記アクチュエータを制御する組付作業工程と、を含み、
前記第１部品の組付途中状態を検知することは、前記ハンドに作用する並進力とモーメントとを検出し、検出された並進力の変化量と検出されたモーメントとに基づいて前記第１部品の組付途中状態を特定することを含むことを特徴とするロボットの制御方法。
【請求項５】
請求項４に記載のロボットの制御方法において、
前記強化学習工程を行う前に、作業者が前記第１部品を前記第２部品へ組み付ける事前作業工程をさらに含み、
前記強化学習工程では、前記事前作業工程で把握した前記作業者の行動パターンに基づき、前記強化学習工程における前記ロボットの行動を決定することを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、圧入作業などを行うロボットの制御装置およびロボットの制御方法に関する。
【背景技術】
【０００２】  従来より、ロボットのハンドに取り付けられて、圧入作業時の反力を低減するようにした装置が知られている（例えば特許文献１参照）。特許文献１には、被圧入ワークに穿設された圧入孔に軸状部品を圧入する圧入装置が記載される。この圧入装置は、一対のばねを介して取り付け部材に揺動可能に支持された圧入手段を有し、これにより圧入孔のエッジから軸状部品が偏心荷重を受けると圧入手段が揺動し、圧入反力を低減する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１１６６６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】  しかしながら、上記特許文献１記載の装置は、単に圧入反力を低減するに過ぎず、例えば軸状部品の個体差に起因して軸状部品と圧入孔との間に芯ずれ等が存在する場合、上記特許文献１記載の装置を用いても圧入を行うことは困難である。
【課題を解決するための手段】
【０００５】
本発明の一態様は、アクチュエータにより駆動されるロボットのハンドに支持された第１部品を第２部品に組み付けるようにロボットを制御するロボットの制御装置であって、予め強化学習によって得られた第１部品の複数の組付途中状態と各々の組付途中状態に対し最も高い報酬を与えるロボットの最適行動との関係を記憶する記憶部と、第１部品の組付途中状態を検知する状態検知部と、記憶部に記憶された関係に基づき、状態検知部により検知された組付途中状態に対応するロボットの最適行動を特定し、最適行動に従いアクチュエータを制御するアクチュエータ制御部と、を備える。状態検知部は、ハンドに作用する並進力とモーメントとを検出する検出器を有し、検出器により検出された並進力の変化量と検出器により検出されたモーメントとに基づいて第１部品の組付途中状態を特定する。
【０００６】
また、本発明の別の態様は、アクチュエータにより駆動されるロボットのハンドに支持された第１部品を第２部品に組み付けるようにロボットを制御するロボットの制御方法であって、ハンドの駆動により第１部品を第２部品へ組み付ける作業を複数回行って、第１部品の複数の組付途中状態と各々の組付途中状態に対し最も高い報酬を与えるロボットの最適行動との関係を取得する強化学習工程と、第１部品を第２部品に組み付けるときに、第１部品の組付途中状態を検知し、検知した組付途中状態に対応する最適行動を強化学習工程で取得した関係に基づいて特定し、特定した最適行動に従いアクチュエータを制御する組付作業工程と、を含む。第１部品の組付途中状態を検知することは、ハンドに作用する並進力とモーメントとを検出し、検出された並進力の変化量と検出されたモーメントとに基づいて第１部品の組付途中状態を特定することを含む。
【発明の効果】
【０００７】  本発明によれば、強化学習を利用することで、第１部品と第２部品との間に芯ずれ等が存在する場合であっても、ロボットのハンドの駆動により第１部品を第２部品に容易に組み付けることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係るロボットの制御装置を含むロボットシステムを概略的に示す図。
【図２】図１のロボットのアーム先端部の拡大図。
【図３Ａ】ワークの組付作業時におけるワークの曲がり状態を示す図。
【図３Ｂ】ワークの組付作業時におけるワークの座屈状態を示す図。
【図４】ワークの組付作業時における基準移動経路の一例を示す図。
【図５】ワークの組付途中状態を説明する図。
【図６】Ｑ学習で用いられる報酬テーブルの一例を示す図。
【図７】図４の一部を取り出した図であり、ワークの移動経路を説明する図。
【図８】ワークの組付作業時におけるロボットのとり得る行動を示す図。
【図９】ハンドの動作した試行回数とＱ値との関係を示す図。
【図１０Ａ】強化学習工程で得られたＱテーブルの一例を示す図。
【図１０Ｂ】強化学習工程で得られたＱテーブルの他の例を示す図。
【図１１】Ｑテーブルの具体例を示す図。
【図１２】図１の通常制御部で実行される処理の一例を示すフローチャート。
【発明を実施するための形態】
【０００９】  以下、図１〜図１２を参照して本発明の実施形態について説明する。図１は、本発明の実施形態に係るロボットの制御装置を含むロボットシステムを概略的に示す図である。このロボットシステムは、ロボット１と、ロボット１を制御するコントローラ２とを有する。コントローラ２は、ＰＬＣ（Programmable Logic Controller）やサーボアンプなどを含んで構成される。
【００１０】  ロボット１は、例えば回動可能な複数のアーム１１を有する垂直多関節ロボットであり、アーム先端部に作業用のハンド１２が設けられる。ロボット１は、ロボット駆動用の複数（便宜上１つのみ図示）のサーボモータ１３を有する。各サーボモータ１３にはエンコーダ１４が設けられ、エンコーダ１４によりサーボモータ１３の回転角度が検出される。検出された回転角度はコントローラ２にフィードバックされ、コントローラ２でのフィードバック制御により、三次元空間におけるハンド１２の位置および姿勢が制御される。
【００１１】  コントローラ２は、ＣＰＵ，ＲＯＭ，ＲＡＭおよびその他の周辺回路などを有する演算処理装置を含んで構成される。コントローラ２は、予めメモリに格納されたプログラムに従いサーボモータ１３に制御信号を出力し、ロボット１の動作を制御する。ロボット１は種々の作業を行うことが可能であるが、本実施形態に係るロボット１は、特にワークを部品に組み付ける組付作業を行うように構成される。
【００１２】  図２は、ロボット１のアーム先端部の拡大図である。図２に示すように、ハンド１２は軸線ＣＬ１を中心として拡縮可能な爪部１２ａを有し、爪部１２ａを介し軸線ＣＬ１を中心としてワーク１００を把持することができる。ワーク１００は、例えば可撓性を有する材質（ゴム等）によって構成されたチューブである。このワーク１００は、例えばエンジンから突設されてワーク１００よりも硬い材質（金属等）によって構成された部品（例えばパイプ）１０１の外側に圧入され、これによりワーク１００が部品１０１に組み付けられる。ワーク１００と部品１０１とにより、エンジン内へまたはエンジン内から流体が流入または流出する流路が形成される。
【００１３】  ワーク１００の組付作業時には、予め基準となるワーク形状を定義する。例えば本実施形態のようにワーク１００がチューブである場合には、軸線ＣＬ１を中心とした円筒形状の基準ワーク形状（点線）を定義する。そして、ハンド１２の先端部に基準点Ｐ０を設定し、基準点Ｐ０の位置を制御することでワーク組付作業を行う。基準点Ｐ０は、例えば図示のように軸線ＣＬ１上の基準ワーク形状の先端の点に設定される。なお、ハンド１２の取付部から所定距離だけ離れた点（例えば爪部１２ａの先端等）に基準点Ｐ０を設定することもできる。
【００１４】  ところで、チューブ形状のワーク１００にはワーク固有の曲がり癖が存在し、個々のワーク形状に個体差が生じる。この個体差はワーク１００の成形条件等の違いによっても生じる。さらに、使用時の気温や湿度の差異により、ワーク１００の物理的特性（弾性率等）が変化するおそれがある。その結果、図２に示すように軸線ＣＬ１とワーク先端部の中心軸ＣＬ２との間にずれが生じる。このため、予め定められた軌跡に沿ってハンド１２を動作させてワーク１００の組付作業を行うと（位置制御）、例えば図３Ａに示すようにワーク１００の曲がり、あるいは図３Ｂに示すようにワーク１００に座屈が生じるおそれがある。
【００１５】  このようなワーク１００の曲がりや座屈を避けるために、例えばハンド１２に圧入反力を低減する反力受け部を設けるように構成すると、ハンド１２の構成が複雑になり、ハンド１２が大型化する。また、仮にハンド１２に反力受け部あるいはハンド１２に作用する力を検出するセンサ等を設け、ハンド１２に作用する力を制御するように構成しても（力制御）、チューブ等の柔軟性のあるワーク１００の圧入を迅速に行うことは困難である。特に、ワーク１００と部品１０１との間に芯ずれが存在する場合、芯ずれを解消しながら圧入を行うことは難しい。そこで、本実施形態では、ハンド１２の構成を複雑にすることなく、かつ、ワーク１００の圧入を迅速に行わせることができるよう、以下のようにロボットの制御装置を構成する。
【００１６】  図１に示すように、コントローラ２には、エンコーダ１４の他、力検出器１５と入力部１６とからの信号が入力される。
【００１７】  図２に示すように、力検出器１５は、ハンド１２の先端部に設けられた６軸力覚センサにより構成される。軸線ＣＬ１の方向をＺ方向、軸線ＣＬ１に垂直な平面を構成する直交２軸方向をＸ方向およびＹ方向と定義すると、力検出器１５は、ハンド１２に作用するＸ軸、Ｙ軸およびＺ軸方向の並進力Ｆｘ，Ｆｙ，Ｆｚと、Ｘ軸、Ｙ軸およびＺ軸廻りのモーメントＭｘ，Ｍｙ，Ｍｚとを検出する。Ｚ方向はハンド１２の進行方向（軸線ＣＬ１に沿った方向）であり、Ｙ方向は部品１０１の軸線ＣＬ３とワーク先端の中心軸ＣＬ２との芯ずれが生じる方向である。すなわち、部品間の芯ずれをＹＺ面内で生じさせるようにロボット１は動作し、ハンド１２は芯ずれを修正するようにＹＺ面内を移動する。
【００１８】  図１の入力部１６は、キーボードやタッチパネル等により構成され、入力部１６を介して組付作業に係わる各種指令や設定値、基準ワーク形状等が入力される。本実施形態に係るロボット１は、コントローラ２からの指令により通常のワーク組付作業を行う他、強化学習としての作業を行うことが可能であり、これらの作業の切換も入力部１６を介して指令される。強化学習において必要となる各種設定値、例えば、ハンド先端部（基準点Ｐ０）の基準となる移動経路（図４の基準移動経路ＰＡ）や単位時間当たりの移動量（ピッチ）等も入力部１６を介して設定される。
【００１９】  コントローラ２は、機能的構成として、記憶部２１と、モータ制御部２２とを有する。モータ制御部２２は、強化学習の際にサーボモータ１３を制御する学習制御部２３と、通常のワーク組付作業時にサーボモータ１３を制御する通常制御部２４とを有する。記憶部２１には、ワーク１００の組付途中の状態とその組付途中状態に対応するロボット１の行動との関係（後述するＱテーブル）が記憶される。強化学習の工程では、学習制御部２３での処理によりサーボモータ１３を駆動し、ワーク１００を部品１０１へ組み付ける作業を複数回行う。以下、強化学習について説明する。
【００２０】  強化学習とは、ある環境内におけるエージェントが現在の状態を観測し、取るべき行動を決定する問題を扱う機械学習の一種である。エージェントは行動を選択することで環境から報酬を得る。強化学習には種々の手法があるが、本実施形態ではＱ学習(Q-learning)を用いる。Ｑ学習は、ある環境状態の下で、最も行動評価関数の値（Ｑ値）が高い行動（最も多くの報酬を受けるような行動）をとるように学習を行う手法である。
【００２１】  Ｑ値は、時刻tにおける状態ｓtと行動ａtとに基づき、次式(I)により更新される。  Ｑ(ｓt,ａt)←       Ｑ(ｓt,ａt)＋α[ｒt+1＋γmaxＱ(ｓt+1,ａt+1)−Ｑ(ｓt,ａt)]・・・(I)
【００２２】  上式(I)のαは、Ｑ値を更新する度合いを表す係数（学習率）であり、γは、この先起こりうる事象の結果をどの程度反映させるかを表す係数（割引率）である。これら係数α，γは、いずれも経験に基づいて０＜α≦１, ０＜γ≦１の範囲内で適宜調整して設定される。上式(I)のｒは、状態ｓtの変化に対して行動ａtを評価する指標（報酬）であり、状態ｓtがよくなればＱ値が増加するように設定される。
【００２３】  強化学習としての作業を行うに当たっては、まず、ワーク１００の組付開始から組付完了に至るまでの基準移動経路を定義する。図４は、基準移動経路ＰＡの一例を示す図である。この基準移動経路ＰＡは、ワーク１００の組付作業に習熟した作業者が実際に手でワーク１００を圧入するときの態様を考慮して決定される。
【００２４】  すなわち、柔軟性を有するワーク１００を部品１０１の外周面に圧入する場合、作業者は、まずワーク１００の先端部を把持して、ワーク先端部を部品１０１の外側に、軸線ＣＬ３に対し所定角度θ（例えば４５°）で斜めに挿入する。次いで作業者は、ワーク１００の中心軸ＣＬ２が軸線ＣＬ３に一致するようにワーク１００を回転させた後、その姿勢のままワーク１００を軸線ＣＬ３に沿って所定位置まで押し込む。この点を考慮して、図４に示すように、ロボット１によりワーク１００を圧入する場合の基準移動経路ＰＡがＹＺ面上で定義される。なお、図４では、基準移動経路ＰＡに沿ってハンド１２の動作方向（Ｚ方向）が変化し、それに伴いＺ方向に垂直なＹ方向も変化する。
【００２５】  図４では、ワーク１００の先端（基準点Ｐ０）が部品１０１に接触する直前の組付開始位置から、ワーク先端が所定位置まで圧入された組付完了位置に至るまでを、基準移動経路ＰＡに沿って複数（例えば２０個）のステップ（ＳＴ１〜ＳＴ２０）に分割する。そして、上式(I)の時刻ｔをステップに置き換え、ステップ毎にＱ値を算出する。なお、ステップＳＴ１〜ＳＴ９では、ワーク１００が軸線ＣＬ３に対して斜めに挿入され、ステップＳＴ１０〜ＳＴ１２ではワーク１００が回転させられ、ステップＳＴ１３〜ＳＴ２０ではワーク１００が軸線ＣＬ３に沿って押し込まれる。以下では、ワーク組付作業時における現在のステップ、直前のステップ、直後のステップを、それぞれＳＴt、ＳＴt-1、ＳＴt+1で表すことがある。
【００２６】  ロボット１に強化学習（Ｑ学習）としてのワーク組付作業を行わせるためには、ワーク１００の組付開始から組付完了に至るまでのワーク１００の状態（組付途中状態）とロボット１のとり得る行動とを定義する必要がある。まず、組付途中状態について説明する。
【００２７】  図５は、ＹＺ平面内を移動するワーク１００の組付途中状態を説明する図である。図５に示すように、ワーク１００の組付途中状態は、ハンド先端部に作用する軸線ＣＬ２方向（Ｚ方向）の力Ｆｚの変化量ΔＦｚと、ＹＺ平面に直交するＸ軸回りのモーメントＭｘとに応じて、６つの状態、すなわちモードＭＤ１〜モードＭＤ６に分類することができる。
【００２８】  なお、力の変化量ΔＦｚは、現在のステップＳＴtにおいてワークに作用する力Ｆｚと直前のステップＳＴt-1においてワークに作用した力Ｆｚとの差である。例えば現在ステップＳＴ３であるとき、ステップＳＴ３で作用した力Ｆｚとその直前のステップＳＴ２で作用した力Ｆｚとの差がΔＦｚである。力の変化量ΔＦｚをパラメータとすることで、ワーク１００の個体差による影響を受けずに、精度よく状態を特定することができる。また、力Ｆｚ自体をパラメータする場合には、ワークの種類が変化する度に閾値を設定し直す必要があるが、本実施形態のように力の変化量ΔＦｚをパラメータとすることで、ワークの種類が変化した場合であっても、閾値を改めて設定し直す必要がなく、状態の特定が容易である。モーメントＭｘは、ハンド１２に＋Ｙ方向への回転力が作用するときにプラス、−Ｙ方向への回転力が作用するときにマイナスの値となる。モーメントＭｘの正負の値を判定することにより、軸線ＣＬ３に対するワーク１００の芯ずれ方向を特定することができる。
【００２９】  図５において、モードＭＤ２は、力の変化量ΔＦｚとモーメントＭｘとがともに０またはほぼ０の状態である。より具体的には、力の変化量ΔＦｚがプラスの所定値ΔＦ１以下で、かつ、モーメントＭｘがマイナスの所定値Ｍ２以上かつプラスの所定値Ｍ１以下の状態であり、例えばワーク１００が部品１０１に接触していない非接触状態に対応する。モードＭＤ１は、力の変化量ΔＦｚがΔＦ１以下で、かつ、モーメントＭｘがＭ１より大きい状態であり、図示のようにワーク１００が＋Ｙ方向に座屈した状態に対応する。モードＭＤ３は、力の変化量ΔＦｚがΔＦ１以下で、かつ、モーメントＭｘがＭ２未満の状態であり、図示のようにワークが−Ｙ方向に座屈した状態に対応する。なお、モードＭＤ１〜モードＭＤ３は、力の変化量ΔＦｚがマイナスの場合も含む。
【００３０】  モードＭＤ５は、力の変化量ΔＦｚがΔＦ１より大きく、かつ、モーメントＭｘがＭ２以上かつＭ１以下の状態である。この状態は、図示のようにワーク１００が正常に圧入されるときの正常状態に対応する。モードＭＤ４は、力の変化量ΔＦｚがΔＦ１より大きく、かつ、モーメントＭｘがＭ１より大きい状態であり、図示のようにワークが＋Ｙ方向に曲がった曲がり状態に対応する。モードＭＤ６は、力の変化量ΔＦｚがΔＦ１より大きく、かつ、モーメントＭｘがＭ２未満の状態であり、図示のようにワークが−Ｙ方向に曲がった曲がり状態に対応する。
【００３１】  現在のワーク１００の組付途中状態、すなわちワーク１００がどのモードＭＤ１〜ＭＤ６に該当するかは、力検出器１５により検出された力ＦｚとモーメントＭｘ、より正確には力の変化量ΔＦｚとモーメントＭｘととに基づき学習制御部２３が特定する。
【００３２】  上式(I)の報酬ｒは、予め記憶された報酬テーブル、すなわち現在のステップＳＴtにおける状態と直前のステップＳＴt-1における状態との関係で定義される報酬テーブルを用いて設定される。図６は、報酬テーブルの一例を示す図である。図６において、現ステップＳＴtにおける状態が正常状態（ＭＤ５）であれば、直前ステップＳＴt-1における状態に拘らず報酬ｒ（具体的には報酬ｒ１５、ｒ２５，ｒ３５，ｒ４５，ｒ５５，ｒ６５）には所定値（例えば＋２）が設定される。すなわち、この場合には正の報酬ｒが与えられる。
【００３３】  現ステップＳＴtにおける状態と直前ステップＳＴt-1における状態との間に変化がないとき（例えば現ステップＳＴtと直前ステップＳＴt-1とがともに座屈状態ＭＤ１またはＭＤ３のとき）、報酬ｒ（具体的には報酬ｒ１１、ｒ２２，ｒ３３，ｒ４４，ｒ６６）には所定値（例えば−３）が設定される。すなわち、この場合には、これ以上状態は改善されないとして、負の報酬ｒが与えられる。それ以外の場合（正常状態ＭＤ５以外に状態が変化した場合）には、報酬ｒに０が設定される。なお、上述した報酬ｒの値は、実際の圧入作業の結果を踏まえて適宜変更可能である。学習制御部２３は、図６の報酬テーブルに従い各ステップで上式(I)の報酬ｒを設定し、Ｑ値を算出する。
【００３４】  次に、ワーク組付時におけるロボット１の行動について説明する。まず、図４に示すように、基準移動経路ＰＡに沿ってＹＺ平面内に所定間隔の格子を定義する。図７は、図４の格子の一部を取り出した図である。図７に示すように、格子の交点（ドット）はハンド先端部の移動点に相当する。すなわち、ハンド先端部（基準点Ｐ０）は各ステップＳＴ１〜ＳＴ２０においてドット単位で移動し、ドットの間隔はハンド１２の移動時のピッチに相当する。
【００３５】  例えば、現在のステップＳＴtにおいてハンド先端部（基準点Ｐ０）の位置が基準移動経路ＰＡ上の図７の点Ｐ１であるとき、直後のステップＳＴt+1では、ハンド１２は基準移動経路ＰＡに沿った点Ｐ２、基準移動経路ＰＡから＋Ｙ方向に１ピッチずれた点Ｐ３、−Ｙ方向に１ピッチずれた点Ｐ４のいずれかに移動する。現在のステップＳＴtが仮に点Ｐ４になると、直後のステップＳＴt+1では、点Ｐ５，Ｐ６，Ｐ７のいずれかに移動する。
【００３６】  これらハンド１２の移動可能な方向（移動方向を示す角度）および移動量は予めメモリに記憶される。例えば移動方向を示す角度として、軸線ＣＬ１に対し０°および±４５°が、移動量として、隣り合うドットの間隔に相当する長さが設定される。学習制御部２３は、この定められた条件に従い高い報酬ｒが得られるようにロボット１を動作させる。ロボット１は、単なるハンド１２の移動だけではなく、Ｘ軸廻りにハンド１２を回転させることもできる。したがって、コントローラ２には、ハンド１２の移動方向に対するＸ軸廻りの回転量も設定される。
【００３７】  図８は、ワーク組付作業時におけるロボット１のとり得る行動を示す図である。図８に示すように、ロボット１は、ステップＳＴ１〜ＳＴ２０でそれぞれ９通りの行動ａ１〜ａ９をとることができる。行動ａ１は、図７の点Ｐ１から点Ｐ２への移動および点Ｐ４から点Ｐ５への移動に対応する。行動ａ２は、図７の点Ｐ１から点Ｐ４への移動および点Ｐ４から点Ｐ７への移動に対応する。行動ａ３は、図７の点Ｐ１から点Ｐ３への移動および点Ｐ４から点Ｐ６への移動に対応する。行動ａ４〜ａ６は、行動ａ１〜ａ３による移動に加え、Ｘ軸廻りに時計方向に回転する行動である。行動ａ７〜ａ９は、行動ａ１〜ａ３による移動に加え、Ｘ軸廻りに反時計方向に回転する行動である。
【００３８】  強化学習としての作業は、ワーク１００の６通りの組付途中状態（モードＭＤ１〜ＭＤ６）のそれぞれに対し、９通りの行動ａ１〜ａ９を適用することにより行うことができる。しかしながら、その場合には、状態と行動との組み合わせが多数となり、強化学習工程に多大な時間がかかる。そこで、強化学習工程にかかる時間を短縮するために、強化学習における行動を絞り込むことが好ましい。
【００３９】  行動の絞り込みは、例えばワークの組付作業に習熟した作業者に予め手動で組付作業を行わせ、そのときの行動パターンを把握することにより行う。すなわち、ワーク１００の組付開始から組付完了までの各ステップＳＴ１〜ＳＴ２０において、作業者が明らかに選択しない行動があるとき、その行動を除外することで、行動の絞り込みを行う。
【００４０】  例えば図４のステップＳＴ１〜ＳＴ９およびステップＳＴ１３〜ＳＴ２０では、作業者は行動ａ１〜ａ３のみを選択し、行動ａ４〜ａ９を選択しない。一方、ステップＳＴ１０〜ＳＴ１２では、作業者は行動ａ４〜ａ６のみを選択し、行動ａ１〜ａ３および行動ａ７〜ａ９を選択しない。このとき、ステップＳＴ１〜ＳＴ９およびステップＳＴ１３〜ＳＴ２０で行動ａ１〜ａ３のみを適用し、ステップＳＴ１０〜ＳＴ１２で行動ａ４〜ａ６のみを適用するように、強化学習としてのワーク組付作業を制限する。
【００４１】  各々のステップＳＴ１〜ＳＴ２０における適用可能な行動は、予め入力部１６を介して設定される。学習制御部２３は、これら適用可能な行動の中から正の報酬が得られるような任意の行動を選択してロボット１を動作させるとともに、行動を選択する度に上式(I)を用いてＱ値を算出する。強化学習としてのワーク組付作業は、各々のステップＳＴ１〜ＳＴ２０でＱ値が収束するまで繰り返し行う。
【００４２】  図９は、あるステップＳＴtにおけるハンド１２の動作回数（試行回数Ｎ）とＱ値との関係を示す図である。強化学習が開始された初期状態ではＱ値は０であり、試行回数Ｎの増加に伴いＱ値は一定値に収束する。このような収束後のＱ値を用いてＱテーブルが構築される。
【００４３】   図１０Ａ，図１０Ｂは、強化学習工程で得られたＱテーブルの一例を示す図である。Ｑ値は、状態と行動とに応じてステップＳＴ１〜ＳＴ２０毎に設定される。具体的には、上述した作業者によるワーク組付作業を考慮して、ステップＳＴ１〜ＳＴ９およびステップＳＴ１３〜ＳＴ２０においては、図１０Ａに示すように、状態（モード）ＭＤ１〜ＭＤ６と行動ａ１〜ａ３とに応じたＱテーブルＱＴ１〜ＱＴ９およびＱＴ１３〜ＱＴ２０が構築される。ステップＳＴ１０〜ＳＴ１２においては、図１０Ｂに示すように、状態ＭＤ１〜ＭＤ６と行動ａ４〜ａ６とに応じたＱテーブルＱＴ１０〜ＱＴ１２が構築される。構築されたＱテーブルＱＴ１〜ＱＴ２０は、図１の記憶部２１に記憶される。
【００４４】  図１１は、Ｑテーブルの具体例を示す図である。このＱテーブルは、例えばステップＳＴ１のＱテーブルＱＴ１である。図１１に示すように、強化学習工程の初期状態では（図１１の左側）、Ｑ値は全て０である。強化学習工程でＱ値が更新され、Ｑ値が収束すると（図１１の右側）、これが記憶部２１に記憶される。図１の通常制御部２４は、記憶部２１に記憶されたＱテーブルの中から、そのときどきの状態に対して最もＱ値の高い行動を選択する。例えば状態ＭＤ１のときに行動ａ２を選択し、状態ＭＤ２のときに行動ａ１を選択する。そして、その選択した行動をロボット１が実行するようにサーボモータ１３を制御する。
【００４５】  図１２は、通常制御部２４で実行される処理の一例を示すフローチャートである。このフローチャートに示す処理は、強化学習工程でＱテーブルが記憶された後、入力部１６の操作により通常のワーク組付作業の開始が指令されると開始される。図１２の処理は、各々のステップＳＴ１〜ＳＴ２０でそれぞれ実行される。
【００４６】  まず、Ｓ１１で、力検出器１５からの信号に基づきワーク１００の現在の組付途中状態を検知する。すなわちワーク１００がどのモードＭＤ１〜ＭＤ６に該当するかを検知する。次いでＳ１２で、現在のステップＳＴtに対応したＱテーブルＱＴを記憶部２１から読み込み、検知された組付途中状態に対しＱ値が最も高くなる行動を選択する。次いで、Ｓ１３で、ロボット１が選択した行動をとるようにサーボモータ１３に制御信号を出力する。
【００４７】  本発明の実施形態に係るロボットの制御装置の具体的な動作を、ロボットの制御方法とともに説明する。（１）事前作業工程  まず、強化学習工程を行う前に、事前作業工程として、熟練の作業者に手動でワーク１００を部品１０１に組み付ける作業を行わせる。このとき、ワーク１００の状態をモードＭＤ１〜ＭＤ６に変化させながら、そのときの行動パターンを分析する。これによりロボット１によりワーク１００の組付作業を行う際の基準移動経路ＰＡ（図４）と、各々のステップＳＴ１〜ＡＴ２０でロボット１がとり得る行動とを決定することができる。すなわち、ステップＳＴ１〜ＳＴ９，ＳＴ１３〜ＳＴ２０で行動ａ１〜ａ３を、ステップＳＴ１０〜ＳＴ１２で行動ａ４〜ａ６をとるように、行動の絞り込みを行うことができる。事前作業工程において決定した基準移動経路ＰＡとロボット１がとり得る行動とは、入力部１６を介してコントローラ２に設定される。
【００４８】（２）強化学習工程  事前作業工程が終了すると強化学習工程を実行する。強化学習工程においては、学習制御部２３がサーボモータ１３に制御信号を出力し、ロボット１を実際に動作させてワーク１００の組付作業を繰り返し行わせる。このとき、学習制御部２３は、予めステップＳＴ１〜ＳＴ２０毎に設定された複数の行動の中から一の行動を選択し、ロボット１がその行動を実行するようにサーボモータ１３を制御する。さらに、力検出器１５からの信号により状態の変化を把握し、予め定められた報酬テーブル（図６）を参照して、状態の変化に基づく報酬ｒを決定する。そして、この報酬ｒを用いて、上式(I)により、各々のステップＳＴ１〜ＳＴ２０における状態と行動とに対応したＱ値を算出する。
【００４９】  強化学習が開始された初期状態ではＱ値は０であり、このとき学習制御部２３は各々のステップＳＴ１〜ＳＴ２０における行動をランダムに選択する。強化学習が進むにつれて、学習制御部２３は、高い報酬ｒが得られる行動を優先的に選択するようになり、各々のステップＳＴ１〜ＳＴ２０における各々の状態に対し特定の行動のＱ値が徐々に増加する。例えば芯ずれによるワーク１００の曲がりや座屈（モードＭＤ１，ＭＤ３，ＭＤ４，ＭＤ６）に対しては、これらを修正した場合に高い報酬ｒが得られる。このため、曲がりや座屈を修正するような行動のＱ値が増加する。ワーク１００の組付作業とＱ値の算出とを繰り返し行ってＱ値が徐々に一定値に収束すると（図９）、そのときのＱ値でＱテーブルＱＴを構築してこれを記憶部２１に記憶する。
【００５０】（３）組付作業工程  強化学習工程が終了すると、組付作業工程として通常制御部２４での処理により、ワーク１００の組付作業を行う。この場合、通常制御部２４は、力検出器１５からの信号により現在のステップＳＴtでのワーク１００の組付途中状態を検知する（Ｓ１１）。なお、ＳＴ１〜ＳＴ２０のうちの現在のステップは、例えばエンコーダ１４からの信号により特定することができる。さらに通常制御部２４は、Ｑテーブルに設定された組付途中状態に対応する複数の行動の中から、Ｑ値が最も高い行動を最適行動として選択し（Ｓ１２）、ロボット１が最適行動をとるようにサーボモータ１３を制御する（Ｓ１３）。
【００５１】  これにより、例えばワーク１００の個体差に起因してワーク１００と部品１０１との間に芯ずれが生じた場合に、その芯ずれを検知して、芯ずれを修正する適切な行動をとるようにロボット１を動作させることができる。すなわち、状態の変化に応じて最適な行動をとることが可能であり、ワーク１００の個体差に拘らず、ワーク１００の部品１０１への良好な圧入が可能となる。ワーク１００が可撓性を有するチューブにより構成されている場合であっても、ワーク１００の曲がりや座屈を容易かつ適切に修正しながら、ワーク１００を圧入することができる。
【００５２】  本発明の実施形態によれば以下のような作用効果を奏することができる。（１）本発明の実施形態に係るロボットの制御装置は、サーボモータ１３により駆動されるロボット１のハンド１２に支持されたワーク１００を部品１０１に組み付けるようにロボット１を制御するものである。この制御装置は、予め強化学習によって得られたワークの複数の組付途中状態（ＭＤ１〜ＭＤ６）と各々の組付途中状態に対し最も高い報酬を与えるロボット１の最適行動（ａ１〜ａ６）との関係（Ｑテーブル）を記憶する記憶部２１と、ワーク１００の組付途中状態を検知する力検出器１５と、記憶部２１に記憶されたＱテーブルに基づき、力検出器１５により検知された組付途中状態に対応するロボット１の最適行動を特定し、この最適行動に従いサーボモータ１３を制御する通常制御部２４とを備える（図１）。
【００５３】  このように強化学習によって取得したＱテーブルを参照してサーボモータ１３を制御することで、ワーク１００に曲がり癖等の個体差があってワーク１００の中心軸ＣＬ２と部品１０１の軸線ＣＬ３との間に芯ずれが存在する場合であっても、ワーク１００の曲がりや座屈等を生じさせることなく、芯ずれを修正しながらワーク１００を部品１０１に容易かつ迅速に圧入することができる。また、ハンド１２に反力受け部等を別途設ける必要がなく、ハンド１２の構成を簡素化でき、ハンド１２の大型化を避けることができる。
【００５４】（２）ロボット１の最適行動は、ハンド１２の移動方向を示す角度、移動方向に沿ったハンド１２の移動量、および移動方向に対するハンド１２の回転量の組み合わせによって規定される（図８）。このように移動方向、移動量および回転量をパラメータとして各ステップＳＴ１〜ＳＴ２０におけるロボット１の行動を定義することで、柔軟性を有するワーク１００の圧入等の作業を容易に行うことができる。
【００５５】（３）力検出器１５は、ハンド１２に作用する並進力Ｆｘ，Ｆｙ，ＦｚとモーメントＭｘ，Ｍｙ，Ｍｚとを検出する力検出器１５を有し、力検出器１５により検出された並進力ＦｙとモーメントＭｘとに基づきワーク１００の組付途中状態を特定する（図５）。これにより、ワーク１００の芯ずれに起因したワーク１００の曲がり状態や座屈状態等を簡易な構成で検知することができ、カメラ等を用いた場合に比べ装置を安価に構成することができる。
【００５６】（４）記憶部２１は、ワーク１００の組付開始から組付完了に至るまでの複数の組付途中状態と各々の組付途中状態に対応する最適行動との関係、すなわちＱテーブル（図１０Ａ，図１０Ｂ）を記憶する。これにより複数のステップＳＴ１〜ＳＴ２０の各々で、ワーク１００の組付途中状態に応じたロボット１の最適な行動を選択することができる。したがって、ワーク１００の芯ずれを早期に修正することができ、ワーク１００を部品１０１に良好に圧入することができる。
【００５７】（５）本発明の実施形態に係るロボットの制御方法は、サーボモータ１３により駆動されるロボット１のハンド１２に支持されたワーク１００を部品１０１に組み付けるようにロボット１を制御するものである（図１）。この制御方法は、ハンド１２の駆動によりワーク１００を部品１０１へ組み付ける作業を複数回行って、ワーク１００の複数の組付途中状態と各々の組付途中状態に対し最も高い報酬を与えるロボット１の最適行動との関係（Ｑテーブル）を取得する強化学習工程と、ワーク１００を部品１０１に組み付けるときに、ワーク１００の組付途中状態を検知し、検知した組付途中状態に対応する最適行動を強化学習工程で取得したＱテーブルに基づいて特定し、特定した最適行動に従いサーボモータ１３を制御する組付作業工程とを含む。このように予め強化学習工程でＱテーブルを取得し、そのＱテーブルを用いて通常の組付作業を行うことで、ワーク１００と部品１０１との間に芯ずれが存在する場合であっても、芯ずれを修正しながらワーク１００を部品１０１に容易かつ迅速に圧入することができる。
【００５８】（６）本発明の実施形態に係るロボットの制御方法は、強化学習工程を行う前に、作業者がワーク１００を部品１０１へ組み付ける事前作業工程をさらに含み、強化学習工程では、事前作業工程で把握した作業者の行動パターンに基づき、強化学習工程におけるロボット１の行動を決定する。これにより、熟練者と同様の行動をロボット１が実現可能となる。また、例えばステップＳＴ１〜ステップＳＴ９およびステップＳＴ１３〜ステップＳＴ２０では行動ａ１〜ａ３を、ステップＳＴ１０〜ステップＳＴ１２では行動ａ４〜ａ６をとるように、ロボット１の行動を絞り込むことができる。したがって、強化学習工程に要する時間を短縮することができ、効率的なロボット１の制御を実現することができる。
【００５９】（変形例）  上記実施形態は、種々の形態に変形することができる。以下、変形例について説明する。上記実施形態では、ロボットの制御装置を構成するコントローラ２が学習制御部２３と通常制御部２４とを有し、学習制御部２３での処理により、強化学習としてのワーク組付作業を行うようにしたが、学習制御部２３での処理を別の制御装置で行うようにしてもよい。すなわち、ワーク１００の組付途中状態とロボット１の最適行動との関係を示すＱテーブルを別の制御装置から取得し、これを記憶部としてのロボット制御装置の記憶部２１に記憶するようにしてもよい。例えば工場出荷時に、量産のロボット制御装置の記憶部２１にそれぞれ同一のＱテーブルを記憶させてもよい。したがって、コントローラ２（図１）から学習制御部２３を省略することができる。
【００６０】  上記実施形態では、Ｑ学習を用いてワーク１００の組付途中状態とロボット１の最適行動との関係を取得するようにしたが、強化学習としてＱ学習に限らず他の手法を用いてもよい。したがって、記憶部にＱテーブル以外を記憶してもよい。上記実施形態では、力検出器１５によりワーク１００の組付途中状態を検知するようにしたが、状態検知部はこれに限らない。例えばワーク１００の基端部の周面あるいはハンド先端部に一対の振動センサを装着し、一対の振動センサが振動を検知する時間差に基づいてモーメントを検知して、これによりワーク組付途中状態を検知してもよい。
【００６１】  上記実施形態では、予め記憶されたＱテーブルに基づき、力検出器１５により検知されたワーク１００の組付途中状態に対応したロボット１の最適行動を特定し、その最適行動に従いサーボモータ１３を制御するようにしたが、アクチュエータ制御部としての通常制御部２４の構成はこれに限らない。ロボット１にサーボモータ１３に限らず他のアクチュエータ（例えばシリンダ）を設け、アクチュエータ制御部が他のアクチュエータを制御し、ロボット１が最適行動をとるようにしてもよい。上記実施形態では、ワーク１００の組付途中状態を６つのモードＭＤ１〜ＭＤ６に分類したが、これはワーク１００の材質や形状等によって定まるものであり、他のモードに分類してもよい。
【００６２】  上記実施形態では、垂直多関節ロボット１を用いたが、ロボットの構成はこれに限らない。上記実施形態では、可撓性を有するチューブをワーク１００として用いたが、ワークの形状および材質はいかなるものでもよく、例えばワーク１００は金属でもよい。上記実施形態では、ワーク組付作業としてチューブ形状のワーク１００（第１部品）をパイプ形状の部品１０１（第２部品）に圧入する作業を想定したが、第１部品と第２部品の構成はこれに限らない。したがって、ロボットによる組付作業は圧入作業に限らず、本発明のロボットの制御装置および制御方法は種々の作業を行う場合にも同様に適用することができる。
【００６３】  以上の説明はあくまで一例であり、本発明の特徴を損なわない限り、上述した実施形態および変形例により本発明が限定されるものではない。上記実施形態と変形例の１つまたは複数を任意に組み合わせることも可能であり、変形例同士を組み合わせることも可能である。
【符号の説明】
【００６４】１  ロボット、２  コントローラ、１２  ハンド、１３  サーボモータ、１５  力検出器、２１  記憶部、２４  通常制御部、１００  ワーク、１０１  部品
【図１】
0006651636.tif 000002
【図２】
0006651636.tif 000003
【図３Ａ】
0006651636.tif 000004
【図３Ｂ】
0006651636.tif 000005
【図４】
0006651636.tif 000006
【図５】
0006651636.tif 000007
【図６】
0006651636.tif 000008
【図７】
0006651636.tif 000009
【図８】
0006651636.tif 000010
【図９】
0006651636.tif 000011
【図１０Ａ】
0006651636.tif 000012
【図１０Ｂ】
0006651636.tif 000013
【図１１】
0006651636.tif 000014
【図１２】
0006651636.tif 000015