(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023122808
(43)【公開日】2023-09-05
(54)【発明の名称】ロボットの衝突検出方法及びロボットの衝突検出装置
(51)【国際特許分類】
B25J 19/06 20060101AFI20230829BHJP
【FI】
B25J19/06
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022026532
(22)【出願日】2022-02-24
(71)【出願人】
【識別番号】000002233
【氏名又は名称】ニデックインスツルメンツ株式会社
(74)【代理人】
【識別番号】100123788
【弁理士】
【氏名又は名称】宮崎 昭夫
(74)【代理人】
【識別番号】100127454
【弁理士】
【氏名又は名称】緒方 雅昭
(72)【発明者】
【氏名】猪股 徹也
(72)【発明者】
【氏名】王 ▲カク▼
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS24
3C707BS15
3C707DS02
3C707ES17
3C707HS27
3C707HT02
3C707KS21
3C707KS35
3C707KS37
3C707KV01
3C707MS07
3C707MT04
3C707NS13
(57)【要約】
【課題】小さな演算負荷量で、ロボットが低速で運動しているときであってもモータのトルク値に基づいて衝突の発生を速やかかつ確実に検出する。
【解決手段】各軸がモータによって駆動されるロボット10における衝突の発生を検出する衝突検出装置は、モータ11の速度が入力し、モータ11の速度が低いほど小さくモータ11の速度が大きいほど大きくなるようにモータ11の速度に応じて定められる衝突検出リミット値(閾値)を生成する閾値生成部53と、閾値とモータ11のトルク値とを比較して、トルク値が閾値を上回ったときに衝突が発生したと判定する比較部54と、を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
各軸がモータによって駆動されるロボットにおける衝突の発生を検出する衝突検出方法であって、
前記モータの速度が低いほど小さく前記モータの速度が大きいほど大きくなるように前記モータの速度に応じて定められる閾値と前記モータのトルク値とを比較して、前記トルク値が前記閾値を上回ったときに衝突が発生したと判定する、衝突検出方法。
【請求項2】
速度ゼロから前記モータの最大速度までの範囲が複数の速度領域に区分され、前記速度領域ごとに前記閾値が単一の値として定められている、請求項1に記載の衝突検出方法。
【請求項3】
前記ロボットは複数の軸を備えており、前記複数の軸を一斉に動かしてPTP制御により前記ロボットを目標位置に移動させるときに、前記複数の軸の各々に対する速度割合に応じて軸ごとに定められた速度に基づいて当該軸に対する前記閾値を定める、請求項1または2に記載の衝突検出方法。
【請求項4】
各軸がモータによって駆動されるロボットにおける衝突の発生を検出する衝突検出装置であって、
前記モータの速度が入力し、前記モータの速度が低いほど小さく前記モータの速度が大きいほど大きくなるように前記モータの速度に応じて定められる閾値を生成する閾値生成部と、
前記閾値と前記モータのトルク値とを比較して、前記トルク値が前記閾値を上回ったときに衝突が発生したと判定する比較部と、
を有する衝突検出装置。
【請求項5】
速度ゼロから前記モータの最大速度までの範囲が複数の速度領域に区分され、前記閾値は前記速度領域ごとに単一の値として定められる、請求項4に記載の衝突検出装置。
【請求項6】
前記閾値生成部は、前記速度領域ごとの前記閾値を記憶するルックアップテーブルによって構成されている、請求項5に記載の衝突検出装置。
【請求項7】
前記ロボットが複数の軸を備えており、前記複数の軸を一斉に動かしてPTP制御により前記ロボットを目標位置に移動させるときに、前記閾値生成部は、前記複数の軸の各々に対する速度割合に応じて軸ごとに定められた速度に基づいて当該軸に対する前記閾値を生成する、請求項4乃至6のいずれか1項に記載の衝突検出装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットにおける衝突の発生を検出する方法及び装置に関する。
【背景技術】
【0002】
ワークの搬送などに用いられるロボットは、動作中にそのアームなどが周囲の物体と干渉して衝突することがある。動作中に衝突が起きたときは、直ちにそれを検出してロボットの動作を緊急に停止させるなどの処理を行う必要がある。ロボットにおける衝突の検出には、そのアームやアーム先端のハンドなどに取り付けられた衝突センサを用いることができる。しかしながら衝突センサを設けることは、コストの上昇をもたらす。さらに、衝突センサの質量がロボットの動特性に悪影響を及ぼすことがあり、また、ロボットの構造によっては衝突センサへの配線を設けることが困難な場合もある。衝突センサによらずに衝突を検出する方法として、ロボットの各軸のサーボモータにおけるトルクを監視する方法がある。衝突が起きてロボットの動きが阻害されると、対応する軸のサーボモータのトルクが急激に上昇するので、閾値との比較によりトルクの上昇を検出した場合、衝突が発生したと判断することができる。この方法では、外部からの指令に応じてロボットを正常に動作させているときであっても指令の内容によってはトルクが大きく上昇することがあるので、衝突が発生したと判定するための閾値すなわち衝突検出リミット値を適切に設定する必要がある。平常運転において発生し得るトルクよりも小さな衝突検出リミット値を設定すると、平常運転時において衝突の発生を誤検出することになる。一般にトルクはモータの速度が大きいほど大きくなるから、誤検出を防ぐためには、モータが最大速度で駆動されるときトルクよりも大きな値に衝突検出リミット値を設定する必要がある。
【0003】
最大速度での駆動に必要なトルクよりも大きな値に衝突検出リミット値を設定したときは、モータの速度が小さいときに衝突の検出を的確に行うことができない、という課題を生ずる。低速であればモータのトルクも小さく、衝突や干渉があったときのトルクの上昇も小さい。したがって、最大速度に対応した衝突検出リミット値を使用したときは、程度の小さな衝突や干渉を検出できない恐れがある。あるいは、衝突や干渉がある程度進行してから初めてその衝突や干渉を検出する、すなわち検出にタイムラグが生ずるおそれがある。
【0004】
ロボットでの衝突発生を速やかかつ確実に検出できる技術として特許文献1は、位置指令、速度指令及び加速度指令の少なくとも1つから演算した必要駆動トルク指令要素と各軸を駆動するモータの位置、速度及び加速度の少なくとも1つとから、ロボットの運動方程式の再計算を行うことなく必要駆動トルクを算出し、算出された必要駆動トルクと各軸のモータの電流とを比較することにより衝突の発生の判別を行うことを開示している。特許文献2は、ワークを保持しているか否かに応じて駆動トルクが変化するという状況において衝突の発生を確実に検出するために、ワークの荷重がロボットに伝達されない状態とワークの荷重がロボットに伝達される状態との間の状態遷移を認識してどちらの状態であるか応じて異なる閾値を使用し、外乱推定値をこの閾値と比較して衝突の検出を行うことを開示している。特許文献3は、逆動力学計算を行って外乱を推定して衝突の発生を検出するときに、減速機のばね成分による振動のために衝突検出の精度が低下することを防ぐために、予め設定されている所定値よりもロボット動作の指令加速度が大きい場合に、衝突検出における閾値を大きくして検出感度を低下させることを開示している。
【0005】
衝突検出の精度向上に関するものではないが、特許文献4は、人間である作業者とロボットとが共存して作業を行うために、ロボットアームが移動する空間を、作業者に近接する空間である低速動作領域とそれ以外の空間である高速動作領域とに分け、ロボットアームの衝突を検出するための検知感度を高速動作領域よりも低速動作領域で高くすることを開示している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2003-25272号公報
【特許文献2】特開2016-16490号公報
【特許文献3】特開2006-116650号公報
【特許文献4】国際公開第2016/103308号
【発明の概要】
【発明が解決しようとする課題】
【0007】
ロボットにおける衝突検出の精度を高める技術として特許文献1に記載されたものは必要駆動トルクの算出が必要であり、特許文献2に記載されたものは外乱の推定値の算出が必要であり、特許文献3に記載されたものは逆動力学演算を行って外力を算出する必要がある。したがって特許文献1-3に記載された技術は、衝突検出のために必要な演算負荷が重い、という課題を有する。
【0008】
本発明の目的は、演算負荷量が小さく、ロボットが低速で運動しているときであっても衝突の発生を速やかかつ確実に検出できる衝突検出方法及び衝突検出装置を提供することにある。
【課題を解決するための手段】
【0009】
本発明の衝突検出方法は、各軸がモータによって駆動されるロボットにおける衝突の発生を検出する衝突検出方法であって、モータの速度が低いほど小さくモータの速度が大きいほど大きくなるようにモータの速度に応じて定められる閾値とモータのトルク値とを比較して、トルク値が閾値を上回ったときに衝突が発生したと判定する。
【0010】
本発明の衝突検出方法では、衝突発生の検出のためにモータのトルク値との比較に用いられる閾値をモータの速度に応じて変化させ、モータが低速で動作しているときは閾値も小さくするので、小さな演算負荷量で、高速動作時における誤検出を防ぎつつ、低速動作時における衝突発生を速やかかつ確実に検出できる。
【0011】
本発明の衝突検出方法では、速度ゼロからモータの最大速度までの範囲を複数の速度領域に区分し、速度領域ごとに閾値が単一の値として定められるようにすることが好ましい。速度領域ごとに閾値を単一の値として定めることにより、閾値の生成にルックアップテーブルを用いることが可能になって、閾値生成のための演算負荷をさらに小さくできる。
【0012】
本発明の衝突検出方法では、ロボットが複数の軸を備え、複数の軸を一斉に動かしてPTP制御によりロボットを目標位置に移動させるときに、複数の軸の各々に対する速度割合に応じて軸ごとに定められた速度に基づいてその軸に対する閾値を定めることが好ましい。このように構成することによって、PTP制御でロボットを目標位置に移動させるときにおいて、より適切な閾値を用いて衝突発生の検出を行うことができる。
【0013】
本発明の衝突検出装置は、各軸がモータによって駆動されるロボットにおける衝突の発生を検出する衝突検出装置であって、モータの速度が入力し、モータの速度が低いほど小さくモータの速度が大きいほど大きくなるようにモータの速度に応じて定められる閾値を生成する閾値生成部と、閾値とモータのトルク値とを比較して、トルク値が閾値を上回ったときに衝突が発生したと判定する比較部と、を有する。
【0014】
本発明の衝突検出装置では、衝突発生の検出のためにモータのトルク値との比較に用いられる閾値について、モータが低速で動作しているときには閾値も小さくなるように生成するので、小さな演算負荷量で、高速動作時における誤検出を防ぎつつ、低速動作時における衝突発生を速やかかつ確実に検出できる。
【0015】
本発明での衝突検出装置では、速度ゼロからモータの最大速度までの範囲を複数の速度領域に区分し、速度領域ごとに単一の値として閾値が定められるようにすることが好ましい。このように構成すれば、閾値生成のための演算量をさらに低減することができる。特に、閾値生成部が、速度領域ごとの閾値を記憶するルックアップテーブルによって構成されるようにすることが好ましい。ルックアップテーブルを用いることによって、閾値生成部の構成を簡素化できる。
【0016】
本発明の衝突検出装置では、ロボットが複数の軸を備え、複数の軸を一斉に動かしてPTP制御によりロボットを目標位置に移動させるときに、閾値生成部は、複数の軸の各々に対する速度割合に応じて軸ごとに定められた速度に基づいてその軸に対する閾値を生成することが好ましい。このように構成することによって、PTP制御でロボットを目標位置に移動させるときにおいて、より適切な閾値を用いて衝突発生の検出を行うことができる。
【発明の効果】
【0017】
本発明によれば、小さな演算負荷量で、ロボットが低速で運動しているときであっても衝突の発生を速やかかつ確実に検出できるようになる。
【図面の簡単な説明】
【0018】
【
図1】本発明の実施の一形態の衝突検出方法が適用されるロボットシステムの一例を示すブロック図である。
【
図2】トルク値に基づく衝突検出の原理を示す図である。
【
図3】本発明に基づく衝突検出の原理を説明する図である。
【
図4】搬送用のロボットの構成の一例を示す概略断面図である。
【
図5】ロボットの姿勢の変化を示す概略斜視図である。
【発明を実施するための形態】
【0019】
次に、本発明の実施の形態について、図面を参照して説明する。本発明に基づく衝突検出方法は、搬送用ロボットなどのロボットにおける衝突の発生を検出するものである。ここでいう衝突には、ロボットのアームやハンドが他の物体に文字通り衝突する場合のほかに、ロボットの動作に伴ってアームやハンドの移動が他の物体によって影響を受けあるいは妨げられる干渉も含まれるものとする。まず、本発明の実施の一形態の衝突検出方法が適用されるロボットシステムについて説明する。
図1は、そのようなロボットシステムの構成の一例を示している。
【0020】
ロボットシステムは、半導体ウエハの搬送などに用いられるロボット10と、外部からの指令に基づいてロボット10を駆動し制御するロボット制御装置(ロボットコントローラ)50とから構成されている。ロボット10は、そのアームやハンドなどを駆動するモータ11と、モータ11に機械的に接続してモータ11の回転位置を検出するエンコーダ
12とを備えている。ロボット10は、通常、複数の軸を有して軸ごとにモータ11を備えるが、
図1では、説明のため、ロボット10において1軸分のモータ11とそのモータ11に接続するエンコーダ12が描かれている。
【0021】
ロボット制御装置50は、外部から入力する指令に基づいてロボット10の軌道を算出し、ロボット10の各軸のモータ11に対する位置指令値を出力する演算部51と、演算部51から出力される位置指令値に基づいてモータ11を駆動する駆動部52を備えている。エンコーダ12からはモータ11の回転位置を示す信号が出力しており、この信号が駆動部52にフィードバックされることによって、駆動部52は、モータ11のサーボ制御を実行する。ロボット10のティーチング(教示)を行うときはロボット制御装置50に対してティーチングペンダントが接続されるが、ティーチングペンダントからの指令も外部指令として演算部51に入力する。ここで述べた演算部51及び駆動部52を備える構成は、産業用ロボットの制御に用いられる一般的なロボット制御装置の構成と同じである。
【0022】
図1に示すロボット制御装置50は、ロボット10における衝突の発生を検出するために、さらに、閾値である衝突検出リミット値を出力する閾値生成部53と、モータ11のトルクの値と衝突検出リミット値とを比較する比較部54とを備えている。比較部54は、例えばコンパレータ回路によって構成されており、トルク値が衝突検出リミット値を上回ったときに、ロボット10において衝突が発生したと判定する。比較部54での判定結果は衝突検出結果として外部に出力される。衝突発生時にロボット10を緊急停止させるためなどに、この衝突検出結果を演算部51に入力させてもよい。本発明に基づく衝突検出方法において、モータ11のトルクの値としては、モータ11のサーボ制御のために駆動部52の内部で計算されるトルク指令値を用いてもよいし、モータ11の電流値そのものを使用してもよいし、モータ11に関して実際に測定されたトルク値を用いてもよい。モータ11に関して実際に測定されたトルク値は、何らかの実測値に基づいて逆動力学計算やモデル演算を行って得られた値であってもよい。閾値生成部53と比較部54とによって、本発明に基づく衝突検出装置が構成される。閾値生成部53の詳細については後述する。
【0023】
本実施形態の衝突判定方法は、モータ11のトルク値と閾値である衝突検出リミット値とを比較することに基づくものである。
図2は、この衝突判定方法の原理を説明する図であり、横軸が時間であって縦軸がモータ11のトルクである。
図2(a)に示すように、平常動作時のモータ11のトルクは、時々刻々と変化するが、一定の範囲内に収まっている。ここでロボット10の例えばアームが、モータ11によって駆動されているときに時刻Pにおいて他の物体と衝突すると、アームの動きが妨げられるから、この妨げる力に対抗するようにモータ11のトルク値が急上昇する。急上昇したトルクが予め定められている衝突検出リミット値を超えたことを検出することにより、衝突の発生を検出できる。モータ11のトルクは、
図2(b)に示すように、そのモータ11が低速で動いているのか高速で動いているのかによって異なる。低速動作中はトルクは相対的に小さく、高速動作中はトルクは相対的に大きい。単一の衝突検出リミット値を用いてロボット10における衝突の発生を検出しようとするときは、衝突検出リミット値は、平常動作時に最大速度で回転しているモータ11に起こり得るトルクよりも大きな値とする必要がある。
【0024】
高速動作時のトルクに基づいて衝突検出リミット値を設定すると、この衝突検出リミット値は、モータ11が低速で動作している場合には大きすぎる値であって、ロボット10での衝突の発生を適切に検出するためには不適切である。
図3は
図2(a)と同様の図であるが、モータ11が比較的低速で動作しているときのトルクの変化を示している。図に示される衝突検出リミット値は、モータ11の最大速度に基づいて設定されたものである。時刻Pにおいて衝突が発生すると、トルク値は急上昇するが、衝突検出リミット値には至らないので、その時点では衝突の発生は検出されない。そのままトルクは上昇を続け、時刻Qにおいてようやく衝突検出リミット値に到達するので、時刻Qにおいて衝突の発生が検出されることとなる。時刻Pから時刻Qまでの時間は、検出のタイムラグに相当する。検出にタイムラグが生じると、ロボットが被衝突物に対してより大きな力を作用させる、あるいはロボットが被衝突物に対してさらに食い込むように動くこととなるので、衝突検出におけるタイムラグは、例えば安全確保の上で、極めて好ましくない。また、衝突の程度が小さい場合、例えば、アームが小さな物体に衝突したが、衝突の結果、物体がアームの軌道から外れる位置に移動したのでアームが引き続き動き続けることができる場合には、衝突によるトルクの上昇量が小さくて衝突検出リミット値まで到達しないことがあり、衝突の発生が検出されないことがある。規模が小さい衝突とはいえ検出できないことは、これも安全確保の上で極めて好ましくない。
【0025】
本実施形態の衝突検出方法では、ロボットが低速で運動しているときであっても衝突の発生を速やかかつ確実に検出できるようにするために、モータ11の速度が小さいときには衝突検出リミット値が小さくなり、速度が大きいときには衝突検出リミット値が大きくなるように、モータ11の速度に応じて閾値である衝突検出リミット値を変化させる。
図3において矢印は、低速動作時には衝突検出リミット値を小さくすることを示しており、これにより、実際に衝突が発生した時点Pにおいて、タイムラグなしに衝突発生を検出できるようになる。モータ11の速度はエンコーダ12からのモータ位置を示す信号を微分することによって得られるものであり、駆動部52において常時算出されているから、閾値生成部53は、駆動部52からモータ速度を受け取って、そのモータ速度に応じて閾値である衝突検出リミット値を生成し、比較部54に出力する。あるいは、演算部51においてモータ11の速度を計算しているのであれば、図において破線で示すように閾値生成部53は、演算部51からモータ速度を受け取ってもよい。実際にはモータ速度について、速度ゼロからモータ11の最大速度までの範囲を複数の速度領域に区分し、区分された速度領域ごとに単一の値として衝突検出リミット値を設定することが好ましい。このように速度領域ごとに衝突検出リミット値を設定することとすると、ルックアップテーブルによって閾値生成部53を実現することが可能になり、閾値生成部53の構成を簡素なものとして衝突検出リミット値の算出のための演算量を削減することができる。
【0026】
表1は、従来の方法による衝突検出リミット値の例を示している。モータ11の現在の速度が、そのモータ11の最大速度を100%とする百分率で表されているとして、従来の方法では、モータ速度が0%から100%の間で衝突検出リミット値は一律に例えば200cN・mと設定される。これに対して表2は、本実施形態での衝突検出リミット値を示している。ここに示す例では、モータ11の速度範囲が、0%以上10%以下、10%超20%以下、20%超30%以下のように、10%刻みで10の速度領域に区分されている。最も低速である速度領域、すなわち0%以上10%以下の速度領域には83cN・mが衝突検出リミット値として設定され、次の速度領域、すなわち10%超20%以下の速度領域には96cN・mが設定され、速度が最も高い速度領域すなわち90%超100%以下の速度領域に対しては200cN・Nが設定されている。
【0027】
【0028】
【0029】
速度領域ごとの衝突検出リミット値は、例えば、速度を変えてモータ11を駆動し、そのときのトルク波形を計測し、そのときの最大トルクに適切な安全率を乗じることによって算出することができる。このようにして事前に算出されたモータ速度ごとの衝突検出リミット値は、例えばルックアップテーブルとして構成された閾値生成部53に格納される。
【0030】
以上、ロボット10における特定の1つの軸のモータ11についての衝突検出リミット値について説明した。実際にはロボット10には複数の軸が設けられており、軸ごとに衝突検出を行う必要があるから、軸ごとにその軸のモータ速度に応じて衝突検出リミット値を変化させる必要がある。以下、そのような例について説明する。
図4は、複数の軸を有するロボット10の一例を示している。図示されるロボット10は、3リンク型の水平多関節型ロボットであり、半導体ウエハの搬送などに用いられるものである。ロボット10は、基台21と、基台21に設けられた昇降部22と、昇降部22に基端側が取り付けられたリンク機構23と、リンク機構23の先端部に対して基端側が回転可能に取り付けられたアーム26と、アーム26の先端に回転可能に保持されてワークを保持する2つのハンド27,28とを備えている。ハンド27は上側のハンドであり、ハンド28は下側のハンドである。昇降部22は、モータ11Zにより駆動されて垂直方向(図示Z方向)に沿って昇降する。ここでは説明のため、昇降部22の昇降をZ軸の動きと呼ぶこととする。したがって、モータ11ZはZ軸のモータである。
【0031】
リンク機構23は、その先端部すなわちアーム26が取り付けられている位置の移動軌跡が直線となるように構成されており、基台21側に位置して昇降部22に回転可能に保持される基台側リンク24と、アーム26側に位置するアーム側リンク25とを備え、両方のリンク24,25はリンク関節部Jによって互いに回転可能に連結されている。基台側リンク24は、昇降部22に連結され、昇降部22に内蔵されたモータ11Aによって回転可能に保持されている。基台側リンク24には、基台側プーリ24a、アーム側プーリ24b及びベルト24cが内蔵されており、ベルト24cは基台側プーリ24aとアーム側プーリ24bの間で架けわたされている。基台側プーリ24aとアーム側プーリ24bとの径の比は2:1となっている。アーム側プーリ24bはアーム側リンク25に連結されており、基台側リンク24が基台側プーリ24aの回転中心を中心として回転したとき、基台側プーリ24aとアーム側プーリ24bとの回転角度比、すなわち基台側リンク24とアーム側リンク25との回転角度比は1:2となるように構成されている。さらに、基台側リンク24とアーム側リンク25の長さは等しい。その結果、モータ11Aを駆動することによってリンク機構23の先端部が移動することとなるが、その移動軌跡は、所定の直線上に規制される。リンク機構23を移動させる動きをA軸の動きと呼ぶ。したがってモータ11AはA軸のモータである。
【0032】
アーム26は、アーム側リンク25の先端に連結されており、アーム側リンク25に内蔵されたモータ11Bによって回転可能に保持されている。モータ11Bを駆動することによって、アーム26は、その基端側すなわちリンク機構23との接続位置を中心として回転する。アーム26のこの動きをB軸の動きと呼ぶ。モータ11BはB軸のモータである。ハンド27,28は、それぞれ、アーム26に内蔵されたモータ11C,11Dによって回転可能に保持されており、モータ11C,11Dによって駆動されることによって、アーム26の先端を中心として回転する。モータ11Cによるハンド27の動きをC軸の動きと呼び、モータ11Dによるハンド28の動きをD軸の動きと呼ぶ。モータ11C,11Dは、それぞれ、C軸のモータ、D軸のモータである。このように
図4に示すロボット10は、A軸、B軸、C軸、D軸及びZ軸からなる5軸のロボットであり、5個のモータ11A,11B,11C,11D,11Zを備えている。モータ11A,11B,11C,11D,11Zはロボット制御装置50により一括して制御される。衝突検出のために、ロボット制御装置50には、軸ごとに閾値生成部53と比較部54が設けられる。
【0033】
図4に示すロボット10は搬送用のロボットであるので、ワークの搬送のために、ある位置から別の位置に移動するように制御される。その際、移動前のハンド27,28の位置と移動後のハンド27,28の位置(目標位置)のみを指定するPTP(ポイント-ツー-ポイント;point-to-point)制御を用いるのが一般的である。PTP制御では、軸ごとに始点と終点との間でその軸がどれだけ動くべきかを決定した後は、軸ごとの移動量によって各軸が独立に動かされる。PTP制御に必要な演算は、ロボット制御装置50において演算部51が実行する。PTP制御を行なう場合に、移動の始点において各軸が一斉に動き出しかつ移動の終点において各軸が同時に停止させるように制御することを考えると、ある軸ではそのモータの最高速度で動作させるのに対し、他の軸では当該軸の最高速度未満でモータを動作させることになる。以下、そのような制御を行なうときの衝突検出リミット値の設定について説明する。
【0034】
図5は、
図4に示したロボット10の移動前の姿勢(姿勢A)と移動後の姿勢(姿勢B)を示す概略斜視図である。ロボット10の各軸の軸パラメータを表3に示す。パルスレートrは、対応するモータの位置を1°変化させるために、ロボット制御装置50内の演算で用いるパルス数がどれだけ必要かを示している。最高速度V
maxは、軸ごとのモータについてそのモータの最高速度を示している。ここで姿勢Aから姿勢Bへとロボット10をPTP制御により移動させることを考える。表3において、移動前の各軸の軸座標θ
Aが「姿勢Aでの軸座標」に示され、移動後の各軸の軸座標θ
Bが「姿勢Bでの軸座標」に示されている。これらから、移動による軸座標の変化(すなわち座標の差分Δ)が算出され、そのように座標が変化したときのパルス変化量が算出される。パルス変化量が求められれば、軸ごとの移動量に関してその軸のモータを最大速度で動かしたときの所要時間が算出される。これらの値も表3に示されている。ここで示す例では、Z軸の所要時間が0.32秒であって5軸の中で最大であるから、PTP制御で動作させるときは、Z軸以外の軸は、Z軸での所要時間に合わせて低速で動くことになる。表3において「Z軸基準動作時の速度割合」はZ軸のモータ11Zをその最高速度で動作させたときに、他の軸のモータをどのような速度で動作させればよいかを、当該軸のモータの最高速度を100%としたときの値で示している。この割合によって、姿勢Aから姿勢Bへとロボット10をPTP制御で移動させるときの各軸のモータの動作速度が決まる。
【0035】
ティーチングを行うときなどは、いずれかの軸でその軸のモータが最高速度となるように動作させずに、より低速でモータを動作させる。例えば、全体速度の50%でロボット10を動作させるときは、各軸のモータの速度は、表3の「全体速度50%時の速度割合」に示す値となる。各軸の衝突検出リミット値は、全体速度の50%とするのではなく、A軸についてはA軸の最高速度の19%に対応する値、B軸についてはB軸の最高速度の28%に対応する値というように、各軸ごとにその軸の速度に応じた値とする。表2に示すように速度領域ごとに衝突検出リミット値が定められているのであれば、A軸については10%超20%以下での値、B軸については20%超30%以下での値を使用する。ロボット制御装置50では、目標位置や全体速度の何%でロボットを動作させるかという情報は演算部51に指令として与えられるので、演算部51は各軸のモータの動作速度を算出でき、ロボット制御装置50において軸ごとに設けられる閾値生成部53には、当該軸について算出されたモータ速度が与えられる。このようにして各軸に対してその軸の速度に応じて衝突検出リミット値を割り当てることで、より適切な衝突検出リミット値を用い衝突検出を行うことができるようになる。
【0036】
【0037】
以上説明した本実施形態の衝突検出方法によれば、モータのトルク値が衝突検出リミット値を超えたときに衝突発生と判定する場合において、モータ速度に応じて衝突検出リミット値を変化させるので、ロボットが低速で運動しているときであっても衝突の発生を速やかかつ確実に検出できるようになる。また、速度ゼロからモータの最大速度までの範囲を複数の速度領域に区分し、速度領域ごとに1つの衝突検出リミット値を定めるようにすることにより、モータ速度に応じた衝突検出リミット値の生成にルックアップテーブルなどを移用できるようになって演算負荷を軽減することが可能になる。
【符号の説明】
【0038】
10…ロボット;11,11A,11B,11C,11D,11Z…モータ;12…エンコーダ;22…基台;23…リンク機構;26…アーム;27…上側ハンド;28…下側ハンド;29…昇降部;50…ロボット制御装置:51…演算部;52…駆動部;53…閾値生成部;54…比較部。