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