作業座標系の設定方法及び作業座標系の異常検出方法
【課題】本発明は、ハンドと対象ワークとの相対的位置精度が高く、再現性に優れる作業座標系の設定方法及び作業座標系の異常検出方法を提供する。
【解決手段】ロボット1と対象ワークの相対的な位置関係を規定する作業座標系の設定方法において、ロボット1のハンド4が対象ワークに接触したことを検出するために力センサ6を用いることと、力センサ6からの検出値が予め設定された閾値を超えたときにハンド4が対象ワーク9に接触したと判断することと、接触位置を記憶することと、接触位置から作業座標系Cを算出すること、を備える。
【解決手段】ロボット1と対象ワークの相対的な位置関係を規定する作業座標系の設定方法において、ロボット1のハンド4が対象ワークに接触したことを検出するために力センサ6を用いることと、力センサ6からの検出値が予め設定された閾値を超えたときにハンド4が対象ワーク9に接触したと判断することと、接触位置を記憶することと、接触位置から作業座標系Cを算出すること、を備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットと対象ワークの相対的な位置関係を規定する作業座標系の設定方法及び作業座標系の異常検出方法に関する。
【背景技術】
【0002】
一般に、ロボットの作業座標系を設定する方法として、特許文献1〜3で開示されているものが知られている。特許文献1では、ロボットの絶対座標系における2点あるいは3点を教示し、それらの教示位置情報から座標系変換行列を求めることで作業座標系を設定する方法を開示する。
【0003】
特許文献2は、タッチセンサを有するロボットを操作して、設定したい直交座標系の直交する3平面にタッチセンサを接触させた位置から作業座標系を設定する方法を開示する。
【0004】
特許文献3は、複数の点を実際に教示することなく、任意座標系の各軸についての方向余弦の数値を入力する方法、又は力センサを搭載したロボットにおいて、力センサに設定したい2軸方向について並進または回転の力を加えることで作業座標系を設定する方法を開示する。
【0005】
設定した座標系の異常検出方法としては、作業座標系を設定する対象ワークの複数の設定位置へハンドを移動させ、ハンドの実際の接触位置と設定位置とを比較し、ずれ量を求めることで、設定した座標系が異常であることを検出する方法が知られている。
【0006】
【特許文献1】特開昭61−49205号公報
【特許文献2】特開昭61−145612号公報
【特許文献3】特開平7−84618号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ハンドリングや溶接、ワークの組立てなど複雑多岐にわたる作業ができる産業用ロボットにおいて、アーム先端に装着するエアハンドなどの作業ツール(以下、「ハンド」という)の基準点となるツール先端点やハンドを適切な位置と姿勢(希望位置)に配置し、その希望位置を記録する教示作業を効率的に行うために、一般に作業座標系を設定する。設定した作業座標系の軸方向に沿ってハンドが移動するように制御すると、座標系の原点や軸方向を事前に知っている操作者は直感的な操作によって簡易に教示作業ができ、またロボット言語を利用したプログラミングやシミュレーション環境によってロボットの動作を指定する場合においても作業座標系の座標値を入力することで効率的な作業ができる。このように作業座標系を設定することで効率的な教示作業ができるが、従来の座標系の設定技術では、次のような課題があった。
【0008】
特許文献1で開示されている方法、すなわち、平面である絶対座標系において、2点あるいは3点の教示作業により得た位置情報を基に作業座標系を設定する方法では、当然ながら教示位置がずれると設定した作業座標系もずれることとなる。このため、作業座標系を精度良く設定したい場合には、複数の点をそれぞれ正確に教示する必要がある。それには、設定したい目標座標系(作業座標系)と関係する座標対象物へわずかに接触させた位置、またはわずかに離れた位置の教示作業を行う必要がある。しかし、この作業は極めて厳密且つ微妙なロボット操作が要求され、短時間で正確な作業座標系の設定を行うことは難しく、また操作者の熟練度合いによっては、作業座標系の設定誤差(ずれ)が出やすいという問題点がある。
【0009】
さらに、センサを使用しないため、接触/非接触の判断は操作者の主観によるため、操作者によって設定された座標系が異なる場合がある。また、同一の座標対象物に対して同じ希望位置を教示することは難しく座標系設定の再現性が悪いという問題があった。また、接触/非接触の判断作業のために顔や手をロボットの手先に近づかざるを得ない場合があり、安全な作業ができないという問題があった。
【0010】
ここで、対象ワークは、設定したい目標の作業座標系に関係し、ハンドが接触可能な物体である。例えば、ある製品をトレーに詰め込む作業のために、トレーもしくはトレーを載せる作業台等を対象ワークと定義し、作業座標系の設定を行うこととする。
【0011】
特許文献2で開示されている方法、すなわち、設定したい直交座標系の直交する3平面にタッチセンサを接触させた位置から座標系を設定する方法は、タッチセンサのオン-オフのタッチ検出信号を検出することで容易かつ高感度に接触/非接触の判断をでき、作業者の熟練度や主観によらないで作業座標系の設定をすることができる。しかし、ハンドで保持する一般のタッチセンサは、検出可能な方向が一方向であることから3次元の作業座標系を設定するためには複数個のタッチセンサが必要となり、タッチセンサの導入コストがかかるという問題がある。さらに、タッチセンサの把持方法や取付け位置の確保のためにハンドの設計に余分な制約が付き、設計の自由度が減ってしまう問題がある。
【0012】
また、タッチセンサの検出原理によっては検出対象物の材質(例えば、磁性体と非磁性体)によってタッチの検出感度が変化するため座標対象物の材質や、確実なタッチ検出のためにタッチする対象面積を十分に広く確保する点など座標対象物への制約が付加される問題がある。
【0013】
さらに、実際の接触位置はタッチセンサが検出した位置であるため、タッチセンサの検出部からハンドまでの距離だけハンドと座標対象物が離れた位置関係となり、ハンドと座標対象物の相対的な位置関係が分かりにくい作業座標系となる問題がある。このため、設定した作業座標系上で教示作業する際にその距離を補正しなければならない場合がある。また、タッチセンサの検出部からハンドまでの距離が正確にわからないときには、補正は難しく、結局注意を払って教示位置を指示しなければならない場合があり、作業座標系の設定を効率的に出来ても教示作業を効率よくできないという問題がある。
【0014】
また、タッチセンサからのタッチ検出信号を受け取り、ロボットの移動を直ぐに止めるようにロボット制御装置に指令を出すようにしているが、実際にはロボットが即時に停止することはなく、通常は移動速度に依存した距離を惰走して停止することとなる。一般にロボットの教示作業及び試運転では、速度可変機能を使い操作パネルなどからオーバライドを指定して移動速度を下げてロボットを動作させ、自動運転中はプログラムなどで指定した速度で(移動速度を上げて)ロボットを動作させている。そのため、移動速度が変わることにより接触後の停止位置が変化し、移動速度によって設定される作業座標系が異なるという問題がある。
【0015】
特許文献3で開示されている方法、すなわち、教示作業を行わずに数値データを直接入力する、または力センサに対し加えた力の方向によって座標系を設定する方法では、教示作業を行う必要がないために短時間で、かつ簡易な操作で作業座標系を設定できる。しかし、操作者自身の感覚的判断に基づいて作業座標系の設定が行われるため、高い相対的な位置精度を実現する作業座標系の設定は、非常に難しく、複数回の試行錯誤を必要とするという問題がある。
【0016】
力センサを用いた作業座標系の設定方法では、力情報をフィードバックし所望の力となるよう制御する力制御動作中(例えばバリ取り作業中)にのみ使用される座標系の設定方法がある。しかし、力制御動作中以外に使用できる座標系を設定するため力センサを用いた座標系の設定方法はこれまでになく、力センサ以外の他のセンサを使用するなど、従来方法を使わなければならないという問題がある。
【0017】
また、設定後の作業座標系に対して希望通りに座標設定できたか、座標設定後にロボットが何らかの作業を行った後で設定した座標系がずれてきてはいないか、また、ハンドをぶつけてしまいハンドが曲がり対象ワークとの相対的位置関係がずれてはいないか等を確認したい場合がある。一つの方法として、ハンドを目視にて対象ワークの特定点(例えば、原点やXY平面上の点)へ移動させ、そのときの理論上の座標値と読取った座標値との差を求めることで座標系と対象ワークとのずれを把握する方法がある。逆の方法として、設定後の座標上での希望座標値へハンドを移動させ、対象ワークの特定点とのずれを測定し比較することで設定後の座標系を評価する方法がある。しかし、いずれも操作者の主観による判断によって決まるため、座標系のずれ量は測定者に依存すると共に、この作業を短時間で行うことができないという問題がある。タッチセンサを用いた場合は、上述したようにセンサの導入コストが嵩むという問題や、対象ワークへの制約等、上に挙げた問題がある。
【0018】
本発明は、ハンドと対象ワークとの相対的位置精度が高く、再現性に優れる作業座標系の設定方法を提供することを目的とする。また、設定された作業座標系と目標とする作業座標系との位置ずれ量を簡易に評価できる作業座標系の異常検出方法を提供する。
【課題を解決するための手段】
【0019】
本発明では、ロボットと対象ワークとの接触/非接触を判断するために力センサを使用し、ロボットと対象ワークの複数の接触点に基づいて作業座標系を設定する作業座標系の設定方法および作業座標系の異常検出方法であり、力センサにより検出された検出値と予め設定された閾値とを比較することにより、ロボットと対象ワークとの接触/非接触を判断する。作業座標系の設定方法および作業座標系の異常検出方法において、力センサを備えたロボットを使用することができる。力センサの装着位置は制限されるものではなく、ハンドのフィンガーが対象ワークへ接触をすることを検出できればよく、力センサをフィンガーの根元に装着したり、フィンガーの先端部に装着したりすることもできる。ハンドに限られず、溶接やバリ取り等を行う作業ツールに力センサを装着することもできる。力センサを備えたロボットを使用することで、タッチセンサを使用する場合に比べて、ハンドの設計に余分な設計仕様を付加することなく自由な設計が可能となる。なお、力センサを作業台などのワークを載せる台などに設置することもできる。
【0020】
力センサを備えたハンドは、力センサ等との結合手段であるベース部を持ち、開閉動作を実現するエアチャックなどのアクチュエータ部、ワークを把持するフィンガー部を備えることもできる。これにより、フィンガー先端に働く外力を力センサによって検出することができる。
【0021】
力センサからの力検出情報を活用することにより、ハンドが対象ワークに接触したかどうかは、例えば、事前に設定された閾値を力検出値が超えたときに接触したと判断することができる。閾値を設定することにより、作業者の熟練度によって異なる接触判断を客観的に行うことができる。また、接触したか非接触なのかを力検出情報により確認できるため、教示作業中にハンド先端(フィンガー部)に顔や手先を近づける必要がなくなるため、より安全に作業座標系の設定作業を行うことができる。
【0022】
また、接触/非接触の確認は力検出情報を使用することで簡易に短時間でき、ハンドをアプローチ点から座標対象物に接触させ、接触/非接触の判断のもと、ハンドの移動を停止する一連の動作をロボットプログラムで自動的に行うことができることにより、短時間で座標系の設定ができる。
【0023】
本発明の一態様は、力センサからの検出情報により、ロボットアームに装着されたハンドと対象ワークとの接触/非接触を判断するロボットを使用し、作業座標系を設定する対象ワークにハンドが接触したことを判断し、該ハンドの接触位置を記憶し、該接触位置から前記作業座標系を算出する作業座標系の設定方法を提供する。
【0024】
これにより、ロボットと対象ワークとの接触/非接触を判断するために力センサを使用することで、位置精度が高く、再現性に優れる作業座標系の設定を行うことができる。対象物ワークへの接触を力検出情報により客観的に判定できるので操作者の主観によらない接触判定による座標系設定が可能となる。
【0025】
また、本発明の他の態様は、力センサからの検出情報により、ロボットアームに装着されたハンドと対象ワークとの接触/非接触を判断するロボットを使用し、作業座標系を設定する対象ワークにハンドが接触したことを判断し、該ハンドの接触位置を記憶し、該接触位置から座標設定位置を算出し、該座標設定位置に前記ハンドを移動して教示し、教示位置から作業座標系を算出する作業座標系の設定方法を提供する。
【0026】
このため、従来の座標系設定方法を活用して、座標系の設定を行うことができる。例えば、教示位置を基に座標系を設定する場合に、教示位置を決める作業を力センサの力検出情報をもとに行い、座標系設定は従来の方法を使って行うことができる。したがって、新たに、座標系を算出するために計算プログラムを新たに作ることなく、作業座標系を設定することができる。
【0027】
また、本発明の他の態様は、前記作業座標系を設定するステップと、設定された作業座標系において、ハンドと対象ワークが相対するように、ハンドの位置・姿勢を修正するステップと、修正したハンドの位置・姿勢に基づいて作業座標系を設定するステップを備える。これにより、対象ワークへ接触するハンドの面と対象ワークの接触面が重なるようにハンドの位置と姿勢が修正され、両者の接触状態が安定する。これにより、設定される座標系はハンドと座標対象物の相対的位置精度が高い座標系となる。また、このように設定した座標系の設定は再現性が高い特徴を持つ。
【0028】
作業座標系を更新する処理では、予め定めておいた繰返し回数だけ、座標系の設定とハンドの位置姿勢を修正するステップを繰返し行うことができるが、他の方法として、設定済みの作業座標系と新たに設定された作業座標系の変化の大きさ、例えば、前回算出された作業座標系の原点位置や座標軸の方向と今回算出された作業座業系の原点位置や座標軸の方向の変化の大きさが閾値以下となるまで繰り返すこともできる。
【0029】
また、本発明の他の態様は、ハンドの移動速度に依存して、ハンドが対象ワークに接触する位置が変わる問題に対しては、ハンドを指定した一定の速度で移動させることができる。また急加速を行うと力センサの先に取付けたハンドの慣性力が働き、接触を誤検出する場合があるため、指定速度で移動を指示する場合の加速度は小さい方が望ましい。
【0030】
また、本発明の他の態様は、垂直多関節タイプのロボットによる、対象ワークに対する接触位置を6点以上とすることができる。3次元空間で作業座標系を設定するためには、少なくとも3つの座標情報が必要である。例えば、右手系直交座標系が既定されている場合、作業座標系の原点座標と、+X軸方向を示す1つの座標と、XY平面上の+Y方向を示す一つの座標である。3つの座標を定めるための対象ワークへの接触位置は、原点を決定するために互いに直交する3方向(X,Y,Z)からのアプローチによる3点、X軸方向を示す一つの座標を決定するための2方向(Y,Z)からのアプローチによる2点、XY平面上の+Y方向を示す一つの座標を決定するための1方向(Z)からのアプローチを必要とする。
【0031】
また、本発明の他の態様は、水平多関節タイプのロボットによる、対象ワークに対する接触位置を4点以上とすることができる。3次元空間での作業座標系を設定するために、少なくとも2つの座標情報が必要である。例えば図右手系直交座標系が既定されている場合、作業座標系の原点座標と、+X軸方向を示す1つの座標である。水平多関節タイプのロボットの動作域からXY平面の傾きが設定される。原点を指定することでXY平面の高さが決まり、+X方向を示す1点によってX軸方向が決まる。既定されている右手系直交座標系にならい+Z軸方向を通常ロボットの高さ方向と一致させ、上側をプラス方向と決めることでY軸方向も自動的に決定できる。先の2つの座標を定めるために対象ワークへの接触位置は、原点を決定するために互いに直交する3方向(X,Y,Z)からのアプローチによる3点、+X軸方向を示す一つの座標を決定するための1方向(Y)からのアプローチを必要とする。
【0032】
また、本発明の他の態様は、前記作業座標系の設定方法で作業座標系を設定することと、前記作業座標系で前記ハンドを前記対象ワークの任意の設定位置に接触させることと、前記作業座標系における前記設定位置と前記ハンド実際の位置とのずれ量を算出することと、前記ずれ量が所定の閾値を超えたときに前記作業座標系が異常であると検出することと、を備える作業座標系の異常検出方法を提供する。
【0033】
この異常検出方法は、力センサの力検出情報をもとに接触非接触の判断ができるので、判断時間を操作者による判断よりも短時間に行うことができ、また、接触を判定する閾値を決めておくことで客観的な接触判定ができる。ずれ量を比較したい接触位置に効率よくハンドを移動させることができる。またタッチセンサなど別のセンサを導入することもなく座標系のずれ等の異常検出ができる。
【発明の効果】
【0034】
以上の如く、ロボットと対象ワークとの接触/非接触を判断するために力センサを使用することで、対象ワークにハンドを接触させた位置で座標系を設定することができる。従って、位置精度が高く、再現性に優れる作業座標系を設定することができる。
【発明を実施するための最良の形態】
【0035】
以下、図面を参照しながら本発明を詳細に説明する。図1に本発明の一実施形態である垂直多関節型ロボット及びロボットコントローラを含むシステムの全体構成を示す。ロボット1は、ハンドでワークを把持するハンドリングロボットであるが、本発明はこれには限定されない。図示するロボット1は、ロボットアーム3とハンド4との間に装着された6軸力センサ6を有している。力センサ6は、直交3軸(X,Y,Z)方向の力と各軸回りのモーメント(Mx,My,Mz)を検出できる。検出感度は、高いほうが望ましく、例えば10gf以下の検出感度のものを好適に使用することができる。ハンド4は、力センサ6の取付け部(図示せず)と、エアチャックなどの駆動部(図示せず)と、対象ワーク9などを把持するフィンガー5と、を備えている。本実施形態では、力センサ6をロボットアーム3に装着することによって、フィンガー5に働く外力を検出することができるようになっている。なお、力センサ6の装着位置は、本実施形態に制限されるものではなく、フィンガー5に働く外力を検出することができる位置であれば、他の位置に装着することもできる。
【0036】
図2には、図1に示すロボット1を使用して設定される作業座標系Cが示されている。図2では、作業座標系Cの座標原点が対象ワーク9のコーナ部に設定される例が示されている。対象ワーク9は、組み立て用ワークや加工用ワークを取り扱う作業台等に相当する。
【0037】
図3には、本実施形態のロボットコントローラ2の構成が示されている。ロボットコントローラ2は、操作パネル10と、指令制御部11と、サーボ制御部12とを備えている。サーボ制御部12へ移動指令を与える指令制御部11は、主要な機能として、力センサで力を算出する力算出部14と、接触か非接触かを判定する接触判定手段15と、接触時にロボット1への移動停止を指示する移動停止手段16と、接触したときの接触位置を記録する接触位置記録手段17と、接触位置に基づいて作業座標系Cを算出する座標系算出手段18と、を持っている。サーボ制御部12は、指令制御部11からの移動指令に追従するようにロボット1の各関節を駆動するモータ(図示せず)をサーボ制御する。また、操作パネル10には、テスト運転や教示作業時のロボット1の移動速度を低く指定するため、又は自動運転時にはプログラムで指示した移動速度となるように速度を可変できる速度可変手段19を持ち、ロボット1が検出した異常状態を操作者に伝えるアラーム表示手段20を持っている。アラーム表示手段20の一つの機能として、設定された作業座標系Cの異常を検出する機能がある。
【0038】
図6には、本実施形態のロボット1を使用して作業座標系Cを設定する一つの手順(フローチャート)が示されている。作業座標系Cが設定される対象ワーク9は、予めロボット1の作業領域内に配置されているものとする。作業座標系Cを設定するにあたり、ハンド(フィンガー5)4を対象ワーク9に接触させる目標位置としての目標接触位置と、接触させる予定数である接触予定数Nを決定しておく(ステップSA1)。例えば、垂直多関節タイプのロボット1で、3次元の作業座標系Cを右手系直交座標系として設定する場合は、図4に示すように、接触予定数を少なくとも6点とすることができる。この場合、座標原点を決定するために3点、+X(プラスX)方向への位置のために2点、XY平面上で+Y(プラスY)方向の1点とすることができる。
【0039】
なお、図5に示す水平多関節ロボット25を使用して、3次元の作業座標系Cを右手系直交座標系として設定する場合は、接触予定数を少なくとも4点とすることができる。この場合、座標原点を決定するために3点、+X(プラスX)方向への位置のために1点とすることができる。原点を指定することでXY平面の高さが決まり、ロボット25の動作域からXY平面の傾きが設定され、+X方向を示す1点によってX軸方向が決まる。
【0040】
図6に示すように、作業座標系Cの設定では、ステップSA2で1番目の目標接触位置を読出し、ステップSA3でその位置へハンド4をアプローチ(移動)させる。ロボットコントローラ2の接触判定手段15で接触したと判断されるまで(ステップSA5)、ハンド4の移動を続ける(ステップSA4)。ハンド4の移動速度は、ハンド4が対象ワーク9に接触したときに、ハンド4が対象ワーク9に食い込んだり、ハンド4のアプローチ方向によって食い込み量が変化したりするのを防止するために、動作プログラムで指定された一定の速度で移動させることが好ましい。
【0041】
ハンド4が対象ワーク9に接触した場合には、コントローラ2の移動停止手段16により移動停止指令をサーボ制御部12に送り、ロボット1の移動を停止させる(ステップSA6)。次に、ステップSA7で接触位置を接触位置記録手段17に記録する。ステップSA8及びステップSA9で、これを繰返して予め設定した接触予定数N回になるまで、接触位置への移動と接触位置の記録を繰返し実行する。ステップSA10で、作業座標系Cの設定に必要な接触座標位置を用い、所定の座標系算出プログラムにより作業座標系Cを算出し、作業座標系Cの設定を終える。
【0042】
図7には、本実施形態の1ロボットを使用して作業座標系Cを設定する他の手順(フローチャート)が示されている。図1で示す設定方法と同様に、作業座標系Cが設定される対象ワーク9は、予めロボット1の作業領域内に配置されているものとする。また、作業座標系Cを設定するにあたり、ハンド4を対象ワーク9に接触させる目標位置としての目標接触位置と、接触させる予定数である接触予定数Nを決定しておく(ステップSB1)。
【0043】
作業座標系Cの設定では、図6で示す設定方法と同様に、ステップSB2で1番目の目標接触位置を読出し、ステップSB3でその位置へハンド4をアプローチ(移動)させる。ロボットコントローラ2の接触判定手段15で接触したと判断されるまで(ステップSB5)、ハンド4の移動を続ける(ステップSB4)。接触した場合には、コントローラ2の移動停止手段16により移動停止指令をサーボ制御部12に送り、ロボット1の移動を停止させる(ステップSB6)。次に、ステップSB7で接触位置を接触位置記録手段17に記録する。ステップSB8及びステップSB9で、これを繰返して予め設定した接触予定数N回になるまで、目標接触位置への移動と接触位置の記録を繰返し実行する。
【0044】
続いて、SB10〜SB12で、作業座標系設定用の座標設定位置データを算出するステップを実行する。先ず、SB10において、記録された接触位置から座標設定位置を算出し、SB11で座標設定位置へハンドを移動させ、その位置を教示する。SB12で、教示位置から作業座標系Cを算出し、作業座標系Cの設定を終える。
【0045】
次に、図8において、設定された作業座標系の精度を高めるために、ハンド4の位置・姿勢を修正しながら作業座標系Cを更新する方法を説明する。図11(a)、(b)には、対象ワーク9に対してハンド4(フィンガー5)が傾いている状態(a)と、ハンド4の傾きが修正された状態(b)が示されている。ハンド4の位置・姿勢を修正するとは、設定された作業座標系Cにおいて、対象ワーク9に対してハンド4が傾いている状態から、ハンド4の傾きが修正された状態に直すことをいう。ハンド4の位置・姿勢を修正することで、作業座標系Cの精度を高めることができる。
【0046】
先ず、ステップSC1で、設定済みの作業座標系C1を選択しておき、この作業座標系C1を更新するために、ステップの繰返し回数Mを決定する。ステップSC2で、予め設定済みの作業座標系C1において、ハンド4の位置・姿勢を修正する。次に、ステップSC3で、修正されたハンド4の位置・姿勢に基づいて、作業座標系C2を新たに算出する。ステップSC4及びSC5で予め定めた繰返し回数(例えば3〜5回程度)を判断し、ステップSC6で前回の作業座標系C1を今回の作業座標系C2に更新する。予め定めた繰返し回数、作業座標系を算出するステップを実行後、ステップSC7で最後に算出された座標系を最終の更新された作業座標系として設定する。
【0047】
図9には、本実施形態のロボット1を使用して作業座標系Cを更新する他の手順(フローチャート)が示されている。この方法は、作業座標系Cを更新していく過程で、更新された作業座標系Cが所定の条件を満たした場合に繰り返しを終了する方法である。
【0048】
先ず、ステップSD1で、設定済みの作業座標系C1において、ハンド4の位置・姿勢を修正する。次に、ステップSD2で、修正されたハンド4の位置・姿勢に基づいて、作業座標系C2を新たに算出する。ステップSD3で、前回算出された設定済みの作業座標系C1と今回新たに算出された作業座業系C2の位置又は姿勢を比較し、例えば、前回算出された作業座標系C1の原点位置と今回算出された作業座業系C2の原点位置との差が所定の閾値以下であるかを判断し、閾値以下である場合にはステップSD5で算出された座標系C2を最終の更新された作業座標系として設定を終了し、閾値より大きい場合にはステップSD4で作業座標系を更新し、処理を繰り返す。このようにして、設定する作業座標系Cの精度を高めることができる。
【0049】
次に、図12を参照して設定した作業座標系Cの異常を検出する方法について説明する。対象ワーク9に対して、任意に作業座標系Cが設定されているものとする。ハンドを+X方向へ移動させ、対象ワーク9に接触させ(Y方向は任意の値とする)、座標系Cにおける接触位置(X1,Y1)求める(いずれも正数)。設定した座標系Cが理想的に対象ワーク9のコーナを原点とし、X−Y軸方向が座標対象物の各辺に一致している場合、接触位置は理想的には(0、Y2)(Y2>0)となるはずである。しかし、実際に設定された座標系Cは、X方向のずれ量がX1−0となり、設定された作業座標系Cと理想とする座標系との間でずれが生じていることが分かる(Y方向を同様にずれている)。このずれ量を許容できるかを否か判断することで、設定された座標系の異常を検出することができる。なお、ハンドを+Y方向へ移動させ、対象ワーク9に接触させて接触位置を求める場合も同様である。
【0050】
作業座標系Cの異常を検出する方法の手順を図10に示す。ステップSE1で、設定済みの作業座標系Cを選択する。次いで、ステップSE2で、対象ワーク9で設定された少なくとも1点の設定位置にハンド4を接触させ、ステップSE3で実際の接触位置を記録する。続いて、ステップSE4で、設定位置に対して実際の接触位置(ハンド4と対象ワーク9の接触位置)とのずれ量を算出し、ステップSE5で、ずれ量が所定の閾値を超えたかどうかを判断する。ずれ量が所定の閾値を超えた場合、ステップSE6で作業座標系Cが異常であると判断し、アラームを鳴らしたり、ディスプレイにアラームメッセージを表示したりする。ずれ量が所定の閾値を超えていない場合、作業座標系Cの異常を検出する処理を終了する。
【0051】
以上のように本発明によれば、ロボット1と対象ワーク9との接触/非接触を判断するために力センサ6を使用することで、対象ワーク9にハンド4を接触させた位置で座標系Cを設定することができる。また、タッチセンサを使用した場合のように、座標系設定後に設定された座標系の位置や姿勢を補正する必要もない。従って、位置精度が高く、再現性に優れる作業座標系Cを設定することができる。対象ワーク9への接触を力検出情報により客観的に判定できるので操作者の主観によらない接触判定による座標系設定が可能となる。
【0052】
また、設定された作業座標系Cの異常を精度良く判断することができ、ロボット1によるハンドリング作業や、加工作業などを精度良く行うことが可能となり、製造信頼性を高めることができる。
【0053】
以上、本発明をその好適な実施形態に関連して説明したが、後述する請求の範囲の開示から逸脱することなく様々な修正及び変更を為し得ることは、当業者に理解されるであろう。
【図面の簡単な説明】
【0054】
【図1】本発明の一実施形態に係るロボットシステムの構成図である。
【図2】対象ワークに設定する作業座標系を示す図である。
【図3】ロボットコントローラの構成図である。
【図4】図1に示すロボットで作業座標系を設定する方法を説明する説明図である。
【図5】水平多関節ロボットで作業座標系を設定する方法を説明する説明図である。
【図6】作業座標系の設定方法を説明するフローチャートである。
【図7】作業座標系の設定方法を説明する他の例のフローチャートである。
【図8】作業座標系を更新する方法を説明するフローチャートである。
【図9】作業座標系を更新する方法を説明するフローチャートである。
【図10】作業座標系の異常検出方法を説明するフローチャートである。
【図11】ハンドと対象ワークの接触状態を説明する説明図であり、(a)は対象ワークに対してハンドが傾いている状態を示し、(b)はハンドの傾きが修正された状態を示す図である。
【図12】作業座標系の異常検出方法を説明する説明図である。
【符号の説明】
【0055】
1,25 ロボット
3 アーム
4 ハンド
5 フィンガー
6 センサ
9 対象ワーク
【技術分野】
【0001】
本発明は、ロボットと対象ワークの相対的な位置関係を規定する作業座標系の設定方法及び作業座標系の異常検出方法に関する。
【背景技術】
【0002】
一般に、ロボットの作業座標系を設定する方法として、特許文献1〜3で開示されているものが知られている。特許文献1では、ロボットの絶対座標系における2点あるいは3点を教示し、それらの教示位置情報から座標系変換行列を求めることで作業座標系を設定する方法を開示する。
【0003】
特許文献2は、タッチセンサを有するロボットを操作して、設定したい直交座標系の直交する3平面にタッチセンサを接触させた位置から作業座標系を設定する方法を開示する。
【0004】
特許文献3は、複数の点を実際に教示することなく、任意座標系の各軸についての方向余弦の数値を入力する方法、又は力センサを搭載したロボットにおいて、力センサに設定したい2軸方向について並進または回転の力を加えることで作業座標系を設定する方法を開示する。
【0005】
設定した座標系の異常検出方法としては、作業座標系を設定する対象ワークの複数の設定位置へハンドを移動させ、ハンドの実際の接触位置と設定位置とを比較し、ずれ量を求めることで、設定した座標系が異常であることを検出する方法が知られている。
【0006】
【特許文献1】特開昭61−49205号公報
【特許文献2】特開昭61−145612号公報
【特許文献3】特開平7−84618号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
ハンドリングや溶接、ワークの組立てなど複雑多岐にわたる作業ができる産業用ロボットにおいて、アーム先端に装着するエアハンドなどの作業ツール(以下、「ハンド」という)の基準点となるツール先端点やハンドを適切な位置と姿勢(希望位置)に配置し、その希望位置を記録する教示作業を効率的に行うために、一般に作業座標系を設定する。設定した作業座標系の軸方向に沿ってハンドが移動するように制御すると、座標系の原点や軸方向を事前に知っている操作者は直感的な操作によって簡易に教示作業ができ、またロボット言語を利用したプログラミングやシミュレーション環境によってロボットの動作を指定する場合においても作業座標系の座標値を入力することで効率的な作業ができる。このように作業座標系を設定することで効率的な教示作業ができるが、従来の座標系の設定技術では、次のような課題があった。
【0008】
特許文献1で開示されている方法、すなわち、平面である絶対座標系において、2点あるいは3点の教示作業により得た位置情報を基に作業座標系を設定する方法では、当然ながら教示位置がずれると設定した作業座標系もずれることとなる。このため、作業座標系を精度良く設定したい場合には、複数の点をそれぞれ正確に教示する必要がある。それには、設定したい目標座標系(作業座標系)と関係する座標対象物へわずかに接触させた位置、またはわずかに離れた位置の教示作業を行う必要がある。しかし、この作業は極めて厳密且つ微妙なロボット操作が要求され、短時間で正確な作業座標系の設定を行うことは難しく、また操作者の熟練度合いによっては、作業座標系の設定誤差(ずれ)が出やすいという問題点がある。
【0009】
さらに、センサを使用しないため、接触/非接触の判断は操作者の主観によるため、操作者によって設定された座標系が異なる場合がある。また、同一の座標対象物に対して同じ希望位置を教示することは難しく座標系設定の再現性が悪いという問題があった。また、接触/非接触の判断作業のために顔や手をロボットの手先に近づかざるを得ない場合があり、安全な作業ができないという問題があった。
【0010】
ここで、対象ワークは、設定したい目標の作業座標系に関係し、ハンドが接触可能な物体である。例えば、ある製品をトレーに詰め込む作業のために、トレーもしくはトレーを載せる作業台等を対象ワークと定義し、作業座標系の設定を行うこととする。
【0011】
特許文献2で開示されている方法、すなわち、設定したい直交座標系の直交する3平面にタッチセンサを接触させた位置から座標系を設定する方法は、タッチセンサのオン-オフのタッチ検出信号を検出することで容易かつ高感度に接触/非接触の判断をでき、作業者の熟練度や主観によらないで作業座標系の設定をすることができる。しかし、ハンドで保持する一般のタッチセンサは、検出可能な方向が一方向であることから3次元の作業座標系を設定するためには複数個のタッチセンサが必要となり、タッチセンサの導入コストがかかるという問題がある。さらに、タッチセンサの把持方法や取付け位置の確保のためにハンドの設計に余分な制約が付き、設計の自由度が減ってしまう問題がある。
【0012】
また、タッチセンサの検出原理によっては検出対象物の材質(例えば、磁性体と非磁性体)によってタッチの検出感度が変化するため座標対象物の材質や、確実なタッチ検出のためにタッチする対象面積を十分に広く確保する点など座標対象物への制約が付加される問題がある。
【0013】
さらに、実際の接触位置はタッチセンサが検出した位置であるため、タッチセンサの検出部からハンドまでの距離だけハンドと座標対象物が離れた位置関係となり、ハンドと座標対象物の相対的な位置関係が分かりにくい作業座標系となる問題がある。このため、設定した作業座標系上で教示作業する際にその距離を補正しなければならない場合がある。また、タッチセンサの検出部からハンドまでの距離が正確にわからないときには、補正は難しく、結局注意を払って教示位置を指示しなければならない場合があり、作業座標系の設定を効率的に出来ても教示作業を効率よくできないという問題がある。
【0014】
また、タッチセンサからのタッチ検出信号を受け取り、ロボットの移動を直ぐに止めるようにロボット制御装置に指令を出すようにしているが、実際にはロボットが即時に停止することはなく、通常は移動速度に依存した距離を惰走して停止することとなる。一般にロボットの教示作業及び試運転では、速度可変機能を使い操作パネルなどからオーバライドを指定して移動速度を下げてロボットを動作させ、自動運転中はプログラムなどで指定した速度で(移動速度を上げて)ロボットを動作させている。そのため、移動速度が変わることにより接触後の停止位置が変化し、移動速度によって設定される作業座標系が異なるという問題がある。
【0015】
特許文献3で開示されている方法、すなわち、教示作業を行わずに数値データを直接入力する、または力センサに対し加えた力の方向によって座標系を設定する方法では、教示作業を行う必要がないために短時間で、かつ簡易な操作で作業座標系を設定できる。しかし、操作者自身の感覚的判断に基づいて作業座標系の設定が行われるため、高い相対的な位置精度を実現する作業座標系の設定は、非常に難しく、複数回の試行錯誤を必要とするという問題がある。
【0016】
力センサを用いた作業座標系の設定方法では、力情報をフィードバックし所望の力となるよう制御する力制御動作中(例えばバリ取り作業中)にのみ使用される座標系の設定方法がある。しかし、力制御動作中以外に使用できる座標系を設定するため力センサを用いた座標系の設定方法はこれまでになく、力センサ以外の他のセンサを使用するなど、従来方法を使わなければならないという問題がある。
【0017】
また、設定後の作業座標系に対して希望通りに座標設定できたか、座標設定後にロボットが何らかの作業を行った後で設定した座標系がずれてきてはいないか、また、ハンドをぶつけてしまいハンドが曲がり対象ワークとの相対的位置関係がずれてはいないか等を確認したい場合がある。一つの方法として、ハンドを目視にて対象ワークの特定点(例えば、原点やXY平面上の点)へ移動させ、そのときの理論上の座標値と読取った座標値との差を求めることで座標系と対象ワークとのずれを把握する方法がある。逆の方法として、設定後の座標上での希望座標値へハンドを移動させ、対象ワークの特定点とのずれを測定し比較することで設定後の座標系を評価する方法がある。しかし、いずれも操作者の主観による判断によって決まるため、座標系のずれ量は測定者に依存すると共に、この作業を短時間で行うことができないという問題がある。タッチセンサを用いた場合は、上述したようにセンサの導入コストが嵩むという問題や、対象ワークへの制約等、上に挙げた問題がある。
【0018】
本発明は、ハンドと対象ワークとの相対的位置精度が高く、再現性に優れる作業座標系の設定方法を提供することを目的とする。また、設定された作業座標系と目標とする作業座標系との位置ずれ量を簡易に評価できる作業座標系の異常検出方法を提供する。
【課題を解決するための手段】
【0019】
本発明では、ロボットと対象ワークとの接触/非接触を判断するために力センサを使用し、ロボットと対象ワークの複数の接触点に基づいて作業座標系を設定する作業座標系の設定方法および作業座標系の異常検出方法であり、力センサにより検出された検出値と予め設定された閾値とを比較することにより、ロボットと対象ワークとの接触/非接触を判断する。作業座標系の設定方法および作業座標系の異常検出方法において、力センサを備えたロボットを使用することができる。力センサの装着位置は制限されるものではなく、ハンドのフィンガーが対象ワークへ接触をすることを検出できればよく、力センサをフィンガーの根元に装着したり、フィンガーの先端部に装着したりすることもできる。ハンドに限られず、溶接やバリ取り等を行う作業ツールに力センサを装着することもできる。力センサを備えたロボットを使用することで、タッチセンサを使用する場合に比べて、ハンドの設計に余分な設計仕様を付加することなく自由な設計が可能となる。なお、力センサを作業台などのワークを載せる台などに設置することもできる。
【0020】
力センサを備えたハンドは、力センサ等との結合手段であるベース部を持ち、開閉動作を実現するエアチャックなどのアクチュエータ部、ワークを把持するフィンガー部を備えることもできる。これにより、フィンガー先端に働く外力を力センサによって検出することができる。
【0021】
力センサからの力検出情報を活用することにより、ハンドが対象ワークに接触したかどうかは、例えば、事前に設定された閾値を力検出値が超えたときに接触したと判断することができる。閾値を設定することにより、作業者の熟練度によって異なる接触判断を客観的に行うことができる。また、接触したか非接触なのかを力検出情報により確認できるため、教示作業中にハンド先端(フィンガー部)に顔や手先を近づける必要がなくなるため、より安全に作業座標系の設定作業を行うことができる。
【0022】
また、接触/非接触の確認は力検出情報を使用することで簡易に短時間でき、ハンドをアプローチ点から座標対象物に接触させ、接触/非接触の判断のもと、ハンドの移動を停止する一連の動作をロボットプログラムで自動的に行うことができることにより、短時間で座標系の設定ができる。
【0023】
本発明の一態様は、力センサからの検出情報により、ロボットアームに装着されたハンドと対象ワークとの接触/非接触を判断するロボットを使用し、作業座標系を設定する対象ワークにハンドが接触したことを判断し、該ハンドの接触位置を記憶し、該接触位置から前記作業座標系を算出する作業座標系の設定方法を提供する。
【0024】
これにより、ロボットと対象ワークとの接触/非接触を判断するために力センサを使用することで、位置精度が高く、再現性に優れる作業座標系の設定を行うことができる。対象物ワークへの接触を力検出情報により客観的に判定できるので操作者の主観によらない接触判定による座標系設定が可能となる。
【0025】
また、本発明の他の態様は、力センサからの検出情報により、ロボットアームに装着されたハンドと対象ワークとの接触/非接触を判断するロボットを使用し、作業座標系を設定する対象ワークにハンドが接触したことを判断し、該ハンドの接触位置を記憶し、該接触位置から座標設定位置を算出し、該座標設定位置に前記ハンドを移動して教示し、教示位置から作業座標系を算出する作業座標系の設定方法を提供する。
【0026】
このため、従来の座標系設定方法を活用して、座標系の設定を行うことができる。例えば、教示位置を基に座標系を設定する場合に、教示位置を決める作業を力センサの力検出情報をもとに行い、座標系設定は従来の方法を使って行うことができる。したがって、新たに、座標系を算出するために計算プログラムを新たに作ることなく、作業座標系を設定することができる。
【0027】
また、本発明の他の態様は、前記作業座標系を設定するステップと、設定された作業座標系において、ハンドと対象ワークが相対するように、ハンドの位置・姿勢を修正するステップと、修正したハンドの位置・姿勢に基づいて作業座標系を設定するステップを備える。これにより、対象ワークへ接触するハンドの面と対象ワークの接触面が重なるようにハンドの位置と姿勢が修正され、両者の接触状態が安定する。これにより、設定される座標系はハンドと座標対象物の相対的位置精度が高い座標系となる。また、このように設定した座標系の設定は再現性が高い特徴を持つ。
【0028】
作業座標系を更新する処理では、予め定めておいた繰返し回数だけ、座標系の設定とハンドの位置姿勢を修正するステップを繰返し行うことができるが、他の方法として、設定済みの作業座標系と新たに設定された作業座標系の変化の大きさ、例えば、前回算出された作業座標系の原点位置や座標軸の方向と今回算出された作業座業系の原点位置や座標軸の方向の変化の大きさが閾値以下となるまで繰り返すこともできる。
【0029】
また、本発明の他の態様は、ハンドの移動速度に依存して、ハンドが対象ワークに接触する位置が変わる問題に対しては、ハンドを指定した一定の速度で移動させることができる。また急加速を行うと力センサの先に取付けたハンドの慣性力が働き、接触を誤検出する場合があるため、指定速度で移動を指示する場合の加速度は小さい方が望ましい。
【0030】
また、本発明の他の態様は、垂直多関節タイプのロボットによる、対象ワークに対する接触位置を6点以上とすることができる。3次元空間で作業座標系を設定するためには、少なくとも3つの座標情報が必要である。例えば、右手系直交座標系が既定されている場合、作業座標系の原点座標と、+X軸方向を示す1つの座標と、XY平面上の+Y方向を示す一つの座標である。3つの座標を定めるための対象ワークへの接触位置は、原点を決定するために互いに直交する3方向(X,Y,Z)からのアプローチによる3点、X軸方向を示す一つの座標を決定するための2方向(Y,Z)からのアプローチによる2点、XY平面上の+Y方向を示す一つの座標を決定するための1方向(Z)からのアプローチを必要とする。
【0031】
また、本発明の他の態様は、水平多関節タイプのロボットによる、対象ワークに対する接触位置を4点以上とすることができる。3次元空間での作業座標系を設定するために、少なくとも2つの座標情報が必要である。例えば図右手系直交座標系が既定されている場合、作業座標系の原点座標と、+X軸方向を示す1つの座標である。水平多関節タイプのロボットの動作域からXY平面の傾きが設定される。原点を指定することでXY平面の高さが決まり、+X方向を示す1点によってX軸方向が決まる。既定されている右手系直交座標系にならい+Z軸方向を通常ロボットの高さ方向と一致させ、上側をプラス方向と決めることでY軸方向も自動的に決定できる。先の2つの座標を定めるために対象ワークへの接触位置は、原点を決定するために互いに直交する3方向(X,Y,Z)からのアプローチによる3点、+X軸方向を示す一つの座標を決定するための1方向(Y)からのアプローチを必要とする。
【0032】
また、本発明の他の態様は、前記作業座標系の設定方法で作業座標系を設定することと、前記作業座標系で前記ハンドを前記対象ワークの任意の設定位置に接触させることと、前記作業座標系における前記設定位置と前記ハンド実際の位置とのずれ量を算出することと、前記ずれ量が所定の閾値を超えたときに前記作業座標系が異常であると検出することと、を備える作業座標系の異常検出方法を提供する。
【0033】
この異常検出方法は、力センサの力検出情報をもとに接触非接触の判断ができるので、判断時間を操作者による判断よりも短時間に行うことができ、また、接触を判定する閾値を決めておくことで客観的な接触判定ができる。ずれ量を比較したい接触位置に効率よくハンドを移動させることができる。またタッチセンサなど別のセンサを導入することもなく座標系のずれ等の異常検出ができる。
【発明の効果】
【0034】
以上の如く、ロボットと対象ワークとの接触/非接触を判断するために力センサを使用することで、対象ワークにハンドを接触させた位置で座標系を設定することができる。従って、位置精度が高く、再現性に優れる作業座標系を設定することができる。
【発明を実施するための最良の形態】
【0035】
以下、図面を参照しながら本発明を詳細に説明する。図1に本発明の一実施形態である垂直多関節型ロボット及びロボットコントローラを含むシステムの全体構成を示す。ロボット1は、ハンドでワークを把持するハンドリングロボットであるが、本発明はこれには限定されない。図示するロボット1は、ロボットアーム3とハンド4との間に装着された6軸力センサ6を有している。力センサ6は、直交3軸(X,Y,Z)方向の力と各軸回りのモーメント(Mx,My,Mz)を検出できる。検出感度は、高いほうが望ましく、例えば10gf以下の検出感度のものを好適に使用することができる。ハンド4は、力センサ6の取付け部(図示せず)と、エアチャックなどの駆動部(図示せず)と、対象ワーク9などを把持するフィンガー5と、を備えている。本実施形態では、力センサ6をロボットアーム3に装着することによって、フィンガー5に働く外力を検出することができるようになっている。なお、力センサ6の装着位置は、本実施形態に制限されるものではなく、フィンガー5に働く外力を検出することができる位置であれば、他の位置に装着することもできる。
【0036】
図2には、図1に示すロボット1を使用して設定される作業座標系Cが示されている。図2では、作業座標系Cの座標原点が対象ワーク9のコーナ部に設定される例が示されている。対象ワーク9は、組み立て用ワークや加工用ワークを取り扱う作業台等に相当する。
【0037】
図3には、本実施形態のロボットコントローラ2の構成が示されている。ロボットコントローラ2は、操作パネル10と、指令制御部11と、サーボ制御部12とを備えている。サーボ制御部12へ移動指令を与える指令制御部11は、主要な機能として、力センサで力を算出する力算出部14と、接触か非接触かを判定する接触判定手段15と、接触時にロボット1への移動停止を指示する移動停止手段16と、接触したときの接触位置を記録する接触位置記録手段17と、接触位置に基づいて作業座標系Cを算出する座標系算出手段18と、を持っている。サーボ制御部12は、指令制御部11からの移動指令に追従するようにロボット1の各関節を駆動するモータ(図示せず)をサーボ制御する。また、操作パネル10には、テスト運転や教示作業時のロボット1の移動速度を低く指定するため、又は自動運転時にはプログラムで指示した移動速度となるように速度を可変できる速度可変手段19を持ち、ロボット1が検出した異常状態を操作者に伝えるアラーム表示手段20を持っている。アラーム表示手段20の一つの機能として、設定された作業座標系Cの異常を検出する機能がある。
【0038】
図6には、本実施形態のロボット1を使用して作業座標系Cを設定する一つの手順(フローチャート)が示されている。作業座標系Cが設定される対象ワーク9は、予めロボット1の作業領域内に配置されているものとする。作業座標系Cを設定するにあたり、ハンド(フィンガー5)4を対象ワーク9に接触させる目標位置としての目標接触位置と、接触させる予定数である接触予定数Nを決定しておく(ステップSA1)。例えば、垂直多関節タイプのロボット1で、3次元の作業座標系Cを右手系直交座標系として設定する場合は、図4に示すように、接触予定数を少なくとも6点とすることができる。この場合、座標原点を決定するために3点、+X(プラスX)方向への位置のために2点、XY平面上で+Y(プラスY)方向の1点とすることができる。
【0039】
なお、図5に示す水平多関節ロボット25を使用して、3次元の作業座標系Cを右手系直交座標系として設定する場合は、接触予定数を少なくとも4点とすることができる。この場合、座標原点を決定するために3点、+X(プラスX)方向への位置のために1点とすることができる。原点を指定することでXY平面の高さが決まり、ロボット25の動作域からXY平面の傾きが設定され、+X方向を示す1点によってX軸方向が決まる。
【0040】
図6に示すように、作業座標系Cの設定では、ステップSA2で1番目の目標接触位置を読出し、ステップSA3でその位置へハンド4をアプローチ(移動)させる。ロボットコントローラ2の接触判定手段15で接触したと判断されるまで(ステップSA5)、ハンド4の移動を続ける(ステップSA4)。ハンド4の移動速度は、ハンド4が対象ワーク9に接触したときに、ハンド4が対象ワーク9に食い込んだり、ハンド4のアプローチ方向によって食い込み量が変化したりするのを防止するために、動作プログラムで指定された一定の速度で移動させることが好ましい。
【0041】
ハンド4が対象ワーク9に接触した場合には、コントローラ2の移動停止手段16により移動停止指令をサーボ制御部12に送り、ロボット1の移動を停止させる(ステップSA6)。次に、ステップSA7で接触位置を接触位置記録手段17に記録する。ステップSA8及びステップSA9で、これを繰返して予め設定した接触予定数N回になるまで、接触位置への移動と接触位置の記録を繰返し実行する。ステップSA10で、作業座標系Cの設定に必要な接触座標位置を用い、所定の座標系算出プログラムにより作業座標系Cを算出し、作業座標系Cの設定を終える。
【0042】
図7には、本実施形態の1ロボットを使用して作業座標系Cを設定する他の手順(フローチャート)が示されている。図1で示す設定方法と同様に、作業座標系Cが設定される対象ワーク9は、予めロボット1の作業領域内に配置されているものとする。また、作業座標系Cを設定するにあたり、ハンド4を対象ワーク9に接触させる目標位置としての目標接触位置と、接触させる予定数である接触予定数Nを決定しておく(ステップSB1)。
【0043】
作業座標系Cの設定では、図6で示す設定方法と同様に、ステップSB2で1番目の目標接触位置を読出し、ステップSB3でその位置へハンド4をアプローチ(移動)させる。ロボットコントローラ2の接触判定手段15で接触したと判断されるまで(ステップSB5)、ハンド4の移動を続ける(ステップSB4)。接触した場合には、コントローラ2の移動停止手段16により移動停止指令をサーボ制御部12に送り、ロボット1の移動を停止させる(ステップSB6)。次に、ステップSB7で接触位置を接触位置記録手段17に記録する。ステップSB8及びステップSB9で、これを繰返して予め設定した接触予定数N回になるまで、目標接触位置への移動と接触位置の記録を繰返し実行する。
【0044】
続いて、SB10〜SB12で、作業座標系設定用の座標設定位置データを算出するステップを実行する。先ず、SB10において、記録された接触位置から座標設定位置を算出し、SB11で座標設定位置へハンドを移動させ、その位置を教示する。SB12で、教示位置から作業座標系Cを算出し、作業座標系Cの設定を終える。
【0045】
次に、図8において、設定された作業座標系の精度を高めるために、ハンド4の位置・姿勢を修正しながら作業座標系Cを更新する方法を説明する。図11(a)、(b)には、対象ワーク9に対してハンド4(フィンガー5)が傾いている状態(a)と、ハンド4の傾きが修正された状態(b)が示されている。ハンド4の位置・姿勢を修正するとは、設定された作業座標系Cにおいて、対象ワーク9に対してハンド4が傾いている状態から、ハンド4の傾きが修正された状態に直すことをいう。ハンド4の位置・姿勢を修正することで、作業座標系Cの精度を高めることができる。
【0046】
先ず、ステップSC1で、設定済みの作業座標系C1を選択しておき、この作業座標系C1を更新するために、ステップの繰返し回数Mを決定する。ステップSC2で、予め設定済みの作業座標系C1において、ハンド4の位置・姿勢を修正する。次に、ステップSC3で、修正されたハンド4の位置・姿勢に基づいて、作業座標系C2を新たに算出する。ステップSC4及びSC5で予め定めた繰返し回数(例えば3〜5回程度)を判断し、ステップSC6で前回の作業座標系C1を今回の作業座標系C2に更新する。予め定めた繰返し回数、作業座標系を算出するステップを実行後、ステップSC7で最後に算出された座標系を最終の更新された作業座標系として設定する。
【0047】
図9には、本実施形態のロボット1を使用して作業座標系Cを更新する他の手順(フローチャート)が示されている。この方法は、作業座標系Cを更新していく過程で、更新された作業座標系Cが所定の条件を満たした場合に繰り返しを終了する方法である。
【0048】
先ず、ステップSD1で、設定済みの作業座標系C1において、ハンド4の位置・姿勢を修正する。次に、ステップSD2で、修正されたハンド4の位置・姿勢に基づいて、作業座標系C2を新たに算出する。ステップSD3で、前回算出された設定済みの作業座標系C1と今回新たに算出された作業座業系C2の位置又は姿勢を比較し、例えば、前回算出された作業座標系C1の原点位置と今回算出された作業座業系C2の原点位置との差が所定の閾値以下であるかを判断し、閾値以下である場合にはステップSD5で算出された座標系C2を最終の更新された作業座標系として設定を終了し、閾値より大きい場合にはステップSD4で作業座標系を更新し、処理を繰り返す。このようにして、設定する作業座標系Cの精度を高めることができる。
【0049】
次に、図12を参照して設定した作業座標系Cの異常を検出する方法について説明する。対象ワーク9に対して、任意に作業座標系Cが設定されているものとする。ハンドを+X方向へ移動させ、対象ワーク9に接触させ(Y方向は任意の値とする)、座標系Cにおける接触位置(X1,Y1)求める(いずれも正数)。設定した座標系Cが理想的に対象ワーク9のコーナを原点とし、X−Y軸方向が座標対象物の各辺に一致している場合、接触位置は理想的には(0、Y2)(Y2>0)となるはずである。しかし、実際に設定された座標系Cは、X方向のずれ量がX1−0となり、設定された作業座標系Cと理想とする座標系との間でずれが生じていることが分かる(Y方向を同様にずれている)。このずれ量を許容できるかを否か判断することで、設定された座標系の異常を検出することができる。なお、ハンドを+Y方向へ移動させ、対象ワーク9に接触させて接触位置を求める場合も同様である。
【0050】
作業座標系Cの異常を検出する方法の手順を図10に示す。ステップSE1で、設定済みの作業座標系Cを選択する。次いで、ステップSE2で、対象ワーク9で設定された少なくとも1点の設定位置にハンド4を接触させ、ステップSE3で実際の接触位置を記録する。続いて、ステップSE4で、設定位置に対して実際の接触位置(ハンド4と対象ワーク9の接触位置)とのずれ量を算出し、ステップSE5で、ずれ量が所定の閾値を超えたかどうかを判断する。ずれ量が所定の閾値を超えた場合、ステップSE6で作業座標系Cが異常であると判断し、アラームを鳴らしたり、ディスプレイにアラームメッセージを表示したりする。ずれ量が所定の閾値を超えていない場合、作業座標系Cの異常を検出する処理を終了する。
【0051】
以上のように本発明によれば、ロボット1と対象ワーク9との接触/非接触を判断するために力センサ6を使用することで、対象ワーク9にハンド4を接触させた位置で座標系Cを設定することができる。また、タッチセンサを使用した場合のように、座標系設定後に設定された座標系の位置や姿勢を補正する必要もない。従って、位置精度が高く、再現性に優れる作業座標系Cを設定することができる。対象ワーク9への接触を力検出情報により客観的に判定できるので操作者の主観によらない接触判定による座標系設定が可能となる。
【0052】
また、設定された作業座標系Cの異常を精度良く判断することができ、ロボット1によるハンドリング作業や、加工作業などを精度良く行うことが可能となり、製造信頼性を高めることができる。
【0053】
以上、本発明をその好適な実施形態に関連して説明したが、後述する請求の範囲の開示から逸脱することなく様々な修正及び変更を為し得ることは、当業者に理解されるであろう。
【図面の簡単な説明】
【0054】
【図1】本発明の一実施形態に係るロボットシステムの構成図である。
【図2】対象ワークに設定する作業座標系を示す図である。
【図3】ロボットコントローラの構成図である。
【図4】図1に示すロボットで作業座標系を設定する方法を説明する説明図である。
【図5】水平多関節ロボットで作業座標系を設定する方法を説明する説明図である。
【図6】作業座標系の設定方法を説明するフローチャートである。
【図7】作業座標系の設定方法を説明する他の例のフローチャートである。
【図8】作業座標系を更新する方法を説明するフローチャートである。
【図9】作業座標系を更新する方法を説明するフローチャートである。
【図10】作業座標系の異常検出方法を説明するフローチャートである。
【図11】ハンドと対象ワークの接触状態を説明する説明図であり、(a)は対象ワークに対してハンドが傾いている状態を示し、(b)はハンドの傾きが修正された状態を示す図である。
【図12】作業座標系の異常検出方法を説明する説明図である。
【符号の説明】
【0055】
1,25 ロボット
3 アーム
4 ハンド
5 フィンガー
6 センサ
9 対象ワーク
【特許請求の範囲】
【請求項1】
ロボットと対象ワークの相対的な位置関係を規定する作業座標系の設定方法において、
前記ロボットのハンドが前記対象ワークに接触したことを検出するために力センサを用いることと、
該力センサで検出された検出値が予め設定された閾値を超えたときに前記ハンドが前記対象ワークに接触したと判断することと、
前記接触位置を記憶することと、
該接触位置から前記作業座標系を算出すること、
を備えた作業座標系の設定方法。
【請求項2】
ロボットと対象ワークの相対的な位置関係を規定する作業座標系の設定方法であって、
前記ロボットのハンドが前記対象ワークに接触したことを検出するために力センサを用いることと、
該力センサで検出された検出値が予め設定された閾値を超えたときに前記ハンドが前記対象ワークに接触したと判断することと、
前記接触位置を記憶することと、
該接触位置から座標設定位置を算出することと、
該座標設定位置に前記ハンドを移動させてその位置を教示することと、
教示された該ハンドの教示位置から作業座標系を算出することと、
を備えた作業座標系の設定方法。
【請求項3】
前記作業座標系を更新するために、予め定められた繰り返し回数だけ前記作業座標系を算出する処理を繰り返すことと、
更新された個々の前記作業座標系において、前記ハンドの位置・姿勢を正しい位置・姿勢に修正することと、
をさらに備えた請求項1又は2に記載の作業座標系の設定方法。
【請求項4】
前回算出された設定済みの作業座標系と今回新たに算出された作業座業系の位置又は姿勢を比較し、
前記位置又は前記姿勢の変化の大きさが閾値以下となるまで前記作業座標系を算出する処理を繰り返すことと、
更新された個々の前記作業座標系において、前記ハンドの位置・姿勢を正しい位置・姿勢に修正することと、
をさらに備えた請求項1又は2に記載の作業座標系の設定方法。
【請求項5】
前記対象ワークに接触させる前記ハンドの移動速度を所定の速度とする請求項1〜4のいずれか1項に記載の作業座標系の設定方法。
【請求項6】
前記ロボットが垂直多関節タイプのロボットであり、前記対象ワークに対する前記ハンドの接触位置を6箇所以上とした請求項1〜5のいずれか1項に記載の作業座標系の設定方法。
【請求項7】
前記ロボットが水平多関節タイプのロボットであり、前記対象ワークに対する前記ハンドの接触位置を4箇所以上とした、請求項1〜5のいずれか1項に記載の作業座標系の設定方法。
【請求項8】
前記ロボットのハンドが前記対象ワークに接触したことを検出するために力センサを用いることと、
該力センサで検出された検出値が予め設定された閾値を超えたときに前記ハンドが前記対象ワークに接触したと判断することと、
前記作業座標系で、前記ハンドを前記対象ワークの任意の設定位置に接触させることと、
前記作業座標系における前記設定位置と前記ハンドの実際の位置とのずれ量を算出することと、
前記ずれ量が所定の閾値を超えたときに前記作業座標系が異常であるとすることと、
を備えた作業座標系の異常検出方法。
【請求項1】
ロボットと対象ワークの相対的な位置関係を規定する作業座標系の設定方法において、
前記ロボットのハンドが前記対象ワークに接触したことを検出するために力センサを用いることと、
該力センサで検出された検出値が予め設定された閾値を超えたときに前記ハンドが前記対象ワークに接触したと判断することと、
前記接触位置を記憶することと、
該接触位置から前記作業座標系を算出すること、
を備えた作業座標系の設定方法。
【請求項2】
ロボットと対象ワークの相対的な位置関係を規定する作業座標系の設定方法であって、
前記ロボットのハンドが前記対象ワークに接触したことを検出するために力センサを用いることと、
該力センサで検出された検出値が予め設定された閾値を超えたときに前記ハンドが前記対象ワークに接触したと判断することと、
前記接触位置を記憶することと、
該接触位置から座標設定位置を算出することと、
該座標設定位置に前記ハンドを移動させてその位置を教示することと、
教示された該ハンドの教示位置から作業座標系を算出することと、
を備えた作業座標系の設定方法。
【請求項3】
前記作業座標系を更新するために、予め定められた繰り返し回数だけ前記作業座標系を算出する処理を繰り返すことと、
更新された個々の前記作業座標系において、前記ハンドの位置・姿勢を正しい位置・姿勢に修正することと、
をさらに備えた請求項1又は2に記載の作業座標系の設定方法。
【請求項4】
前回算出された設定済みの作業座標系と今回新たに算出された作業座業系の位置又は姿勢を比較し、
前記位置又は前記姿勢の変化の大きさが閾値以下となるまで前記作業座標系を算出する処理を繰り返すことと、
更新された個々の前記作業座標系において、前記ハンドの位置・姿勢を正しい位置・姿勢に修正することと、
をさらに備えた請求項1又は2に記載の作業座標系の設定方法。
【請求項5】
前記対象ワークに接触させる前記ハンドの移動速度を所定の速度とする請求項1〜4のいずれか1項に記載の作業座標系の設定方法。
【請求項6】
前記ロボットが垂直多関節タイプのロボットであり、前記対象ワークに対する前記ハンドの接触位置を6箇所以上とした請求項1〜5のいずれか1項に記載の作業座標系の設定方法。
【請求項7】
前記ロボットが水平多関節タイプのロボットであり、前記対象ワークに対する前記ハンドの接触位置を4箇所以上とした、請求項1〜5のいずれか1項に記載の作業座標系の設定方法。
【請求項8】
前記ロボットのハンドが前記対象ワークに接触したことを検出するために力センサを用いることと、
該力センサで検出された検出値が予め設定された閾値を超えたときに前記ハンドが前記対象ワークに接触したと判断することと、
前記作業座標系で、前記ハンドを前記対象ワークの任意の設定位置に接触させることと、
前記作業座標系における前記設定位置と前記ハンドの実際の位置とのずれ量を算出することと、
前記ずれ量が所定の閾値を超えたときに前記作業座標系が異常であるとすることと、
を備えた作業座標系の異常検出方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2010−23184(P2010−23184A)
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願番号】特願2008−187630(P2008−187630)
【出願日】平成20年7月18日(2008.7.18)
【出願人】(390008235)ファナック株式会社 (1,110)
【Fターム(参考)】
【公開日】平成22年2月4日(2010.2.4)
【国際特許分類】
【出願日】平成20年7月18日(2008.7.18)
【出願人】(390008235)ファナック株式会社 (1,110)
【Fターム(参考)】
[ Back to top ]