(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-24
(45)【発行日】2025-04-01
(54)【発明の名称】教示装置、マーカ計測方法及びプログラム
(51)【国際特許分類】
B25J 9/22 20060101AFI20250325BHJP
G05B 19/409 20060101ALI20250325BHJP
G05B 19/42 20060101ALI20250325BHJP
B25J 5/00 20060101ALN20250325BHJP
【FI】
B25J9/22 A
G05B19/409 C
G05B19/42 J
B25J5/00 A
(21)【出願番号】P 2023523935
(86)(22)【出願日】2021-05-28
(86)【国際出願番号】 JP2021020534
(87)【国際公開番号】W WO2022249481
(87)【国際公開日】2022-12-01
【審査請求日】2023-12-08
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100169856
【氏名又は名称】尾山 栄啓
(72)【発明者】
【氏名】並木 勇太
(72)【発明者】
【氏名】高橋 悠太郎
【審査官】松浦 陽
(56)【参考文献】
【文献】特開平08-249026(JP,A)
【文献】特開平04-211807(JP,A)
【文献】特開2001-318715(JP,A)
【文献】特開2007-160486(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/18-19/416
G05B 19/42-19/427
(57)【特許請求の範囲】
【請求項1】
作業空間に設置されたマーカを視覚センサにより計測するプログラムを作成するために用いられる教示装置であって、
前記マーカの計測に関する設定情報を入力するためのユーザインタフェースを作成するユーザインタフェース作成部を備え、
前記ユーザインタフェース作成部は、前記ユーザインタフェースにおいて、第1の前記マーカに関して入力された第1の前記設定情報を、第2の前記マーカに関する設定において利用可能とする、教示装置。
【請求項2】
前記ユーザインタフェースは、第1の前記マーカに関する設定のための第1のユーザインタフェース画面と、第2の前記マーカに関する設定のための第2のユーザインタフェース画面とを含み、
前記第2のユーザインタフェース画面において、第1の前記設定情報が少なくとも部分的にデフォルト値として設定されている、請求項1に記載の教示装置。
【請求項3】
前記第1のユーザインタフェース画面と前記第2のユーザインタフェース画面とは共通の設定項目を含む、請求項2に記載の教示装置。
【請求項4】
前記設定情報は、前記共通の設定項目として、前記視覚センサの露光時間、前記マーカの選択、前記マーカのドット間隔の一つ以上を含む、請求項3に記載の教示装置。
【請求項5】
前記プログラムを作成するためのプログラム作成画面を生成するプログラム作成部を更に備え、
前記プログラム作成画面には第1の前記マーカを計測するための第1の計測命令と、第2の前記マーカを計測するための第2の計測命令とが同一の命令として配置されている、請求項1から4のいずれか一項に記載の教示装置。
【請求項6】
前記第1の計測命令と前記第2の計測命令は同一のアイコンで表されている、請求項5に記載の教示装置。
【請求項7】
作業空間に設置されたマーカを視覚センサにより計測するための方法であって、
第1の前記マーカについて計測を行い、
第1の前記マーカの計測結果の精度を評価し、
第1の前記マーカの計測結果の精度が所定のレベル未満である場合に、追加の1以上の前記マーカについて計測を行うこと、を含み、
第1の前記マーカの計測に関
して入力された設定情報
を、追加の1以上の前記マーカの各々の計測に関する設定情報
の設定として利用可能と
された、ユーザインタフェースが提供される、マーカ計測方法。
【請求項8】
第1の前記マーカ及び追加の1以上の前記マーカについての計測結果を合成して、前記作業空間と前記視覚センサとの相対位置関係を求めることを更に含む、請求項7に記載のマーカ計測方法。
【請求項9】
第1の前記マーカの計測に関する前記設定情報、及び、追加の1以上の前記マーカの各々の計測に関する前記設定情報は、共通の設定項目として、前記視覚センサの露光時間、前記マーカの選択、前記マーカのドット間隔の一つ以上を含む、請求項7又は8に記載のマーカ計測方法。
【請求項10】
前記マーカは、既知のドット間隔を有し且つ当該マーカの座標系を規定するドットを含むドットパターンを有し、
第1の前記マーカの計測結果の精度を評価することは、
前記マーカ中の各ドットの計測された位置を表す
同次座標をPxi、前記マーカの原点に対する各ドットの設計位置を表す
同次座標をPyi、計測された前記マーカの位置及び姿勢を表す同次変換行列をPmとするとき、
Σ(Pxi-Pm×Pyi)^2
を指標値として用いて精度を評価することを含む、
請求項7から9のいずれか一項に記載のマーカ計測方法。
【請求項11】
視覚センサで第1のマーカ
を計測する場合の計測に関する第1の設定情報の入力を受け付け、
前記第1のマーカに関して入力された前記第1の設定情報を利用できるやり方で、
前記視覚センサで第2のマーカ
を計測する場合の計測に関する第2の設定情報の入力を受け付ける、ユーザインタフェースを提供する動作を、コンピュータに実行させるプログラム。
【請求項12】
前記ユーザインタフェースは、前記第1のマーカに関する設定のための第1のユーザインタフェース画面と、前記第2のマーカに関する設定のための第2のユーザインタフェース画面とを含み、
前記第2のユーザインタフェース画面において、前記第1の設定情報が少なくとも部分的にデフォルト値として設定されている、請求項11に記載のプログラム。
【請求項13】
前記第1のユーザインタフェース画面と前記第2のユーザインタフェース画面とは共通の設定項目を含む、請求項12に記載のプログラム。
【請求項14】
前記第1の設定情報及び前記第2の設定情報の各々は、前記共通の設定項目として、
前記視覚センサの露光時間、前記マーカの選択、前記マーカのドット間隔の一つ以上を含む、請求項13に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、教示装置に関する。
【背景技術】
【0002】
台車やAGV(Automated Guided Vehicle:無人搬送車)にロボットを乗せて移動させ、工作機械などの作業スペースの前に停止させて作業を行う自動化システムが提案されている。
【0003】
このような自動化システムにおいて、ロボットが工作機械に対して加工対象物のロード/アンロードといった様々な作業を行う場合、ロボットを搭載した台車やAGVの停止位置が移動のたびに変わってしまう。そのため、ロボットは毎回同じ動作をするだけでは不十分であり、工作機械に対する台車やAGVの停止位置のずれを計測し、作業スペースに対して正しく作業を行うことができるように、ロボットの動作に補正をかけることが必要になる。その際には、ロボットの手先にカメラを取り付け、作業空間に取り付けたマーカを計測することで、ロボットと工作機械などの作業空間の位置関係を計測し、位置ずれ分を補正してロボットを動作させている。
【0004】
ロボットと作業空間の相対位置を求める手法の一つとして、特許文献1は、「ロボット末端の基準位置検出器(カメラ4)により作業座標に設けられた基準(6)を計測し、ロボット座標による基準の計測位置と予め計測された作業座標における基準の位置の差から設置誤差を推定し、これを補正することによりロボットを制御する」構成を記載する(要約書)。
【0005】
また、特許文献2は、「ロボット外科手術システム100として、ロボットアーム104、エンドエフェクタ112、患者210、および/又は外科用器具608の三次元の動きを追跡するように構成される一つ又は複数のマーカ118を含むことのできる」構成を記載する(段落0050)。
【先行技術文献】
【特許文献】
【0006】
【文献】特開平4-211807号公報
【文献】特開2020-72773号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
作業空間に設置したマーカをロボットの手先に取り付けたカメラで計測する場合、サイクルタイムや教示工数の観点からは、1つのマーカを検出することでロボットの位置を補正できることが望ましい。しかしながら、1つのマーカの計測による位置補正では必要な精度が得られない場合がある。このような場合、複数のマーカを計測することで位置補正の精度を向上することができる。しかしながら、1つのマーカで計測を行う場合と、複数のマーカで計測を行う場合とで、計測方法や教示手順が異なると、マーカを増やして精度を向上させるのに手間がかかることとなる。
【課題を解決するための手段】
【0008】
本開示の一態様は、作業空間に設置されたマーカを視覚センサにより計測するプログラムを作成するために用いられる教示装置であって、前記マーカの計測に関する設定情報を入力するためのユーザインタフェースを作成するユーザインタフェース作成部を備え、前記ユーザインタフェース作成部は、前記ユーザインタフェースにおいて、第1の前記マーカに関して入力された第1の前記設定情報を、第2の前記マーカに関する設定において利用可能とする、教示装置である。
【0009】
本開示の別の態様は、作業空間に設置されたマーカを視覚センサにより計測するための方法であって、第1の前記マーカについて計測を行い、第1の前記マーカの計測結果の精度を評価し、前記第1のマーカの計測結果の精度が所定のレベル未満である場合に、追加の1以上の前記マーカについて計測を行うこと、を含み、第1の前記マーカの計測に関して入力された設定情報を、追加の1以上の前記マーカの各々の計測に関する設定情報の設定として利用可能とされた、ユーザインタフェースが提供される、マーカ計測方法である。
【0010】
本開示の更に別の態様は、視覚センサで1のマーカを計測する場合の計測に関する第1の設定情報の入力を受け付け、前記第1のマーカに関して入力された前記第1の設定情報を利用できるやり方で、前記視覚センサで第2のマーカを計測する場合の計測に関する第2の設定情報の入力を受け付ける、ユーザインタフェースを提供する動作を、コンピュータに実行させるプログラムである。
【発明の効果】
【0011】
上記構成によれば、複数のマーカの計測が必要になる状況においても、ユーザは、1つのマーカの計測についての設定を行う場合と同等のやり方で且つ容易に複数のマーカの計測について設定を行うことができる。
【0012】
添付図面に示される本発明の典型的な実施形態の詳細な説明から、本発明のこれらの目的、特徴および利点ならびに他の目的、特徴および利点がさらに明確になるであろう。
【図面の簡単な説明】
【0013】
【
図1】一実施形態に係る教示装置を含むロボットシステムの機器構成を表す図である。
【
図2】ロボット制御装置及び教示装置のハードウェア構成例を表す図である。
【
図3】教示装置及びロボット制御装置の機能ブロック図である。
【
図4】本実施形態で用いられるマーカの例を表す図である。
【
図5】作業空間に設置された1つのマーカと、補正をかけるべき教示位置とを示す図である。
【
図6】作業空間に設置された3つのマーカと、補正を掛けるべき教示位置とを示す図である。
【
図7】プログラム作成画面の基本的な構成例を示す図である。
【
図8】1つのマーカに対する計測を実行する命令のアイコンを表す図である。
【
図9】マーカ1点計測アイコンの詳細設定を行うためのマーカUI画面の構成例を示す図である。
【
図10】3つのマーカに対する計測を実行する命令に対応するアイコンを表す図である。
【
図11】1つ目のマーカで計測を行った後、計測結果を評価し、評価値が低い場合に2つ目及び3つ目のマーカを計測する計測プログラムを示す図である。
【
図12】
図11に示した計測プログラムの動作を表すフローチャートである。
【
図13】3つのマーカで計測を行う場合に、マーカ1点計測アイコンの間に経由点を追加したプログラムを示す図である。
【
図14A】設定部により提供される、1つのマーカを計測するためのマーカ設定入力画面を示す図である。
【
図14B】設定部により提供される、2つのマーカを計測するためのマーカ設定入力画面を示す図である。
【
図15】マーカ計測設定を入力するためのインタフェースを提供して設定入力を受け付ける動作を表すフローチャートである。
【発明を実施するための形態】
【0014】
次に、本開示の実施形態について図面を参照して説明する。参照する図面において、同様の構成部分または機能部分には同様の参照符号が付けられている。理解を容易にするために、これらの図面は縮尺を適宜変更している。また、図面に示される形態は本発明を実施するための一つの例であり、本発明は図示された形態に限定されるものではない。
【0015】
図1は、一実施形態に係る教示装置50を含むロボットシステム100の機器構成を表す図である。ロボットシステム100は、工作機械10と、産業用ロボット(以下、ロボットと記載する)20と、ロボット20を制御するロボット制御装置30と、ロボット20及びロボット制御装置30を搬送するための搬送装置81とを含む。ロボット20は、搬送装置81に搭載された状態で工作機械10の前の所定の位置に配置され、工作機械10内への作業対象物(以下、ワークと記載する)のロード/アンロード等の所定の作業を実行する。すなわち、ロボットシステム100は、工作機械10へのワークのロード/アンロードをロボット20により自動化する自動化システムとして構成されている。
【0016】
図1において、ロボット20は垂直多関節ロボットとして記載されているが、他のタイプのロボットが用いられても良い。搬送装置81は、例えば、台車又はAGV(Automated Guided Vehicle;無人搬送車)である。
【0017】
教示装置50は、ロボット制御装置30に無線或いは有線接続され、ロボット20を教示するため(ロボット20の制御プログラムを作成するため)に用いられる。なお、ロボットシステム100の実運用時には、教示装置50を用いて作成された制御プログラムはロボット制御装置30内に登録されている状態となるため、教示装置50はロボットシステム100から省かれても良い。
【0018】
図1のようなロボットシステム100において、ロボット20がワークのロード/アンロード等の作業を実行すると、ロボット20を搭載した搬送装置81の位置が変わってしまう。したがって、ロボット20は、工作機械10に対するロボット20の位置ずれを計測し、工作機械10に対して正しく作業を行うことができるように構成される必要がある。そのため、ロボット20のアーム先端部21には視覚センサ71が搭載され、ロボット20(ロボット制御装置30)は、視覚センサ71を用いて作業空間(工作機械10)に対するロボット20の位置ずれを検出し、当該位置ずれを補正して作業を実行するように構成される。
【0019】
教示装置50は、ロボット20のアーム先端部21に搭載した視覚センサ71により、作業空間(工作機械10)の所定の位置に設置されたマーカ4の3次元位置を計測し、ロボット20の作業空間に対する所期の位置からの位置ずれを計測するプログラム(以下、このようなプログラムを計測プログラムとも称する)を作成する機能を提供する。教示装置50を用いて作成された計測プログラムを含む制御プログラムは、ロボット制御装置30に登録され、以後、ロボット20(ロボット制御装置30)は、ロボット20の作業空間に対する所期の位置からの位置ずれを検出して位置補正を行い所定の作業を実行するよう動作することができる。
【0020】
視覚センサ71は、2次元カメラであってもよく、或いは3次元位置検出器であっても良い。本実施形態では、視覚センサ71は2次元カメラであるものとする。視覚センサ71は、ロボット制御装置30に接続されている。本実施形態では、ロボット制御装置30は、視覚センサ71を制御するための機能、視覚センサ71が撮像した画像に対する各種画像処理を行う機能等を有しているものとする。また、ロボット20を基準とする視覚センサ71の位置を示すデータを含むキャリブレーションデータは、ロボット制御装置30のメモリ32に予め記憶されているものとする。
【0021】
図2は、ロボット制御装置30及び教示装置50のハードウェア構成例を表す図である。ロボット制御装置30は、プロセッサ31に対してメモリ32(ROM、RAM、不揮発性メモリ等)、入出力インタフェース33、各種操作スイッチを含む操作部34等がバスを介して接続された、一般的なコンピュータとしての構成を有していても良い。教示装置50は、プロセッサ51に対して、メモリ52(ROM、RAM、不揮発性メモリ等)、表示部53、キーボード(或いはソフトウェアキー)等の入力装置により構成される操作部54、入出力インタフェース55等がバスを介して接続された、一般的なコンピュータとしての構成を有していても良い。なお、教示装置50として、教示操作盤、タブレット端末、スマートフォン、パーソナルコンピュータその他の各種の情報処理装置を用いることができる。
【0022】
図3は、教示装置50及びロボット制御装置30の機能ブロック図である。教示装置50は、ロボット20を制御するための命令を用いて制御プログラムを作成するための装置である。本実施形態では、例示として、教示装置50は、命令を表すアイコンを用いてプログラミングを行うことを可能とする装置であるものとする。教示装置50は、制御プログラムを作成するためのプログラム作成部151と、ロボット20の教示に関する各種設定を入力するための設定部154とを有する。プログラム作成部151は、マーカの計測に関する設定の入力を受け付けるためのUI(ユーザインタフェース)を作成するマーカUI作成部152と、このUIを介したマーカの設定入力操作を受け付けるマーカ設定入力受付部153とを有する。なお、マーカ設定のためのUIは、表示部53及びと操作部54の機能を用いて実現される。
【0023】
設定部154は、ロボット20の教示に関する各種設定(例えば、ツール座標系の設定)に関する入力を行うためのUI画面を提示し、設定の入力を受け付ける。入力され各種設定は、教示装置50の記憶部(メモリ52)に記憶される。
【0024】
図3に示すように、ロボット制御装置30は、制御プログラムその他の各種情報を記憶する記憶部131と、制御プログラムにしたがってロボット20の動作を制御する動作制御部132と、マーカ位置計測部133と、相対位置計算部134と、計測精度評価部135とを備える。
【0025】
マーカ位置計測部133は、視覚センサ71を用いてマーカ4の3次元位置を計測する。本実施形態では、一例として、マーカ位置計測部133は、2次元カメラとしての視覚センサ71を用いてステレオ計測法によりマーカ4の位置計測を行う。すなわち、マーカ位置計測部133は、2次元カメラからなる視覚センサ71の位置を変えて2つの異なる位置から同一のマーカ4を撮像し、そのマーカ4の3次元位置を算出する。この手法は、比較的安価な2次元カメラを用いることで位置計測システムを低コストで実現できるという利点をもたらす。なお、マーカ(ターゲットマークや視覚マーカとも称される)の位置を計測するための当分野で知られた他の手法が用いられても良い。
【0026】
記憶部131には、ロボット20のアーム先端部21に設定した座標系(メカニカルインタフェース座標系)を基準とした2次元カメラ(視覚センサ71)の位置を示すキャリブレーションデータが記憶されている。一方、ロボット制御装置30(マーカ位置計測部133)は、ロボット20の動作時におけるアーム先端部21の位置及び姿勢を把握することができる。したがって、ロボット制御装置30(マーカ位置計測部133)は、ロボット20の動作に応じて、メカニカルインタフェース座標系をロボット座標系に変換することで、2次元カメラ(視覚センサ71)の撮像時のセンサ座標系とロボット座標系とを対応付けることができる。これにより、マーカ位置計測部133において、対象(マーカ4)の位置をロボット座標系における3次元位置として求めることが可能となる。
【0027】
相対位置計算部134は、計測されたマーカ位置に基づいて、作業空間(工作機械10)とロボット20の相対位置(言い換えると、作業空間に対するロボット20の所期の位置からのずれ量)を求める。
【0028】
動作制御部132は、計算された作業空間とロボットとの相対位置関係(作業空間に対するロボット20の所期の位置からのずれ量))に基づいて、ロボット20が規定の位置及び姿勢から補正された正しい位置及び姿勢で作業を実行するようにロボット20を制御する。
【0029】
計測精度評価部135は、マーカ位置計測部133が一つのマーカ4の位置を計測した計測結果の精度を評価する機能を有する。
【0030】
なお、マーカ位置計測部133、相対位置計算部134、及び計測精度評価部135によるマーカ位置計測に関する機能は、教示装置50を用いて作成されたマーカ位置計測に関する計測プログラムをロボット制御装置30の記憶部131に登録し、当該計測プログラムをロボット制御装置30のプロセッサ31により実行することで実現することができる。
【0031】
図4は、本実施形態で用いられるマーカ4の例を表している。本例のマーカ4は、
図4に図示のようなドットパターンを有している。
図4に例示のマーカにおいて、大きいドット141-144はマーカ4に設定された座標系(マーカ座標系)を示す。ドット141がマーカ座標系の原点を示し、ドット141-142がマーカ座標系のX軸を表し、ドット141、143-144がマーカ座標系のY軸を表す。Z軸は、マーカ形成面に対する法線方向となる。ロボット制御装置30が、計測プログラムにしたがってマーカ4の計測を行う場合には、マーカ4のドット間隔の情報は既知の情報として用いることができる。したがって、ロボット制御装置30(マーカ位置計測部133及び相対位置計算部134)は、マーカ4の各ドットを計測することで、マーカ4に設定されたマーカ座標系の位置及び姿勢を求めることができる。なお、このようなマーカ4の位置及び姿勢は、視覚センサ71(2次元カメラ)による1回の計測で求めることもできるし、ステレオ計測法で求めることもできる。上述の通り、本実施形態では、ステレオ計測法で求める場合を記載することとする。また、本実施形態では、
図4に示したような形状のマーカ4を用いる場合について記載するが、計測の対象としてのマーカとしては任意の形状のマーカを用いることができる。任意の形状のマーカを用いる場合には、マーカ計測に関する詳細設定を行うユーザインタフェース等(後述のマーカUI画面220等)を介して、マーカの形状を教示する。
【0032】
視覚センサで1つのマーカ4を計測することで、視覚センサ71に対するマーカ4の3次元位置を取得することは可能であるが、マーカ一つの計測では十分な精度が得られない場合がある。
図5は、作業空間に設置された一つのマーカ4と、補正をかけるべき教示位置M1とを示している。マーカ4と補正をかけるべき教示位置M1との間隔dが大きくなると、教示位置M1の補正後の並進位置に悪い影響が与えられる傾向となる。教示位置M1をマーカ4を基準とする座標系内の位置として操作(補正)する場合、マーカ4の姿勢に誤差θが生じていると、教示位置M1の補正後の位置にd×sinθの並進方向のずれが生じ得るためである。
【0033】
そこで本実施形態に係るロボット制御装置30は、計測するマーカ4の数を増加させ、マーカの計測結果を合成する形で座標系や補正量の把握を行うようにすることで、教示点の補正の精度を向上させる。一例として、
図6に示すように、3つのマーカ4(マーカ41、マーカ42、マーカ43)を、補正をかけるべき教示位置M1の周囲に配置する。マーカ41、マーカ42、マーカ43それぞれ単体として計測した位置をP1、P2、P3とする。マーカ位置計測部133は、マーカ41の位置P1を原点位置、マーカ42の位置P2をX軸方向の位置、マーカ43の位置P3をXY平面状にある位置として座標系を把握する。このように複数のマーカ4を用いて座標系の位置・姿勢を把握するようにする場合、マーカ一つの計測の場合よりも精度を向上させることができる。また、この場合、マーカ間の距離を大きくするほど姿勢の誤差を小さくすることが可能となる。
【0034】
なお、複数のマーカを計測した結果を合成して対象物全体(本実施形態では作業空間)の位置及び姿勢を把握する手法として、当分野で知られた他の手法が用いられても良い。例えば、2点(2つのマーカ)での計測を行う場合には、計測した2点を結ぶ線分を軸とする回転量を同定することはできないが、この回転量がシステム精度上変化しにくい場合には、十分に実用的な構成となる。
【0035】
計測精度評価部135は、マーカ位置計測部133によるマーカ4の位置計測の結果を評価する機能を有する。一例として、計測精度評価部135は、マーカ4の位置計測結果の評価を次のように行う。マーカ4中の各計測点(各ドット)の計測された位置をPxi、マーカ4の原点に対する各計測点の位置(設計値)をPyi、計測されたマーカの位置・姿勢をPmとするとき、
Σ(Pxi-Pm×Pyi)^2 ・・・(1)
は、各計測点の計測誤差の2乗和を表す指標値となり、この指標値の大小により計測の精度を評価し得る。なお、上記において、Pmは同次変換行列である。なお、マーカ4を複数視点から計測し、それらの計測結果を総合的に評価することによっても計測精度の評価が可能である。例えば、マーカ4の計測精度が低い状態の場合には、複数視点からの計測結果にばらつきが生じ得る。
【0036】
マーカ位置計測部133及び相対位置計算部134は、一つのマーカ4を計測して上記指標値を求め、マーカ一つによる位置計測の精度が低い場合に(例えば、数式(1)による誤差の指標値が所定の閾値より大きい場合に)、計測するマーカ4の数を増加させる(例えば、3つのマーカ4による計測を行う)ようにしても良い。また、マーカ位置計測部133及び相対位置計算部134は、一つのマーカ4を計測して上記指標値を求め、マーカ一つによる計測の精度が十分であると判断される場合には(例えば、数式(1)による誤差の指標値が所定の閾値以下である場合には)、一つのマーカ4の計測により、ロボット20と作業空間との相対位置関係を求めるようにしても良い。
【0037】
教示装置50は、ロボット制御装置30における上述のようなマーカ計測機能を実現するためのプログラミング機能を提供する。以下では、教示装置50におけるプログラム作成機能について説明する。
【0038】
図7は、プログラム作成部151により生成されるプログラム作成画面400の基本的な構成例を示す図である。プログラム作成画面400は、プログラム作成に用いることのできるアイコンのリストを表示するアイコン表示領域200と、アイコン表示領域200から選択した所望のアイコンを並べることでプログラム作成を行うためのプログラム作成領域300とを含む。ユーザは、アイコン表示領域200から所望のアイコンを、例えばドラッグアンドドロップ操作によりプログラム作成領域300に順に並べてプログラミングを行う。また、ユーザは、プログラム作成領域300に配置されたアイコンを選択し、詳細タブ262を選択することで、現在選択されているアイコンに対する詳細設定(教示)を行うことができる。
【0039】
図8は、一つのマーカに対する計測を実行する命令に対応するアイコン(以下、マーカ1点計測アイコン211と記す)を表す図である。マーカ1点計測アイコン211は、視覚センサ71を用いた視覚検出機能によりマーカの3次元位置を計測し、ロボット20とマーカ(すなわち、作業空間)との相対位置関係を算出する機能を提供する。マーカ1点計測アイコン211の上側に表示された2つの数字は、このマーカ1点計測アイコン211が2つの教示点の設定を含むことを表す。マーカ1点計測アイコン211が、他のアイコンと共にプログラム作成領域300に配置されるとき、マーカ1点計測アイコン211の上側の2つの数字は、プログラム内での教示点の番号を表すこととなる。
図8では、例示として、マーカ1点計測アイコン211の2つの教示点の番号が2番目と3番目であることを示している。
【0040】
図9は、マーカ1点計測アイコン211の詳細設定を行うためのマーカUI(ユーザインタフェース)画面220の構成例を示す図である。マーカUI画面220は、マーカUI作成部152により生成される。マーカUI画面220は、例えば、プログラム作成領域300に配置したマーカ1点計測アイコン211を選択した状態で、詳細タブ262を選択することで起動され表示されても良い。
図9に例示すように、マーカUI画面220は、詳細設定項目として、
(1)ステレオ計測のための2箇所の計測位置(計測位置1、計測位置2)
(2)視覚センサの露光時間
(3)マーカの選択
(4)マーカのドット間隔
の設定入力欄221から225を有している。なお、設定入力欄221から225には、予めデフォルトの設定が成されていても良い。
【0041】
2つの計測位置の設定を行う場合、教示ボタン221a、222aを選択してロボット20を操作(ジョグ操作)して計測位置(視覚センサ71の位置)を教示する。
【0042】
図10は、マーカ3点に対する計測を行うためのアイコン(以下、マーカ3点計測アイコン230と記す)を表す。マーカ3点計測アイコン230は、
図6を参照して上述したように、3点のマーカ4に対し計測を行って、ロボット20と作業空間との相対位置関係を求める機能を提供する。マーカ3点計測アイコン230は、コの字型に形成されたマーカ3点合成アイコン231の中央部の窪み部分にマーカ1点計測アイコン211を3つ並べることで簡単に構成することができる。
図6を参照して上述したように、マーカ3点合成アイコン231は、3つのマーカ1点計測アイコン211によりそれぞれ計測された3つのマーカの位置を合成するやり方で、ロボット(視覚センサ)と作業空間との相対位置関係を求める機能を提供する。
【0043】
マーカの3点計測を行う場合にも、オペレータは、同じマーカ1点計測アイコン211を3つ並べればよい。すなわち、オペレータは、3つのマーカの計測の設定に関して、
図9に示す同じマーカUI画面220を操作して設定をすることができる。すなわち、3つのマーカ4の各々に対する設定において、共通のUI画面が用いられる。
【0044】
ここで、3つのマーカの設定において設定項目は共通しているので、一つのマーカについてのマーカ1点計測アイコン211に入力された設定情報が、他の2つのマーカ1点計測アイコン211の設定情報にデフォルト値として反映されるように構成されていても良い。例えば、
図9に示す上記設定項目の例の場合には、ステレオ計測のための2つの位置以外の設定項目は共通の内容とすることができる。
【0045】
このように、本実施形態によれば、マーカ3点計測を行う場合にも、マーカ1点計測を行う場合と共通のUI画面を介して設定を行うことができ、且つマーカ1点計測を行う場合に入力した設定情報を、マーカ3点計測を行う場合の設定値のデフォルト値として反映させることができる。したがって、マーカ3点計測を行う場合のユーザの負担を軽減することができる。すなわち、ユーザは、マーカ3点計測を行う場合にも、マーカ1点計測と同様の間隔で設定を行うことができ、マーカ3点計測を行うための複雑な知識を有することは要求されない。
【0046】
図11は、1つ目のマーカで計測を行った後、計測結果を評価し、評価値が低い場合(すなわち、計測の精度が低いと判定される場合)にのみ2つ目及び3つ目のマーカの計測を行い、位置計測の精度を高める計測プログラム240を示している。計測プログラム240には、コの字上に延長された形状を有するマーカ3点合成アイコン231の中に、1つ目のマーカ1点計測アイコン211、条件分岐アイコン241、2つ目のマーカ1点計測アイコン211、及び3つ目のマーカ1点計測アイコン211が含まれている。条件分岐アイコン241は、上述の数式(1)による誤差の指標値が閾値より大きい場合に、2つ目及び3つ目のマーカの計測を行い、誤差の指標値が閾値以下であれば2つ目及び3つ目のマーカの計測を行わないという動作を提供するように設定される。このように、本実施形態によれば、マーカ1つで精度が出ない場合にマーカ複数による計測に移行する動作を容易に実現することができる。すなわち、マーカ1つで精度がでないときに、マーカ複数の計測にシームレスに切り替えることができる。
【0047】
図12は、
図11に示した計測プログラム240の動作をフローチャートとして表したものである。はじめに、一つ目のマーカの計測を行う(ステップS1)。次に、一つ目のマーカの計測の精度を評価する(ステップS2)。ここでは、上述の数式(1)により制度の指標値を求める。数式(1)による指標値が所定の値以下で精度が良いと判定される場合(S3:OK)、本処理を抜ける。この場合、一つのマーカの計測結果を用いて、ロボット20と作業空間との相対位置関係が得られる。
【0048】
数式(1)による指標値が所定の値より大きく精度が良くないと判定される場合(S3:NG)、2つ目のマーカの計測(ステップS4)及び3つ目のマーカの計測(ステップS5)を行う。そして、
図6を参照して説明したように、3つのマーカの計測結果を合成した形で作業空間の座標系を求め、ロボット20と作業空間との相対位置関係を得る(ステップS6)。
【0049】
なお、マーカ4は、作業空間(工作機械10)に予め3つ配置しておいても良く、或いは、一つのマーカでの計測の精度が良くないと判定された場合に(S3:NG)、ユーザがマーカ4の数を増加させても良い。なお、ユーザがマーカ4を増加させる場合には、ユーザは、追加したマーカ4の配置情報を教示装置50を操作して設定するようにする。
【0050】
上記フローチャートにおいて、ステップS1が計測プログラム240の1つ目のマーカ1点計測アイコン211に対応し、ステップS4が計測プログラム240の2つ目のマーカ1点計測アイコン211に対応し、ステップS5が計測プログラム240の3つ目のマーカ1点計測アイコン211に対応する。ステップS6において相対位置を求める動作が、マーカ3点合成アイコン231の機能に対応し、条件判断のステップS3による流れの制御が、条件分岐アイコン241の機能に対応している。
【0051】
図13は、3つのマーカで計測を行う場合に、マーカ1点計測アイコン211の間に経由点を追加する場合のプログラム例である計測プログラム250を示す。本例では、マーカ3点合成アイコン231の中に3つのマーカ1点計測アイコン211が配置され、1つ目のマーカ1点計測アイコン211と2つ目のマーカ1点計測アイコン211の間に経由点を加えるための直線移動アイコン251が挿入されている。この場合、1つ目のマーカの計測位置から2つ目のマーカの計測位置の間に、ロボット20は、直線移動アイコン251で指定された教示点を経由するように動作する。よって、1つ目のマーカの計測位置から2つ目のマーカの計測位置への経路に障害物や特異点がある場合にそれを回避することができる。このように、複数のマーカの計測を行う場合においても各計測のアイコンが分かれているので、経由点を追加する等の柔軟なプログラミングを行うことができる。
【0052】
以上では、プログラム作成部151により提供されるプログラミング機能を介してマーカ計測に関する詳細設定を行う場合の動作例について説明した。教示装置50は、ロボットの教示に関する各種設定入力を受け付ける機能を提供する設定部154を有する。マーカ計測に関する設定は、教示装置50のこのような設定入力機能(すなわち、設定部154の機能)を介して行うようにしても良い。
【0053】
図14Aは、設定部154の機能として提供される、マーカ計測のためのマーカ設定入力画面500の例を示す。マーカ設定入力画面500は、計測するマーカ数を指定するための入力欄511、計測方式を指定するための入力欄512、計測位置を入力するための入力欄513及び514を含む。
図14Aの例では、一つのマーカに対してステレオ計測法による計測が指定されているため、2つの計測位置(計測位置1、計測位置2)についての入力欄513及び514が配置されている。ユーザは、教示ボタン513a、514aを選択して計測位置の教示を行うことができる。
【0054】
図14Aに示したマーカ設定入力画面500においてマーカ数を2と指定した場合には、
図14Bのマーカ設定入力画面500Bに示すように、2つ目のマーカの計測位置を入力するための入力欄515及び516が追加で現れる。ユーザは、教示ボタン515a、516aを選択して、2つ目のマーカの計測位置の教示を行うことができる。ユーザが、マーカ設定入力画面500を介して一つのマーカに関して設定入力を既に行っている場合、マーカ設定入力画面500Bでは、一つ目のマーカ(マーカ1)の設定情報として、マーカ設定入力画面500を介して入力された情報が利用可能な状態で反映される。このように、設定部154によるマーカ計測のための設定機能によれば、マーカ設定入力画面においてマーカ数のドロップダウンメニューにおいてマーカ数を2に変更することで、2つのマーカの計測の設定に簡単に移行することができる。
【0055】
マーカ設定入力画面500或いはマーカ設定入力画面500Bを介して入力されたマーカ計測に関する設定情報は、プログラムから参照可能なグローバルなメモリ領域にコピーし格納される。制御プログラム中にマーカ計測命令が含まれていると、そのマーカ計測命令は、上記グローバルなメモリ領域にある設定情報を用いてマーカ計測のための動作を行うことができる。
【0056】
図15は、教示装置50のマーカUI作成部152及びマーカ設定入力受付部153による、マーカ計測設定を入力するためのインタフェースを提供して設定入力を受け付ける動作をフローチャートとして表したものである。ここでは、
図10に例示したような3つのマーカを計測するためのプログラムに関する場合のマーカUI作成部152及びマーカ設定入力受付部153の動作について説明する。
【0057】
はじめに、マーカUI作成部152は、第1のマーカ計測の設定入力を行うためのマーカUI画面220を提示し、マーカ設定入力受付部153は、マーカUI画面220を介して第1のマーカ計測のための設定入力を受け付ける(ステップS101)。続いて、マーカUI作成部152は、第2のマーカ計測の設定入力を行うためのマーカUI画面220を提示する(ステップS102)。この場合、マーカUI作成部152は、第2のマーカの計測のためのマーカUI画面220中に、第1のマーカの計測の設定として既に入力されている値をデフォルト値として反映させる。そして、マーカ設定入力受付部153は、第2のマーカのためのマーカUI画面220を介して第2のマーカ計測のための設定入力を受け付ける(ステップS102)。第2のマーカのためのマーカUI画面220には、第1のマーカのために既に入力した値が反映され利用可能となっているので、ユーザは、第2マーカの計測の設定のために特に必要な項目(例えば、第2のマーカの計測位置)のみ設定すればよい。
【0058】
続いて、マーカUI作成部152は、第3のマーカ計測の設定入力を行うためのマーカUI画面220を提示し、マーカ設定入力受付部153は、第3のマーカのためのマーカUI画面220を介して第2のマーカ計測のための設定入力を受け付ける(ステップS103)。この場合にも、第3のマーカのためのマーカUI画面220には、第1のマーカ及び第2のマーカのために既に入力した値が反映され利用可能となっているので、ユーザは、第3マーカの計測の設定のために特に必要な項目(例えば、第3のマーカの計測位置)のみ設定すればよい。
【0059】
このように、マーカUI作成部152及びマーカ設定入力受付部153の機能によれば、第1のマーカの計測に関する第1の設定情報の入力を受け付け、第1のマーカに関して入力された第1の設定情報を利用できるやり方で、第2のマーカの計測に関する第2の設定情報の入力を受け付ける、ユーザインタフェースを提供する動作が実現される。なお、設定部154によってもこれと同等の動作が実現される。
【0060】
上述した実施形態における、教示装置50が提供する機能は、次のように表現することもできる。すなわち、作業空間に設置されたマーカを視覚センサにより計測するプログラムを作成するために用いられる教示装置であって、マーカの計測に関する設定情報を入力するためのユーザインタフェースを作成するユーザインタフェース作成部(マーカUI作成部152或いは設定部154)を備え、ユーザインタフェース作成部は、ユーザインタフェースにおいて、第1のマーカに関して入力された第1の設定情報を、第2のマーカに関する設定において利用可能とする、教示装置である。
【0061】
上述した実施形態におけるマーカ計測方法(
図11、
図12等)は、次のように表現することができる。すなわち、作業空間に設置されたマーカを視覚センサにより計測するための方法であって、第1のマーカについて計測を行い、第1のマーカの計測結果の精度を評価し、第1のマーカの計測結果の精度が所定のレベル未満である場合に、追加の1以上の前記マーカについて計測を行うこと、を含み、第1のマーカの計測に関する設定情報が、追加の1以上の前記マーカの各々の計測に関する設定情報として利用可能となっている、マーカ計測方法である。
【0062】
本実施形態によれば、複数のマーカの計測が必要になる状況においても、ユーザは、1つのマーカの計測についての設定を行う場合と同等のやり方で且つ容易に複数のマーカの計測について設定を行うことができる。
【0063】
以上、典型的な実施形態を用いて本発明を説明したが、当業者であれば、本発明の範囲から逸脱することなしに、上述の各実施形態に変更及び種々の他の変更、省略、追加を行うことができるのを理解できるであろう。
【0064】
上述の実施形態では、教示装置50は、アイコンを用いたプログラミングを可能とするプログラミング装置として構成されていたが、教示装置50は、テキストベースでのプログラミングを可能とするプログラミング装置として構成されていても良い。
図10に示した三つのマーカを計測するための命令アイコンに対応するテキストベースでのプログラムを以下に示す。
(計測プログラムの例)
FIND MARKER
FIND MARKER
FIND MARKER
CALCULATE MARKERS
上記計測プログラムにおいて、命令‘FIND MARKER’は、一つのマーカの計測を行うための計測命令であり、上述のマーカ1点計測アイコン211に相当する。また、命令’CALCULATE MARKERS’は、3つのマーカについての計測結果を統合してロボットと作業空間との相対位置関係を求める命令であり、上述のマーカ3点合成アイコン231に相当する。これらの命令に対する詳細設定の入力は、上述の実施形態と同様のやり方で、マーカ計測の設定入力のためのユーザインタフェース画面を介して行うようにしても良い。或いは、これらの命令文が、グローバルなメモリ領域にコピーされた設定情報を参照して動作するようにしても良い。
【0065】
上述の実施形態において
図3に示した教示装置或いはロボット制御装置の機能ブロックは、教示装置或いはロボット制御装置のCPUが、記憶装置に格納された各種ソフトウェアを実行することで実現されても良く、或いは、ASIC(Application Specific Integrated Circuit)等のハードウェアを主体とした構成により実現されても良い。
【0066】
上述した実施形態において示した各種処理を実行するプログラム(
図12に示した計測プログラム、
図15に示したユーザインタフェースを提供する動作のプログラムを含む)は、コンピュータに読み取り可能な各種記録媒体(例えば、ROM、EEPROM、フラッシュメモリ等の半導体メモリ、磁気記録媒体、CD-ROM、DVD-ROM等の光ディスク)に記録することができる。
【符号の説明】
【0067】
4 マーカ
10 工作機械
20 ロボット
30 ロボット制御装置
31 プロセッサ
32 メモリ
33 入出力インタフェース
34 操作部
50 教示装置
51 プロセッサ
52 メモリ
53 表示部
54 操作部
55 入出力インタフェース
71 視覚センサ
100 ロボットシステム
131 記憶部
132 動作制御部
133 マーカ位置計測部
134 相対位置計算部
135 計測精度評価部
200 アイコン表示領域
211 マーカ1点計測アイコン
220 マーカUI画面
230 マーカ3点計測アイコン
300 プログラム作成領域
400 プログラム作成画面
500、500B マーカ設定入力画面