JP5239901B2 - ロボットシステムおよびロボットの制御方法 - Google Patents

ロボットシステムおよびロボットの制御方法 Download PDF

Info

Publication number
JP5239901B2
JP5239901B2 JP2009015162A JP2009015162A JP5239901B2 JP 5239901 B2 JP5239901 B2 JP 5239901B2 JP 2009015162 A JP2009015162 A JP 2009015162A JP 2009015162 A JP2009015162 A JP 2009015162A JP 5239901 B2 JP5239901 B2 JP 5239901B2
Authority
JP
Japan
Prior art keywords
teaching
measurement
command
scan
data
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.)
Expired - Fee Related
Application number
JP2009015162A
Other languages
English (en)
Other versions
JP2010172969A (ja
Inventor
友之 関山
英夫 永田
慎悟 安藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yaskawa Electric Corp
Original Assignee
Yaskawa Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yaskawa Electric Corp filed Critical Yaskawa Electric Corp
Priority to JP2009015162A priority Critical patent/JP5239901B2/ja
Publication of JP2010172969A publication Critical patent/JP2010172969A/ja
Application granted granted Critical
Publication of JP5239901B2 publication Critical patent/JP5239901B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、部品の組立等に用いられるロボットシステム及び制御方法に関する。
車や家電の製造工場で行なわれる部品の組立工程には、ワーク同士の嵌め合い作業が含まれている。このような嵌め合い作業を含む組立工程を、ロボットを用いて自動化、省力化する場合には、何らかの方法でロボットに嵌め合い作業を教示する必要がある。この教示は、オンライン教示とオフライン教示に分けることができる。
オンライン教示の方法として、例えば、操作者がロボットを誘導して位置姿勢を作り、実際の作業の動作や手順を教示する方法がある。また、オフライン教示の方法として、あらかじめパソコンで作業プログラムを作成して、生成した作業プログラムをロボットコントローラに転送して再生運転する方法がある。
しかし、オンライン教示では、ワーク位置決め誤差により、実際に教示した位置と再生運転時に作業する位置がずれる可能性がある。オフライン教示では、教示データの原点と実際のロボットの原点がずれている場合があり、教示点位置の補正方法が難しい。
そこで、このような問題を解決するために、以下のような従来技術があった。
特許文献1には、オンライン教示で精度良く教示位置を教示する方法として、ロボットエンドエフェクタ上にワークの位置検出をする位置検出手段を設け、位置検出手段が位置検出領域に測定光を照射し、位置検出領域から帰還する乱反射光や正反射光に基づいてワークの位置情報を取得する技術が開示されている。
また、特許文献2には、作業動作を補正する方法として、測定用動作ファイルでロボットを動かして、距離センサにより基準ワークをセンシングして測定距離を記憶しておき、実ワークをセンシングして測定距離を求めて、基準ワークの測定距離との差から作業用動作を補正する技術が開示されている。
一方で近年、製造業において双腕ロボットを人による作業の置き換えに活用しようとする動きが活発になってきている。
特許文献3には、双腕ロボットの一方の腕が一つの部品を組み付け中に他方の腕で他の部品の組み付け準備を行ったり、双方のアームにて2つの部品を組み合わせたりする、双腕を交互にまたは同時に協調させて動作する技術が開示されている。
また、特許文献4には、2つのロボットアームを協調動作させて、ひとつの対象物を2つのアームで保持して移動させる技術が開示されている。
特開平5−309590号公報(第10頁、図1) 特開平6−210580号公報(第4頁、図1、第5頁、図4) 特開2006−35346号公報(第9頁、図6) 特開平2003−159683号公報(第8頁、図1)
しかしながら、特許文献1および2については、ワークを十字方向又は一方向のみに走査する方法では、ワークの3次元の姿勢ずれを測定不可能である。また、ワーク毎に操作者がワークをどのように走査するかを教示することは面倒で時間がかかる問題もある。また、効率的な3次元の位置姿勢の計測動作自体が明確になっておらず、ワーク毎に操作者の試行錯誤が必要である。
また、特許文献3については、双腕で一つのワークを扱う場合については十分に説明されておらず、一つのワークの一方の端と他端の間が柔軟物である場合のワークを双腕で把持する方法が明らかでない。
また、特許文献4については、双方の腕がワークを把持する箇所が正確でなければうまく嵌合できないような場合には、双方の腕が正確にワークの正確な位置を把持しなければならないが、スレーブアームは重力方向のみ支持しているので、正確な把持位置を保つことができない。
本発明はこのような問題点に鑑みてなされたものであり、操作者がワーク毎に計測動作の位置姿勢教示をする必要がなく、3次元位置姿勢を高精度に取得して、ワークの位置や姿勢のずれを修正することを目的とし、さらに、双腕ロボットでの組み立て作業に適用できる方法とすることを目的とする。
上記問題を解決するため、本発明は、次のように構成したのである。
発明は、ワークを把持するエンドエフェクタと、前記ワークの形状計測手段と、を備えたロボットの制御方法において、前記エンドエフェクタを把持位置へ移動させて教示位置として記録し、前記教示位置を中心としてあらかじめ決められた範囲を計測範囲とし、前記計測範囲をワークの形状計測手段により計測したワーク形状をマスタデータとして前記教示位置と関連づけて記録する教示ステップと、前記教示位置を中心としてあらかじめ決められた範囲を計測範囲とし、前記計測範囲をワークの形状計測手段により計測したワーク形状を計測データとし、前記マスタデータと前記計測データを比較し、前記マスタデータに対する前記計測データの3次元の位置姿勢を計算して修正量とし、前記修正量にしたがって前記把持位置を修正し、前記エンドエフェクタを前記修正された把持位置へ移動する指令を生成する再生ステップと、を含み、前記マスタデータは、ヘリカルスキャンの軌道に沿って前記ワークの形状計測手段により計測したワーク形状の計測データであることを特徴とするものである。
また、発明は、ワークを把持するエンドエフェクタと、前記ワークの形状計測手段と、を備えたロボットの制御方法において、前記エンドエフェクタを把持位置へ移動させて教示位置として記録し、前記教示位置を中心としてあらかじめ決められた範囲を計測範囲とし、前記計測範囲をワークの形状計測手段により計測したワーク形状をマスタデータとして前記教示位置と関連づけて記録する教示ステップと、前記教示位置を中心としてあらかじめ決められた範囲を計測範囲とし、前記計測範囲をワークの形状計測手段により計測したワーク形状を計測データとし、前記マスタデータと前記計測データを比較し、前記マスタデータに対する前記計測データの3次元の位置姿勢を計算して修正量とし、前記修正量にしたがって前記把持位置を修正し、前記エンドエフェクタを前記修正された把持位置へ移動する指令を生成する再生ステップと、を含み、前記再生ステップにおいて、前記ワークの形状計測手段は、ヘリカルスキャンの軌道に沿って前記ワーク形状を計測することを特徴とすものである。
請求項1記載の発明によると、操作者にとっては、ワークを把持するグリッパなどのエンドエフェクタの教示位置を中心として計測範囲を決めているように見えるため、計測のためのセンサ座標系や計測用レーザが当たる位置を気にせず、さらにワーク寸法の入力も必要としないので、計測動作を含む把持動作を簡単に教示することができる。双腕ロボットで一つのワークを把持する場合には、ワークの片方の端を左アームで正確に把持した後、ワークの別の端を右アームで計測して把持することで、両端とも正確な位置を把持して作業することができる。また、多方面から見た計測データをマスタデータとすることができ、再生動作時に、教示位置からのワークの姿勢のずれが大きい場合にも、計測データと合致する部分を含んでいるので、修正量が算出できる。
また、請求項2記載の発明によると、再生動作時に多方面から見た計測データを得ることができ、姿勢を変えて再計測する必要がないので、計測時間を短くすることができる
以下、本発明の実施の形態について図を参照して説明する。
図1は、本発明に係るロボットシステムの構成図である。このロボットシステムは、双腕ロボット101と、その動作を制御する制御装置102を備えている。
まず、双腕ロボット101について説明する。
図において、ロボットの左アーム104と右アーム105は、関節も含めて模式的に表されている。各関節は、図示しないモータによって、駆動される。
左グリッパ(エンドエフェクタ)106は、左アームの先端に配置されている。
右グリッパ(エンドエフェクタ)107は、右アームの先端に配置されている。
ワーク109は双腕ロボット101の把持対象物である。ワーク109は、本実施例においてはコネクタ付ケーブルであるが、詳細については後述する。
ワーク形状計測センサ108は、2次元レーザ変位センサである。このセンサは、右グリッパ107上に搭載されている。このワーク形状計測センサ108は、右アーム105が動くとともにワーク109のデータを取得することで、ワーク109の2次元の計測データを連続して取得することができる。この取得したデータを重ねることによって、3次元の計測データ(ワーク形状)が得られる。なお、このセンサは、右グリッパ107ではなく、左グリッパ106に搭載されていても良い。また、グリッパではなく、アームに搭載されていても良い。また、このセンサは、ワークの3次元形状を計測できるものであれば任意のセンサでよい。例えば、このセンサは、複数のカメラによるビジョンセンサであってもよい。
次に、制御装置102について説明する。
動作プログラム解析部110は、ロボットの動作が記述された動作プログラム(JOB)118を解析して必要な処理を呼び出す。
教示データ記憶部113は、現在の位置122を教示位置123として、動作プログラム118に書き込む。この教示位置123は、操作者が教示作業時に教示装置103の所定のキーを入力すると動作プログラム118に書き込まれる。教示データ記憶部113は、後述するマスタデータ121の番号を対象物番号125として、動作プログラム118に書き込む。ここで、対象物番号125は、マスタデータ121を複数保存した場合に、マスタデータを特定するために付ける番号である。教示データ記憶部113は、教示位置123と対象物番号125を一組として動作プログラム118に書き込む。この動作プログラム118は、不揮発性メモリ117に保存される。
計測部114は、ワーク形状計測センサ108によりワークの計測データ120を得る。
マスタデータ記憶部115は、マスタデータ121として計測データ120に番号を付け、このマスタデータ121を不揮発性メモリ117に保存する。
位置姿勢比較部116は、マスタデータ121と計測データ120とを比較して、マスタデータ121に対する計測データ120の3次元の位置姿勢を計算する。位置姿勢比較部116は、この位置姿勢の変化量を修正量124として、指令生成部111に出力する。
指令生成部111は、教示装置103からの手動操作にしたがって軌道を生成する。また、指令生成部111は、動作プログラム118、制御装置のパラメータとして保存されているスキャン条件119、および修正量124に基づいて把持動作や計測動作を行うアームの軌道を生成する。
サーボ制御部112は、生成された軌道にしたがってモータを駆動する。
教示装置103は、制御装置102に接続され、双腕ロボット101の教示・操作をするための装置である。教示装置103上には、ロボットに対する指令やデータを入力するためのキーと情報表示用のディスプレイが設けられている。
次に、本発明に係るロボットシステムの動作について説明する。本実施例において、双腕ロボットが扱うワーク109は、図4(a)に示す複数のリード線の両端にコネクタを備えたケーブルである。図4(a)は、テーブル上のジグや供給装置によって位置が固定されたワークのコネクタ404を、予め教示されたように把持することで、左グリッパ106がコネクタ404を把持している状態を示している。コネクタ403の位置は固定されていない。コネクタ404とコネクタ403の間のリード線405は柔軟であるため、コネクタ403の位置は定まらない。
本発明に係るロボットシステムの動作は、図2に示す教示動作(ステップS201〜206)と、図3に示す再生動作(ステップS301〜S305)である。以下、各動作について説明する。
I.教示動作
まず、教示動作(ステップS201〜S206)について、図2に基づいて説明する。
(S201)
操作者が教示装置103のキーを操作する。操作者は右グリッパ107をワーク109の把持位置へ移動するようにキーを操作する。指令生成部111は、このキー操作にしたがってロボットが移動する軌道を生成する。
(S202)
操作者が教示装置103を操作して、スキャンコマンド(MOVSCAN)を動作プログラムに登録する。このスキャンコマンド(MOVSCAN)は、ワーク形状計測センサ108がワークの計測データ120を得るスキャン動作をさせるためのコマンドである。この動作プログラムは不揮発性メモリ117に保存される。
具体例を図5に基づいて説明する。図5は教示装置の動作プログラム表示画面501を示している。動作プログラム表示画面501中、教示位置503は、ロボットの教示位置を表示している。502は、現在編集中の動作プログラムを表示している。
操作者は図示しないメニューの命令一覧の画面からスキャンコマンド(MOVSCAN)を選択する。選択後、操作者が教示装置103上のEnterキーを押すと、図に示すようにスキャンコマンド504が動作プログラム502に登録される。同時に、ロボットの現在位置が教示位置データ503として保存される。この教示位置データは、教示位置番号505(C00001)として保存される。
スキャンコマンド504は、(i)教示位置番号505(C00001)、(ii)ステップS304において修正された教示位置が代入される位置変数506(P012)、(iii)スキャン動作の移動速度507(V=10.0)、および(iv)対象物番号125(OBJ#(1))と関連づけられて、動作プログラムに記録される。記録後、デフォルトで設定された(iii)スキャン動作の移動速度507と(iv)対象物番号125を変更することもできる。
(S203)
操作者が、教示装置103を操作して、移動コマンド(MOVL)を動作プログラムに登録する。この移動コマンド601は、グリッパを把持位置へ移動させるためのコマンドである。
具体例を図6に基づいて説明する。図6は、教示装置の動作プログラム表示画面501を示している。ステップS202で実行したスキャンコマンドが既に表示されている。
移動コマンド(MOVL)601は、位置変数506(P012)および移動速度602(V=10.0)と関連付けられて、動作プログラムに登録される。なお、この位置変数506は、ステップS202において、スキャンコマンドで指定された変数である。
(S204)
操作者が教示装置103の画面上に表示されるカーソルをスキャンコマンドの行に合わせて、画面(図6)上のスキャン実行ボタン508を押す。スキャン実行ボタン508が押されると、指令生成部111は、動作プログラムの教示位置(C00001に保存された教示位置)を基準として、所定のスキャン条件119に基づいて、所定の計測範囲を計測するための軌道を生成する。ここで、この所定のスキャン条件119は、スキャン角度406、スキャン距離407およびスキャン速度として、あらかじめ制御装置のパラメータに保存されている。ここで、スキャン角度は、対象物正面方向の軸まわりにワーク形状計測センサ108を傾ける角度である(図4(c))。スキャン距離はワーク形状計測センサ108が移動する距離である(図4(c))。スキャン速度はワーク形状計測センサ108が移動する速度である。
サーボ制御部112は、モータを駆動して、生成された軌道にしたがってロボットを動かす。ロボットが動くとともに、計測部114はワーク形状計測センサ108からの計測データを得る。
(S205)
教示装置のディスプレイに、得られた計測データが表示される。この計測データは、図7に示すように、3次元イメージ702で表示される。図において、125は対象物番号、703はコネクタの型名や通称などを表す対象物名である。この対象物名は、任意の名前でよい。704は登録ボタンである。
(S206)
操作者がマスタ登録操作を行う。このマスタ登録操作は、操作者が教示装置を使って対象物番号125を入力し、登録ボタン704を押す操作である。操作者がこのマスタ登録操作を行うと、計測データはマスタデータ121として不揮発性メモリ117に保存される。
以上説明したように、教示動作(ステップS201〜S206)によって、動作プログラム118とマスタデータ121が作成される。この動作プログラム118とマスタデータ121は、不揮発性メモリ117に保存される。
図4は教示動作時のワーク形状計測センサ108の動きを示している。図4(a)において、右グリッパ107の先にグリッパ座標系401が設定されている。ワーク形状計測センサ108のセンサ原点にセンサ座標系402が設定されている。ここで、把持する対象物は、左グリッパ106が把持していないコネクタ403である。
図4(b)は、前記ステップS201およびS202を実行する際の様子を表している。教示装置103からの手動操作でロボットを動かし、右グリッパ107をコネクタの把持位置に位置決めして教示位置とする。
図4(c)は、前記ステップS204を実行する際の様子を表している。制御装置102は、自動的にセンサ座標系402の原点を教示位置のグリッパ座標系401の原点へ合わせる。その後、制御装置102は、コネクタ403の正面方向の周りにスキャン角度406だけセンサ座標系402を回転させ、ワーク形状計測センサ108をスキャン距離407だけ移動させる。このとき、スキャン距離407の2分の1だけ移動方向の負方向へ移動した位置から計測を開始することで、図4(c)のように教示位置が計測範囲の中心となるようにスキャンする。スキャンコマンド実行前の位置から計測開始位置へは、スキャンコマンドに指定した移動速度で移動する。計測中の速度は、ステップS202において、スキャンコマンドに指定した移動速度ではなく、スキャン条件として指定されたスキャン速度で移動する。
II.再生動作
次に、再生動作(ステップS301〜S305)について、図3に基づいて説明する。
この再生動作は、教示動作により作成された動作プログラムに書かれたスキャンコマンドを実行する動作(ステップS301〜S304)と移動コマンドを実行する動作(ステップ305)である。
(S301)
動作プログラム解析部110が、不揮発性メモリ117から動作プログラム118とスキャン条件119を呼び出す。動作プログラム解析部110は、動作プログラム118中に書かれたスキャンコマンドの実行を指令生成部111へ指令する。動作プログラム解析部110から指令されると、指令生成部111は、スキャンコマンドとともに登録された教示位置(C00001に保存された教示位置)を基準としてスキャン条件119に従った所定の計測範囲を計測する軌道を生成する。サーボ制御部112は、生成された軌道にしたがって、モータを駆動してアームを動かす。ロボットが動作するとともに、計測部114は、ワーク形状計測センサ108からコネクタ403の3次元の位置姿勢の計測データを得る。
(S302)
位置姿勢比較部116は、ステップS202において登録された対象物番号125に対応するマスタデータ121を不揮発性メモリ117から読み出す。次に、位置姿勢比較部116は、ステップS301で得たコネクタ403の3次元の位置姿勢が、マスタデータ121に対してどの程度変化したかを計算する。位置姿勢比較部116は、この変化した位置姿勢の量を修正量124とする。
ここで、この修正量124の計算について、以下に説明する。図8において、801はマスタデータ121の3次元イメージ、802は計測データ120の3次元イメージである。
まず、特徴点の抽出を行う。図8の3次元イメージからエッジ点を抽出すると、図9(a)に示す点群が得られる。本図において、901はマスタデータから抽出したエッジ点であり、902は計測データから抽出したエッジ点を示している。このエッジ点を抽出する方法は、隣の点との差分がある閾値以上になった点をエッジ点とする公知の方法などを使用する。
エッジ点のデータから直線を抽出すると、図9(b)のように、エッジ点をつなげた直線が得られる。本図において、903はマスタデータの直線であり、904は計測データの直線である。この直線を抽出する方法は、Hough変換による公知の方法などを使用する。
求める特徴点は、抽出した直線の交点である。この交点には、符号を付ける。このとき、スキャン方向において最初に位置する特徴点を1番とする。各特徴点は位置成分X、Y、Zを持つ。図9(c)において、905の4点はマスタデータの特徴点、906の4点は計測データの特徴点である。マスタデータについてはp1からp4、計測データについてはq1からq4という符号を特徴点に付けている。
修正量124はマスタデータ121に対する計測データの位置姿勢の変化量として求められる。
まず、図10(a1)に示すマスタデータと図10(a2)に示す計測データを同じセンサ座標系402から見たものとして重ねると、図10(b)に示すようになる。ただし、センサ座標系は計測時にはスキャン方向に平行移動するため、たとえば、スキャン開始点からスキャン距離の2分の1だけ進んだ位置をセンサ座標系の原点として計測データを重ねる。
次に、特徴点p1とq1が一致するように、マスタデータ全体を移動する。p1から見たq1の分だけセンサ座標系を並行移動すると図10(c)のようになる。図10(c)において、p1、p2、p3、p4を移動したものは、p1b、p2b、p3b、p4bで表している。p1bとq1の距離は0である。p1bの位置にセンサ座標系S1と同じ姿勢の座標系を設定し、座標系S2とする。すなわち、S1から見たq1の分だけS1を平行移動した座標系がS2である。
次に、S2をΔTrだけ回転させると同時に、p2bからp4bもS2を基準に回転させ、それぞれp2c、p3c、p4cとする。つまり、p1b、p2b、p3b、p4bを頂点とする四角形全体をS2とともに回転させる。ΔTrは回転を表す4×4の同次変換行列である。回転後、符号の中の番号が同じ点同士の距離を求めて加算した式1のJを評価関数として計算する。
ここで、iは1からnまでの点の番号を表す添字、S2は座標系S2から見た点qの座標、S2icは座標系S2から見た点picの座標である。
ΔTrは、次の(1)から(5)のようにして求める。
(1)ΔTrを、Roll、Pitch、Yawから計算される回転行列とする。Pitch角、Yaw角は固定で、Roll角を−45度から45度まで1度ずつ変化させて、評価関数Jが最小になるRoll角を求める。
(2)ΔTrを、Roll角を(1)で求めたRoll角にし、さらにPitch角を−45度から45度まで1度ずつ変化させて、評価関数Jが最小になるPitch角を求める。
(3)ΔTrを、Roll角を(1)で求めたRoll角にし、Pitch角を(2)で求めたPitch角にし、さらにYaw角を−45度から45度まで1度ずつ変化させて、評価関数Jが最小になるYaw角を求める。
(4)ΔTrを、Pitch角を(2)で求めたPitch角にし、Yaw角を(3)で求めたYaw角にする。
(5)前記(1)から(4)を数回繰り返して、評価関数Jを最小とする変換行列ΔTrを求める。求めたΔTrを使って、修正量は次の式2の行列S1SFで表される。
ここで、Trans( )は平行移動を表す変換行列である。グリッパ座標系で表した修正量G1GFは式3のようになる。
ここで、はグリッパ座標系から見たセンサ座標系の姿勢を表す3×3の回転行列を表す。はセンサ座標系から見たグリッパ座標系の姿勢を表す3×3の回転行列を表す。
(S303)
指令生成部111が、教示位置を修正量124にしたがって修正する。教示位置を同次変換行列の形にして、式3の行列を右からかけることによって変換したものが、修正した教示位置となる。すなわち、ロボット座標系から見た教示位置をRtとすると、修正した教示位置Rt2は式4のようになる。
(S304)
修正された教示位置を、スキャンコマンドの引数として指定された位置変数506(P012)へ代入する。ただし、位置変数506には、修正した教示位置Rt2の行列から計算したX、Y、Z、Roll、Pitch、Yawの値を代入する。
(S305)
動作プログラム解析部110が動作プログラム118中に書かれた移動コマンドの実行を指令生成部111へ指令する。動作プログラム解析部110から指令されると、指令生成部111は、動作プログラム118の移動コマンドに指定された位置変数の位置への軌道を生成する。サーボ制御部112は、モータを駆動して、この生成された軌道に沿うようにアームを移動させる。
図11は再生動作時のワーク形状計測センサ108の動きを示している。図11(a)において、スキャンコマンドにしたがってスキャンし、計測データを得る。図11(b)はスキャンコマンドの結果として位置変数へ代入された、修正した教示位置へ移動コマンドで移動した様子を示している。
このように、操作者は、ステップS202において教示位置を1点だけ教示すればよいので、複数の教示点を使ってロボットの計測動作自体を教示する必要がない。その結果、操作者はグリッパを見ながらの手動操作による位置決めと、3次元データ表示による、教示操作ができる。すなわち、ワークの位置姿勢の計測を含む教示操作が簡単になる。計測動作の際、ワーク形状計測センサ108は教示位置を中心とした所定の計測範囲を動くため、操作者はセンサ座標系の位置を気にせず、対象物の寸法入力も必要とせずに教示することができる。
なお、スキャンコマンドと移動コマンドはそれぞれ独立したコマンドであるが、これらをまとめた把持移動コマンド(MOVCATCH)としても良い。
図13は、第2実施例に係るロボットシステムの構成図である。本発明に係るロボットシステムは、双腕ロボット101と、その動作を制御する制御装置102を備えている。
双腕ロボット101については、図1に示したものと同一であるので、その説明は省略する。
以下、制御装置102について説明する。
スキャン条件入力部1301は、教示作業時に教示装置103から入力されたスキャン角度(図4(c))、スキャン距離(図4(c))、スキャン速度などのデータをスキャン条件119として不揮発性メモリ117に保存する。
その他の部分は実施例1と同じであるので、説明は省略する。
本実施例に係るロボットシステムの動作は、図14に示すような教示動作(ステップS1401〜S1406)と、図15に示すような再生動作(ステップS1501〜S1504)である。以下、各動作について説明する。
I.教示動作
まず、教示動作(ステップS1401〜S1406)について、図14に基づいて説明する。
(S1401)
操作者が教示装置103のキーを操作する。操作者は右グリッパ107をワーク109の把持位置へ移動するようにキーを操作する。指令生成部111は、このキー操作にしたがってロボットが移動する軌道を生成する。
(S1402)
操作者が教示装置103を操作して、把持移動コマンド(MOVCATCH)を動作プログラムに登録する。この把持移動コマンド(MOVCATCH)は、ワーク形状計測センサ108がワークの計測データ120を得るスキャンコマンドと移動コマンドをまとめ多コマンドである。この動作プログラムは不揮発性メモリに保存される。
具体例を図12に基づいて説明する。図12は教示装置の動作プログラム表示画面501の例を示している。
操作者は図示しないメニューの命令一覧の画面から把持移動コマンド(MOVCATCH)を選択する。選択後、操作者が教示装置103上のEnterキーを押すと、図に示すように把持移動コマンド1201が動作プログラム502に登録される。同時に、ロボットの現在位置が教示位置データ503として保存される。この教示位置データは、教示位置番号505(C00001)として保存される。
把持移動コマンド1201は(i)教示位置番号505(C00001)、(ii)スキャン動作の移動速度507(V=10.0)、(iii)対象物番号507(OBJ#(1))と関連づけられて動作プログラムに記録される。記録後、デフォルトで設定された移動速度507と対象物番号507を変更することもできる。
(S1403)
教示装置から入力されたスキャン角度、スキャン距離、およびスキャン速度をスキャン条件として不揮発性メモリに保存する。図16は教示装置のスキャン条件入力画面1601を示している。操作者はスキャン角度1602、スキャン距離1603、およびスキャン速度1604の値を入力し、設定ボタン(SET)1605を押すことで、スキャン条件を設定できる。
(S1404)
操作者が教示装置のスキャン実行ボタン508を押すと、指令生成部111は動作プログラムの教示位置(C00001に保存された教示位置)を基準として設定されたスキャン条件に従った計測範囲を計測する軌道を生成する。サーボ制御部112は、モータを駆動して、ロボットを動かす。ロボットが動くとともに、計測部114はワーク形状計測センサ108からの計測データを得る。
(S1405)
教示装置103のディスプレイに、得られた計測データが表示される。この計測データは、図7に示すように、3次元イメージ702で表示される。図において、125は対象物番号、703は対象物名、704は登録ボタンである。
(S1406)
次に、操作者がマスタ登録操作を行う。操作者がこのマスタ登録操作を行うと、前記計測データはマスタデータ121として不揮発性メモリ117に保存される。
以上説明したように、教示動作(S1401〜ステップS1406)によって、スキャン条件、動作プログラム、およびマスタデータが作成される。このスキャン条件、動作プログラム、およびマスタデータは、不揮発性メモリ117に保存されることになる。
II.再生動作
次に、再生動作(ステップS1501〜S1504)について、図15に基づいて説明する。この再生動作は、動作プログラムに書かれた把持移動コマンドを実行する動作である。
(S1501)
動作プログラム解析部110が、不揮発性メモリ117から動作プログラム118とスキャン条件119を呼び出す。動作プログラム解析部110は、動作プログラム118中に書かれた把持移動コマンドの実行を指令生成部111へ指令する。動作プログラム解析部110から指令されると、指令生成部111は動作プログラム118の把持移動コマンドとともに登録された教示位置(C00001に保存された教示位置)を基準としてスキャン条件119に従った所定の計測範囲を計測する軌道を生成する。サーボ制御部112は、生成された軌道にしたがって、モータを駆動してアームを動かす。ロボットが動作するとともに、計測部114はワーク形状計測センサ108からコネクタ403の3次元の位置姿勢の計測データを得る。
(S1502)
位置姿勢比較部116は、動作プログラム118中の把持移動コマンドとともに登録された対象物番号125に対応するマスタデータ121を不揮発性メモリ117から読み出す。次に、位置姿勢比較部116は、ステップS1501で得たコネクタ403の3次元の位置姿勢が、マスタデータ121に対してどの程度変化したかを計算する。位置姿勢比較部116は、この変化した位置姿勢の量を修正量124とする。
図8にマスタデータ121と計測データの3次元イメージの例を示す。
(S1503)
指令生成部111が、教示位置を修正量124にしたがって修正する。修正量124を求める方法は、実施例1と同様であるので省略する。
(S1504)
指令生成部111が、教示位置を修正量124にしたがって修正し、修正した位置への軌道を生成する。サーボ制御部112は、モータを駆動して、この生成された軌道に沿うように、アームを移動させる。なお、把持移動コマンド(MOVCATCH)では、スキャンコマンド実行前の位置から計測開始位置への移動と、計測終了位置から把持位置への移動については、スキャンコマンドに指定した移動速度で移動する。計測中の速度は、スキャン条件として指定されたスキャン速度で移動する
図11は動作再生の動作を示している。図11(a)において、把持移動コマンドにしたがってスキャンし、計測データを得る。図11(b)は計測結果とマスタデータから修正量を算出し、修正した教示位置を計算し、教示位置から計算したアプローチ位置へ到達した様子を示し、図11(c)は修正した教示位置へグリッパを移動した様子を示している。
このように、ワーク寸法を入力することなく、スキャン条件によって、教示位置を中心として計測範囲を決定することができる。従って、自動的に計測動作を生成することができるので、教示時間が短くなる。
図2のフローチャートにおけるマスタデータ保存時(S206)に、図9に示した特徴点の抽出を実行し、この抽出した特徴点データのみを保存する。また、図3のマスタデータ読み出し時(S302)には保存した特徴点データを読み出し、計測データから求めた特徴点と比較して図10のように修正量の計算を実行する。
このようにすると、マスタデータとして計測データのすべてを保存するよりもデータ量を小さくして保存することができる。従って、マスタデータのための不揮発性メモリの使用量を減らすことができる。
図17は、第4実施例の動作を表す図である。左グリッパ106がケース1703を把持している。このケース1703からはアース線1702が出ている。本実施例は、このアース線1702の下端1701を右グリッパ107で把持し、アース線挿入タブ1704へ挿入する作業を行うものである。
本実施例においては、把持位置であるアース線1702の位置が不確定である。そこで、アース線1702の下端1701をワーク形状計測センサ108で計測して把持する。また、アース線1702の下端1701を把持した後にアース線下端を挿入するタブ1704の位置も不確定である。そこで、タブ1704をセンサで計測して、挿入の教示位置を修正して挿入動作を行う。
本実施例に係るロボットシステムの動作は、図18に示すような教示動作(ステップS1801〜S1811)と、図19に示すような再生動作(ステップS1901〜S1910)である。
I.教示動作
まず、教示動作(ステップS1801〜S1811)について、図18に基づいて説明する。
(S1801)
タブへの挿入位置を計測する動作を教示するため、操作者が教示装置103のキーを操作する。操作者は右グリッパ107をタブ位置へ移動するようにキーを操作する。指令生成部111は、このキー操作にしたがってロボットが移動する軌道を生成する。
(S1802)
操作者が教示装置103を操作して、スキャンコマンド(MOVSCAN2)を第1教示位置と対象物番号125とともに動作プログラムに登録する。このスキャンコマンド(MOVSCAN2)は、ワーク形状計測センサ108がワークの計測データ120を得るスキャン動作をさせるためのコマンドさせるためのコマンドであり、MOVSCANとは、引数に指定する位置変数に入る値の点で相違する。この動作プログラムは不揮発性メモリ117に保存される。ここで、スキャンコマンド実行後に、スキャンコマンドの引数に指定した位置変数に入る値は、修正した教示位置ではなく、修正量であり、マスタデータをロボット座標系126まわりにどれだけ動かすと計測データに一致するかを表す変換量である。
具体例を図20に基づいて説明する。図20は教示装置の動作プログラム表示画面2001を示している。操作者は図示しないメニューの命令一覧の画面からスキャンコマンドを選択する。選択後、操作者が教示装置103上のEnterキーを押すと、動作プログラム2002にL001に示すように登録される。同時に、ロボットの現在位置が第1教示位置データとして保存される。この第1教示位置データは、教示位置番号(C00001)として保存される。
L001に示すスキャンコマンド(MOVSCAN2)は(i)教示位置番号(C00001)、(ii)スキャン結果である修正量の成分X、Y、Z、Roll、Pitch、Yawが代入される位置変数(P018)、(iii)スキャン動作の移動速度(V=5.0)、(iv)対象物番号(OBJ#(3))と関連づけられて動作プログラムに記録される。
(S1803)
操作者が教示装置103の画面上に表示されるカーソルをスキャンコマンドの行に合わせて、画面(図20)上のスキャン実行ボタン(SCAN)508を押す。スキャン実行ボタン508が押されると、指令生成部111は、動作プログラムの第1教示位置(C00001に保存された教示位置)を基準として、所定のスキャン条件に基づいて、所定の計測範囲を計測する軌道を生成する。この所定のスキャン条件は、スキャン角度、スキャン距離、およびスキャン速度として、あらかじめ制御装置のパラメータに保存されている。
サーボ制御部112は、モータを駆動し、生成された軌道にしたがってロボットの右アームを動かす。ロボットが動くとともに、計測部114は、ワーク形状計測センサ108からコネクタ403の3次元の位置姿勢の計測データを得る。
(S1804)
教示装置103のディスプレイに得られた計測データが3次元イメージで表示される。
(S1805)
操作者がマスタ登録操作を行う。このマスタ登録操作は、操作者が教示装置103を使って対象物番号125を入力し、登録ボタンを押す操作である。操作者がこのマスタ登録操作を行うと、前記計測データは第1マスタデータとして不揮発性メモリ117に保存される。
(S1806)
アース線下端を把持する動作を教示するため、操作者が教示装置103のキーを操作する。操作者は右グリッパ107を把持位置へ移動するようにキーを操作する。指令生成部111は、このキー入力にしたがってロボットが移動する軌道を生成する。
(S1807)
操作者が、教示装置103を操作して、スキャンコマンド(MOVSCAN2)を第2教示位置と対象物番号125とともに動作プログラムに登録する。この動作プログラム121は不揮発性メモリ117に保存される。
図20において、操作者は図示しないメニューの命令一覧の画面からスキャンコマンドを選択する。選択後、操作者がEnterキーを押すと動作プログラム2002にL002のように登録される。同時に、ロボットの現在位置が第2教示位置データ2003として保存される。この第2教示位置データは、教示位置番号(C00002)として保存される。
L002に示すスキャンコマンド(MOVSCAN2)は(i)教示位置番号(C00002)、(ii)スキャン結果である修正量の成分X、Y、Z、Roll、Pitch、Yawが代入される位置変数(P010)、(iii)スキャン動作の移動速度(V=5.0)、(iv)対象物番号(OBJ#(2))と関連づけられて動作プログラムに記録される。
(S1808)
操作者が教示装置103の画面上のカーソルをスキャンコマンドの行に合わせて、教示装置の画面(図20)上のスキャン実行ボタン508を押す。スキャン実行ボタン508が押されると、指令生成部111は動作プログラムの第2教示位置(C00002に保存された教示位置)を基準として、所定のスキャン条件に基づいて、所定の計測範囲を計測する軌道を生成する。この所定のスキャン条件は、スキャン角度、スキャン距離、およびスキャン速度として、あらかじめ制御装置のパラメータに保存されている。
サーボ制御部112は、モータを駆動し、生成された軌道にしたがってロボットの右アームを動かす。ロボットが動くとともに、計測部114はワーク形状計測センサ108からの計測データを得る。
(S1809)
教示装置103のディスプレイに前記計測データが3次元イメージで表示される。
(S1810)
操作者がマスタ登録操作を行う。操作者がこのマスタ登録操作を行うと、前記計測データは第2マスタデータとして不揮発性メモリ117に保存される。
(S1811)
操作者が、教示装置103のキーを操作して、スキャンコマンド(MOVSCAN2)に指定した前記位置変数(P018、P010)に再生ステップで入る修正量を使って、教示位置修正の演算をするコマンドと移動コマンドを動作プログラムに登録する。
図20において、L003はアース線下端を右グリッパで把持するための移動プログラムが記述されたサブルーチンの呼び出しコマンド(CALL)である。
L004は、アース線をタブの上まで移動させる移動コマンド(MOVL)であり、教示位置(C00003からC00006)と移動速度(V=10.0)と関連づけられて保存される。
L005は、ロボット座標系126から見た右アームの現在位置を取得するコマンド(GETS)であり、現在位置を意味するシステム変数($PX001)と、システム変数の内容のコピーを代入する位置変数(P011)と関連づけられて保存される。
L006は、P018を同次変換行列にしたものとP011を同次変換行列にしたものの積を計算し、計算結果をP012に入れる演算コマンド(MULMAT)である。L006において、P018はL001で得られるタブの修正量、P011は現在位置である。
L007はP012の位置への移動コマンド(MOVL)であり、位置変数(P012)と移動速度(V=10.0)と関連付けられて保存される。L007によってタブに挿入するための位置は修正されることになる。
L008は現在位置からP019に設定されている量だけ移動する相対移動コマンド(IMOV)であり、位置変数(P019)と移動速度(V=10.0)と座標系指定(RF)と関連付けられて保存される。P019には、挿入方向の移動量があらかじめ設定されており、RFはロボット座標系上の相対移動量として動くことを意味する。
以上説明したように、教示操作によって、動作プログラムと第1マスタデータおよび第2マスタデータが作成されて不揮発性メモリ117に保存されることになる。
II.再生動作
次に、再生動作(ステップS1901〜S1910)について、図19に基づいて説明する。この再生動作は、動作プログラムに書かれたコマンドを実行する動作である。
(S1901)
動作プログラム解析部110が不揮発性メモリ117から動作プログラムとスキャン条件を呼び出す。動作プログラム解析部110は、動作プログラム中のL001に書かれたスキャンコマンド(MOVSCAN2)の実行を指令生成部へ指令する。指令生成部111は動作プログラムのスキャンコマンドとともに登録された第1教示位置(C00001に保存された教示位置)を基準としてスキャン条件に従った所定の計測範囲を計測する軌道を生成する。サーボ制御部112は、生成された軌道にしたがって、モータを駆動してロボットを動かす。ロボットが動作するとともに、計測部114はワーク形状計測センサ108から第1計測データを得る。第1計測データは、アース線挿入タブ1704の計測データである。
(S1902)
位置姿勢比較部116は、動作プログラム中のL001のスキャンコマンド(MOVSCAN2)とともに登録された対象物番号に対応するマスタデータ121を不揮発性メモリ117から読み出す。位置姿勢比較部116は、第1マスタデータに対する前記第1計測データの3次元の位置姿勢を計算して、その変化量を第1修正量とする。ただし、修正量は、マスタデータをロボット座標系126まわりにどれだけ動かすと計測データに一致するかを表す変換量とする。つまり、マスタデータから決まる対象物の位置姿勢C2と計測データから決まる対象物の位置姿勢C1の関係が式5の関係になるような変換行列Tを求めて、修正量とする。
(S1903)
動作プログラム解析部110は、動作プログラム中のL002に書かれたスキャンコマンド(MOVSCAN2)の実行を指令生成部へ指令する。指令生成部111は動作プログラムのスキャンコマンドとともに登録された第2教示位置(C00002に保存された教示位置)を基準としてスキャン条件に従った所定の計測範囲を計測する軌道を生成する。サーボ制御部112は、生成された軌道にしたがって、モータを駆動してロボットを動かす。ロボットが動作するとともに、計測部114はワーク形状計測センサ108から第2計測データを得る。第2計測データは、アース線下端1701の計測データである。
(S1904)
位置姿勢比較部116は、動作プログラム中のL002のスキャンコマンド(MOVSCAN2)とともに登録された対象物番号に対応するマスタデータ121を不揮発性メモリ117から読み出す。位置姿勢比較部116は、第2マスタデータに対する前記第2計測データの3次元の位置姿勢を計算して、その変化量を第2修正量とする。
(S1905)
動作プログラム解析部110は、動作プログラム中のL003に書かれたサブルーチン(CATCH)を呼び出す。L003は第2修正量(P010)を使ってアース線下端の把持位置である第2教示位置修正し、アース線下端を右グリッパで把持するための移動を行う。修正した教示位置G2は、アース線把持位置であるグリッパ教示位置G1と修正量Tを使って式6のように計算する。
(S1906)
L004に書かれた移動コマンド(MOVL)を実行し、アース線をタブの上まで移動させる。
(S1907)
L005に書かれた、ロボット座標系126から見た右アームの現在位置を取得するコマンド(GETS)を実行して、現在位置を位置変数P011に代入する。
(S1908)
L006に書かれた行列の積の計算コマンド(MULMAT)を実行して、現在位置にタブの修正量をかけた結果を位置変数P012に代入する。
(S1909)
L007に書かれたP012の位置への移動コマンド(MOVL)を実行し、現在位置を修正した位置である、正しいタブ上の位置へ移動する。これは、現在位置である教示位置をタブ修正量をTとして、式6を使って修正した位置への移動となる。
(S1910)
L008に書かれた移動コマンド(IMOV)を実行し、アース線をタブへ挿入する。
このように、スキャンコマンドと演算コマンド、移動コマンドを組み合わせた動作プログラムを記述することで、同じスキャンの教示の仕方で、把持動作および挿入動作を修正することができる。
図21は、第5実施例の動作を表す図である。左グリッパ106は、コネクタ404を把持している。コネクタ404は柔軟なリード線405とつながっており、もう一方の端にコネクタ403が接続されている。ケース1703上部には穴が開いている。本実施例は、コネクタ403をケース1703の穴に通す作業を行うものである。
コネクタ403の位置が不確定であるため、センサで計測し、左アームの移動によってコネクタ403をケース1703の穴の上へ移動させて、コネクタを穴へ通す動作を行う。
その動作は、図22に示すような教示動作(S2201〜S2206)と、図23に示すような再生動作(S2301〜S2307)になる。
I.教示動作
まず、教示動作(S2201〜S2206)について、図22に基づいて説明する。
(S2201)
まず、コネクタ形状を計測する動作を教示するため、操作者が教示装置103のキーを操作する。操作者は、右グリッパ107をコネクタ403の位置へ移動するようにキーを操作する。指令生成部111はこのキー操作にしたがってロボットが移動する軌道を生成する。
(S2202)
操作者が教示装置103を操作して、スキャンコマンド(MOVSCAN2)を教示位置と対象物番号とともに動作プログラムに登録する。この移動スキャンコマンド(MOVSCAN2)は、ワーク形状計測センサ108がワークの計測データ120を得るスキャン動作をさせるためのコマンドさせるためのコマンドであり、させるためのコマンドであり、MOVSCANとは、引数に指定する位置変数に入る値の点で相違する。動作プログラムは不揮発性メモリに保存される。ここで、スキャンコマンド実行後に、スキャンコマンドの引数に指定した位置変数に入る値は、修正した教示位置ではなく、修正量であり、マスタデータをロボット座標系126まわりにどれだけ動かすと計測データに一致するかを表す変換量である。
具体例を図24に基づいて説明する。図24は教示装置の動作プログラム表示画面2401を示している。操作者は図示しないメニューの命令一覧の画面からスキャンコマンドを選択する。選択後、操作者が教示装置103上のEnterキーを押すと動作プログラム2402に図24のL001に示すように登録される。同時に、ロボットの現在位置が教示位置データ2403として保存される。教示位置データ2403は、教示位置番号(C00003)として保存される。
スキャンコマンド(MOVSCAN2)は、(i)教示位置番号(C00003)、(ii)スキャン結果である修正量の成分X、Y、Z、Roll、Pitch、Yawが代入される位置変数(P010)、(iii)スキャン動作の移動速度(V=5.0)、(iv)対象物番号(OBJ#(1))と関連づけられて動作プログラムに記録される。
(S2203)
操作者が教示装置103の画面上に表示されるカーソルをスキャンコマンドの行に合わせて、画面(図24)上のスキャン実行ボタン(SCAN)508を押す。スキャン実行ボタン508が押されると、指令生成部111は、動作プログラムの教示位置(C00003に保存された教示位置)を基準として、所定のスキャン条件に基づいて、所定の計測範囲を計測する軌道を生成する。
サーボ制御部112は、モータを駆動し、生成された軌道にしたがってロボットの右アームを動かす。この所定のスキャン条件は、たとえば、スキャン角度、スキャン距離、およびスキャン速度として、あらかじめ制御装置のパラメータに保存されている。ロボットが動くとともに、計測部114は、ワーク形状計測センサ108からの計測データを得る。
(S2204)
次に、教示装置のディスプレイに、得られた計測データが3次元イメージで表示される。
(S2205)
操作者がマスタ登録操作を行う。このマスタ登録操作については、再度の説明は省略する。操作者がこのマスタ登録操作を行うと、前記計測データはマスタデータとして不揮発性メモリに保存される。
(S2206)
操作者が、教示装置103のキーを操作して、スキャンコマンド(MOVSCAN2)に指定した前記位置変数(P010)に再生ステップで入る修正量を使って、教示位置修正の演算をするコマンドと移動コマンドを動作プログラムに登録する。
L002はスキャンコマンドの結果である修正量を同次変換行列にして逆行列を計算し、結果をP011に代入するコマンド(INVMAT)である。変換元の位置変数(P010)と、計算した逆行列を代入する変数(P011)と関連づけられて保存される。
L003は、ロボット座標系126から見た左アームの現在位置を取得するコマンド(GETS)であり、現在位置を意味するシステム変数($PX001)と、システム変数の内容のコピーを代入する位置変数(P012)と関連づけられて保存される。
L004は、P011を同次変換行列にしたものとP012を同次変換行列にしたものの積を計算し、結果をP013に入れる演算コマンド(MULMAT)である。L004において、P011はコネクタの修正量の逆行列、P012は現在位置である。
L005は、P013の位置への移動コマンド(MOVL)であり、位置変数(P013)と移動速度(V=10.0)と関連付けられて保存される。L005によって、ずれている位置にあるコネクタをマスタ登録されている位置へ修正することになる。
L006、はP020に設定されている量だけ移動する相対移動コマンド(IMOV)であり、位置変数(P020)と移動速度(V=10.0)と関連付けられて保存される。P020には、ケースの穴を通すためのコネクタの垂直方向の移動量があらかじめ設定されており、RFはロボット座標系上の相対移動量として動くことを意味する。
以上説明したように、教示操作によって、動作プログラムとマスタデータが作成されて不揮発性メモリ117に保存されることになる。
II.再生動作
次に、再生動作(S2301〜S2307)について、図23に基づいて説明する。この再生動作は、動作プログラムに書かれたコマンドを実行する動作である。
(S2301)
動作プログラム解析部110が不揮発性メモリから動作プログラムとスキャン条件を呼び出す。動作プログラム解析部110は、動作プログラム中のL001に書かれたスキャンコマンド(MOVSCAN2)の実行を指令生成部へ指令する。指令生成部111は動作プログラムのスキャンコマンドとともに登録された教示位置(P010)を基準としてスキャン条件に従った所定の計測範囲を計測する軌道を生成する。サーボ制御部112は、生成された軌道にしたがって、モータを駆動してロボットを動かす。計測部114はワーク形状計測センサ108から計測データを得る。
(S2302)
位置姿勢比較部116は、動作プログラム中のL001のスキャンコマンド(MOVSCAN2)とともに登録された対象物番号に対応するマスタデータ121を不揮発性メモリ117から読み出す。位置姿勢比較部116は、マスタデータに対する前記計測データの3次元の位置姿勢を計算して、その変化量を修正量とする。ただし、修正量は、マスタデータをロボット座標系126まわりにどれだけ動かすと計測データに一致するかを表す変換量とする。つまり、マスタデータから決まる対象物の位置姿勢C2と計測データから決まる対象物の位置姿勢C1の関係が式5の関係になるような変換行列Tを求めて、修正量とする。
(S2303)
L002に書かれた逆行列コマンド(INVMAT)を実行し、修正量の逆行列を計算してP011に代入する。
(S2304)
L003に書かれた、ロボット座標系126から見た左アームの現在位置を取得するコマンド(GETS)を実行して、現在位置をP012に代入する。
(S2305)
L004に書かれた行列の積の計算コマンド(MULMAT)を実行して、左アームの現在位置に修正量の逆行列をかけた結果をP013に代入する。この計算は、左グリッパの現在位置を、計測したコネクタのずれ分だけ逆方向に動かすことで、コネクタの現在位置を理想の位置へ修正するためのものであり、グリッパ教示位置G1と修正量Tを使って式7のように計算する。
(S2306)
L005に書かれた位置変数P013の位置への移動コマンド(MOVL)を実行し、ずれた位置にあるコネクタを、正しい位置であるマスタデータの位置へ移動する。
(S2307)
L006に書かれた移動コマンド(IMOV)を実行し、コネクタをケースの穴へ通す。
このように、スキャンコマンドと演算コマンド、移動コマンドを組み合わせた動作プログラムを記述することで、不確定な対象の位置を正しい位置へ修正することができる。
本実施例は、必要な計測データが足りない場合に、自動的に再計測を行って能動的にデータを取得し、教示位置を修正するものである。
図25は、第6実施例の動作を示すフローチャートである。教示動作については前述の図2の手順と同様であるので、その説明は省略する。
以下、再生動作について説明する。図25の再生動作(S2501〜S2507)は、動作プログラムに書かれたスキャンコマンドと移動コマンドを実行する動作である。なお、動作プログラム表示画面は、図6に示したものと同一である。
(S2501)
動作プログラム解析部110が不揮発性メモリ117から動作プログラム118とスキャン条件119を呼び出す。動作プログラム解析部110は、動作プログラム中に書かれたスキャンコマンドの実行を指令生成部111へ指令する。指令生成部111は、動作プログラム118のスキャンコマンドとともに登録された教示位置を基準としてスキャン条件119に従った所定の計測範囲を計測する軌道を生成する。サーボ制御部112は、生成された軌道にしたがって、モータを駆動してロボットを動かす。計測部114は、ワーク形状計測センサ108から計測データを得る。
(S2502)
位置姿勢比較部116は、動作プログラム中のスキャンコマンドとともに登録された対象物番号125に対応するマスタデータを不揮発性メモリ117から読み出す。位置姿勢比較部116は、マスタデータ121に対する前記計測データの3次元の位置姿勢を計算する。
(S2503)
位置姿勢比較部116は、計測データの中にマスタデータ121と一致する部分が存在しない場合(例えば、マスタデータ121から抽出した角の点を結んでできる直方体の辺の長さが、計測データから抽出した角の点を結んでできる直方体のどの辺にも一致しない場合)、計測データの中にマスタデータ121と一致する部分が存在しないと判断する。一方、位置姿勢比較部116は、計測データの中にマスタデータ121と一致する部分が存在すると判断した場合は、マスタデータ121に対する前記計測データの3次元の位置姿勢を計算して修正量とする。
(S2504)
位置姿勢比較部116は、計測データの中にマスタデータ121と一致する部分が存在しないと判断した場合は、前回の計測姿勢とは異なる姿勢の計測動作の実行を指令生成部へ指令する。
図26はマスタデータ801と計測データ2601の3次元イメージの例である。計測データ2601は、マスタデータに対して姿勢が大きくずれている場合のものである。
位置姿勢比較部116は、修正量124の計算において、まず、特徴点の抽出を行う。図26の3次元イメージからエッジ点を抽出すると、図27(a)のような点が得られる。
2701はマスタデータ801から抽出したエッジ点を示している。2702は計測データ2601から抽出したエッジ点を示している。
エッジ点のデータから直線を抽出すると、図27(b)のように、エッジ点をつなげた直線が得られる。
図において、2703はマスタデータの直線であり、2704は計測データの直線である。
直線の交点を特徴点とし、図27(c)のように直線の交点に符号を付ける。このとき、スキャン方向において最初に位置する特徴点を1番とする。図27(c)では、マスタデータについては符号p1〜p4を付している。計測データについては符号q1〜q4を付している。2707はマスタデータの特徴点である。2708は計測データの特徴点である。各特徴点は位置成分X、Y、Zを持つ。
ところが、図27(c)のマスタデータと計測データでは対象物を見ている面が異なるため、形が一致するところがない。そのため、位置姿勢比較部116は、計測データの中にマスタデータと一致する部分が存在しないと判断する。
図28は再計測実行の例を示している。1回目の計測姿勢とは異なる姿勢で2回目の計測を行う。このとき、教示位置とは異なる位置へ動くことになるので衝突を防ぐため、1回目の計測データから、物体が存在しない範囲を2回目の計測姿勢の候補として選ぶ。
図29は同一の対象物の1回目の計測データ2601と2回目の計測データ3001を表している。
図30は図29の3次元イメージからエッジ点を抽出し(図30(a))、直線を抽出し(図30(b))、直線の交点を特徴点として番号を付ける(図30(c))手順を示している。このとき、計測データについては1回目の計測データと2回目の計測データを重ねて使用している。図30(c)において、点p1、p2、p3、p4で囲まれるマスタデータの四角形と、点q1、q2、q3、q4で囲まれる計測データの四角形が相似で、各辺の長さもほぼ一致するため、2つの四角形の姿勢の違いを修正量とする。もしも、2回目の計測データにもマスタデータと一致する部分がない場合には、ステップS2502へ戻って繰り返す。
(S2505)
修正量が計算された場合には、指令生成部111は教示位置を修正量にしたがって修正する。
(S2506)
指令生成部111は、修正した教示位置をスキャンコマンドに指定された位置変数へ代入する。
(S2507)
動作プログラム解析部が動作プログラム中に書かれた移動コマンドの実行を指令生成部へ指令し、指令生成部111は動作プログラムの移動コマンドに指定された位置変数の位置への軌道を生成する。
このように、必要なデータが足りない場合には、自動的に再計測を行って能動的にデータを取得する。この取得したデータに基づいて修正量を計算するので、教示位置を修正することができる。
本実施例は、教示操作において、螺旋軌道で計測するヘリカルスキャンを行って計測したデータをマスタデータとして登録し、また、再生動作において、姿勢を変えて複数回再計測するのではなく、螺旋軌道で計測するヘリカルスキャンを1回行って計測データとする方法である。
本発明に係る方法は、教示動作については前述の図2の手順と同様であり、再生動作については図3の手順と同様である。ただし、教示動作および再生動作における計測動作を、教示位置を基準にしてスキャン条件に従ったヘリカルスキャンで行う。このスキャン条件は、スキャン角度406、スキャン距離407およびスキャン速度として、あらかじめ制御装置のパラメータに保存されている。
図31はスキャン条件から作成する螺旋軌道を示している。図31(a)のように、スキャン角度406だけ傾けてスキャン距離だけ移動する軌道を、垂直軸302まわりに、あらかじめ決められた回転角303だけ回転させると、図31(b)の螺旋軌道3101になる。このとき、垂直方向の移動距離304は、スキャン角度とスキャン距離から(垂直方向移動距離)=(スキャン距離)cos(スキャン角度)である。図31(b)では、教示位置を中心に、ワーク形状計測センサ108を教示位置の垂直軸302まわりに180度の回転角303でまわしながら、垂直軸の上方向にも同時に移動することで、螺旋軌道3101を描いて計測データを得る様子を示している。
このようにすることで、一回の計測で複数方向から計測したデータを得ることができるので、ワークの教示位置からの姿勢ずれが大きい場合にも対応できる。また、再生動作時においては、姿勢を変えて複数回再計測するよりも、計測時間が短くなる。
本発明の第1実施例を示すロボット制御装置を含むロボットシステムの構成図 本発明の第1実施例のロボット制御装置の教示動作を示すフローチャート 本発明の第1実施例のロボット制御装置の再生動作を示すフローチャート 本発明の教示動作を示す図 本発明の第1実施例の動作プログラム表示画面の例(その1) 本発明の第1実施例の動作プログラム表示画面の例(その2) 本発明の計測データ表示画面の例 本発明のマスタデータと計測データの3次元イメージの例 本発明の特徴点抽出の例 本発明のマスタデータから見た計測データの位置姿勢の求め方の例 本発明の再生動作を示す図 本発明の第2実施例の動作プログラム表示画面の例 本発明の第2実施例のロボット制御装置を含むロボットシステムの構成図 本発明の第2実施例のロボット制御装置の教示動作を示すフローチャート 本発明の第2実施例のロボット制御装置の再生動作を示すフローチャート 本発明のスキャン条件入力画面の例 本発明の第4実施例の作業における座標系の関係図 本発明の第4実施例のロボット制御装置の教示動作を示すフローチャート 本発明の第4実施例のロボット制御装置の再生動作を示すフローチャート 本発明の第4実施例の動作プログラム表示画面の例 本発明の第5実施例の作業における座標系の関係図 本発明の第5実施例のロボット制御装置の教示動作を示すフローチャート 本発明の第5実施例のロボット制御装置の再生動作を示すフローチャート 本発明の第5実施例の動作プログラム表示画面の例 本発明の第6実施例のロボット制御装置の再生動作を示すフローチャート 本発明の第6実施例のマスタデータと計測データの3次元イメージの例 本発明の第6実施例の1回目の特徴点抽出の例 本発明の第6実施例の2回目の計測動作を示す図 本発明の第6実施例の1回目と2回目の計測データの3次元イメージの例 本発明の第6実施例の2回目の特徴点抽出の例 本発明の第7実施例のヘリカルスキャンの軌道の例
101 ロボット
102 制御装置
103 教示装置
104 左アーム
105 右アーム
106 左グリッパ(エンドエフェクタ)
107 右グリッパ(エンドエフェクタ)
108 ワーク形状計測センサ
109 ワーク
110 動作プログラム解析部
111 指令生成部
112 サーボ制御部
113 教示データ記憶部
114 計測部
115 マスタデータ記憶部
116 位置姿勢比較部
117 不揮発性メモリ
118 動作プログラム(JOB)
119 スキャン条件
120 計測データ
121 マスタデータ
122 現在位置
123 教示位置
124 修正量
125 対象物番号
401 グリッパ座標系
402 センサ座標系
403 コネクタ
404 コネクタ(左グリッパ把持)
405 コネクタ間リード線
406 スキャン角度
407 スキャン距離
501 動作プログラム表示画面
502 動作プログラム
503 教示位置データ
504 スキャンコマンド
505 教示位置番号
506 位置変数
507 スキャン動作の移動速度
508 スキャン実行ボタン
601 移動コマンド
602 把持動作の移動速度
701 計測データ表示画面
702 3次元イメージ
703 対象物名
704 登録ボタン
801 マスタデータの3次元イメージ
802 計測データの3次元イメージ
901 マスタデータからのエッジ点抽出のイメージ
902 計測データからのエッジ点抽出のイメージ
903 マスタデータからの直線抽出のイメージ
904 計測データからの直線抽出のイメージ
905 マスタデータからの直線の交点抽出のイメージ
906 計測データからの直線の交点抽出のイメージ
907 エッジ点
908 直線
1201 把持移動コマンド
1301 スキャン条件入力部
1601 スキャン条件入力画面
1602 スキャン角度
1603 スキャン距離
1604 スキャン速度
1605 スキャン条件設定ボタン
1701 アース線下端
1702 アース線
1703 ケース
1704 アース線下端挿入タブ
2001 動作プログラム表示画面
2002 動作プログラム
2003 教示位置データ
2401 動作プログラム表示画面
2402 動作プログラム
2403 教示位置データ
2601 1回目の計測データ
2701 マスタデータからのエッジ点抽出のイメージ
2702 計測データからのエッジ点抽出のイメージ
2703 マスタデータからの直線抽出のイメージ
2704 計測データからの直線抽出のイメージ
2705 マスタデータからの直線の交点抽出のイメージ
2706 計測データからの直線の交点抽出のイメージ
2707 エッジ点
2708 直線
2901 2回目の計測データ
3001 マスタデータからのエッジ点抽出のイメージ
3002 計測データからのエッジ点抽出のイメージ
3003 マスタデータからの直線抽出のイメージ
3004 計測データからの直線抽出のイメージ
3005 マスタデータからの直線の交点抽出のイメージ
3006 計測データからの直線の交点抽出のイメージ
3007 エッジ点
3008 直線
3101 螺旋軌道
3102 垂直軸
3103 垂直軸まわりの回転角
3104 垂直方向の移動距離

Claims (2)

  1. ワークを把持するエンドエフェクタと、前記ワークの形状計測手段と、を備えたロボットの制御方法において、
    前記エンドエフェクタを把持位置へ移動させて教示位置として記録し、前記教示位置を中心としてあらかじめ決められた範囲を計測範囲とし、前記計測範囲をワークの形状計測手段により計測したワーク形状をマスタデータとして前記教示位置と関連づけて記録する教示ステップと、
    前記教示位置を中心としてあらかじめ決められた範囲を計測範囲とし、前記計測範囲をワークの形状計測手段により計測したワーク形状を計測データとし、前記マスタデータと前記計測データを比較し、前記マスタデータに対する前記計測データの3次元の位置姿勢を計算して修正量とし、前記修正量にしたがって前記把持位置を修正し、前記エンドエフェクタを前記修正された把持位置へ移動する指令を生成する再生ステップと、を含み、
    前記マスタデータは、ヘリカルスキャンの軌道に沿って前記ワークの形状計測手段により計測したワーク形状の計測データであることを特徴とするロボット制御方法。
  2. ワークを把持するエンドエフェクタと、前記ワークの形状計測手段と、を備えたロボットの制御方法において、
    前記エンドエフェクタを把持位置へ移動させて教示位置として記録し、前記教示位置を中心としてあらかじめ決められた範囲を計測範囲とし、前記計測範囲をワークの形状計測手段により計測したワーク形状をマスタデータとして前記教示位置と関連づけて記録する教示ステップと、
    前記教示位置を中心としてあらかじめ決められた範囲を計測範囲とし、前記計測範囲をワークの形状計測手段により計測したワーク形状を計測データとし、前記マスタデータと前記計測データを比較し、前記マスタデータに対する前記計測データの3次元の位置姿勢を計算して修正量とし、前記修正量にしたがって前記把持位置を修正し、前記エンドエフェクタを前記修正された把持位置へ移動する指令を生成する再生ステップと、を含み、
    前記再生ステップにおいて、前記ワークの形状計測手段は、ヘリカルスキャンの軌道に沿って前記ワーク形状を計測することを特徴とするロボット制御方法。
JP2009015162A 2009-01-27 2009-01-27 ロボットシステムおよびロボットの制御方法 Expired - Fee Related JP5239901B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009015162A JP5239901B2 (ja) 2009-01-27 2009-01-27 ロボットシステムおよびロボットの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009015162A JP5239901B2 (ja) 2009-01-27 2009-01-27 ロボットシステムおよびロボットの制御方法

Publications (2)

Publication Number Publication Date
JP2010172969A JP2010172969A (ja) 2010-08-12
JP5239901B2 true JP5239901B2 (ja) 2013-07-17

Family

ID=42704414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009015162A Expired - Fee Related JP5239901B2 (ja) 2009-01-27 2009-01-27 ロボットシステムおよびロボットの制御方法

Country Status (1)

Country Link
JP (1) JP5239901B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101294348B1 (ko) 2012-05-11 2013-08-07 재단법인대구경북과학기술원 원격제어 로봇의 자율적 협업 기반 밸브 조작 방법 및 그 시스템
CN104959982A (zh) * 2013-10-10 2015-10-07 精工爱普生株式会社 机器人控制系统、机器人、程序以及机器人控制方法
JP7199101B2 (ja) * 2019-10-30 2023-01-05 株式会社Yoods ロボット制御システム、ロボット制御装置、ロボット制御方法及びプログラム
JP6713700B1 (ja) * 2020-03-09 2020-06-24 リンクウィズ株式会社 情報処理方法、情報処理システム、プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63191562A (ja) * 1987-02-02 1988-08-09 Meidensha Electric Mfg Co Ltd バリ取りロボツトのバリ追従機構
JPH0654841A (ja) * 1992-08-07 1994-03-01 Toshiba Corp X線ct装置
JPH06210580A (ja) * 1993-01-13 1994-08-02 Nissan Motor Co Ltd ワーク把持補正装置
JP2003211382A (ja) * 2002-01-16 2003-07-29 Denso Wave Inc ロボット制御装置
JP2003231078A (ja) * 2002-02-14 2003-08-19 Denso Wave Inc ロボットアームの位置制御方法およびロボット装置
JP3876234B2 (ja) * 2003-06-17 2007-01-31 ファナック株式会社 コネクタ把持装置、同装置を備えたコネクタ検査システム及びコネクタ接続システム
JP2007290056A (ja) * 2006-04-24 2007-11-08 Yaskawa Electric Corp ロボットおよびその物体把持方法
JP2008049459A (ja) * 2006-08-28 2008-03-06 Toshiba Corp マニピュレータ制御システム、マニピュレータ制御方法およびプログラム
JP2008279549A (ja) * 2007-05-10 2008-11-20 Honda Motor Co Ltd ワーク搬送システムおよびワーク搬送方法

Also Published As

Publication number Publication date
JP2010172969A (ja) 2010-08-12

Similar Documents

Publication Publication Date Title
Pan et al. Recent progress on programming methods for industrial robots
EP1607194B1 (en) Robot system comprising a plurality of robots provided with means for calibrating their relative position
CN113001535B (zh) 机器人工件坐标系自动校正系统与方法
JP3732494B2 (ja) シミュレーション装置
JP7439073B2 (ja) 溶接パス生成のためのシステム及び方法
JP4513663B2 (ja) 自動組立システムにおける組立機構の動作教示方法
JP2017094406A (ja) シミュレーション装置、シミュレーション方法、およびシミュレーションプログラム
JP5239901B2 (ja) ロボットシステムおよびロボットの制御方法
JP2010142910A (ja) ロボットシステム
US11648683B2 (en) Autonomous welding robots
JP7293267B2 (ja) 情報処理装置、情報処理方法及びロボットシステム
JPWO2009025271A1 (ja) ロボットの制御装置および制御方法
WO1994000269A1 (en) Robot for welding
Yumbla et al. Tolerance dataset: mating process of plug-in cable connectors for wire harness assembly tasks
JP2010094777A (ja) 遠隔操作支援装置
CN115351389A (zh) 自动焊接方法和装置、电子设备及存储介质
JP3327854B2 (ja) 溶接ロボットの教示方法および教示装置
Liu et al. Robust robotic 3-D drawing using closed-loop planning and online picked pens
JP6825026B2 (ja) 情報処理装置、情報処理方法及びロボットシステム
JP5291482B2 (ja) ロボット教示プログラム修正装置
JPH10124130A (ja) 組立装置
WO2023205209A1 (en) Autonomous assembly robots
JP2011083883A (ja) ロボット装置
JP7112528B2 (ja) 作業座標作成装置
CN111225772B (zh) 垂直多关节机器人的示教数据创建系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110908

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20120216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130130

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: 20130305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130318

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees