(58)【調査した分野】(Int.Cl.,DB名)
前記学習補正量適用判定部(25)は、前記位置誤差が所定の第一閾値を超えたか、又は前記速度誤差が所定の第二閾値を超えた場合に、前記先端部の位置又は速度が異常状態であると判定し、前記学習補正量を適用しないように構成された、請求項1に記載のロボット制御装置(10)。
前記学習補正量適用判定部(25)は、前記位置誤差が所定の第一閾値以下であり、且つ前記速度誤差が所定の第二閾値以下である場合に、前記先端部の位置及び速度が正常状態であると判定し、前記学習補正量を適用するように構成された、請求項2に記載のロボット制御装置(10)。
前記先端部の位置又は速度が前記異常状態であると前記学習補正量適用判定部(25)により判定された場合に、前記先端部の速度を所定の安全速度以下に調節するように構成された速度指令調節部(26)をさらに備える、請求項1または2に記載のロボット制御装置(10)。
前記学習制御部(20)は、前記ロボット機構部に関する複数の異なる動作にそれぞれ対応する複数の前記学習補正量を記憶するように構成された、請求項1から4のいずれか一項に記載のロボット制御装置(10)。
前記学習補正量適用判定部(25)は、前記先端部の位置又は速度に対する判定結果を前記正常状態に切替えた時、前記学習制御部(20)に記憶された複数の前記学習補正量のうち、前記正常状態になった前記ロボット機構部の動作に対応する前記学習補正量を適用するように構成された、請求項5に記載のロボット制御装置(10)。
【発明を実施するための形態】
【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】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の実施形態のロボット制御装置の構成要素や機能などに変更および種々の他の変更、省略、追加を行うことができるのを理解できるであろう。