(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-12
(45)【発行日】2022-12-20
(54)【発明の名称】直接教示装置及び直接教示方法
(51)【国際特許分類】
B25J 9/22 20060101AFI20221213BHJP
G05B 19/42 20060101ALI20221213BHJP
【FI】
B25J9/22 Z
G05B19/42 D
(21)【出願番号】P 2019111391
(22)【出願日】2019-06-14
【審査請求日】2022-03-24
(73)【特許権者】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】100101133
【氏名又は名称】濱田 初音
(74)【代理人】
【識別番号】100199749
【氏名又は名称】中島 成
(74)【代理人】
【識別番号】100197767
【氏名又は名称】辻岡 将昭
(74)【代理人】
【識別番号】100201743
【氏名又は名称】井上 和真
(72)【発明者】
【氏名】清水 康司
(72)【発明者】
【氏名】杉本 広大
(72)【発明者】
【氏名】田原 鉄也
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2008-110406(JP,A)
【文献】特開2014-128843(JP,A)
【文献】特開平08-286759(JP,A)
【文献】特開昭64-066715(JP,A)
【文献】中国特許出願公開第107097233(CN,A)
【文献】特表2002-540971(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/42 - 19/46
(57)【特許請求の範囲】
【請求項1】
ロボットが有するアームに加えられた外力を検知する外力検知部と、
前記外力検知部により検知された外力に従う前記アームの動きを算出する従動制御演算部と、
前記アームが静止しているかを判定するアーム静止判定部と、
前記外力検知部により検知された外力に基づいて積算演算を行う積算演算部と、
前記アーム静止判定部により前記アームが静止していると判定された後に、前記積算演算部による演算結果を示すデータの出力を開始する出力制御部と、
前記従動制御演算部による算出結果及び前記出力制御部による出力に基づいて前記アームを駆動する駆動制御部と
を備えた直接教示装置。
【請求項2】
前記アームの状態に基づいて、前記出力制御部による出力を終了させるかを判定する終了判定部を備え、
前記出力制御部は、前記終了判定部により出力の終了が判定された場合に、前記積算演算部による演算結果を示すデータの出力を終了する
ことを特徴とする請求項1記載の直接教示装置。
【請求項3】
前記外力検知部により検知された外力のオフセット誤差を補正する補正部を備え、
前記積算演算部は、前記補正部による補正後の外力に基づいて積算演算を行う
ことを特徴とする請求項1又は請求項2記載の直接教示装置。
【請求項4】
ロボットが有するアームに加えられた外力を検知する外力検知ステップと、
前記外力検知ステップにおいて検知した外力に従う前記アームの動きを算出する従動制御演算ステップと、
前記アームが静止しているかを判定するアーム静止判定ステップと、
前記外力検知ステップにおいて検知した外力に基づいて積算演算を行う積算演算ステップと、
前記アーム静止判定ステップにおいて前記アームが静止していると判定した後に、前記積算演算ステップにおける演算結果を示すデータの出力を開始する出力制御ステップと、
前記従動制御演算ステップにおける算出結果及び前記出力制御ステップにおける出力に基づいて前記アームを駆動する駆動制御ステップと
を有する直接教示方法。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、ロボットの直接教示を行う直接教示装置及び直接教示方法に関する。
【背景技術】
【0002】
産業用のロボットでは、ロボットに作業をさせるために、前もって教示(ティーチング)と呼ばれる作業が実施される。このロボットの教示を行う方法の1つとして、直接教示(ダイレクト教示)と呼ばれる方法がある。
【0003】
例えば特許文献1では、力センサを用いたロボットの直接教示方法が開示されている。また、例えば特許文献2では、トルク検出手段を用いたロボットの直接教示方法が開示されている。これらの特許文献で開示されている直接教示装置の概略構成を
図8に示す。
【0004】
図8に示す直接教示装置101では、まず、外力検知部1011が、力センサ又はトルクセンサ等を用いて、ロボットが有するアーム2に対して操作者により加えられた外力を検知する。次いで、従動制御演算部1012が、外力検知部1011により検知された外力に従うアーム2の動きを算出(従動制御演算)する。なお、従動制御演算部1012は、従動制御演算において、位置姿勢計測部(不図示)により計測されたアーム2の位置姿勢に関するパラメータを用いる場合もある。なお、アーム2の位置姿勢とは、アーム2の位置及びアーム2の姿勢のうちの少なくとも一方を意味する。また、上記パラメータとしては、アーム2の位置、アーム2の姿勢、又は、アーム2の関節角等が挙げられる。そして、従動制御演算部1012は、従動制御演算の結果に基づいて更新した従動制御指令値を駆動制御部1013に通知する。次いで、駆動制御部1013は、従動制御演算部1012により通知された従動制御指令値に従ってアーム2を駆動する。
【0005】
この一例の動作により、
図8に示す直接教示装置101は、操作者により加えられた外力に従ってアーム2が動くように制御できる。そして、直接教示装置101は、制御によりアーム2の位置及び姿勢が操作者の意図する状態となった場合に、その際の上記パラメータを教示点として記録する。この直接教示装置101により記録された教示点はロボットが作業する際に使用される。
【先行技術文献】
【特許文献】
【0006】
【文献】特開平05-204441号公報
【文献】特開平05-250029号公報
【文献】特開平09-85656号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
一方、特許文献1,2に開示されるような直接教示装置を用いたロボットは、アームが静止している状態から動かす際の操作感を軽くすることが難しい。静止しているアームには静止摩擦による力又はトルクが働く。そのため、アームを動かすためには、アームを駆動する力又はトルクが、静止摩擦による力又はトルクよりも大きくなる必要がある。特許文献3のように摩擦補償を行う直接教示装置もあるが、このような摩擦補償は動摩擦力については有効ではあるが、静止摩擦に対しては有効ではない。また、従動制御演算のゲインを大きくする等して、同じ力又はトルクに対して出力する指令値を大きくすることは可能だが、ゲインを大きくし過ぎると制御系が不安定になり易い。そのため、ゲインは制御系を不安定にしないような値に押さえざるをえないので、操作感を軽くすることが難しくなる。
【0008】
この発明は、上記のような課題を解決するためになされたもので、従来構成に対し、アームが静止している状態から動かす際の操作感を軽くすることができる直接教示装置を提供することを目的としている。
【課題を解決するための手段】
【0009】
この発明に係る直接教示装置は、ロボットが有するアームに加えられた外力を検知する外力検知部と、外力検知部により検知された外力に従うアームの動きを算出する従動制御演算部と、アームが静止しているかを判定するアーム静止判定部と、外力検知部により検知された外力に基づいて積算演算を行う積算演算部と、アーム静止判定部によりアームが静止していると判定された後に、積算演算部による演算結果を示すデータの出力を開始する出力制御部と、従動制御演算部による算出結果及び出力制御部による出力に基づいてアームを駆動する駆動制御部とを備えたことを特徴とする。
【発明の効果】
【0010】
この発明によれば、上記のように構成したので、従来構成に対し、アームが静止している状態から動かす際の操作感を軽くすることができる。
【図面の簡単な説明】
【0011】
【
図1】実施の形態1に係る直接教示装置の構成例を示す図である。
【
図2】実施の形態1における初動補助制御演算部の構成例を示す図である。
【
図3】実施の形態1に係る直接教示装置の動作例を示すフローチャートである。
【
図4】実施の形態1における初動補助制御演算部の動作例を示すフローチャートである。
【
図5】実施の形態1における前処理部による前処理の一例(不感帯処理)を説明する図である。
【
図6】実施の形態2における初動補助制御演算部の構成例を示す図である。
【
図7】実施の形態2における補正部の構成例を示す図である。
【
図8】従来の直接教示装置の構成例を示す図である。
【発明を実施するための形態】
【0012】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は実施の形態1に係る直接教示装置1の構成例を示す図である。
直接教示装置1は、ロボットの直接教示を行う。直接教示装置1は、
図1に示すように、外力検知部11、従動制御演算部12、アーム静止判定部13、初動補助制御演算部14、終了判定部15及び駆動制御部16を備えている。なお、直接教示装置1は、システムLSI(Large-Scale Integration)等の処理回路、又はメモリ等に記憶されたプログラムを実行するCPU(Central Processing Unit)等により実現される。
【0013】
外力検知部11は、操作者によりアーム2に加えられた外力を検知する。例えば、外力検知部11は、アーム2の先端に取付けられた力センサを用い、力センサにより計測された力を外力として検知してもよい。また例えば、外力検知部11は、アーム2のモータ駆動軸に取付けられたトルクセンサを用い、トルクセンサにより計測されたトルクを外力として検知してもよい。また、外力検知部11は、上記のようにセンサを用いて外力を直接計測するのではなく、アーム2が有するモータの電流又はアーム2の関節角の計測値から間接的に外力を検知する外力オブザーバを用いてもよい。
【0014】
従動制御演算部12は、外力検知部11により検知された外力に従うアーム2の動き(従動制御指令値)を算出する。
【0015】
なお、外力検知部11及び従動制御演算部12は、従来技術と同様であり、公知技術である。
【0016】
アーム静止判定部13は、アーム2が静止しているかを判定する。
【0017】
初動補助制御演算部14は、外力検知部11により検知された外力に基づいて初動補助制御指令値を算出し、アーム静止判定部13によりアーム2が静止していると判定された後に初動補助制御指令値を示すデータの出力を開始する。初動補助制御指令値は、アーム2が静止している状態から操作者がアーム2を動かす際にその操作感を軽くするための指令値である。また、初動補助制御演算部14は、終了判定部15により出力の終了が判定された場合に、初動補助制御指令値を示すデータの出力を終了する。初動補助制御演算部14の詳細構成については後述する。
【0018】
終了判定部15は、アーム2の状態に基づいて、初動補助制御演算部14による出力を終了させるかを判定する。
なお
図1では、終了判定部15が直接教示装置1に設けられた場合を示している。しかしながら、終了判定部15は直接教示装置1に必須の構成ではなく、終了判定部15は直接教示装置1に設けられていなくてもよい。
【0019】
駆動制御部16は、従動制御演算部12による算出結果(従動制御指令値)及び初動補助制御演算部14による出力結果(初動補助制御指令値)に基づいて、アーム2を駆動する。
【0020】
次に、
図1に示す実施の形態1における初動補助制御演算部14の構成例について、
図2を参照しながら説明する。
初動補助制御演算部14は、
図2に示すように、前処理部141、積分演算部(積算演算部)142及び出力制御部143を有している。
【0021】
前処理部141は、外力検知部11により検知された外力を示すデータに対し、外乱除去等のデータ処理(前処理)を行う。
なお
図2では、前処理部141が初動補助制御演算部14に設けられた場合を示している。しかしながら、前処理部141は初動補助制御演算部14に必須の構成ではなく、前処理部141は初動補助制御演算部14に設けられていなくてもよい。
【0022】
積分演算部142は、外力検知部11により検知された外力に基づいて積分演算を行うことで、初動補助制御指令値を得る。積分演算部142は、例えば、積分演算として、外力に積分ゲインを掛けた上で積分を行う。なお、初動補助制御演算部14に前処理部141が設けられている場合には、積分演算部142は、前処理部141による前処理後の外力を用いて積分演算を行う。
【0023】
出力制御部143は、アーム静止判定部13によりアーム2が静止していると判定された後に、積分演算部142による演算結果(初動補助制御指令値)を示すデータの出力を開始する。また、直接教示装置1に終了判定部15が設けられている場合には、出力制御部143は、終了判定部15により出力の終了が判定された場合に、積分演算部142による演算結果を示すデータの出力を終了する。
【0024】
次に、
図1,2に示す実施の形態1に係る直接教示装置1の動作例について、
図3を参照しながら説明する。
ここで、人が直接教示を行う場合、静止しているアーム2を動かす際にアーム2に対して継続して力を加えるのが通常である。そこで、
図1,2に示す実施の形態1に係る直接教示装置1では、アーム2に対して加えられた外力を積分し、その積分結果に基づいてアーム2を駆動する。これにより、
図1,2に示す実施の形態1に係る直接教示装置1では、アーム2に加えられた力が小さくてもその力が継続的であれば積分によって累積されるため、駆動制御部16への指令値を大きくでき、アーム2を動かすことができる。その結果、実施の形態1に係る直接教示装置1では、ゲインを高くしなくても操作感が軽くなると考えられる。
【0025】
図1,2に示す実施の形態1に係る直接教示装置1の動作例では、
図3に示すように、まず、外力検知部11は、操作者によりアーム2に加えられた外力を検知する(ステップST301)。なお、外力検知部11により検知される外力は、センサの構造等によっては、操作者によりアーム2に加えられた外力だけではなく、重力に起因する成分が重畳されている場合がある。そこで、このような場合には、外力検知部11は、重力に起因する成分を推定し、検知した外力から推定した成分を差引くことで、外力成分のみを算出するとよい。これは重力補償と呼ばれる公知技術であり、特許文献4等のように複数の文献で開示されている。
【文献】特開平01-066715号公報
【0026】
次いで、従動制御演算部12は、外力検知部11により検知された外力に従うアーム2の動き(従動制御指令値)を算出する(ステップST302)。この際、従動制御演算部12は、まず、外力検知部11により検知された外力の向き及び大きさから、操作者がどのようにアーム2を動かそうとしているかを判定する。そして、従動制御演算部12は、その判定結果に基づいて、アーム2を動かすための従動制御指令値を演算によって決定する。この従動制御指令値は、アーム2の位置、移動量(位置の差分)、速度、加速度、アーム2の各関節の角速度又は角加速度、各関節に与えるトルク、又は、各関節のモータを駆動する電流等、アーム2を動かすために利用可能な物理量であればよい。なお、従動制御演算部12による従動制御演算方法は、特許文献2等で開示されており、様々な方式が開発されているためその詳細な記述は省略する。
【0027】
また、アーム静止判定部13は、アーム2が静止しているかを判定する(ステップST303)。
【0028】
例えば、直接教示装置1がアーム2の位置姿勢を計測する位置姿勢計測部(不図示)を有する場合、アーム静止判定部13は、位置姿勢計測部による計測結果の変化量の絶対値が閾値以下の状態が所定時間以上継続した場合に、アーム2が静止していると判定してもよい。
また、直接教示装置1がアーム2の先端の速度を計測する速度計測部(不図示)を有する場合、アーム静止判定部13は、速度計測部による計測結果の絶対値が閾値以下になった場合に、アーム2が静止していると判定してもよい。
【0029】
また、アーム静止判定部13は、アーム2の各関節の角度又は角速度に基づいて、アーム2が静止しているかを判定してもよい。
また、アーム静止判定部13は、アーム2の位置姿勢、速度、アーム2の各関節の角度又は角速度、又は、これらに相当する物理量を直接計測するのではなく、何らかの演算を用いて他の物理量から間接的に推定し、その推定結果に基づいてアーム2が静止しているかを判定してもよい。
【0030】
なお、アーム静止判定部13による静止判定は、アーム2全体に対して行ってもよいし、関節毎に行ってもよいし、その両方に対して行ってもよい。アーム静止判定部13が関節毎に静止判定を行った場合、初動補助制御演算部14は関節毎に初動補助制御を行うことが可能となる。
【0031】
更に、アーム静止判定部13は、外力検知部11により検知された外力を併用して、アーム2が静止しているかを判定してもよい。例えば、アーム静止判定部13は、速度が十分小さくなり且つ外力が所定値以下である場合にのみ、アーム2が静止していると判定する。これにより、実施の形態1に係る直接教示装置1では、アーム2に大きな外力が加わった状態で静止した場合には、初動補助制御が有効とならない。
【0032】
なお、アーム静止判定部13で用いられるデータは、誤判定を抑制するため、適宜必要な信号処理が行われてもよい。例えば、アーム静止判定部13は、ノイズによる誤判定を抑制するため、ローパスフィルタ又は移動平均によるデータ処理を適用してもよい。
【0033】
次いで、初動補助制御演算部14は、外力検知部11により検知された外力に基づいて初動補助制御指令値を算出し、アーム静止判定部13によりアーム2が静止していると判定された後に初動補助制御指令値を示すデータの出力を開始する(ステップST304)。実施の形態1に係る直接教示装置1では、初動補助制御演算部14による処理により、アーム2が静止している状態において小さな力でもアーム2が動くようになる。
【0034】
また、終了判定部15は、アーム2の状態に基づいて、初動補助制御演算部14による出力を終了させるかを判定する。そして、初動補助制御演算部14は、終了判定部15により出力の終了が判定された場合に初動補助制御指令値の出力を終了する。
【0035】
ここで、初動補助制御演算部14が初動補助制御を終了しない場合、初動補助制御の影響で通常の直接教示の操作感又は制御系の振舞が劣化する可能性がある。このような状況を避けるため、直接教示装置1は、終了判定部15を用いて、適切なタイミングで初動補助制御を終了させることが好ましい。
【0036】
終了判定部15による判定方法としては、最も好ましい例としては、アーム2の速度の絶対値が閾値を超えた場合に初動補助制御演算部14による出力を終了させると判定する。すなわち、終了判定部15は、アーム2が静止状態から移動している状態に遷移した場合に、初動補助制御演算部14による出力を終了させると判定する。
【0037】
また、終了判定部15は、初動補助制御を開始した際のアーム2の位置を記録し、その位置から所定距離だけアーム2が移動した場合に、初動補助制御演算部14による出力を終了させると判定してもよい。
また、終了判定部15は、外力検知部11により検知された力又はトルクが小さくなった場合に、初動補助制御演算部14による出力を終了させると判定してもよい。これは、アーム2が外力の方向に動き出すことにより、外力検知部11により検知される外力が小さくなることを利用する方法である。
また、終了判定部15は、初動補助制御を開始してから所定時間経過した場合に初動補助制御演算部14による出力を終了させると判定してもよい。
また、終了判定部15は、アーム2等に設けられたスイッチ(不図示)が操作された場合に、初動補助制御演算部14による出力を終了させると判定してもよい。
【0038】
なお、終了判定部15は常時動作する必要はなく、終了判定部15は初動補助制御演算部14が初動補助制御を実施している間だけ動作してもよい。
また、直接教示装置1に終了判定部15が設けられている場合には、アーム静止判定部13は常時動作する必要はなく、アーム静止判定部13は終了判定部15が動作している間はアーム2の静止判定は不要であるため動作を停止してもよい。
【0039】
次いで、駆動制御部16は、従動制御演算部12により出力された従動制御指令値及び初動補助制御演算部14により出力された初動補助制御指令値に基づいて、アーム2を駆動する(ステップST305)。
例えば、従動制御指令値が位置指令であり、初動補助制御指令値が位置指令修正量である場合、駆動制御部16は、まず、位置指令に位置指令修正量を加算して新たな位置指令を算出し、その新たな位置指令に基づく制御演算を行って電流値を算出し、そして、その電流値をモータに出力してアーム2を駆動する。
また、従動制御指令値がモータの電流値であり、初動補助制御指令値もモータの電流値である場合、駆動制御部16は当該2つの電流値を合算した電流値をモータに出力してアーム2を駆動する。
【0040】
なお、従動制御指令値と初動補助制御指令値は、同じ種類の指令値に限らない。例えば、従動制御指令値が位置指令であり、初動補助制御指令値が電流値である場合、駆動制御部16は、まず、位置指令に基づく制御演算を行って電流値を算出し、そして、その電流値と初動補助制御指令値である電流値とを合算して電流値をモータに出力してアーム2を駆動する。
【0041】
次に、
図2に示す実施の形態1における初動補助制御演算部14の動作例について、
図4を参照しながら説明する。
図2に示す実施の形態1における初動補助制御演算部14の動作例では、
図4に示すように、まず、前処理部141は、外力検知部11により検知された外力に対し、外乱除去等の前処理を行う(ステップST401)。前処理部141による前処理により、制御の信頼性が向上する。
【0042】
例えば、前処理部141は、外力検知部11により検知された外力に対し、前処理として不感帯処理を行う。例えば
図5に示すように、不感帯処理では、上記外力のうちの-α以上+α以下の外力を0とするため、外乱を除去できる。この前処理部141による前処理によって、外乱による誤動作を抑制できる。また、前処理部141は、前処理として、外れ値を除去するという処理を行ってもよく、誤動作抑制に有効である。
【0043】
次いで、積分演算部142は、前処理部141による処理後の外力に基づいて積分演算を行う(ステップST402)。ここで、積分演算部142への入力をx(t)とし、積分演算部142からの出力をy(t)とし、積分ゲインをKとすると、次式(1)のような関係が得られる。
y(t)=∫Kx(t)dt(1)
【0044】
なお、積分演算部142を計算器で実装する場合、積分演算を数値積分で実現できる。また、積分演算部142は、式(1)のような厳密な積分演算ではなくてもよく、入力値を積算する演算であれば、小さな外力でも外力を加え続けたらアーム2を駆動できる効果が得られる。
【0045】
また、積分演算部142による積分演算は、アーム2が静止した際又は初動補助制御が終了した際等、初動補助制御を開始する度に適宜リセットする必要がある。すなわち、積分演算部142は、初動補助制御を開始する際には出力が0になるようにする。ここで、積分演算部142が積分演算をリセットしない場合、過去に初動補助制御を行った際に積分した値が初動補助制御の開始時に出力されてしまい、誤動作を起こす可能性がある。
【0046】
次いで、出力制御部143が、アーム静止判定部13によりアーム2が静止していると判定された後に、積分演算部142による演算結果を示すデータの出力を開始する(ステップST403)。すなわち、出力制御部143は、アーム静止判定部13によりアーム2が静止していると判定される前は、積分演算部142による演算結果を示すデータの出力は行わない。これにより、実施の形態1に係る直接教示装置1では、アーム2が静止した後に、初動補助制御の効果が得られる。ここで、出力制御部143が積分演算部142による演算結果を示すデータの出力を開始するタイミングは、アーム静止判定部13によりアーム2が静止していると判定されたのと同時でもよいし、アーム静止判定部13によりアーム2が静止していると判定されてから所定時間経過した後でもよい。
【0047】
更に、より好ましくは、出力制御部143は、終了判定部15により出力の終了が判定された場合に、積分演算部142による演算結果を示すデータの出力を終了する。上述したように、アーム2が動き出した後は適切なタイミングで初動補助制御を終了する方が好ましいため、このようにして出力を終了する方がよい。
【0048】
以上のように、この実施の形態1によれば、直接教示装置1は、ロボットが有するアーム2に加えられた外力を検知する外力検知部11と、外力検知部11により検知された外力に従うアーム2の動きを算出する従動制御演算部12と、アーム2が静止しているかを判定するアーム静止判定部13と、外力検知部11により検知された外力に基づいて積算演算を行う積分演算部142と、アーム静止判定部13によりアーム2が静止していると判定された後に、積分演算部142による演算結果を示すデータの出力を開始する出力制御部143と、従動制御演算部12による算出結果及び出力制御部143による出力に基づいてアーム2を駆動する駆動制御部16とを備えた。これにより、実施の形態1に係る直接教示装置1は、従来構成に対し、アーム2が静止している状態から動かす際の操作感を軽くできる。
【0049】
実施の形態2.
実施の形態2では、初動補助制御演算部14の別の構成例について説明する。
図6は実施の形態2における初動補助制御演算部14の構成例を示す図である。
図6に示す実施の形態2における初動補助制御演算部14は、
図2に示す実施の形態1における初動補助制御演算部14に対し、補正部144を追加している。その他の構成例は
図2に示す実施の形態1における初動補助制御演算部14の構成例と同様であり、同一の符号を付して異なる部分についてのみ説明を行う。
【0050】
補正部144は、外力検知部11により検知された外力のオフセット誤差を補正する。補正部144は、
図7に示すように、推定部1441及び除去部1442を有している。
【0051】
推定部1441は、外力検知部11により検知された外力に基づいて、外力のオフセット誤差を推定する。
除去部1442は、外力検知部11により検知された外力から、推定部1441により推定されたオフセット誤差を差引くことで、外力のオフセット誤差を補正する。
【0052】
なお、積分演算部142は、補正部144による補正後の外力に基づいて積分演算を行う。
【0053】
ここで、外力検知部11として力センサ又はトルクセンサが用いられる場合、アーム2の位置姿勢又は経年劣化等により、外力検知部11により検知された値に誤差が発生する場合がある。また、外力検知部11により検知された値に重力による成分が含まれる場合、その成分を除去する処理が行われるが、その処理に誤差が含まれる場合がある。この場合、これらの誤差がオフセット誤差となって積分演算部142による積分演算で累積されるため、外力が加わっていないにも関わらず初動補助制御指令値が出力されてアーム2が誤動作してしまう可能性がある。そこで、実施の形態2に係る直接教示装置1では、補正部144でオフセット誤差を推定して補正する。これにより、実施の形態2に係る直接教示装置1では、上記のような理由でオフセット誤差が発生しても、外力が加えられない場合にはアーム2を静止した状態に保てる。
【0054】
なおこの際、推定部1441は、まず、外力検知部11により検知された外力に対し、ローパスフィルタを適用することで、又は、ある時間区間における平均値(移動平均)又は中央値を求めることで、オフセット誤差を推定する。その後、除去部1442は、外力検知部11により検知された外力に対し、推定部1441により推定されたオフセット誤差を減算することで、オフセット誤差を除去する。このようにして、補正部144はオフセット誤差を補正する。
【0055】
なお、補正部144は、オフセット誤差の推定において、ローパスフィルタ処理又は移動平均処理等を行うが、その処理内容によっては、アーム2の静止直後は推定値が変動し易い場合がある。そのため、出力制御部143は、上記推定値の変動が収まるまでは初動補助制御指令値の出力を開始しないことが好ましい。ここで、出力を開始しない期間は、ローパスフィルタの時定数又は移動平均の区間長を参考にして決めることができる。また、出力制御部143は、上記推定値の変動を監視し、当該推定値の変動が閾値より小さくなるまでは初動補助制御指令値の出力を開始しないようにしてもよい。
【0056】
更に、補正部144は、ローパスフィルタの時定数或いは平均値又は中央値を求める区間長を可変とすることで、初動補助制御の性能を向上可能である。
【0057】
例えば、まず、補正部144は、アーム静止判定部13によりアーム2が静止していると判定された直後は、時定数又は区間長を短くする。このようにして、補正部144は、できるだけ早く最初のオフセット誤差の推定値を得ることで、積分演算部142でオフセット誤差成分が積算されることを抑制する。更に、出力制御部143は、補正部144により最初にオフセット誤差の推定値が得られた後に積分演算部142による演算結果を示すデータの出力を開始することで、誤動作を抑制できる。その後は、補正部144は、時定数又は区間長を長くする。このようにして、補正部144は、オフセット誤差がゆっくりとドリフトする場合に対応して補正可能となる。
なお、時定数又は区間長が短いままである場合、人が加えた外力成分が補正部144により補正されてしまう場合があるが、補正部144が時定数又は区間長を途中から長くすることで、そのような状況を回避できる。
【0058】
なお
図6では、補正部144が前処理部141の前段に配置された場合を示しており、この構成が性能上最も好ましい。しかしながら、これに限らず、例えば、補正部144は前処理部141と積分演算部142との間に配置されていてもよい。
【0059】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【0060】
1 直接教示装置
2 アーム
11 外力検知部
12 従動制御演算部
13 アーム静止判定部
14 初動補助制御演算部
15 終了判定部
16 駆動制御部
141 前処理部
142 積分演算部(積算演算部)
143 出力制御部
144 補正部
1441 推定部
1442 除去部