(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-02
(45)【発行日】2024-12-10
(54)【発明の名称】ロボットの設置位置測定方法、ロボット制御装置、教示システムおよびシミュレーション装置
(51)【国際特許分類】
B25J 9/10 20060101AFI20241203BHJP
B25J 9/22 20060101ALI20241203BHJP
【FI】
B25J9/10 A
B25J9/22 A
(21)【出願番号】P 2023502484
(86)(22)【出願日】2022-02-24
(86)【国際出願番号】 JP2022007600
(87)【国際公開番号】W WO2022181688
(87)【国際公開日】2022-09-01
【審査請求日】2023-09-12
(31)【優先権主張番号】P 2021029889
(32)【優先日】2021-02-26
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100118913
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100201466
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】原田 邦彦
【審査官】牧 初
(56)【参考文献】
【文献】特開2015-182144(JP,A)
【文献】特開2006-110705(JP,A)
【文献】特開2011-230243(JP,A)
【文献】特開平03-086484(JP,A)
【文献】米国特許出願公開第2009/0118864(US,A1)
【文献】中国特許出願公開第110640746(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/18-19/416
G05B 19/42-19/46
(57)【特許請求の範囲】
【請求項1】
ロボットを任意の姿勢に位置決めした状態において前記ロボットの先端のフランジに固定されたツール先端点の3次元の指令位置である第1位置情報を取得する第1位置情報取得部と、
前記姿勢において、所定の測定座標系に設置された3次元測定器からの出力に基づいて前記ツール先端点の3次元の現実の位置である第2位置情報を取得する第2位置情報取得部と、
前記指令位置を実現するための前記ロボットに対する指令値から前記ツール先端点の位置を算出するために用いられる複数の誤差パラメータを記憶するパラメータ記憶部と、
前記複数の誤差パラメータに基づいて、前記ロボットを複数の異なる姿勢に位置決めした状態において取得された前記第1位置情報と前記第2位置情報との差が小さくなるように、ロボット座標系を修正する座標系修正部と、
を備えるロボット制御装置。
【請求項2】
前記座標系修正部が、前記第1位置情報と前記第2位置情報との前記差が小さくなるように、前記フランジに固定されたフランジ座標系の原点から前記ツール先端点までの位置と向きを規定するツール座標系および前記ロボット座標系の原点から見た前記測定座標系の少なくとも一方を同定し、同定された前記ツール座標系および/または前記測定座標系に基づいて前記ロボット座標系を修正する請求項1に記載のロボット制御装置。
【請求項3】
前記座標系修正部が、前記第1位置情報と前記第2位置情報との前記差が小さくなるように、前記ツール座標系および前記測定座標系の両方を同時に同定する請求項2に記載のロボット制御装置。
【請求項4】
前記座標系修正部が、前記ツール座標系および前記測定座標系の向きを規定するベクトルの従属度を判定し、従属度が高いと判定されたベクトルの同定を行わない請求項3に記載のロボット制御装置。
【請求項5】
前記ロボットを任意の姿勢に位置決めした状態で、前記座標系修正部により修正された前記ロボット座標系から見た前記フランジ座標系の原点の指令位置と、前記3次元測定器により取得された前記ツール先端点の実際位置とに基づいて前記ツール座標系を算出して出力するツール座標系出力部(5)を備える請求項2から請求項4のいずれかに記載のロボット制御装置。
【請求項6】
前記パラメータ記憶部に記憶された前記誤差パラメータを用いて前記ロボットの機械誤差を修正する機械誤差修正部を備える請求項1から請求項5のいずれかに記載のロボット制御装置。
【請求項7】
前記測定座標系が前記ロボット座標系に対して相対的に位置決めされていない請求項1から請求項6のいずれかに記載のロボット制御装置。
【請求項8】
ロボットを2以上の姿勢に位置決めすることと、
各前記姿勢において、前記ロボットの先端のフランジに固定されたツール先端点の3次元の指令位置である第1位置情報を取得することと、
各前記姿勢において、所定の測定座標系に設置された3次元測定器からの出力に基づいて前記ツール先端点の3次元の現実の位置である第2位置情報を取得することと、
前記指令位置を実現するための前記ロボットに対する指令値から前記ツール先端点の位置を算出するために用いられる複数の誤差パラメータに基づいて、取得された前記第1位置情報と前記第2位置情報との差が小さくなるように、前記ロボットが動作する基準であるロボット座標系を修正することとを含むロボットの設置位置測定方法。
【請求項9】
前記ロボット座標系を修正することが、前記差が小さくなるように前記フランジに固定されたフランジ座標系の原点から前記ツール先端点までの位置と向きを規定するツール座標系および前記ロボット座標系の原点から見た前記測定座標系の少なくとも一方を同定し、同定された前記ツール座標系および/または前記測定座標系に基づいて前記ロボット座標系を修正することを含む請求項8に記載のロボットの設置位置測定方法。
【請求項10】
前記ロボット座標系を修正することが、前記差が小さくなるように、前記ツール座標系および前記測定座標系の両方を同時に同定することを含む請求項9に記載のロボットの設置位置測定方法。
【請求項11】
前記ロボット座標系を修正することが、前記ツール座標系および前記測定座標系の向きを規定するベクトルの従属度を判定し、該従属度が高いと判定されたベクトルの同定を行わない請求項10に記載のロボットの設置位置測定方法。
【請求項12】
前記測定座標系が前記ロボット座標系に対して相対的に位置決めされていない請求項8から請求項11のいずれかに記載のロボットの設置位置測定方法。
【請求項13】
請求項1から請求項7のいずれかに記載のロボット制御装置と、
前記ロボットの3次元モデルに基づいてオフラインで動作プログラムを作成可能なシミュレーション装置と、
前記ロボットの3次元モデルを表示可能なモデル表示部と、
前記シミュレーション装置に設定されている修正前のロボット座標系と、前記
ロボット制御装置において修正されたロボット座標系との誤差を表す誤差情報を表示する誤差表示部と、
該誤差表示部に表示された前記誤差情報を前記モデル表示部に表示された前記3次元モデルに適用することにより、前記モデル表示部における前記3次元モデルの表示および前記シミュレーション装置に記憶されている前記動作プログラムの少なくとも一方を前記誤差情報に基づいて更新する更新部とを備える教示システム。
【請求項14】
ロボットの3次元モデルに基づいてオフラインで動作プログラムを作成可能なシミュレーション装置であって、
前記ロボットの3次元モデルを表示可能なモデル表示部と、
ロボット座標系の誤差を表す誤差情報を表示する誤差表示部と、
該誤差表示部に表示されている前記誤差情報を前記モデル表示部に表示された前記3次元モデルにドラッグして適用することにより、前記モデル表示部における前記3次元モデルの表示および前記動作プログラムの少なくとも一方を前記誤差情報に基づいて更新する更新部とを備えるシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロボットの設置位置測定装置、設置位置測定方法、ロボット制御装置、教示システムおよびシミュレーション装置に関するものである。
【背景技術】
【0002】
レーザトラッカのような3次元測定器を用いて、ロボットの座標系を設定するロボットシステムが知られている(例えば、特許文献1参照。)。このロボットシステムは、ロボットを設置する基準平面上の3点以上の測定点の少なくとも鉛直方向の位置座標の測定結果と、ロボットの基部に設けられた複数の基準反射部の位置情報の測定結果とに基づいて、基準平面上に設置されたロボットの座標系を設定する。
【0003】
このロボットシステムによれば、実際に設置されたロボットの座標系を測定により求めることができ、例えば、オフラインシミュレーションにおいて理想的に設定されたロボットの座標系を現実の座標系に修正することができる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、ロボットを設置する基準平面上の測定点およびロボットの基部に設けた基準反射部の位置情報の3次元測定器による測定は、生産セルが複雑である場合等には周辺装置等が障害となって困難となる場合がある。したがって、基準平面状の測定点あるいはロボットの基部に設けた基準反射部の3次元測定器による測定が困難な場合であっても、ロボットの座標系を精度よく設定することが望まれている。
【課題を解決するための手段】
【0006】
本開示の一態様は、ロボットを任意の姿勢に位置決めした状態において前記ロボットの先端のフランジに固定されたツール先端点の3次元の指令位置である第1位置情報を取得する第1位置情報取得部と、前記姿勢において、所定の測定座標系に設置された3次元測定器からの出力に基づいて前記ツール先端点の3次元の現実の位置である第2位置情報を取得する第2位置情報取得部と、前記指令位置を実現するための前記ロボットに対する指令値から前記ツール先端点の位置を算出するために用いられる複数の誤差パラメータを記憶するパラメータ記憶部と、前記複数の誤差パラメータに基づいて、前記ロボットを複数の異なる姿勢に位置決めした状態において取得された前記第1位置情報と前記第2位置情報との差が小さくなるように、ロボット座標系を修正する座標系修正部と、を備えるロボット制御装置である。
【図面の簡単な説明】
【0007】
【
図1】本開示の一実施形態に係る設置位置測定装置を備えるロボットシステムを示す全体構成図である。
【
図2】
図1のロボットシステムにおいてロボットを制御するロボット制御装置を示すブロック図である。
【
図3】
図1のロボットシステムに備えられる位置測定装置を示す側面図である。
【
図4】
図3の位置測定装置を制御する測定制御装置を示すブロック図である。
【
図5】
図1の設置位置測定装置を示すブロック図である。
【
図6】本開示の一実施形態に係る設置位置測定方法を説明する座標系および同次変換行列の説明図である。
【
図7】
図6の設置位置測定方法を説明するフローチャートである。
【
図8】本開示の一実施形態に係るロボット制御装置を示すブロック図である。
【
図9】
図5の設置位置測定装置の変形例を示すブロック図である。
【
図10】本開示の一実施形態に係る教示システムを説明する表示画面の一例である。
【発明を実施するための形態】
【0008】
本開示の一実施形態に係るロボットの設置位置測定装置1および設置位置測定方法について、図面を参照して以下に説明する。
本実施形態に係るロボットの設置位置測定装置1は、
図1に示されるように、ロボット20と、ロボット20を制御するロボット制御装置30と、シミュレーション装置40と、位置測定装置(3次元測定器)50とを備えるロボットシステム(教示システム)100に備えられている。
【0009】
ロボット20は、図示しないワークに対するスポット溶接等の所定の作業を行うものであり、複数の駆動軸を備え、各駆動軸をそれぞれ駆動する複数のサーボモータ11を備えている。各サーボモータ11として回転モータ、直動モータ等の各種のサーボモータを用いることができる。各サーボモータ11は、その作動位置を検出するエンコーダ等の作動位置検出装置を内蔵しており、作動位置検出装置の検出値がロボット制御装置30に送信される。
ロボット20の先端に配置されているフランジ21には、加工ツール(ツール)22が取り付けられる。
【0010】
ロボット制御装置30は、
図2に示されるように、例えば、CPU、RAM等を有するロボット制御部31と、表示装置32と、不揮発性ストレージ、ROM等を有する記憶装置33とを備えている。また、ロボット制御装置30は、サーボモータ11にそれぞれ対応するように設けられた複数のサーボ制御器34と、ロボット制御装置30に接続されるとともに操作者が持ち運び可能な教示操作盤35とを備えている。
また、教示操作盤35は、ロボット制御装置30とは別個に設けられて、ロボット制御装置30と無線通信する構成でもよい。
【0011】
記憶装置33には、システムプログラム33aが格納されており、システムプログラム33aがロボット制御装置30の基本機能を担っている。また、記憶装置33には、シミュレーション装置40を用いて作成された動作プログラム33bが少なくとも1つ格納されている。具体的には、シミュレーション装置40上にロボット20の3次元モデルおよびワークのモデルを作成し、例えば、ロボット20とワークとの干渉を回避しつつ複数の溶接ポイントを溶接する動作プログラム33bが作成される。
【0012】
ロボット制御部31は、システムプログラム33aにより作動し、記憶装置33に格納された動作プログラム33bを読み出してRAMに一時的に格納する。そして、読み出した動作プログラム33bに沿ってサーボ制御器34に制御信号を送り、ロボット20の各サーボモータ11のサーボアンプを制御する。ロボット制御部31は、予め設定されているロボット座標系を基準として動作プログラム33bにおいて要求されるフランジ中心あるいはツール先端点の指令位置が達成されるように指令値を生成する。
【0013】
位置測定装置50は、
図3に示されるように、レーザヘッド51と、ヘッド駆動部52とを備えている。レーザヘッド51は、ツール先端点に固定された反射部材に向かってレーザ光を出射し、反射部材からの反射光を受光する。反射部材は、ロボット20の設置位置測定に際して、ツール先端点に固定される球体状の反射体である。
【0014】
ヘッド駆動部52は、レーザヘッド51の向きを変更するための鉛直軸モータ53および水平軸モータ54を備えている。鉛直軸モータ53は、レーザヘッド51および水平軸モータ54を鉛直軸線回りに回転させる。水平軸モータ54は、レーザヘッド51を水平軸線回りに回転させる。
【0015】
鉛直軸モータ53および水平軸モータ54は、測定制御装置60に接続され、測定制御装置60によって制御される。鉛直軸モータ53および水平軸モータ54はその作動位置を検出するエンコーダ等の作動位置検出装置を内蔵しており、作動位置検出装置の検出値が測定制御装置60に送信される。
【0016】
レーザヘッド51にはレーザ光出射部51aが設けられ、レーザ発振器(図示せず)からのレーザ光がレーザ光出射部51aから出射される。また、レーザヘッド51のレーザ光出射部51a内には、反射部材等により反射された反射光を受光する受光センサ51bが設けられている。レーザヘッド51は測定制御装置60に接続され、測定制御装置60によりレーザヘッド51のレーザ光出射部51aからのレーザ光の出射が制御され、受光センサ51bによる検出結果が測定制御装置60に送信される。
【0017】
測定制御装置60は、
図4に示すように、例えば、CPU、RAM等を有する制御部61と、表示装置62と、不揮発性ストレージ、ROM等を有する記憶装置63と、入力装置64とを備えている。また、入力装置64は測定制御装置60と無線通信するように構成されていてもよい。
記憶装置63にはシステムプログラム63aが格納されており、システムプログラム63aが測定制御装置60の基本機能を担っている。
また、測定制御装置60は、位置測定装置50に内蔵されていてもよいし、位置測定装置50外の他の位置に設けられていてもよい。
【0018】
シミュレーション装置40はコンピュータにより構成され、1以上のロボット20、加工ツール22、ワークおよび周辺装置等の3次元モデルを記憶している。シミュレーション装置40は、ロボット20および加工ツール22の3次元モデルをワークの3次元モデルに対して移動させながら、複数の教示点の位置および動作速度等を教示することにより、動作プログラムを作成することができる。また、シミュレーション装置40は、作成した動作プログラムを実行することにより、動作プログラムに沿ってロボット20および加工ツール22の3次元モデルを動作させ、干渉チェック、タクトタイムの測定等をシミュレーションすることができる。
【0019】
シミュレーション装置40においては、動作プログラムを作成する前提として、ロボット20は設計された設計上のロボット座標系R0の原点に、ロボット座標系R0のx方向をロボット20の正面方向に精度よく合わせて設置されている。また、位置測定装置50も上述した設計上のロボット座標系R0の原点に対して設定された設計上の測定座標系L0の原点に設定されている。さらに、ロボット20のフランジ21に取り付ける加工ツール22の大きさおよび形状が設計値に基づいて設定され、フランジ座標系F0から見た設計上のツール座標系T0が設定されている。
【0020】
本実施形態に係る設置位置測定装置1は、CPU、RAM等を備える装置であって、
図1に示されるように、ロボット制御装置30、シミュレーション装置40および位置測定装置50に接続されている。
設置位置測定装置1は、
図5に示されるように、第1位置情報取得部2と、第2位置情報取得部3と、座標系修正部4とを備えている。
【0021】
第1位置情報取得部2は、ロボット制御装置30に指令して、複数の姿勢にロボット20を動作させて位置決めさせるとともに、ロボット制御装置30において指令された各姿勢におけるツール先端点の指令位置の位置情報(第1位置情報)を取得する。この時点では、ロボット20の動作するロボット座標系(ロボット座標系、ワールド座標系)はシミュレーション装置40において設定された設計上の座標系であり、指令位置も設計値に基づいて算出された設計上の位置情報である。
【0022】
第2位置情報取得部3は、測定制御装置60に指令して、位置測定装置50を作動させ、実際のロボット20のツール先端点に配置された反射部材の3次元位置を測定させ、測定された位置情報(第2位置情報)を位置測定装置50から取得する。この時点で取得される位置情報は、現実の位置測定装置50が設定されている測定座標系(未知)から見たツール先端点の現実の位置情報である。
【0023】
座標系修正部4は、第1位置情報取得部2により取得されたツール先端点の指令位置の位置情報と、第2位置情報取得部3により取得されたツール先端点の現実の位置情報とに基づいて、ロボット座標系を以下の方法により修正する。
すなわち、
図6に示されるように、上述の通り、設計上のロボット座標系R
0から見た設計上の測定座標系L
0の位置および姿勢はシミュレーション装置40において予め設定されている。これを、同次変換行列A
UFを用いて表す。
【0024】
また、設計上のロボット座標系R0から見たフランジ座標系F0およびツール先端点に設置された設計上のツール座標系T0もそれぞれ同次変換行列AR、AUTを用いて表すことができる。
また、現実の測定座標系L1の位置および姿勢は未知であるが、設計上の測定座標系L0と現実の測定座標系L1との間には、通常、誤差が存在し、設計上の測定座標系L0から見た現実の測定座標系L1を、同次変換行列AΔUFを用いて表すことができる。
【0025】
さらに、設計上のツール座標系T0と現実のツール座標系T1との間にも、通常、誤差が存在し、設計上のツール座標系T0から見た現実のツール座標系T1を、同次変換行列AΔUTを用いて表すことができる。
そして、これらの同次変換行列を用いると、以下の式(1)が成立する。
P=A-1
ΔUF(A-1
UFAR)AUTAΔUT (1)
ここで、Pは、設計上の測定座標系L0から見た設計上のツール先端点の指令位置から算出した同次変換行列、A-1
ΔUF、A-1
UFはそれぞれAΔUF、AUFの逆行列である。
【0026】
そして、現実の測定座標系L1から見たツール先端点の現実の位置情報は、位置測定装置50によって取得されている。
座標系修正部4は、ロボット20を複数の姿勢に動かすことによって、各姿勢において式(1)によって取得されるツール先端点の指令位置の位置情報と、位置測定装置50によって取得された現実の位置情報との差をそれぞれ算出し、差が小さくなる(例えば、差が最小となる)同次変換行列AΔUF,AΔUTを同定する。
【0027】
そして、このようにして得られた同次変換行列AΔUFを用いることにより、現実のロボット座標系から見た現実の測定座標系L1が以下の式(2)に示される同次変換行列Anew_UFにより得られる。
Anew_UF=AUFAΔUF (2)
【0028】
したがって、現実の測定座標系L1から見た現実のロボット座標系は、同次変換行列Anew_UFの逆行列を算出することにより得ることができる。
座標系修正部4は、このようにして得られた修正されたロボット座標系をシミュレーション装置40に送り、シミュレーション装置40に設定されていた設計上のロボット座標系R0を修正されたロボット座標系に置き換えることにより修正する。
【0029】
そして、シミュレーション装置40において、修正された現実のロボット座標系を用いて動作プログラムのオフラインシミュレーションを行うことにより、ロボット20および加工ツール22がワークあるいは周辺装置と干渉しないよう動作プログラムを修正することができる。
【0030】
このように構成された本実施形態に係る設置位置測定装置1を用いた設置位置測定方法について、以下に説明する。
本実施形態に係る設置位置測定方法は、
図7に示されるように、測定回数kが初期化され(ステップS1)、第1位置情報取得部2からの指令に基づいてロボット制御装置30がロボット20を制御して、任意の姿勢に位置決めする(ステップS2)。このときのツール先端点の指令位置からなる第1位置情報が、ロボット制御装置30から第1位置情報取得部2に送られて記憶される(ステップS3)。
【0031】
次いで、ステップS2において位置決めされた姿勢において、第2位置情報取得部3からの指令に基づいて測定制御装置60が位置測定装置50を制御してツール先端点の位置を測定する(ステップS4)。測定されたツール先端点の位置情報からなる第2位置情報は、第2位置情報取得部3に送られて記憶される(ステップS5)。
【0032】
次に、測定回数kが指定回数N0に達したか否かが判定され(ステップS6)、指定回数N0に達していない場合には、測定回数kがインクリメントされ(ステップS7)、ステップS2からの工程が繰り返される。指定回数N0は、例えば、N0=3である。
測定回数kが指定回数N0に達した場合には、記憶された全ての第1位置情報および第2位置情報が、座標系修正部4に送られ、座標系修正部4においてロボット座標系が修正される(ステップS8)。
【0033】
このように本実施形態に係る設置位置測定装置1および設置位置測定方法によれば、ロボット20を複数の姿勢に位置決めして、ツール先端点に固定された反射部材の位置を測定することにより、ロボット座標系を修正することができる。したがって、ロボット20を設置する基準平面上の測定点およびロボット20の基部に設けた反射部を用いる従来の方法とは異なり、生産セルが複雑な場合であっても周辺装置に邪魔されることなく、簡易にロボット座標系を修正することができるという利点がある。
【0034】
なお、本実施形態においては、座標系修正部4において、第1位置情報と第2位置情報との差が小さくなる同次変換行列AΔUF,AΔUTを同時に同定したが、いずれか一方のみを同定してもよい。例えば、現実の測定座標系L1が設計上の測定座標系L0に精度よく一致していたり、現実のツール座標系T1が設計上のツール座標系T0に精度よく一致していたりする場合には、いずれか一方のみを同定すれば足りる。
【0035】
また、本実施形態においては、第1位置情報取得部2がロボット制御装置30から受け取る第1情報として、ツール先端点の指令位置を例示した。これに代えて、第1位置情報取得部2が、ロボット制御装置30からフランジ座標系F0の原点位置を受け取ってツール先端点の位置を計算することにより、第1位置情報を取得してもよい。
【0036】
また、本実施形態においては、設置位置測定装置1が、ロボット制御装置30とは別個に設けられている例を示したが、これに代えて、
図8に示されるように、ロボット制御装置30に設置位置測定装置1が備えられていてもよい。
また、この場合に、ロボット制御装置30が、ロボット20に対する指令値からツール先端点の正確な位置を算出するために用いられる複数の誤差パラメータを記憶するパラメータ記憶部36と、パラメータ記憶部36に記憶されている誤差パラメータを用いて機械誤差を公知の方法によって修正する機械誤差修正部37とを備えていてもよい。機械誤差としては、例えば、Denavit-Hartenbergパラメータ(D-Hパラメータ)あるいは重力バネなどである。
【0037】
ロボット制御部31は、機械誤差修正部37により誤差パラメータを用いて機械誤差を修正し、算出される指令位置が、動作プログラムにおいて要求される指令位置となるような指令値を生成する。これにより、ロボット座標系の修正に際してロボット制御部31から取得される指令値の精度を向上し、より正確なロボット座標系を得ることができる。
機械誤差の修正は、事前にキャリブレーションにより行われてもよいし、ロボット制御装置30に備えた機械誤差修正部37によってツール座標系およびロボット座標系の較正と同時に行われてもよい。
【0038】
また、本実施形態においては、座標系修正部4において誤差パラメータ間の従属度を判定し、従属度が高いと判定された場合には、ツール座標系の対応するベクトルの同定を行わないことにしてもよい。
ロボット20の設置位置の測定に関係する誤差パラメータは、測定座標系の補正値(xa,ya,za,wa,pa,ra)とツールベクトルの補正値(xb,yb,zb)の9個である。
これらの誤差パラメータを要素とするベクトルをqとすると、ツール先端点の3次元位置を示すベクトルpは、誤差モデルを考慮した関数fを用いて次のように表すことができる。
p=f(q)
【0039】
ツール先端点の指令位置の位置情報と測定された現実の位置情報とのずれ量を示すベクトルΔpは、各誤差パラメータの微小変動の線形結合の和で近似できる。なお、JAはヤコビアンである。
Δp=(∂p/∂q)・Δq=JA・Δq
【0040】
レーザトラッカは3次元の測定であるから、1つの測定姿勢から3つの方程式が成り立つ。これらを複数の測定姿勢に拡張すると、これらに対応したずれ量を示すベクトルΔrとヤコビアンDが得られ、次のように表すことができる。
Δr=D・Δq
【0041】
Δrを最小とする繰り返し推定問題を解くことで、誤差パラメータを同定するのが一般的である。
方程式の数をN個、誤差パラメータの数をM個とすると、上記ヤコビアンDは、以下のように与えられる。
【0042】
【0043】
方程式の数が未知数の数より多い場合、一般的な最小二乗問題は、[D]{p}={q}を、[D]T[D]{p}=[D]T{q}と変換し、次の式を得ることによって解くことができる。
【0044】
【0045】
[D]T[D]はM×Mの行列になる。
従属度の判定は、この[D]T[D]の各列ベクトルの単位ベクトルの内積Qを算出し、例えば、0.9<Q≦1である場合に、従属度が高いと判定することができる。
【0046】
例えば、測定座標系とツール座標系のz軸方向の向きが一致しており、各測定姿勢はツール座標系のZ軸回りにのみ回転させた姿勢である場合には、測定座標系とツール座標系のz成分は従属関係にある。例えば、測定座標系のz成分の補正量が1番目の誤差パラメータであり、ツール座標系のz成分の補正量が2番目の誤差パラメータであった場合、上述した[D]T[D]の1列目のベクトルと2列目の単位ベクトルの内積Qが上記条件を満たすことになる。従属度が高い場合には、座標系修正部4は、ツール座標系の対応するベクトルの同定を行わない、すなわち、ツール座標系のz成分の補正量を計算しないこととする。
【0047】
ロボット20のフランジ21に固定されている加工ツール22が、例えば、イコライジング機構を有するサーボガンである場合、加圧方向であるツール座標系のz軸方向にツールの姿勢を変化させると、自重によりツール先端点の位置が変化する仕組みになっている。ツール先端点の位置が変化すると誤差が大きくなり計算精度が悪化するので、ロボット座標系の修正を行う際のロボット20の動作においては、自重によりツール先端点の位置が変化しない姿勢にサーボガンが保たれる複数の姿勢に位置決めする。
【0048】
このような場合には、ツール座標系のz成分と測定座標系のz成分とがほとんど同じ向きを向いており従属度が高いと言える。従属度が高い場合には、ツール座標系のz成分と測定座標系のz成分のどちらを補正すべきか区別がつかなくなるので、2つの同次変換行列AΔUF,AΔUTを正しく同定することができない。したがって、従属度が高いと判定された場合には、ツール座標系のz軸方向の計算を行わず、図面値や事前測定値を用いることにより、精度よくロボット座標系を設定することができる。
【0049】
あるいは、[D]T[D]の最大固有値と最小固有値との比が、ある一定値になるまで固有値の小さな誤差パラメータを誤差パラメータ群から除外することにしてもよい。これにより、例えば、各測定姿勢が著しく隣接し、測定座標系の補正量を精度よく計算できないことを検出でき、事前に報知することができる。
【0050】
ヤコビアンDは、測定により位置情報を得る前に計算することができ、ヤコビアンDを用いることにより、測定開始前に事前にどの誤差パラメータが計算されるのかがわかる。計算したいツール座標系の成分が計算されない場合や、精度よく計算できない場合を事前に知ることで、測定する姿勢を事前に検討することができる。
【0051】
また、本実施形態においては、
図9に示されるように、設置位置測定装置1が、ツール座標系出力部5を備えていてもよい。
ツール座標系出力部5は、座標系修正部4においてロボット座標系が修正された後に、ロボット20を任意の1つの姿勢に位置決めして、以下の方法によりツール座標系を算出し、出力する。
【0052】
すなわち、ツール座標系出力部5は、座標系修正部4において修正されたロボット座標系を受け取る。そして、ツール座標系出力部5は、ロボット制御装置30から取得したフランジ座標系の原点の指令位置(第1位置情報)と、位置測定装置50から取得したツール先端点の実際位置(第2位置情報)とに基づいてツール座標系の位置を算出する。
【0053】
ロボット座標系が修正された後には、ロボット座標系および測定座標系が精度よく修正されているので、ロボット座標系から見た測定座標系の同次変換行列AUFは既知となる。
また、ロボット座標系から見たフランジ座標系の同次変換行列ARも、ロボット制御装置30から取得された指令位置に基づいて精度よく算出できる。
【0054】
そして、位置測定装置50から取得された測定座標系から見た現実のツール先端点に基づいて同次変換行列Pが取得されることにより、式(3)によって、フランジ座標系の原点から見たツール座標系の同次変換行列AUTを算出することができる。
AUT=A-1
RAUFP (3)
【0055】
そして、ツール座標系出力部5は、同次変換行列AUTの位置成分のみを取り出して出力する。これにより、ロボット20を1つの姿勢に位置決めした状態でツール座標系を出力でき、所要時間を短縮することができる。また、加工ツール22の姿勢変化によってツール座標系が変化する場合、ツール姿勢に応じたツール座標系のテーブルを作成したい場合がある。このような場合に、所望の姿勢毎にツール座標系を得ることができるという利点がある。
【0056】
ツール座標系出力部5によりツール座標系を計算する場合においても、ロボット制御装置30が誤差パラメータを用いて機械誤差を修正していれば、より正確な指令値を取得でき、より正確なツール座標系を得ることができる。
【0057】
次に、本開示の一実施形態に係る教示システム100について、図面を参照して以下に説明する。
本実施形態に係る教示システム100は、上述したロボット20と、ロボット20を制御するロボット制御装置30と、シミュレーション装置40と、位置測定装置(3次元測定器)50と、設置位置測定装置1とを備えるロボットシステムによって構成されている。シミュレーション装置40は、ディスプレイ等の表示装置(更新部)41と、マウスあるいはキーボード等の図示しない入力装置(更新部)とを備えている。
【0058】
図10に、シミュレーション装置40の表示装置41における表示画面における表示例を示す。
図10に示す例では、表示画面の左側に3次元測定器である位置測定装置50の測定座標系を設定する設定ボタンが表示されている。操作者は、測定座標系設定ボタンを押して測定座標系の情報を入力することができる。
【0059】
図10に示す表示画面の中央には、ロボット制御装置30あるいは教示操作盤35に対する操作を示すボタンが表示されている。
「設置位置測定画面を開く」のボタンを押すことにより、ロボット制御装置30の表示装置32に、設置位置測定画面が表示される。
「座標系等設定」のボタンを押すことにより、ツール座標系の計算の有効無効の切替、ロボット座標系の計算の有効無効の切替、設計上のロボット座標系およびツール座標系の入力および負荷設定等を行うことができる。
【0060】
「プログラム選択」のボタンを押すことにより、設置位置の測定に際してロボット20に動作させるプログラムを指定することができる。プログラムが指定されると、指定されたプログラムが、各動作行の後に3次元測定機による測定命令を追加した測定プログラムに変換される。
【0061】
「実行」のボタンを押すことにより、ロボット制御装置30が、設定された測定プログラムに基づいてロボット20を動作させ、設置位置測定装置1により、修正されたロボット座標系が算出される。
【0062】
図10に示す表示画面の右側上部には、設置位置測定装置1により修正されたロボット座標系と修正前のロボット座標系との誤差情報を表示する「誤差表示部42」が配置されている。誤差表示部42に表示される誤差情報は、数値で表示されていてもよいし、修正前後のロボット座標系の図形を重ねて表示してもよい。
【0063】
図10に示す表示画面の右側下部には、シミュレーション装置40から取得されたロボット20等の3次元モデルを表示するモデル表示部43が設けられている。
この表示画面上において、誤差表示部42に表示された誤差情報を、例えば、マウスによってドラッグしてモデル表示部43に移動(適用)することができる。これにより、モデル表示部43に表示されている、修正前のロボット座標系が設定されたロボット20の3次元モデルの表示を、修正後のロボット座標系が設定されたロボット20の3次元モデルの表示に更新することができる。
【0064】
また、モデル表示部43における表示を更新することに代えて、あるいは、これに加えて、誤差情報を用いて、シミュレーション装置40においてオフラインで作成された動作プログラムを更新してもよい。すなわち、シミュレーション装置40が、修正前後のロボット座標系の誤差情報を受け取る受付部を備え、シミュレーション装置40において、設計上のロボット座標系R0に基づいて作成された動作プログラムに、受け取った誤差情報を適用することにより、修正後のロボット座標系に基づく動作プログラムに更新される。
【0065】
具体的には修正前のロボット座標系に基づいて作成された動作プログラムの各教示点の位置がロボット座標系の誤差情報に基づいてシフトされる。このようにして更新された動作プログラムをシミュレーション装置においてオフラインで実行し、干渉チェック等の動作確認を行うことができる。
【0066】
そして、
図10に示す表示画面の中央下部の「ロード」のボタンを押すことにより、シミュレーション装置40において更新された動作プログラムがロボット制御装置30にロードされる。これにより、オフラインで3次元モデルを用いて動作確認された動作プログラムを用いてロボット20を動作させることができる。
【0067】
なお、この教示システム100の説明においては、
図10の表示画面をシミュレーション装置40に設けられた表示装置41に表示することとしたが、これに代えて、他のコンピュータに付属する表示装置に表示することにしてもよい。
また、設置位置測定装置1がロボット制御装置30とは別個に配置されている場合を例示したが、設置位置測定装置1がロボット制御装置30に内蔵されていてもよい。
【符号の説明】
【0068】
1 設置位置測定装置
2 第1位置情報取得部
3 第2位置情報取得部
4 座標系修正部
5 ツール座標系出力部
20 ロボット
21 フランジ
30 ロボット制御装置
36 パラメータ記憶部
37 機械誤差修正部
40 シミュレーション装置
41 表示装置(更新部)
42 誤差表示部
43 モデル表示部
50 位置測定装置(3次元測定器)
100 ロボットシステム(教示システム)
F0 フランジ座標系
L0,L1 測定座標系
R0 ロボット座標系
T0,T1 ツール座標系