(57)【要約】【課題】ロボットアームが他のものに衝突した場合に、ロボットアームが振動して他のものに再衝突するといった問題を解消する。【解決手段】ロボットアームの衝突が検出されたとき、サーボモータ１６の速度指令値Ｖｃを零にし、これによってサーボモータ１６が停止する。その後、衝突時の反動で、ロボットアームがそれまでと反対方向に移動した時、リミッタ２２により設定されるトルク指令τの限界値を零にする。すると、ロボットアームが衝突の反動によって今までとは反対方向に移動し、これによってロボットアームを障害物に近付ける方向にサーボモータを回転させる制御がなされても、サーボモータの出力トルクは零に制限されるので、実際にロボットアームが移動することがなく、従って、ロボットアームが再衝突を起こすおそれがない。【選択図】　図１
2004025369.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの各軸を駆動するサーボモータを備え、各サーボモータを、速度ループを備えたサーボ制御手段によって駆動制御するロボットにおいて、
ロボットの衝突が検出されたとき、サーボモータの速度指令値を零にし、これによってサーボモータが停止し、又はそれまでと反対方向に回転した時、サーボモータの出力トルクの限界値を低減させることを特徴とするロボットの制御方法。
【請求項２】
ロボットの各軸を駆動するサーボモータを備え、各サーボモータを、速度ループを備えたサーボ制御手段によって駆動制御するロボットの制御装置において、
ロボットの衝突を検出する衝突検出手段と、
この衝突検出手段により衝突が検出されたとき、サーボモータの速度指令値を零にする速度指令手段と、
この速度指令手段が速度指令値を零にすることによってサーボモータが停止し、又はそれまでと反対方向に回転した時、サーボモータの出力トルクの限界値を低減させるトルク制限手段とを具備してなるロボットの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボットが他の物と衝突したときのロボットの制御方法及び制御装置に係り、特に衝突の反動によって再衝突が繰り返されることを防止するようにしたものに関する。
【０００２】
【従来の技術】
図４はロボットの各軸（アーム）を駆動するサーボモータのサーボ制御手段における速度ループ制御を示すブロック図である。すなわち、メインＣＰＵ或いは位置ループ制御から出力された速度指令Ｖｃは加算器１に入力される。一方、サーボモータ２に取り付けられたロータリエンコーダ３から出力される回転位置情報は微分器４で微分されて速度Ｖｆが求められ、速度フィードバック信号Ｖｆとして加算器１に入力される。そして、加算器１は速度指令Ｖｃから速度フィードバック信号Ｖｆを減じて速度偏差εを求め、増幅器５はこの速度偏差εに比例乗数Ｋを乗じてトルク指令τとし、このトルク指令τによって例えばＰＷＭ方式のインバータ装置６によってサーボモータ２を駆動している。
【０００３】
このような制御系において、従来では、ロボットアームが障害物に衝突したことを検出すると、速度指令Ｖｃを零にしてサーボモータ２を制御する方法がとられている。衝突時に速度指令Ｖｃを零にすると、実際のサーボモータ２の速度がその符号を反転して速度偏差εとして増幅器５に与えられるから、増幅器５から出力されるトルク指令τはその符号を反転したものとなる。このため、今までの回転方向とは逆方向へ回転させるトルク指令が出力されることとなり、その結果、サーボモータ２（ロボット）は急激に速度を減じて停止することとなり、衝突による衝撃が緩和されるのである。
【０００４】
【発明が解決しようとする課題】
衝突が検出されて速度指令Ｖｃが零になると、前述のように、インバータ装置６へのトルク指令τはサーボモータ２を今までとは逆方向に回転させる指令（符号はマイナス）となり、その結果、サーボモータ２が停止する。ところが、ロボットアームが障害物に衝突すると、そのときの障害物のたわみ等による反発力により、ロボットアームは今までの移動方向とは逆方向に押され、ロボットアームが障害物から離れる方向に動く。これにより、サーボモータ２が今までとは逆方向に回転するため、このときの速度がフィードバックされて加算器１に入力される。すると、速度指令Ｖｃが零であるところ、障害物から離れる方向にサーボモータ２が回転するため、今度は、再度符号を反転させた速度偏差εとして増幅器５に与えるため、トルク指令τの符号がプラスになる。この結果、サーボモータ２はロボットアームを障害物に接近させる方向に駆動され、これによりロボットアームが再度障害物に再衝突するようになる。
【０００５】
このように従来の制御系では、ロボットアームが障害物に衝突すると、サーボモータが正逆回転を繰り返すようになり、ロボットアームが振動する、という問題を生じていた。
【０００６】
本発明は上記の事情に鑑みてなされたもので、その目的は、ロボットが他のものに衝突した場合に、ロボットアームが振動して他のものへの衝突を繰り返すといった挙動を生ずることを解消ができるロボットの制御方法及びロボットの制御装置を提供するところにある。
【０００７】
【課題を解決するための手段】
本発明では、ロボットの衝突が検出されたとき、サーボモータの速度指令値を零にし、これによってサーボモータが停止し、又はそれまでと反対方向に回転した時、サーボモータの出力トルクの限界値を低減させるので、ロボットアームが衝突の反動によって今までとは反対方向に移動し、これによってロボットアームが衝突した物に近付く方向にサーボモータを回転させる制御がなされても、サーボモータの出力トルクが低減されているので、実際にサーボモータが回転してロボットアームを移動させることがなく、従って、ロボットアームが再衝突を繰り返すおそれがない。
【０００８】
【発明の実施の形態】
以下、本発明の一実施例を図１〜図３を参照しながら説明する。
図３はロボットの制御装置１１を示すブロック図である。この図３に示すように、制御装置１１は、メインＣＰＵ１２、メモリ１３、サーボ制御部１４等をバス１５により接続して構成されている。なお、メモ１リ３はＲＯＭ、ＲＡＭ、不揮発メモリ等からなる。
【０００９】
ロボット及びロボット制御装置１１のシステムプログラムはメモリ１３のＲＯＭに格納されている。また、教示されるロボットの動作プログラム及びその関連設定データはメモリ１３の不揮発メモリに格納される。そして、メモリ１３のＲＡＭはメインＣＰＵ１２が行う各種演算処理におけるデータを一時的に記憶する記憶領域として使用される。
【００１０】
サーボ制御部１４は、ロボットの軸数に応じた数のサーボ制御器１５を備えており、各サーボ制御器１５はＣＰＵ、ＲＯＭ、ＲＡＭ等で構成され、各軸を駆動するサーボモータ１６の位置ループ制御、速度ループ制御、電流ループ制御等を行っている。なお、この位置ループ制御、速度ループ制御、電流ループ制御等はソフトウェアで行うデジタル制御となっている。
【００１１】
各サーボモータ１６には、位置検出手段として、その回転数を検出するためのロータリエンコーダ１７が接続されており、このロータリエンコーダ１７の検出信号は各サーボ制御器１５に入力される。また、各サーボモータ１６には、供給される電流を検出するための電流センサ１８が設けられ、この電流センサ１８の検出信号は各サーボ制御器１５に入力される。
【００１２】
図１は速度ループ制御のブロック図である。同図において、速度指令手段としてのメインＣＰＵ１２或いは位置ループ制御から出力された速度指令Ｖｃは加算器１９に入力される。また、ロータリエンコーダ１７から出力される回転位置情報は微分器２０で微分されて速度Ｖｆに変換され、速度フィードバック信号Ｖｆとして加算器１９に入力される。そして、加算器１９は速度指令Ｖｃから速度フィードバック信号Ｖｆを減じて速度偏差εを求め、増幅器２１に出力する。増幅器２１はこの速度偏差εに比例乗数Ｋを乗じてトルク指令τとし、このトルク指令τをトルク制限手段としてのリミッタ２２を通してモータ駆動手段としてのインバータ装置２３に入力する。
【００１３】
上記インバータ装置２３は、パルス幅変調（以下、単にＰＷＭと称する。）方式によってサーボモータ１６の出力トルクの制御を行うもので、制御回路とこの制御回路によって制御される主回路とから構成されている。そして、このインバータ装置２３において、その制御回路はトルク指令τに応じたＰＷＭ信号によって主回路をデューティ制御し、以てサーボモータ１６がトルク指令τに応じたトルクを出力するように構成されている。ここで、リミッタ２２はインバータ装置２３に入力されるトルク指令τを制限するためのもので、トルク指令τがリミッタ２２に設定された値を越える場合、リミッタ２２はインバータ装置２３に入力されるトルク指令τを設定された値に低減させる。このリミッタ２２の設定にされるトルク値は、通常は、ロボットアームをその強度上最高の加速度で動作させ得るような値に設定されている。
【００１４】
次に上記構成の作用を図２に示すフローチャートをも参照しながら説明する。まず、本実施例では、サーボ制御器１５は、電流センサ１８によって検出されたサーボモータ１６の入力電流値が所定値を越えた場合、ロボットアームが他のものに衝突した（衝突検出）と判断するようにしている。従って、サーボ制御器１５は衝突検出手段として機能する。
【００１５】
さて、図２のルーチンの実行に入ると、サーボ制御器１５は上記衝突を検出したか否かを監視する状態となる（ステップＳ１）。この状態において、ロボットアームが障害物に衝突し、その結果、いずれかのサーボモータ１６の入力電流が所定値を越えたとすると、そのサーボモータ１６のサーボ制御器１５はステップＳ１で「ＹＥＳ」と判断して衝突情報をメインＣＰＵ１２に与える。すると、メインＣＰＵ１２は各サーボ制御器１５の加算器１９に与える速度指令Ｖｃを零にする（ステップＳ２；速度指令手段）。次いで、サーボ制御器１５は、サーボモータ１６が停止し、或いは速度を反転、換言すれば回転方向が逆方向になったか否かを判断する状態となる（ステップＳ３；停止判断手段）。
【００１６】
さて、加算器１９は速度指令Ｖｃから検出速度Ｖｆを差し引くので、上記ステップＳ２で速度指令Ｖｃが零にされると、加算器１９からは検出速度Ｖｆの符号を反転した値（−Ｖｆ）が速度偏差εとして増幅器２１に入力される。このため、増幅器１９からインバータ装置２３に与えられるトルク指令τは、今までと符号を反転させたマイナス符号のものとなり、その結果、サーボモータ１６は今までとは逆方向に回転するトルクを発生し、これにより、サーボモータ１６（ロボットアーム）は急激に速度を減じて停止する。
【００１７】
ところで、ロボットアームは、障害物に衝突して停止すると、その衝突時の反動によって今までとは逆方向に、つまり障害物から離れる方向に移動することがある。すると、サーボモータ１６は、そのロボットアームの動きによって、回転方向（速度）を反転させる。そして、以上のようなサーボモータ１６の停止或いは速度反転はサーボ制御器１５により検出され、その検出信号がメインＣＰＵ１２に与えられる。これにより、メインＣＰＵ１２は、リミッタ２２の設定値を低減、この実施例では零にし（ステップＳ４；トルク制限手段）、リターンとなる。
【００１８】
衝突の反動によってロボットアームが障害物から離れる方向に移動すると、上述のようにサーボモータ１６が速度反転するので、そのサーボモータ１６の速度は衝突前とは反対符号（マイナス符号；−Ｖｆ）となって加算器１９に入力される。この場合、速度指令Ｖｃは零であるから、加算器１９は、零から（−Ｖｆ）を減ずる演算を行う。このため、加算器１９から出力される速度偏差εはプラス符号とされる。この速度偏差εの符号がプラスであることは、増幅器２１から出力されるトルク指令τもプラス符号のものとなり、ロボットアームを障害物に近付ける方向にサーボモータ１６を回転させることを意味する。
【００１９】
しかしながら、増幅器２１から出力されたトルク指令τはリミッタ２２を介してインバータ装置２３に入力されるが、そのリミッタ２２の設定値は零になっているため、実際には、サーボモータ１６の出力トルクは零となり、ロボットアームを障害物に近付けるように駆動するトルクは発生しない。従って、ロボットアームが障害物に再び近付くように動作することはなく、この結果、ロボットアームが障害物に近付いたり遠ざかったりする動作を繰り返す（振動）ことを防止できる。
【００２０】
なお、本発明は上記し且つ図面に示す実施例に限定されるものではなく、以下のような拡張或いは変更が可能である。
ロボットアームが障害物に衝突して停止した後にリミッタ２２に設定する限界値は零に限らず、静止摩擦によってロボットアームが動かない程度の値を限界値と定めても良い。
本発明の制御を行う場合、ブレーキ付きであっても、ブレーキを掛けないことを前提としている。この場合において、リミッタ２２の限界値を零或いはそれに近く設定すると、ロボットアームが自重や把持したワークの重量で動くおそれがあるときには、リミット２２の限界値はロボットアームの自重やワークの重量を保持できる値を基準にして上述のような制御を行うものである。
ロータリエンコーダ１７の位置情報を微分して速度情報（Ｖｆ）を得ることに代えて、サーボモータ１６の速度を検出する速度センサを設け、この速度センサからの速度情報を加算器１９に入力するようにしても良い。
【図面の簡単な説明】
【図１】本発明の一実施例を示す速度ループのブロック図
【図２】衝突時の制御内容を示すフローチャート
【図３】ロボットの制御装置を示すブロック図
【図４】従来例を示す図１相当図
【符号の説明】
図中、１１はロボット制御装置、１２はメインＣＰＵ（速度指令手段）、１４はサーボ制御部、１５はサーボ制御器（衝突検出手段）、１６はサーボモータ、１７はロータリエンコーダ、１８は電流センサ、２２はリミッタ（トルク制限手段）、２３はインバータ装置である。
【図１】
2004025369.tif 000003
【図２】
2004025369.tif 000004
【図３】
2004025369.tif 000005
【図４】
2004025369.tif 000006