特許第6392825号(P6392825)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

<>
  • 6392825-学習制御機能を備えたロボット制御装置 図000002
  • 6392825-学習制御機能を備えたロボット制御装置 図000003
  • 6392825-学習制御機能を備えたロボット制御装置 図000004
  • 6392825-学習制御機能を備えたロボット制御装置 図000005
  • 6392825-学習制御機能を備えたロボット制御装置 図000006
  • 6392825-学習制御機能を備えたロボット制御装置 図000007
  • 6392825-学習制御機能を備えたロボット制御装置 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6392825
(24)【登録日】2018年8月31日
(45)【発行日】2018年9月19日
(54)【発明の名称】学習制御機能を備えたロボット制御装置
(51)【国際特許分類】
   B25J 9/10 20060101AFI20180910BHJP
   G05B 19/404 20060101ALI20180910BHJP
【FI】
   B25J9/10 A
   G05B19/404 J
【請求項の数】6
【全頁数】17
(21)【出願番号】特願2016-214392(P2016-214392)
(22)【出願日】2016年11月1日
(65)【公開番号】特開2018-69410(P2018-69410A)
(43)【公開日】2018年5月10日
【審査請求日】2017年11月14日
【早期審査対象出願】
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100102819
【弁理士】
【氏名又は名称】島田 哲郎
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100130133
【弁理士】
【氏名又は名称】曽根 太樹
(72)【発明者】
【氏名】王 凱濛
【審査官】 田村 耕作
(56)【参考文献】
【文献】 特開平01−211102(JP,A)
【文献】 特開平07−306707(JP,A)
【文献】 特開平02−039304(JP,A)
【文献】 特開平04−355805(JP,A)
【文献】 特開平06−274228(JP,A)
【文献】 特開2004−227163(JP,A)
【文献】 特開2004−330321(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/10
G05B 19/404
(57)【特許請求の範囲】
【請求項1】
サーボモータ(11)により駆動されるロボット機構部の動作を制御するロボット制御装置(10)であって、
前記ロボット機構部を位置指令により動作させたときの前記ロボット機構部の先端部の位置を補正する学習補正量を算出するための学習制御を行う学習制御部(20)と、
前記学習制御の実施中に前記ロボット機構部の先端部の位置を所定の時間間隔で記憶する位置記憶部(21)と、
前記学習制御の実施中に前記ロボット機構部の先端部の速度を前記所定の時間間隔で記憶する速度記憶部(22)と、
前記学習制御の後に前記ロボット機構部を前記位置指令により動作させている間、前記所定の時間間隔で取得される前記先端部の実際の位置と、該実際の位置に対応する、前記位置記憶部(21)に記憶されている前記先端部の位置との間の位置誤差を算出する位置誤差算出部(23)と、
前記学習制御の後に前記ロボット機構部を前記位置指令により動作させている間、前記所定の時間間隔で取得される前記先端部の実際の速度と、該実際の速度に対応する、前記速度記憶部(22)に記憶されている前記先端部の速度との間の速度誤差を算出する速度誤差算出部(24)と、
前記学習制御の後に前記ロボット機構部を前記位置指令より動作させている間、前記位置誤差及び前記速度誤差に基づき、前記先端部の位置及び速度が異常状態であるか、又は正常状態であるかを判定し、この判定結果に応じて、前記学習補正量を前記先端部の位置に対して適用するか否かを切替えるように構成された学習補正量適用判定部(25)と、
を備えるロボット制御装置(10)。
【請求項2】
前記学習補正量適用判定部(25)は、前記位置誤差が所定の第一閾値を超えたか、又は前記速度誤差が所定の第二閾値を超えた場合に、前記先端部の位置又は速度が異常状態であると判定し、前記学習補正量を適用しないように構成された、請求項1に記載のロボット制御装置(10)。
【請求項3】
前記学習補正量適用判定部(25)は、前記位置誤差が所定の第一閾値以下であり、且つ前記速度誤差が所定の第二閾値以下である場合に、前記先端部の位置及び速度が正常状態であると判定し、前記学習補正量を適用するように構成された、請求項2に記載のロボット制御装置(10)。
【請求項4】
前記先端部の位置又は速度が前記異常状態であると前記学習補正量適用判定部(25)により判定された場合に、前記先端部の速度を所定の安全速度以下に調節するように構成された速度指令調節部(26)をさらに備える、請求項1または2に記載のロボット制御装置(10)。
【請求項5】
前記学習制御部(20)は、前記ロボット機構部に関する複数の異なる動作にそれぞれ対応する複数の前記学習補正量を記憶するように構成された、請求項1から4のいずれか一項に記載のロボット制御装置(10)。
【請求項6】
前記学習補正量適用判定部(25)は、前記先端部の位置又は速度に対する判定結果を前記正常状態に切替えた時、前記学習制御部(20)に記憶された複数の前記学習補正量のうち、前記正常状態になった前記ロボット機構部の動作に対応する前記学習補正量を適用するように構成された、請求項5に記載のロボット制御装置(10)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習制御機能を備えたロボット制御装置に関する。
【背景技術】
【0002】
従前より、サーボモータにより駆動される被駆動体の位置や速度を制御するために、通常、位置フィードバック制御、速度フィードバック制御、さらには電流フィードバック制御が行われている。しかし、そのようなフィードバック制御を行っても、被駆動体の剛性が低い場合や被駆動体が高加速度で動作される場合には、被駆動体に位置ずれが発生し、被駆動体の位置精度が安定しないことがある。そこで、被駆動体の位置精度を高めるために学習制御を行うことが従前より提案されている。
【0003】
例えば、特許文献1は、被加工物が取付けられていてサーボモータにより駆動される被駆動体と、被加工物を加工する工具が取付けられた被取付部材とを備える工作機械本体において、被取付部材の先端点に加速度センサを取付けて学習制御を行うことを開示する。
学習制御は、所定の周期で同一パターンの動作を繰返す指令に対し、位置指令値と位置フィードバック値との差である位置偏差をゼロ付近に収束させるための学習補正量を求めるプロセスである。
【0004】
具体的には、サーボモータを制御する制御回路に入力された位置指令値と、被駆動体の位置を検出する位置検出器から出力された位置フィードバック値との差(以下、第一位置偏差と呼ぶ。)が、位置指令の入力毎に取得される。このとき、被取付部材の先端点に取付けられた加速度センサにより検出される加速度を2回積分することにより、被取付部材の先端点の位置ずれ量(変位量)も取得される。この位置ずれ量と前述の第一位置偏差とを加算することにより、指令位置に対する被取付部材の先端点の位置誤差(以下、第二位置偏差と呼ぶ。)が計算される。この計算された第二位置偏差がゼロに収束すれば、被取付部材の先端点の位置は位置指令の位置と一致する。このため、第二位置偏差をゼロに収束させるための補正量(以下、学習補正量と呼ぶ。)が計算される。
上述のような一連の処理を同一の移動指令によって所定の試行回数だけ繰返すことにより、上記の第二位置偏差がゼロ付近の所定閾値以下に収束するまで前述の学習補正量は更新され、学習補正量の最良値が求められる。学習補正量の最良値は制御装置内のメモリに保存される。以上の制御プロセスが学習制御と呼ばれるものである。
学習制御が終了した後には、加速度センサは被取付部材の先端点から取外される。学習制御後の通常の制御においては、学習制御の時と同じ移動指令による制御が行われるとともに、前述の学習補正量の最良値が上記の第一位置偏差に適用されることになる。
特許文献1においては、学習制御の際に、加速度センサを被取付部材の先端点に取付けずに、機械モデルを使用して、指令位置に対する被取付部材の先端点の位置誤差を予測することも開示されている。
【0005】
また、特許文献2においては、ワークを回転させるサーボモータの回転駆動力の変動を抑制するために、位置指令値と位置フィードバック値との差である位置偏差を小さくするための位置補正量を算出する学習制御部を備える工作機械用制御装置が開示されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−172149号公報
【特許文献2】特開2009−83074号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したように、工作機械においては、学習制御に関する技術の実用化が進んでいる。産業用ロボットにおいても、アーム部の先端に取付けられているツールの重量が大きいほど、さらにはアーム部の剛性が低いほど、動作中のアーム部の先端のツールに生じる振動や揺れは大きくなり、ツールの位置精度が悪くなる。このため、ロボットの動作においても学習制御の適用が検討されている。特に、同じパターンの作業をロボットに繰返し実行させる場合、学習制御は有効である。
【0008】
しかしながら、工作機械に用いられた学習制御技術をロボットの制御にそのまま適用できない場合がある。
つまり、学習制御は、所定の周期で同一パターンの移動指令を所定回数繰返してモータ制御回路に入力することを前提としたプロセスである。工作機械の場合、被加工物が取付けられた移動駆動体の軌跡や速度が学習制御時と実際の稼働時とで大きく変わらないので、学習制御を行う意義は大きい。一方、産業用ロボットにおいては、ロボットのツールの移動パターンはロボットの稼働中に生産ライン上の周辺機器と関連して変わることが多い。例えば、ロボットの稼働中に、外部信号の入力待ちの為にツールを待機位置に移動させる必要が生じたり、ロボットが別の動作を行うためにツールの移動パターンが切替わったりすることがある。また、ツールの移動パターンをロボットに教示又は修正するためにユーザが教示操作盤によりロボットを操作することもある。これらの要因により、学習制御後のロボットの実稼働においては、必ずしも学習制御時と全く同じ軌跡や速度でロボットのツールは移動していない。このように学習制御時と軌跡や速度が異なるロボット動作に対して、学習制御により取得された学習補正量を適用すると、ツールの振動が収束されないばかりか、かえって振動が発散してしまう可能性がある。このため、産業用ロボットに対して学習制御技術がほとんど使われていないのが、実状である。
【0009】
そこで本発明は、上述したような課題に鑑み、ロボット機構部の先端部に発生しうる振動や揺れを効率よく抑制して高精度なロボット動作を実現することが可能なロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成するため、本発明の一態様によれば、サーボモータにより駆動されるロボット機構部の動作を制御するロボット制御装置であって、
前記ロボット機構部を位置指令により動作させたときの前記ロボット機構部の先端部の位置を補正する学習補正量を算出するための学習制御を行う学習制御部と、
前記学習制御の実施中に前記ロボット機構部の先端部の位置を所定の時間間隔で記憶する位置記憶部と、
前記学習制御の実施中に前記ロボット機構部の先端部の速度を前記所定の時間間隔で記憶する速度記憶部と、
前記学習制御の後に前記ロボット機構部を前記位置指令により動作させている間、前記所定の時間間隔で取得される前記先端部の実際の位置と、該実際の位置に対応する、前記位置記憶部に記憶されている前記先端部の位置との間の位置誤差を算出する位置誤差算出部と、
前記学習制御の後に前記ロボット機構部を前記位置指令により動作させている間、前記所定の時間間隔で取得される前記先端部の実際の速度と、該実際の速度に対応する、前記速度記憶部に記憶されている前記先端部の速度との間の速度誤差を算出する速度誤差算出部と、
前記学習制御の後に前記ロボット機構部を前記位置指令より動作させている間、前記位置誤差及び前記速度誤差に基づき、前記先端部の位置及び速度が異常状態であるか、又は正常状態であるかを判定し、この判定結果に応じて、前記学習補正量を前記先端部の位置に対して適用するか否かを切替えるように構成された学習補正量適用判定部と、
を備えるロボット制御装置が提供される。
さらに、本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記学習補正量適用判定部は、前記位置誤差が所定の第一閾値を超えたか、又は前記速度誤差が所定の第二閾値を超えた場合に、前記先端部の位置又は速度が異常状態であると判定し、前記学習補正量を適用しないように構成された、ロボット制御装置が提供される。
本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記学習補正量適用判定部は、前記位置誤差が所定の第一閾値以下であり、且つ前記速度誤差が所定の第二閾値以下である場合に、前記先端部の位置及び速度が正常状態であると判定し、前記学習補正量を適用するように構成された、ロボット制御装置が提供される。
本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記先端部の位置又は速度が前記異常状態であると前記学習補正量適用判定部により判定された場合に、前記先端部の速度を所定の安全速度以下に調節するように構成された速度指令調節部をさらに備える、ロボット制御装置が提供される。
本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記学習制御部は、前記ロボット機構部に関する複数の異なる動作にそれぞれ対応する複数の前記学習補正量を記憶するように構成された、ロボット制御装置が提供される。
本発明の他の態様によれば、上記の態様のロボット制御装置であって、前記学習補正量適用判定部は、前記先端部の位置又は速度に対する判定結果を前記正常状態に切替えた時、前記学習制御部に記憶された複数の前記学習補正量のうち、前記正常状態になった前記ロボット機構部の動作に対応する前記学習補正量を適用するように構成された、ロボット制御装置が提供される。
【発明の効果】
【0011】
本発明によれば、学習制御後にロボットを実際に動作させたときに、ロボット機構部の先端部の実際の位置や速度に応じて、事前の学習制御時に算出した学習補正量の適用を有効又は無効に切替えることができる。これにより、ロボット機構部の先端部に発生しうる振動や揺れを効率よく抑制して高精度なロボット動作を実現することができる。さらに、複数の動作パターンを実行できる産業用ロボットに対して学習制御技術を有効活用することができる。
【0012】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【0013】
図1】本発明の一実施形態のロボット制御装置を説明するためのブロック図である。
図2】本発明の一実施形態のロボット制御装置の処理フローの主要部を説明するための図である。
図3図2に示されたステップS13からステップS14の処理をより具体的に示した図である。
図4図2に示されたステップS17からステップS18の処理をより具体的に示した図である。
図5】学習制御によるロボット動作を実施したときのロボット機構部の先端部の位置軌跡と、学習制御後に実際のロボット動作を実施したときのロボット機構部の先端部の位置軌跡とが相異する例を示した図である。
図6】複数の移動パターンの各々に関する学習制御を実施するプログラム部分を含むロボット動作プログラムの一例を示した図である。
図7】各々のロボット動作のインデックス番号とロボット機構部の先端部の現在位置とから学習補正量を特定するときの処理フローを示した図である。
【発明を実施するための形態】
【0014】
次に、本発明の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【0015】
図1は、本発明の一実施形態のロボット制御装置10を説明するためのブロック図である。本実施形態のロボット制御装置10は、サーボモータ11により駆動される関節軸を介して連結された複数のアーム部(図示せず)を有するロボット100を制御する装置である。ロボット100は例えば産業用途の垂直多関節ロボットである。ロボット100の遠位側のアーム部の先端(以下、ロボット機構部の先端部と呼ぶ。)には、例えば把持ハンドや工具、溶接ガンなどといった作業ツール(図示せず)が取付けられている。
【0016】
図1に示されるように、サーボモータ11は、位置FB(即ち、位置フィードバック値)及び速度FB(即ち、速度フィードバック値)を検出するパルスコーダ12、例えばロータリエンコーダを内蔵している。ロボット制御装置10は、ロボット100におけるロボット機構部の先端部の位置を検出する位置検出部13と、該ロボット機構部の先端部の速度を検出する速度検出部14とをそれぞれ備えている。
なお、位置検出部13は、位置FBを順変換してロボット機構部の先端部の位置を計算する。また、速度検出部14は、位置検出部13により計算された先端部の位置を微分して速度を算出する。
【0017】
さらに図1を参照すると、ロボット制御装置10は、サーボモータ11を制御するための基本的な構成要素として、動作指令部15、位置制御部16、速度制御部17、電流制御部18、及びアンプ19を備えている。
動作指令部15は、予め作成されたロボット動作プログラムまたは、教示操作盤(図示せず)からの動作指示に従って、ロボットを動作させる指令(位置指令値)を位置制御部16に対して出力する。ロボット動作プログラムは、ロボット制御装置10内のROM等のメモリに記憶されている。
位置制御部16は、動作指令部15から与えられた位置指令値と、パルスコーダ12により検出された位置FBとの差である位置偏差量を処理し、速度制御部17に対して速度指令値を出力する。
速度制御部17は、位置制御部16から与えられた速度指令値と、パルスコーダ12により検出された速度FBとの差である速度偏差量を処理し、電流制御部18に対して電流指令値を出力する。
電流制御部18は、速度制御部17から与えられた電流指令値と、アンプ19からの電流FB(即ち、電流フィードバック値)との差である電流偏差量を処理し、アンプ19に対して電流指令値(トルク指令値)を出力する。
アンプ19は、電流制御部18からそれぞれ電流指令値を受信するとともに、受信した電流指令値に基づいて、サーボモータ11を駆動する駆動電流を生成し、サーボモータ11を回転駆動する。
動作指令部15からの位置指令値に従って、ロボット100の各関節軸に連結されたサーボモータ11を回転駆動させると、ロボット100におけるロボット機構部の先端部に取付けられた作業ツールは指令された位置に移動する。
【0018】
さらに、図1に示されるとおり、本実施形態のロボット制御装置10は、学習制御部20、位置記憶部21、速度記憶部22、位置誤差算出部23、速度誤差算出部24、学習補正量適用判定部25、及び、速度指令調節部26を備える。以下、これら構成要素の機能を詳述する。
【0019】
学習制御部20は、背景技術の欄において説明した、いわゆる学習制御を行うための機能部分である。つまり、学習制御部20は、ロボット機構部を位置指令により動作させたときの該ロボット機構部の先端部の位置を補正する学習補正量を算出するための学習制御を行うように構成されている。
より具体的には、学習制御部20は、動作指令部15から与えられた位置指令値と、ロボット100におけるロボット機構部の先端部に取り付けたセンサ30により検出された位置との差である位置偏差量をゼロ付近に収束させるための学習補正量を求めるように構成されている。ここで、センサ30は、ロボット100におけるロボット機構部の先端部の位置や変位を監視できる装置であれば何でもよい。そのような装置としては、例えば、加速度センサ、ジャイロセンサ、慣性センサ、レーザトラッカ、カメラ、またはモーションキャプチャ装置などの、位置や変位を計測できる装置を適用しうる。なお、学習補正量を求めるときは、センサ30により検出されたロボット機構部の先端部の位置が使用されるが、学習制御の終了後にはセンサ30はロボット機構部の先端部から取外される。さらに、学習制御部20は、所定周期で所定回数繰返される同一の動作指令に対して、その都度学習補正量を更新しながら最良値を求めるように構成されている。学習制御部20の具体的な構成は、特許文献1(例えば図2図4図6参照)に記載されている学習制御器と同じであるので、その説明は省略する。
【0020】
本実施形態の学習制御部20の出力部には、学習補正量の出力先を位置制御部16又は学習補正量適用判定部25のいずれか一方に切替えるスイッチ27が設けられている。
学習制御によるロボット動作を行うに際し、学習制御部20の出力が位置制御部16の入力となるようにスイッチ27が切替えられる。学習制御部20は学習補正量を記憶するメモリ20aを有し、同一の動作指令が繰返される度に、メモリ20a内に学習補正量が書込まれて更新されるようになっている。
一方、学習制御の終了後に、学習制御を実施したときの動作指令でロボット100を実際に動作させるときには、学習制御部20の出力が学習補正量適用判定部25の入力となるようにスイッチ27が切替えられる(図1に示されるスイッチ27の状態)。これにより、メモリ20a内の学習補正量が学習補正量適用判定部25を介して位置制御部16に出力されるようになっている。
【0021】
位置記憶部21は、学習制御によるロボット動作中、位置検出部13により検出されたロボット機構部の先端部の位置を所定の時間間隔Tで記憶する。学習制御の終了後には、学習制御によるロボット動作を行ったときのロボット機構部の先端部の位置データ(軌跡データ)が位置記憶部21内に記憶されていることになる。
速度記憶部22は、学習制御によるロボット動作中、速度検出部14により検出されたロボット機構部の先端部の速度を上記所定の時間間隔Tで記憶する。学習制御の終了後には、学習制御によるロボット動作を行ったときのロボット機構部の先端部の速度データが速度記憶部22内に記憶されていることになる。
【0022】
位置記憶部21、速度記憶部22、メモリ20aなどには、例えば、RAM(Random Access Memory)といったメモリ装置や、ハードディスクといった磁気記憶装置などを用いることができる。図1に示された位置記憶部21、速度記憶部22、及びメモリ20aはそれぞれ別個に設けられているが、それらは、一つの記憶装置内に割当てられた異なる記憶領域としてもよい。
【0023】
位置誤差算出部23は、学習制御後に学習制御時の動作指令でロボット100を動作させている間、位置検出部13から、ロボット機構部の先端部の実際の位置を上記所定の時間間隔Tで受信するようになっている。
さらに、位置誤差算出部23は、位置検出部13から上記所定の時間間隔Tで受信されるロボット機構部の先端部の実際の位置と、該実際の位置に対応する、位置記憶部21に記憶されているロボット機構部の先端部の位置との間の誤差を算出するようになっている。以降、この誤差を位置誤差と呼ぶ。
【0024】
速度誤差算出部24は、学習制御後に学習制御時の動作指令でロボット100を動作させている間、速度検出部14から、ロボット機構部の先端部の実際の速度を上記所定の時間間隔Tで受信するようになっている。
さらに、速度誤差算出部24は、速度検出部14から上記所定の時間間隔Tで受信されるロボット機構部の先端部の実際の速度と、該実際の速度に対応する、速度記憶部22内に記憶されているロボット機構部の先端部の速度との間の誤差を算出するようになっている。以降、この誤差を速度誤差と呼ぶ。
【0025】
但し、位置記憶部21や速度記憶部22に記憶されている位置データや速度データが、学習制御後のロボット100の実際の動作中に位置検出部13や速度検出部14から出力される位置データや速度データにより上書きされないようにする必要である。
このため、位置検出部13の出力部には、学習制御時に位置検出部13の出力先を位置記憶部21に設定し、学習制御後のロボット100の実際の動作時には位置検出部13の出力先を位置誤差算出部23に設定するためのスイッチ28が設けられている。速度検出部14の出力部にも、学習制御時に速度検出部14の出力先を速度記憶部22に設定し、学習制御後のロボット100の実際の動作時には速度検出部14の出力先を速度誤差算出部24に設定するためのスイッチ29が設けられている。学習制御後のロボット100の実際の動作中、スイッチ28及びスイッチ29は、図1に示された状態になっている。
【0026】
前述したスイッチ27、スイッチ28及びスイッチ29は、例えば、ロボット制御装置10に対する学習制御のスタート信号の入力または、通常動作のスタート信号の入力に応じて切替わるように構成されているのが好ましい。
【0027】
学習補正量適用判定部25は、位置誤差算出部23や速度誤差算出部24がそれぞれ算出した位置誤差や速度誤差に基づき、ロボット機構部の先端部の位置又は速度が異常状態であるか、又は正常状態であるかを判定するように構成されている。
本明細書でいう「異常」とは、学習制御後のロボット100の実際の動作中におけるロボット機構部の先端部の位置や速度が、学習制御を実施したときのロボット機構部の位置や速度に対して所定の閾値範囲を超えて異なっていることを意味する。「正常」とは、「異常」でない状態のことである。
【0028】
さらに、学習補正量適用判定部25は、ロボット機構部の先端部の位置及び速度の少なくとも一方が異常状態であると判定した場合には、学習制御部20のメモリ20aに記憶されている学習補正量を位置制御部16に対して出力しないように構成されている。より具体的には、ロボット機構部の先端部に関する位置誤差及び速度誤差の少なくとも一方が予め定められた閾値を超える場合には、学習補正量適用判定部25は、異常が発生したと判定し、学習補正量の適用を行わないようにする。
また、学習補正量適用判定部25は、ロボット機構部の先端部の位置及び速度のいずれも正常状態であると判定した場合には、学習制御部20のメモリ20aに記憶されている学習補正量を位置制御部16に対して出力するように構成されている。より具体的には、ロボット機構部の先端部に関する位置誤差及び速度誤差のいずれも予め定められた閾値以下である場合には、学習補正量適用判定部25は、異常は発生していないと判定し、学習補正量の適用を行うようにする。
要するに、ロボット100の実際の動作におけるロボット機構部の先端部の位置や速度が学習制御時の位置や速度と比べて異常状態であるか、又は正常状態であるかを判定し、異常状態の場合には学習補正量を前述の位置偏差量に適用しない。正常状態の場合には学習補正量を前述の位置偏差量に適用する。
このような学習補正量適用判定部25は、前述したロボット機構部の先端部の位置及び速度のそれぞれに関する異常の有無を判定するための閾値を設定する設定部(図示せず)を備え、それらの閾値をロボット制御装置10外から書換えられることが好ましい。
【0029】
速度指令調節部26は、学習補正量適用判定部25から異常の有無を受取り、異常が有る場合には、ロボット機構部の先端部の速度を所定の安全速度以下に調節するように構成されている。
より具体的には、学習補正量適用判定部25は、ロボット機構部の先端部の位置及び速度が異常状態であると判定した時、異常が発生した旨の信号(以下、異常検出信号と呼ぶ。)を速度指令調節部26に出力する。速度指令調節部26は、異常検出信号を受信している時のみ、位置制御部16からの速度指令値を所定の割合で減少させ、減少させた速度指令値を速度制御部17に対して出力する。これにより、ロボット機構部の先端部の速度(サーボモータ11の回転速度)が所定の安全速度以下に低下する。一方、異常検出信号が出力されていない間は、位置制御部16からの速度指令値を減少させる調節は行われない。
なお、このような速度指令調節部26は、本発明のロボット制御装置に対し、必ずしも備えられていなくてもよい。
【0030】
[ロボット制御装置10の動作]
図2は、本実施形態のロボット制御装置10の処理フローの主要部を説明するための図である。以下、図1及び図2を参照しながら、本実施形態のロボット制御装置10の動作を説明する。
【0031】
学習制御を行うときには、図1に示される状態のスイッチ27は、学習制御部20の出力先が学習補正量適用判定部25から位置制御部16になるように切替わる。さらに、図1に示される状態のスイッチ28は、位置検出部13の出力先が位置誤差算出部23から位置記憶部21となるように切替わる。図1に示される状態のスイッチ29は、速度検出部14の出力先が速度誤差算出部24から速度記憶部22となるように切替わる。このようなスイッチ27〜29の切替えは、ロボット制御装置10に対して学習制御のスタート信号が入力されることにより同時に行われる。
学習制御中は、動作指令部15からの位置指令値とパルスコーダ12からの位置FBとの差である位置偏差量、及び位置検出部13による検出位置が学習制御部20に入力され、学習制御部20内で学習補正量が求められて位置制御部16に対して出力される。さらに、動作指令部15から同一の動作指令が繰返される度に、学習制御部20のメモリ20a内に学習補正量が書込まれて更新される。
【0032】
学習制御の終了後、学習制御を実施したときの動作指令でロボット100を実際に動作させるときには、スイッチ27〜29はそれぞれ、図1に示される状態に切替わる。これらスイッチの切替えは、ロボット制御装置10に対して通常動作のスタート信号が入力されることにより同時に行われる。
【0033】
図2に示される処理フローは、学習制御後にロボット100を実際に動作させるときの処理フローである。このため、図2に示される処理フローを開始するまでに、前述のように学習制御が終了し、スイッチ27〜29の各々は、図1に示される状態になっているものとする。さらに、学習制御によるロボット動作を行ったときのロボット機構部の先端部の位置データ(軌跡データ)及び速度データはそれぞれ、図1に示される位置記憶部21及び速度記憶部22に記憶されているものとする。
【0034】
学習制御後にロボット100の実際の動作を開始すると、まず、位置誤差算出部23は、位置検出部13からロボット機構部の先端部の位置を、学習制御中に位置記憶部21がロボット機構部の先端部の位置を記憶したときと同じ所定の時間間隔Tで受信する。
位置誤差算出部23は、位置検出部13から上記所定の時間間隔Tで受信されるロボット機構部の先端部の実際の位置と、該実際の位置に対応する、位置記憶部21に記憶されているロボット機構部の先端部の位置との間の位置誤差を算出する(図2のステップS11)。
【0035】
次いで、図2のステップS12において、学習補正量適用判定部25は、前述したロボット機構部の先端部に関する位置誤差が所定の第一閾値を超えたどうかを判定する。その位置誤差が所定の第一閾値を超えた場合には、学習補正量適用判定部25は、位置が異常状態であると判定するとともに、位置制御部16に対する学習補正量の適用が無効の状態になっているか否かを判定する(図2のステップS13)。
この判定処理の結果、学習補正量の適用が無効の状態でなければ、学習補正量適用判定部25は、位置制御部16に対する学習補正量の適用を無効の状態に切替える(図2のステップS14)。
このステップS14の後や、上記ステップS13において学習補正量の適用が無効の状態になっていると判定された後は、上記ステップS12から次の判定結果が出るまで、前述したステップS13及びステップS14の処理は行われない。
【0036】
また、上記のステップS12において、前述したロボット機構部の先端部に関する位置誤差が上記所定の第一閾値以下であると学習補正量適用判定部25により判定された場合には、図2のステップS15が実施される。
ステップS15においては、速度誤差算出部24は、速度検出部14から上記所定の時間間隔Tで受信されるロボット機構部の先端部の実際の速度と、該実際の速度に対応する、速度記憶部22内に記憶されているロボット機構部の先端部の速度との間の速度誤差を算出する。
速度誤差算出部24が速度検出部14からロボット機構部の先端部の速度を受信する時刻及びタイミングは、前述した位置誤差算出部23が位置検出部13からロボット機構部の先端部の位置を受信する時刻及びタイミングと同じである。
【0037】
続いて、図2のステップS16において、学習補正量適用判定部25は、前述したロボット機構部の先端部に関する速度誤差が所定の第二閾値を超えたかどうかを判定する。その速度誤差が所定の第二閾値を超えた場合には、学習補正量適用判定部25は、速度が異常状態であると判定するとともに、前述のようなステップS13からステップS14の処理を行う。
一方、上記のステップS16において、前述したロボット機構部の先端部に関する速度誤差が上記所定の第二閾値以下であると学習補正量適用判定部25により判定された場合には、図2のステップS17が行われる。
上記ステップS17においては、学習補正量適用判定部25は、速度が正常状態であると判定するとともに、位置制御部16に対する学習補正量の適用が有効の状態になっているか否かを判定する。この判定の結果、学習補正量の適用が有効の状態でなければ、学習補正量適用判定部25は、位置制御部16に対する学習補正量の適用を有効の状態に切替える(図2のステップS18)。
このステップS18の後や、上記ステップS17において学習補正量の適用が有効の状態になっていると判定された後は、上記ステップS16から次の判定結果が出るまで、前述したステップS17及びステップS18の処理は行われない。
【0038】
図3は、図2に示されたステップS13からステップS14の処理をより具体的に示した図である。以下、図1図2とともに図3を参照しながら、ステップS13からステップS14の処理の具体例を説明する。
図2のステップS12での判定結果が「YES」の場合、すなわち、位置誤差算出部23により算出された位置誤差が上記所定の第一閾値を超えた場合には、学習補正量適用判定部25は、位置が異常状態であると判定する(図3のステップS21)。さらに、前述したステップS16での判定結果が「YES」の場合、すなわち、速度誤差算出部24により算出された速度誤差が上記所定の第二閾値を超えた場合にも、学習補正量適用判定部25は、速度が異常状態であると判定する(図3のステップS21)。
学習補正量適用判定部25は、前述のように位置又は速度が異常状態であると判定すると、位置制御部16に対する学習補正量の適用を無効の状態に切替える(図3のステップS22)。これにより、学習補正量適用判定部25は、位置が異常状態であると判定している間は、学習制御部20のメモリ20aに記憶されている学習補正量を位置制御部16に対して出力しなくなる。例えば、学習補正量適用判定部25は、位置制御部16に出力する学習補正量をゼロに設定する(図3のステップS23)。
【0039】
続いて、学習補正量適用判定部25は、前述した異常検出信号を速度指令調節部26に出力する。速度指令調節部26は、異常検出信号の受信中、位置制御部16からの速度指令値を所定の割合で減少させ、減少させた速度指令値を速度制御部17に対して出力する。これにより、学習補正量適用判定部25において速度が異常状態であると判定されている間は、ロボット機構部の先端部の速度(サーボモータ11の回転速度)が所定の安全速度以下に減少する(図3のステップS24)。
前述したステップS23及びステップS24の順番は逆でもよい。
【0040】
図4は、図2に示されたステップS17からステップS18の処理をより具体的に示した図である。以下、図1図2とともに図4を参照しながら、ステップS17からステップS18の処理の具体例を説明する。
図2のステップS12での判定結果が「NO」の場合、すなわち、位置誤差算出部23により算出された位置誤差が上記所定の第一閾値以下である場合、学習補正量適用判定部25は、位置が正常状態であると判定する(図4のステップS31)。さらに、前述したステップS17での判定結果が「NO」の場合、すなわち、速度誤差算出部24により算出された速度誤差が上記所定の第二閾値以下である場合、学習補正量適用判定部25は、速度が正常状態であると判定する(図4のステップS31)。
学習補正量適用判定部25は、前述のように位置と速度が正常状態であると判定すると、位置制御部16に対する学習補正量の適用を有効の状態に切替える(図4のステップS32)。これにより、学習補正量適用判定部25は、位置と速度が正常状態であると判定している間、学習制御部20のメモリ20aに記憶されている学習補正量を位置制御部16に対して出力する。つまり、学習補正量適用判定部25は、メモリ20a内の学習補正量を前述の位置偏差量に適用する(図4のステップS33)。
【0041】
学習補正量適用判定部25は、位置と速度が正常状態であると判定している間は、前述した異常検出信号を速度指令調節部26に出力しない。このため、位置制御部16からの速度指令値は速度指令調節部26により減少されない。これにより、学習補正量適用判定部25において位置と速度が正常状態であると判定されている間は、ロボット機構部の先端部の速度(サーボモータ11の回転速度)は、位置制御部16からの速度指令値に応じた速度に維持される(図4のステップS34)。つまり、学習補正量適用判定部25における異常の判定結果が異常状態から正常状態に切替わると、ロボット機構部の先端部の速度は低速状態から高速状態に復帰することになる。
前述したステップS33及びステップS34の順番は逆でもよい。
【0042】
図5は、学習制御によるロボット動作を実施したときのロボット機構部の先端部の位置軌跡と、学習制御後に実際にロボット動作を実施したときのロボット機構部の先端部の位置軌跡とが相異する例を模式的に示した図である。
例えば、学習制御において、図5に点線Xにより示されるように、ロボット機構部の先端部が位置P1から所定の距離だけ直線移動したら曲線移動し、さらに直線移動して位置P3へ到達するように、ロボット100の動作が実施されたとする。
上記の学習制御後に生産ラインにて実際にロボット100を動作させたとき、ロボット100の近くに設置されている周辺機器や別のロボットなどとの干渉を避けるためにインターロック機能が働くことがある。学習制御は、一般にロボット100の近くに設置された周辺機器などの動作を考慮しないで実施されるが、実際に生産ラインが稼働すると、ロボット100の近くの周辺機器や別のロボットがロボット100の動作に関連して動くからである。
インターロック機能が働いた場合、例えば、ロボット100におけるロボット機構部の先端部は、図5に示される位置P2(待機位置)に移動して待機し、インターロック解除信号の受信後に位置P3に向けて移動する。このため、ロボット機構部の先端部は、学習制御時とは異なる位置軌跡、図5に実線Yにより示されるように位置P1から位置P2を経て位置P3に移動するような軌跡を描くことになる。
【0043】
図5における点線Xと実線Yの軌跡を比較すると、位置P1から位置P3へ移動するロボット機構部の先端部の軌跡は、図5に示される位置Q1付近で学習制御時の軌跡とは大きく違っている。また、位置P1から位置P3へ移動するロボット機構部の先端部の軌跡は、図5に示される位置Q2付近で学習制御時の軌跡に接近しながら一致するようになっている。
ロボット機構部の先端部の位置軌跡が学習制御時と一致していないロボット100の実際の動作制御に、学習制御により取得された学習補正量を適用すると、ロボット機構部の先端部に振動や揺れが発生しまうことがある。
そのため、本実施形態のロボット制御装置10は、ロボット機構部の先端部の実際の位置軌跡が、学習制御を実施したときのロボット機構部の先端部の位置軌跡から大きく異なった場合には、異常が発生したと判定し、学習補正量の適用を行わないようにしている。また、ロボット機構部の先端部の実際の位置軌跡が、学習制御を実施したときのロボット機構部の先端部の位置軌跡と一致するように復帰すれば、学習補正量の適用を再開するようにしている。
【0044】
したがって、前述のようなロボット制御装置10によれば、ロボット機構部の先端部に発生しうる振動や揺れを効率よく抑制して高精度なロボット動作を実現することができる。さらに、複数の動作パターンを実行できる多くの産業用ロボットに対して学習制御技術を有効活用することができる。
【0045】
なお、学習制御後にロボット100を実際に動作させたときにロボット機構部の先端部の位置軌跡が学習制御時の位置軌跡と異なってしまう要因は、前述のようなインターロック機能によりロボット機構部の先端部を待機位置P2に移動させる例だけではない。
例えば、作業者が、ロボット制御装置10に予め記憶されたロボット機構部の先端部の位置及び軌跡の一部を、実際の生産現場の状況に応じて教示操作盤により修正することがある。この場合、生産ラインにて実際にロボット100を動作させたときのロボット機構部の先端部の軌跡は、事前に学習制御を実施したときのロボット機構部の先端部の軌跡から変わってしまう。
その他に、次のような要因もある。例えば、車体を製造するためのスポット溶接作業をロボット100により行う場合、生産ラインに設置されたロボット100に送られてくる車体の種類が変わると溶接位置も変わる。このため、ロボット100に取付けられた溶接ガンの移動パターン(軌跡)を変える必要が生じる。この場合、これまでの移動パターンが別の移動パターンに切替わるためのロボット動作が必要となる。このような動作の分岐点においては、学習制御時と同じ移動パターン(軌跡)でロボット100を動作させられなくなることがある。
本実施形態のロボット制御装置10は、このような要因により実際の移動パターンが学習制御時の移動パターンから外れてしまう状況に対して適用しうるものである。
【0046】
(その他の実施形態)
前述したような車体のスポット溶接作業をロボット100により行う場合、一般に、複数の車種に応じて、ロボット100の溶接ガンの複数の移動パターンがロボット100の動作プログラムに記述されている。このような複数の移動パターンの動作をロボット制御装置10によりロボット100に実行させる場合について以下に説明する。
【0047】
この場合、図1に示されたロボット制御装置10の動作指令部15は、ロボット動作プログラムに記述された複数の移動パターンのうちの、ロボット100の作業目的に対応する移動パターンに従って、位置指令値を出力する。
このような複数の移動パターンの各々についても事前に学習制御を実施することより、移動パターン毎の学習補正量を取得して学習制御部20のメモリ20aに記憶しておくことが好ましい。
例えば、図6は、前述した複数の移動パターンの各々に関する学習制御を実施するプログラム部分を含むロボット動作プログラムの一例を示した図である。図6に示されるように、複数のロボット動作(LP[1] FINE SPOT、LP[2] CNT100など)がロボット動作プログラム内に記述されている。それらロボット動作のうち、学習制御の対象とするロボット動作が、学習開始命令(LVC START[1])と学習終了命令(LVC END[1])とにより囲まれている。
【0048】
ロボット制御装置10は、前述した学習制御のスタート信号を受信すると、ロボット100の所定の動作に関する学習制御を行う。このとき、ロボット制御装置10は、図6に示されたロボット動作プログラムにおける学習開始命令と学習終了命令との間に記述された複数のロボット動作を、その学習開始命令から学習終了命令へのプログラムの流れに従って逐次実行する。学習制御を行うときのロボット制御装置10の動作については、既に図1を参照して説明したとおりである。
【0049】
プログラムの流れに従ってそれぞれのロボット動作の学習制御が行われる度に、図1に示されるロボット制御装置10の学習制御部20において学習補正量が求められてメモリ20aに記憶される。このとき、それぞれのロボット動作の学習制御が行われた順番にインデックス番号、例えば、図6に示されるような番号(1)〜(5)が割当てられる。図1に示されたメモリ20aは、各々のロボット動作のインデックス番号と、各々のロボット動作の学習制御において取得された学習補正量とを互いに対応付けて記憶している。図1に示された位置記憶部21もまた、各々のロボット動作のインデックス番号と、各々のロボット動作の学習制御において取得されたロボット機構部の先端部の位置データ(軌跡データ)とを互いに対応付けて記憶している。
以上の事により、各々のロボット動作のインデックス番号と、各々のロボット動作の学習制御において取得された学習補正量と、各々のロボット動作の学習制御において取得されたロボット機構部の先端部の位置データ(軌跡データ)とが互いに紐付けられるようになる。
このため、現在行われているロボット動作のインデックス番号や、現在のロボット動作におけるロボット機構部の先端部の位置が分かれば、そのロボット動作におけるロボット機構部の先端部の位置に対応する学習補正量を特定することができる。
【0050】
図7は、前述のように各々のロボット動作のインデックス番号とロボット機構部の先端部の現在位置とから学習補正量を特定するときの処理フローを示した図である。
ロボット100による実際の生産作業において、図6に示されたインデックス番号(1)のロボット動作からインデックス番号(2)のロボット動作に切替わるとする。
ロボット制御装置10はロボット動作プログラムにおけるインデックス番号(2)のロボット動作を実行したことを認識しているので、位置記憶部21に記憶されている、インデックス番号(2)に対応する学習制御時の位置データ(軌跡データ)を使用する。
インデックス番号(2)のロボット動作はインデックス番号(1)のロボット動作とは異なる。このため、インデックス番号(2)のロボット動作に切替わる過程において、ロボット機構部の先端部の位置に異常が発生したと学習補正量適用判定部25により判定される。この場合、図2図3を参照して既に説明したように、学習補正量の適用が無効の状態となる(図2のステップS14及び図3のステップS22を参照)。
【0051】
その後、インデックス番号(2)のロボット動作に切替わる過程において、ロボット機構部の先端部の位置は、インデックス番号(2)のロボット動作に対応するロボット機構部の先端部の位置軌跡に接近するようになる。このため、位置誤差算出部23及び速度誤差算出部24により算出される位置誤差及び速度誤差のいずれも予め定められた閾値以下になる。これにより、学習補正量適用判定部25は、ロボット機構部の先端部の位置及び速度が正常状態であると判定し、位置制御部16に対する学習補正量の適用を無効から有効の状態に切替える(図4のステップS31〜ステップS32、及び図7のステップS41参照)。
【0052】
しかし、学習補正量の適用を有効の状態にしても、インデックス番号(2)のロボット動作に対応する学習補正量はメモリ20a内から未だ特定されていない。このため、図7のステップS42において、ロボット制御装置10は、学習補正量適用判定部25により位置及び速度が正常状態であると判定されたロボット動作のインデックス番号と、正常状態となったロボット動作におけるロボット機構部の先端部の位置とを取得する。
このとき、ロボット制御装置10はインデックス番号(2)のロボット動作を実行したことを認識しているので、現在行われているロボット動作のインデックス番号(2)を取得できる。一方、正常状態となったロボット動作におけるロボット機構部の先端部の位置は、位置検出部13から取得されうる。
【0053】
続いて、図7のステップS43において、ロボット制御装置10は、取得したインデックス番号(2)を基に、該インデックス番号(2)のロボット動作に対応する学習補正量をメモリ20a内から特定する。
さらに、図7のステップS44において、ロボット制御装置10の学習補正量適用判定部25は、正常状態となったロボット動作におけるロボット機構部の先端部の位置に対し、特定した学習補正量を適用する。
上述の処理フローによれば、学習制御後に実際に動作させたロボット機構部の先端部の位置が異常状態から正常状態に復帰すると、正常状態となったロボット動作におけるロボット機構部の先端部の位置に対し、そのロボット動作に対応する学習補正量が適用される。これにより、前述のようにインデックス番号(2)のロボット動作に切替わったとき、該ロボット動作に合った学習補正量を迅速に適用することができる。
【0054】
なお、上述した実施形態のロボット制御装置10は、バスを介して互いに接続された、記憶部、CPU(control processing unit)、および通信部などを備えたコンピュータシステムを用いて構成されうる。該記憶部は、ROM(read only memory)やRAM(random access memory)などである、また、上述したようなロボット制御装置10が備える動作指令部15、位置誤差算出部23、速度誤差算出部24、学習補正量適用判定部25、速度指令調節部26、等の機能や動作は、ROMに記憶されたプログラムがCPUにより実行されることよって達成されうる。
【0055】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の実施形態のロボット制御装置の構成要素や機能などに変更および種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【符号の説明】
【0056】
10 ロボット制御装置
11 モータ
12 パルスコーダ
13 位置検出部
14 速度検出部
15 動作指令部
16 位置制御部
17 速度制御部
18 電流制御部
19 アンプ
20 学習制御部
20a メモリ
21 位置記憶部
22 速度記憶部
23 位置誤差算出部
24 速度誤差算出部
25 学習補正量適用判定部
26 速度指令調節部
27〜29 スイッチ
30 センサ
100 ロボット
図1
図2
図3
図4
図5
図6
図7