(57)【要約】【課題】ロボットに対する外力を高感度で検出して、ロボットを高精度で停止させる。【解決手段】プログラムに含まれる指定速度を指定速度以下に調節する指定速度調節手段（２３）を有するロボット制御装置（１０）が、ロボット（１）の手首に装着された力センサ（２）の検出値に基づいて前記ロボットの移動を停止する移動停止命令を解読する解読手段（３８）と、指定速度調節手段を作用させずにプログラムの指定速度で、プログラムの指定方向にロボットを移動させる移動指令を作る移動指令手段（３６）と、ロボットの移動開始時における力センサの検出値を基準値として、基準値からの変化分を力現在値として算出する力算出手段（３１）と、ロボットが移動している間、力算出手段により所定周期で繰返し算出された力現在値を所定の力指定値と比較する比較手段（３２）とを含む。力現在値が力指定値以上である場合は、移動指令手段はロボットを停止させる。【選択図】図２
2008188722.tif 000002
【特許請求の範囲】
【請求項１】
ロボット指令プログラムに含まれる指定速度を該指定速度以下に調節する指定速度調節手段を有するロボット制御装置において、ロボットの手首に装着された力センサの力検出値に基づいて前記ロボットの移動を停止する移動停止命令を解読する解読手段と、
該解読手段により前記移動停止命令を解読した場合、前記プログラムに含まれる指定方向に、前記指定速度調節手段を作用させずに前記プログラムに含まれる前記指定速度により前記ロボットを移動させる指令を生成する移動指令手段と、
前記ロボットの移動開始時における前記力センサの力検出値を基準値として、該基準値からの力検出値の変化分を力現在値として算出する力算出手段と、
前記ロボットが移動している間、前記力算出手段により所定周期で繰返し算出された力現在値を所定の力指定値と比較する比較手段と、を具備し、
該比較手段により前記力現在値が前記力指定値以上であると判定された場合には、前記移動指令手段は、前記ロボットを停止させるようになっており、
さらに、
前記ロボットの停止位置を読出す停止位置読出手段と、を備えたロボット制御装置。
【請求項２】
さらに、前記ロボットの移動開始時における前記力センサの最新の力検出値を前記基準値として採用するか、または以前に設定された前記基準値を変更することなしに使用し続けるか、を切換える切換手段を備えた、請求項１に記載のロボット制御装置。
【請求項３】
前記力現在値が前記力指定値以上になることなしに前記ロボットの移動量が所定の制限移動量に達した場合には、前記ロボットを停止させて、ロボットの移動量についての所定の処理を実行するようにした請求項１または２に記載のロボット制御装置。
【請求項４】
ロボット指令プログラムに含まれる指定速度を該指定速度以下に調節する指定速度調節手段を有するロボット制御装置において、ロボットの手首に装着された力センサの力検出値に基づいて前記ロボットの移動を停止する力制限付き移動命令を解読する解読手段と、
該解読手段により前記力制限付き移動命令を解読した場合、前記プログラムに含まれる指定位置に、前記指定速度調節手段を作用させずに前記プログラムに含まれる前記指定速度により前記ロボットを移動させる指令を生成する移動指令手段と、
前記ロボットの移動開始時における前記力センサの力検出値を基準値として、該基準値からの力検出値の変化分を力現在値として算出する力算出手段と、
前記ロボットが移動している間、前記力算出手段により所定周期で繰返し算出された力現在値を所定の力指定値と比較する比較手段と、を具備し、
該比較手段により前記力現在値が前記力指定値以上であると判定された場合には、前記移動指令手段は、前記ロボットを停止させると共に、前記ロボットに対して所定の処理が実行されるようになっており、
前記力現在値が前記力指定値以上になることなしに前記ロボットが前記指定位置に達した場合には、前記移動指令手段は、前記ロボットを停止させると共に、前記プログラムにおける前記ロボットの本来の処理が続行されるようにした、ロボット制御装置。
【請求項５】
前記比較手段により力現在値が前記力指定値以上であると判定されて前記ロボットを停止させた場合には、前記ロボットの停止位置を所定の許容範囲と比較し、前記ロボットの停止位置が所定の許容範囲から外れている場合には、前記許容範囲についての所定の処理を実行するようにした、請求項１または４に記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用ロボットなどのロボットを制御するロボット制御装置に関する。特に、本発明は、ロボットの移動時に、ロボットの手首に装着された力センサの力検出値に基づいてロボットの移動を停止するロボット制御装置に関する。
【背景技術】
【０００２】
一般にロボット制御装置は、ロボットのハンドがその移動時に他の対象物に接触して外力を受けたことを検出した場合には、ロボットの移動を停止させている。例えば特許文献１には、直交型ロボットの手首に装着された力センサの検出値が閾値以上になった場合に、ロボットを停止することが開示されている。
【０００３】
また、特許文献２は、力センサを装着したロボットにおいて力センサ検出情報のフィードバック制御による力制御を行い、移動命令において力フィードバックを停止して、力センサ出力が閾値を超えたときに接触が生じたと認識してロボットの動作を停止させることを開示している。
【０００４】
さらに、特許文献３には、手首に装着した力センサの検出値をリセットし、以後の検出値を基準値と比較することによりエンドエフェクタが被工作物に接触したことを判断し、接触が生じた場合にはロボットを停止させて、座標値を読取る手法が開示されている。
【０００５】
さらに、特許文献４には、力センサを装着したロボットによって力センサ検出値と許容基準との関係を評価し、力センサ検出値が許容基準を超えた場合には、衝突が生じたものと判断してロボットの移動を緊急に停止することが開示されている。
【特許文献１】特開平７−２４６６５号公報
【特許文献２】特開平３−４９８８６号公報
【特許文献３】特開平８−３９４６７号公報
【特許文献４】特開平８−２４１１０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
一般的にロボットにより組立作業を行う場合には、多関節ロボットのハンドにより把持した部品を自由な姿勢で配置すると共に、力センサなどを用いて接触状態を検出してロボットの移動を停止することが望まれている。
【０００７】
しかしながら、力センサを用いた力制御技術においては、力検出値によるフィードバック制御が基本的な構成である。この場合には、ロボット手先の把持機構、把持機構に把持された物体の剛性、および把持機構と物体との間の接触状態などがフィードバックループに含まれるので、これらはフィードバック制御系の安定性および応答特性に多大な影響を与える。
【０００８】
従って、ロボット手先の把持機構、把持機構に把持された物体の剛性、および把持機構と物体との間の接触状態などのそれぞれの状態に応じて、特性パラメータ、例えばフィードバック制御系のゲインなどを調整する必要があり、ロボットの使用が難しくなるという問題があった。また、フィードバック制御では振動およびオーバーシュートが発生しやすいので、ゲインをあまり高く設定できず、その結果、応答速度が遅くなるという問題があった。
【０００９】
また、特許文献１においては、手首の姿勢を変化させて手首の重力軸の方向が変化すると、ハンドおよび把持したワークの重力による力の方向が変化し、このことに対応して、力センサからの力検出値が変化する。この力検出値の変化と、ハンドに加わった外力による力検出値の変化とを区別できないので、直交型ロボットを用いた制御方法を垂直多関節型ロボットに適用すると、手首の姿勢変化によって力検出値が変化して誤動作するという問題があった。このような問題は、特許文献２の場合においても同様に生じうる。
【００１０】
また、特許文献３において接触が生じた場合にはロボットを停止させているものの、実際にはロボットは即時に停止することができず、通常はロボットは移動速度に依存した距離を惰走して停止する。産業用ロボットは、安全を確保するためにロボットの教示作業および試運転を行う場合には、ロボット制御装置の操作パネルなどからオーバライドの設定操作をして、プログラムで指定された移動速度を必ず低下させて行う。このため、特許文献３においてロボットの教示作業および試運転を行う場合には、プログラムで指定された移動速度を低下させた状態でロボットを動作させるので、移動速度の変化に応じて接触停止位置が変化するという問題があった。
【００１１】
また、特許文献４においては、力検出値はロボットの移動時に常に監視され、衝突を検出するのに使用される。ただし、この力検出値は、ロボットの移動に伴って発生する慣性力および遠心力、ならびに手首の姿勢変化に伴って発生する重力軸変化による力成分の変化の影響を受ける。このため、許容基準が比較的小さく設定される場合には、ロボットが誤動作するという問題があった。
【００１２】
ところで、ロボットの関節を駆動するサーボモータによって外乱付加を検出し、衝突または過負荷が検出された場合にはロボットの移動を緊急に停止する技術、ならびにロボットのハンドに取付けられたタッチセンサの信号に基づいてロボットの移動を停止する技術も提案されている。
【００１３】
しかしながら、サーボモータを利用する技術は、ロボットの関節部に掛かる負荷を検出しているので検出感度が低く、またタッチセンサを利用する技術においては、タッチセンサがワークと干渉するという問題、およびロボットのハンドに加えられた力を検出できないという問題がある。
【００１４】
本発明はこのような事情に鑑みてなされたものであり、ロボットのハンドまたはハンドが把持したワークに加えられた外力を高感度で検出すると共に、ロボットを高精度で停止させることのできるロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
前述した目的を達成するために１番目の発明によれば、ロボット指令プログラムに含まれる指定速度を該指定速度以下に調節する指定速度調節手段を有するロボット制御装置において、ロボットの手首に装着された力センサの力検出値に基づいて前記ロボットの移動を停止する移動停止命令を解読する解読手段と、該解読手段により前記移動停止命令を解読した場合、前記プログラムに含まれる指定方向に、前記指定速度調節手段を作用させずに前記プログラムに含まれる前記指定速度により前記ロボットを移動させる指令を生成する移動指令手段と、前記ロボットの移動開始時における前記力センサの力検出値を基準値として、該基準値からの力検出値の変化分を力現在値として算出する力算出手段と、前記ロボットが移動している間、前記力算出手段により所定周期で繰返し算出された力現在値を所定の力指定値と比較する比較手段と、を具備し、該比較手段により前記力現在値が前記力指定値以上であると判定された場合には、前記移動指令手段は、前記ロボットを停止させるようになっており、さらに、前記ロボットの停止位置を読出す停止位置読出手段と、を備えたロボット制御装置が提供される。
【００１６】
通常、力検出により移動指令を停止した場合には、ロボットはサーボ制御系の追従遅れ量の分だけ行き過ぎて停止する。そして、サーボ制御系の追従遅れ量は移動速度におおよそ比例するので、移動速度が変化すると行き過ぎ量が変わり、従って、停止位置が変化する。これに対し、１番目の発明においては、力センサの力検出値に基づいてロボットの移動を停止する移動停止命令を実行する際は、指定速度調節手段により調節された調節後指定速度を使用せず、調節前の指定速度を使用しているので、移動速度が一定となり、停止位置が変化するのを防止できる。このため、ロボット試運転中などにおいてロボットの動作確認のために指定速度が調節されている場合であっても、力検出によるロボットの停止位置は影響を受けず、停止位置の繰返し精度を高めることができる。なお、移動速度を一定にすることでロボット試運転などの際の安全性が脅かされる可能性が考えられるが、この移動停止命令で使う指定速度は非常に小さいので、安全性に問題は発生しない。
【００１７】
２番目の発明によれば、１番目の発明において、さらに、前記ロボットの移動開始時における前記力センサの最新の力検出値を前記基準値として採用するか、または以前に設定された前記基準値を変更することなしに使用し続けるか、を切換える切換手段を備えた。
すなわち２番目の発明においては、移動開始時に基準値の更新を行わず、以前に採用された基準値をそのまま使うことが望まれる場合に有利である。
【００１８】
３番目の発明によれば、１番目または２番目の発明において、前記力現在値が前記力指定値以上になることなしに前記ロボットの移動量が所定の制限移動量に達した場合には、前記ロボットを停止させて、ロボットの移動量についての所定の処理を実行するようにした。
すなわち３番目の発明においては、ロボットのハンドが想定した対象物に接触しないなどの場合に有利である。なお、３番目の発明におけるロボットの移動量についての所定の処理は、ロボットが対象物に接触しないなどの場合に行われる予め設定された処理である。
【００１９】
４番目の発明によれば、ロボット指令プログラムに含まれる指定速度を該指定速度以下に調節する指定速度調節手段を有するロボット制御装置において、ロボットの手首に装着された力センサの力検出値に基づいて前記ロボットの移動を停止する力制限付き移動命令を解読する解読手段と、該解読手段により前記力制限付き移動命令を解読した場合、前記プログラムに含まれる指定位置に、前記指定速度調節手段を作用させずに前記プログラムに含まれる前記指定速度により前記ロボットを移動させる指令を生成する移動指令手段と、前記ロボットの移動開始時における前記力センサの力検出値を基準値として、該基準値からの力検出値の変化分を力現在値として算出する力算出手段と、前記ロボットが移動している間、前記力算出手段により所定周期で繰返し算出された力現在値を所定の力指定値と比較する比較手段と、を具備し、該比較手段により前記力現在値が前記力指定値以上であると判定された場合には、前記移動指令手段は、前記ロボットを停止させると共に、前記ロボットに対して所定の処理が実行されるようになっており、前記力現在値が前記力指定値以上になることなしに前記ロボットが前記指定位置に達した場合には、前記移動指令手段は、前記ロボットを停止させると共に、前記プログラムにおける前記ロボットの本来の処理が続行されるようにした、ロボット制御装置が提供される。
【００２０】
すなわち４番目の発明においては、指定速度調節手段により調節された調節後指定速度を使用せず、調節前の指定速度を使用しているので、移動速度が一定となり、停止位置が変化するのを防止できる。このため、ロボット試運転中などにおいてロボットの動作確認のために指定速度が調節されている場合であっても、力検出によるロボットの停止位置は影響を受けず、停止位置の繰返し精度を高めることができる。さらに、４番目の発明においては、ロボットを指定位置に向かって移動させているので、移動途中でロボットが障害物に接触した場合に有利である。なお、４番目の発明における所定の処理は、例えばロボットが障害物に接触した場合に対する対処プログラムである。
【００２１】
５番目の発明によれば、１番目または４番目のいずれかの発明において、前記比較手段により力現在値が前記力指定値以上であると判定されて前記ロボットを停止させた場合には、前記ロボットの停止位置を所定の許容範囲と比較し、前記ロボットの停止位置が所定の許容範囲から外れている場合には、前記許容範囲についての所定の処理を実行するようにした。
すなわち５番目の発明においては、ロボットの停止位置が許容範囲から外れているか否かを判断することにより、ロボットにより実行された作業が正常に終了したか否かを判定することができる。なお、５番目の発明における許容範囲についての所定の処理は、例えばリトライのためのプログラムである。
【発明を実施するための最良の形態】
【００２２】
以下、添付図面を参照して本発明の実施形態を説明する。以下の図面において同様の部材には同様の参照符号が付けられている。理解を容易にするために、これら図面は縮尺を適宜変更している。
図１は本発明に基づくロボット制御装置とロボットとを示す全体構成図である。図１には、多関節型ロボット１が示されている。図示されるように、ロボット１の手首には、六軸力センサ２が装着されており、ワークの把持などを行うハンド５が力センサ２の先端側に装着されている。
【００２３】
図１に示されるような多関節型ロボット１は手首の姿勢を自由に変化させられ、それにより、ハンド５により把持されたワークを所望の向きに配置することが可能である。六軸力センサ２はロボット１の手首における直交３軸（Ｘ、Ｙ、Ｚ）方向の力と、各軸回りのモーメント（Ｍｘ、Ｍｙ、Ｍｚ）を検出できる。力センサ２の検出感度は比較的高く、例えば最小検出値は１０ｇｆ以下である。力センサ２は、把持機構を備えた通常のハンド５の先端部、または把持したワーク（図示しない）に加わったあらゆる方向の小さな力であっても検出できる。なお、本発明においては、タッチセンサなどの追加の機構をハンド５の先端に取付ける必要はない。
【００２４】
図１に示されるように、ロボット１はロボット制御装置１０に接続されている。このため、力センサ２もロボット１を通じてロボット制御装置１０に接続されている。
【００２５】
図２は本発明に基づくロボット制御装置の機能ブロック図である。図２に示されるように、ロボット制御装置１０は指令制御部２１、サーボ制御部２２および操作パネル２３を主に含んでいる。また、図面には示さないものの、ロボット制御装置１０はロボット指令プログラムならびに後述する計算結果および各閾値を記憶する記憶部（図示しない）を含んでいる。なお、ロボット指令プログラムは、ロボット１の動作を指定する命令文を含み、動作を指定する命令文はロボット１の指定位置と指定速度とを含んでいる。
【００２６】
ロボット制御装置１０の指令制御部２１は、記憶部に記憶されたロボット指令プログラムを解読してプログラム命令に対応した各種処理を実行し、ロボット１の移動指令をサーボ制御部２２に出力する。
【００２７】
また、図２に示されるように指令制御部２１は、解読手段３８と移動指令手段３６と力算出手段３１と比較手段３２と停止位置読出手段３３と切換手段３４とを含んでいる。解読手段３８は、ロボット指令プログラムを解読し、それが何の命令であるか識別する。移動指令手段３６は、解読手段３８で解読した命令に対応して、ロボット１の移動経路を算出し、その移動経路に沿って制御周期毎にロボットの移動指令を分配更新し、それをロボットの各関節の移動指令に変換してサーボ制御部に出力する。また、移動指令手段３６は、操作パネル２３からオーバライド値を読み取りロボット１の移動速度を調節すると共に、比較手段３２の判定結果によって移動指令を停止するなどの処理を実行する。力算出手段３１は、力センサ２からの信号を読取って、作業に適した座標系に変換した力検出値ＰＤを算出すると共に、力検出値ＰＤから基準値ＰＳを差し引いて力現在値ＰＣを算出する。
【００２８】
指令制御部２１の比較手段３２は、力算出手段３１によって算出された力現在値ＰＣを記憶部内の所定の力指定値Ｐ０と比較し、判定結果を出力する。指令制御部２１の停止位置読出手段３３は、比較手段３２の判定結果により移動指令手段３６が移動指令を停止した時、停止位置を読み出して記憶する。
【００２９】
指令制御部２１の切換手段３４は、基準値ＰＳを最新の力検出値ＰＤに置き換えるか、または従来の基準値ＰＳをそのまま使用するかを切換えるのに使用される。
【００３０】
サーボ制御部２２は、指令制御部２１から送られた移動指令に追従するようにロボット１の各関節を駆動するモータをサーボ制御し、移動速度に概ね比例した追従遅れを伴って移動指令に追従させる。
【００３１】
操作パネル２３は、ロボット１のロボット指令プログラムの実行開始、一時中断などの制御に加えて、ロボット１の移動速度を調節することもできる。具体的には、操作パネル２３はオーバライド値ＯＲを零％から１００％の範囲で選択できるようになっている。そして、選択されたオーバライド値ＯＲに基づいて、指令制御部２１は、ロボット指令プログラムで指定された指定速度に対して、ロボット１の移動速度を後述するように小さくなるよう調節する。
【００３２】
オーバライド値ＯＲを用いたロボット１の移動速度の低減は、例えばロボット１の試運転の際に安全の確認のために行われる。すなわち、ロボット指令プログラムを新しく作成した場合などには、衝突の防止またはロボット１の細かい動作の確認のためにロボット１の移動速度を例えば２０％まで低減させてロボット１を動作させ、安全が確認された後に、実際の移動速度に戻すようにしている。このオーバライド機能は、ロボット指令プログラムを変更することなく移動速度を低下できるので、ロボット制御装置には必須の機能であり、ロボットの移動を指定する命令文に対して、一般的には例外なくこのオーバライド機能が作用する。
【００３３】
はじめに、図８を参照して、通常の移動命令の際のロボット制御装置の動作内容について説明する。図８に示されるフローチャート１８０は、指令制御部２１がロボット指令プログラムを解読し、ロボット指令プログラム内に移動命令があった場合に実施される。
【００３４】
すなわち、ステップ１８１において通常の移動命令を開始すると、ステップ１８２において指令制御部２１は操作パネル２３のオーバライド値ＯＲを所定の制御周期毎に読取る。次いで、ステップ１８３において、ロボット指令プログラム内の指定速度にオーバライド値ＯＲを乗算して、実指令速度を算出する。ステップ１８４においては、ロボット指令プログラム内の指定位置に向けて所定の制御周期毎に実指令速度で移動指令位置を更新し、それをサーボ制御部２２に出力する。
【００３５】
次いで、ステップ１８５、１８６から分かるように、移動指令位置が指定位置に到達するまで所定の制御周期毎に処理を繰返す。そして、移動指令位置が指定位置に到達した場合には、移動指令を停止して処理を終了する。この場合には、ステップ１８７に示されるように、本来の次のプログラム命令に進む。ロボット制御装置１０は通常は以上のように動作し、本発明においても移動命令の際には、オーバライド値ＯＲに基づいて実指令速度が設定される。
【００３６】
図３は、本発明の第一の実施形態に基づくロボット制御装置の移動停止命令の際の動作を示すフローチャートである。本発明において指令制御部２１により解読されたロボット指令プログラムの命令文が移動停止命令である場合には、図３に示されるフローチャート１３０がロボット制御装置１０によって実行される。
【００３７】
フローチャート１３０のステップ１０１において力検出による移動停止命令が開始されると、切換手段３４は、力センサ２により検出された最新の力検出値ＰＤを基準値ＰＳとして設定する（ステップ１０２）。このため、本発明においては、移動開始時におけるロボット１の手首がどのような姿勢であっても、移動開始時における手首の姿勢を基準として以後の力変化を検出することが可能となる。
【００３８】
移動開始時にハンド５が作業台などの固定部（図示しない）に接触していない場合には、移動開始時における力センサ２の力検出値ＰＤは、ハンド５および把持したワーク（図示しない）の重力による力成分、力センサ２のオフセット誤差（荷重無しの時にゼロにならない検出誤差）成分、および温度変化などによるドリフト誤差成分の和で構成される。本発明においては、力検出値ＰＤを基準値ＰＳとして設定するので、力現在値ＰＣは前述した成分の全てがキャンセルされている。従って、移動中にハンド５の姿勢を大幅に変化しないようにすれば、重力による力成分はほとんど変化しない。さらに、移動速度を小さく指定した場合には発生する慣性力も比較的小さい。このため、本発明においては、移動開始以後にハンド５に加わった力を非常に感度良く検出することができる。
【００３９】
次いで、フローチャート１３０のステップ１０３において力算出手段３１は、所定の制御周期、例えば８ｍｓ毎に、力センサ検出値ＰＤから基準値ＰＳを減算して力現在値ＰＣを算出する。力現在値ＰＣを算出する周期は、ロボットの移動指令の分配周期と同期していることが好ましく、これにより、以下の作業をより正確に行うことが可能となる。
【００４０】
続くステップ１０４においては、比較手段３２が、力現在値ＰＣと力指定値Ｐ０とを比較する。力指定値Ｐ０は予め定められていて記憶部に記憶されているものとする。力現在値ＰＣが力指定値Ｐ０より小さい場合には、オーバライド設定される前の指定速度で指定方向に移動指令を更新してサーボ制御部２２に出力して（ステップ１０７）、ステップ１０３に戻る。一方、力現在値ＰＣが力指定値Ｐ０以上である場合には移動指令を停止し、停止位置読出手段３７によって停止位置を読み出してレジスタなどにセットし（ステップ１０５）、次のプログラム命令に進む（ステップ１０６）。
【００４１】
通常、力検出により移動指令を停止した場合には、ロボットはサーボ制御系の追従遅れ量の分だけ行き過ぎて停止する。そして、サーボ制御系の追従遅れ量は移動速度に概ね比例するので、移動速度が変化すると行き過ぎ量が変わり、従って、停止位置が変化する事態が生じうる。
【００４２】
これに対し、本発明においては、力検出による移動停止命令を実行している間は、移動速度に対するオーバライドの設定を無視し、常に指定された速度、例えば１０ｍｍ／秒で移動させている。つまり、本発明において移動指令を停止する場合（ステップ１０５）には、オーバライド設定される前の指定速度を使用しているので、移動速度が一定となり、従って、停止位置が変化するのを防止することが可能となる。すなわち、本発明においては、ロボット１の試運転中などにおいてロボット１の動作確認のためにオーバライド値ＯＲが設定されている場合であっても、力検出によるロボットの停止位置は影響を受けず、停止位置の繰返し精度を高めることが可能となる。
【００４３】
また、図３等から分かるように、本発明においては力検出値ＰＤについてフィードバック制御を行っていない。従って、制御系が不安定になることはなく、力フィードバック制御系においてしばしば発生する応答遅れも生じない。
【００４４】
図４は、本発明の第二の実施形態に基づくロボット制御装置の移動停止命令の際の動作を示すフローチャートである。図４および後述する図５から図７に示されるフローチャートにおける、既に説明したステップ（参照符号が同一のステップ）については、明細書の記載を簡潔にする目的で、再度の説明を省略する。
【００４５】
図４に示されるフローチャート１４０においては、移動停止命令を開始した（ステップ１０１）後で、力検出による移動停止命令に基準値ＰＳを更新する指定があるか否かを判定する（ステップ１０１ａ）。そのような指定がある場合には、切換手段３４により、前述したように最新の力検出値ＰＤを基準値ＰＳとして設定する。一方、そのような指定が無い場合には、従来設定された基準値ＰＳがそのまま使用され、ステップ１０３に戻る。
【００４６】
図４に示されるこのような処理は、例えば押し釦スイッチの動作試験において行われる。具体的には、押し釦スイッチの動作試験の最初の命令においては、移動開始時に基準値ＰＳを更新して、力指定値Ｐ０を比較的小さく設定し、ロボット１のハンド５が押し釦の表面に接触したことを検出して移動指令を停止する。次の命令においては、基準値ＰＳの更新を行うことなしに力指定値Ｐ０を比較的大きく設定し、押し釦がその終端まで達したことを検出して移動指令を停止する。そして、力指定値Ｐ０が比較的大きい場合と比較的小さい場合とにおけるそれぞれの停止位置をチェックすることにより、押し釦スイッチの動作が正常であるか否かを判断することができる。このように、切換手段３４による基準値ＰＳの切換（更新）は、押し釦スイッチの動作を確認するような場合に特に有利である。
【００４７】
図５は、本発明の第三の実施形態に基づくロボット制御装置の移動停止命令の際の動作を示すフローチャートである。図５に示されるフローチャート１５０は、例えばロボット１のハンド５が想定した対象物に接触しないなどの場合に実行される。
【００４８】
具体的には、フローチャート１５０のステップ１０７において指定方向に指定速度で移動する際には、ロボット１の移動量Ｌを記憶する。次いで、ステップ１０８において、移動量Ｌを所定の制限移動量Ｌ０と比較する。なお、所定の制限移動量は予めロボット制御装置１０の記憶部に記憶されているものとする。
【００４９】
移動量Ｌが所定の制限移動量Ｌ０よりも大きくない場合には、ステップ１０３に戻って処理を繰返す。一方、移動量Ｌが所定の制限移動量Ｌ０以上である場合、すなわちステップ１０４において力現在値ＰＣが力指定値Ｐ０より小さいと判定されていて（ステップ１０４）、移動量Ｌが所定の制限移動量Ｌ０以上である場合には、移動を停止して、予め設定された分岐先にジャンプして所定の処理を実行する（ステップ１０９）。この場合における所定の処理は、ロボットが対象物に接触しないなどの場合に行われる予め設定された処理である。
【００５０】
図６は、本発明の第四の実施形態に基づくロボット制御装置の力制限付き移動命令の際の動作を示すフローチャートである。図６に示される実施形態は、指令制御部２１により解読されたロボット指令プログラム内の力制限付き移動命令を実施する場合に実行される。
【００５１】
図６に示されるフローチャート１６０のステップ１０１’において力制限付き移動命令が開始された後、ステップ１０２〜ステップ１０４が前述したように行われる。ただし、ステップ１０４において力現在値ＰＣが力指定値Ｐ０以上である場合には、移動指令を停止し、所定の分岐先にプログラムの実行をジャンプする（ステップ１０５’、ステップ１０６’）。
【００５２】
一方、ステップ１０４において力現在値ＰＣが力指定値Ｐ０よりも小さい場合には、指定位置に向けて指定速度で更新した移動指令をサーボ制御部に出力する（ステップ１０７’）。この場合には、オーバライド設定される前の指定速度が使用される。次いで、ステップ１０８’においては、移動指令位置が指定位置に到達したか否かが判定される。
【００５３】
図示されるように、移動指令位置が指定位置に到達していない場合にはステップ１０３に戻って処理を繰返す。一方、移動指令位置が指定位置に到達した場合には、移動を停止して本来の次のプログラム命令に進む（ステップ１０８ａ、ステップ１０９’）。本発明においては、ステップ１０８ａにおいて移動を停止させるまで、移動速度に対するオーバライドの設定を無視し、オーバライド設定される前の指定速度でロボット１を移動させるようにしている。
【００５４】
図３におけるステップ１０７の場合とは異なり、図６に示されるステップ１０７’においては、ロボット１は指定方向ではなく指定位置へ向けて移動される。図６に示される手法は、例えばロボット１がその移動途中で障害物に接触した場合に用いられる。従って、ロボット１のハンド５またはワークなどが破損するのを防止すると共に、ロボット１が障害物に接触したことを検出して、それに対処するプログラムへジャンプ（ステップ１０６’）させられる。
【００５５】
図６に示される実施形態においては、移動方向ではなくて、移動先の位置（指定位置）を指定している（ステップ１０７’）。このため、本実施形態においては、ロボット１をより自由な位置に移動させられる。なお、この場合においても、接触により移動指令を停止するときには、ロボット１はサーボ制御系の追従遅れ量の分だけ行き過ぎて停止し、その追従遅れ量は移動速度に比例する。従って、接触による停止位置のばらつきを小さく抑えるために、ロボット１の移動速度には、オーバライド設定される前の指定速度が使用される。
【００５６】
図７は、本発明の第五の実施形態に基づくロボット制御装置の移動停止命令の際の動作を示すフローチャートである。図７に示されるフローチャート１７０のステップ１０５において移動指令を停止させるときに、停止位置読出手段３７によって読出された停止位置が所定の許容範囲内に在るか否かを判定する（ステップ１１０）。
【００５７】
停止位置が所定の許容範囲内に在る場合には、次のプログラム命令に進む（ステップ１１１）。一方、停止位置が所定の許容範囲から逸脱している場合には、ステップ１１２に進んで、設定された分岐先へジャンプする。
【００５８】
このように図７に示されるフローチャート１７０においては、停止位置が所定の許容範囲内に在るか否かを判定することにより、実行中の作業が正常に終了したかどうかを判断することが可能である。このような判定は、例えば、ロボット１がコネクタプラグ（オス）をコネクタソケット（メス）に挿入する場合に有用である。すなわち、コネクタプラグがコネクタソケットの入口または途中で停止した場合と、コネクタプラグをコネクタソケットに最後まで挿入させられた場合とでは、ロボット１の停止位置が異なる。従って、停止位置を通じて、コネクタプラグをコネクタソケットに適切に挿入させられたか否かを判定することが可能になる。なお、コネクタプラグの挿入に失敗した場合には、所定の分岐先にジャンプして、エラー処理のためのプログラムを実行するようにすればよい（ステップ１１２）。
【００５９】
図７に示される実施形態において、力指定値Ｐ０を非常に小さく設定した場合には、ハンド５の先端部またはハンド５により把持されたワーク（図示しない）が、固定対象物（図示しない）に触れたときの位置を検出することができる。また、力指定値Ｐ０をある程度大きく設定した場合には、ロボット１は固定対象物を比較的強い力で押して停止するので、部品の押し当てなどの作業を行うこともできる。さらに、この場合には、対象物を押す力を制限できるので、例えばコネクタプラグの挿入が失敗した場合であっても、ハンド５またはワークが破損するのを防止できる。
【００６０】
さらに、力現在値ＰＣが力指定値Ｐ０以上になったことを検出してロボットの移動指令を停止した場合には（ステップ１０４、１０５）、ロボット１はサーボ制御系の追従遅れ量の分だけ行き過ぎて停止する。ロボット１のアームまたはハンド５などには、行き過ぎ量に比例してたわみが発生し、停止状態でロボット１は対象物に対して力指定値Ｐ０よりも大きな力を発生する。従って、力現在値ＰＣが力指定値Ｐ０以上になって移動指令を停止した後で、適切な量だけ逆方向への移動指令を直ちに実行すれば、この力を早急に小さくできる。このような逆方向への移動指令を行うか否か、および逆方向への移動量はプログラム上で指定できるようにするのが望ましい。
【００６１】
なお、図面を参照して説明した実施形態においては、力現在値ＰＣは、直交３軸Ｘ，Ｙ，Ｚの力成分および各軸回りのモーメント３成分の合計６成分を標準とするが、力現在値ＰＣが３軸力成分のみ、またはロボットの移動方向の力成分のみ、または各軸回りのモーメント３成分のみであってもよい。力現在値ＰＣの各軸成分は、作業座標系に変換されたものであることが望ましく、それにより、各種判定作業を迅速に行うことが可能となる。
以上の説明では、力指定値や制限移動量を予め記憶部に設定しているとしたが、これらをロボット指令プログラムで指定できるようにすることが望ましく、それによって条件が異なる各種動作への対応が容易になる。
また、力指定値は、力成分でもモーメント成分でも指定できることが望ましく、力成分で指定された場合は力現在値ＰＣの直交３軸力成分と比較することとし、モーメント成分で指定された場合は力現在値ＰＣの各軸回りのモーメント３成分と比較することとする。
【図面の簡単な説明】
【００６２】
【図１】本発明に基づくロボット制御装置とロボットとを示す全体構成図である。
【図２】本発明に基づくロボット制御装置の機能ブロック図である。
【図３】本発明の第一の実施形態に基づくロボット制御装置の移動停止命令の際の動作を示すフローチャートである。
【図４】本発明の第二の実施形態に基づくロボット制御装置の移動停止命令の際の動作を示すフローチャートである。
【図５】本発明の第三の実施形態に基づくロボット制御装置の移動停止命令の際の動作を示すフローチャートである。
【図６】本発明の第四の実施形態に基づくロボット制御装置の力制限付き移動命令の際の動作を示すフローチャートである。
【図７】本発明の第五の実施形態に基づくロボット制御装置の移動停止命令の際の動作を示すフローチャートである。
【図８】通常の場合における移動命令の際の動作を示すフローチャートである。
【符号の説明】
【００６３】
１    ロボット
２    力センサ
５    ハンド
１０    ロボット制御装置
２１    指令制御部
２２    サーボ制御部
２３    操作パネル（指定速度調節手段）
３１    力算出手段
３２    比較手段
３３    停止位置読出手段
３４    切換手段
３６    移動指令手段
３８    解読手段
Ｌ    移動量
Ｌ０    制限移動量
ＯＲ    オーバライド値
Ｐ０    力指定値
ＰＣ    力現在値
ＰＤ    力検出値
ＰＳ    基準値
【図１】
2008188722.tif 000003
【図２】
2008188722.tif 000004
【図３】
2008188722.tif 000005
【図４】
2008188722.tif 000006
【図５】
2008188722.tif 000007
【図６】
2008188722.tif 000008
【図７】
2008188722.tif 000009
【図８】
2008188722.tif 000010