(57)【要約】【課題】  動作対象ごとに剛性を可変することができる装置、方法およびプログラムを提供する。【解決手段】  この装置は、第１の駆動手段と第２の駆動手段とを駆動して動作対象を動作させる駆動装置であり、動作対象の動作を開始させる際に、第１の駆動手段と第２の駆動手段のトルク伝達方向が、動作対象を駆動する最終段のギアに対して、反対の方向となる負荷の大きさを設定する設定手段と、設定した負荷に基づき、第１の駆動手段と第２の駆動手段の駆動を制御する制御手段とを含み、設定手段が、動作対象の動作が切り替わる際に、負荷を変更する。【選択図】  図１
2019095021.tif 000002
【特許請求の範囲】
【請求項１】
第１の駆動手段と第２の駆動手段とを駆動して動作対象を動作させる駆動装置であって、
前記動作対象の動作を開始させる際に、前記第１の駆動手段と前記第２の駆動手段のトルク伝達方向が、前記動作対象を駆動する最終段のギアに対して、反対の方向となる負荷の大きさを設定する設定手段と、
前記設定手段が設定した前記負荷に基づき、前記第１の駆動手段と前記第２の駆動手段の駆動を制御する制御手段と
を含み、
前記設定手段は、前記動作対象の動作が切り替わる際に、前記負荷を変更する、駆動装置。
【請求項２】
前記第１の駆動手段と前記第２の駆動手段の駆動状況を検出する検出手段を含み、
前記制御手段は、前記検出手段の検出結果に基づき、前記動作対象の動作の切り替わりを確認し、前記負荷を変更する、請求項１に記載の駆動装置。
【請求項３】
前記動作対象は、部品を挿入元から抜き、移動し、挿入先に挿入する動作を繰り返す機械であり、
前記設定手段は、前記部品を抜く動作から移動動作へ切り替わる際に、前記抜く動作に対して設定した負荷より高い負荷を設定し、前記移動動作から挿入動作へ切り替わる際に、前記移動動作に対して設定した負荷より低い負荷を設定する、請求項１または２に記載の駆動装置。
【請求項４】
第１の駆動手段と第２の駆動手段とを駆動して動作対象を動作させる駆動装置により実行される制御方法であって、
前記動作対象の動作を開始させる際に、前記第１の駆動手段と前記第２の駆動手段のトルク伝達方向が、前記動作対象を駆動する最終段のギアに対して、反対の方向となる負荷の大きさを設定するステップと、
設定された前記負荷に基づき、前記第１の駆動手段と前記第２の駆動手段の駆動を制御するステップと、
前記動作対象の動作が切り替わる際に、前記負荷を変更するステップと
を含む、制御方法。
【請求項５】
前記第１の駆動手段と前記第２の駆動手段の駆動状況を検出するステップと、
検出された前記駆動状況に基づき、前記動作対象の動作の切り替わりを確認するステップと
を含む、請求項４に記載の制御方法。
【請求項６】
請求項４または５のいずれか１項に記載の制御方法に含まれる各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、駆動手段を駆動して動作対象を動作させる駆動装置、その駆動を制御する方法およびその制御をコンピュータに実行させるためのプログラムに関する。
【背景技術】
【０００２】
電子機器や自動車等の生産ラインでは、ロボットアーム等を使用して組立作業が行われている。ロボットアームは、モータ等の駆動手段により駆動され、加工された部品（ワーク）を抜き、移動し、挿入する等の所定の動作を行う。
【０００３】
モータは、歯車（ギア）を有し、ギアには、ギアを滑らかに回転させるため、歯同士を噛み合わせたときの歯間の遊びである、バックラッシュと呼ばれる隙間が設けられる。バックラッシュは、その隙間によって歯の移動を可能にするため、駆動対象の位置決めの精度に影響を与え、位置ずれを生じさせる。
【０００４】
そこで、位置ずれを最小限のものとするべく、一方のモータの歯車を正回転方向に回転させて可動部材側歯車の歯と噛み合わせるとともに、他方のモータの歯車を負回転方向に回転させて可動部材側歯車の歯と噛み合わせ、バックラッシュの発生を防止する技術が提案されている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、ロボットアームは、動作速度の向上や位置精度を確保するために剛性が高く、例えばワークを抜く動作において、ワークが挿入元の被挿入物に接触したり、アーム自体が被挿入物に接触したりして、力が加わると、ワークが破損したり、被挿入物やアームが損傷したりするおそれがある。これを防止するため、作業に応じて余分な力を逃がすようにコンプライアンス性を持たせることが必要であるが、上記の従来技術では、モータの駆動によりコンプライアンス性を変えることについて触れられていない。
【０００６】
本発明は、上記の問題に鑑みなされたものであり、剛性を可変することでコンプライアンス性を可変できる装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、発明の一実施形態では、第１の駆動手段と第２の駆動手段とを駆動して動作対象を動作させる駆動装置であって、
動作対象の動作を開始させる際に、第１の駆動手段と第２の駆動手段のトルク伝達方向が、動作対象を駆動する最終段のギアに対して、反対の方向となる負荷の大きさを設定する設定手段と、
設定手段が設定した負荷に基づき、第１の駆動手段と第２の駆動手段の駆動を制御する制御手段と
を含み、
設定手段は、動作対象の動作が切り替わる際に、負荷を変更する、駆動装置を提供する。
【発明の効果】
【０００８】
本発明によれば、動作対象ごとに剛性を可変することができる。
【図面の簡単な説明】
【０００９】
【図１】駆動装置の構成例を示した図。
【図２】出力軸を駆動する方法について説明する図。
【図３】Offset Converterにより実行される処理の第１の例を説明する図。
【図４】Offset Converterにより実行される処理の第２の例を説明する図。
【図５】駆動装置の一例として多段減速機を示した図。
【図６】オフセット電圧と剛性との関係を示した図。
【図７】剛性を決める要素について説明する図。
【図８】駆動装置により実行される制御の一例を示したフローチャート。
【図９】モータの駆動制御の一例を示したフローチャート。
【図１０】駆動装置による制御の第１の例について説明する図。
【図１１】駆動装置による制御の第２の例について説明する図。
【発明を実施するための形態】
【００１０】
図１は、駆動手段を駆動して動作対象を動作させる駆動装置の構成例を示した図である。駆動装置は、第１の駆動手段としてモータ１０と、第２の駆動手段としてモータ１１とを含み、モータ１０およびモータ１１が動作対象となる、例えばロボットアームの１つの出力軸に動力を与え、出力軸を回転させ、駆動する。出力軸の駆動により、アームの移動等を実現する。以下、駆動手段をモータとし、動作対象を出力軸として説明するが、これに限られるものではない。
【００１１】
駆動装置は、モータ１０、１１のモータ軸に取り付けられる２つの測定手段としてのエンコーダ１２ａ、１２ｂを含み、検出手段として機能する検出器１２と、モータ１０、１１を制御する制御手段として機能する制御コントローラ１３と、設定手段として機能するOffset Converter１４とを含む。
【００１２】
検出器１２は、エンコーダ１２ａ、１２ｂにより、モータ軸の位置、もしくは速度、またはその両方を検出し、検出した情報を検出結果として制御コントローラ１３に返す（フィードバックする）。検出結果は、モータ軸の駆動状況を示す情報である。なお、検出器１２に含まれる測定手段としては、位置等を測定することができれば、エンコーダに限られるものではない。また、フィードバックする検出値として、対象に応じてエンコーダ１２ａ、１２ｂの平均値、もしくはエンコーダ１２ａ、１２ｂのどちらかの値を選択することができる。
【００１３】
制御コントローラ１３は、検出器１２から検出結果を取得し、その検出結果が目標値（ターゲット）に近づくように、モータ１０、１１の駆動を制御する。ターゲットは、ターゲット生成装置により、予め設定された動作経路に沿って出力軸が駆動するように一定の周期毎に生成され、制御コントローラ１３に入力される。このため、制御コントローラ１３は、その周期毎にモータの駆動量を計算し、その駆動量を駆動させるための駆動電圧を出力することができる。ここでは、駆動電圧として説明するが、これに限られるものではなく、駆動電流等であってもよい。
【００１４】
位置制御を行う場合、制御コントローラ１３には、目標位置がターゲットとして入力される。目標位置は、上記の動作経路上の位置であって、一周期後に到達すべき移動先の位置として設定される。
【００１５】
速度制御としては、一般に台形速度制御が採用される。台形速度制御を行う場合、制御コントローラ１３には、出力軸を駆動する際、決められた加速度を単位時間で積分した値が速度として目標速度になるまで入力され、目標速度に達した後は、目標速度がターゲットとして入力される。そして、停止する際は、減速度を単位時間で積分した値が速度として速度０になるまでターゲットとして入力される。この速度制御は、モータで風車を回し続ける等、目標位置を設定することができない場合に適用される。
【００１６】
位置・速度制御を行う場合、制御コントローラ１３には、目標位置とともに、上記の単位時間で積分した値や目標速度が入力される。この制御は、目標位置に速度を変化させて効率良く移動させる場合に適用される。
【００１７】
制御コントローラ１３は、検出結果とターゲットとして入力される位置、もしくは速度、またはその両方との差を偏差として計算する偏差計算部１５と、計算された偏差に応じた駆動量を計算し、その駆動量に対応する駆動電圧を出力するPID制御部１６とを含んで構成される。
【００１８】
PID制御部１６は、比例制御において偏差に比例した駆動量に対応する駆動電圧を出力し、微分制御において偏差の微分に比例した駆動量に対応する駆動電圧を出力し、積分制御において偏差の積分に比例した駆動量に対応する駆動電圧を出力し、Offset Converter１４に対してそれら駆動電圧の和を出力する。PID制御については既に広く知られた制御であるので、ここでは詳述しない。ここではPID制御部１６を制御器として採用したが、制御器としてPIDに限定されるものではない。
【００１９】
制御コントローラ１３は、上記の各機能部を実現するために、プロセッサおよびメモリを備えることができる。メモリは、プロセッサに対して、ターゲットの入力を受け付け、検出結果を取得し、偏差を計算し、偏差に応じた駆動量に対応する駆動電圧を出力する処理を実行させるためのプログラムを格納することができる。
【００２０】
ここで、図２を参照して、モータ１０、１１を使用した出力軸２０の駆動方法について説明する。モータ１０、１１は、歯車（ギア）を有し、出力軸２０も、ギアを有する。このように２つのモータで１つの出力軸を駆動する方式は、ダブルモータ方式と呼ばれる。
【００２１】
モータ１０、１１のギアの歯と、出力軸２０のギアの歯とが噛み合うことで、モータ１０、１１で発生した動力が出力軸２０にトルクとして伝達され、出力軸２０が一定の方向に回転する。これにより、例えばワークを把持するアームの先端部を水平方向に移動させることができる。
【００２２】
ギアには、ギアを滑らかに回転させるため、バックラッシュが設けられる。バックラッシュは、動作対象の位置決めの精度に影響を与え、位置ずれを生じさせる。このため、バックラッシュを減らす制御（バックラッシュレス制御）が必要となる。
【００２３】
バックラッシュレス制御は、静止時は図２（ａ）に示すように、モータ１０、１１の一方のギアの回転方向を逆に設定することで、逆向きのトルクがかかるようにして、モータ１０、１１のギアの歯と、出力軸２０のギアの歯とをしっかり噛み合わせ、ガタが生じないようにする制御である。
【００２４】
回転時は、例えばモータ１０の回転方向に回転する場合を想定すると、モータ１０の出力がモータ１１の出力を上回るような駆動電圧を設定することにより、モータ１０、１１ともに、モータ１０の回転方向に回転するが、静止時と同様に出力軸２０のギアの歯としっかり噛み合わせ、ガタが生じないことには変わりない。
【００２５】
図２（ａ）に示す制御を行うことでバックラッシュを減らすことができる。ギアの歯同士が即座にしっかり噛み合った状態になるからである。しかしながら、この制御では、出力軸２０に対して、モータ１０とモータ１１の差分のトルクしかかけることができない。
【００２６】
そこで、図２（ｂ）に示すように、モータ１０の回転方向を、モータ１１とは逆の方向から当該モータ１１と同じ方向に変える。これにより、出力軸２０に対して、上記の差分を超えるトルクをかけることが可能となる。
【００２７】
このような制御を実現するために、図１に示すように、Offset Converter１４が設けられる。Offset Converter１４は、ルックアップテーブルや演算によりモータ毎に予め決められた異なる写像パターンをモータ１０、１１のそれぞれに出力する。具体的には、Offset Converter１４は、入力または予め設定されたパラメータを基に制御コントローラ１３により入力された入力値（drv_in）に対応する各出力値（drv_out）を決定し、決定した各出力値をモータ１０、１１のそれぞれに出力して設定する。
【００２８】
すなわち、Offset Converter１４は、上記のバックラッシュを減らすために、入力値に応じて、モータ１０に逆向きのトルクをかけるための電圧を出力値として出力して設定し、モータ１１に出力軸を駆動するための駆動電圧を出力値として出力して設定する。また、Offset Converter１４は、入力値に応じて、モータ１０に上記の逆向きのトルクをかけるための電圧からモータ１１と同じ方向に回転させるための駆動電圧を出力して設定する。
【００２９】
パラメータは、その都度入力されてもよいし、Offset Converter１４に予め設定され、Offset Converter１４が保持してもよい。パラメータとしては、drvlimit（PWMリミット）、offset（PWMオフセット量）、lim_mod（設定なし、または設定あり）、offset_sel（オフセットパターン切替）、offset_on（オフセット制御有無設定）等が挙げられる。
【００３０】
PWM（パルス幅変調）は、周波数は変えずにパルスの幅のみを変え、電流や電圧を制御する方式である。drvlimitは、モータの出力の限界値（リミット）であり、lim_modの設定なしは、drvlimitをリミットとすることを示し、設定ありは、drvlimit以上で協調動作することを示す。協調動作は、同一の駆動電圧を与え、モータ１０、１１を同じ回転方向に同じ回転速度で回転させることを意味する。
【００３１】
offsetは、出力軸の駆動を開始させる際に、逆向きのトルクをかけるために設定される電圧等で、その電圧は、オフセット電圧と呼ばれる。offset_onは、出力軸の駆動を開始させる際に、一方のモータにオフセット電圧を加えながら、他方のモータに駆動電圧を与えて出力軸を駆動する制御を行うか否かを設定するもので、制御有りが１で、制御無しが０とされる。制御なしに設定した場合はdrv_out=drv_inとなり、制御器の出力をそのままモータ駆動に利用する。offset_selは、オフセット制御時のモータのdrv_outの設定を選択するもので、offset_sel=１のdrv_outと、offset_sel=０のdrv_outの出力をそれぞれのモータ駆動に利用する。０、１が対に設定される。
【００３２】
Offset Converter１４は、出力軸の駆動を開始させる際に、パラメータでoffset_on=１に設定されている場合、パラメータのoffsetを基にオフセット電圧を設定する。出力軸の駆動を開始した後、Offset Converter１４は、検出器１２により検出された検出結果から得られるモータ軸の動作状況、すなわち位置や速度等に応じて、制御コントローラ１３から与えられる制御値drv_inを入力値として対応する各出力値を出力し、各モータ１０、１１に設定する。
【００３３】
また、制御コントローラ１３が検出器１２により検出された検出結果に基づき動作の切り替わりを確認したとき、制御コントローラ１３またはOffset Converter１４が出力軸２０を駆動する最終段のギアに対して、反対方向となるオフセット電圧の大きさを変える。
【００３４】
動作の切り替わりは、検出結果としての位置等が予め決められた動作の完了位置等に達したか否かにより確認することができる。動作完了位置等に達したか否かは、偏差がなくなったかどうかにより判断することができる。この判断においては、一定の誤差範囲を考慮し、偏差が一定の範囲内であるかどうかを判断基準とすることができる。
【００３５】
Offset Converter１４も、制御コントローラ１３と同様、プロセッサとメモリを備え、メモリが、プロセッサに対して、上記の各モータ１０、１１に各出力値を出力する処理を実行させるためのプログラムを格納することができる。
【００３６】
図３を参照して、Offset Converter１４により実行される処理を詳細に説明する。図３は、パラメータのlim_modが設定なし、offset_on=１でオフセット制御する場合のdrv_inとdrv_outとの関係を示した図である。この設定は、drvlimitをモータ最大PWM付近に設定する場合に使用される。
【００３７】
図３中、縦軸は、Offset Converter１４の出力値（drv_out）であり、横軸は、Offset Converter１４の入力値（drv_in）である。
【００３８】
offset_on=０でオフセット制御しない場合は、破線で示されるように、モータ１０、１１を同一PWMで制御し、同一の出力値をモータ１０、１１に対して出力する。すなわち、制御コントローラ１３からの入力値に応じて、モータ１０、１１に同一の駆動電圧を与えて、モータ１０、１１を同じ方向に同じ回転速度で回転させ、出力軸２０に対して同一のトルクをかける。このことから、オフセット制御しない場合、駆動電圧の分配が均等となる。
【００３９】
一方、offset_on=１でオフセット制御する場合は、入力値が正の値であって、その値が小さいときに、出力軸２０を駆動する際、モータ１０、１１の駆動電圧を同一にするのではなく、モータ１０に対しては一定の逆向きのオフセット電圧を持たせる。一定の逆向きのトルクをかけるためである。モータ１１に対しては、入力値に応じて、駆動電圧にモータ１０のオフセット電圧を打ち消すだけ余分な電圧を加算する（図３中、（１）の領域）。これにより、出力軸２０が一定のトルクで両側から押されるので、バックラッシュを無くすことができる。
【００４０】
また、モータ１１に対して加算する電圧を制御することで、出力軸２０の駆動を制御することができる。
【００４１】
入力値が正の方向に値が大きくなり、モータ１１の駆動電圧がリミットに達すると、それまで一定のオフセット電圧を与えていたモータ１０の当該オフセット電圧を減少させ、モータ１１と同じ回転方向に駆動するための駆動電圧に変える（図３中、（２）の領域）。すなわち、逆向きにかけるトルクを減少させる。なお、（２）の領域では、モータ１０がモータ１１と同じ回転方向になった場合でも、回転速度の違いにより、逆向きにトルクがかかった状態となる。
【００４２】
逆向きにかけるトルクを減少させるときのモータ１０に対して与える電圧の増加割合を示す傾きは、モータ１１に対して余分な電圧を加算するときの傾きと同じ傾きにすることができる。このため、２つの駆動電圧を加算すると、リミットに達するまで、２倍の傾きの駆動電圧となる。
【００４３】
なお、モータ１１の駆動電圧がリミットに達し、モータ１０のオフセット電圧を減少させる開始時の入力値は、出力値のリミットと同様の入力値のリミットとオフセット電圧（offset）とを用い、(drvlimit-offset)/２とすることができる。（２）の領域の入力値の範囲は、(drvlimit-offset)/２からリミットまでの範囲となるので、その範囲は、(drvlimit+offset)/２となる。
【００４４】
入力値が正の方向に値がさらに大きくなり、モータ１０、１１に与える駆動電圧が共にリミットに達すると、出力値が一定となり、一定レベルの電圧をかけている状態になる（図３中、（３）の領域）。
【００４５】
出力軸２０の駆動を制御する場合、入力値が正の値ばかりではなく、負の値になることもある。例えば、目標位置より行き過ぎてしまい、行き過ぎた分戻るような場合である。この場合、上述した制御とは逆の制御となる。
【００４６】
入力値が小さいときに、出力軸２０を駆動する際、モータ１１に対してオフセット電圧を持たせ、入力値に応じて、モータ１０の駆動電圧をモータ１１のオフセット電圧を打ち消すだけ余分な電圧を加算した電圧にする（図３中、（４）の領域）。入力値が負の方向に値が大きくなり、モータ１０の駆動電圧がリミットに達すると、それまで一定のオフセット電圧を与えていたモータ１１の当該オフセット電圧を減少させ、モータ１０と同じ回転方向に駆動するための駆動電圧に変える（図３中、（５）の領域）。入力値が負の方向に値がさらに大きくなり、モータ１０、１１に与える駆動電圧がリミットに達した後は、出力値が一定となり、一定レベルの電圧をかけている状態になる（図３中、（６）の領域）。
【００４７】
このようにして、Offset Converter１４は、オフセット制御する場合、各モータ１０、１１に設定する電圧の分配方法を変える。すなわち、入力値のいずれにおいても均等の電圧に分配するのではなく、入力値に応じて異なる電圧に分配する。
【００４８】
ちなみに、オフセット電圧は、ギアのバックラッシュ分を移動させるために使用される。なお、この移動だけでは外部負荷はかからない。バックラッシュ分を移動させるだけで良いため、例えばリミットまでの駆動電圧の５％程度の電圧をオフセット電圧としてかけることができる。この程度のオフセット電圧をかけることで、充分にバックラッシュを減らす効果を得ることができる。
【００４９】
図３を参照して、lim_modを設定なしとした場合の処理について説明したが、図４を参照して、lim_modを設定ありとした場合の処理について説明する。相違する部分が、（３）、（６）の領域のみであるため、ここでは（３）、（６）の領域についてのみ説明する。この設定は、drvlimitを小さめに設定し、バックラッシュ制御よりもトルクアップを図りたい場合に使用される。
【００５０】
モータ１０、１１に与える駆動電圧がリミットに達した後、（３）、（６）の領域では、同一PWMで制御する。このとき、モータ１０、１１に同一の電圧をかけ、協調動作している状態になる。
【００５１】
これまで説明してきたダブルモータ方式は、ロボットアーム等の減速機に使用することができる。減速機は、ギアを使用し、回転速度を減速する代わりに大きな力を出力する機械である。減速機として使用する場合、図５に示すように、複数のギアを用いて多段減速を行う必要がある。これは、出力軸２０を回転する際の回転角度の精度を上げ、かつトルク出力を高めるためである。
【００５２】
しかしながら、多段で減速を行うと、大きな力がギアの歯や軸にかかるので、歯の変形や軸の捩れ等の影響により、剛性が低下する。それでも、剛性は、バックラッシュ分回転すれば徐々に高くなり、低剛性は解消される。
【００５３】
上記でオフセット制御を行うためにオフセット電圧を持たせることについて説明したが、図６を参照して、出力軸２０を固定した状態で、オフセット電圧を徐々に増加させた場合のオフセット電圧と剛性との関係について説明する。
【００５４】
ギアの歯同士が接触しないときは、オフセット電圧が変化しても、剛性がほとんど変わらない。以下、この状態のオフセット電圧の範囲をバックラッシュ領域と呼ぶ。
【００５５】
バックラッシュ領域が終わり、歯同士が接触し出すと、オフセット電圧の増加に対して剛性が少しずつ増加する。この状態は、全ての段で、ギアの歯同士がしっかり噛み合うまで継続する。以下、この状態のオフセット電圧の範囲を低剛性領域と呼ぶ。低剛性領域は、多段減速の場合、少しずつバックラッシュが解消されていくので、図６に示す剛性が緩やかに増加するようなカーブを描く。
【００５６】
オフセット電圧をさらに増加すると、全ての段で、ギアの歯同士がしっかり噛み合い、オフセット電圧の増加に応じて剛性が増加する。具体的には、図６に示すオフセット電圧に比例して剛性が増加する。以下、この状態のオフセット電圧の範囲を高剛性領域と呼ぶ。
【００５７】
オフセット電圧をさらに増加すると、歯同士の噛み合いが強くなりすぎ、ギア等の減速機構が変形し、異常領域に入る。異常領域では、減速機構が変形することで、それ以上の力の伝達が抑制されるので、剛性がそれ以上増加しない。
【００５８】
このことから、オフセット電圧がバックラッシュ領域や低剛性領域では、ギアに遊びがある状態であるため、位置決めしたとしても、ずれが生じる可能性があり、位置決め精度は低下するが、動作対象に力がかかったとしても、その力を逃がすことができる。オフセット電圧が高剛性領域では、ギアに遊びがない状態であるため、位置決めの際にずれが生じることはなく、位置決め精度が向上する。その反面、高剛性領域では、動作対象に力がかかった場合、遊びがないため、その力を逃がすことができない。
【００５９】
なお、減速機構の剛性を構成する要素には、図７に示すモータ２１のモータ軸２２の捩れ剛性、モータ２１や出力軸２０のギアの歯２３の変形、軸を支えるフレームの変形等がある。フレームの変形には、フレームに出力軸２０を取り付けるために使用されるねじ２４の変形が含まれる。したがって、減速機等の多段ギアを採用する機構の場合、これらの効果が加算される。すなわち、これらの効果を加味して、オフセット電圧が設定される。
【００６０】
以上のことを踏まえ、図８を参照して駆動装置により実行される制御について説明する。駆動装置は、ステップ８００から制御を開始し、ステップ８０５で、Offset Converter１４が、出力軸２０の駆動を開始する際、モータ１０にオフセット電圧を設定する。また、Offset Converter１４が、モータ１１に駆動電圧を設定する。
【００６１】
ステップ８１０で、制御コントローラ１３が、設定されたオフセット電圧に基づき、モータ１０の駆動を制御する。例えば、制御コントローラ１３が、Offset Converter１４に出力値０を与え、Offset Converter１４にモータ１０に対してオフセット電圧を設定させ、モータ１１に対してオフセット電圧を打ち消す電圧を設定させ、モータ１０、１１の駆動を制御する。この制御には、検出器１２の検出結果および入力されたターゲットとしての位置等が使用される。
【００６２】
ステップ８１５で、制御コントローラ１３が、検出器１２の検出結果に基づき、動作が切り替わったことを確認する。
【００６３】
ステップ８２０で、オフセット電圧を変更し、設定した後、ステップ８１０へ戻る。この処理を繰り返すことで、出力軸の駆動を制御する。
【００６４】
このようなオフセット電圧を設定して制御を行うことで、バックラッシュを減らすことができ、また、オフセット電圧を変えることで、剛性を可変することができる。
【００６５】
ステップ８１０で実施されるモータの駆動制御を、図９を参照して詳細に説明する。ステップ９００で、検出器１２が、モータ軸の位置、もしくは速度、またはその両方を検出し、検出結果として出力する。ステップ９０５で、制御コントローラ１３が、検出結果と、ターゲットの位置、もしくは速度、またはその両方とを受け取る。
【００６６】
ステップ９１０で、制御コントローラ１３の偏差計算部１５が、ターゲットの位置等と、検出結果との差を差分として計算する。ステップ９１５で、PID制御部１６が、その差分に基づき、駆動量を算出し、その駆動量に対応する駆動電圧を入力値としてOffset Converter１４に入力することにより、PID制御を行う。
【００６７】
図１０を参照し、ステップ８２０で実施されるオフセット電圧を変更する処理の第１の例について説明する。図１０では、オフセット電圧を色が薄い実線で示す高い領域から色の濃い実線で示す低い領域に下げ、また、低い領域から高い領域に上げる例を示している。
【００６８】
オフセット電圧を下げると、図６の向かって右側に示した高剛性領域からバックラッシュ領域に入る。バックラッシュ領域では、逆方向にかけるトルクが小さいため、歯同士の噛み合いが弱い。このため、減速機構の劣化や歯の摩耗を防ぐことができる。また、モータにかける電圧が小さいため、モータの温度上昇を抑制し、モータの消費電力を低減し、モータの寿命を延ばすことができる。ここでは、オフセット電圧を、高剛性領域の電圧からバックラッシュ領域の電圧に変えることについて説明したが、高剛性領域の電圧から低剛性領域の電圧に変えても同様の効果を得ることができる。
【００６９】
反対に、オフセット電圧を低い領域から高い領域に上げると、減速機構の劣化や歯の摩耗等が生じるが、ギアの歯の噛み合いが強くなり、減速機構の剛性が高くなるため、制御性を向上させることができる。
【００７０】
このため、オフセット電圧の与え方を用途に応じて変更し、剛性を任意に変更することができる。
【００７１】
例えば、ロボットアームでピッキング作業を行う場合、抜く動作から移動動作へ、また、移動動作から挿入動作へ切り替わる際、一旦停止し、次の動作へ移行する。そのとき、停止位置がずれると、移動の開始位置や挿入位置がずれることになるので、剛性を上げ、制御性を向上させる必要がある。このため、アームの出力軸の停止に向けた動作において、大きいオフセット電圧を与える。これにより、剛性が高くなり、制御性を向上させ、例えばパルスの位置指令と実際のモータの運転とに生じる時間差（整定時間）を短縮することができる。
【００７２】
一方、停止完了後の挿入動作等においては、挿入が開始されているので、多少ずれたとしても問題はない。余分な力を逃がすためにも、多少のずれが生じるような緩い制御のほうが望ましい。このため、停止完了後の動作に切り替わった場合に、オフセット電圧を下げる。これにより、剛性を低くし、ギアにかかる力を小さくし、ギアの摩耗を防ぐとともに、モータの温度上昇を抑制し、モータの消費電力を低減し、モータの寿命を延ばすことができる。
【００７３】
ロボットアームは、ピッキングするワークへのアプローチ動作、把持動作、挿入元から抜く動作、移動動作、挿入先への挿入動作を繰り返す。この中で、高い制御性が必要とされる動作には、アプローチ動作、把持動作、移動動作がある。したがって、抜く動作から移動動作へ切り替わった際、オフセット電圧をバックラッシュ領域または低剛性領域の電圧から高剛性領域の電圧に変更する。
【００７４】
一方、高い制御性は必要がない動作には、抜く動作、挿入動作がある。これらの動作は、ワークを破損等させないためにも、剛性を可変することが必要とされる。したがって、把持動作から抜く動作へ切り替わった際、あるいは移動動作から挿入動作へ切り替わった際に、オフセット電圧を高剛性領域の電圧からバックラッシュ領域または低剛性領域の電圧に変更する。
【００７５】
一例として、移動動作から挿入動作へ移行する場合の制御について詳細に説明する。制御コントローラ１３は、移動時、周期毎にターゲットとしての位置や速度等が入力され、実際に検出器１２で検出された位置等とターゲットとしての位置等との差をなくすように駆動量を算出し、その駆動量に対応する駆動電圧を入力値としてOffset Converter１４に入力する。Offset Converter１４は、入力または設定されたパラメータ（drvlimit、offset等）を基に入力値に対応する各出力値を出力し、各モータ１０、１１に設定する。
【００７６】
図１０に示すようなオフセット電圧が高剛性領域の電圧とバックラッシュ領域の電圧のパラメータが設定されている場合、移動時は、高剛性領域が設定されたパラメータを基に入力値に対応する各出力値を出力して設定する。
【００７７】
制御コントローラ１３からの入力値が（３’）の領域内の値である場合、モータ１０、１１に設定する出力値は、共にdrvlimitとなる。入力値が（２’）の領域内の値である場合、モータ１０に設定する出力値は、入力値に応じたオフセット電圧からdrvlimitまでの範囲内の電圧となり、モータ１１に設定する出力値は、drvlimitとなる。入力値が（１’）の領域内の値である場合、モータ１０に設定する出力値は、オフセット電圧となり、モータ１１に設定する出力値は、オフセット電圧を打ち消すだけ余分な電圧を加算した電圧となる。
【００７８】
移動が完了する前の位置決め動作では、ターゲットとの差分が小さく、入力値が（１’）の領域内の値となるため、モータ１０に設定する出力値は、オフセット電圧となり、モータ１１に設定する出力値は、オフセット電圧を打ち消すだけ余分な電圧を加算した電圧となる。位置決め動作が完了すると、一旦動作を停止し、挿入動作に切り替わる。
【００７９】
挿入動作に切り替わると、オフセット電圧をそれまでの高剛性領域の電圧からバックラッシュ領域の電圧に変更し、バックラッシュ領域が設定されたパラメータを基に入力値に対応する各出力値を出力して設定する。
【００８０】
制御コントローラ１３からの入力値が（１）の領域内の値である場合、モータ１０、１１に設定する出力値は、モータ１０についてはオフセット電圧となり、モータ１１についてはオフセット電圧を打ち消すだけ余分な電圧を加算した電圧となる。入力値が（２）の領域内の値である場合、モータ１０、１１に設定する出力値は、モータ１０については入力値に応じたオフセット電圧からdrvlimitまでの範囲内の電圧となり、モータ１１についてはdrvlimitとなる。入力値が（３）の領域内の値である場合、モータ１０、１１に設定する出力値は、drvlimitとなる。
【００８１】
第１の例の制御では、外力に対してモータ１１の出力を増加させ、外力に対して反発するような制御を行っている。すなわち、オフセット電圧を与え、オフセット電圧を打ち消すだけ余分な電圧を加算した電圧を設定して制御を行っている。
【００８２】
しかしながら、バックラッシュを減らすためには、上記の外力に対して反発するような制御のほか、外力に対してモータ１０の出力を低減させ、外力に釣り合うように制御を行う方法がある。
【００８３】
図１１を参照して、外力に釣り合うように制御を行う方法について説明する。この方法は、出力軸２０を駆動するモータ１１の出力値を一定にし、モータ１０の出力値を、オフセット電圧から低減させる方法である。入力値が正の値で、その値が小さいとき、出力軸２０を駆動する際、モータ１１の駆動電圧を一定とし、モータ１０のオフセット電圧を低減させ、外力に釣り合うように制御する（図１１中、（１）の状態）。
【００８４】
入力値が正の方向に値が大きくなり、その値が一定以上になったところで、モータ１０、１１の両方に同一の電圧を与え、負荷を分散させる（図１１中、（２）の状態）。これにより、片側のギアにかかる力を小さくし、ギアの摩耗を防ぐとともに、モータの温度上昇を抑制し、モータの寿命を伸ばすことができる。（２）の状態では、剛性がバックラッシュ領域となる。
【００８５】
入力値が正の方向に値がさらに大きくなり、モータ１０、１１に与える駆動電圧が共に上限に達すると、出力値が一定となり、一定レベルの電圧をかけている状態になる（図１１中、（３）の状態）。すなわち、入力値が増加しても、モータ１０、１１に同じ向きに同じ一定のトルクをかけている状態になる。
【００８６】
この制御でも、入力値は正の値ばかりではなく、負の値になることがある。この場合、上述した制御とは逆の制御となる。
【００８７】
入力値が負の値で、その値が小さいとき、出力軸２０を駆動する際、モータ１０の駆動電圧を一定とし、モータ１１のオフセット電圧を低減させ、外力に釣り合うように制御する（図１１中、（４）の状態）。入力値が負の方向に値が大きくなり、その値が一定以上になったところで、モータ１０、１１の両方に同一の電圧を与え、負荷を分散させる（図１１中、（５）の状態）。これにより、片側のギアにかかる力を小さくし、ギアの摩耗を防ぐとともに、モータの温度上昇を抑制し、モータの寿命を伸ばすことができる。（５）の状態も、剛性がバックラッシュ領域となる。
【００８８】
入力値が負の方向に値がさらに大きくなり、モータ１０、１１に与える駆動電圧が共に上限に達すると、出力値が一定となり、一定レベルの電圧をかけている状態になる（図１１中、（６）の状態）。すなわち、入力値が増加しても、モータ１０、１１に同じ向きに一定のトルクをかけている状態になる。
【００８９】
この例では、オフセット電圧が外力に対して釣り合うように制御する区間を延長する役割を果たし、剛性は外力によって決まる。すなわち、モータ１１の出力によって決まる。
【００９０】
この方法は、先に説明した外力に釣り合うように制御を行う方法に比較して、外力に対してモータの出力を低減させるためにギアにかかる力を小さくし、ギアの摩耗を防ぐとともに、モータの温度上昇を抑制し、モータの消費電力を低減させ、モータの寿命を伸ばすことができる。
【００９１】
Offset Converter１４を備える本駆動装置は、従来のステッピングモータを用いて駆動制御する機構に置き換えて使用することができる。ステッピングモータは、移動式クレーンのアーム、エレベータ、衛星アンテナの駆動機構、プリンタのプリンタヘッドの移動機構、用紙の給紙機構等の幅広い分野で使用されている。このため、本駆動装置は、これらの移動式クレーンやエレベータ等の幅広い分野に適用することが可能である。
【００９２】
これまで本発明を、駆動装置、制御方法およびプログラムとして上述した実施の形態をもって説明してきた。しかしながら、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができるものである。したがって、そのプログラムが記録された記録媒体、そのプログラムを提供するプログラム提供サーバ等も提供することができるものである。
【符号の説明】
【００９３】
１０、１１…モータ
１２…検出器
１２ａ、１２ｂ…エンコーダ
１３…制御コントローラ
１４…Offset Converter
１５…偏差計算部
１６…PID制御部
２０…出力軸
２１…モータ
２２…モータ軸
２３…歯
２４…ねじ
【先行技術文献】
【特許文献】
【００９４】
【特許文献１】特開２０１０−２０９９９３号公報
【図１】
2019095021.tif 000003
【図２】
2019095021.tif 000004
【図３】
2019095021.tif 000005
【図４】
2019095021.tif 000006
【図５】
2019095021.tif 000007
【図６】
2019095021.tif 000008
【図７】
2019095021.tif 000009
【図８】
2019095021.tif 000010
【図９】
2019095021.tif 000011
【図１０】
2019095021.tif 000012
【図１１】
2019095021.tif 000013