JPH1091225A - ロボットのための画像処理プログラム自動生成方法、その装置およびロボットプログラム自動修正方法 - Google Patents
ロボットのための画像処理プログラム自動生成方法、その装置およびロボットプログラム自動修正方法Info
- Publication number
- JPH1091225A JPH1091225A JP8242810A JP24281096A JPH1091225A JP H1091225 A JPH1091225 A JP H1091225A JP 8242810 A JP8242810 A JP 8242810A JP 24281096 A JP24281096 A JP 24281096A JP H1091225 A JPH1091225 A JP H1091225A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- program
- image processing
- work
- curve
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
- Stored Programmes (AREA)
- Character Discrimination (AREA)
Abstract
(57)【要約】
【課題】 作業対象となるワークの個体差に対応するた
めの画像処理プログラムを自動的に生成できるロボット
のための画像処理プログラム自動生成方法等を提供す
る。 【解決手段】 あらかじめマスタワークについてティー
チングされたロボットプログラムの中から正確な位置計
測が必要な教示点を抽出し(ステップS101)、さらに抽
出された各教示点を含む動作命令の種別から各教示点が
属する直線や円弧等の曲線の種別、および曲線の端点等
の曲線の範囲を特定する教示点の座標値を抽出する(ス
テップS102)。抽出された教示点の座標値(ロボット座
標系)をビデオカメラの画面内での座標値に変換し(ス
テップS103)、変換された各教示点の座標値および属す
る曲線の種別に基づいて、ビデオカメラにより撮影され
た画像から各教示点に対応する曲線を検出してこれらの
交点としての各教示点の実際の位置を求める画像処理プ
ログラムを生成する(ステップS104,S105 )。
めの画像処理プログラムを自動的に生成できるロボット
のための画像処理プログラム自動生成方法等を提供す
る。 【解決手段】 あらかじめマスタワークについてティー
チングされたロボットプログラムの中から正確な位置計
測が必要な教示点を抽出し(ステップS101)、さらに抽
出された各教示点を含む動作命令の種別から各教示点が
属する直線や円弧等の曲線の種別、および曲線の端点等
の曲線の範囲を特定する教示点の座標値を抽出する(ス
テップS102)。抽出された教示点の座標値(ロボット座
標系)をビデオカメラの画面内での座標値に変換し(ス
テップS103)、変換された各教示点の座標値および属す
る曲線の種別に基づいて、ビデオカメラにより撮影され
た画像から各教示点に対応する曲線を検出してこれらの
交点としての各教示点の実際の位置を求める画像処理プ
ログラムを生成する(ステップS104,S105 )。
Description
【0001】
【発明の属する技術分野】本発明は溶接作業や、面取り
作業等のワークとの接触を伴う作業を行うロボットに係
り、とりわけこのようなロボットのための画像処理プロ
グラム自動生成方法、その装置およびロボットプログラ
ム自動修正方法に関する。
作業等のワークとの接触を伴う作業を行うロボットに係
り、とりわけこのようなロボットのための画像処理プロ
グラム自動生成方法、その装置およびロボットプログラ
ム自動修正方法に関する。
【0002】
【従来の技術】従来より工場の製造ライン等において
は、各種の作業を行うために様々な形でロボットが利用
されている。ロボットの主な用途としては、自動車ライ
ンにおける溶接や、電子部品の組立等が挙げられるが、
その他にもマテハンや塗装、面取り等の各種の作業で利
用されている。なお、従来におけるロボットの基本的な
使用方法は、治具等によりロボットに対してワークが正
確に位置決めされるようにしておき、あらかじめマスタ
ワークについてティーチングされたロボットプログラム
による動作を数多くの同じワークに対して繰り返し行う
というものであった。
は、各種の作業を行うために様々な形でロボットが利用
されている。ロボットの主な用途としては、自動車ライ
ンにおける溶接や、電子部品の組立等が挙げられるが、
その他にもマテハンや塗装、面取り等の各種の作業で利
用されている。なお、従来におけるロボットの基本的な
使用方法は、治具等によりロボットに対してワークが正
確に位置決めされるようにしておき、あらかじめマスタ
ワークについてティーチングされたロボットプログラム
による動作を数多くの同じワークに対して繰り返し行う
というものであった。
【0003】しかしながら、近年のコンピュータの価格
低下と計算能力の急激な増大、およびCCD(Charge c
oupled device ,電荷結合素子)カメラの価格低下と性
能向上により、画像処理が従来とは比べものにならない
ほどの低価格で利用できるようになってきている。これ
に伴い、ロボットの分野においても、画像処理を積極的
に利用する例が増えている。代表的な利用方法として
は、物体をパレットの決められた位置に搬送するパレタ
イジングにおいてワークの種別や正確な位置を検出する
もの、チップマウンタにおいてICの位置を検出するも
の等がある。また、ロボットにおけるこれまでの画像処
理では、処理時間の制約が厳しいために、画像処理専用
のハードウェアによる2値化処理を行うことが普通であ
ったが、コンピュータの価格低下と計算能力の向上によ
り、濃淡画像のパターンマッチング等を行う画像処理装
置も増えつつある。一般に濃淡画像のパターンマッチン
グの方が2値化処理に比べて照明条件の変化に対して安
定であるといわれている。
低下と計算能力の急激な増大、およびCCD(Charge c
oupled device ,電荷結合素子)カメラの価格低下と性
能向上により、画像処理が従来とは比べものにならない
ほどの低価格で利用できるようになってきている。これ
に伴い、ロボットの分野においても、画像処理を積極的
に利用する例が増えている。代表的な利用方法として
は、物体をパレットの決められた位置に搬送するパレタ
イジングにおいてワークの種別や正確な位置を検出する
もの、チップマウンタにおいてICの位置を検出するも
の等がある。また、ロボットにおけるこれまでの画像処
理では、処理時間の制約が厳しいために、画像処理専用
のハードウェアによる2値化処理を行うことが普通であ
ったが、コンピュータの価格低下と計算能力の向上によ
り、濃淡画像のパターンマッチング等を行う画像処理装
置も増えつつある。一般に濃淡画像のパターンマッチン
グの方が2値化処理に比べて照明条件の変化に対して安
定であるといわれている。
【0004】ロボット用の画像処理装置は、ロボットの
動作を制御するロボットコントローラに組み込まれる
か、あるいはロボットコントローラとのデータのやりと
りが可能となっており、これにより画像処理結果をロボ
ットプログラムに反映できるようになっている。また画
像処理装置には、専用の画像処理用言語が用意されてい
るのが普通であり、この専用の画像処理用言語により、
あらかじめユーザはその処理内容についてのプログラム
を記述しておく必要がある。これまでの画像処理用言語
の中には、ユーザによるプログラム作業ができるだけ容
易になるように工夫されているものも多いが、画像処理
技術の発展とともに画像処理装置により提供される機能
は急激に増えつつあり、ユーザに必要とされる画像処理
に関する知識はむしろ増えつつあるといえる。
動作を制御するロボットコントローラに組み込まれる
か、あるいはロボットコントローラとのデータのやりと
りが可能となっており、これにより画像処理結果をロボ
ットプログラムに反映できるようになっている。また画
像処理装置には、専用の画像処理用言語が用意されてい
るのが普通であり、この専用の画像処理用言語により、
あらかじめユーザはその処理内容についてのプログラム
を記述しておく必要がある。これまでの画像処理用言語
の中には、ユーザによるプログラム作業ができるだけ容
易になるように工夫されているものも多いが、画像処理
技術の発展とともに画像処理装置により提供される機能
は急激に増えつつあり、ユーザに必要とされる画像処理
に関する知識はむしろ増えつつあるといえる。
【0005】なお、画像処理が利用できるロボットの具
体的な作業として、例えば面取り作業や溶接作業等のよ
うにワーク稜線に沿ってロボットの先端に取り付けられ
たツールが移動する作業においては、ワークの個体差に
よって変化するワーク稜線の位置および形状を正確に把
握しておく必要があり、このためにワークの位置および
形状を特徴づける教示点の実際の位置を画像処理により
求めておくことが有効となる。
体的な作業として、例えば面取り作業や溶接作業等のよ
うにワーク稜線に沿ってロボットの先端に取り付けられ
たツールが移動する作業においては、ワークの個体差に
よって変化するワーク稜線の位置および形状を正確に把
握しておく必要があり、このためにワークの位置および
形状を特徴づける教示点の実際の位置を画像処理により
求めておくことが有効となる。
【0006】
【発明が解決しようとする課題】上述したように、ロボ
ットにより行われる各種の作業に画像処理を利用するこ
とは有効ではあるが、画像処理を利用するためには個々
の画像処理装置に固有の言語を習得した後に、各作業ご
とに画像処理プログラムを記述する必要があった。ま
た、個々のワークに対して画像処理プログラムを記述す
るとともに、その画像処理結果を利用してロボットが動
作するようにロボットプログラムを作成ないし修正する
必要があった。
ットにより行われる各種の作業に画像処理を利用するこ
とは有効ではあるが、画像処理を利用するためには個々
の画像処理装置に固有の言語を習得した後に、各作業ご
とに画像処理プログラムを記述する必要があった。ま
た、個々のワークに対して画像処理プログラムを記述す
るとともに、その画像処理結果を利用してロボットが動
作するようにロボットプログラムを作成ないし修正する
必要があった。
【0007】このため従来のロボットでは、画像処理プ
ログラムの記述に多大な時間を要していた。また画像処
理装置に固有の言語や画像処理に関する基礎知識を習得
するためにも多大な時間が必要であり、画像処理に詳し
い人間でないと画像処理装置を使いこなすことは困難で
あった。
ログラムの記述に多大な時間を要していた。また画像処
理装置に固有の言語や画像処理に関する基礎知識を習得
するためにも多大な時間が必要であり、画像処理に詳し
い人間でないと画像処理装置を使いこなすことは困難で
あった。
【0008】しかしながら、ロボットにより行われる溶
接作業や、面取り作業等のワークとの接触を伴う作業の
ために必要となる画像処理に限れば、ワークの個体差に
よって変化するワーク稜線の位置および形状等は、1つ
のマスタワークについてティーチングされたロボットプ
ログラムの中に動作命令の種別や動作命令の引数である
教示点としてすでに含まれている。ここで、画像処理に
より正確な位置が要求される教示点はワーク稜線等との
位置決めが要求される作業である。
接作業や、面取り作業等のワークとの接触を伴う作業の
ために必要となる画像処理に限れば、ワークの個体差に
よって変化するワーク稜線の位置および形状等は、1つ
のマスタワークについてティーチングされたロボットプ
ログラムの中に動作命令の種別や動作命令の引数である
教示点としてすでに含まれている。ここで、画像処理に
より正確な位置が要求される教示点はワーク稜線等との
位置決めが要求される作業である。
【0009】一方、ロボットプログラムの中には、溶接
作業時の動作や面取り作業時の動作等に直接関係する正
確な位置が要求される教示点以外にも、ロボットの姿勢
を単に変化させるだけの動作のようにワークの個体差を
考慮する必要のない動作に関係する教示点も含まれてい
る。しかしこれについては、例えば溶接作業に関して
は、溶接開始命令および溶接停止命令に挟まれたロボッ
トの動作命令のみを選択することにより高精度の位置決
めが要求される溶接作業時の動作に関係する教示点のみ
を抽出することが可能である。
作業時の動作や面取り作業時の動作等に直接関係する正
確な位置が要求される教示点以外にも、ロボットの姿勢
を単に変化させるだけの動作のようにワークの個体差を
考慮する必要のない動作に関係する教示点も含まれてい
る。しかしこれについては、例えば溶接作業に関して
は、溶接開始命令および溶接停止命令に挟まれたロボッ
トの動作命令のみを選択することにより高精度の位置決
めが要求される溶接作業時の動作に関係する教示点のみ
を抽出することが可能である。
【0010】また力制御機能を有するロボットによる面
取り作業に関しては、ワークとの接触を伴う直線移動命
令や円弧移動命令等のようにワークとの接触を伴う作業
命令のみを選択することにより溶接作業の場合と同様に
高精度の位置決めが要求されるワークとの接触作業時の
動作に関係する教示点のみを抽出することが可能であ
る。このように、マスタワークについてティーチングさ
れたロボットプログラムの中には、画像処理プログラム
を作成するために必要な情報は全て含まれている。
取り作業に関しては、ワークとの接触を伴う直線移動命
令や円弧移動命令等のようにワークとの接触を伴う作業
命令のみを選択することにより溶接作業の場合と同様に
高精度の位置決めが要求されるワークとの接触作業時の
動作に関係する教示点のみを抽出することが可能であ
る。このように、マスタワークについてティーチングさ
れたロボットプログラムの中には、画像処理プログラム
を作成するために必要な情報は全て含まれている。
【0011】本発明はこのような点を考慮してなされた
ものであり、マスタワークについてティーチングされた
ロボットプログラムからワークごとの個体差に対応する
ための画像処理プログラムを自動的に生成することがで
きるロボットのための画像処理プログラム自動生成方法
およびその装置を提供することを目的とする。また、こ
のような方法により生成された画像処理プログラムを用
いてロボットプログラムにあらかじめ内蔵された各教示
点の座標値を自動的に修正することができるロボットプ
ログラム自動修正方法を提供することも目的とする。
ものであり、マスタワークについてティーチングされた
ロボットプログラムからワークごとの個体差に対応する
ための画像処理プログラムを自動的に生成することがで
きるロボットのための画像処理プログラム自動生成方法
およびその装置を提供することを目的とする。また、こ
のような方法により生成された画像処理プログラムを用
いてロボットプログラムにあらかじめ内蔵された各教示
点の座標値を自動的に修正することができるロボットプ
ログラム自動修正方法を提供することも目的とする。
【0012】
【課題を解決するための手段】本発明は、溶接作業や、
面取り作業等のワークとの接触を伴う作業を行うロボッ
トのための画像処理プログラム自動生成方法において、
あらかじめマスタワークについてティーチングされたロ
ボットプログラムの中からワークとの接触作業を行う際
のロボット座標系に基づく教示点を含む動作命令を抽出
し、この抽出された動作命令からあらかじめ内蔵された
教示点を抽出する第1の工程と、この第1の工程により
抽出された各教示点について、それぞれの教示点を含む
動作命令の種別から各教示点が直線や円弧等の曲線のう
ちどのような曲線に属するかを判別するとともに、この
判別された曲線における端点や途中の点等の曲線の範囲
を特定する教示点の座標値を前記ロボットプログラムの
中から読み出す第2の工程と、この第2の工程により読
み出された各教示点のロボット座標系での座標値を、あ
らかじめ定義された前記ワークを撮影するためのビデオ
カメラの座標系とロボット座標系との変位量を用いて前
記ビデオカメラの画面内での座標値に変換する第3の工
程と、この第3の工程により変換された各教示点の座標
値および各教示点の属する曲線の種別に基づいて、前記
ビデオカメラにより撮影された画像から前記各教示点に
対応する直線や円弧等の曲線を検出してこれらの交点と
しての各教示点の実際の位置を求める画像処理プログラ
ムを生成する第4の工程と、を備えたことを特徴とする
ロボットのための画像処理プログラム自動生成方法を提
供する。
面取り作業等のワークとの接触を伴う作業を行うロボッ
トのための画像処理プログラム自動生成方法において、
あらかじめマスタワークについてティーチングされたロ
ボットプログラムの中からワークとの接触作業を行う際
のロボット座標系に基づく教示点を含む動作命令を抽出
し、この抽出された動作命令からあらかじめ内蔵された
教示点を抽出する第1の工程と、この第1の工程により
抽出された各教示点について、それぞれの教示点を含む
動作命令の種別から各教示点が直線や円弧等の曲線のう
ちどのような曲線に属するかを判別するとともに、この
判別された曲線における端点や途中の点等の曲線の範囲
を特定する教示点の座標値を前記ロボットプログラムの
中から読み出す第2の工程と、この第2の工程により読
み出された各教示点のロボット座標系での座標値を、あ
らかじめ定義された前記ワークを撮影するためのビデオ
カメラの座標系とロボット座標系との変位量を用いて前
記ビデオカメラの画面内での座標値に変換する第3の工
程と、この第3の工程により変換された各教示点の座標
値および各教示点の属する曲線の種別に基づいて、前記
ビデオカメラにより撮影された画像から前記各教示点に
対応する直線や円弧等の曲線を検出してこれらの交点と
しての各教示点の実際の位置を求める画像処理プログラ
ムを生成する第4の工程と、を備えたことを特徴とする
ロボットのための画像処理プログラム自動生成方法を提
供する。
【0013】また本発明は、溶接作業や、面取り作業等
のワークとの接触を伴う作業を行うロボットのための画
像処理プログラム自動生成装置において、作業対象とな
るワークを撮影するビデオカメラと、あらかじめマスタ
ワークについてティーチングされたロボットプログラム
の中からワークとの接触作業を行う際のロボット座標系
に基づく教示点を含む動作命令を抽出し、この抽出され
た動作命令からあらかじめ内蔵された教示点を抽出する
手段と、この手段により抽出された各教示点について、
それぞれの教示点を含む動作命令の種別から各教示点が
直線や円弧等の曲線のうちどのような曲線に属するかを
判別するとともに、この判別された曲線における端点や
途中の点等の曲線の範囲を特定する教示点の座標値を前
記ロボットプログラムの中から読み出す手段と、この手
段により読み出された各教示点のロボット座標系での座
標値を、あらかじめ定義された前記ビデオカメラの座標
系とロボット座標系との変位量を用いて前記ビデオカメ
ラの画面内での座標値に変換する手段と、この手段によ
り変換された各教示点の座標値および各教示点の属する
曲線の種別に基づいて、前記ビデオカメラにより撮影さ
れた画像から前記各教示点に対応する直線や円弧等の曲
線の位置を検出してこれらの交点としての各教示点の実
際の位置を求める画像処理プログラムを生成する手段
と、を備えたことを特徴とするロボットのための画像処
理プログラム自動生成装置を提供する。
のワークとの接触を伴う作業を行うロボットのための画
像処理プログラム自動生成装置において、作業対象とな
るワークを撮影するビデオカメラと、あらかじめマスタ
ワークについてティーチングされたロボットプログラム
の中からワークとの接触作業を行う際のロボット座標系
に基づく教示点を含む動作命令を抽出し、この抽出され
た動作命令からあらかじめ内蔵された教示点を抽出する
手段と、この手段により抽出された各教示点について、
それぞれの教示点を含む動作命令の種別から各教示点が
直線や円弧等の曲線のうちどのような曲線に属するかを
判別するとともに、この判別された曲線における端点や
途中の点等の曲線の範囲を特定する教示点の座標値を前
記ロボットプログラムの中から読み出す手段と、この手
段により読み出された各教示点のロボット座標系での座
標値を、あらかじめ定義された前記ビデオカメラの座標
系とロボット座標系との変位量を用いて前記ビデオカメ
ラの画面内での座標値に変換する手段と、この手段によ
り変換された各教示点の座標値および各教示点の属する
曲線の種別に基づいて、前記ビデオカメラにより撮影さ
れた画像から前記各教示点に対応する直線や円弧等の曲
線の位置を検出してこれらの交点としての各教示点の実
際の位置を求める画像処理プログラムを生成する手段
と、を備えたことを特徴とするロボットのための画像処
理プログラム自動生成装置を提供する。
【0014】さらに本発明は、上述したロボットのため
の画像処理プログラム自動生成方法により生成された画
像処理プログラムを用いて、前記ビデオカメラにより撮
影された画像から実際のワークの教示点の座標値を求め
る工程と、この工程により求められた実際のワークの教
示点の座標値に基づいて、ロボットプログラムにあらか
じめ内蔵された各教示点の座標値を修正する工程と、を
備えたことを特徴とするロボットプログラム自動修正方
法を提供する。
の画像処理プログラム自動生成方法により生成された画
像処理プログラムを用いて、前記ビデオカメラにより撮
影された画像から実際のワークの教示点の座標値を求め
る工程と、この工程により求められた実際のワークの教
示点の座標値に基づいて、ロボットプログラムにあらか
じめ内蔵された各教示点の座標値を修正する工程と、を
備えたことを特徴とするロボットプログラム自動修正方
法を提供する。
【0015】本発明のロボットのための画像処理プログ
ラム自動生成方法およびその装置によれば、あらかじめ
マスタワークについてティーチングされたロボットプロ
グラムの中から画像処理により正確な位置を求めるべき
教示点を抽出し、この抽出された各教示点を含む動作命
令の種別および他の動作命令に含まれる教示点に基づい
て、これらの各教示点のロボット座標系での座標値およ
び各教示点の属する曲線の種別を求め、これらの各教示
点のロボット座標系での座標値をビデオカメラの画面内
での座標値に変換する。そして、この変換された各教示
点の座標値および各教示点の属する曲線の種別に基づい
て、ビデオカメラにより撮影された画像から前記各教示
点に対応する直線や円弧等の曲線を検出してこれらの交
点としての各教示点の実際の位置を求める画像処理プロ
グラムを生成する。これにより、マスタワークについて
ティーチングされたロボットプログラムからワークごと
の個体差に対応するための画像処理プログラムを自動的
に生成することができる。
ラム自動生成方法およびその装置によれば、あらかじめ
マスタワークについてティーチングされたロボットプロ
グラムの中から画像処理により正確な位置を求めるべき
教示点を抽出し、この抽出された各教示点を含む動作命
令の種別および他の動作命令に含まれる教示点に基づい
て、これらの各教示点のロボット座標系での座標値およ
び各教示点の属する曲線の種別を求め、これらの各教示
点のロボット座標系での座標値をビデオカメラの画面内
での座標値に変換する。そして、この変換された各教示
点の座標値および各教示点の属する曲線の種別に基づい
て、ビデオカメラにより撮影された画像から前記各教示
点に対応する直線や円弧等の曲線を検出してこれらの交
点としての各教示点の実際の位置を求める画像処理プロ
グラムを生成する。これにより、マスタワークについて
ティーチングされたロボットプログラムからワークごと
の個体差に対応するための画像処理プログラムを自動的
に生成することができる。
【0016】また本発明のロボットプログラム自動修正
方法によれば、本発明のロボットのための画像処理プロ
グラム自動生成方法により生成された画像処理プログラ
ムを用いて、ビデオカメラにより撮影された画像から実
際のワークの教示点の座標値を各ワークごとに求め、さ
らにこの求められた実際のワークの教示点の座標値に基
づいて、ロボットプログラムにあらかじめ内蔵された各
教示点の座標値を自動的に修正するので、1つのマスタ
ワークについてティーチングを行ってロボットプログラ
ムを作成するだけでワークごとの個体差を吸収するよう
にロボットプログラムを自動的に修正することができ、
このため仮に画像処理に関しての十分な知識を有しない
人であっても容易に画像処理を利用してワークの個体差
を吸収した形でロボットを動作させることができる。
方法によれば、本発明のロボットのための画像処理プロ
グラム自動生成方法により生成された画像処理プログラ
ムを用いて、ビデオカメラにより撮影された画像から実
際のワークの教示点の座標値を各ワークごとに求め、さ
らにこの求められた実際のワークの教示点の座標値に基
づいて、ロボットプログラムにあらかじめ内蔵された各
教示点の座標値を自動的に修正するので、1つのマスタ
ワークについてティーチングを行ってロボットプログラ
ムを作成するだけでワークごとの個体差を吸収するよう
にロボットプログラムを自動的に修正することができ、
このため仮に画像処理に関しての十分な知識を有しない
人であっても容易に画像処理を利用してワークの個体差
を吸収した形でロボットを動作させることができる。
【0017】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態について説明する。
施の形態について説明する。
【0018】図1および図2は本発明によるロボットの
ための画像処理プログラム自動生成方法およびその装置
の一実施の形態を説明するための図である。
ための画像処理プログラム自動生成方法およびその装置
の一実施の形態を説明するための図である。
【0019】まず図2によりロボットのための画像処理
プログラム自動生成方法を実現する装置の全体構成につ
いて説明する。図2に示すように、この装置は、作業対
象となるワーク6を撮影するビデオカメラ1と、ビデオ
カメラ1により撮影された画像を取り込む画像入力ボー
ド2が挿入されたパーソナルコンピュータ3とから構成
されている。ここで、パーソナルコンピュータ3におい
て生成された画像処理プログラムはパーソナルコンピュ
ータ3上で実行され、この実行結果に基づいてマスタワ
ークについてティーチングされたロボットプログラムが
修正される。修正後のロボットプログラムはロボット5
の動作を制御するロボットコントローラ4上で実行さ
れ、ロボット5によりワーク6の個体差を考慮した動作
がなされる。なお、ロボットプログラムの修正はパーソ
ナルコンピュータ3上またはロボットコントローラ4上
のいずれでも行うことができ、パーソナルコンピュータ
3上で修正が行われる場合には修正後のロボットプログ
ラムがロボットコントローラ4に転送される。
プログラム自動生成方法を実現する装置の全体構成につ
いて説明する。図2に示すように、この装置は、作業対
象となるワーク6を撮影するビデオカメラ1と、ビデオ
カメラ1により撮影された画像を取り込む画像入力ボー
ド2が挿入されたパーソナルコンピュータ3とから構成
されている。ここで、パーソナルコンピュータ3におい
て生成された画像処理プログラムはパーソナルコンピュ
ータ3上で実行され、この実行結果に基づいてマスタワ
ークについてティーチングされたロボットプログラムが
修正される。修正後のロボットプログラムはロボット5
の動作を制御するロボットコントローラ4上で実行さ
れ、ロボット5によりワーク6の個体差を考慮した動作
がなされる。なお、ロボットプログラムの修正はパーソ
ナルコンピュータ3上またはロボットコントローラ4上
のいずれでも行うことができ、パーソナルコンピュータ
3上で修正が行われる場合には修正後のロボットプログ
ラムがロボットコントローラ4に転送される。
【0020】次に図1によりロボットのための画像処理
プログラム自動生成方法の手順について説明する。図1
に示すように、まず、あらかじめマスタワークについて
ティーチングされたロボットプログラムの中から溶接作
業や、面取り作業等の作業対象であるワークとの接触を
伴う作業を行う際のロボット座標系に基づく動作命令を
抽出し、この抽出された動作命令から正確な位置計測が
必要な教示点を抽出する(ステップS101)。
プログラム自動生成方法の手順について説明する。図1
に示すように、まず、あらかじめマスタワークについて
ティーチングされたロボットプログラムの中から溶接作
業や、面取り作業等の作業対象であるワークとの接触を
伴う作業を行う際のロボット座標系に基づく動作命令を
抽出し、この抽出された動作命令から正確な位置計測が
必要な教示点を抽出する(ステップS101)。
【0021】続いて、ステップS101において抽出さ
れた各教示点について、それぞれの教示点を含む動作命
令の種別から各教示点が直線や円弧等の曲線のうちどの
ような曲線に属するかを判別するとともに、この判別さ
れた曲線における端点や途中の点等の曲線の範囲を特定
する教示点の座標値をロボットプログラムの中から読み
出す(ステップS102)。
れた各教示点について、それぞれの教示点を含む動作命
令の種別から各教示点が直線や円弧等の曲線のうちどの
ような曲線に属するかを判別するとともに、この判別さ
れた曲線における端点や途中の点等の曲線の範囲を特定
する教示点の座標値をロボットプログラムの中から読み
出す(ステップS102)。
【0022】その後、ステップS101において抽出さ
れた教示点のロボット座標系での座標値、およびステッ
プS102において抽出されたその他の教示点のロボッ
ト座標系での座標値をビデオカメラの画面内での座標値
に変換する(ステップS103)。すなわち、ロボット
プログラムで記述されている座標値はロボット座標系で
の座標値であるので、これらの座標値をロボット座標系
とビデオカメラの投影中心に原点を有するカメラ座標系
との変位量を用いてビデオカメラの画面内での座標系で
ある画面座標系での座標値に変換する。なお、ロボット
座標系とカメラ座標系との変位量はあらかじめユーザが
設定しておく。
れた教示点のロボット座標系での座標値、およびステッ
プS102において抽出されたその他の教示点のロボッ
ト座標系での座標値をビデオカメラの画面内での座標値
に変換する(ステップS103)。すなわち、ロボット
プログラムで記述されている座標値はロボット座標系で
の座標値であるので、これらの座標値をロボット座標系
とビデオカメラの投影中心に原点を有するカメラ座標系
との変位量を用いてビデオカメラの画面内での座標系で
ある画面座標系での座標値に変換する。なお、ロボット
座標系とカメラ座標系との変位量はあらかじめユーザが
設定しておく。
【0023】そして、ステップS103において変換さ
れた各教示点の座標値および各教示点の属する曲線の種
別に基づいて、ビデオカメラの画面内での直線や円弧等
の曲線の位置を検出する位置検出プログラムを生成する
とともに(ステップS104)、ステップS104にお
いて生成された位置検出プログラムにより検出される直
線や円弧等の曲線の位置からステップS101およびス
テップS102において抽出された各教示点のビデオカ
メラの画面内での実際の位置を算出する位置算出プログ
ラムと、この位置算出プログラムにより算出される各教
示点の画面座標系での座標値をロボット座標系での座標
値に変換する座標変換プログラムとを生成する(ステッ
プS105)。
れた各教示点の座標値および各教示点の属する曲線の種
別に基づいて、ビデオカメラの画面内での直線や円弧等
の曲線の位置を検出する位置検出プログラムを生成する
とともに(ステップS104)、ステップS104にお
いて生成された位置検出プログラムにより検出される直
線や円弧等の曲線の位置からステップS101およびス
テップS102において抽出された各教示点のビデオカ
メラの画面内での実際の位置を算出する位置算出プログ
ラムと、この位置算出プログラムにより算出される各教
示点の画面座標系での座標値をロボット座標系での座標
値に変換する座標変換プログラムとを生成する(ステッ
プS105)。
【0024】以下、図3に示すワークを例にとり、この
ワークについての画像処理プログラムが生成される手順
を図1により具体的に説明する。図4は図3に示すワー
クのエッジの面取り作業を行うためのロボットプログラ
ムを示す図である。
ワークについての画像処理プログラムが生成される手順
を図1により具体的に説明する。図4は図3に示すワー
クのエッジの面取り作業を行うためのロボットプログラ
ムを示す図である。
【0025】図4に示すロボットプログラムにおいて、
15行目の「speed 10」はロボットの動作速度
を“10”に設定することを意味する。また、16行目
の「force 1」は動作命令のうちgmovel等
による押し付け作業時の押し付け力を“1kg”に設定
することを意味する。さらに、17行目の「dset
1」はデジタル出力のチャンネル1の出力を“1(O
N)”に設定することを意味し、28行目の「dres
et 1」はデジタル出力のチャンネル1の出力を“0
(OFF)”に設定することを意味する。なお、「ds
et 1」および「dreset 1」はそれぞれ、円
錐工具等の回転開始および回転停止に対応している。
15行目の「speed 10」はロボットの動作速度
を“10”に設定することを意味する。また、16行目
の「force 1」は動作命令のうちgmovel等
による押し付け作業時の押し付け力を“1kg”に設定
することを意味する。さらに、17行目の「dset
1」はデジタル出力のチャンネル1の出力を“1(O
N)”に設定することを意味し、28行目の「dres
et 1」はデジタル出力のチャンネル1の出力を“0
(OFF)”に設定することを意味する。なお、「ds
et 1」および「dreset 1」はそれぞれ、円
錐工具等の回転開始および回転停止に対応している。
【0026】一方、18行目および27行目の「mov
el」はワークへの押し付けを伴わない直線移動命令で
あり、命令実行開始時の位置から引数で指定された教示
点までワークへの押し付けを行わずに円錐工具等を直線
移動させるためのものである。これに対し、19行目等
の「gmovel」はワークへの押し付けを伴う直線移
動命令であり、命令実行開始時の位置から引数で指定さ
れた教示点までワークへの押し付けを行いながら円錐工
具等を直線移動させるためのものである。また、20行
目等の「gmovec」はワークへの押し付けを伴う円
弧移動命令であり、命令実行開始時の位置と引数で指定
された2つの教示点とを通る円弧上を、命令実行開始時
の位置から第1の引数で指定された教示点を通って第2
の引数で指定された教示点までワークへの押し付けを行
いながら円錐工具等を移動させるためのものである。
el」はワークへの押し付けを伴わない直線移動命令で
あり、命令実行開始時の位置から引数で指定された教示
点までワークへの押し付けを行わずに円錐工具等を直線
移動させるためのものである。これに対し、19行目等
の「gmovel」はワークへの押し付けを伴う直線移
動命令であり、命令実行開始時の位置から引数で指定さ
れた教示点までワークへの押し付けを行いながら円錐工
具等を直線移動させるためのものである。また、20行
目等の「gmovec」はワークへの押し付けを伴う円
弧移動命令であり、命令実行開始時の位置と引数で指定
された2つの教示点とを通る円弧上を、命令実行開始時
の位置から第1の引数で指定された教示点を通って第2
の引数で指定された教示点までワークへの押し付けを行
いながら円錐工具等を移動させるためのものである。
【0027】図4に示すようなロボットプログラムが与
えられると、図1のステップS101において、面取り
作業を行う際の動作命令である「gmovel」,「g
movec」のみがロボットプログラムの中から選び出
され、これらの動作命令の引数として指定されている教
示点および、これらの動作命令の実行開始時の位置を決
定する1つ前の動作命令の教示点を調べることにより、
面取り作業時の動作と関係する教示点を抽出する。例え
ば、図4に示すロボットプログラムの19行目の動作命
令「gmovel p3」の引数は「p3」であり、ま
たこの動作命令の実行開始時の位置を決定するのは1つ
前の18行目の動作命令である「movel p2」の
引数である「p2」である。同様にして、図4に示すロ
ボットプログラムから面取り作業時の動作と関係する教
示点を全て抽出すると、p2,p3,p4,p5,p
6,p7,p8,p9,p10,p11,p12,p1
3となる。
えられると、図1のステップS101において、面取り
作業を行う際の動作命令である「gmovel」,「g
movec」のみがロボットプログラムの中から選び出
され、これらの動作命令の引数として指定されている教
示点および、これらの動作命令の実行開始時の位置を決
定する1つ前の動作命令の教示点を調べることにより、
面取り作業時の動作と関係する教示点を抽出する。例え
ば、図4に示すロボットプログラムの19行目の動作命
令「gmovel p3」の引数は「p3」であり、ま
たこの動作命令の実行開始時の位置を決定するのは1つ
前の18行目の動作命令である「movel p2」の
引数である「p2」である。同様にして、図4に示すロ
ボットプログラムから面取り作業時の動作と関係する教
示点を全て抽出すると、p2,p3,p4,p5,p
6,p7,p8,p9,p10,p11,p12,p1
3となる。
【0028】図1のステップS102においては、これ
らp2〜p13の各教示点について、それぞれの教示点
を含む動作命令の種別から各教示点が直線や円弧等の曲
線のうちどのような曲線に属するかを判別するととも
に、この判別された曲線における端点や途中の点等の曲
線の範囲を特定する教示点の座標値をロボットプログラ
ムの中から読み出す。図3に示すワークの場合には、ワ
ーク稜線が直線および円弧に限定されるので、各教示点
の種別は(1)直線と直線との交点、(2)直線と円弧
との境界、および(3)円弧の途中の点の3通りに限定
される。また、曲線の範囲を特定する教示点は、直線の
場合にはその両端点となり、円弧の場合にはその両端点
および途中の点となる。このため、図4に示すロボット
プログラムの場合であれば、教示点の種別および曲線の
範囲を特定する教示点は以下のようになる。
らp2〜p13の各教示点について、それぞれの教示点
を含む動作命令の種別から各教示点が直線や円弧等の曲
線のうちどのような曲線に属するかを判別するととも
に、この判別された曲線における端点や途中の点等の曲
線の範囲を特定する教示点の座標値をロボットプログラ
ムの中から読み出す。図3に示すワークの場合には、ワ
ーク稜線が直線および円弧に限定されるので、各教示点
の種別は(1)直線と直線との交点、(2)直線と円弧
との境界、および(3)円弧の途中の点の3通りに限定
される。また、曲線の範囲を特定する教示点は、直線の
場合にはその両端点となり、円弧の場合にはその両端点
および途中の点となる。このため、図4に示すロボット
プログラムの場合であれば、教示点の種別および曲線の
範囲を特定する教示点は以下のようになる。
【0029】 図1のステップS103においては、ステップS102
までに求められた、面取り作業時の動作と関係する教示
点、および曲線の範囲を特定する教示点のロボット座標
系での座標値を、カメラ座標系さらには画面座標系での
座標値に変換する。なお、図4に示すロボットプログラ
ムの場合であれば、座標変換計算が必要な教示点はp
2,p3,p4,p5,p6,p7,p8,p9,p1
0,p11,p12,p13となる。ここで、カメラ座
標系とロボット座標系との変位量は2つの座標系原点の
位置変位量および座標系の姿勢変化量により特定するこ
とができる。これらの値については、あらかじめビデオ
カメラとロボットとの位置関係を正確にキャリブレーシ
ョンして、本実施の形態によるロボットのための画像処
理プログラム自動生成方法を実装したプログラムの設定
ファイルにユーザが設定しておく。
までに求められた、面取り作業時の動作と関係する教示
点、および曲線の範囲を特定する教示点のロボット座標
系での座標値を、カメラ座標系さらには画面座標系での
座標値に変換する。なお、図4に示すロボットプログラ
ムの場合であれば、座標変換計算が必要な教示点はp
2,p3,p4,p5,p6,p7,p8,p9,p1
0,p11,p12,p13となる。ここで、カメラ座
標系とロボット座標系との変位量は2つの座標系原点の
位置変位量および座標系の姿勢変化量により特定するこ
とができる。これらの値については、あらかじめビデオ
カメラとロボットとの位置関係を正確にキャリブレーシ
ョンして、本実施の形態によるロボットのための画像処
理プログラム自動生成方法を実装したプログラムの設定
ファイルにユーザが設定しておく。
【0030】カメラ座標系とロボット座標系との変位量
から計算されるロボット座標系からカメラ座標系への座
標変換行列をT、ロボット座標系での各教示点の座標値
をXri、カメラ座標系での各教示点の座標値をXciとす
ると、カメラ座標系への変換は次式(1)により行われ
る。
から計算されるロボット座標系からカメラ座標系への座
標変換行列をT、ロボット座標系での各教示点の座標値
をXri、カメラ座標系での各教示点の座標値をXciとす
ると、カメラ座標系への変換は次式(1)により行われ
る。
【0031】
【数1】 上式(1)において、行列Tは同次座標で表現されてい
るものとする。ここで、カメラ座標系はビデオカメラの
投影中心に原点を有しており、本実施の形態ではレンズ
光軸をZ軸、原点を通り画面の水平方向に対応する軸を
X軸、原点を通り画面の垂直方向に対応する軸をY軸と
している。また、画面右方向に対応する向きをX軸の正
方向、画面上方向に対応する向きをY軸の正方向、ビデ
オカメラの前方からビデオカメラに向かう方向をZ軸の
正方向としている。このようにして教示点のロボット座
標系での座標値をビデオカメラの投影中心に原点を有す
る三次元空間の座標系であるカメラ座標系での座標値に
変換した後、ビデオカメラの画面内の二次元空間の座標
系である画面座標系への変換を次式(2)により行う。
るものとする。ここで、カメラ座標系はビデオカメラの
投影中心に原点を有しており、本実施の形態ではレンズ
光軸をZ軸、原点を通り画面の水平方向に対応する軸を
X軸、原点を通り画面の垂直方向に対応する軸をY軸と
している。また、画面右方向に対応する向きをX軸の正
方向、画面上方向に対応する向きをY軸の正方向、ビデ
オカメラの前方からビデオカメラに向かう方向をZ軸の
正方向としている。このようにして教示点のロボット座
標系での座標値をビデオカメラの投影中心に原点を有す
る三次元空間の座標系であるカメラ座標系での座標値に
変換した後、ビデオカメラの画面内の二次元空間の座標
系である画面座標系への変換を次式(2)により行う。
【0032】
【数2】 上式(2)において、Xc =[xc ,yc ,zc ]t は
教示点のカメラ座標系での座標値であり、[xf ,
yf ]t は教示点の画面座標系での座標値である。画面
座標系は画面中央に原点を有しており、本実施の形態で
は原点を通り画面の水平方向に対応する軸をX軸、原点
を通り画面の垂直方向に対応する軸をY軸としている。
また、画面右方向に対応する向きをX軸の正方向、画面
上方向に対応する向きをY軸の正方向としている。
教示点のカメラ座標系での座標値であり、[xf ,
yf ]t は教示点の画面座標系での座標値である。画面
座標系は画面中央に原点を有しており、本実施の形態で
は原点を通り画面の水平方向に対応する軸をX軸、原点
を通り画面の垂直方向に対応する軸をY軸としている。
また、画面右方向に対応する向きをX軸の正方向、画面
上方向に対応する向きをY軸の正方向としている。
【0033】なお、教示点の座標値をロボット座標系か
らカメラ座標系へ変換する関数またはコマンド、および
教示点の座標値をカメラ座標系から画面座標系へ変換す
る関数またはコマンドとして、 xc=TrnRobCam(xr,T), xp=Persp(xc) のような形式の2つの関数またはコマンドをあらかじめ
用意しておけば、図4に示すロボットプログラムの場合
には、図1のステップS104およびステップS105
において生成される画像処理プログラムの前段のプログ
ラムとして、図5に示すプログラムが実行される。な
お、図5の(A)の部分は教示点の座標値をロボット座
標系からカメラ座標系へ変換するプログラムであり、図
5の(B)の部分は教示点の座標値をカメラ座標系から
画面座標系へ変換するプログラムである。
らカメラ座標系へ変換する関数またはコマンド、および
教示点の座標値をカメラ座標系から画面座標系へ変換す
る関数またはコマンドとして、 xc=TrnRobCam(xr,T), xp=Persp(xc) のような形式の2つの関数またはコマンドをあらかじめ
用意しておけば、図4に示すロボットプログラムの場合
には、図1のステップS104およびステップS105
において生成される画像処理プログラムの前段のプログ
ラムとして、図5に示すプログラムが実行される。な
お、図5の(A)の部分は教示点の座標値をロボット座
標系からカメラ座標系へ変換するプログラムであり、図
5の(B)の部分は教示点の座標値をカメラ座標系から
画面座標系へ変換するプログラムである。
【0034】図1のステップS104においては、ステ
ップS103において変換された各教示点の座標値およ
び各教示点の属する曲線の種別に基づいて、ビデオカメ
ラの画面内での直線や円弧等の曲線の位置を検出する位
置検出プログラムを生成する。図3に示すワークの場合
には、ワーク稜線が直線と円弧とに限定されるので、画
面内の限定された領域内に存在する直線を検出するルー
チン、および画面内の限定された領域内に存在する円弧
を検出するルーチンをあらかじめ用意しておき、図1の
ステップS102で求められた直線および円弧を画面内
から順次検出していくプログラムを生成する。すなわ
ち、図4に示すロボットプログラムの場合であれば、あ
らかじめ用意された上述したような専用の画像処理ルー
チンを呼び出し、直線L1から直線L4、および円弧C
1から円弧C4を順次検出するプログラムを生成する。
なお、本実施の形態における画像処理ルーチンでは、ワ
ーク稜線では明るさが急激に変化していることを利用し
て、あらかじめ指定されたワークの個体差の範囲を考慮
した領域内から直線や円弧等の曲線の正確な位置を検出
する。
ップS103において変換された各教示点の座標値およ
び各教示点の属する曲線の種別に基づいて、ビデオカメ
ラの画面内での直線や円弧等の曲線の位置を検出する位
置検出プログラムを生成する。図3に示すワークの場合
には、ワーク稜線が直線と円弧とに限定されるので、画
面内の限定された領域内に存在する直線を検出するルー
チン、および画面内の限定された領域内に存在する円弧
を検出するルーチンをあらかじめ用意しておき、図1の
ステップS102で求められた直線および円弧を画面内
から順次検出していくプログラムを生成する。すなわ
ち、図4に示すロボットプログラムの場合であれば、あ
らかじめ用意された上述したような専用の画像処理ルー
チンを呼び出し、直線L1から直線L4、および円弧C
1から円弧C4を順次検出するプログラムを生成する。
なお、本実施の形態における画像処理ルーチンでは、ワ
ーク稜線では明るさが急激に変化していることを利用し
て、あらかじめ指定されたワークの個体差の範囲を考慮
した領域内から直線や円弧等の曲線の正確な位置を検出
する。
【0035】以下、画面内の限定された領域内に存在す
る直線または円弧を検出するルーチンの詳細について説
明する。
る直線または円弧を検出するルーチンの詳細について説
明する。
【0036】まず、画面内の限定された領域内に存在す
る直線を検出するルーチンについて図6により説明す
る。ここで、画面内の限定された領域とは、両端点が指
定された直線(線分)のまわりのある指定された距離だ
けの幅を持つ領域であり、その形状は例えば長方形であ
る。なお、距離の指定に関してはワークの個体差を考慮
してその範囲をユーザがあらかじめ指定しておく。
る直線を検出するルーチンについて図6により説明す
る。ここで、画面内の限定された領域とは、両端点が指
定された直線(線分)のまわりのある指定された距離だ
けの幅を持つ領域であり、その形状は例えば長方形であ
る。なお、距離の指定に関してはワークの個体差を考慮
してその範囲をユーザがあらかじめ指定しておく。
【0037】画面内の限定された領域が設定された場合
には、図6に示すように、まずその領域内についてエッ
ジ強調処理を行う(ステップS201)。図7にエッジ
強調処理の具体例を示す。図7(a)はビデオカメラに
より撮影された画像の全体を示す図であり、図7(b)
は図7(a)に示した画像の全体に対してエッジ強調処
理を行った結果を示している。なお、図6のステップS
201においては、例えば図7(a)中の点線で囲まれ
た領域についてエッジ強調処理を行う。ここで、エッジ
強調処理とは領域内の各画素について次式(3)のよう
なフィルタリング計算を行うことを意味する。
には、図6に示すように、まずその領域内についてエッ
ジ強調処理を行う(ステップS201)。図7にエッジ
強調処理の具体例を示す。図7(a)はビデオカメラに
より撮影された画像の全体を示す図であり、図7(b)
は図7(a)に示した画像の全体に対してエッジ強調処
理を行った結果を示している。なお、図6のステップS
201においては、例えば図7(a)中の点線で囲まれ
た領域についてエッジ強調処理を行う。ここで、エッジ
強調処理とは領域内の各画素について次式(3)のよう
なフィルタリング計算を行うことを意味する。
【0038】
【数3】 上式(3)において、filter[i][j]はフィ
ルタのパターンであり、本実施の形態ではエッジの傾き
に垂直な方向に傾けたガウシアン関数を微分したもの
(DoG:Derivative of Gaussian)とする。なお、エ
ッジの傾きは図1のステップS103までに算出された
線分の両端点の座標値から算出する。このようなエッジ
強調処理を行うことにより、図7(b)に示すようにエ
ッジ上の画素の値は大きくなり、それ以外の画素の値は
小さくなる。
ルタのパターンであり、本実施の形態ではエッジの傾き
に垂直な方向に傾けたガウシアン関数を微分したもの
(DoG:Derivative of Gaussian)とする。なお、エ
ッジの傾きは図1のステップS103までに算出された
線分の両端点の座標値から算出する。このようなエッジ
強調処理を行うことにより、図7(b)に示すようにエ
ッジ上の画素の値は大きくなり、それ以外の画素の値は
小さくなる。
【0039】エッジ強調処理が施された画像が得られた
ら、直線の方程式をハフ(Hough )変換により求める。
ハフ変換は、直線や楕円等の方程式を求める代表的な手
法の1つであり、ノイズのある画面からも安定して直線
や楕円等を検出できるという特徴を有している。
ら、直線の方程式をハフ(Hough )変換により求める。
ハフ変換は、直線や楕円等の方程式を求める代表的な手
法の1つであり、ノイズのある画面からも安定して直線
や楕円等を検出できるという特徴を有している。
【0040】ハフにより提案された直線検出用のハフ変
換は、直線を傾きaおよび切片bの2つのパラメータ
(a,b)により、 y=ax+b … (4) と表現し、特徴点(Xi ,Yi )が与えられたときに、
直線のパラメータ(a,b)によって張られるパラメー
タ空間に、 b=Yi −aXi … (5) により表される軌跡を描くようにする。そして、全ての
特徴点について軌跡を描いた後、パラメータ空間中で多
くの軌跡が交わる点を抽出することにより、その点に対
応する直線が画像空間中に存在するものとみなす。
換は、直線を傾きaおよび切片bの2つのパラメータ
(a,b)により、 y=ax+b … (4) と表現し、特徴点(Xi ,Yi )が与えられたときに、
直線のパラメータ(a,b)によって張られるパラメー
タ空間に、 b=Yi −aXi … (5) により表される軌跡を描くようにする。そして、全ての
特徴点について軌跡を描いた後、パラメータ空間中で多
くの軌跡が交わる点を抽出することにより、その点に対
応する直線が画像空間中に存在するものとみなす。
【0041】なお、実際にプログラムによりハフ変換を
行う場合には、パラメータ空間を「セル」と呼ばれる多
数の要素に分解し、各特徴点についての軌跡を描く際
に、パラメータ空間で軌跡が通過する各セルの投票度数
をエッジ強調処理が施された結果の値だけ増やすことに
より、よりエッジらしい点にはより大きな重みが与えら
れるようにする。このような処理が図6のステップS2
02の処理である。
行う場合には、パラメータ空間を「セル」と呼ばれる多
数の要素に分解し、各特徴点についての軌跡を描く際
に、パラメータ空間で軌跡が通過する各セルの投票度数
をエッジ強調処理が施された結果の値だけ増やすことに
より、よりエッジらしい点にはより大きな重みが与えら
れるようにする。このような処理が図6のステップS2
02の処理である。
【0042】画面内の限定された領域内の全ての特徴点
についての投票が終了した後、投票度数が最も大きい値
を有するセルを抽出することにより、直線のパラメータ
(a,b)が求められる(ステップS203)。なお、
ステップS203においては、領域内の全ての特徴点に
ついて投票を行うのではなく、ステップS201におい
てエッジ強調処理が施されてよりエッジらしい点である
とみなされた特徴点のみに限定して投票を行うようにし
てもよい。
についての投票が終了した後、投票度数が最も大きい値
を有するセルを抽出することにより、直線のパラメータ
(a,b)が求められる(ステップS203)。なお、
ステップS203においては、領域内の全ての特徴点に
ついて投票を行うのではなく、ステップS201におい
てエッジ強調処理が施されてよりエッジらしい点である
とみなされた特徴点のみに限定して投票を行うようにし
てもよい。
【0043】上式(4)のようにパラメータ(a,b)
により画像空間中の直線を表現すると、画面内で直線が
垂直に近づくにつれてこれらのパラメータの値が無限大
になるので、パラメータ空間が有界にならない。この問
題を解決するための一般的な方法は、画像空間中の直線
を垂角θと原点からの符号付き距離ρを用いて、 ρ=xcosθ+ysinθ … (6) と表現し、パラメータ空間としては(ρ,θ)空間を用
いることである。図8(a)は直線に対する(ρ,θ)
パラメータ空間の設定の仕方を示し、図8(b)はハフ
変換による直線のパラメータ(ρ,θ)の決定の仕方を
示す。本実施の形態においては、両端点が指定された直
線(線分)のまわりの長方形の領域内の各点について、
その点でのエッジ強調処理が施された結果の値を、上式
(6)により計算される(ρ,θ)パラメータ空間での
直線上の各セルについて加算する。これにより、エッジ
強調処理が施された結果の値が大きい点をより多く通る
直線が選び出されることになる。
により画像空間中の直線を表現すると、画面内で直線が
垂直に近づくにつれてこれらのパラメータの値が無限大
になるので、パラメータ空間が有界にならない。この問
題を解決するための一般的な方法は、画像空間中の直線
を垂角θと原点からの符号付き距離ρを用いて、 ρ=xcosθ+ysinθ … (6) と表現し、パラメータ空間としては(ρ,θ)空間を用
いることである。図8(a)は直線に対する(ρ,θ)
パラメータ空間の設定の仕方を示し、図8(b)はハフ
変換による直線のパラメータ(ρ,θ)の決定の仕方を
示す。本実施の形態においては、両端点が指定された直
線(線分)のまわりの長方形の領域内の各点について、
その点でのエッジ強調処理が施された結果の値を、上式
(6)により計算される(ρ,θ)パラメータ空間での
直線上の各セルについて加算する。これにより、エッジ
強調処理が施された結果の値が大きい点をより多く通る
直線が選び出されることになる。
【0044】次に、画面内の限定された領域内に存在す
る円弧を検出するルーチンについて直線の場合と同様に
図6により説明する。円弧の場合には、未知の値は円弧
中心の座標値(x0,y0)および円弧の半径rの3つ
であるので、円弧中心の座標値(x0,y0)および半
径rの値をパラメータとする3次元の(x0,y0,
r)パラメータ空間において上述した直線の場合と同様
の投票を行うことにより、円弧の方程式すなわち円弧の
位置を決定する。
る円弧を検出するルーチンについて直線の場合と同様に
図6により説明する。円弧の場合には、未知の値は円弧
中心の座標値(x0,y0)および円弧の半径rの3つ
であるので、円弧中心の座標値(x0,y0)および半
径rの値をパラメータとする3次元の(x0,y0,
r)パラメータ空間において上述した直線の場合と同様
の投票を行うことにより、円弧の方程式すなわち円弧の
位置を決定する。
【0045】エッジ強調処理は上述した直線の場合と同
様に、DoGフィルタを図1のステップS103までに
算出された円弧の両端点の座標値から算出したエッジの
傾きと直角な方向に設定したフィルタをかける(ステッ
プS201)。ただし、円弧の場合には、直線の場合と
は異なりエッジの傾きが連続的に変化していくので、各
点のエッジ強調処理を行う際に、ステップS103まで
に算出された教示点の座標値から算出できる円弧の方程
式を用いて、その円弧上の特定の点近傍での円弧の傾き
を計算し、DoGフィルタの傾きを設定している。
様に、DoGフィルタを図1のステップS103までに
算出された円弧の両端点の座標値から算出したエッジの
傾きと直角な方向に設定したフィルタをかける(ステッ
プS201)。ただし、円弧の場合には、直線の場合と
は異なりエッジの傾きが連続的に変化していくので、各
点のエッジ強調処理を行う際に、ステップS103まで
に算出された教示点の座標値から算出できる円弧の方程
式を用いて、その円弧上の特定の点近傍での円弧の傾き
を計算し、DoGフィルタの傾きを設定している。
【0046】エッジ強調処理が行われた後は、限定され
た領域内の各点Pについて次のような処理を行う。すな
わち、(x0,y0,r)パラメータ空間の(x0,y
0)平面の各セルについて、点Pが円弧上の点であると
すると半径がいくらになるかを次式(7)により計算
し、該当するパラメータ空間のセル(x0,y0,
ro2)の投票度数を点Pでのエッジ強調処理が施された
結果の値だけ増やす(ステップS202)。なお、ro2
は(x0,y0,r)パラメータ空間で次式(7)によ
り計算されたro を含むセルの代表値である。
た領域内の各点Pについて次のような処理を行う。すな
わち、(x0,y0,r)パラメータ空間の(x0,y
0)平面の各セルについて、点Pが円弧上の点であると
すると半径がいくらになるかを次式(7)により計算
し、該当するパラメータ空間のセル(x0,y0,
ro2)の投票度数を点Pでのエッジ強調処理が施された
結果の値だけ増やす(ステップS202)。なお、ro2
は(x0,y0,r)パラメータ空間で次式(7)によ
り計算されたro を含むセルの代表値である。
【数4】
【0047】画面内の限定された領域内の全ての特徴点
についての投票が終了した後、投票度数が最も大きい値
を有するセルを抽出することにより、円弧のパラメータ
(x0,y0,r)が求められる(ステップS20
3)。図9(a)は円弧に対する(x0,y0,r)パ
ラメータ空間の設定の仕方を示し、図9(b)はハフ変
換による円弧のパラメータ(x0,y0,r)の決定の
仕方を示す。
についての投票が終了した後、投票度数が最も大きい値
を有するセルを抽出することにより、円弧のパラメータ
(x0,y0,r)が求められる(ステップS20
3)。図9(a)は円弧に対する(x0,y0,r)パ
ラメータ空間の設定の仕方を示し、図9(b)はハフ変
換による円弧のパラメータ(x0,y0,r)の決定の
仕方を示す。
【0048】なお、上述した円弧のパラメータの算出方
法は、ビデオカメラがワークの真上に設置されている場
合の方法であり、ビデオカメラがワークの真上に設置さ
れていない場合には円弧が楕円として見えるので、次の
ようにして円弧のパラメータを求める。
法は、ビデオカメラがワークの真上に設置されている場
合の方法であり、ビデオカメラがワークの真上に設置さ
れていない場合には円弧が楕円として見えるので、次の
ようにして円弧のパラメータを求める。
【0049】まずはじめに、図1のステップS102に
おいて算出されたロボット座標系での円弧上の3点の座
標値から3点の存在する平面の方程式、すなわち次式
(8)のパラメータa,b,c,dの値を算出する。
おいて算出されたロボット座標系での円弧上の3点の座
標値から3点の存在する平面の方程式、すなわち次式
(8)のパラメータa,b,c,dの値を算出する。
【0050】ax+by+cz+d=0 … (8) 上式(8)において、パラメータa,b,c,dの値は
ロボット座標系での値であるので、以後の計算のために
これらの値をカメラ座標系での値に変換しておく。ま
た、上述した3点を通る円弧の中心位置は上述したワー
ク平面上に存在するはずであるので、円弧の中心位置か
ら3点までの距離は等しいという関係を表す2つの方程
式、および円弧の中心は既知のワーク平面上にあるとい
う関係を表す方程式により円弧中心の座標値を算出する
ことができ、これにより円弧の半径も容易に算出するこ
とができる。なお、円弧中心の座標値を(xcp,ycp,
zcp)とすると、次式(9)により円弧中心の座標値を
算出することができる。
ロボット座標系での値であるので、以後の計算のために
これらの値をカメラ座標系での値に変換しておく。ま
た、上述した3点を通る円弧の中心位置は上述したワー
ク平面上に存在するはずであるので、円弧の中心位置か
ら3点までの距離は等しいという関係を表す2つの方程
式、および円弧の中心は既知のワーク平面上にあるとい
う関係を表す方程式により円弧中心の座標値を算出する
ことができ、これにより円弧の半径も容易に算出するこ
とができる。なお、円弧中心の座標値を(xcp,ycp,
zcp)とすると、次式(9)により円弧中心の座標値を
算出することができる。
【数5】
【0051】このようにして算出された円弧の方程式か
ら、その円弧上の点の座標値を1度ごとに360点につ
いて計算し、各点について画面座標系での座標値に変換
して配列xfcirleに保存する。
ら、その円弧上の点の座標値を1度ごとに360点につ
いて計算し、各点について画面座標系での座標値に変換
して配列xfcirleに保存する。
【0052】次に、未知の値としてのカメラ座標系での
円弧中心の座標値(x0,y0)および円弧の半径rを
パラメータとする3次元の(x0,y0,r)パラメー
タ空間において上述した直線および円弧の場合と同様の
投票を行うことにより、円弧の方程式すなわち円弧の位
置が決定される。
円弧中心の座標値(x0,y0)および円弧の半径rを
パラメータとする3次元の(x0,y0,r)パラメー
タ空間において上述した直線および円弧の場合と同様の
投票を行うことにより、円弧の方程式すなわち円弧の位
置が決定される。
【0053】エッジ強調処理は上述した直線および円弧
の場合と同様に、DoGフィルタをステップS103ま
でに算出された円弧の両端点の座標値から算出したエッ
ジの傾きと直角な方向に設定したフィルタをかける(ス
テップS201)。なお、エッジの傾きが連続的に変化
していくのに対応したDoGフィルタの傾きの設定は、
各点でのフィルタの傾きの設定の際に上述した配列xf
cirleの中でその点に最も近傍に位置する座標値を
探し、その前後の配列要素の値から円弧の傾きを算出し
て、それと直角に設定する。
の場合と同様に、DoGフィルタをステップS103ま
でに算出された円弧の両端点の座標値から算出したエッ
ジの傾きと直角な方向に設定したフィルタをかける(ス
テップS201)。なお、エッジの傾きが連続的に変化
していくのに対応したDoGフィルタの傾きの設定は、
各点でのフィルタの傾きの設定の際に上述した配列xf
cirleの中でその点に最も近傍に位置する座標値を
探し、その前後の配列要素の値から円弧の傾きを算出し
て、それと直角に設定する。
【0054】エッジ強調処理が行われた後は、限定され
た領域内の各点Pについて次のような処理を行う。すな
わち、各点Pについてその画面座標系での座標値と平面
の方程式とからカメラ座標系での三次元座標値を算出す
る。(x0,y0,r)パラメータ空間の(x0,y
0)平面の各セルについて、点Pが円弧上の点であると
すると半径がいくらになるかを次式(10)により計算
し、該当するパラメータ空間のセル(x0,y0,
ro2)の投票度数を点Pでのエッジ強調処理が行われた
結果の値だけ増やす(ステップS202)。なお、ro2
は(x0,y0,r)パラメータ空間で次式(10)に
より計算されたro を含むセルの代表値である。また、
次式(10)におけるz0の値は(x0,y0)の値と
平面の方程式とから算出される。
た領域内の各点Pについて次のような処理を行う。すな
わち、各点Pについてその画面座標系での座標値と平面
の方程式とからカメラ座標系での三次元座標値を算出す
る。(x0,y0,r)パラメータ空間の(x0,y
0)平面の各セルについて、点Pが円弧上の点であると
すると半径がいくらになるかを次式(10)により計算
し、該当するパラメータ空間のセル(x0,y0,
ro2)の投票度数を点Pでのエッジ強調処理が行われた
結果の値だけ増やす(ステップS202)。なお、ro2
は(x0,y0,r)パラメータ空間で次式(10)に
より計算されたro を含むセルの代表値である。また、
次式(10)におけるz0の値は(x0,y0)の値と
平面の方程式とから算出される。
【数6】
【0055】画面内の限定された領域内の全ての特徴点
についての投票が終了した後、投票度数が最も大きい値
を有するセルを抽出することにより、円弧のパラメータ
(x0,y0,r)が求められる(ステップS20
3)。
についての投票が終了した後、投票度数が最も大きい値
を有するセルを抽出することにより、円弧のパラメータ
(x0,y0,r)が求められる(ステップS20
3)。
【0056】なお、以上に説明した直線を検出するルー
チンおよび円弧を検出するルーチンについてはそれぞ
れ、 l=line(x1,x2,area), c=circle(x1,x2,x3,area) のような形式の関数またはコマンドを用意しておき、図
1のステップS104において位置検出プログラムを生
成する際に、対応する引数を指定して関数またはコマン
ドを順次呼び出すプログラムを生成する。これらの関数
またはコマンドにおいて、l,cはそれぞれ、算出され
た直線のパラメータ、円弧のパラメータを格納するため
の配列である。また、line()の引数であるx1,
x2はステップS103までに算出された線分の両端点
の画面座標系での(x,y)座標値であり、circl
e()の引数であるx1,x2,x3は同様にステップ
S103までに算出された円弧の両端点および途中の点
の画面座標系での(x,y)座標値である。なお、ar
eaは線分または円弧のまわりの画像処理が行われる領
域の幅であり、ワークの個体差等を考慮してマスタワー
クについてティーチングされたロボットプログラムの中
での教示点の座標値からワークごとに教示点の位置がど
の程度変動する可能性があるかを検討してユーザが設定
する。
チンおよび円弧を検出するルーチンについてはそれぞ
れ、 l=line(x1,x2,area), c=circle(x1,x2,x3,area) のような形式の関数またはコマンドを用意しておき、図
1のステップS104において位置検出プログラムを生
成する際に、対応する引数を指定して関数またはコマン
ドを順次呼び出すプログラムを生成する。これらの関数
またはコマンドにおいて、l,cはそれぞれ、算出され
た直線のパラメータ、円弧のパラメータを格納するため
の配列である。また、line()の引数であるx1,
x2はステップS103までに算出された線分の両端点
の画面座標系での(x,y)座標値であり、circl
e()の引数であるx1,x2,x3は同様にステップ
S103までに算出された円弧の両端点および途中の点
の画面座標系での(x,y)座標値である。なお、ar
eaは線分または円弧のまわりの画像処理が行われる領
域の幅であり、ワークの個体差等を考慮してマスタワー
クについてティーチングされたロボットプログラムの中
での教示点の座標値からワークごとに教示点の位置がど
の程度変動する可能性があるかを検討してユーザが設定
する。
【0057】なお、図4に示すロボットプログラムの場
合には、直線L1から直線L4、円弧C1から円弧C4
までを検出する位置検出プログラムは図10に示すもの
となる。
合には、直線L1から直線L4、円弧C1から円弧C4
までを検出する位置検出プログラムは図10に示すもの
となる。
【0058】図10において、xp2,xp3等は図1
のステップS103までに算出された教示点P2,P3
の画面座標系での座標値である。なお、2本の直線の交
点を求める際に設定される直線を検出する領域(エッジ
検出領域1およびエッジ検出領域2)の具体例を図12
に示す。
のステップS103までに算出された教示点P2,P3
の画面座標系での座標値である。なお、2本の直線の交
点を求める際に設定される直線を検出する領域(エッジ
検出領域1およびエッジ検出領域2)の具体例を図12
に示す。
【0059】図1のステップS105においては、ステ
ップS104において生成された位置検出プログラムに
より検出される直線や円弧等の曲線の位置からステップ
S101およびステップS102において抽出された各
教示点のビデオカメラの画面内での実際の位置を算出す
る位置算出プログラムと、この位置算出プログラムによ
り算出される各教示点の画面座標系での座標値をロボッ
ト座標系での座標値に変換する座標変換プログラムとを
生成する。ここで、教示点の種別は上述したように、
(1)直線と直線との交点、(2)直線と円弧との境
界、および(3)円弧の途中の点の3通りに限定され
る。このため、これらの各場合について、 xo=clines(l1,l2,xp1,xp2,x
p3), xo=clinecircle(l1,c1,xp1,
xp2,xp3,xp4), xo=pcirle(c1,xp1,xp2) のような形式の関数またはコマンドを用意しておく。こ
れらの関数またはコマンドにおいて、xoは算出された
教示点の画面座標系での(x,y)座標値である。l
1,l2はステップS104において生成された位置検
出プログラムにより検出される直線のパラメータ(a,
b)または(ρ,θ)を含む配列であり、c1は同様に
位置検出プログラムにより検出される円弧の中心位置
(x0,y0)および半径の値rを含む配列である。ま
た、clines()におけるxp1,xp2,xp3
は引数で指定された2つの線分の端点の画面座標系での
座標値であり、clinecircle()におけるx
p1,xp2,xp3,xp4は引数で指定された線分
の両端点と円弧の両端点および途中の点の画面座標系で
の座標値であり、pcirle()におけるxp1,x
p2は引数で指定された円弧の両端点の画面座標系での
座標値であり、全ての引数で指定した座標値はステップ
S103において変換して求められた値を用いる。これ
らの引数は、ステップS102において各教示点が含ま
れる動作命令の種別から各教示点が直線や円弧等の曲線
のうちどのような曲線に属するかを判別するとともに、
この判別された曲線における端点や途中の点等の曲線の
範囲を特定する教示点の座標値を求めているので、容易
に設定することが可能である。なお、図4に示すロボッ
トプログラムの場合には、直線や円弧等の曲線の位置か
らロボットプログラムの中から読み出された各教示点の
ビデオカメラの画面内での実際の位置を算出する位置算
出プログラムは図11に示すものとなる。
ップS104において生成された位置検出プログラムに
より検出される直線や円弧等の曲線の位置からステップ
S101およびステップS102において抽出された各
教示点のビデオカメラの画面内での実際の位置を算出す
る位置算出プログラムと、この位置算出プログラムによ
り算出される各教示点の画面座標系での座標値をロボッ
ト座標系での座標値に変換する座標変換プログラムとを
生成する。ここで、教示点の種別は上述したように、
(1)直線と直線との交点、(2)直線と円弧との境
界、および(3)円弧の途中の点の3通りに限定され
る。このため、これらの各場合について、 xo=clines(l1,l2,xp1,xp2,x
p3), xo=clinecircle(l1,c1,xp1,
xp2,xp3,xp4), xo=pcirle(c1,xp1,xp2) のような形式の関数またはコマンドを用意しておく。こ
れらの関数またはコマンドにおいて、xoは算出された
教示点の画面座標系での(x,y)座標値である。l
1,l2はステップS104において生成された位置検
出プログラムにより検出される直線のパラメータ(a,
b)または(ρ,θ)を含む配列であり、c1は同様に
位置検出プログラムにより検出される円弧の中心位置
(x0,y0)および半径の値rを含む配列である。ま
た、clines()におけるxp1,xp2,xp3
は引数で指定された2つの線分の端点の画面座標系での
座標値であり、clinecircle()におけるx
p1,xp2,xp3,xp4は引数で指定された線分
の両端点と円弧の両端点および途中の点の画面座標系で
の座標値であり、pcirle()におけるxp1,x
p2は引数で指定された円弧の両端点の画面座標系での
座標値であり、全ての引数で指定した座標値はステップ
S103において変換して求められた値を用いる。これ
らの引数は、ステップS102において各教示点が含ま
れる動作命令の種別から各教示点が直線や円弧等の曲線
のうちどのような曲線に属するかを判別するとともに、
この判別された曲線における端点や途中の点等の曲線の
範囲を特定する教示点の座標値を求めているので、容易
に設定することが可能である。なお、図4に示すロボッ
トプログラムの場合には、直線や円弧等の曲線の位置か
らロボットプログラムの中から読み出された各教示点の
ビデオカメラの画面内での実際の位置を算出する位置算
出プログラムは図11に示すものとなる。
【0060】図1のステップS105においてはさら
に、図11に示す位置算出プログラムにより算出される
画面座標系でのxf2〜xf13の値をカメラ座標系で
の値に変換し、これらの変換された値をロボット座標系
に変換する座標変換プログラムを生成する。ここで、教
示点の座標値を画面座標系からカメラ座標系へ変換する
関数またはコマンド、および教示点の座標値をカメラ座
標系からロボット座標系へ変換する関数またはコマンド
として、 xc=TrnCam(xf,plane), xr=TrnCamRob(xc,T) のような形式の2つの関数またはコマンドをあらかじめ
用意しておく。これらの関数またはコマンドにおいて、
planeはその点がのっている平面の方程式の係数ベ
クトルであり、点が円弧の一部であれば、平面の方程式
は上述したように算出されているので、その値を用い
る。一方、点が線分の一部であれば、線分の両端点およ
びステップS101で求められた教示点の中での隣接点
も含めて3点とし、平面の方程式を算出して用いる。ま
た、Tはカメラ座標系からロボット座標系への同次表現
の変換行列である。図4に示すロボットプログラムの場
合には、教示点の画面座標系での座標値をロボット座標
系での座標値に変換する座標変換プログラムは図13に
示すものとなる。なお、図13の(E)の部分は教示点
の座標値を画面座標系からカメラ座標系へ変換するプロ
グラムであり、図13の(F)の部分は教示点の座標値
をカメラ座標系からロボット座標系へ変換するプログラ
ムである。
に、図11に示す位置算出プログラムにより算出される
画面座標系でのxf2〜xf13の値をカメラ座標系で
の値に変換し、これらの変換された値をロボット座標系
に変換する座標変換プログラムを生成する。ここで、教
示点の座標値を画面座標系からカメラ座標系へ変換する
関数またはコマンド、および教示点の座標値をカメラ座
標系からロボット座標系へ変換する関数またはコマンド
として、 xc=TrnCam(xf,plane), xr=TrnCamRob(xc,T) のような形式の2つの関数またはコマンドをあらかじめ
用意しておく。これらの関数またはコマンドにおいて、
planeはその点がのっている平面の方程式の係数ベ
クトルであり、点が円弧の一部であれば、平面の方程式
は上述したように算出されているので、その値を用い
る。一方、点が線分の一部であれば、線分の両端点およ
びステップS101で求められた教示点の中での隣接点
も含めて3点とし、平面の方程式を算出して用いる。ま
た、Tはカメラ座標系からロボット座標系への同次表現
の変換行列である。図4に示すロボットプログラムの場
合には、教示点の画面座標系での座標値をロボット座標
系での座標値に変換する座標変換プログラムは図13に
示すものとなる。なお、図13の(E)の部分は教示点
の座標値を画面座標系からカメラ座標系へ変換するプロ
グラムであり、図13の(F)の部分は教示点の座標値
をカメラ座標系からロボット座標系へ変換するプログラ
ムである。
【0061】図14は本発明によるロボットプログラム
自動修正方法の一実施の形態を説明するための図であ
る。図14に示すように、本発明によるロボットプログ
ラム自動修正方法は、上述したロボットのための画像処
理プログラム自動生成方法により生成された画像処理プ
ログラムを用いて、ビデオカメラにより撮影された画像
から実際のワークの教示点の座標値を求め、さらにこの
求められた実際のワークの教示点の座標値に基づいて、
ロボットプログラムにあらかじめ内蔵された各教示点の
座標値を修正するものである。なお、ステップS301
〜ステップS305のそれぞれの処理は図1のステップ
S101〜ステップS105の対応するそれぞれの処理
と同一であるので、その詳細な説明は省略する。
自動修正方法の一実施の形態を説明するための図であ
る。図14に示すように、本発明によるロボットプログ
ラム自動修正方法は、上述したロボットのための画像処
理プログラム自動生成方法により生成された画像処理プ
ログラムを用いて、ビデオカメラにより撮影された画像
から実際のワークの教示点の座標値を求め、さらにこの
求められた実際のワークの教示点の座標値に基づいて、
ロボットプログラムにあらかじめ内蔵された各教示点の
座標値を修正するものである。なお、ステップS301
〜ステップS305のそれぞれの処理は図1のステップ
S101〜ステップS105の対応するそれぞれの処理
と同一であるので、その詳細な説明は省略する。
【0062】図14に示すように、まず、あらかじめマ
スタワークについてティーチングされたロボットプログ
ラムの中から溶接作業や、面取り作業等の作業対象であ
るワークとの接触作業を行う際のロボット座標系に基づ
く動作命令を抽出し、この抽出された動作命令から正確
な位置計測が必要な教示点を抽出する(ステップS30
1)。
スタワークについてティーチングされたロボットプログ
ラムの中から溶接作業や、面取り作業等の作業対象であ
るワークとの接触作業を行う際のロボット座標系に基づ
く動作命令を抽出し、この抽出された動作命令から正確
な位置計測が必要な教示点を抽出する(ステップS30
1)。
【0063】続いて、ステップS301において抽出さ
れた各教示点について、それぞれの教示点を含む動作命
令の種別から各教示点が直線や円弧等の曲線のうちどの
ような曲線に属するかを判別するとともに、この判別さ
れた曲線における端点や途中の点等の曲線の範囲を特定
する教示点の座標値をロボットプログラムの中から読み
出す(ステップS302)。
れた各教示点について、それぞれの教示点を含む動作命
令の種別から各教示点が直線や円弧等の曲線のうちどの
ような曲線に属するかを判別するとともに、この判別さ
れた曲線における端点や途中の点等の曲線の範囲を特定
する教示点の座標値をロボットプログラムの中から読み
出す(ステップS302)。
【0064】その後、ステップS301において抽出さ
れた教示点のロボット座標系での座標値、およびステッ
プS302において抽出されたその他の教示点のロボッ
ト座標系での座標値を画面座標系での座標値に変換する
(ステップS303)。すなわち、ロボットプログラム
で記述されている座標値はロボット座標系での座標値で
あるので、これらの座標値をロボット座標系とカメラ座
標系との変位量を用いて画面座標系での座標値に変換す
る。なお、ロボット座標系とカメラ座標系との変位量は
あらかじめユーザが設定しておく。
れた教示点のロボット座標系での座標値、およびステッ
プS302において抽出されたその他の教示点のロボッ
ト座標系での座標値を画面座標系での座標値に変換する
(ステップS303)。すなわち、ロボットプログラム
で記述されている座標値はロボット座標系での座標値で
あるので、これらの座標値をロボット座標系とカメラ座
標系との変位量を用いて画面座標系での座標値に変換す
る。なお、ロボット座標系とカメラ座標系との変位量は
あらかじめユーザが設定しておく。
【0065】そして、ステップS303において変換さ
れた各教示点の座標値および各教示点の属する曲線の種
別に基づいてビデオカメラの画面内での直線や円弧等の
曲線の位置を検出する位置検出プログラムを生成すると
ともに(ステップS304)、ステップS304におい
て生成された位置検出プログラムにより検出される直線
や円弧等の曲線の位置からステップS101およびステ
ップS102において抽出された各教示点のビデオカメ
ラの画面内での実際の位置を算出する位置算出プログラ
ムと、この位置算出プログラムにより算出される各教示
点の画面座標系での座標値をロボット座標系での座標値
へ変換する座標変換プログラムとを生成する(ステップ
S305)。
れた各教示点の座標値および各教示点の属する曲線の種
別に基づいてビデオカメラの画面内での直線や円弧等の
曲線の位置を検出する位置検出プログラムを生成すると
ともに(ステップS304)、ステップS304におい
て生成された位置検出プログラムにより検出される直線
や円弧等の曲線の位置からステップS101およびステ
ップS102において抽出された各教示点のビデオカメ
ラの画面内での実際の位置を算出する位置算出プログラ
ムと、この位置算出プログラムにより算出される各教示
点の画面座標系での座標値をロボット座標系での座標値
へ変換する座標変換プログラムとを生成する(ステップ
S305)。
【0066】最後に、ステップS304およびステップ
S305において生成された画像処理プログラムを実行
することにより、ビデオカメラにより撮影された画像か
ら実際のワークの教示点の座標値を求める。そして、こ
のようにして求められた実際のワークの教示点の座標値
に基づいて、あらかじめロボットプログラムに内蔵され
た各教示点の座標値を修正する(ステップS306)。
S305において生成された画像処理プログラムを実行
することにより、ビデオカメラにより撮影された画像か
ら実際のワークの教示点の座標値を求める。そして、こ
のようにして求められた実際のワークの教示点の座標値
に基づいて、あらかじめロボットプログラムに内蔵され
た各教示点の座標値を修正する(ステップS306)。
【0067】図4に示すロボットプログラムの場合に
は、図15に示すように、ロボットプログラムの13行
目と14行目との間に、生成された画像処理プログラム
(A)〜(F)(図5、図10、図11および図13参
照)と、この画像処理プログラムを実行して求められた
実際のワークの教示点xr2〜xr13の座標値をあら
かじめ内蔵された対応する教示点p2〜p13の座標値
として代入するプログラム(図15の(G)の部分参
照)とを組み込むようにする。なお、図15に示すよう
に生成された画像処理プログラムを直接ロボットプログ
ラムの中に組み込む他、画像処理プログラムをロボット
プログラムとは独立して実行し、その実行結果として得
られた座標値によってロボットプログラムの中のあらか
じめ内蔵された教示点の座標値を修正するようにしても
よい。
は、図15に示すように、ロボットプログラムの13行
目と14行目との間に、生成された画像処理プログラム
(A)〜(F)(図5、図10、図11および図13参
照)と、この画像処理プログラムを実行して求められた
実際のワークの教示点xr2〜xr13の座標値をあら
かじめ内蔵された対応する教示点p2〜p13の座標値
として代入するプログラム(図15の(G)の部分参
照)とを組み込むようにする。なお、図15に示すよう
に生成された画像処理プログラムを直接ロボットプログ
ラムの中に組み込む他、画像処理プログラムをロボット
プログラムとは独立して実行し、その実行結果として得
られた座標値によってロボットプログラムの中のあらか
じめ内蔵された教示点の座標値を修正するようにしても
よい。
【0068】このように、本発明のロボットプログラム
自動修正方法の一実施の形態によれば、ステップS30
1〜ステップS305により生成された画像処理プログ
ラムを用いて、ビデオカメラにより撮影された画像から
実際のワークの教示点の座標値を各ワークごとに求め、
さらにこの求められたワークの実際の教示点の座標値に
基づいて、あらかじめ図4に示すようなロボットプログ
ラムに内蔵された各教示点の座標値を自動的に修正する
(ステップS306)ので、1つのマスタワークについ
てティーチングを行ってロボットプログラムを作成する
だけでワークごとの個体差を吸収するようにロボットプ
ログラムを自動的に修正することができる。
自動修正方法の一実施の形態によれば、ステップS30
1〜ステップS305により生成された画像処理プログ
ラムを用いて、ビデオカメラにより撮影された画像から
実際のワークの教示点の座標値を各ワークごとに求め、
さらにこの求められたワークの実際の教示点の座標値に
基づいて、あらかじめ図4に示すようなロボットプログ
ラムに内蔵された各教示点の座標値を自動的に修正する
(ステップS306)ので、1つのマスタワークについ
てティーチングを行ってロボットプログラムを作成する
だけでワークごとの個体差を吸収するようにロボットプ
ログラムを自動的に修正することができる。
【0069】
【発明の効果】以上説明したように、本発明によれば、
マスタワークについてティーチングされたロボットプロ
グラムからワークごとの個体差に対応するための画像処
理プログラムを自動的に生成することができる。また、
このようにして生成された画像処理プログラムを用い
て、ロボットプログラムにあらかじめ内蔵された各教示
点の座標値を自動的に修正するので、1つのマスタワー
クについてティーチングを行ってロボットプログラムを
作成するだけでワークごとの個体差を吸収するようにロ
ボットプログラムを自動的に修正することができ、この
ため仮に画像処理に関しての十分な知識を有しない人で
あっても容易に画像処理を利用してワークの個体差を吸
収した形でロボットを動作させることができる。
マスタワークについてティーチングされたロボットプロ
グラムからワークごとの個体差に対応するための画像処
理プログラムを自動的に生成することができる。また、
このようにして生成された画像処理プログラムを用い
て、ロボットプログラムにあらかじめ内蔵された各教示
点の座標値を自動的に修正するので、1つのマスタワー
クについてティーチングを行ってロボットプログラムを
作成するだけでワークごとの個体差を吸収するようにロ
ボットプログラムを自動的に修正することができ、この
ため仮に画像処理に関しての十分な知識を有しない人で
あっても容易に画像処理を利用してワークの個体差を吸
収した形でロボットを動作させることができる。
【図1】本発明によるロボットのための画像処理プログ
ラム自動生成方法の一実施の形態を説明するための図で
ある。
ラム自動生成方法の一実施の形態を説明するための図で
ある。
【図2】本発明によるロボットのための画像処理プログ
ラム自動生成方法を実現する装置の一実施の形態を示す
図である。
ラム自動生成方法を実現する装置の一実施の形態を示す
図である。
【図3】ワークの一例およびそのワークの教示点を示す
図である。
図である。
【図4】図3に示すワークのエッジの面取り作業を行う
ためのロボットプログラムを示す図である。
ためのロボットプログラムを示す図である。
【図5】教示点の座標値をロボット座標系からカメラ座
標系へ変換するプログラム、および教示点の座標値をカ
メラ座標系から画面座標系へ変換するプログラムを示す
図である。
標系へ変換するプログラム、および教示点の座標値をカ
メラ座標系から画面座標系へ変換するプログラムを示す
図である。
【図6】画面内の限定された領域内に存在する直線や円
弧等の曲線を検出するルーチンを説明するための図であ
る。
弧等の曲線を検出するルーチンを説明するための図であ
る。
【図7】ビデオカメラにより撮影された画像に対するエ
ッジ強調処理の具体例を示す図である。
ッジ強調処理の具体例を示す図である。
【図8】直線に対する(ρ,θ)パラメータ空間の設定
の仕方(図8(a))、およびハフ変換による直線のパ
ラメータ(ρ,θ)の決定の仕方(図8(b))を示す
図である。
の仕方(図8(a))、およびハフ変換による直線のパ
ラメータ(ρ,θ)の決定の仕方(図8(b))を示す
図である。
【図9】円弧に対する(x0,y0,r)パラメータ空
間の設定の仕方(図9(a))、およびハフ変換による
円弧のパラメータの決定の仕方(図9(b))を示す図
である。
間の設定の仕方(図9(a))、およびハフ変換による
円弧のパラメータの決定の仕方(図9(b))を示す図
である。
【図10】図4に示すロボットプログラムに対して作成
される位置検出プログラムを示す図である。
される位置検出プログラムを示す図である。
【図11】図4に示すロボットプログラムに対して作成
される位置算出プログラムを示す図である。
される位置算出プログラムを示す図である。
【図12】2本の直線の交点を求める際に設定される直
線を検出する領域の具体例を示す図である。
線を検出する領域の具体例を示す図である。
【図13】図4に示すロボットプログラムに対して作成
される座標変換プログラムを示す図である。
される座標変換プログラムを示す図である。
【図14】本発明によるロボットプログラム自動修正方
法の一実施の形態を説明するための図である。
法の一実施の形態を説明するための図である。
【図15】本発明によるロボットのための画像処理プロ
グラム自動生成方法により生成された画像処理プログラ
ムを組み込んだロボットプログラムを示す図である。
グラム自動生成方法により生成された画像処理プログラ
ムを組み込んだロボットプログラムを示す図である。
1 ビデオカメラ 2 画像入力ボード 3 パーソナルコンピュータ 4 ロボットコントローラ 5 ロボット 6 ワーク
フロントページの続き (51)Int.Cl.6 識別記号 FI G06K 9/46 G06K 9/46
Claims (5)
- 【請求項1】溶接作業や、面取り作業等のワークとの接
触を伴う作業を行うロボットのための画像処理プログラ
ム自動生成方法において、 あらかじめマスタワークについてティーチングされたロ
ボットプログラムの中からワークとの接触作業を行う際
のロボット座標系に基づく動作命令を抽出し、この抽出
された動作命令からあらかじめ内蔵された教示点を抽出
する第1の工程と、 この第1の工程により抽出された各教示点について、そ
れぞれの教示点を含む動作命令の種別から各教示点が直
線や円弧等の曲線のうちどのような曲線に属するかを判
別するとともに、この判別された曲線における端点や途
中の点等の曲線の範囲を特定する教示点の座標値を前記
ロボットプログラムの中から読み出す第2の工程と、 この第2の工程により読み出された各教示点のロボット
座標系での座標値を、あらかじめ定義された前記ワーク
を撮影するためのビデオカメラの座標系とロボット座標
系との変位量を用いて前記ビデオカメラの画面内での座
標値に変換する第3の工程と、 この第3の工程により変換された各教示点の座標値およ
び各教示点の属する曲線の種別に基づいて、前記ビデオ
カメラにより撮影された画像から前記各教示点に対応す
る直線や円弧等の曲線を検出してこれらの交点としての
各教示点の実際の位置を求める画像処理プログラムを生
成する第4の工程と、 を備えたことを特徴とするロボットのための画像処理プ
ログラム自動生成方法。 - 【請求項2】前記第4の工程において生成される画像処
理プログラムは、前記ビデオカメラにより撮影された画
像から前記ビデオカメラの画面内での直線や円弧等の曲
線の位置を検出する位置検出プログラムと、この位置検
出プログラムにより検出される曲線の位置から前記ロボ
ットプログラムの中から読み出された前記各教示点の前
記ビデオカメラの画面内での実際の位置を算出する位置
算出プログラムと、この位置算出プログラムにより算出
される前記各教示点の前記ビデオカメラの画面内での座
標値をロボット座標系での座標値に変換する座標変換プ
ログラムとからなることを特徴とするロボットのための
画像処理プログラム自動生成方法。 - 【請求項3】前記位置検出プログラムは、前記ビデオカ
メラにより撮影された画像から、前記第2の工程により
読み出された各教示点の座標値および各教示点の属する
曲線の種別に基づいて前記ビデオカメラの画面内におけ
る限定された所定領域内で直線や円弧等の曲線の位置を
検出するものであることを特徴とする請求項2記載のロ
ボットのための画像処理プログラム自動生成方法。 - 【請求項4】溶接作業や、面取り作業等のワークとの接
触を伴う作業を行うロボットのための画像処理プログラ
ム自動生成装置において、 作業対象となるワークを撮影するビデオカメラと、 あらかじめマスタワークについてティーチングされたロ
ボットプログラムの中からワークとの接触作業を行う際
のロボット座標系に基づく動作命令を抽出し、この抽出
された動作命令からあらかじめ内蔵された教示点を抽出
する手段と、 この手段により抽出された各教示点について、それぞれ
の教示点を含む動作命令の種別から各教示点が直線や円
弧等の曲線のうちどのような曲線に属するかを判別する
とともに、この判別された曲線における端点や途中の点
等の曲線の範囲を特定する教示点の座標値を前記ロボッ
トプログラムの中から読み出す手段と、 この手段により読み出された各教示点のロボット座標系
での座標値を、あらかじめ定義された前記ビデオカメラ
の座標系とロボット座標系との変位量を用いて前記ビデ
オカメラの画面内での座標値に変換する手段と、 この手段により変換された各教示点の座標値および各教
示点の属する曲線の種別に基づいて、前記ビデオカメラ
により撮影された画像から前記各教示点に対応する直線
や円弧等の曲線の位置を検出してこれらの交点としての
各教示点の実際の位置を求める画像処理プログラムを生
成する手段と、 を備えたことを特徴とするロボットのための画像処理プ
ログラム自動生成装置。 - 【請求項5】請求項1ないし3のいずれかに記載のロボ
ットのための画像処理プログラム自動生成方法により生
成された画像処理プログラムを用いて、前記ビデオカメ
ラにより撮影された画像から実際のワークの教示点の座
標値を求める工程と、 この工程により求められた実際のワークの教示点の座標
値に基づいて、ロボットプログラムにあらかじめ内蔵さ
れた各教示点の座標値を修正する工程と、 を備えたことを特徴とするロボットプログラム自動修正
方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24281096A JP3538506B2 (ja) | 1996-09-13 | 1996-09-13 | ロボットのための画像処理プログラム自動生成方法、その装置およびロボットプログラム自動修正方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24281096A JP3538506B2 (ja) | 1996-09-13 | 1996-09-13 | ロボットのための画像処理プログラム自動生成方法、その装置およびロボットプログラム自動修正方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1091225A true JPH1091225A (ja) | 1998-04-10 |
JP3538506B2 JP3538506B2 (ja) | 2004-06-14 |
Family
ID=17094632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24281096A Expired - Fee Related JP3538506B2 (ja) | 1996-09-13 | 1996-09-13 | ロボットのための画像処理プログラム自動生成方法、その装置およびロボットプログラム自動修正方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3538506B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805219B2 (en) | 2002-07-17 | 2010-09-28 | Kabushiki Kaisha Yaskawa Denki | Carrier robot system and control method for carrier robot |
CN103226456A (zh) * | 2013-04-24 | 2013-07-31 | 广东威创视讯科技股份有限公司 | 一种拼接墙图像显示的方法和装置 |
KR101330049B1 (ko) * | 2012-03-06 | 2013-11-18 | 한국기계연구원 | 3차원 특징점 기반 직접 교시 궤적 후보정 방법 |
JP2015009324A (ja) * | 2013-06-28 | 2015-01-19 | ファナック株式会社 | 視覚センサ及び力センサを備えたバリ取り装置 |
JP2015134407A (ja) * | 2015-04-30 | 2015-07-27 | ファナック株式会社 | 視覚センサ及び力センサを備えたバリ取り装置 |
CN109514533A (zh) * | 2019-01-08 | 2019-03-26 | 崧智智能科技(深圳)有限公司 | 工业机器人快速示教***及示教方法 |
-
1996
- 1996-09-13 JP JP24281096A patent/JP3538506B2/ja not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7805219B2 (en) | 2002-07-17 | 2010-09-28 | Kabushiki Kaisha Yaskawa Denki | Carrier robot system and control method for carrier robot |
KR101330049B1 (ko) * | 2012-03-06 | 2013-11-18 | 한국기계연구원 | 3차원 특징점 기반 직접 교시 궤적 후보정 방법 |
US8824777B2 (en) | 2012-03-06 | 2014-09-02 | Korea Institute Of Machinery & Materials | Method of post-correction of 3D feature point-based direct teaching trajectory |
CN103226456A (zh) * | 2013-04-24 | 2013-07-31 | 广东威创视讯科技股份有限公司 | 一种拼接墙图像显示的方法和装置 |
JP2015009324A (ja) * | 2013-06-28 | 2015-01-19 | ファナック株式会社 | 視覚センサ及び力センサを備えたバリ取り装置 |
US9724801B2 (en) | 2013-06-28 | 2017-08-08 | Fanuc Corporation | Deburring device including visual sensor and force sensor |
JP2015134407A (ja) * | 2015-04-30 | 2015-07-27 | ファナック株式会社 | 視覚センサ及び力センサを備えたバリ取り装置 |
CN109514533A (zh) * | 2019-01-08 | 2019-03-26 | 崧智智能科技(深圳)有限公司 | 工业机器人快速示教***及示教方法 |
Also Published As
Publication number | Publication date |
---|---|
JP3538506B2 (ja) | 2004-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Romero-Ramirez et al. | Speeded up detection of squared fiducial markers | |
Dame et al. | Mutual information-based visual servoing | |
JP3242108B2 (ja) | ターゲットマークの認識・追跡システム及び方法 | |
CN113379849B (zh) | 基于深度相机的机器人自主识别智能抓取方法及*** | |
CN110443154B (zh) | 关键点的三维坐标定位方法、装置、电子设备和存储介质 | |
CN113146073B (zh) | 基于视觉的激光切割方法及装置、电子设备、存储介质 | |
KR102178013B1 (ko) | 물체 파지를 위한 훈련 데이터 생성 방법 및 파지 자세 결정 방법 | |
JPH04344503A (ja) | ロボットの数値制御装置 | |
KR101670270B1 (ko) | 알려진 형상의 기준을 탐사하는 시스템 및 방법 | |
US10207409B2 (en) | Image processing method, image processing device, and robot system | |
CN113284178A (zh) | 物体码垛方法、装置、计算设备及计算机存储介质 | |
JP2730457B2 (ja) | 視覚に基く三次元位置および姿勢の認識方法ならびに視覚に基く三次元位置および姿勢の認識装置 | |
CN111168676B (zh) | 机械臂手眼协作绘画方法、装置、绘画机器人及介质 | |
JP3538506B2 (ja) | ロボットのための画像処理プログラム自動生成方法、その装置およびロボットプログラム自動修正方法 | |
CN112947458A (zh) | 基于多模态信息的机器人准确抓取方法及计算机可读介质 | |
CN114505864B (zh) | 一种手眼标定方法、装置、设备及存储介质 | |
JP2778430B2 (ja) | 視覚に基く三次元位置および姿勢の認識方法ならびに視覚に基く三次元位置および姿勢の認識装置 | |
JP3450609B2 (ja) | ロボットのオフライン教示装置 | |
JP2009216480A (ja) | 三次元位置姿勢計測方法および装置 | |
CN114789440B (zh) | 基于图像识别的目标对接方法、装置、设备及其介质 | |
Huang et al. | Intelligent humanoid mobile robot with embedded control and stereo visual feedback | |
WO2020157875A1 (ja) | 作業座標作成装置 | |
KR20200059465A (ko) | 영상 기반으로 드로잉 로봇을 제어하는 방법 및 장치 | |
CN113776517A (zh) | 地图生成方法、装置、***、存储介质及电子设备 | |
TWI788253B (zh) | 適應性移動操作設備及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040322 |
|
LAPS | Cancellation because of no payment of annual fees |