(57)【要約】      （修正有）【課題】従来構成に対し、アームが静止している状態から動かす際の操作感を軽くする。【解決手段】ロボットが有するアーム２に加えられた外力を検知する外力検知部１１と、外力検知部１１により検知された外力に従うアーム２の動きを算出する従動制御演算部１２と、アーム２が静止しているかを判定するアーム静止判定部１３と、外力検知部１１により検知された外力に基づいて積算演算を行う積分演算部と、アーム静止判定部１３によりアーム２が静止していると判定された後に、積分演算部による演算結果を示すデータの出力を開始する出力制御部と、従動制御演算部１２による算出結果及び出力制御部による出力に基づいてアーム２を駆動する駆動制御部１６とを備えた。【選択図】図１
2020203329.tif 000002
【特許請求の範囲】
【請求項１】
ロボットが有するアームに加えられた外力を検知する外力検知部と、
前記外力検知部により検知された外力に従う前記アームの動きを算出する従動制御演算部と、
前記アームが静止しているかを判定するアーム静止判定部と、
前記外力検知部により検知された外力に基づいて積算演算を行う積算演算部と、
前記アーム静止判定部により前記アームが静止していると判定された後に、前記積算演算部による演算結果を示すデータの出力を開始する出力制御部と、
前記従動制御演算部による算出結果及び前記出力制御部による出力に基づいて前記アームを駆動する駆動制御部と
を備えた直接教示装置。
【請求項２】
前記アームの状態に基づいて、前記出力制御部による出力を終了させるかを判定する終了判定部を備え、
前記出力制御部は、前記終了判定部により出力の終了が判定された場合に、前記積算演算部による演算結果を示すデータの出力を終了する
ことを特徴とする請求項１記載の直接教示装置。
【請求項３】
前記外力検知部により検知された外力のオフセット誤差を補正する補正部を備え、
前記積算演算部は、前記補正部による補正後の外力に基づいて積算演算を行う
ことを特徴とする請求項１又は請求項２記載の直接教示装置。
【請求項４】
ロボットが有するアームに加えられた外力を検知する外力検知ステップと、
前記外力検知ステップにおいて検知した外力に従う前記アームの動きを算出する従動制御演算ステップと、
前記アームが静止しているかを判定するアーム静止判定ステップと、
前記外力検知ステップにおいて検知した外力に基づいて積算演算を行う積算演算ステップと、
前記アーム静止判定ステップにおいて前記アームが静止していると判定した後に、前記積算演算ステップにおける演算結果を示すデータの出力を開始する出力制御ステップと、
前記従動制御演算ステップにおける算出結果及び前記出力制御ステップにおける出力に基づいて前記アームを駆動する駆動制御ステップと
を有する直接教示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ロボットの直接教示を行う直接教示装置及び直接教示方法に関する。
【背景技術】
【０００２】
産業用のロボットでは、ロボットに作業をさせるために、前もって教示（ティーチング）と呼ばれる作業が実施される。このロボットの教示を行う方法の１つとして、直接教示（ダイレクト教示）と呼ばれる方法がある。
【０００３】
例えば特許文献１では、力センサを用いたロボットの直接教示方法が開示されている。また、例えば特許文献２では、トルク検出手段を用いたロボットの直接教示方法が開示されている。これらの特許文献で開示されている直接教示装置の概略構成を図８に示す。
【０００４】
図８に示す直接教示装置１０１では、まず、外力検知部１０１１が、力センサ又はトルクセンサ等を用いて、ロボットが有するアーム２に対して操作者により加えられた外力を検知する。次いで、従動制御演算部１０１２が、外力検知部１０１１により検知された外力に従うアーム２の動きを算出（従動制御演算）する。なお、従動制御演算部１０１２は、従動制御演算において、位置姿勢計測部（不図示）により計測されたアーム２の位置姿勢に関するパラメータを用いる場合もある。なお、アーム２の位置姿勢とは、アーム２の位置及びアーム２の姿勢のうちの少なくとも一方を意味する。また、上記パラメータとしては、アーム２の位置、アーム２の姿勢、又は、アーム２の関節角等が挙げられる。そして、従動制御演算部１０１２は、従動制御演算の結果に基づいて更新した従動制御指令値を駆動制御部１０１３に通知する。次いで、駆動制御部１０１３は、従動制御演算部１０１２により通知された従動制御指令値に従ってアーム２を駆動する。
【０００５】
この一例の動作により、図８に示す直接教示装置１０１は、操作者により加えられた外力に従ってアーム２が動くように制御できる。そして、直接教示装置１０１は、制御によりアーム２の位置及び姿勢が操作者の意図する状態となった場合に、その際の上記パラメータを教示点として記録する。この直接教示装置１０１により記録された教示点はロボットが作業する際に使用される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０５−２０４４４１号公報
【特許文献２】特開平０５−２５００２９号公報
【特許文献３】特開平０９−８５６５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一方、特許文献１，２に開示されるような直接教示装置を用いたロボットは、アームが静止している状態から動かす際の操作感を軽くすることが難しい。静止しているアームには静止摩擦による力又はトルクが働く。そのため、アームを動かすためには、アームを駆動する力又はトルクが、静止摩擦による力又はトルクよりも大きくなる必要がある。特許文献３のように摩擦補償を行う直接教示装置もあるが、このような摩擦補償は動摩擦力については有効ではあるが、静止摩擦に対しては有効ではない。また、従動制御演算のゲインを大きくする等して、同じ力又はトルクに対して出力する指令値を大きくすることは可能だが、ゲインを大きくし過ぎると制御系が不安定になり易い。そのため、ゲインは制御系を不安定にしないような値に押さえざるをえないので、操作感を軽くすることが難しくなる。
【０００８】
この発明は、上記のような課題を解決するためになされたもので、従来構成に対し、アームが静止している状態から動かす際の操作感を軽くすることができる直接教示装置を提供することを目的としている。
【課題を解決するための手段】
【０００９】
この発明に係る直接教示装置は、ロボットが有するアームに加えられた外力を検知する外力検知部と、外力検知部により検知された外力に従うアームの動きを算出する従動制御演算部と、アームが静止しているかを判定するアーム静止判定部と、外力検知部により検知された外力に基づいて積算演算を行う積算演算部と、アーム静止判定部によりアームが静止していると判定された後に、積算演算部による演算結果を示すデータの出力を開始する出力制御部と、従動制御演算部による算出結果及び出力制御部による出力に基づいてアームを駆動する駆動制御部とを備えたことを特徴とする。
【発明の効果】
【００１０】
この発明によれば、上記のように構成したので、従来構成に対し、アームが静止している状態から動かす際の操作感を軽くすることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１に係る直接教示装置の構成例を示す図である。
【図２】実施の形態１における初動補助制御演算部の構成例を示す図である。
【図３】実施の形態１に係る直接教示装置の動作例を示すフローチャートである。
【図４】実施の形態１における初動補助制御演算部の動作例を示すフローチャートである。
【図５】実施の形態１における前処理部による前処理の一例（不感帯処理）を説明する図である。
【図６】実施の形態２における初動補助制御演算部の構成例を示す図である。
【図７】実施の形態２における補正部の構成例を示す図である。
【図８】従来の直接教示装置の構成例を示す図である。
【発明を実施するための形態】
【００１２】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。
実施の形態１．
図１は実施の形態１に係る直接教示装置１の構成例を示す図である。
直接教示装置１は、ロボットの直接教示を行う。直接教示装置１は、図１に示すように、外力検知部１１、従動制御演算部１２、アーム静止判定部１３、初動補助制御演算部１４、終了判定部１５及び駆動制御部１６を備えている。なお、直接教示装置１は、システムＬＳＩ（Ｌａｒｇｅ−Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の処理回路、又はメモリ等に記憶されたプログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等により実現される。
【００１３】
外力検知部１１は、操作者によりアーム２に加えられた外力を検知する。例えば、外力検知部１１は、アーム２の先端に取付けられた力センサを用い、力センサにより計測された力を外力として検知してもよい。また例えば、外力検知部１１は、アーム２のモータ駆動軸に取付けられたトルクセンサを用い、トルクセンサにより計測されたトルクを外力として検知してもよい。また、外力検知部１１は、上記のようにセンサを用いて外力を直接計測するのではなく、アーム２が有するモータの電流又はアーム２の関節角の計測値から間接的に外力を検知する外力オブザーバを用いてもよい。
【００１４】
従動制御演算部１２は、外力検知部１１により検知された外力に従うアーム２の動き（従動制御指令値）を算出する。
【００１５】
なお、外力検知部１１及び従動制御演算部１２は、従来技術と同様であり、公知技術である。
【００１６】
アーム静止判定部１３は、アーム２が静止しているかを判定する。
【００１７】
初動補助制御演算部１４は、外力検知部１１により検知された外力に基づいて初動補助制御指令値を算出し、アーム静止判定部１３によりアーム２が静止していると判定された後に初動補助制御指令値を示すデータの出力を開始する。初動補助制御指令値は、アーム２が静止している状態から操作者がアーム２を動かす際にその操作感を軽くするための指令値である。また、初動補助制御演算部１４は、終了判定部１５により出力の終了が判定された場合に、初動補助制御指令値を示すデータの出力を終了する。初動補助制御演算部１４の詳細構成については後述する。
【００１８】
終了判定部１５は、アーム２の状態に基づいて、初動補助制御演算部１４による出力を終了させるかを判定する。
なお図１では、終了判定部１５が直接教示装置１に設けられた場合を示している。しかしながら、終了判定部１５は直接教示装置１に必須の構成ではなく、終了判定部１５は直接教示装置１に設けられていなくてもよい。
【００１９】
駆動制御部１６は、従動制御演算部１２による算出結果（従動制御指令値）及び初動補助制御演算部１４による出力結果（初動補助制御指令値）に基づいて、アーム２を駆動する。
【００２０】
次に、図１に示す実施の形態１における初動補助制御演算部１４の構成例について、図２を参照しながら説明する。
初動補助制御演算部１４は、図２に示すように、前処理部１４１、積分演算部（積算演算部）１４２及び出力制御部１４３を有している。
【００２１】
前処理部１４１は、外力検知部１１により検知された外力を示すデータに対し、外乱除去等のデータ処理（前処理）を行う。
なお図２では、前処理部１４１が初動補助制御演算部１４に設けられた場合を示している。しかしながら、前処理部１４１は初動補助制御演算部１４に必須の構成ではなく、前処理部１４１は初動補助制御演算部１４に設けられていなくてもよい。
【００２２】
積分演算部１４２は、外力検知部１１により検知された外力に基づいて積分演算を行うことで、初動補助制御指令値を得る。積分演算部１４２は、例えば、積分演算として、外力に積分ゲインを掛けた上で積分を行う。なお、初動補助制御演算部１４に前処理部１４１が設けられている場合には、積分演算部１４２は、前処理部１４１による前処理後の外力を用いて積分演算を行う。
【００２３】
出力制御部１４３は、アーム静止判定部１３によりアーム２が静止していると判定された後に、積分演算部１４２による演算結果（初動補助制御指令値）を示すデータの出力を開始する。また、直接教示装置１に終了判定部１５が設けられている場合には、出力制御部１４３は、終了判定部１５により出力の終了が判定された場合に、積分演算部１４２による演算結果を示すデータの出力を終了する。
【００２４】
次に、図１，２に示す実施の形態１に係る直接教示装置１の動作例について、図３を参照しながら説明する。
ここで、人が直接教示を行う場合、静止しているアーム２を動かす際にアーム２に対して継続して力を加えるのが通常である。そこで、図１，２に示す実施の形態１に係る直接教示装置１では、アーム２に対して加えられた外力を積分し、その積分結果に基づいてアーム２を駆動する。これにより、図１，２に示す実施の形態１に係る直接教示装置１では、アーム２に加えられた力が小さくてもその力が継続的であれば積分によって累積されるため、駆動制御部１６への指令値を大きくでき、アーム２を動かすことができる。その結果、実施の形態１に係る直接教示装置１では、ゲインを高くしなくても操作感が軽くなると考えられる。
【００２５】
図１，２に示す実施の形態１に係る直接教示装置１の動作例では、図３に示すように、まず、外力検知部１１は、操作者によりアーム２に加えられた外力を検知する（ステップＳＴ３０１）。なお、外力検知部１１により検知される外力は、センサの構造等によっては、操作者によりアーム２に加えられた外力だけではなく、重力に起因する成分が重畳されている場合がある。そこで、このような場合には、外力検知部１１は、重力に起因する成分を推定し、検知した外力から推定した成分を差引くことで、外力成分のみを算出するとよい。これは重力補償と呼ばれる公知技術であり、特許文献４等のように複数の文献で開示されている。
【特許文献４】特開平０１−０６６７１５号公報
【００２６】
次いで、従動制御演算部１２は、外力検知部１１により検知された外力に従うアーム２の動き（従動制御指令値）を算出する（ステップＳＴ３０２）。この際、従動制御演算部１２は、まず、外力検知部１１により検知された外力の向き及び大きさから、操作者がどのようにアーム２を動かそうとしているかを判定する。そして、従動制御演算部１２は、その判定結果に基づいて、アーム２を動かすための従動制御指令値を演算によって決定する。この従動制御指令値は、アーム２の位置、移動量（位置の差分）、速度、加速度、アーム２の各関節の角速度又は角加速度、各関節に与えるトルク、又は、各関節のモータを駆動する電流等、アーム２を動かすために利用可能な物理量であればよい。なお、従動制御演算部１２による従動制御演算方法は、特許文献２等で開示されており、様々な方式が開発されているためその詳細な記述は省略する。
【００２７】
また、アーム静止判定部１３は、アーム２が静止しているかを判定する（ステップＳＴ３０３）。
【００２８】
例えば、直接教示装置１がアーム２の位置姿勢を計測する位置姿勢計測部（不図示）を有する場合、アーム静止判定部１３は、位置姿勢計測部による計測結果の変化量の絶対値が閾値以下の状態が所定時間以上継続した場合に、アーム２が静止していると判定してもよい。
また、直接教示装置１がアーム２の先端の速度を計測する速度計測部（不図示）を有する場合、アーム静止判定部１３は、速度計測部による計測結果の絶対値が閾値以下になった場合に、アーム２が静止していると判定してもよい。
【００２９】
また、アーム静止判定部１３は、アーム２の各関節の角度又は角速度に基づいて、アーム２が静止しているかを判定してもよい。
また、アーム静止判定部１３は、アーム２の位置姿勢、速度、アーム２の各関節の角度又は角速度、又は、これらに相当する物理量を直接計測するのではなく、何らかの演算を用いて他の物理量から間接的に推定し、その推定結果に基づいてアーム２が静止しているかを判定してもよい。
【００３０】
なお、アーム静止判定部１３による静止判定は、アーム２全体に対して行ってもよいし、関節毎に行ってもよいし、その両方に対して行ってもよい。アーム静止判定部１３が関節毎に静止判定を行った場合、初動補助制御演算部１４は関節毎に初動補助制御を行うことが可能となる。
【００３１】
更に、アーム静止判定部１３は、外力検知部１１により検知された外力を併用して、アーム２が静止しているかを判定してもよい。例えば、アーム静止判定部１３は、速度が十分小さくなり且つ外力が所定値以下である場合にのみ、アーム２が静止していると判定する。これにより、実施の形態１に係る直接教示装置１では、アーム２に大きな外力が加わった状態で静止した場合には、初動補助制御が有効とならない。
【００３２】
なお、アーム静止判定部１３で用いられるデータは、誤判定を抑制するため、適宜必要な信号処理が行われてもよい。例えば、アーム静止判定部１３は、ノイズによる誤判定を抑制するため、ローパスフィルタ又は移動平均によるデータ処理を適用してもよい。
【００３３】
次いで、初動補助制御演算部１４は、外力検知部１１により検知された外力に基づいて初動補助制御指令値を算出し、アーム静止判定部１３によりアーム２が静止していると判定された後に初動補助制御指令値を示すデータの出力を開始する（ステップＳＴ３０４）。実施の形態１に係る直接教示装置１では、初動補助制御演算部１４による処理により、アーム２が静止している状態において小さな力でもアーム２が動くようになる。
【００３４】
また、終了判定部１５は、アーム２の状態に基づいて、初動補助制御演算部１４による出力を終了させるかを判定する。そして、初動補助制御演算部１４は、終了判定部１５により出力の終了が判定された場合に初動補助制御指令値の出力を終了する。
【００３５】
ここで、初動補助制御演算部１４が初動補助制御を終了しない場合、初動補助制御の影響で通常の直接教示の操作感又は制御系の振舞が劣化する可能性がある。このような状況を避けるため、直接教示装置１は、終了判定部１５を用いて、適切なタイミングで初動補助制御を終了させることが好ましい。
【００３６】
終了判定部１５による判定方法としては、最も好ましい例としては、アーム２の速度の絶対値が閾値を超えた場合に初動補助制御演算部１４による出力を終了させると判定する。すなわち、終了判定部１５は、アーム２が静止状態から移動している状態に遷移した場合に、初動補助制御演算部１４による出力を終了させると判定する。
【００３７】
また、終了判定部１５は、初動補助制御を開始した際のアーム２の位置を記録し、その位置から所定距離だけアーム２が移動した場合に、初動補助制御演算部１４による出力を終了させると判定してもよい。
また、終了判定部１５は、外力検知部１１により検知された力又はトルクが小さくなった場合に、初動補助制御演算部１４による出力を終了させると判定してもよい。これは、アーム２が外力の方向に動き出すことにより、外力検知部１１により検知される外力が小さくなることを利用する方法である。
また、終了判定部１５は、初動補助制御を開始してから所定時間経過した場合に初動補助制御演算部１４による出力を終了させると判定してもよい。
また、終了判定部１５は、アーム２等に設けられたスイッチ（不図示）が操作された場合に、初動補助制御演算部１４による出力を終了させると判定してもよい。
【００３８】
なお、終了判定部１５は常時動作する必要はなく、終了判定部１５は初動補助制御演算部１４が初動補助制御を実施している間だけ動作してもよい。
また、直接教示装置１に終了判定部１５が設けられている場合には、アーム静止判定部１３は常時動作する必要はなく、アーム静止判定部１３は終了判定部１５が動作している間はアーム２の静止判定は不要であるため動作を停止してもよい。
【００３９】
次いで、駆動制御部１６は、従動制御演算部１２により出力された従動制御指令値及び初動補助制御演算部１４により出力された初動補助制御指令値に基づいて、アーム２を駆動する（ステップＳＴ３０５）。
例えば、従動制御指令値が位置指令であり、初動補助制御指令値が位置指令修正量である場合、駆動制御部１６は、まず、位置指令に位置指令修正量を加算して新たな位置指令を算出し、その新たな位置指令に基づく制御演算を行って電流値を算出し、そして、その電流値をモータに出力してアーム２を駆動する。
また、従動制御指令値がモータの電流値であり、初動補助制御指令値もモータの電流値である場合、駆動制御部１６は当該２つの電流値を合算した電流値をモータに出力してアーム２を駆動する。
【００４０】
なお、従動制御指令値と初動補助制御指令値は、同じ種類の指令値に限らない。例えば、従動制御指令値が位置指令であり、初動補助制御指令値が電流値である場合、駆動制御部１６は、まず、位置指令に基づく制御演算を行って電流値を算出し、そして、その電流値と初動補助制御指令値である電流値とを合算して電流値をモータに出力してアーム２を駆動する。
【００４１】
次に、図２に示す実施の形態１における初動補助制御演算部１４の動作例について、図４を参照しながら説明する。
図２に示す実施の形態１における初動補助制御演算部１４の動作例では、図４に示すように、まず、前処理部１４１は、外力検知部１１により検知された外力に対し、外乱除去等の前処理を行う（ステップＳＴ４０１）。前処理部１４１による前処理により、制御の信頼性が向上する。
【００４２】
例えば、前処理部１４１は、外力検知部１１により検知された外力に対し、前処理として不感帯処理を行う。例えば図５に示すように、不感帯処理では、上記外力のうちの−α以上＋α以下の外力を０とするため、外乱を除去できる。この前処理部１４１による前処理によって、外乱による誤動作を抑制できる。また、前処理部１４１は、前処理として、外れ値を除去するという処理を行ってもよく、誤動作抑制に有効である。
【００４３】
次いで、積分演算部１４２は、前処理部１４１による処理後の外力に基づいて積分演算を行う（ステップＳＴ４０２）。ここで、積分演算部１４２への入力をｘ（ｔ）とし、積分演算部１４２からの出力をｙ（ｔ）とし、積分ゲインをＫとすると、次式（１）のような関係が得られる。
ｙ（ｔ）＝∫Ｋｘ（ｔ）ｄｔ（１）
【００４４】
なお、積分演算部１４２を計算器で実装する場合、積分演算を数値積分で実現できる。また、積分演算部１４２は、式（１）のような厳密な積分演算ではなくてもよく、入力値を積算する演算であれば、小さな外力でも外力を加え続けたらアーム２を駆動できる効果が得られる。
【００４５】
また、積分演算部１４２による積分演算は、アーム２が静止した際又は初動補助制御が終了した際等、初動補助制御を開始する度に適宜リセットする必要がある。すなわち、積分演算部１４２は、初動補助制御を開始する際には出力が０になるようにする。ここで、積分演算部１４２が積分演算をリセットしない場合、過去に初動補助制御を行った際に積分した値が初動補助制御の開始時に出力されてしまい、誤動作を起こす可能性がある。
【００４６】
次いで、出力制御部１４３が、アーム静止判定部１３によりアーム２が静止していると判定された後に、積分演算部１４２による演算結果を示すデータの出力を開始する（ステップＳＴ４０３）。すなわち、出力制御部１４３は、アーム静止判定部１３によりアーム２が静止していると判定される前は、積分演算部１４２による演算結果を示すデータの出力は行わない。これにより、実施の形態１に係る直接教示装置１では、アーム２が静止した後に、初動補助制御の効果が得られる。ここで、出力制御部１４３が積分演算部１４２による演算結果を示すデータの出力を開始するタイミングは、アーム静止判定部１３によりアーム２が静止していると判定されたのと同時でもよいし、アーム静止判定部１３によりアーム２が静止していると判定されてから所定時間経過した後でもよい。
【００４７】
更に、より好ましくは、出力制御部１４３は、終了判定部１５により出力の終了が判定された場合に、積分演算部１４２による演算結果を示すデータの出力を終了する。上述したように、アーム２が動き出した後は適切なタイミングで初動補助制御を終了する方が好ましいため、このようにして出力を終了する方がよい。
【００４８】
以上のように、この実施の形態１によれば、直接教示装置１は、ロボットが有するアーム２に加えられた外力を検知する外力検知部１１と、外力検知部１１により検知された外力に従うアーム２の動きを算出する従動制御演算部１２と、アーム２が静止しているかを判定するアーム静止判定部１３と、外力検知部１１により検知された外力に基づいて積算演算を行う積分演算部１４２と、アーム静止判定部１３によりアーム２が静止していると判定された後に、積分演算部１４２による演算結果を示すデータの出力を開始する出力制御部１４３と、従動制御演算部１２による算出結果及び出力制御部１４３による出力に基づいてアーム２を駆動する駆動制御部１６とを備えた。これにより、実施の形態１に係る直接教示装置１は、従来構成に対し、アーム２が静止している状態から動かす際の操作感を軽くできる。
【００４９】
実施の形態２．
実施の形態２では、初動補助制御演算部１４の別の構成例について説明する。
図６は実施の形態２における初動補助制御演算部１４の構成例を示す図である。図６に示す実施の形態２における初動補助制御演算部１４は、図２に示す実施の形態１における初動補助制御演算部１４に対し、補正部１４４を追加している。その他の構成例は図２に示す実施の形態１における初動補助制御演算部１４の構成例と同様であり、同一の符号を付して異なる部分についてのみ説明を行う。
【００５０】
補正部１４４は、外力検知部１１により検知された外力のオフセット誤差を補正する。補正部１４４は、図７に示すように、推定部１４４１及び除去部１４４２を有している。
【００５１】
推定部１４４１は、外力検知部１１により検知された外力に基づいて、外力のオフセット誤差を推定する。
除去部１４４２は、外力検知部１１により検知された外力から、推定部１４４１により推定されたオフセット誤差を差引くことで、外力のオフセット誤差を補正する。
【００５２】
なお、積分演算部１４２は、補正部１４４による補正後の外力に基づいて積分演算を行う。
【００５３】
ここで、外力検知部１１として力センサ又はトルクセンサが用いられる場合、アーム２の位置姿勢又は経年劣化等により、外力検知部１１により検知された値に誤差が発生する場合がある。また、外力検知部１１により検知された値に重力による成分が含まれる場合、その成分を除去する処理が行われるが、その処理に誤差が含まれる場合がある。この場合、これらの誤差がオフセット誤差となって積分演算部１４２による積分演算で累積されるため、外力が加わっていないにも関わらず初動補助制御指令値が出力されてアーム２が誤動作してしまう可能性がある。そこで、実施の形態２に係る直接教示装置１では、補正部１４４でオフセット誤差を推定して補正する。これにより、実施の形態２に係る直接教示装置１では、上記のような理由でオフセット誤差が発生しても、外力が加えられない場合にはアーム２を静止した状態に保てる。
【００５４】
なおこの際、推定部１４４１は、まず、外力検知部１１により検知された外力に対し、ローパスフィルタを適用することで、又は、ある時間区間における平均値（移動平均）又は中央値を求めることで、オフセット誤差を推定する。その後、除去部１４４２は、外力検知部１１により検知された外力に対し、推定部１４４１により推定されたオフセット誤差を減算することで、オフセット誤差を除去する。このようにして、補正部１４４はオフセット誤差を補正する。
【００５５】
なお、補正部１４４は、オフセット誤差の推定において、ローパスフィルタ処理又は移動平均処理等を行うが、その処理内容によっては、アーム２の静止直後は推定値が変動し易い場合がある。そのため、出力制御部１４３は、上記推定値の変動が収まるまでは初動補助制御指令値の出力を開始しないことが好ましい。ここで、出力を開始しない期間は、ローパスフィルタの時定数又は移動平均の区間長を参考にして決めることができる。また、出力制御部１４３は、上記推定値の変動を監視し、当該推定値の変動が閾値より小さくなるまでは初動補助制御指令値の出力を開始しないようにしてもよい。
【００５６】
更に、補正部１４４は、ローパスフィルタの時定数或いは平均値又は中央値を求める区間長を可変とすることで、初動補助制御の性能を向上可能である。
【００５７】
例えば、まず、補正部１４４は、アーム静止判定部１３によりアーム２が静止していると判定された直後は、時定数又は区間長を短くする。このようにして、補正部１４４は、できるだけ早く最初のオフセット誤差の推定値を得ることで、積分演算部１４２でオフセット誤差成分が積算されることを抑制する。更に、出力制御部１４３は、補正部１４４により最初にオフセット誤差の推定値が得られた後に積分演算部１４２による演算結果を示すデータの出力を開始することで、誤動作を抑制できる。その後は、補正部１４４は、時定数又は区間長を長くする。このようにして、補正部１４４は、オフセット誤差がゆっくりとドリフトする場合に対応して補正可能となる。
なお、時定数又は区間長が短いままである場合、人が加えた外力成分が補正部１４４により補正されてしまう場合があるが、補正部１４４が時定数又は区間長を途中から長くすることで、そのような状況を回避できる。
【００５８】
なお図６では、補正部１４４が前処理部１４１の前段に配置された場合を示しており、この構成が性能上最も好ましい。しかしながら、これに限らず、例えば、補正部１４４は前処理部１４１と積分演算部１４２との間に配置されていてもよい。
【００５９】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合わせ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００６０】
１  直接教示装置
２  アーム
１１  外力検知部
１２  従動制御演算部
１３  アーム静止判定部
１４  初動補助制御演算部
１５  終了判定部
１６  駆動制御部
１４１  前処理部
１４２  積分演算部（積算演算部）
１４３  出力制御部
１４４  補正部
１４４１  推定部
１４４２  除去部
【図１】
2020203329.tif 000003
【図２】
2020203329.tif 000004
【図３】
2020203329.tif 000005
【図４】
2020203329.tif 000006
【図５】
2020203329.tif 000007
【図６】
2020203329.tif 000008
【図７】
2020203329.tif 000009
【図８】
2020203329.tif 000010