特許第5980084号(P5980084)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社明和eテックの特許一覧

<>
  • 特許5980084-ロボットハンドの誤差検出方法 図000011
  • 特許5980084-ロボットハンドの誤差検出方法 図000012
  • 特許5980084-ロボットハンドの誤差検出方法 図000013
  • 特許5980084-ロボットハンドの誤差検出方法 図000014
  • 特許5980084-ロボットハンドの誤差検出方法 図000015
  • 特許5980084-ロボットハンドの誤差検出方法 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5980084
(24)【登録日】2016年8月5日
(45)【発行日】2016年8月31日
(54)【発明の名称】ロボットハンドの誤差検出方法
(51)【国際特許分類】
   B25J 9/10 20060101AFI20160818BHJP
【FI】
   B25J9/10 A
【請求項の数】2
【全頁数】10
(21)【出願番号】特願2012-225573(P2012-225573)
(22)【出願日】2012年10月11日
(65)【公開番号】特開2014-76517(P2014-76517A)
(43)【公開日】2014年5月1日
【審査請求日】2015年10月9日
(73)【特許権者】
【識別番号】591172054
【氏名又は名称】株式会社明和eテック
(74)【代理人】
【識別番号】100107700
【弁理士】
【氏名又は名称】守田 賢一
(72)【発明者】
【氏名】石川 坂幸
(72)【発明者】
【氏名】松井 勇志
(72)【発明者】
【氏名】山田 浩臣
【審査官】 臼井 卓巳
(56)【参考文献】
【文献】 特開昭62−295115(JP,A)
【文献】 特開平01−092078(JP,A)
【文献】 特開平05−008185(JP,A)
【文献】 特開平07−068480(JP,A)
【文献】 特開平08−085083(JP,A)
【文献】 米国特許出願公開第2010/0168915(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 9/00− 9/16
(57)【特許請求の範囲】
【請求項1】
関節によって相対回転可能に互いに直列に連結された複数のアームより構成されるロボットハンドの誤差検出方法であって、前記各アームを単独で回転させた際のロボットハンド先端の先端位置ベクトルをそれぞれ三点測定して、これら測定された先端位置ベクトルに基づいて前記各アームの回転時における回転軸ベクトルと回転面の中心ベクトルをそれぞれ算出するステップと、前記回転軸ベクトルおよび前記中心ベクトルより前記各関節の関節位置ベクトルと前記各アームのアーム長ベクトルを算出するステップと、算出された前記関節位置ベクトルと予め記憶されたマスタ関節位置ベクトルの差である関節位置誤差ベクトルを算出するステップと、前記関節位置誤差ベクトル、前記回転軸ベクトルおよびアーム長ベクトルより、各アームの角度と予め記憶されたマスタ角度との誤差角度を算出するステップとを具備するロボットハンドの誤差検出方法。
【請求項2】
前記誤差角度を使用して前記関節位置ベクトル、前記アーム長ベクトル、前記関節位置誤差ベクトルの少なくとも一つを補償するステップをさらに備える請求項1に記載のロボットハンドの誤差検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はロボットハンドの誤差検出方法に関し、特に、多関節ロボットハンドの誤差検出に好適に使用できる誤差検出方法に関する。
【背景技術】
【0002】
多関節ロボットハンドでは各関節に生じた誤差が、工具等を把持して作業を行うロボットハンド先端の誤差となって現れる。そこで、各関節に生じた誤差を特定するための誤差検出方法が提案されており、例えば特許文献1においては、ロボットハンド先端に装着したカメラでロボットのベース近傍の固定被写点を撮影し、ロボットハンドを複数の異なる姿勢にした際の、各姿勢において撮影された固定被写点像の位置と理論上の位置との差を算出して、これらの差より各関節に生じた誤差を検出する方法が示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平5−8185
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、上記従来の誤差検出方法では、各関節のアームの角度ずれ(誤差角度)の絶対値を検出することができないという問題があった。
【0005】
そこで、本発明はこのような課題を解決するもので、ロボットハンドを構成する各関節におけるアームの角度ずれ(誤差角度)の絶対値を検出することが可能なロボットハンドの誤差検出方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本第1発明は、関節(P1〜P6)によって相対回転可能に互いに直列に連結された複数のアーム(L1〜L6)より構成されるロボットハンド(1)の誤差検出方法であって、前記各アーム(L1〜L6)を単独で回転させた際のロボットハンド先端(P7)の先端位置ベクトルをそれぞれ三点測定して、これら測定された先端位置ベクトル(P7An*,P7Bn*,P7Cn*)に基づいて前記各アーム(L1〜L6)の回転時における回転軸ベクトル(kn*)と回転面の中心ベクトル(On*)をそれぞれ算出するステップと、前記回転軸ベクトル(kn*)および前記中心ベクトル(On*)より前記各関節(P1〜P6)の関節位置ベクトル(Pn*)と前記各アーム(L1〜L6)のアーム長ベクトル(Ln*)を算出するステップと、算出された前記関節位置ベクトルと予め記憶されたマスタ関節位置ベクトルの差である関節位置誤差ベクトル(ΔPn*)を算出するステップと、前記関節位置誤差ベクトル(ΔPn*)、前記回転軸ベクトル(kn*)およびアーム長ベクトル(Ln*)より、各アーム(L1〜L6)の角度と予め記憶されたマスタ角度との誤差角度(Δθn)を算出するステップとを具備する。
【0007】
本第1発明によれば、ロボットハンドを構成する各関節のアームの角度ずれ(誤差角度)の絶対値を正確に検出することができる。
【0008】
本第2発明では、前記誤差角度(Δθn)を使用して前記関節位置ベクトル(Pn*)、前記アーム長ベクトル(Ln*)、前記関節位置誤差ベクトル(ΔPn*)の少なくとも一つを補償するステップをさらに備える。
【0009】
本第2発明によれば、各関節のアームの誤差角度に基づいて、関節位置ベクトル、アーム長ベクトル、関節位置誤差ベクトルの少なくとも一つを良好に補償することができる。
【発明の効果】
【0010】
以上のように、本発明のロボットハンドの誤差検出方法によれば、ロボットハンドを構成する各関節におけるアームの角度ずれ(誤差角度)の絶対値を精度良く検出することができる。
【図面の簡単な説明】
【0011】
図1】本発明方法を実施する装置の構成を示す図である。
図2】多関節ロボットハンドの概念図である。
図3】基準座標系と平面座標系の関係を示す図である。
図4】平面座標系上での幾何学的位置関係を示す図である。
図5】平面座標系上での幾何学的位置関係を示す図である。
図6】ロボットハンドの一部の概念図である。
【発明を実施するための形態】
【0012】
なお、以下に説明する実施形態はあくまで一例であり、本発明の要旨を逸脱しない範囲で当業者が行う種々の設計的改良も本発明の範囲に含まれる。
【0013】
図1は本発明を実施する装置の構成を示すもので、多関節ロボットハンド1の先端に装着された測定用治具2を、カメラ3で撮像する。カメラ3はコンピュータ4に接続されており、コンピュータ4のプログラムによって、以下に説明する誤差検出および誤差補償の手順が実行される。コンピュータ4はカメラ3を介し、必要に応じて、固定された基準点St(基準座標系の原点となる)を撮像して3次元認識の精度を維持する。
【0014】
図2には多関節ロボットハンド1の一例を概念的に示す。ロボットハンド1の各関節P1〜P6は地上側から6箇所にあり、P7はロボットハンド1の先端である。各関節P1〜P6および先端P7(測定用治具の先端)はアームL1〜L6で連結されており、本実施形態では、P1は固定関節、P2,P3,P5はそれぞれアームL2,L3,L5を旋回回転させる関節、P4,P6はそれぞれアームL4,L6をその軸周りに回転させる関節となっている。
【0015】
(旋回回転する関節の誤差検出)
最初に各関節Pn(n=2〜6)をそれぞれ回転させて、その時の、先端P7の軌跡のうちから3点のベクトル座標P7An*,P7Bn*,P7Cn*を得る。なお、以下、*印を付した記号はベクトルであることを示す。続いて下式(1)〜(3)で示される3点G1(n)*,G2(n)*,G3(n)*を通る旋回軌跡の回転半径dnを算出する。回転半径dnは旋回回転する関節Pn(n=2,3,5)についてのみ算出することができる。また、下式(1)〜(3)においてm>nである。
【0016】
【数1】
【0017】
上記回転半径dnの算出は以下の手順で行う。
最初に上記3点G1(n)*,G2(n)*,G3(n)*を通る回転軌跡が存在する回転面の、中心ベクトルOn*を以下のように計算する。
【0018】
図3に示すように、上記3点G1(n)*,G2(n)*,G3(n)*(図中は(n)を省略している)が含まれる平面(平面座標系)の原点をG1(n)*とし、点G1(n)*,G2(n)*間のベクトルをV1*、点G1(n)*,G3(n)*間のベクトルをV2*とすると、平面座標系の単位ベクトルi*,j*,k*は下式(4)〜(6)で求められる。ここでk*は上記平面に垂直な、回転軸の向きを示す単位方向ベクトルである。
【0019】
【数2】
【0020】
点G1(n)*の、基準座標系での座標値を(X1,Y1,Z1)とし、単位ベクトルi*,j*,k*の各座標値をそれぞれ(ix,iy,iz)(jx,jy,jz)(kx,ky,kz)とすると、変換行列Tpは下式(7)のようになる。
【0021】
【数3】
【0022】
これにより、点G2(n)*,G3(n)*は下式(8),(9)によって平面座標系上の点G2(n)*´,G3(n)*´に変換される(図3)。
【0023】
【数4】
【0024】
上記3点G1(n)*´, G2(n)*´, G3(n)*´,を通る円(旋回軌跡)の平面座標系上での中心On*´の座標(uc,vc,0)は図4に示す幾何学的位置関係より、下式(10)のようなものとなる。
【0025】
【数5】
【0026】
なお、中心On*´から各点G1(n)*´,G2(n)*´,G3(n)*´へのベクトルを、図5に示す(図中は(n)を省略している)ようにそれぞれVcG1*´,VcG2*´,VcG*3´とすると、点G1(n)*´,G2(n)*´間の角度θ12、およびG2(n)*´,G3(n)*´間の角度θ23は下式(11),(12)で表される。
【0027】
【数6】
【0028】
平面座標系上で位置が特定された中心On*´は下式(13)によって基準座標系上の中心On*に変換される。
On*=Tp・On*´…(13)
これにより、回転半径dnがdn=|G1*−On*|で算出される。
【0029】
続いて、各アームL2,L3,L5のアーム長Ln(n=2,3,5)を、各アームのその回転軸に対する設計上の角度φn(φn≠0)と上記回転半径dnより、下式(14)で算出する。
Ln=dn/sinφn…(14)
なお、φn=0の場合のLn(n=4,6)は予め測定しておく。
【0030】
その後、各関節の位置ベクトルPn*(n=1〜6)および各アームの長さベクトルLn*を下式(15),(16)によって算出する。
【0031】
【数7】
【0032】
上式(15)中のkn*は関節Pnの回転軸の単位方向ベクトルである。また上式(15),(16)の算出はn=6→1の順で行う。
ロボットハンド1の設置初期等に上記手順で算出されたPn*、Ln*の値はマスタ値として予めコンピュータ4内に記憶される。
【0033】
ロボットハンド1を使用している過程で、上記と同様の手順で各関節P1〜P6の位置ベクトルPn*(n=1〜6)が算出され、位置ベクトルPn*の上記マスタ値との誤差ΔPn*が算出される。そして、下式(17),(18)によって各関節Pn(n=1〜3)について、その回転軸の、マスタ角度との誤差(ずれ)角度Δθnが検出(算出)される。検出された誤差角度Δθnが所定値よりも大きい場合には、ロボットハンド1の異常として該当する関節Pn(n=1〜6)を報知する。検出された誤差角度Δθnが所定値よりも小さい場合には、後述する誤差補償が行なわれる。
【0034】
【数8】
【0035】
ここで、上式(17)中、ΔPmn*は、n番目の関節Pnの、位置誤差の影響を受けたm番目の関節Pmの位置誤差ベクトルを示す。また、m>n≧1である。
【0036】
(誤差補償)
次に、n=1〜3の各Ln*,kn*,Pn*,ΔPn*について、Δθnの影響を取り除く(誤差補償)。これは下式(19)で示される回転行列Rot(k*,θ)を使用して以下のように行われる。
Rot(k*,θ)=cosθ・I3+(1−cosθ)k*・tk*+sinθ[k*×]…(19)
ここで、I3は3次の単位行列、tk*は単位ベクトルk*の転置ベクトル、[k*×]は単位ベクトルk*の外積行列である。
【0037】
すなわち、誤差補償後のLn*,kn*,Pn*,ΔPn*をそれぞれLm*´,km*´,Pm*´,ΔPm*´とすると、これらは下式(20)〜(23)を使用して算出(補償)できる。
Lm*´=Rot(kn*,−Δθn) Lm*…(20)
km*´=Rot(kn*,−Δθn) km*…(21)
Pm*´=Rot(kn*,−Δθn) (Pm*−Pn*)+Pn*…(22)
ΔPm*´=Rot(kn*,−Δθn)ΔPm*…(23)
【0038】
(軸回りに回転する関節の誤差検出・補償)
上式(20)〜(23)を使用するに際して、Pn(n=4,6)の関節はそれぞれアームLn(n=4,6)をその軸周りに回転させるものであり、これら関節Pn(n=4,6)では回転軸とアームが平行であるから、上式(18)における|kn*×Ln*|=0となってΔθnが算出できない。
【0039】
そこでこの場合、図6で、|P5*−P4*|はアームL4の回転で変化せず、また|O6*−P5*|がアームL6の回転で変化しないこと、およびO6*にはΔθn(n=1〜3)の影響がないので|O6*−P4*|にはΔθ5以外のΔθnの影響がないこと、を考慮すると、図6に示す幾何学的な関係からΔθ5は下式(24)で算出される。
【数9】
【0040】
算出(検出)されたΔθ5により上式(20)〜(23)によってL5*,k5*,P5*,ΔP5*の誤差補償が行われ、あるいは当該関節P6の異常が報知される。
【0041】
次にΔθ4を算出(検出)する。O6*にはΔθ4以外のΔθnの影響は無いから、下式(25)によってΔθ4が算出され、上式(20)〜(23)によってL4*,k4*,P4*,ΔP4*の誤差補償が行われ、あるいは当該関節P4の異常が報知される。
|ΔO6*|2=2|R4*×(O6*−P4*)|2(1−cosΔθ4)…(25)
【0042】
Δθ6については、P7*とO6*が重ならないように測定治具を予め調節しておく(図6参照)ことによって、上式(1)〜(18)によってΔθ6が算出(検出)され、その後、上式(20)〜(23)によってL6*,k6*,P6*,ΔP6*の誤差補償が行われ、あるいは当該関節P4の異常が報知される。
【符号の説明】
【0043】
1…ロボットハンド、2…測定用治具、3…カメラ、4…コンピュータ、P1,P2,P3,P4,P5,P6…関節、L1,L2,L3,L4,L5,L6…アーム。
図1
図2
図3
図4
図5
図6