IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特許7556951プログラム生成装置およびプログラム生成方法
<>
  • 特許-プログラム生成装置およびプログラム生成方法 図1
  • 特許-プログラム生成装置およびプログラム生成方法 図2
  • 特許-プログラム生成装置およびプログラム生成方法 図3
  • 特許-プログラム生成装置およびプログラム生成方法 図4
  • 特許-プログラム生成装置およびプログラム生成方法 図5
  • 特許-プログラム生成装置およびプログラム生成方法 図6
  • 特許-プログラム生成装置およびプログラム生成方法 図7
  • 特許-プログラム生成装置およびプログラム生成方法 図8
  • 特許-プログラム生成装置およびプログラム生成方法 図9
  • 特許-プログラム生成装置およびプログラム生成方法 図10
  • 特許-プログラム生成装置およびプログラム生成方法 図11
  • 特許-プログラム生成装置およびプログラム生成方法 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-17
(45)【発行日】2024-09-26
(54)【発明の名称】プログラム生成装置およびプログラム生成方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20240918BHJP
   B25J 9/22 20060101ALI20240918BHJP
   G05B 19/4093 20060101ALI20240918BHJP
   G05B 19/42 20060101ALI20240918BHJP
【FI】
B25J13/08 Z
B25J9/22 A
G05B19/4093 H
G05B19/42 J
【請求項の数】 5
(21)【出願番号】P 2022521861
(86)(22)【出願日】2021-05-06
(86)【国際出願番号】 JP2021017390
(87)【国際公開番号】W WO2021230135
(87)【国際公開日】2021-11-18
【審査請求日】2022-12-19
(31)【優先権主張番号】P 2020082952
(32)【優先日】2020-05-11
(33)【優先権主張国・地域又は機関】JP
【前置審査】
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】佐藤 貴之
(72)【発明者】
【氏名】顧 義華
【審査官】松浦 陽
(56)【参考文献】
【文献】特開2004-299010(JP,A)
【文献】特開平05-329787(JP,A)
【文献】特開2018-094638(JP,A)
【文献】特開2012-196753(JP,A)
【文献】特開昭61-086194(JP,A)
【文献】特開2012-139789(JP,A)
【文献】特開2003-191186(JP,A)
【文献】特開平08-039465(JP,A)
【文献】特開2015-009324(JP,A)
【文献】特開2017-140684(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00 - 21/02
G05B 19/18 - 19/416
G05B 19/42 - 19/427
(57)【特許請求の範囲】
【請求項1】
プログラム生成装置であって、
対象物に対してロボットの先端が辿る経路を示す経路データを取得する取得部と、
前記ロボットの先端を前記対象物に押し付ける押付力を検出する検出部と、
前記検出部が検出した押付力と、所定の定数とに基づいて、前記ロボットの先端がたわむことによって前記辿る経路がずれる位置ズレ量を計算する計算部と、
前記取得部が取得する前記経路データと、前記計算部が計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成する生成部と、
前記対象物に対して前記ロボットの先端が前記辿る経路を検知して前記経路データを出力する検知部と、
を備え、
前記生成部は、前記ロボットの先端が前記辿る経路を前記位置ズレ量によって補正した経路が前記ロボットの特異点、各駆動軸のリミット値、または設定される禁止領域に近づいた際の座標値を終了点とし、該終了点から指定した経路に従い前記ロボットの先端を退避させる経路プログラムを生成し、前記検知部が出力する前記経路データと、前記計算部が計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成し、前記ロボットの先端が終了点から所定の距離だけ退避させた後、前記ロボットの先端を前記検知部が検知した前記辿る経路に戻す経路プログラムを生成するプログラム生成装置。
【請求項2】
測定される前記ロボットの先端が前記対象物を押し付ける際に発生するたわみ量と、前記検出部が検出する押付力とから求まる所定の定数を記憶する記憶部を備える、請求項1に記載のプログラム生成装置。
【請求項3】
前記ロボットの先端に取り付ける所定のツールは、バリ取りツールである請求項1または2に記載のプログラム生成装置。
【請求項4】
前記ロボットの先端に取り付ける所定のツールは、研磨ツールである請求項1または2に記載のプログラム生成装置。
【請求項5】
プログラム生成方法であって、
対象物に対してロボットの先端が辿る経路を示す経路データを取得する取得ステップと、
前記ロボットの先端を前記対象物に押し付ける押付力を検出する検出ステップと、
測定される前記ロボットの先端が前記対象物を押し付ける際に発生するたわみ量と、前記検出ステップが検出する押付力とから求まる所定の定数を記憶する記憶ステップと、
前記検出ステップが検出した押付力と、前記所定の定数とに基づいて、前記ロボットの先端がたわむことによって前記辿る経路がずれる位置ズレ量を計算する計算ステップと、
前記取得ステップが取得する前記経路データと、前記計算ステップが計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成する生成ステップと、
前記対象物に対して前記ロボットの先端が前記辿る経路を検知して前記経路データを出力する検知ステップと、を備え、
前記生成ステップにおいて、前記ロボットの先端が前記辿る経路を前記位置ズレ量によって補正した経路が前記ロボットの特異点、各駆動軸のリミット値、または設定される禁止領域に近づいた際の座標値を終了点とし、該終了点から指定した経路に従い前記ロボットの先端を退避させる経路プログラムを生成し、前記検知ステップにおいて出力する前記経路データと、前記計算ステップにおいて計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成し、前記ロボットの先端が終了点から所定の距離だけ退避させた後、前記ロボットの先端を前記検知ステップにおいて検知した前記辿る経路に戻す経路プログラムを生成するプログラム生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム生成装置およびプログラム生成方法に関する。
【背景技術】
【0002】
従来、プログラム生成装置において、ロボットによる加工バリ取り工程で、バリ取りの実際の稜線を視覚センサによって検出し、その稜線に応じた経路プログラムを作成する方法が知られている(特許文献1)。
また、研磨工程でも、エンドエフェクタが辿る軌道を視覚センサによって検出し、その軌道に応じた経路プログラムを作成する方法が知られている。
【0003】
上記の加工バリ取り工程や研磨工程において、ロボットは、その特異点や各軸リミット、設定した禁止領域などに達するかその近傍を通る場合にはアラーム停止する。これを避けるため、通常は特異点やリミット、設定した禁止領域の近くを通らないように動作軌道を教示/設定する。
【0004】
また、実際の稜線や軌道に応じて経路プログラムを自動作成する場合、ある個体のワークでは問題なくても別のワークではその固定位置の違い、ワークそのものの大きさや形状の違いにより、特異点やリミットのアラームになることがある。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2015-009324号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した経路プログラムを利用するシステムにおいて、所定のワーク加工、例えばバリ取り工程では、ロボットがワークに対してツールを押付けるための力が発生する。そのため、ロボットのアームがたわんだ状態で、ロボット先端(エンドエフェクタ/加工ツール)はワークに少し食い込んだ位置にいることになる。
【0007】
しかし、上記ロボットの先端部の移動経路を制御する経路プログラムには、このようなたわみ量が見込まれていないため、バリ取りロボットがワークにツールを押し付けている際の実際の位置にずれが生じてしまう。特異点や各軸リミット、設定した禁止領域などに達しているかの判定が正しくできず、ワーク自体や、エンドエフェクタ(ロボットの手先)/加工ツールが破損したりしてしまう恐れが指摘されていた。
このような経路プログラムには、ロボットの先端がワークに当接する際に、ロボットの先端部がたわむたわみ量が見込まれていることが望ましい。
【課題を解決するための手段】
【0008】
本開示におけるプログラム生成装置は、対象物に対してロボットの先端が辿る経路を示す経路データを取得する取得部と、前記ロボットの先端を前記対象物に押し付ける押付力を検出する検出部と、前記検出部が検出した押付力と、所定の定数とに基づいて、前記ロボットの先端がたわむことによって前記辿る経路がずれる位置ズレ量を計算する計算部と、前記取得部が取得する前記経路データと前記計算部が計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成する生成部と、を備える。
【発明の効果】
【0009】
一態様によれば、ロボットの先端部がワークに当接する際に、たわむたわみ量が見込まれた経路プログラムを自動生成できる。
【図面の簡単な説明】
【0010】
図1】本実施形態を示すロボット装置の構成を説明するブロック図である。
図2図1に示した計算部によるたわみ量を測定するサンプリング点の位置座標を示す図である。
図3】本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。
図4図1に示したプログラム生成部が生成した経路プログラムに基づく稜線経路を示す概略平面図である。
図5】本実施形態を示すプログラム生成装置の構成を説明するブロック図である。
図6】本実施形態を示すロボットによるバリ取り工程を説明する概略図である。
図7】本実施形態を示すロボットによるバリ取り工程を説明する概略図である。
図8】本実施形態を示すロボットによるバリ取り工程を説明する概略図である。
図9】本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。
図10】本実施形態を示すロボットによるバリ取り工程を説明する概略図である。
図11】本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。
図12】本実施形態を示すロボットによる研磨工程を説明する概略図である。
【発明を実施するための形態】
【0011】
以下、本開示の実施形態を説明する。
〔第1実施形態〕
【0012】
図1は、本実施形態を示すロボット装置の構成を説明するブロック図である。以下、ロボット装置1に適用する経路プログラムを生成するプログラム生成装置並びにプログラム方法を詳述する。本例は、所定のツールが、例えばバリ取りツールの場合を示す。
【0013】
本実施形態に示すロボット装置は、ロボット装置1、ロボット装置1の制御装置2、ロボット手首(エンドエフェクタ)3、力センサ4、バリ取りツール5を備える。バリ取りツール5は、後述する図6等に示すワーク7を加工する。ワーク7は、位置決め誤差があり、形状や大きさにもバラつきがある。
また、制御装置2は、力制御部21、記憶部22、計算部23、取得部24、プログラム生成部25、プログラム実行部26から構成されている。
【0014】
なお、制御装置2は、図示しないインタフェースを介して、入力部11、表示部12を備える。ロボット装置1は、駆動部1Aを備え、力制御部21からの指示に基づいて、バリ取りツール5の加工処理が実行される。入力部11は、作業者が測定したロボット手首(エンドエフェクタ)3のたわみ量を入力する。
【0015】
記憶部22は、プログラム生成部25が生成したバリ取り加工プログラム、研磨加工プログラム、各加工プログラムに必要なワーク毎のパラメータ(形状、大きさ、材質)を更新可能に記憶している。
【0016】
取得部24は、図示しない所定のCADシステムと通信して、対象物(ワークW)を加工する際に移動するエンドエフェクタ3の経路データを取得して、記憶部22に記憶させておく。計算部23は、力センサ4が検出する押付力に対するたわみ量を後述するように記憶されるばね定数を用いて算出して、記憶部22に記憶させておく。プログラム生成部25は、記憶部22に記憶した加工経路データを算出したたわみ量に基づいて補正した経路プログラムを生成する。プログラム実行部26は、補正された経路プログラムを実行することにより、力制御部21と、駆動部1Aを制御して、所定のツールが取り付けられたロボット装置1の先端部の移動経路を制御する。
【0017】
図1に示すロボット装置の例では、計算部23は、後述するように記憶部22に記憶されたばね定数kと、力センサ4が検出する押付け量とに基づいてたわみ量を算出しておく。次に、プログラム生成部25は、記憶部22に記憶された経路データ(CADデータ)と算出したたわみ量とに基づいてたわみ量を考慮した経路プログラムを生成する。
【0018】
なお、取得部24が取得するCADデータは、ワークWを加工する図形データや画像データを処理して、例えばトレースコマンド等を用いてツールが押し付ける経路をトレースすることで作成したり、ラスタ・ベクタ変換処理で自動的に作成したりすることで得られる。本実施形態では、対象物(ワークW)の稜線をロボット装置1の先端部としてのエンドエフェクタが辿る経路データ、または対象物の平面上を直線的に移動する直線経路をCADデータとする。
【0019】
これにより、エンドエフェクタ3に取り付ける所定のツールがバリ取りツールであっても、研磨ツールであっても、いずれのたわみ量にも適応した経路プログラムを生成することができる。
【0020】
生成部としてのプログラム生成部25は、記憶部22に記憶されたロボット装置1のエンドエフェクタ3が辿る経路データに基づいてロボット装置1のエンドエフェクタ3が移動する軌道を制御する経路プログラムを自動生成して、記憶部22に記憶させる。
【0021】
検出部として力センサ4は、ワークWを後述するロボット装置1のエンドエフェクタに取り付けられた所定のツールを押し付ける押付力を検出し、力制御部21と計算部23に出力する。なお、力センサ4のデータがアナログ量である場合には、図示しないA/D変換器を介して、デジタルデータとしてたわみ量を出力する。
【0022】
計算部23は、力センサ4が検出する押付力と所定の定数(ばね定数)に基づいて、ロボット装置1のアームがたわむことによって辿る経路がずれる位置ズレ量を計算して、その計算結果を記憶部22に記憶させておく。なお、位置ズレ量の計算の詳細は後述する。
【0023】
プログラム生成部25は、記憶部22に記憶させたワーク毎のたわみ量を読み出して、あらかじめ記憶部22に記憶されたバリ取り加工工程に基づく加工経路データを補正した経路プログラムを生成し記憶部22に記憶させておく。
【0024】
力制御部21は、記憶部22に記憶された補正済の経路プログラムに従い、ロボット装置1の駆動部1Aに対して3次元でバリ取り加工を行うための駆動制御情報を出力する。ロボット装置1の駆動部1Aは、力制御部21から出力される駆動制御情報と、視覚センサ8、力センサ4などの加工制御情報とに基づいてロボットアームの3次元移動、所定のツール、例えばバリ取りツール5の駆動を行う。
【0025】
〔第1のばね定数算出例〕
以下、図1に示した計算部23によるばね定数算出処理を詳述する。
計算部23は、ロボット装置1の代表的な位置・姿勢(例えばJ1~J6まで全て0)において、XYZ方向について押し付け力に対するたわみ量を実測する。ここで、押し付け力は、力センサ4の出力から得るものとする。計算部23は、押し付け力Fとたわみ量Lとが比例関係であると想定した場合、L=F/k(ばね定数)に従いばね定数kを算出(k=F/L)する。
【0026】
本例では、力センサ4により検知される押し付け力Fと測定されるたわみ量Lとから所定のツールに対応するばね定数kの値が算出される。なお、比例関係でないと想定した場合、関数Fを求める。プログラム生成部25は、ばね定数kまたは関数Fを全ての位置・姿勢で使用する。
【0027】
また、計算部23は、算出した所定のツールに対応するばね定数kを、ロボット装置1を識別する情報、ツール毎に基づくばね定数テーブルとして記憶部22に記憶させておく。
【0028】
〔第2のばね定数算出例〕
図2は、図1に示した計算部23によるたわみ量を測定するサンプリング点の位置座標を示す図である。図中の黒丸は、たわみ量を測定するサンプリング点を示す。
【0029】
図2に示す例では、計算部23がロボット装置1の動作範囲内の多くの点、例えばXYZ軸方向に等間隔に格子点を設定しておく。作業者は、各サンプリング点におけるロボット装置1の位置・姿勢において、XYZ方向について押し付け力に対するたわみ量を実測しておく。計算部23は、そのサンプリング点における所定のツールに対応するばね定数kxyzまたは関数fxyzを第1のたわみ量計算例と同様に計算により算出し、記憶部22に記憶しておく。
【0030】
なお、上述した計算例のようにたわみ量を実測することなく、シミュレーションにより算出してもよい。たわみ量は通常ロボットの機種ごとに異なるので、使用するロボットの機種ごとに行う。具体的には、ロボットのリンク長や各部品の質量・イナーシャや各軸の減速機などの特性を考慮した物理モデルを作成し、ロボット先端やエンドエフェクタにかかる押付力に対するたわみ量をシミュレーションによって算出する。ここで、ばね定数は、実測しているものとする。
【0031】
図3は、本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。なお、ST1~ST5は各ステップを示し、各ステップは、図示しないCPUがROM等に記憶された制御プログラムをRAM上にロードして実行することで実現される。本例は、ツールをワークに押し付ける加工におけるプログラム生成処理に対応する。
【0032】
まず、所定のツールに対応する経路データ、例えば稜線経路を辿る経路データまたは、直線経路を辿る経路データを記憶部22から読み出すと、プログラム生成部25は、経路データに従う経路プログラムを作成し、一時的に記憶部22に保持させておく(ST1)。ここで、経路データは、図示しないCADシステムであらかじめ作成され、取得部24が取得して記憶部22に記憶されているものとする。また、当該経路データは、先端部がたわむ量が考慮されていないデータである。
【0033】
次に、計算部23は、記憶部22に記憶させた所定のツール用のばね定数テーブルを、ロボット装置1の識別情報、ワークWのサイズ、材質等に基づいて参照し、読み出した所定のツールに対応するばね定数kと、力センサ4が検出する所定のツールの押付け力とを用いて、ワークWに所定のツールを押し付けた際に発生するたわみ量を計算処理により算出する(ST2)。
【0034】
プログラム生成部25は、算出したたわみ量に基づいて、先に記憶部22に記憶させている所定のツール用の経路プログラムの経路データを補正した新たな経路プログラムを作成する(ST3)。
【0035】
次に、プログラム生成部25は、新たに作成した経路プログラムを解析して、ロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があるかどうかを判断する(ST4)。ここで、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があると判断した場合、処理をST5へ進める。
【0036】
そして、プログラム生成部25は、ステップST4で特定されたその場所を終了点とし、そこから指定した経路で退避する経路プログラムを作成し(ST5)、処理を終了する。なお、作成した最終的な経路プログラムは、記憶部22に記憶させておくものとする。
【0037】
一方、ステップST4で、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所がないと判断した場合、処理を終了する。
【0038】
図4は、図1に示したプログラム生成部25が生成した経路プログラムに基づく稜線経路を示す概略平面図である。図中の黒丸の点のうち外側はたわみを考慮しない軌道上の点、内側はたわみを考慮した軌道上の点である。破線は、バリ取りツール5のたわみを考慮した先端位置を結んだ軌道を示す。
【0039】
これにより、ロボット装置1に取り付けたバリ取りツール5がワークWに当接した際に生じるたわみ量が考慮されるため、位置ずれなく、かつ精度よくワークWのバリ取りが可能となる。
【0040】
〔第1実施形態の効果〕
本実施形態によれば、ロボットに取り付けた所定のツールをワークに対して実際に押し付ける際に発生するロボットのアームがたわむことによるたわみ量に従って補正した経路プログラムを自動生成することができる。
【0041】
〔第2実施形態〕
上記実施形態では、取得部24がCADシステムから取得して記憶されたワークに押し付ける所定のツールに対する経路データを、ロボット装置1のアームのたわみ量に従って補正した経路プログラムを生成する場合について説明した。以下、視覚センサ8を利用して得られるツールの経路データと、計算して求めるロボット装置1のアームのたわみ量とに基づいて経路プログラムを生成する実施形態について詳述する。以下、バリ取りツール5がバリ取り工程で移動する辿る経路を、ワークW上を稜線的に移動する経路とする例を説明する。
【0042】
〔バリ取り工程を例とする経路プログラム生成処理〕
図5は、本実施形態を示すプログラム生成装置の構成を説明するブロック図である。なお、図1と同一のものには同一の符号を付して、その説明を省略する。視覚センサ8は、ワークWの上部側において3次元上で移動可能に設けられ、対象物(ワークW)のバリ取り稜線をロボット装置1の先端部としてのエンドエフェクタが辿る稜線経路を撮像することで検出する。
【0043】
本実施形態では、計算部23は、力センサ4が検出するワークに押し付ける力と記憶したバリ取りツール5用のばね定数に基づいてたわみ量を計算により求めておく。プログラム生成部25は、視覚センサ8が実際に所定の工程、例えばバリ取り工程を撮像して得られる経路データに基づく経路プログラムを作成して記憶部22に記憶させておく。その後、プログラム生成部25は、記憶部22に記憶させた経路プログラムと、たわみ量とに基づいて新たな経路プログラムを作成する。
【0044】
なお、プログラム生成部25は、視覚センサ8が検出するバリ取りの稜線データを解析して、その稜線データに基づく経路プログラムを自動作成するときに、特異点・各軸のリミット値またはその他に設定した禁止領域に近づいたら、その場所を終了点とし、その後指定した経路で退避する経路プログラムを作成する。
【0045】
同様に、プログラム生成部25は、一旦退避する軌道を通り、特異点または各軸リミット、禁止領域から所定の距離だけ離れたら再び視覚センサ8によって検出された軌道に戻る経路プログラムを作成する。
また、バリ取り中はロボット装置1により押付力を発生させるため、ロボット装置1のアームはたわんでいる。
【0046】
このため、本実施形態では、特異点やリミットの判定もたわみ分を補正された位置で行うのが望ましい。以下、その位置・姿勢におけるロボットのたわみ量を事前に取得するか、上述した関数の計算によって求める。以下、本実施形態を適用するロボット装置1によるバリ取り工程を図面に基づいて説明する。
【0047】
図6図8は、本実施形態を示すロボットによるバリ取り工程を説明する概略図であり、図6は、バリ取り軌道の始点にバリ取りツールが接近した状態を示し、図7は、自動生成された軌道が特異点の近くを通る状態を示し、図8は、特異点から離れるように退避する軌道(破線)を示す。
本例のロボット装置1は、所定のインタフェースを介して接続される制御装置2により総括的に加工工程とプログラム生成処理が制御される。
【0048】
バリ取り装置は、ロボット装置1、ロボット装置1の制御装置2、ロボット手首(エンドエフェクタ)3、力センサ4、バリ取りツール5、ワーク7、視覚センサ8を備える。なお、ワーク7は、位置決め誤差があり、形状や大きさにもバラつきがある。なお、バリ取り部6は、バリ取りツール5がワーク7を用いて加工する部位(稜線)に対応する。
【0049】
ロボット装置1は、複数のアームを備える多関節ロボットで構成されている。ロボット装置1のアームの先端に位置するロボット手首3には、力センサ4が備えられ、力センサ4にはバリ取りツール5が取り付けられている。ロボット装置1は、制御装置2から出力される制御信号に従って、各関節に設けられた電気モータ(サーボモータ)を回転させることによって、種々の位置及び姿勢をとることができる。ロボット装置1は、図示されるものに限定されず、公知の形態を有する任意のロボットにも適用できる。
【0050】
バリ取りツール5は、ワークWのバリを除去するのに一般的に使用される工具であって特定の形態のものに限定されず、例えばカッター、グラインダ等がある。バリ取りツール5は、ロボット装置1のロボット手首3に固定されていて、ロボット装置1が動作するのに従ってロボット手首3と一緒に移動する。
【0051】
なお、制御装置2は、図示しないインタフェースを介して接続される入力部11、表示部12を備える。ロボット装置1は、駆動部1Aを備え、入力部11から加工開始指示を受け付けると、力制御部21からの指示に基づいて、バリ取りツール5の加工処理が実行される。
【0052】
記憶部22は、プログラム生成部25が生成したバリ取り加工のための経路プログラム、研磨加工のための経路プログラム、各加工プログラムに必要なワーク毎のパラメータ(形状、大きさ、材質)を更新可能に記憶している。
【0053】
なお、プログラム生成部25は、視覚センサ8が撮像して検出するバリ取りの稜線データ(経路データ)を解析して、ロボット手首(エンドエフェクタ)3がその稜線データを辿る経路プログラムを自動作成する。この際、プログラム生成部25は、エンドエフェクタ3が特異点・各軸のリミット値またはその他に設定した禁止領域に近づいたら、その座標値を終了点とし、その後指定した経路でエンドエフェクタ3を退避させる経路プログラムを作成する。
【0054】
つまり、プログラム生成部25は、エンドエフェクタが辿る経路を計算された位置ズレ量によって補正した経路がロボット装置1の特異点、各駆動軸のリミット値、または設定される禁止領域に近づいた際の座標値を終了点とし、該終了点から指定した経路でエンドエフェクタ3を退避させる経路プログラムを作成する。
【0055】
同様に、プログラム生成部25は、エンドエフェクタ3がワークWから一旦退避する軌道を通り、特異点または各軸リミット、禁止領域から所定の距離だけ離れたら、再び視覚センサ8によって検出された軌道に戻る経路プログラムを作成する。
【0056】
なお、バリ取り中はロボット装置1により押付力を発生させるため、ロボット装置1のアームはたわんでいる。このため、本実施形態では、特異点やリミットの判定もたわみ分を補正された位置で行うのが望ましい。
【0057】
図9は、本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。なお、ST11~ST15は各ステップを示し、各ステップは、図示しないCPUがROM等に記憶された制御プログラムをRAM上にロードして実行することで実現される。本例は、バリ取り加工におけるプログラム生成処理に対応する。
【0058】
まず、視覚センサ8がワークW上を撮像して、ワークWの稜線を辿る経路を検知して、プログラム生成部25に出力する。プログラム生成部25は、視覚センサ8から出力されるワークWの経路データを解析して経路プログラムを作成し、一時的に記憶部22に保持させておく(ST11)。
【0059】
次に、計算部23は、記憶部22に記憶させたバリ取りツール5用のばね定数テーブルを、ロボット装置1の識別情報、ワークWのサイズ、材質等に基づいて参照し、読み出したバリ取りツール5に対応するばね定数kと、力センサ4が検出するバリ取りツール5の押付け力とを用いて、ワークWにバリ取りツール5を押し付けた際に発生するたわみ量を計算処理により算出する(ST12)。
【0060】
プログラム生成部25は、算出したたわみ量に基づいて、先に記憶部22に記憶させているバリ取りツール用経路プログラムの経路データを補正した新たなバリ取りツール用経路プログラムを作成する(ST13)。
【0061】
次に、プログラム生成部25は、作成した新たなバリ取り用の経路プログラムを解析して、ロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があるかどうかを判断する(ST14)。
【0062】
ここで、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があると判断した場合、処理をST15へ進める。そして、プログラム生成部25は、ステップST4で特定されたその場所を終了点とし、そこから指定した経路で退避する経路プログラムを作成し(ST15)、処理を終了する。なお、作成した最終的な経路プログラムは、記憶部22に記憶させておくものとする。
【0063】
一方、ステップST14で、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所がないと判断した場合、処理を終了する。
【0064】
図10は、本実施形態を示すロボット装置1によるバリ取り工程を説明する概略図である。
本例は、ロボット装置1がバリ取りツール5を取り付けた状態で、ワークWの円周部を円周軌道に従いバリ取りする工程を示している。仮想的軌道10は、ワークWの内側にある軌道であって、押し付け力によるたわみ分を仮想的に示した軌道である。プログラム生成部25は、仮想的軌道10(破線で示す)に示すたわみ分補正したバリ取り経路となる経路プログラムを生成する。
【0065】
〔第2実施形態の効果〕
本実施形態によれば、バリ取り用経路プログラムがロボット装置1のアームのたわみ量を考慮した稜線経路に基づくバリ取り加工を精度よく進めることができる。
【0066】
〔第3実施形態〕
上記実施形態では、バリ取り工程におけるたわみ補正に基づくプログラム生成処理について説明したが、ロボット装置1が研磨工程する場合も、ロボット装置1の工具とワークWが当接する場合、同様のたわみ現象が発生する。研磨ツールが研磨工程で移動する経路を、ワークWの面上を直線的に移動する直線経路の例を説明する。
【0067】
そこで、第2実施形態におけるバリ取りに代えて、研磨工程における特定の位置・姿勢におけるロボット装置1の押し付け量を計測することで、たわみ量で補正した研磨工程における経路プログラムを生成するように構成してもよい。
【0068】
本実施形態において、プログラム生成部25は、視覚センサ8が撮像して検出する研磨用のツールが研磨対象ワークの形状や表面を検出して研磨用の経路プログラムを自動作成するときに、エンドエフェクタ3が特異点・各軸のリミット値またはその他に設定した禁止領域に近づいたら、その座標値を終了点とし、その後指定した経路でエンドエフェクタ3を退避させる経路プログラムを作成する。つまり、プログラム生成部25は、エンドエフェクタ3が辿る経路を計算された位置ズレ量によって補正した経路がロボット装置1のエンドエフェクタ3が通過する特異点、各駆動軸のリミット値、または設定される禁止領域に近づいた際の座標値を終了点とし、該終了点から指定した経路で研磨用のツールを退避させる経路プログラムを作成する。
【0069】
同様に、プログラム生成部25は、エンドエフェクタ3がワークWから一旦退避する軌道を通り、エンドエフェクタ3が特異点または各軸リミット、禁止領域から所定の距離だけ離れた後、再び視覚センサ8によって検知された軌道に戻す経路プログラムを作成する。
【0070】
なお、研磨中はロボット装置1により押付力を発生させるため、ロボット装置1のアームはたわんでいる。そこで、本実施形態では、特異点やリミットの判定もたわみ分を補正された位置で行うのが望ましい。
【0071】
〔研磨工程を例とする経路プログラム生成処理〕
図11は、本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。なお、ST21~ST25は各ステップを示し、各ステップは、図示しないCPUがROM等に記憶された制御プログラムをRAM上にロードして実行することで実現される。本例は、研磨加工におけるプログラム生成処理に対応する。
【0072】
まず、視覚センサ8がワークW上を撮像して、ワークWの形状や表面に沿って直線的経路を辿る経路データをプログラム生成部25に出力する。プログラム生成部25は、視覚センサ8から出力された検出した経路データを解析して経路プログラムを作成し、一時的に記憶部22に保持させておく(ST21)。
【0073】
次に、計算部23は、記憶部22に記憶させた研磨ツール用のばね定数テーブルを、ロボット装置1の識別情報、ワークWのサイズ、材質等に基づいて参照し、読み出した研磨ツールに対応するばね定数kと、力センサ4が検出する研磨ツールの押付け力とを用いて、ワークWに研磨ツールを押し付けた際に発生するたわみ量を計算処理により算出する(ST22)。
【0074】
プログラム生成部25は、算出したたわみ量に基づいて、先に記憶部22に記憶させている研磨用経路プログラムの経路データを補正した新たな研磨用経路プログラムを作成する(ST23)。
【0075】
次に、プログラム生成部25は、新たに作成した研磨用の経路プログラムを解析して、ロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があるかどうかを判断する(ST24)。
【0076】
ここで、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があると判断した場合、処理をST25へ進める。そして、プログラム生成部25は、ステップST4で特定されたその場所を終了点とし、そこから指定した経路で退避する経路プログラムを作成し(ST25)、処理を終了する。なお、作成した最終的な経路プログラムは、記憶部22に記憶させておくものとする。
【0077】
一方、ステップST24で、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所がないと判断した場合、処理を終了する。
【0078】
図12は、本実施形態を示すロボット装置1による研磨工程を説明する概略図である。
本例は、ロボット装置1が研磨ツールを取り付けた状態で、ワークWの上面を左右方向に直線的経路で移動と、上下方向に直線的経路で移動とを組み合わせて研磨経路11Aに従い連続的に研磨する工程を示している。仮想的経路12Aは、ワークWの内部にある軌道であって、押し付け力によるたわみ分を仮想的に示した経路である。プログラム生成部25は、仮想的経路12Aに示すたわみ分補正した研磨経路11Aとなる経路プログラムを生成する。
【0079】
〔第3実施形態の効果〕
本実施形態によれば、研磨用経路プログラムがロボット装置1のたわみ量を考慮した加工軌道にもとづいて研磨加工を精度よく進めることができる。
なお、上記各実施形態では、経路プログラムを制御装置2が生成する場合について説明したが、制御装置2と所定のインタフェースを介して接続されるデータ処理装置、いわゆるパーソナルコンピュータにインストールされるOSで管理されるプログラムによって実現される構成としてもよい。
【0080】
また、上記実施形態では、バリ取り工程、または研磨工程を例として経路プログラムを作成する例として説明したが、何らかのツールをワークに押し付ける工程であればその他の工程にも適用できる。
【0081】
さらに、上記実施形態では、押し付け量を実測した後、計算式によりたわみ量を計算する例を示したが、本実施形態に示す経路データ、たわみ量等を記憶してたわみ状態をシミュレートするシミュレータ(PC)上で経路プログラムを作成して検証する構成としてもよい。
また、本開示は上記実施形態に限定されるものではなく、本開示の目的を達成できる範囲での変更(プログラム、記憶媒体)、改良は本開示に含まれる。
【符号の説明】
【0082】
1 ロボット
2 制御装置(制御部)
3 ロボット手首(エンドエフェクタ)
4 力センサ(検出部)
5 バリ取りツール
7 ワーク(対象物)
8 視覚センサ(検知部)
21 力制御部
22 記憶部
23 計算部
24 通信部(取得部)
25 プログラム生成部(生成部)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12