(57)【要約】【課題】  加工を中断することなく、簡単にロボットによる加工プログラムが作成でき、高価な治具も必要としない加工プログラム作成装置を提供する。【解決手段】  オフラインプログラミング装置１、ロボット制御装置２ａ，３ａ、視覚センサ４，５とを通信線１０で接続する。装置１にＣＡＤで作成された加工するワーク６の形状を格納し表示する。ワーク形状の頂点、稜線を指定し、指定頂点を教示点としその間を直線の加工経路とし、稜線を指定してその両端を教示点、指定稜線を加工経路とし、加工プログラムを生成する。視覚センサ４，５で撮像した実際のワークの位置姿勢とにより加工プログラムを補正する。シミュレーションし、干渉が発生しないよう、また、ロボットの各軸のストロークリミット内になるよう台車７でワーク６を移動させる。または加工ツール８，９の姿勢を変える。簡単に加工プログラムが作成できる。【選択図】          図１
2006048244.tif 000002
【特許請求の範囲】
【請求項１】
ロボットによりワークに対して加工を行う加工プログラムを作成する加工プログラム作成装置であって、
ワークの形状モデルを表示画面に表示する表示手段と、
該表示された画面上で、ワークモデルの頂点又は／及び稜線を指定する手段と、
加工ツールの姿勢を指定する手段と、
前記指定された頂点又は／及び稜線に基づいて経路を生成し、該経路に対して指定された加工ツール姿勢になるように仮の加工プログラムを生成する手段と、
前記加工ツールで加工するワークの領域を撮像し、ワーク位置姿勢を検出する視覚センサと、
前記視覚センサで検出されたワークの位置姿勢に基づいて、前記生成された仮の加工プログラムを補正して実ワーク加工用の加工プログラムを作成する手段と、
を備えたことを特徴とする加工プログラム作成装置。
【請求項２】
ロボットによりワークに対して加工を行う加工プログラムを作成する加工プログラム作成装置であって、
ワークの形状モデルを表示画面に表示する表示手段と、
該表示された画面上で加工する面を指定すると共に、加工開始点、加工方向、ピッチ量とピッチ方向を入力する手段と、
加工ツールの姿勢を設定する手段と、
該指定された面上の加工開始点より、設定された方向に設定ピッチだけシフトさせながら指定した面上を移動する経路を生成し、各経路に対して設定された加工ツール姿勢になるように仮の加工プログラムを生成する手段と、
前記加工ツールで加工するワークの領域を撮像し、ワーク位置姿勢を検出する視覚センサと、
前記視覚センサで検出されたワークの位置姿勢に基づいて、前記生成された仮の加工プログラムを補正して実ワーク加工用の加工プログラムを作成する手段と、
を備えたことを特徴とする加工プログラム作成装置。
【請求項３】
前記仮の加工プログラムを生成する手段は、前記指定された頂点を教示点とし、指定された稜線の両端点を教示点とし、前記指定された頂点の教示点と他の教示点間は直線の経路とし、指定された稜線の両端点の教示点間は稜線を経路とし、頂点又は／及び稜線を指定した順にしたがって経路を求め、該経路に対して指定された加工ツール姿勢になるように仮の加工プログラムを生成する請求項１に記載の加工プログラム作成装置。
【請求項４】
前記実ワーク加工用の加工プログラムを作成する手段は、前記生成された仮の加工プログラムの教示点の座標位置・姿勢、または該仮の加工プログラムの教示点を定義する座標系の原点及び姿勢を補正して実ワーク加工用の加工プログラムを作成する請求項１乃至３に記載の加工プログラム作成装置。
【請求項５】
前記視覚センサのカメラは、加工ツールが取り付けられたロボットに取り付けられている請求項１乃至４の内いずれか１項に記載の加工プログラム作成装置。
【請求項６】
加工ツールは複数のロボットに取り付けられ、１つのワークに対して各ロボットが加工する請求項１乃至５の内いずれか１項に記載の加工プログラム作成装置。
【請求項７】
作成された前記実ワーク加工用の加工プログラムのシミュレーションを実行し、全加工経路において正常に加工を行うことができるかチェックする手段と、異常が検出されたとき、アラームを発生させる手段を備えた請求項１乃至６の内いずれか１項に記載の加工プログラム作成装置。
【請求項８】
作成された前記実ワーク加工用の加工プログラムのシミュレーションを実行し、全加工経路においてロボットの各軸の許容移動範囲内かチェックする手段と、許容移動範囲を超えたことが検出されたとき、ワークを加工可能位置まで移動させる手段を備えた請求項１乃至６の内いずれか１項に記載の加工プログラム作成装置。
【請求項９】
加工ツールを備え、ワークに対して加工を行う第１のロボットと、ワークを把持する第２のロボットを備え、前記ワークを加工可能位置まで移動させる手段を前記第２のロボットで構成した請求項８に記載の加工プログラム作成装置。
【請求項１０】
前記ワークは、移動可能な台車上に載置され、該台車が前記加工可能位置まで移動させる手段を構成する請求項８に記載の加工プログラム作成装置。
【請求項１１】
作成された前記実ワーク加工用の加工プログラムのシミュレーションを実行し、全加工経路において、ロボットと他のものとの干渉が発生しないかチェックする手段と、干渉発生が検出されたとき、加工プログラムの教示点の位置姿勢を干渉回避位置姿勢に調整する手段を備えた請求項１乃至１０の内いずれか１項に記載の加工プログラム作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被加工物のワークやロボットのモデルを用いてオフラインプログラミング装置で加工プログラムを作成し、該加工プログラムを修正してロボットが実施する最終的な加工プログラムを作成する加工プログラム作成装置に関する。
【背景技術】
【０００２】
ロボットを用いて機械部品等のワークのバリ取り作業やアーク溶接などの加工を行うシステムでは、オフラインプログラミング装置により、ワークの形状モデルやロボットモデルを用いて加工プログラムを作成する方法が採用されている。しかし、実際のワークに対して加工を行う場合には、ワークの位置、姿勢等が実際のものとオフラインプログラミング装置でのものとが相違することにより、ワークの位置、姿勢を視覚センサ等で撮像し、この位置、姿勢のずれを求めて、オフラインプログラミング装置で作成された加工プログラムを補正し、実際の加工に使用する加工プログラムを作成している。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
オフラインプログラミング装置でロボットによる加工プログラムを作成する場合も、また、直接ロボットを用いて加工プログラムを教示する場合でも、１点、１点の教示点を教示しなければならず、複雑な形状のワークをロボットにより加工するときは、この加工プログラム作成のための教示工数が多大で、加工プログラムの作成が困難であった。特に、複数のロボットを用いてワークを加工する場合、この教示作業が非常に難しかった。
【０００４】
また、視覚センサでワークの位置姿勢を検出し、オフラインプログラミング装置で作成した加工プログラムを検出したワークの位置姿勢に合うようにそのずれを補正して実際の加工プログラムを作成するとき、加工途中でロボットの各軸ストロークリミット（移動可能範囲）を超えて移動させるような指令が含まれる可能性があり、加工が中断される危険性がある。従来、ワークがロボットにより加工する際に許容される配置位置内に入っているか確認する方法がなく、加工中断の可能性を含む加工プログラムとなっていた。
【０００５】
従来、加工するワークの移動を行うためのターンテーブルなどの高価な治具を必要とし、ワークによっては、治具を作り変えねばならない場合があり、加工経費の上昇の原因となっていた。
【０００６】
そこで、本願発明は、上述した従来技術の問題点、課題を改善し、簡単にロボットによる加工プログラムが作成でき、かつ、加工を中断せずに加工プログラムが実行でき、さらには、高価な治具も必要としない加工プログラム作成装置を提供することを目的とするものである。
【課題を解決するための手段】
【０００７】
本願請求項１に係わる発明は、ロボットによりワークに対して加工を行う加工プログラムを作成する加工プログラム作成装置であって、ワークの形状モデルを表示画面に表示する表示手段と、該表示された画面上で、ワークモデルの頂点又は／及び稜線を指定する手段と、加工ツールの姿勢を指定する手段と、前記指定された頂点又は／及び稜線に基づいて経路を生成し、該経路に対して指定された加工ツール姿勢になるように仮の加工プログラムを生成する手段と、前記加工ツールで加工するワークの領域を撮像し、ワーク位置姿勢を検出する視覚センサと、前記視覚センサで検出されたワークの位置姿勢に基づいて、前記生成された仮の加工プログラムを補正して実ワーク加工用の加工プログラムを作成する手段とを備えたことを特徴とするものである。
【０００８】
また、請求項２に係わる発明は、ロボットによりワークに対して加工を行う加工プログラムを作成する加工プログラム作成装置であって、ワークの形状モデルを表示画面に表示する表示手段と、該表示された画面上で加工する面を指定すると共に、加工開始点、加工方向、ピッチ量とピッチ方向を入力する手段と、加工ツールの姿勢を設定する手段と、
該指定された面上の加工開始点より、設定された方向に設定ピッチだけシフトさせながら指定した面上を移動する経路を生成し、各経路に対して設定された加工ツール姿勢になるように仮の加工プログラムを生成する手段と、前記加工ツールで加工するワークの領域を撮像し、ワーク位置姿勢を検出する視覚センサと、前記視覚センサで検出されたワークの位置姿勢に基づいて、前記生成された仮の加工プログラムを補正して実ワーク加工用の加工プログラムを作成する手段とを備えたことを特徴とするものである。
【０００９】
また、請求項３に係わる発明は、前記請求項１に係わる発明おける前記仮の加工プログラムを生成する手段を、前記指定された頂点を教示点とし、指定された稜線の両端点を教示点とし、前記指定された頂点の教示点と他の教示点間は直線の経路とし、指定された稜線の両端点の教示点間は稜線を経路とし、頂点又は／及び稜線を指定した順にしたがって経路を求め、該経路に対して指定された加工ツール姿勢になるように仮の加工プログラムを生成するものとした。  
又、請求項４に係わる発明は、前述した各発明において、前記実ワーク加工用の加工プログラムを作成する手段を、前記生成された仮の加工プログラムの教示点の座標位置・姿勢、または該仮の加工プログラムの教示点を定義する座標系の原点及び姿勢を補正して実ワーク加工用の加工プログラムを作成するものとした。
更に、請求項５に係わる発明は、前述した各発明において、前記視覚センサのカメラは、加工ツールが取り付けられたロボットに取り付けられているものとした。さらに、請求項６に係わる発明においては、加工ツールを複数のロボットに取り付けられ、１つのワークに対して各ロボットが加工するものとした。  
請求項７に係わる発明は、前述の各発明において、作成された前記実ワーク加工用の加工プログラムのシミュレーションを実行し、全加工経路において正常に加工を行うことができるかチェックする手段と、異常が検出されたとき、アラームを発生させる手段を備えるものとした。
【００１０】
また、請求項８に係わる発明は、請求項１〜６に係わる発明において、作成された前記実ワーク加工用の加工プログラムのシミュレーションを実行し、全加工経路においてロボットの各軸の許容移動範囲内かチェックする手段と、許容移動範囲を超えたことが検出されたとき、ワークを加工可能位置まで移動させる手段を備えるものとした。さらに、請求項９に係わる発明は、加工ツールを備え、ワークに対して加工を行う第１のロボットと、ワークを把持する第２のロボットを備え、前記ワークを加工可能位置まで移動させる手段を前記第２のロボットで構成した。また請求項１０に係わる発明は、前記ワークを、移動可能な台車上に載置し、該台車が前記加工可能位置まで移動させる手段とした。
【００１１】
また、請求項１１に係わる発明は、前述の各発明において、作成された前記実ワーク加工用の加工プログラムのシミュレーションを実行し、全加工経路において、ロボットと他のものとの干渉が発生しないかチェックする手段と、干渉発生が検出されたとき、加工プログラムの教示点の位置姿勢を干渉回避位置姿勢に調整する手段を備えるものとした。
【発明の効果】
【００１２】
ＣＡＤで作成されたワーク形状データ等に基づき、その形状の頂点、稜線を指定することにより、仮の加工プログラムが作成され、または、面と加工方向、加工ピッチ、その方向を設定することで、面を加工する仮の加工プログラムが生成されるから、簡単に仮の加工プログラムを生成することができる。また、視覚センサで撮像した実際のワークの位置姿勢に基づいて、この仮の加工プログラムから実際の加工プログラムを生成するから、容易に加工プログラムを生成することができる。さらに、ロボットや台車を用いてワークの位置、または位置姿勢を変えることができるようにしたので、特別な治具を必要とせず、ロボットの各軸のストロークリミット内で加工できるよう補正でき、またロボットが他の物と干渉することを防止することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態を図面と共に説明する。  
図１は、本発明の第１の実施形態の加工プログラム作成装置（プログラム作成、加工のシステム）の概要図である。この第１の実施形態では、２つのロボット２，３によって台車７に載置されたワーク６に対してバリ取り等の加工を行う例を示している。
【００１４】
２台のロボット２，３と２台の視覚センサ４，５及びオフラインプログラミング装置としてのパーソナルコンピュータ（ＰＣ）１が通信線１０でＬＡＮ接続されている。ロボット２、３の各ロボット制御装置２ａ，３ａは通信線１０に接続され、ロボット機構部２ｂ，３ｂを駆動制御している。ロボット機構部２ｂ，３ｂのアーム先端には、それぞれ加工ツール８，９とカメラと画像処理装置からなる視覚センサ４，５のカメラ４ｂ，５ｂが取り付けられ、ワーク６の加工領域を撮像可能にしている。各カメラ４ｂ，５ｂにはそれぞれ画像処理装置４ａ，５ａが接続され、該画像処理装置４ａ，５ａが通信線１０と接続されている。加工ツール８，９で加工しようとするワーク６は、台車７に取り付けられている。また、図示していないが通信線には、ＣＡＤ装置が接続され、該ＣＡＤ装置で作成されたワーク形状モデルデータ、さらには各ロボットの形状モデルデータ、周辺装置のモデルデータがオフラインプログラミング装置１に格納されるようになっている。なお、これら、ワーク形状モデルデータ、ロボットの形状モデルデータ、周辺装置のモデルデータをオフラインプログラミング装置１で作成してもよい。また、記録媒体を介してオフラインプログラミング装置１に格納するようにしてもよい。
【００１５】
そして、本発明では、このオフラインプログラミング装置１にワーク形状モデルの画像形状における加工しようとする頂点、稜線、面を指定することによって、仮の加工プログラムを作成する手段を備え、かつ、視覚センサ４，５のカメラ４ｂ，５ｂで実際のワーク６を撮像して、ワークの位置姿勢を検出し、オフラインプログラミング装置１におけるワーク形状モデルとの位置姿勢のずれを求め、そのずれ量を補正量として、仮の加工プログラムを補正し、実際の加工プログラムを作成する手段を設けているものである。この点は後述する。
【００１６】
図２は、本発明の第２の実施形態の概要図である。図１に示した第１の実施形態と同一の要素は同一の符号を付している。この第２の実施形態は、一方のロボット２に加工ツール８が取り付けられ、他方のロボット３はハンド１１でワーク６を把持して、ワーク６に対して加工するようにしたものである。
【００１７】
通信線１０には、オフラインプログラミング装置としてのパーソナルコンピュータ（ＰＣ）１、ロボット２，３のロボット制御装置２ａ，３ａ、視覚センサ４の画像処理装置４ａが接続されている。また、ロボット２のロボット機構部２ｂのアーム先端には、加工ツール８が取り付けられ、さらに、視覚センサ４のカメラ４ｂが取り付けられている。ロボット３のロボット機構部３ｂのアーム先端には、ハンド１１が取り付けられ、該ハンド１１でワーク６が把持されている。この第２の実施形態での加工プログラムの作成は第１の実施形態と同様であるが、第１の実施形態ではワーク６を台車７で移動させるものであった点が、この第２の実施形態では、ロボット３によって移動させるようにしているもので、これにより、加工ツール８によってワークに加工しようとするロボット２が、ストロークリミットを超えるような場合や干渉が発生するような場合に、ロボット３（第１の実施形態では台車７）によりワーク６自体を移動させて、加工可能にするようにしたものである。
【００１８】
次に、この第１、第２の実施形態における仮の加工プログラムの生成方法、生成手段について説明する。  
本発明においては、オフラインプログラミング装置１が、ワークの形状モデルの頂点、稜線、面を加工順に指定することによって、仮の加工プログラムを生成するものである。
【００１９】
図３は、頂点を指定することによって、仮の加工プログラムを生成するときの説明図である。ＣＡＤ装置で作成されたワーク形状モデルデータまたは、このオフラインプログラミング装置１で作成したワーク形状モデルデータの座標値を用いて、オフラインプログラミング装置１の表示装置の表示画面上にワーク形状画像６’を描画する。そして、マウス等のポインティングディバイスによって、加工順次にしたがって、ワーク形状画像６’の頂点を指定する。頂点が指定されると、その点を教示点とし、指定順に各頂点（教示点）を直線で結ぶ経路を加工経路として生成する。図３に示した例では、頂点Ｐ１，Ｐ２，Ｐ３，Ｐ４、Ｐ１と指定され、この指定頂点が教示点となり教示点間を順に結ぶ直線が加工経路として加工プログラムが作成される。
【００２０】
図４は、ワーク形状画像６’に対して稜線を指定することによって、仮の加工プログラムを作成する方法の説明図である。この図４に示す例では、ワーク形状画像６’に対してポインティングディバイスでまず、稜線の円弧４１を指定することによって、その円弧の両端点Ｐ１，Ｐ２が教示点とされ、この教示点Ｐ１，Ｐ２間を結ぶ稜線の円弧４１が加工経路としてプログラムされる。次に直線の稜線４２を指定すると、該直線の両端点が教示点とされ、すでに一端は教示点Ｐ２として教示されているから、該教示点Ｐ２に続く教示点として稜線４２の他方の端点Ｐ３が教示点として教示され、教示点Ｐ２とＰ３間は指定稜線４２を加工経路として教示され加工プログラムが作成される。
【００２１】
以下、順に稜線（直線）４３、稜線（直線）４４を指定すれば、教示点Ｐ４及びＰ１が教示されることになり、教示点Ｐ１から円弧の加工経路で教示点Ｐ２まで、次に該教示点Ｐ２から教示点Ｐ３まで直線経路、教示点Ｐ３から教示点Ｐ４まで直線経路、教示点Ｐ４から教示点Ｐ１まで直線経路が加工経路として仮の加工プログラムが生成される。
【００２２】
なお、頂点と稜線を混ざりあって指定した場合、その指定順序に基づいて、各教示点間を結ぶ加工経路が生成されるものである。頂点を指定し続いて頂点を指定すれば、その間は直線で結ぶ加工経路が生成され、稜線と頂点を指定すれば、稜線の両端間は稜線の加工経路が生成され、稜線の一端の教示点と指定頂点間は直線の加工経路が指定される。なお、頂点と稜線を指定した場合、頂点の教示点と稜線の両端の教示点のどちらと直線で結ぶか不明となる場合が生じる。このような場合は、指定頂点と接続する稜線の端点をさらに頂点として指定する。
【００２３】
図５は、面指定による仮の加工プログラムの作成方法の説明図である。  
面を指定する場合は、加工開始点を指定し加工方向と加工ピッチ、ピッチ方向を入力する。これにより、オフラインプログラミング装置１のプロセッサは、加工開始点を教示点とし、この点より入力設定された加工方向に移動する経路を生成する。この場合、該経路の延長線とワークの稜線が交差する点より入力ピッチ量だけ手前の点をその経路の終点として教示され、入力ピッチ方向に入力加工ピッチ量分移動する経路を形成すると共にその終点を教示点とする。さらに、該教示点より、入力設定された加工方向とは逆向きに移動する経路を生成し、前述したように、該経路の延長線とワークの稜線が交差する点より入力ピッチ分手前の点をその経路の終点として教示し、以後この動作を続け、加工ピッチ分移動する経路を生成中に、この経路とワークの稜線が交差する場合、この加工ピッチの移動経路は作成せず、面加工の加工プログラム生成は終了する。
【００２４】
図５に示す例では、加工開始点としてＰ１がポインティングディバイスで指令され、入力設定された加工方向、加工ピッチとその方向により、順次教示点Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６，Ｐ７，Ｐ８，Ｐ９，Ｐ１０と教示されかつその教示点間を直線で結ぶ加工経路が生成されている例を示している。
【００２５】
図６は、加工ツール姿勢の設定の説明図である。加工ツールの姿勢は、加工開始点（最初の教示点）で設定され、生成される加工経路に対してこの設定された加工ツール姿勢で加工を行う仮の加工プログラムが生成される。
【００２６】
加工ツールの姿勢入力を指令すると画面上に加工ツールが表示され、加工ツールの姿勢を目視しながら設定できるようにする。そして、まず、この教示点における加工経路が形作る面の法線Ａを求め、その法線Ａの周りの角度α、加工経路と接する接線Ｂを求め該接線方向周りの角度β及び接線Ｂと法線Ａで形作られる面からの法線Ｃを求め該法線Ｃ周りの角度γを設定することにより、加工ツールの姿勢を決定し入力する。
【００２７】
図７，図８は、上述した第１，第２の実施形態における主にオフラインプログラミング装置１のプロセッサが実施する加工プログラム作成処理のフローチャートである。  
まず、ＣＡＤ装置等で作成されたワーク形状データを読み込む。さらに、ロボットモデルデータや周辺機器のモデルデータも読み込む（ステップＳ１）。読み込んだデータに基づいて、オフラインプログラミング装置１の表示装置の表示画面に、少なくともワーク形状モデルの画像６’を表示し、表示されたワーク形状モデルの画像６’に対して、前述したように、頂点、稜線または面を指定することによって、加工部分を指定する（ステップＳ２）。なお、面を指定するときは、前述したように、加工開始点と加工方向加工ピッチとその方向を入力する。さらに、姿勢入力状態にして加工開始点の教示点位置に加工ツール画像を表示させ、前述したように、加工ツールの姿勢を決める各角度α、β、γを入力し、加工ツール姿勢を設定する（ステップＳ３）。
【００２８】
指定された頂点、稜線または面と設定入力されたデータに基づいて、上述したように、入力順に各教示点、教示点間の加工経路を生成し、該加工経路に対して設定加工ツール姿勢を保持する仮の加工プログラムを生成する（ステップＳ４）。  
次に、オフラインプログラミング装置１のプロセッサは、ロボット制御装置２ａ，３ａに加工対象のワーク６を撮像する指令を出力し、ワーク６の位置姿勢を検出し、補正データを算出する（ステップＳ５）。なお、第１の実施形態においては、ロボット２による加工プログラムを作成しているものとして以下説明する。
【００２９】
ワークを撮像する指令を受けたロボット制御装置２ａは、ロボット機構部２ｂを所定撮像位置に移動させて、視覚センサ４の画像処理装置４ａに撮像指令を出力する。画像処理装置４ａは、カメラでワークを撮像し、該ワークの位置姿勢を検出し、オフラインプログラミング装置１に送る。オフラインプログラミング装置１のプロセッサは、従来から実施されている方法により、この検出されたワークの位置姿勢と、ステップＳ１で入力設定したワーク形状モデルの位置姿勢のずれを算出し、各教示点の座標値の補正データを求める。若しくは、ステップＳ１で入力設定したワーク形状モデルの位置姿勢を表す座標系の原点位置及び姿勢の補正値を求める（ステップＳ５）。
【００３０】
こうして求められた補正値に基づいて、ステップＳ４で求めた仮の加工プログラムを補正し、実際にワーク６に対して加工する加工プログラムを作成する（ステップＳ６）。この補正された加工経路の加工プログラムの最初と終わりに、予めパラメータ設定されている速度、距離、方向に基づいて、加工開始教示点への接近点、加工終了教示点からの離反点が追加され、かつ、接近点からの加工開始点への移動指令、加工終了点から離反点までの移動指令が追加される。また、加工開始点では、加工ツールによる加工開始指令が付加され、加工終了点では、加工終了指令が追加される。
【００３１】
図９は、加工経路と作成される加工プログラムの説明図である。図９（ａ）は、頂点、稜線を指定し、かつ、ワークを撮像して教示点が修正された加工経路を示すもので、点Ｐ２が加工開始点であり、加工開始点Ｐ２から教示点Ｐ３，Ｐ４までの円弧経路、教示点Ｐ４からＰ５までの直線経路、教示点Ｐ５から教示点Ｐ６，Ｐ７までの円弧経路、教示点Ｐ７からＰ８までの直線経路、教示点Ｐ８から教示点Ｐ９，Ｐ１０までの円弧経路、教示点Ｐ１０からＰ１１までの直線経路、教示点Ｐ１１から教示点Ｐ１２，Ｐ１３までの円弧経路が生成された加工経路である。この加工経路の加工プログラムは、図９（ｂ）に示すように、最初に接近点位置Ｐ１と加工開始点Ｐ２への速度指令が追加されている。また、最後に、離反点位置Ｐ１４が追加され、該離反点までの速度指令が追加されている。そして、加工点では加工開始指令を示す入出力信号ＤＯ［１］＝１が付加され、加工終了点では加工終了を示す出力信号ＤＯ［１］＝０が付加されている。
【００３２】
以上のようにして実際にワークを加工する加工プログラムが作成されるが、この第１，第２の実施形態では、さらに、作成された加工プログラムをシミュレーションして、干渉や加工動作を実行するロボット２の各軸のストロークリミットを超えた動作が含まれるような異常発生がないか検証し、修正するようにしている。そのため、ステップＳ６で作成された加工プログラムのシミュレーションを実行するが、まず、ステップＳ５で求められた補正データに基づいて、表示画面に表示されているワークの形状モデル、ロボットモデル、周辺機器のモデルの座標値を補正し、加工プログラムのシミュレーションを開始し（ステップＳ７）、異常発生がないか判断し（ステップＳ８）、異常発生がなく加工プログラムが終了すると（ステップＳ９）、この加工プログラムをロボット２の制御装置２ａにダウンロードし（ステップＳ１０）、加工プログラムの作成処理は終了する。
【００３３】
一方、ステップＳ８で異常が検出されると、プログラム変更が有効に設定されているか無効に設定されているか判断し（ステップＳ１１）、有効に設定されていれば、プログラム変更を実行するか否かの「ＹＥＳ」，「ＮＯ」の選択を待つ（ステップＳ１２）。一方、プログラム変更が有効に設定されていなければ、また、プログラム変更が有効に設定されていても、プログラム変更を選択しない場合は、ワーク移動が有効に設定されているか判断し（ステップＳ１３）、有効に設定されていれば、ワーク移動を実行するか否かの「ＹＥＳ」，「ＮＯ」の選択を待つ（ステップＳ１４）。プログラム変更もワーク移動も有効に設定されていないとき、さらには、有効に設定されている場合でも、プログラム変更やワーク移動を実行しないことを選択したときは、アラームを出力し（ステップＳ１６）、当該加工プログラムを実行すると異常発生することを知らせる。
【００３４】
ワーク移動が有効と設定されており、ステップＳ１４でそのワーク移動を実行する指令が入力されたとき、プロセッサはステップＳ１５の処理を実行し、異常が発生した加工経路の目標位置（加工ツールの先端位置であって、直交座標系上の位置）から異常発生位置（直交座標系上の位置）までの移動量の移動指令を出力しワーク６を移動させる。この場合、図１に示す第１の実施形態では、台車７を移動させ、第２の実施形態では、ロボット３により移動させることになる。これにより、ロボットのいずれかの軸がストロークリミットに達して異常が生じたときなどは、この異常が発生するロボット位置で、ワークに対する加工の目標位置に達するようにワークが移動させられるから、この点の異常は解消する。また、干渉が発生して異常のときも、この干渉が避けられる可能性は大きい。
【００３５】
そして、再びステップＳ５に戻り、ステップＳ５以下の処理を行う。即ち、視覚センサ４，５でワーク６を撮像して補正データを求め仮の加工プログラムを補正して加工プログラムを作成し、加工プログラムのシミュレーションを行う。
【００３６】
一方、ステップＳ１２で加工プログラムの変更を実行することが選択されたときには、まず、加工ツールの回転量Ｒを記憶するレジスタに「０」を格納し（ステップＳ１７）、加工ツールを加工ツール軸周り（ツール座標系のＺ軸周り）に予め設定されている回転量ΔＲ回転させ、ロボットの各軸位置と共に、ロボットの形状データを変更し（ステップＳ１８）、異常は解消されたか判断する。即ち、ロボットの各軸位置がストロークリミット内か、または、ロボットが他の物（周辺機器やワーク）と干渉していないか判断する（ステップＳ１９）。
異常が解消されていないときには、回転量Ｒを記憶するレジスタにΔＲを加算し（ステップＳ２０）、この回転量Ｒが３６０度以上になったか判断し（ステップＳ２１）、なっていなければ、ステップＳ８に戻り、加工ツールを加工ツール軸周りに設定回転量ΔＲだけ回転させて前述したように異常が解消されたか判断する。以下この処理を繰り返し実行し、ステップＳ２１で３６０度以上の回転に達したとき、この加工ツールの姿勢変更による加工プログラムの変更では異常が解消しないとして、アラームを出力し（ステップＳ２２）、この処理を終了する。
【００３７】
また、ステップＳ１９で、異常が解消したことが検出されると、ステップＳ７に戻りシミュレーションを実行することになる。
【００３８】
以上のようにして、加工プログラムを生成し、その加工プログラムをシミュレーションして、異常を検出することなく、加工プログラムの最後までシミュレーションが実行されると（ステップＳ９）、この加工プログラムをロボット制御装置２ａ，３ａにダウンロードし（ステップＳ１０）、この処理は終了する。
【００３９】
なお、上述した実施形態では、ワーク６を台車７に取り付けて、または、ロボットによってワークを把持して、移動可能として、ワーク位置を補正するようにした。しかし、台車７がなく、またロボットも１台しかないような場合には、ワークを移動させるとき、ロボット機構部のアーム先端に取り付けた加工ツールに代えてハンドを取り付けて、該ロボットでワークを移動させ、その後再び加工ツールをロボットに取り付けるようにして作業を進めてもよいものである。
【図面の簡単な説明】
【００４０】
【図１】本発明の第１の実施形態の加工プログラム作成装置及び加工システムの概要図である。
【図２】本発明の第２の実施形態の加工プログラム作成装置及び加工システムの概要図である。
【図３】各実施形態において頂点を指定することによって仮の加工プログラムを生成するときの説明図である。
【図４】各実施形態において稜線を指定することによって仮の加工プログラムを生成するときの説明図である。
【図５】各実施形態において面を指定することによって仮の加工プログラムを生成するときの説明図である。
【図６】各実施形態において、加工ツール姿勢の設定の説明図である。
【図７】各実施形態における加工プログラム作成処理のフローチャートである。
【図８】同フローチャートの続きである。
【図９】生成した加工経路と生成加工プログラムの説明図である。
【符号の説明】
【００４１】
１  オフラインプログラミング装置
２、３  ロボット
２ａ、３ａ  ロボット制御装置
２ｂ、３ｂ  ロボット機構部
４、５  視覚センサ
４ａ、５ａ  画像処理装置
４ｂ、５ｂ  カメラ
６  ワーク
７  台車
８、９  加工ツール
１０  通信線
１１  ハンド
【図１】
2006048244.tif 000003
【図２】
2006048244.tif 000004
【図３】
2006048244.tif 000005
【図４】
2006048244.tif 000006
【図５】
2006048244.tif 000007
【図６】
2006048244.tif 000008
【図７】
2006048244.tif 000009
【図８】
2006048244.tif 000010
【図９】
2006048244.tif 000011