(57)【特許請求の範囲】
【請求項１】
予め定めた作業領域において、自らの位置姿勢を補正して動作するロボットを制御するロボット制御装置であって、
前記ロボットの基準動作パターンを記憶する記憶部と、
前記基準動作パターンに基づく前記ロボットの動作が開始される作業開始領域、及び、前記基準動作パターンに基づく前記ロボットの動作が終了する作業終了領域のうち、少なくとも一方を指定する入力部と、
前記入力部により指定された作業領域を、所定の分解能で仮想的に分割してなる分割領域と、前記記憶部に記憶された基準動作パターンとに基づいて、前記ロボットの複数の動作パターンを自動生成する自動生成部と、
前記自動生成部により自動生成された動作パターンの各々について、速度又は加速度を変更して前記ロボットの動作を高速化するための動作高速化率を学習する学習制御部と、
を有する、ロボット制御装置。
【請求項２】
前記ロボットの動作パターンは、前記作業開始領域内に配置された、位置姿勢が不定のワークを把持する動作と、把持したワークを前記作業終了領域内に載置する動作とを含む、請求項１に記載のロボット制御装置。
【請求項３】
前記学習制御部は、前記ロボットの各軸を駆動するモータの許容負荷と、前記動作パターン実行中の前記モータの負荷とに基づいて、各動作パターンに対する動作高速化率を算出する、請求項１又は２に記載のロボット制御装置。
【請求項４】
前記学習制御部は、前記動作パターン実行中の、前記ロボットの各軸を駆動するモータに対する指令値とフィードバック値との差分に基づいて、各動作パターンに対する動作高速化率を算出する、請求項１又は２に記載のロボット制御装置。
【請求項５】
前記学習制御部は、学習した動作高速化率に基づいて再生動作を実行する前に、前記再生動作と類似する学習動作を過去の学習データから検索し、前記学習動作が存在する場合は、前記学習動作に関連付けられた動作高速化率と、前記再生動作及び前記学習動作の動作情報の差異とに基づいて前記再生動作の動作高速化率を修正する、請求項３又は４に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットを制御するロボット制御装置に関し、特には、学習によってロボットの教示作業を簡易化し、ロボットの動作性能を向上させる機能を備えたロボット制御装置に関する。
【背景技術】
【０００２】
ロボットと周辺機器で構成されたシステムが設置されている実際の生産現場では、そのシステムを含むラインでの目標サイクルタイムが設定される。教示作業者は目標サイクルタイムを達成するために、教示プログラムの構成を工夫したり、動きやすい姿勢を教示したりと、作業者の経験やノウハウを駆使しながら、試行錯誤で教示作業を行っている。この場合、動作速度の向上は作業者の技量に依存する場合が多く、また作業効率が悪く時間がかかる、という課題があった。
【０００３】
この問題を解決するために、例えば特許文献１には、ロボット機構部の動作を制御する通常制御部と、作業プログラムによりロボット機構部を動作させて、センサによって検出したロボット機構部の制御対象位置を通常制御部に与えられた目標軌跡もしくは位置に近づけるために学習補正量を算出する学習を行う学習制御部と、を有するロボット制御装置が記載されており、ここでは、学習制御部は、学習稼動状態で設定可能な最大速度オーバライドを算出し、最大速度オーバライドに至るまで複数回に渡って速度オーバライドを増加させながら学習補正量を算出する、と記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１６７８１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、同じ動作を繰り返し学習していくことで、作業者の技量によらず、動作を高速化することを企図している。しかしながら特許文献１では、高精度な振動抑制を行うために、ロボットに追加のセンサを設ける必要がある。またワークの状態等によってロボットの位置・姿勢が逐次変化するような動作では、任意の位置・姿勢における動作を繰り返し学習することが困難という課題がある。
【０００６】
そこで本発明は、所定の作業領域において位置・姿勢が変化するような動作の場合でも、教示のノウハウを必要とせず、また振動抑制のためのセンサ等の特別な装置を用いることなく、学習によって簡単にロボット動作の高速化を行なうことができるロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本願第１の発明は、予め定めた作業領域において、自らの位置姿勢を補正して動作するロボットを制御するロボット制御装置であって、前記ロボットの基準動作パターンを記憶する記憶部と、前記基準動作パターンに基づく前記ロボットの動作が開始される作業開始領域、及び、前記基準動作パターンに基づく前記ロボットの動作が終了する作業終了領域のうち、少なくとも一方を指定する入力部と、前記入力部により指定された作業領域を所定の分解能で分割してなる分割領域と、前記記憶部に記憶された基準動作パターンとに基づいて、前記ロボットの複数の動作パターンを自動生成する自動生成部と、前記自動生成部により自動生成された動作パターンの各々について、速度又は加速度を変更して前記ロボットの動作を高速化するための動作高速化率を学習する学習制御部と、を有する、ロボット制御装置ロボット制御装置を提供する。
【０００８】
第２の発明は、第１の発明において、前記ロボットの動作パターンは、前記作業開始領域内に配置された、位置姿勢が不定のワークを把持する動作と、把持したワークを前記作業終了領域内に載置する動作とを含む、ロボット制御装置を提供する。
【０００９】
第３の発明は、第１又は第２の発明において、前記学習制御部は、前記ロボットの各軸を駆動するモータの許容負荷と、前記動作パターン実行中の前記モータの負荷とに基づいて、各動作パターンに対する動作高速化率を算出する、ロボット制御装置を提供する。
【００１０】
第４の発明は、第１又は第２の発明において、前記学習制御部は、前記動作パターン実行中の、前記ロボットの各軸を駆動するモータに対する指令値とフィードバック値との差分に基づいて、各動作パターンに対する動作高速化率を算出する、ロボット制御装置を提供する。
【００１１】
第５の発明は、第３又は第４の発明において、前記学習制御部は、学習した動作高速化率に基づいて再生動作を実行する前に、前記再生動作と類似する学習動作を過去の学習データから検索し、前記学習動作が存在する場合は、前記学習動作に関連付けられた動作高速化率と、前記再生動作及び前記学習動作の動作情報の差異とに基づいて前記再生動作の動作高速化率を修正する、ロボット制御装置を提供する。
【発明の効果】
【００１２】
本発明では、位置姿勢が作業領域内で不定に変化する動作に対して、学習対象となる任意の動作を行うことができるので、学習にかかる工数を削減できる。またプログラムの学習のために、設定された作業領域を自動で判別し、さらにその作業領域内を適切に領域分割し、個々の領域間を移動する動作を繰り返し実行することにより、教示作業者の経験やノウハウを必要としない教示の簡易化が実現できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の好適な実施形態に係るロボット制御装置の内部構成を示す図である。
【図２】図１のロボット制御装置を含むロボットシステムの概略構成を示す図である。
【図３】図１のロボット制御装置を含むロボットシステムの概略構成を示す図であって、該ロボットシステムが図２とは異なる用途に使用される例を示す図である。
【図４】図２又は図３のロボットシステムにおける動作自動生成手順の一例を示すフローチャートである。
【図５】図３のロボットシステムにおける、作業領域の分割形態の一例を示す図である。
【図６】本発明における学習方法の一例を説明するフローチャートである。
【図７】本発明における学習方法の他の例を説明するフローチャートである。
【図８】動作高速化率を修正する処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
図１は、本発明の好適な実施形態に係るロボット制御装置１０の内部構成の一例を示す図である。制御装置１０は、メインＣＰＵ１２と、読み出し専用メモリ（ＲＯＭ）、揮発性メモリ及び不揮発性メモリを含むメモリ１４と、教示操作盤用インターフェース（Ｉ／Ｆ）１６とを有し、これらはバス１８を介して互いに並列に接続されている。インターフェース１６には教示操作盤２０が接続されており、作業者は教示操作盤２０を用いて動作プログラムの作成や作業領域の入力等を行うことができる。基準動作パターンの抽出や動作パターンの生成、動作学習等の処理はメインＣＰＵ１２により実行される。
【００１５】
なお本発明に係るロボット制御装置は、予め定めた作業領域において、自らの位置姿勢を補正して動作するロボットを制御するものであり、ロボットの基準動作を記憶する記憶部と、基準動作の作業開始位置を含む開始作業領域、及び、前記基準動作の作業終了位置を含む終了作業領域の内、少なくとも一方を指定する入力部と、入力部により指定された作業領域を所定の分解能で分割してなる分割領域と、記憶部により記憶された基準動作とに基づいて、ロボットの複数の動作パターンを自動生成する自動生成部と、自動生成部により自動生成された各々の動作パターンに対して、速度又は加速度を変更してロボットの動作を高速化するための動作高速化率を学習する学習制御部とを有するが、本実施形態では、メモリ１４が記憶部に相当し、教示操作盤２０が入力部に相当し、メインＣＰＵ１２が自動生成部及び学習制御部に相当する。
【００１６】
図２は、ロボット制御装置１０を含むロボットシステム２２の概略構成を例示する図である。ロボットシステム２２は、ロボット制御装置１０と、教示操作盤２０と、ロボット制御装置１０により制御されるロボット２４とを有する。ロボット２４は、例えば６軸の多関節ロボットであり、ロボットアーム２６と、ロボットアーム２６の先端に取り付けられたハンド２８とを有する。図２の例ではロボット２４は、予め定めた作業領域３０内に任意の位置及び姿勢（以降、位置姿勢とも称する）にて配置されたワーク３２を、ハンド２８で保持（把持）し、作業領域３０外の所定の搬送先３４に載置するという動作を行うことができる。
【００１７】
またロボットシステム２２は、ロボット制御装置１０に接続されるとともに、作業領域３０内のワーク３２の位置姿勢を検出するセンサ３６を有し、ロボット制御装置１０は、センサ３６の検出結果に基づいて、ロボット２４の動作（微小時間毎のロボットの位置及び姿勢）を補正するための補正量を求めことができる。センサ３６の例としては、作業領域３０の一部又は全体を撮像可能なカメラを用いた視覚センサが挙げられる。
【００１８】
図３は、図２と同様にロボットシステム２２の概略構成を例示するが、ロボットシステム２２が図２とは異なる用途に使用される例を示す図である。図３の例ではロボット２４は、供給コンベヤ３８によって搬送されるワーク３２をロボット２４のハンド２８で保持（把持）し、排出コンベヤ４０上に載置するという動作を行うことができる。またロボットシステム２２は、ロボット制御装置１０に接続されるとともに、供給コンベヤ３８上に予め定めた作業領域４２内のワークの把持時、及び排出コンベヤ４０上に予め定めた作業領域４４内へのワーク載置時それぞれについてのワークの位置姿勢を随時検出するセンサ４６を有し、ロボット制御装置１０は、センサ４６の検出結果に基づいて、ロボット２４の動作（微小時間毎の位置及び姿勢）を補正するための補正量を求めことができる。センサ４６の例としては、視覚センサ及びエンコーダが挙げられる。
【００１９】
図２及び図３のロボットシステム２２におけるハンド２８の移動は、ロボット２４の各軸を駆動するモータ（好ましくはサーボモータ）を制御装置１０が制御することによって行われる。また学習において一時的に必要となる動作実行中のモータの速度、加速度及びトルク、並びにモータ誤差の少なくとも１つを含む動作情報は、記憶部１４の揮発性メモリに保存し、予め設定されるモータの速度、加速度及びトルク、並びにモータ誤差等の許容値は記憶部１４のＲＯＭに保存することができる。また、学習処理によって算出された動作高速化率（後述）等の学習データは、記憶部１４の不揮発性メモリに保存することができる。
【００２０】
次に、図４のフローチャートを参照しつつ、図２又は図３に記載したロボットシステム２２における動作自動生成手順の一例を説明する。
【００２１】
先ずステップＳ１において、各作業領域情報の入力（設定）を行う。具体的には作業者が、作業領域（図２の例では作業領域３０、図３の例では作業領域４２及び４４）の位置、形状、寸法等の作業領域に関する情報を、教示操作盤２０を介してロボット制御装置１０に入力することができる。
【００２２】
なお本願明細書における「作業領域」とは、ロボットが自らの位置及び姿勢（以降、位置姿勢とも称する）を補正しつつ所定の作業（動作）を行う領域でありかつ、前記作業が開始される作業開始領域と前記作業が終了する作業終了領域のうち、少なくとも一方を含むものを意味する。例えば、図２の場合はワークを取る（把持する）１つの領域３０が作業領域に相当し、図３の場合はワークを取る作業領域４２と置く作業領域４４の２つの領域が作業領域に相当する。またロボットの位置姿勢を補正する動作の各々には、対応する作業領域が関連付けられており、ステップＳ１では作業領域毎にその領域の範囲を予め入力する。
【００２３】
次にステップＳ２において、学習対象の動作プログラムにおける基準動作パターンの記憶を行う。具体的には、ロボット制御装置１０が、学習対象の動作プログラムを実行することにより、学習する動作の基準動作パターンを記憶する。なお動作プログラムでは、センサ３６又は４６により検出されたワーク３２の位置姿勢に基づいて、ロボット２４の動作に関する位置姿勢も適宜補正されるが、ワーク３２の位置姿勢に依らず、動作プログラムは１サイクル実行するだけでよい。
【００２４】
なお本願明細書における「基準動作パターン」とは、所定の作業を行うための、ロボットの１つ以上の動作で構成された動作パターンを意味する。通常は、動作プログラム実行中における動作開始から動作停止までの一連の動作を、基準動作パターンの一単位として記憶する。図２及び図３の例では、ワークの取り位置から置き位置まで移動する動作と、ワークの置き位置から取り位置まで移動する動作とがそれぞれ基準動作パターンとなり、すなわち２つの基準動作パターンが記憶される。
【００２５】
次にステップＳ３において、基準動作パターンの解析、具体的には基準動作パターンを構成する各動作に、設定した作業領域が関連付けられているか否かの判定を行う。作業領域が関連付けられている場合、その作業領域を所定の分解能で仮想的に分割し、複数の分割領域を生成する（ステップＳ４）。
【００２６】
最後にステップＳ５において、各分割領域においてロボットが所定の位置姿勢でワークの取り動作又は置き動作をするための位置姿勢補正量を算出し、この位置姿勢補正量を用いて基準動作パターンを補正することにより、各分割領域において取り又は置き動作を行う動作パターンを生成する。具体的には、任意の分割領域にワーク３２が配置されたときに実行される動作を学習するために、ワーク３２がセンサ３６又は４６によって検出されたときに補正されるロボットの位置姿勢の変化量を算出し、基準動作パターンに対して、この変化量を用いて補正した動作パターンを生成する。このようにして、ロボットの各動作パターンが自動生成される。
【００２７】
このように、生成された動作パターンは任意の分割領域にワークが仮想的に存在するとした場合の動作であるため、実際にワークを任意の分割領域に配置して動作プログラムを実行した場合と同等の動作が実行可能となる。すなわち、動作プログラムで実行される任意の動作パターンを、実際のワーク位置姿勢に依存することなく学習することが可能となる。
【００２８】
図５は、図３に例示したシステム構成において、領域分割の分解能を１００ｍｍとし、２つの作業領域４２及び４４をいずれも２００ｍｍ×１００ｍｍの略矩形領域とした場合の作業領域の分割例を示す図である。詳細には、作業領域４２は分割領域４２Ａと４２Ｂに分割され、作業領域４４は分割領域４４ａと４４ｂに分割される。この場合に、分割領域間で行うワークの取り置き動作の全てのパターンを網羅する場合は、「領域４２Ａと領域４４ａ」、「領域４２Ａと領域４４ｂ」、「領域４２Ｂと領域４４ａ」、「領域４２Ｂと領域４４ｂ」間における取り動作パターンと置き動作パターンが生成されるので、計８つの動作パターンが生成される。また他の例として、ロボットが移動する頻度が比較的少ない特定の分割領域が存在する場合は、その分割領域で行う取り置きの動作パターンを生成しないことにより、学習に必要となる時間やメモリ使用量を節約することができる。なお領域分割の分解能に関して、分解能を高く（分割領域数を多く）すれば、学習による動作性能が向上する。一方、分解能を低く（分割領域数を少なく）すれば、学習に必要となる時間やメモリ使用量の節約が可能となる。
【００２９】
図６は、本発明における学習方法の一例を説明するフローチャートである。先ずステップＳ１０１において、上述の処理により自動生成された複数の動作パターンのうち、未学習の動作パターンの１つを選択して実行する。
【００３０】
次にステップＳ１０２において、上記未学習の動作パターンの動作実行中における動作情報（ここではロボットの各軸のモータ速度の最大値（ω_maxj）及びモータトルクの最大値（τ_maxj））を記録する。なお「ｊ」は各軸の軸番号を示し、例えば６軸の多関節ロボットであればｊ＝１〜６である。
【００３１】
上記未学習の動作パターンの動作が終了したら（ステップＳ１０３）、記録したモータ速度の最大値及びモータトルクの最大値に基づいて、この動作パターンに対して設定可能な動作高速化率αの最大値αmaxを計算する（ステップＳ１０４）。ここで動作高速化率αとは、動作高速化前における経過時間ｔとモータ目標角度（指令角度）θとの関係を以下の式（１）で表した場合に、式（２）を満足するようにロボットを動作させる指標を意味する。
【００３２】
0006006256.tif 000002
【００３３】
0006006256.tif 000003
【００３４】
上記の式において、モータ速度はαに比例し、モータトルクはαの２乗に比例することを考慮すると、許容される動作高速化率の最大値αmaxは、以下の式（３）で表される。なおω_alwjは各軸におけるモータ速度の許容値であり、τ_alwjは各軸のモータトルクの許容値である。
【００３５】
0006006256.tif 000004
【００３６】
次にステップＳ１０５において、算出された動作高速化率αを、動作パターンに関連付けてメモリに保存する。この動作高速化率の学習は、生成した全ての動作パターンについて行われる。図６に示す学習方法による効果の１つとして、ロボット（機構部）の負荷を許容値以下に抑えた動作高速化の実現が挙げられる。
【００３７】
図７は、本発明における学習方法の他の例を説明するフローチャートである。先ずステップＳ２０１において、上述の処理により自動生成された複数の動作パターンのうち、未学習の動作パターンの１つを選択し、次にステップＳ２０２において、選択した動作パターンを実行する際の動作高速化率を１．０に初期化する。
【００３８】
次に、選択された動作パターンの動作を開始し（ステップＳ２０３）、この動作実行中における動作情報（ここでは各軸のモータ角度の指令値（目標値）と、実際のモータ角度（フィードバック値）との誤差）を記録する（ステップＳ２０４）。
【００３９】
選択した動作パターンの動作が終了したら（ステップＳ２０５）、記録した角度誤差が、各軸について設定された許容値（許容角度誤差）以下であるかを判定する（ステップＳ２０６）。角度誤差が許容角度誤差以下であれば、動作高速化率αが所定の上限値に達しているか否かを判定し（ステップＳ２０７）、動作高速化率αが上限値に達していなければ動作高速化率αを所定量増加させ（ステップＳ２０８）、増加した動作高速化率を用いて再度同じ動作パターンを実行する。
【００４０】
一方、ステップＳ２０６で角度誤差が許容角度誤差を超えている場合は、動作高速化率αが１．０を超えていればαを所定量減少させ（ステップＳ２０９）、減少した動作高速化率αを実行した動作パターンと関連付けてメモリに保存する（ステップＳ２１０）。また、ステップＳ２０７において動作高速化率αが予め設定した上限値に到達している又は上限値を超えている場合も、ステップＳ２１０に進み、動作高速化率αを実行した動作パターンと関連付けてメモリに保存する。
【００４１】
このような動作高速化率の学習を、生成した全ての動作パターンについて行う（ステップＳ２１１）。図７に示す学習方法による効果の１つとして、モータの振動を許容値以下に抑えた動作高速化の実現が挙げられる。
【００４２】
図８は、上述の動作高速化率を修正する処理の一例を説明するフローチャートである。
【００４３】
図６及び図７に例示したような学習では、動作高速化率αとともに、動作高速化前の最大速度ｖ及び最大加速度ａを予め記憶しておく。最大速度ｖ及び最大加速度ａは、動作計画時に算出される値であり、すなわち動作を実際に行う前から既知の値である。
【００４４】
先ずステップＳ３０１において、各動作パターンの学習の完了後に動作プログラムに基づく動作（以後、再生動作と称する）実行する前に、再生動作に類似する動作がメモリ内の（過去の）学習データに存在するか否かを検索する。ここで類似する動作（以後、学習動作と称する）とは、動作開始時及び終了時のそれぞれにおけるロボットの位置姿勢の、再生動作と学習動作との差が、所定の分解能の範囲内に収まる動作のことをいう。
【００４５】
学習動作の検索の結果、実行しようとする動作（再生動作）に類似する動作パターン（学習動作）が存在する場合、この学習動作に関連付けられている動作高速化率αmax、動作高速化前の最大速度ｖ及び最大加速度ａを取得する（ステップＳ３０２）。
【００４６】
学習動作と再生動作とでは、動作高速化前の最大速度及び最大加速度は必ずしも等しくないので、動作高速化率αmaxを用いて再生動作を高速化すると、モータ速度、モータトルク、角度誤差等が許容値を大きく超えてしまう可能性がある。そこで次のステップＳ３０３では、学習動作と再生動作との間の、高速化前の最大速度及び最大加速度の違いを考慮して、学習動作の動作高速化率αmaxを再生動作用の動作高速化率α'maxに修正する。
【００４７】
具体的には、再生動作の高速化前の最大速度及び最大加速度をそれぞれＶ及びＡとすると、α'maxは以下の式（４）で表される。
【００４８】
0006006256.tif 000005
【００４９】
式（４）により、再生動作高速化時の最大速度Ｖ及び最大加速度Ａが、それぞれ学習動作高速化時の速度ｖ及び加速度ａに近づくように、動作高速化率が修正される。
【００５０】
最後にステップＳ３０４において、修正後の動作高速化率α'maxを用いて動作を高速化する。
【００５１】
なお本願明細書では、ワークについての「位置姿勢」は通常、ワークの位置及び姿勢を意味するが、ワークが円板形状や球状である等、ワークの姿勢が変化してもロボットの動作に影響を与えない場合には、ワークについての「位置姿勢」はワークの位置のみを意味することもある。
【００５２】
現場の生産ライン等の学習において、ワークの位置姿勢によってロボットの動作が毎回異なる場合に、全ての動作を網羅して学習することは困難である。しかし本発明では、ユーザが設定した作業領域全体を網羅する動作を自動で生成することができ、実際に現場で使用されうる全ての動作をワークの状態に影響を受けずに容易に学習することが可能となる。従って、現場での教示調整作業の時間短縮化と簡易化、動作の高速化による生産効率の向上を実現することができる。
【００５３】
また、学習においては、ロボット（機構部）の負荷やモータの振動情報を動作中に取得することにより、ロボット（機構部）の負荷の許容値を満たし、かつ、振動も許容される範囲に収めつつ、動作の高速化を実現することができる。
【００５４】
また本発明では、振動抑制のためのセンサ等の特別な装置を使用する必要がないため、センサを装着する作業やそれに伴う諸設定をする必要もなく、教示作業の時間短縮化や簡易化が図られる。
【符号の説明】
【００５５】
１０    ロボット制御装置
１２    メインＣＰＵ
１４    メモリ
２０    教示操作盤
２２    ロボットシステム
２４    ロボット
３０、４２、４４    作業領域
３２    ワーク
３６、４６    センサ
３８    供給コンベヤ
４０    排出コンベヤ
４２Ａ、４２Ｂ、４４ａ、４４ｂ    分割領域
【図１】
0006006256.tif 000006
【図２】
0006006256.tif 000007
【図３】
0006006256.tif 000008
【図４】
0006006256.tif 000009
【図５】
0006006256.tif 000010
【図６】
0006006256.tif 000011
【図７】
0006006256.tif 000012
【図８】
0006006256.tif 000013