(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】ロボットのツール変形量算出装置、ロボットのツール変形量算出システム、及びロボットのツール変形量算出方法
(51)【国際特許分類】
B25J 9/10 20060101AFI20240910BHJP
B25J 19/04 20060101ALI20240910BHJP
【FI】
B25J9/10 A
B25J19/04
(21)【出願番号】P 2022555406
(86)(22)【出願日】2021-09-29
(86)【国際出願番号】 JP2021035979
(87)【国際公開番号】W WO2022075159
(87)【国際公開日】2022-04-14
【審査請求日】2023-05-12
(31)【優先権主張番号】P 2020169246
(32)【優先日】2020-10-06
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100120499
【氏名又は名称】平山 淳
(72)【発明者】
【氏名】小窪 恭平
【審査官】神山 貴行
(56)【参考文献】
【文献】特開2015-163407(JP,A)
【文献】特開2018-111166(JP,A)
【文献】韓国公開特許第10-2017-0001838(KR,A)
【文献】特開2017-056503(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
(57)【特許請求の範囲】
【請求項1】
ロボットの先端のツール取付部に位置する第1被測定ターゲットを撮像した第1画像および前記ツール取付部よりもツールの先端側の所定部位に位置する第2被測定ターゲットを撮像した第2画像を取得する画像取得部と、
前記第1画像に基づいて前記第1被測定ターゲットの位置を算出する第1被測定ターゲット位置算出部と、
前記第2画像に基づいて前記第2被測定ターゲットの位置を算出する第2被測定ターゲット位置算出部と、
前記第1被測定ターゲットの位置と前記第2被測定ターゲットの位置に基づき、前記ロボットの姿勢に応じた前記ツールの変形量を算出するツール変形量算出部と、
を備える、ロボットのツール変形量算出装置。
【請求項2】
前記第1被測定ターゲット位置算出部は前記第1画像に基づいて前記第1被測定ターゲットの位置を算出することで前記ロボットの座標系に対する前記第1画像および前記第2画像を撮像するカメラの座標系の位置を算出する、請求項1に記載のロボットのツール変形量算出装置。
【請求項3】
前記第2被測定ターゲット位置算出部は、
前記第2画像に基づいて算出した前記カメラの座標系に対する前記第2被測定ターゲットの位置と、前記ロボットの座標系に対する前記カメラの座標系の位置とから、前記ロボットの座標系に対する前記第2被測定ターゲットの位置を算出し、前記ロボットの関節の角度に基づいて前記ロボットの座標系に対する前記ツール取付部の位置および姿勢を算出し、前記ロボットの座標系に対する前記第2被測定ターゲットの位置と、前記ロボットの座標系に対する前記ツール取付部の位置および姿勢とに基づいて、前記ツール取付部に対する前記第2被測定ターゲットの位置を算出する、請求項2に記載のロボットのツール変形量算出装置。
【請求項4】
前記ロボットの複数の姿勢において、前記第2被測定ターゲット位置算出部が算出した前記ツール取付部に対する前記第2被測定ターゲットの位置と、前記ツールの弾性変形を表すモデル式から得られる前記ツール取付部に対する前記第2被測定ターゲットの位置とを比較することで、前記モデル式に含まれる前記ツールの弾性変形パラメータを決定する弾性変形パラメータ決定部を備え、
前記ツール変形量算出部は、前記モデル式に基づいて前記ロボットの姿勢に応じた前記ツールの変形量を算出する、請求項3に記載のロボットのツール変形量算出装置。
【請求項5】
前記ツールの変形量に基づいて前記ツールの前記所定部位の位置を算出するツール位置算出部を更に備える、請求項1~4のいずれか1項に記載のロボットのツール変形量算出装置。
【請求項6】
前記ロボットの弾性変形に応じた前記ロボットの変形量を算出するロボット変形量算出部を更に備え、
前記ツール位置算出部は、前記ロボットの変形量と前記ツールの変形量とに基づいて前記所定部位の位置を算出する、請求項5に記載のロボットのツール変形量算出装置。
【請求項7】
前記所定部位は前記ツールの先端である、請求項1~6のいずれか1項に記載のロボットのツール変形量算出装置。
【請求項8】
ロボットの先端のツール取付部に位置する第1被測定ターゲットと、
前記ツール取付部よりもツールの先端側に位置する第2被測定ターゲットと、
前記ロボットの周辺に設置され、前記第1被測定ターゲットを撮像した第1画像および前記第2被測定ターゲットを撮像した第2画像を生成するカメラと、
前記ツールの変形量を算出するツール変形量算出装置と、
を備え、
前記ツール変形量算出装置は、
前記第1画像および前記第2画像を取得する画像取得部と、
前記第1画像に基づいて前記第1被測定ターゲットの位置を算出する第1被測定ターゲット位置算出部と、
前記第2画像に基づいて前記第2被測定ターゲットの位置を算出する第2被測定ターゲット位置算出部と、
前記第1被測定ターゲットの位置と前記第2被測定ターゲットの位置に基づき、前記ロボットの姿勢に応じた前記ツールの変形量を算出するツール変形量算出部と、
を有する、ロボットのツール変形量算出システム。
【請求項9】
ロボットの先端のツール取付部に位置する第1被測定ターゲットを撮像した第1画像および前記ツール取付部よりもツールの先端側に位置する第2被測定ターゲットを撮像した第2画像を取得するステップと、
前記第1画像に基づいて前記第1被測定ターゲットの位置を算出するステップと、
前記第2画像に基づいて前記第2被測定ターゲットの位置を算出するステップと、
前記第1被測定ターゲットの位置と前記第2被測定ターゲットの位置に基づき、前記ロボットの姿勢に応じた前記ツールの変形量を算出するステップと、
を備える、ロボットのツール変形量算出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットのツール変形量算出装置、ロボットのツール変形量算出システム、及びロボットのツール変形量算出方法に関する。
【背景技術】
【0002】
従来、ターゲットをツール取付面に固定し、カメラがターゲット上のマークを撮像し、メカニカルメカニカルインターフェイス座標系Σfでのカメラの注視点の位置、及びロボット座標系Σbでのマークの所定点の位置を算出することが公知である(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
産業用ロボットは、幾つかの剛体部分と、剛体部分を回転させるための関節部分から構成される。剛体部分や関節部分は、ロボットに取り付けたツールの重量やロボットの自重によって、またはロボットの姿勢に応じて弾性変形する。関節部分の回転角度の値からツール先端の位置を算出する際に、剛体部分や関節部分が変形しないものとして計算を行うと、弾性変形の分だけ計算結果に誤差が生じる。このため、ロボットの弾性変形の量を計算し、弾性変形の量をロボットのツール先端の位置の計算に利用することによって、計算の精度を高める技術がある。
【0005】
一方、ロボットだけでなく、ロボットに取り付けたサーボガンやハンドなどのツールについても、弾性変形等の変形が発生する。したがって、ツール先端の位置を正確に求めるためには、ツールの弾性変形の程度を求める必要がある。また、ツールの種類に応じて弾性変形の程度は異なるため、使用しようとするツールの種類に応じて弾性変形の程度を求める必要がある。しかし、ツールの弾性変形の程度を求めるためには、一般的にはレーザートラッカーのような高価な三次元測定機が必要となり、煩雑な工程と高額な費用がかかるといった問題がある。
【0006】
上記特許文献1に記載された技術は、カメラでターゲットを撮像して、ロボットのキャリブレーションの際に、高精度かつ自動的にリンク長さや各駆動軸の原点位置などの機構パラメータの誤差を求めて機構パラメータを補正するものであるが、ターゲットがツール取付面に固定されているため、ツールの弾性変形の程度を求めることは何ら想定していない。
【0007】
一つの側面では、簡素な構成でロボットに装着される各種ツールの変形量を算出することが可能なロボットのツール変形量算出装置、ロボットのツール変形量算出システム、及びロボットのツール変形量算出方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本開示の要旨は以下のとおりである。
【0009】
本発明の一態様において、ロボットのツール変形量算出装置は、ロボットの先端のツール取付部に位置する第1被測定ターゲットを撮像した第1画像およびツール取付部よりもツールの先端側の所定部位に位置する第2被測定ターゲットを撮像した第2画像を取得する画像取得部と、第1画像に基づいて第1被測定ターゲットの位置を算出する第1被測定ターゲット位置算出部と、第2画像に基づいて第2被測定ターゲットの位置を算出する第2被測定ターゲット位置算出部と、第1被測定ターゲットの位置と第2被測定ターゲットの位置に基づき、ロボットの姿勢に応じたツールの変形量を算出するツール変形量算出部と、を備える。
【0010】
第1被測定ターゲット位置算出部は第1画像に基づいて第1被測定ターゲットの位置を算出することでロボットの座標系に対する第1画像および第2画像を撮像するカメラの座標系の位置を算出してもよい。
【0011】
第2被測定ターゲット位置算出部は、第2画像に基づいて算出したカメラの座標系に対する第2被測定ターゲットの位置と、ロボットの座標系に対するカメラの座標系の位置とから、ロボットの座標系に対する第2被測定ターゲットの位置を算出し、ロボットの関節の角度に基づいてロボットの座標系に対するツール取付部の位置および姿勢を算出し、ロボットの座標系に対する第2被測定ターゲットの位置と、ロボットの座標系に対するツール取付部の位置および姿勢とに基づいて、ツール取付部に対する第2被測定ターゲットの位置を算出するものであってもよい。
【0012】
ロボットの複数の姿勢において、第2被測定ターゲット位置算出部が算出したツール取付部に対する第2被測定ターゲットの位置と、ツールの弾性変形を表すモデル式から得られるツール取付部に対する第2被測定ターゲットの位置とを比較することで、モデル式に含まれるツールの弾性変形パラメータを決定する弾性変形パラメータ決定部を備え、ツール変形量算出部は、モデル式に基づいてロボットの姿勢に応じたツールの変形量を算出するものであってもよい。
【0013】
ツールの変形量に基づいてツールの所定部位の位置を算出するツール位置算出部を更に備えていてもよい。
【0014】
ロボットの弾性変形に応じたロボットの変形量を算出するロボット変形量算出部を更に備え、ツール位置算出部は、ロボットの変形量とツールの変形量とに基づいて所定部位の位置を算出するものであってもよい。
【0015】
所定部位はツールの先端であってもよい。
【0016】
本発明の他の態様において、ロボットのツール変形量算出システムは、ロボットの先端のツール取付部に位置する第1被測定ターゲットと、ツール取付部よりもツールの先端側に位置する第2被測定ターゲットと、ロボットの周辺に設置され、第1被測定ターゲットを撮像した第1画像および第2被測定ターゲットを撮像した第2画像を生成するカメラと、ツールの変形量を算出するツール変形量算出装置と、を備え、ツール変形量算出装置は、第1画像および第2画像を取得する画像取得部と、第1画像に基づいて第1被測定ターゲットの位置を算出する第1被測定ターゲット位置算出部と、第2画像に基づいて第2被測定ターゲットの位置を算出する第2被測定ターゲット位置算出部と、第1被測定ターゲットの位置と第2被測定ターゲットの位置に基づき、ロボットの姿勢に応じたツールの変形量を算出するツール変形量算出部と、を有する。
【0017】
本発明の更に他の態様において、ロボットのツール変形量算出方法は、ロボットの先端のツール取付部に位置する第1被測定ターゲットを撮像した第1画像およびツール取付部よりもツールの先端側に位置する第2被測定ターゲットを撮像した第2画像を取得するステップと、第1画像に基づいて第1被測定ターゲットの位置を算出するステップと、第2画像に基づいて第2被測定ターゲットの位置を算出するステップと、第1被測定ターゲットの位置と第2被測定ターゲットの位置に基づき、ロボットの姿勢に応じたツールの変形量を算出するステップと、を備える。
【発明の効果】
【0018】
本発明によれば、簡素な構成でロボットに装着される各種ツールの変形量を算出することが可能なロボットのツール変形量算出装置、ロボットのツール変形量算出システム、及びロボットのツール変形量算出方法を提供することが可能になるという効果を奏する。
【図面の簡単な説明】
【0019】
【
図1】一つの実施形態による、ロボットのツール変形量算出装置が実装されたロボットシステムの概略構成図である。
【
図2】ツールがロボットの先端のツール取付面に装着される様子を示す模式図である。
【
図4】ツールの変形を算出し、ツールの変形を考慮してツールの先端位置を算出する処理に関する、プロセッサの機能ブロック図である。
【
図5】弾性変形モデルの各パラメータを説明するための模式図である。
【
図6】弾性変形モデルの各パラメータを説明するための模式図である。
【
図7】本実施形態に係るロボットのツール変形量算出方法の処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0020】
以下、本発明に係る幾つかの実施形態について図を参照しながら説明する。しかしながら、これらの説明は、本発明の好ましい実施形態の単なる例示を意図するものであって、本発明をこのような特定の実施形態に限定することを意図するものではない。
【0021】
図1は、一つの実施形態による、ロボットのツール変形量算出装置が実装されたロボットシステム1000の概略構成図である。ロボットシステム1000は、ロボットのツール変形量算出システムの一態様であり、ロボット100と、ロボット100の先端に装着されるツール200と、ロボット100およびツール200を制御する制御装置300と、表示装置400と、教示操作盤500と、カメラ600とを有する。
【0022】
ロボット100は、例えば多関節ロボットであり、台座102と、回転ステージ104と、第1のアーム106と、第2のアーム108と、リスト110とを有する。回転ステージ104、第1のアーム106、第2のアーム108及びリスト110のそれぞれは、それらが取り付けられる関節に設けられる軸により支持され、サーボモータがその軸を駆動することで動作する。
【0023】
台座102は、ロボット100が床1上に設置される場合に、台となる部材である。回転ステージ104は、台座102の天面に、関節112にて、台座102のその一方の面と直交するように設けられる軸を回転中心として回動可能に取り付けられる。
【0024】
第1のアーム106は、その一端側にて、回転ステージ104に設けられる関節114において回転ステージ104に取り付けられる。本実施形態では、
図1に示されるように、第1のアーム106は、関節114にて、台座102の回転ステージ104が取り付けられる面と平行に設けられる軸を中心として回動可能となっている。
【0025】
第2のアーム108は、その一端側にて、関節114とは反対側の第1のアーム106の他端側に設けられる関節116にて第1のアーム106に取り付けられる。本実施形態では、
図1に示されるように、第2のアーム108は、関節116にて、台座102の回転ステージ104が取り付けられる面と平行に設けられる軸を中心として回動可能となっている。
【0026】
リスト110は、関節116とは反対側の第2のアーム108の先端にて、関節118を介して取り付けられる。リスト110は、関節120を有し、関節120にて関節114の軸及び関節116の軸と平行に設けられる軸を回転中心として屈曲可能となっている。さらに、リスト110は、関節118において、第2のアーム108の長手方向と平行な軸を回転中心として、第2のアーム108の長手方向と直交する面において回動可能であってもよい。
【0027】
ツール200は、関節118とは反対側のリスト110の先端のツール取付面(ツール取付部)122に取り付けられる。ツール200は、ワークWに対する作業を行うための機構または装置を有する。例えば、ツール200は、ワークWを加工するためのレーザを有してもよく、ワークWを溶接するためのサーボガンを有していてもよい。あるいは、ツール200は、ワークWまたはワークWに組み付けられる部品を把持するためのハンド機構を有していてもよい。
【0028】
制御装置300は、ロボットのツール変形量算出装置の一態様である。制御装置300は、通信回線302を介してロボット100と接続され、ロボット100のそれぞれの関節に設けられる軸を駆動するサーボモータの動作状況を表す情報などを、ロボット100から通信回線302を介して受信する。また、制御装置300は、通信回線304を介してカメラ600と接続され、カメラ600が撮像して生成した画像を、通信回線302を介してカメラ600から受信する。そして制御装置300は、受信した情報、及び、上位制御装置(図示せず)から受信した、あるいは、予め設定されたロボット100の動作を示す情報に基づいて、サーボモータを制御することで、ロボット100の各可動部の位置及び姿勢を制御し、またツール200またはカメラ600を制御する。
【0029】
表示装置400は、例えば液晶表示装置(LCD)等から構成される。表示装置400は、制御装置300の指令に基づき、カメラ600が撮影中の画像、メモリ330に格納された過去の画像、画像処理が施された画像等を必要に応じて表示する。
【0030】
教示操作盤500は通常のディスプレイ機能付のもので、オペレータは、この教示操作盤500のマニュアル操作を通して、ロボット100の動作プログラムの作成、修正、登録、あるいは各種パラメータの設定の他、教示された動作プログラムの再生運転、ジョグ送り等を実行する。また、オペレータは、ツール200の変形量を算出する際に、使用するカメラ600に関する情報を表すカメラパラメータを入力することができる。ロボット100及び制御装置300の基本機能を支えるシステムプログラムは、後述する制御装置300のメモリ330のROMに格納される。また、アプリケーションに応じて教示されるロボットの動作プログラム(例えばスポット溶接のプログラム)並びに関連設定データは、メモリ330の不揮発性メモリに格納される。
【0031】
カメラ600は、床1の上に台座や三脚などを介して設置され、本実施形態に係る処理が終了するまでの間はその位置や姿勢が変更されないものとされる。カメラ600は、CCDあるいはC-MOSなど、可視光に感度を有する光電変換素子のアレイで構成された2次元検出器と、その2次元検出器上に撮影対象となる領域の像を結像する結像光学系を有する。カメラ600は、ツール取付面122に装着された第1被測定ターゲット10、またはツール200の先端202に装着された第2被測定ターゲット20が撮影範囲に含まれる方向に向けられる。そしてカメラ600は、所定の撮影周期ごとに、第1被測定ターゲット10または第2被測定ターゲット20を含む撮影範囲を撮影することで、撮影範囲に第1被測定ターゲット10または第2被測定ターゲット20が表された画像を生成する。カメラ600は、画像を生成する度に、生成した画像を、通信回線304を介して制御装置300へ出力する。
【0032】
図1に示すように、ロボットシステム1000には、ロボットベースに固定された座標系(以下、ロボット座標系という)Σbと、ツール取付面122に固定された座標系(以下、ツール取付面座標系という)Σfと、カメラ600の代表点(例えば受光面中心)から第1または第2被測定ターゲット10,20などの被写体に向かう視線を表わす座標系(以下、受光デバイス座標系という)Σvと、が設定されている。制御装置300内では、ロボット100の関節の角度とアーム長などのロボット100の諸元に基づいて、随時、ツール取付面座標系Σfの原点の位置および姿勢を知ることができるようになっている。
【0033】
図2は、ツール200がロボット100の先端のツール取付面122に装着される様子を示す模式図である。床1上のワークWに対する各種作業を行うため、各種作業に応じた異なるツール200がツール取付面122に対して交換可能に装着される。
【0034】
ロボット100に取り付けたこれらのツール200は、その自重により、ツール取付面122に対して弾性変形等により変形する。特に、スポット溶接用のサーボガンなど比較的大きく重量のあるツール200がツール取付面122に装着されると、ツール200の変形は比較的大きくなる。ワークWに対する作業を行う際にはツール200の先端202の位置(ワークWに対する作用点の位置)が算出されるが、ツール200の先端202の位置を精度良く算出するためには、ツール200の変形の程度を考慮して先端202の位置を算出することが好ましい。このため、本実施形態に係るロボットシステム1000は、ロボット100の先端に装着される各種のツール200のそれぞれについて、変形量を算出可能とされている。
【0035】
各種のツール200の変形量を算出するため、ロボット100の先端のツール取付面122には、第1被測定ターゲット10が装着される。また、ツール取付面122よりもツール200の先端側の所定部位には、第2被測定ターゲット20が装着される。なお、以下では、第2被測定ターゲット20がツール200の先端202に装着された場合を例に挙げて説明するが、本実施形態はこれに限定されるものではなく、第2被測定ターゲット20は、ツール取付面122よりもツール200の先端側の任意の位置に装着され得る。第1被測定ターゲット10と第2被測定ターゲット20は、例えば平板状のものであり、画像から第1被測定ターゲット10または第2被測定ターゲット20を検出する際のターゲットとなる円形もしくは十字形などのマークを含む。なお、特に説明のない限り、第1被測定ターゲット10とはこのマークを意味する。第2被測定ターゲット20についても同様である。
【0036】
第1被測定ターゲット10および第2被測定ターゲット20は、ユーザが特定のツール200を使用する際に、そのツール200の変形量、または変形量を考慮したツール200の先端202の位置を算出するために、ユーザ自身が装着してもよい。このため、第1被測定ターゲット10と第2被測定ターゲット20は、接着層を有するシール、紙などから構成されていてもよい。一方、第1被測定ターゲット10および第2被測定ターゲット20は、予めツール取付面122または各ツール200の先端202に装着されていてもよい。
【0037】
図3は、制御装置300の概略構成図である。制御装置300は、通信インターフェース310と、駆動回路320と、メモリ330と、プロセッサ340とを有する。通信インターフェース310は、例えば、制御装置300を通信回線302または通信回線304と接続するための通信インターフェース及び通信回線302または通信回線304を介した信号の送受信に関する処理を実行するための回路などを含む。そして通信インターフェース310は、例えば、ロボット100から、通信回線302を介して、サーボモータ130の回転量を検出するためのエンコーダからの回転量の測定値など、サーボモータ130の動作状況を表す情報を受信して、その情報をプロセッサ340へわたす。なお、
図3では、代表的に一つのサーボモータ130が図示されているが、ロボット100は、関節ごとに、その関節の軸を駆動するサーボモータを有していてよい。
【0038】
また、通信インターフェース310は、カメラ600が生成し、出力した画像を、通信回線304を介して受信してプロセッサ340へわたす。更に、通信インターフェース310は、プロセッサ340を表示装置400または教示操作盤500に接続するためのインターフェース回路及び教示操作盤500または表示装置400との信号の送受信に関する処理を実行するための回路などを含む。
【0039】
駆動回路320は、電流供給用のケーブルを介してサーボモータ130と接続され、プロセッサ340による制御に従って、サーボモータ130に生じさせるトルク、回転方向あるいは回転速度に応じた電力をサーボモータ130へ供給する。
【0040】
メモリ330は、例えば、読み書き可能な半導体メモリ(RAM:Random Access Memory)と読み出し専用の半導体メモリ(ROM:Read only memory)、不揮発性メモリ等を有する。さらに、メモリ330は、半導体メモリカード、ハードディスク、あるいは光記憶媒体といった記憶媒体及びその記憶媒体にアクセスする装置を有していてもよい。
【0041】
メモリ330は、制御装置300のプロセッサ340で実行される、ロボット100の制御用の各種コンピュータプログラムなどを記憶する。また、メモリ330は、ロボット100を動作させる際のロボット100の動作を制御するための情報を記憶する。さらに、メモリ330は、ロボット100の動作中においてロボット100から得られるサーボモータ130の動作状況を表す情報を記憶する。さらにまた、メモリ330は、ツール200の変形量算出処理で利用される各種のデータを記憶する。そのようなデータには、カメラ600の焦点距離、取り付け位置及び向きといった、カメラ600に関する情報を表すカメラパラメータ、カメラ600から得られた画像、および、第1のアーム106または第2のアーム108の長さなどのロボット100の諸元に関する情報が含まれる。
【0042】
図4は、ツール200の変形を算出し、ツール200変形を考慮してツール200の先端位置を算出する処理に関する、プロセッサ340の機能ブロック図である。プロセッサ340は、第1被測定ターゲット10が表された画像と、第2被測定ターゲット20が表された画像を取得し、第1被測定ターゲット10が表された画像から第1被測定ターゲットの位置を算出し、第2被測定ターゲット20が表された画像から第2被測定ターゲット20の位置を算出する。
【0043】
第1被測定ターゲット10の位置と第2被測定ターゲット20の位置が算出されると、両者の相対的な位置からツール200の変形量が算出可能となる。この際、ロボット100の複数の姿勢において、第1被測定ターゲット10と第2被測定ターゲット20の相対的な位置からツール200の変形量が求められていると、ロボット100の任意の姿勢において、ツール200の変形量を算出することが可能となる。
【0044】
より詳細には、プロセッサ340は、ロボット100の複数の姿勢において算出されたツール200の変形量から、ツール200が弾性変形する度合いを表す弾性変形パラメータを求める。弾性変形パラメータが求まると、ロボット100の任意の姿勢に応じたツール200の変形量を算出することが可能となる。そして、ロボット100の任意の姿勢に応じたツール200の変形量が算出できると、ツール200の変形量を考慮して、ツール200の先端位置が高精度に求まることになる。
【0045】
更に、プロセッサ340は、ロボット100の弾性変形による変形量を算出し、ロボット100の変形量とツール200の変形量に基づいてツールの先端位置を算出する。これにより、ツール200の先端位置がより高精度に求まることになる。
【0046】
以下、プロセッサ340が行う処理について詳細に説明する。
図4に示すように、プロセッサ340は、画像取得部341と、第1被測定ターゲット位置算出部342と、第2被測定ターゲット位置算出部343と、弾性変形パラメータ決定部344と、ツール変形量算出部345と、ロボット変形量算出部346と、ツール先端位置算出部347と、を有する。プロセッサ340が有するこれらの各部は、例えば、プロセッサ340上で実行されるコンピュータプログラムにより実現される機能モジュールである。あるいは、これらの各部は、プロセッサ340の一部に実装される専用の演算回路として実装されてもよい。
【0047】
プロセッサ340の画像取得部341は、カメラ600が生成した、第1被測定ターゲット10が表された画像を取得する。また、画像取得部341は、カメラ600が生成した、第2被測定ターゲット20が表された画像を取得する。
【0048】
プロセッサ340の第1被測定ターゲット位置算出部342は、第1被測定ターゲット10が表された画像に対し、例えばテンプレートマッチング等の画像処理を行うことにより、またはターゲット検出用に機械学習された識別器に画像を入力することにより、第1被測定ターゲット10を検出する。そして、第1被測定ターゲット位置算出部342は、第1被測定ターゲット10が表された画像に基づいて、第1被測定ターゲット10の位置を算出し、ロボット座標系Σbに対する受光デバイス座標系Σvの位置および姿勢を算出する。したがって、第1被測定ターゲット位置算出部342は、受光デバイス座標系算出部としても機能する。
【0049】
第1被測定ターゲット位置算出部342は、例えば特許第419180号公報に記載された方法を用い、ロボット座標系Σbに対する受光デバイス座標系Σvの位置を算出する。この方法は公知であるため、ここでは概要を説明する。先ず、ロボット100を並進移動させ、画像中の第1被測定ターゲット10をカメラ600の受光面(CCDアレイ)の中心点に一致させ、ロボット座標系Σb上でのツール取付面座標系Σfの位置Qf1を算出する。次に、ロボット100を並進移動させ、第1被測定ターゲット10とカメラ600の距離が異なる位置へロボット100を移動させた後、画像中の第1被測定ターゲット10を受光面の中心点に一致させ、ロボット座標系Σb上でのツール取付面座標系Σfの位置Qf2を算出する。Qf1とQf2を結ぶカメラ600の視線の方向が求まると、視線の方向と平行であり且つツール取付面座標系Σfの原点を通る軸周りでQf1を180度回転させた位置へロボット100を移動させた後、ロボット100を並進移動させ、画像中の第1被測定ターゲット10をカメラ600の受光面の中心点に一致させる処理を行い、ロボット座標系Σb上でのツール取付面座標系Σfの位置Qf3を算出する。これにより、Qf1とQf3の中点が受光デバイス座標系Σvの原点位置として求まる。カメラ600の視線の方向とカメラ600の原点位置が求まることで、ロボット座標系Σbに対する受光デバイス座標系Σvの位置および姿勢が求まることになる。なお、ロボット座標系Σb上でのQf1,Qf2,Qf3の位置は、ロボット100の関節の角度とアーム長などのロボット100の諸元から算出される。また、受光デバイス座標系Σvの原点の位置は、カメラ600の視線上の任意の位置とすることができるが、カメラ600の受光面上での第1被測定ターゲット10の大きさが第1被測定ターゲット10の実際の大きさと一致する位置からカメラ600の焦点距離だけ第1被測定ターゲット10から離れた位置とすることが好ましい。
【0050】
変形する可能性があるツール200に第1被測定ターゲット10を取り付けると、第1被測定ターゲット10の位置がツール200の弾性変形の影響を受けてしまい、ロボット座標系Σbに対する受光デバイス座標系Σvの位置および姿勢を正確に求めることができなくなる。本実施形態では、第1被測定ターゲット10をツール取付面122に装着することで、ロボット座標系Σbに対する受光デバイス座標系Σvの位置および姿勢が高精度に求まる。
【0051】
また、ユーザは、ツール取付面122に第1被測定ターゲット10を装着し、任意のカメラ600を床1上に設置するのみで、ロボット座標系Σbに対する受光デバイス座標系Σvの位置および姿勢を容易に求めることができる。
【0052】
プロセッサ340の第2被測定ターゲット位置算出部343は、第2被測定ターゲット20が表された画像に基づいて、ツール取付面座標系Σfに対する、ツール200の先端202に装着された第2被測定ターゲット20の位置を算出することで、ツール200の先端202の位置を算出する。画像に表された第2被測定ターゲット20はツール200の変形による位置ずれを含むため、第2被測定ターゲット20が表された画像に基づいて第2被測定ターゲット20の位置を算出することで、ツール200の変形による影響を含んだツール200の先端202の位置が算出される。
【0053】
この処理を行うため、第2被測定ターゲット位置算出部343は、ロボット座標系Σbに対する第2被測定ターゲット20の位置を算出する第2被測定ターゲット位置算出部343aと、ロボット座標系Σbに対するツール取付面座標系Σfの位置および姿勢を算出するツール取付面位置算出部343bと、ツール取付面座標系Σfに対するツール200の先端202の位置を算出するツール先端位置算出部343cと、を有している。
【0054】
第2被測定ターゲット位置算出部343aは、受光デバイス座標系Σvに対する第2被測定ターゲット20の位置を、公知のピンホールカメラモデルを利用して以下のようにして算出する。先ず、第2被測定ターゲット20が表された画像に対し、例えばテンプレートマッチング等の画像処理を行うことにより、またはターゲット検出用に機械学習された識別器に画像を入力することにより、画像上に表された第2被測定ターゲット20を検出する。そして、検出した第2被測定ターゲット20について、第2被測定ターゲット20の画像上の位置(Vt,Hz)と画像上の大きさ(サイズ)Szを取得する。なお、画像上での距離、大きさは、例えば正方形の「画素」の何個分であるかで測ることができる。この際、画像の中央を原点とするXY平面を設定して、第2被測定ターゲット20の座標値を画像上の位置(Vt,Hz)とする。なお、Vt,Hz,Szの単位はmmとする。
【0055】
そして、第2被測定ターゲット位置算出部343aは、カメラ600の焦点距離をf(mm)、第2被測定ターゲット20の実際のサイズをS0とし、受光デバイス座標系Σvに対する第2被測定ターゲット20の位置(Xv,Yv,Zv)を以下の式(1)~(3)から算出する。なお、焦点距離fとS0の値は既知であるものとする。
【0056】
Xv=Vt×(S0/Sz) ・・・(1)
Yv=Hz×(S0/Sz) ・・・(2)
Zv=f×(S0/Sz) ・・・(3)
【0057】
ここで得られた第2被測定ターゲット20の位置(Xv,Yv,Zv)は受光デバイス座標系Σvに対する位置である。一方、第1被測定ターゲット位置算出部342によりロボット座標系Σbに対する受光デバイス座標系Σvの位置および姿勢が求められている。したがって、第2被測定ターゲット位置算出部343aは、受光デバイス座標系Σvに対する第2被測定ターゲット20の位置(Xv,Yv,Zv)と、ロボット座標系Σbに対する受光デバイス座標系Σvの位置および姿勢とから、ロボット座標系Σbに対する第2被測定ターゲット20の位置(Xb,Yb,Zb)を算出する。これにより、受光デバイス座標系Σvに対する第2被測定ターゲット20の位置(Xv,Yv,Zv)が、ロボット座標系Σbに対する第2被測定ターゲット20の位置(Xb,Yb,Zb)に座標変換される。
【0058】
第2被測定ターゲット位置算出部343aは、以上の処理をロボット100の姿勢を変えながらカメラ600が生成した複数の画像に対して行う。これにより、複数の姿勢(P1,P2,・・・,PN)に対応する第2被測定ターゲット20が表された画像に基づいて、ロボット100の姿勢がPi(i=1,2,・・,N(Nは自然数))である場合のロボット座標系Σbに対する第2被測定ターゲット20の位置(Xb,Yb,Zb)が算出される。
【0059】
ツール取付面位置算出部343bは、ロボット座標系Σbに対するツール取付面座標系Σfの位置および姿勢を算出する。ツール取付面位置算出部343bは、ロボット100の各関節の角度と、第1のアーム106、第2のアーム108の長さなどのロボット100の諸元から、ロボット座標系Σbに対するツール取付面座標系Σfの位置および姿勢を算出する。なお、ロボット100の各関節の角度は、各関節の軸を駆動するサーボモータの回転量を検出するためのエンコーダから得られる。また、第1のアーム106、第2のアーム108の長さなどのロボット100の諸元は、予めメモリ330に記憶されている。
【0060】
ツール先端位置算出部343cは、ツール取付面座標系Σfに対する第2被測定ターゲット20の位置を算出することで、ツール取付面座標系Σfに対するツール200の先端202の位置を算出する。ツール先端位置算出部343cは、第2被測定ターゲット位置算出部343aが算出したロボット座標系Σbに対する第2被測定ターゲット20の位置(Xb,Yb,Zb)と、ツール取付面位置算出部343bが算出したロボット座標系Σbに対するツール取付面座標系Σfの位置および姿勢とに基づいて、ロボットの姿勢がPi(i=1,2,・・,N)である場合のツール取付面座標系Σfに対する第2被測定ターゲット20の位置、すなわちツール200の先端202の位置(Xf,Yf,Zf)を算出する。これにより、ロボット座標系Σbに対する第2被測定ターゲット20の位置(Xb,Yb,Zb)が、ツール取付面座標系Σfに対するツール200の先端202の位置(Xf,Yf,Zf)に座標変換される。
【0061】
以上のようにして算出されたツール取付面座標系Σfに対するツール200の先端202の位置(Xf,Yf,Zf)は、第2被測定ターゲット20をカメラ600で撮像した画像に基づいて算出されるため、ロボット100の姿勢に応じた、ツール200の弾性変形の要因を含んでいる。したがって、ロボットの姿勢がPi(i=1,2,・・,N)である場合のそれぞれについて、ツール200の弾性変形の影響が含まれたツール200の先端202の位置(Xf,Yf,Zf)が算出されたことになる。なお、ツール取付面座標系Σfに対するツール200の先端202の位置(Xf,Yf,Zf)は、仮にツール200が変形しない場合は、N個の姿勢Pi(i=1,2,・・,N)のいずれにおいても同じ値になる。しかし、ツール200が変形すると、ツール取付面座標系Σfに対するツール200の先端202の位置(Xf,Yf,Zf)は、ツール200の姿勢に応じて異なるものとなる。
【0062】
プロセッサ340の弾性変形パラメータ決定部344は、第2被測定ターゲット位置算出部343が算出した、ツール200の弾性変形の影響が含まれる、ツール取付面座標系Σfに対するツール200の先端202の位置(Xf,Yf,Zf)に基づき、ツール200の弾性変形パラメータを決定する。具体的に、弾性変形パラメータ決定部344は、以下の式(4)~(6)で示される弾性変形モデルを利用して、ツール200が弾性変形する度合いを表す弾性変形パラメータαの値を決定する。
Xm=α×sinθ×cosφ ・・・(4)
Ym=α×sinθ×sinφ ・・・(5)
Zm=Z0 ・・・(6)
【0063】
式(4)~(6)において、Xm,Ym,Zmは、弾性変形モデルにおいて、ロボット100のツール取付面座標系Σfに対するツール200の先端202の位置(座標値)を表しており、ツール先端位置算出部343cが算出したツール取付面座標系Σfに対するツール200の先端202の位置(Xf,Yf,Zf)に対応する。なお、(Xm,Ym,Zm)および(Xf,Yf,Zf)の単位は[mm]とする。
【0064】
式(4)、式(5)において、ツール200が弾性変形する度合いを表す弾性変形パラメータαは、ツール200が撓み易いほど大きな値となる。仮にツール200が撓まなければ、弾性変形パラメータαの値は0である。
【0065】
また、式(4)、式(5)において、θはツール200が基準の姿勢から重力方向(ロボット座標系ΣbのZ軸方向)に対して傾く角度を表す。θの単位は度(deg)であり、また、0≦θ≦90である。また、式(4)、式(5)において、φはツール200が傾く角度であり、ツール取付面座標系Σfから見た傾きを表す。φの単位も度(deg)であり、また、0≦φ≦90である。
【0066】
図5及び
図6は、式(4)~(6)の各パラメータを説明するための模式図である。
図5は、ツール200に傾きが生じていない基準の姿勢を示している。
図5及び
図6において、ツール200は円柱形状であるものとし、基準の姿勢ではツール200の円柱の軸が重力方向と一致している。また、
図5及び
図6では、ツール200の先端202に装着された第2被測定ターゲット20に描かれたマーク22が示されている。
図5中の左側に示す図はツール200を横(水平方向)から見た状態を示している。また、
図5中の右側に示す図は、左側に示すツール200を下から(矢印A1方向から)見た図を示している。
図5に示す基準位置において、ツール200の先端202の位置は、ツール取付面座標系Σfに対して、X
f=0、Y
f=0、Z
f=Z
0である。
【0067】
図6は、
図5の状態からツール200を重力方向に対して角度θだけ傾けた場合の姿勢を示している。
図6中の右側の図は、
図5中の右側の図と同様、ツール200を下から見た状態を示している。
図6中の右側の図に示す座標軸は、
図5に示した基準の姿勢の時のツール取付面座標系Σfの座標軸(X軸、Y軸)が傾いた様子を模式的に示しており、ツール取付面座標系ΣfのX軸に対して角度φだけツール200が傾いている状態が示されている。また、
図6中の左側の図は、
図6中の右側の図を横(矢印A2方向)から見た状態を示しており、基準の姿勢に対して角度θだけツール200が傾いている状態が示されている。
【0068】
図6に示すように、ツール200を重力方向に対して角度θだけ傾けた場合、ツール200の自重により、
図6中に矢印A3,A4で示す方向にツール200の先端202が変形する。
【0069】
弾性変形パラメータ決定部344は、ロボット100のN個の姿勢Pi(i=1,2,・・,N)のそれぞれについて、ロボット100の姿勢からθ、φの値を算出する。なお、θ、φの値は、各関節の軸を駆動するサーボモータの回転量を検出するためのエンコーダの値から各関節の角度を求め、各関節の角度とロボット100の諸元からロボット100のツール取付面122(ツール取付面座標系Σf)の位置および姿勢を求めることによって算出される。
【0070】
そして、弾性変形パラメータ決定部344は、ロボット100のN個の姿勢Pi(i=1,2,・・,N)のそれぞれについて、ツール先端位置算出部343cが実際に算出したツール取付面座標系Σfに対するツール200の先端202の位置(Xf,Yf,Zf)と、式(4)~(6)のモデルによって計算されるモデル値(Xm,Ym,Zm)との差が最も小さくなるように、最小二乗法等を用いて弾性変形パラメータαの値を決定する。
【0071】
以上のようにしてツール200が弾性変形する度合いを表す弾性変形パラメータαが決定されると、弾性変形パラメータαとロボット100の姿勢に応じて定まるθ、φの値に基づいて、式(4)~(6)の弾性変形モデルからツール200の先端202の座標Xm,Ym,Zm、すなわちツール200の変形量が求まる。プロセッサ340のツール変形量算出部345は、式(4)~(6)の弾性変形モデルに基づいて、ロボット100の任意に姿勢において、ツール取付面座標系Σfに対するツール200の先端202の位置Xm,Ym,Zmをツール200の変形量として算出する。
【0072】
以上のようにして求まるツール200の変形量は、ユーザが特定のツール200を使用する際に、ユーザ自身が第1被測定ターゲット10および第2被測定ターゲット20を装着し、床1上にカメラ600を設置することで求めることができる。一方、ツール200の変形量は、ロボットシステム100またはツール200の出荷時に予め算出されてメモリ330等に記憶されていてもよい。
【0073】
プロセッサ340のロボット変形量算出部346は、ロボット座標系Σbを基準として、ツール取付面122の理論上の位置および姿勢に対する、ロボット100の弾性変形量を算出する。前述したように、ロボット100の剛体部分や関節部分は、ロボット100に取り付けたツール200の重量やロボット100の自重によって、ロボット100の姿勢に応じて弾性変形する。ロボット変形量算出部346は、例えば特開2002-307344号公報に記載された、各関節のトルクを計算し、各関節のばね定数と各関節のトルクから各関節の撓み量を算出する手法を用いて、ロボット100の姿勢に応じたロボット100の弾性変形量を算出する。なお、ツール取付面位置算出部343bがロボット座標系Σbに対するツール取付面座標系Σfの位置および姿勢を算出する際においても、ロボット変形量算出部346が算出したロボット100の変形量を考慮してロボット座標系Σbに対するツール取付面座標系Σfの位置および姿勢を算出してもよい。
【0074】
プロセッサ340のツール先端位置算出部347は、ツール変形量算出部345が弾性変形モデルに基づいて算出したツール取付面座標系Σfに対するツール200の先端202の位置Xm,Ym,Zmと、ロボット100の各関節の角度とロボット100の諸元から求まるロボット座標系Σbに対するツール取付面座標系Σfの位置とに基づいて、ツール200の変形量を考慮したツール200の先端202の位置を算出する。更に、ツール先端位置算出部347は、ツール変形量算出部345が弾性変形モデルに基づいて算出したツール取付面座標系Σfに対するツール200の先端202の位置Xm,Ym,Zmと、ロボット100の各関節の角度とロボット100の諸元から求まるロボット座標系Σbに対するツール取付面座標系Σfの位置と、ロボット変形量算出部346が算出したロボット座標系Σbを基準とするロボット100の変形量と、に基づいて、ツール200の変形量とロボット100の変形量を考慮したツール200の先端202の位置を算出することもできる。
【0075】
これにより、ツール200の変形量を考慮してツール200の先端202の位置が算出されるため、ワークWに対する作業を行う際に、ツール200の先端202を高い精度でワークWに位置合わせすることが可能となる。更には、ロボット100の弾性変形を考慮してツール200の先端202の位置が算出されるため、ツール200の先端202をより高い精度でワークWに位置合わせすることが可能となる。
【0076】
次に、
図7のフローチャートに基づいて、本実施形態に係るロボットのツール変形量算出方法の処理について説明する。先ず、第1被測定ターゲット10をツール取付面122に装着し、第2被測定ターゲット20をツール200の先端202に装着し、カメラ600を床1上に設置した状態で、制御装置300のプロセッサ340の画像取得部341が第1被測定ターゲット10、第2被測定ターゲット20が表された画像を取得する(ステップS10)。次に、プロセッサ340の第1被測定ターゲット位置算出部342が、ツール取付面122に取り付けた第1被測定ターゲット10の位置を算出し、ロボット座標系Σbに対する受光デバイス座標系Σvの位置および姿勢を算出する(ステップS12)。
【0077】
次に、プロセッサ340の第2被測定ターゲット位置算出部343aが、ロボット100の複数の姿勢において、受光デバイス座標系Σvに対する第2被測定ターゲット20の位置を算出し(ステップS14)、更にロボット座標系Σbに対する第2被測定ターゲット20の位置を算出する(ステップS16)。
【0078】
次に、プロセッサ340のツール取付面位置算出部343bが、ロボット座標系Σbに対するツール取付面座標系Σfの位置および姿勢を算出する(ステップS18)。次に、プロセッサ340のツール先端位置算出部343cが、ツール取付面122に対する第2被測定ターゲット20の位置、すなわちツール200の先端202の位置を算出する(ステップS20)。
【0079】
次に、プロセッサ340の弾性変形パラメータ決定部344が、弾性変形モデルにおける弾性変形パラメータαを決定する(ステップS22)。次に、プロセッサ340のツール変形量算出部345が、弾性変形モデルに基づいて、ツール取付面座標系Σfに対するツール200の先端の位置(Xm,Ym,Zm)、すなわちツール200の変形量を算出する(ステップS24)。次に、プロセッサ340のツール先端位置算出部347が、ツール200の変形量を考慮して、ロボット座標系Σbに対するツール200の先端202の位置を算出する(ステップS26)。
【0080】
以上説明したように本実施形態によれば、ロボット100の複数の姿勢において、カメラ600で撮影した画像からツール200の先端202に装着した第2被測定ターゲット20の位置を求め、弾性変形モデルの弾性変形パラメータを算出するようにしたため、ロボット100の先端に装着される各種ツール200の弾性変形量を簡素な構成で精度良く算出することが可能となる。
【0081】
また、ロボットシステム1000を使用するユーザ自身が第1被測定ターゲット10および第2被測定ターゲット20を装着し、任意のカメラ600を設置することで、煩雑な作業を伴うことなく、また高価な三次元測定機等を使用することなく、ユーザが使用しようとする各種ツール200の弾性変形量を精度良く算出することが可能となる。
【0082】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【0083】
1 床
10 第1被測定ターゲット
20 第2被測定ターゲット
22 マーク
100 ロボット
102 台座
104 回転ステージ
106 第1のアーム
108 第2のアーム
110 リスト
112,114,116,118,120 関節
122 ツール取付面
130 サーボモータ
200 ツール
202 先端
300 制御装置
302, 304 通信回線
310 通信インターフェース
320 駆動回路
330 メモリ
340 プロセッサ
341 画像取得部
342 第1被測定ターゲット位置算出部
343 第2被測定ターゲット位置算出部
343a 第2被測定ターゲット位置算出部
343b ツール取付面位置算出部
343c ツール先端位置算出部
344 弾性変形パラメータ決定部
345 ツール変形量算出部
346 ロボット変形量算出部
347 ツール先端位置算出部
400 表示装置
500 教示操作盤
600 カメラ
1000 ロボットシステム