(57)【特許請求の範囲】
【請求項１】
ロボットに取り付けた工具を該ロボットの位置制御によりワークに対して移動させて、前記工具により前記ワークのバリ取りを行う方法であって、
前記ロボットに取り付けた接触子を該ロボットのタッチセンシングにより前記ワークの１以上の箇所に所定の押し付け力で押し付けるステップと、
前記接触子が前記ワークの前記箇所に前記所定の押し付け力以上で押し付けられたときの前記ロボットの姿勢データから、前記ワークの前記箇所の前記ロボットに対する相対位置を示す位置データを取得するステップと、
前記ワークの設計データに基づいて前記ワークの理想形状を示す理想形状データを生成するステップと、
前記箇所が前記ロボットに対して前記位置データによって示される相対位置にある前記ワークの、前記理想形状データによって示される理想形状に倣って、前記ロボットの位置制御により前記工具を移動させるステップと、
を含むことを特徴とするロボットによるバリ除去方法。
【請求項２】
前記理想形状データを生成する前記ステップは、
前記箇所が前記ロボットに対して前記位置データによって示される相対位置にある、前記設計データにより理想形状に加工されたマスターワークの形状に倣って、前記ロボットの力制御により前記接触子を移動させて、前記マスターワークの実形状に対応する形状データを前記理想形状データとして生成するステップ、
を含んでいる、
ことを特徴とする請求項１記載のロボットによるバリ除去方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットにより工具を動かしてワークのバリを除去する方法に関するものである。
【背景技術】
【０００２】
例えば、ロボットにより面取りを行う鋳物に加工誤差がある場合は、ロボットに取り付けた工具を力制御で鋳物に接触させる必要がある。しかし、面取りする場所に大型のバリが存在すると、バリの縁が面取りされるだけでバリを除去することはできない。そこで、ロボットに取り付けた工具を位置制御で鋳物に接触させて、例え大雑把であっても大型のバリを前もって除去しておくことを提案した従来技術が存在する。
【０００３】
このように、大型のバリを除去するには、ロボットに取り付けた工具を位置制御で加工対象のワークに接触させる必要がある。このようなロボットの位置制御を行うためには、ワークの仕上げ位置をティーチング作業によりロボットの制御装置に教示する必要がある。上述した従来技術では、力制御により工具を一定の押し付け力でワークに押し当てて面取りを行う際に、工具の移動経路のデータを取得し、取得したデータを加工することで、位置制御用のワークの仕上げ位置のデータをティーチング抜きで制御装置に教示することが提案されている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−３０６７０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した従来技術では、バリ取りのための位置制御と面取りのための力制御とを併用することから、力制御による工具の移動中に取得したデータを加工して位置制御に必要なデータとして活用しティーチング作業の簡略化を図る、という手法を採ることができる。
【０００６】
しかし、面取りを必要とせず大型のバリを除去する作業のみを行う場合は、面取りのために工具を力制御により移動させる必要がないので、バリ取りのための位置制御に関するティーチング作業を省けるという、上述した従来技術のような利点がそもそも得られない。したがって、大型のバリ取りのみを行う場合は、位置制御に必要なデータを取得するためのティーチング作業を行うしかない。特に、ワークが複雑な形状のものである場合は、ティーチングするポイント数が増えるので、ティーチング作業の負担は膨大なものとなる。
【０００７】
本発明は前記事情に鑑みなされたもので、本発明の目的は、ロボットに取り付けた工具を位置制御により移動させてワークの大型のバリ取りを行う際に、位置制御のための膨大なティーチング作業を省くことができる、ロボットによるバリ取り方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１に記載した本発明のロボットによるバリ除去方法は、
ロボットに取り付けた工具を該ロボットの位置制御によりワークに対して移動させて、前記工具により前記ワークのバリ取りを行う方法であって、
前記ロボットに取り付けた接触子を該ロボットのタッチセンシングにより前記ワークの１以上の箇所に所定の押し付け力で押し付けるステップと、
前記接触子が前記ワークの前記箇所に前記所定の押し付け力以上で押し付けられたときの前記ロボットの姿勢データから、前記ワークの前記箇所の前記ロボットに対する相対位置を示す位置データを取得するステップと、
前記ワークの設計データに基づいて前記ワークの理想形状を示す理想形状データを生成するステップと、
前記箇所が前記ロボットに対して前記位置データによって示される相対位置にある前記ワークの、前記理想形状データによって示される理想形状に倣って、前記ロボットの位置制御により前記工具を移動させるステップと、
を含むことを特徴とする。
【０００９】
請求項１に記載した本発明のロボットによるバリ除去方法によれば、ワークの設計データから生成される理想形状データを、接触子のワークに対する接触によって取得した位置データによって示されるロボットに対する相対位置に合わせることで、バリ除去のための位置制御に必要なデータがティーチング作業なしに得ることができる。
【００１０】
また、請求項２に記載した本発明のロボットによるバリ除去方法は、請求項１記載のロボットによるバリ除去方法において、
前記理想形状データを生成する前記ステップは、
前記箇所が前記ロボットに対して前記位置データによって示される相対位置にある、前記設計データにより理想形状に加工されたマスターワークの形状に倣って、前記ロボットの力制御により前記接触子を移動させて、前記マスターワークの実形状に対応する形状データを前記理想形状データとして生成するステップ、
を含んでいる、
ことを特徴とする。
【００１１】
請求項２に記載した本発明のロボットによるバリ除去方法によれば、請求項１記載のロボットによるバリ除去方法において、ワークの設計上の形状データに代えて理想的にバリが除去されたマスターワークの形状データを用いることになる。よって、設計上のワークの理想的な形状と、実際にバリを除去した理想的な形状に加工されたマスターワークの形状とが異なる場合に、現実の理想的な形状を有するマスターワークの形状に合わせてワークのバリを精度よく除去することができる。
【発明の効果】
【００１２】
本発明のロボットによるバリ除去方法によれば、ロボットに取り付けた工具を位置制御により移動させてワークの大型のバリ取りを行う際に、位置制御のための膨大なティーチング作業を省くことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係るバリ除去方法を実行するのに用いるロボットシステムの概略構成を示す説明図である。
【図２】図１のロボットシステムの電気的な概略構成を示すブロック図である。
【図３】図１の制御用ＰＣのＣＰＵがＲＯＭに格納されたプログラムにしたがって行う制御を示すフローチャートである。
【図４】本発明の第１実施形態に係るバリ除去方法により図１のロボットが設計上のワークの形状に倣って実際のワークのバリを除去する際の動作を示す説明図である。
【図５】本発明の第２実施形態に係るバリ除去方法を実行するのに用いるロボットシステムの制御用ＰＣのＣＰＵがＲＯＭに格納されたプログラムにしたがって行う制御を示すフローチャートである。
【図６】本発明の第２実施形態に係るバリ除去方法を実行するのに用いるロボットシステムの制御用ＰＣのＣＰＵがＲＯＭに格納されたプログラムにしたがって行う制御を示すフローチャートである。
【図７】本発明の第２実施形態に係るバリ除去方法により図１のロボットがマスターワークの形状に倣って実際のワークのバリを除去する際の動作を示す説明図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について図面を参照しながら説明する。
【００１５】
図１は本発明の第１実施形態に係るバリ除去方法を実行するのに用いるロボットシステムの概略構成を示す説明図である。
【００１６】
図１中引用符号１で示す本実施形態のロボットは、ワーク１５に空けられた孔１５ａの周囲にあるバリを除去するものである。このワーク１５は、ガイドレール１７上を移動するスライダ１６によって、ロボット１の作業エリアに移送、配置される。そして、本実施形態のロボット１は、円柱状の基台３上に設置された多関節型アーム５の先端にフランジ部９を有している。
【００１７】
多関節型アーム５は、基台３側から順に第１乃至第４の４つのアーム部６ａ〜６ｄを有している。基台３と第１アーム部６ａはＡ１軸６ｅで回転可能に連結されている。第１アーム部６ａと第２アーム部６ｂはＡ２軸６ｆで回転可能に連結されている。第２アーム部６ｂと第３アーム部６ｃはＡ３軸６ｇで回転可能に連結されている。第３アーム部６ｃの先端側（第４アーム部６ｄ側）はＡ４軸６ｈにより、基端側（第２アーム部６ｂ側）に対して回転可能とされている。第３アーム部６ｃと第４アーム部６ｄはＡ５軸６ｉで回転可能に連結されている。第４アーム部６ｄの先端には、Ａ６軸６ｊ及び力覚センサ１１を介してフランジ部９が回転可能に連結されている。
【００１８】
このように構成された本実施形態のロボット１においては、多関節型アーム５に内蔵したＡ１〜Ａ６の各軸６ｅ〜６ｊ用のロータリアクチュエータ５Ａ〜５Ｆ（図２参照）に、ロボットコントローラ３１から適切な制御値を与えることで、基台３に対して多関節型アーム５を適切な姿勢とする。
【００１９】
このような構成のロボット１は、位置ベクトルによって各部の位置及び姿勢を管理する。この位置及び姿勢の管理にはロボット座標系が用いられる。ロボット座標系は、ロボット原点Ｏを原点とする座標系である。このロボット原点Ｏは、基台３の設置面３ａの中心点に設定される。
【００２０】
なお、フランジ部９にはエンドエフェクタ１３，２３，２５が選択的に取り付けられる。エンドエフェクタ１３は、先端に接触子を有している。このエンドエフェクタ１３は、後述する動作によってワーク１５の複数箇所の位置を検出するために用いられる。他のエンドエフェクタ２３，２５（請求項中の工具に相当）は、先端に形状が異なるカッターをそれぞれ有している。これらのエンドエフェクタ２３，２５は、ワーク１５の孔１５ａの周囲のバリを除去するのに用いられ、ワーク１５の形状やロボット１に対するワーク１５の方向によって適切なものが選択される。フランジ部９に取り付けていないエンドエフェクタ（図１ではエンドエフェクタ２３，２５）は、ラック２１に収納される。
【００２１】
エンドエフェクタ１３，２３，２５は、ロボット１の出荷段階ではフランジ部９に取り付けられていない。したがって、後述するロボットコントローラ３１（図２参照）がロボット１の位置及び姿勢を制御するために有しているロボット座標系における位置ベクトルのデータは、フランジ部９までの分だけである。フランジ部９に取り付けたエンドエフェクタ１３，２３，２５の位置及び姿勢の管理には、エンドエフェクタ１３，２３，２５の代表点であるツールセンターポイントＴＣＰを原点とするツール座標系が用いられる。
【００２２】
ツール座標系は、ロボット１の受け入れ側において行う較正作業によって、後からロボットコントローラ３１に設定される。ツール座標系の較正は、ロボット１のフランジ部９に対するエンドエフェクタ１３の取付点を原点とするロボット手先座標系を用いて行う。具体的には、ロボット手先座標系から見たツール座標系の相対的位置・姿勢を較正することで行う。そして、ロボット手先座標系から見たツール座標系の相対的位置・姿勢を記述する行列やベクトルを表すデータを、ロボットコントローラ３１に与える。
【００２３】
したがって、ロボットコントローラ３１では、ロボット座標系におけるロボット手先座標系の原点の位置ベクトルに基づいて、エンドエフェクタ１３，２３，２５のツールセンターポイントＴＣＰのロボット座標系における位置ベクトルを特定する。
【００２４】
図２は、図１のロボットの電気的な概略構成を示すブロック図である。図２に示すように、ロボットコントローラ３１は、ロボット座標系におけるエンドエフェクタ１３のツールセンターポイントＴＣＰの座標値を管理し、ロボット１の多関節型アーム５の動作を制御するために、ＣＰＵやＲＡＭ及びＲＯＭを有するコンピュータによって構成される。このロボットコントローラ３１には、ドライブ回路５Ｇ〜５Ｌと、ロータリセンサ５Ｍ〜５Ｒと、力覚センサ１１とが接続される。
【００２５】
ドライブ回路５Ｇ〜５Ｌはロータリアクチュエータ５Ａ〜５Ｆに対応している。ロータリアクチュエータ５Ａ〜５Ｆは、ロボット１の多関節型アーム５のＡ１軸乃至Ａ６軸６ｅ〜６ｊを回転させる駆動源である。ロータリセンサ５Ｍ〜５Ｒはロータリアクチュエータ５Ａ〜５Ｆに対応している。ロータリセンサ５Ｍ〜５Ｒは、対応するロータリアクチュエータ５Ａ〜５ＦによるＡ１軸乃至Ａ６軸６ｅ〜６ｊの各軸の回転方向及び回転角度（又は回転量）を検出する。力覚センサ１１は、フランジ部９に取り付けたエンドエフェクタ１３，２３，２５に加わる荷重とその方向を検出する。
【００２６】
ロボットコントローラ３１は、位置制御又は力制御でロボット１の多関節型アーム５乃至エンドエフェクタ１３，２３，２５を移動させる。位置制御の場合は、外部からロボットコントローラ３１に、ワーク１５のロボット座標系における位置姿勢データが入力される。そして、ロボットコントローラ３１は、入力された位置姿勢データによってロボット座標系における位置及び姿勢が規定されたワーク１５の表面に沿ってエンドエフェクタ１３，２３，２５を移動させるための、ロータリアクチュエータ５Ａ〜５Ｆの駆動信号を生成し、対応するドライブ回路５Ｇ〜５Ｌに出力する。
【００２７】
一方、力制御の場合は、外部からロボットコントローラ３１に、ワーク１５に対するエンドエフェクタ１３，２３，２５の押し付け力と、ロボット座標系におけるエンドエフェクタ１３，２３，２５のワーク１５に対する押し付け開始位置とを示すデータが入力される。そして、ロボットコントローラ３１は、入力されたロボット座標系におけるワーク１５への押し付け開始位置にエンドエフェクタ１３，２３，２５を移動させるための、ロータリアクチュエータ５Ａ〜５Ｆの駆動信号を生成し、対応するドライブ回路５Ｇ〜５Ｌに出力する。また、入力された押し付け力に相当する出力に力覚センサ１１の出力を保つように押し付け開始位置からエンドエフェクタ１３，２３，２５をワーク１５の表面に沿って移動させるための、ロータリアクチュエータ５Ａ〜５Ｆの駆動信号を生成し、対応するドライブ回路５Ｇ〜５Ｌに出力する。
【００２８】
さらに、ロボットコントローラ３１は、外部からの多関節型アーム５の姿勢を示すデータの出力要求に呼応して、要求時点におけるロータリセンサ５Ｍ〜５Ｒの出力を、ロボット１の姿勢データとして外部に出力する。
【００２９】
一方、図２に示す制御用ＰＣ１９は、ワーク１５の孔１５ａの周囲に存在するバリをエンドエフェクタ２３，２５で除去するためのロボット１の位置制御パターンを決定する処理を行うために、ＣＰＵやＲＡＭ及びＲＯＭを有するコンピュータによって構成される。ＲＡＭは、ＣＰＵがＲＯＭに格納されたプログラムを実行する際の作業エリア等として利用される。制御用ＰＣ１９には、ロボットコントローラ３１やロボット１の力覚センサ１１が接続されている。また、制御用ＰＣ１９には、図１に示すディスプレイ１９ａが接続されている（図２中図示せず）。
【００３０】
また、制御用ＰＣ１９には、不図示のＣＡＤシステム（ＣＡＤ／ＣＡＭシステム、ＣＡＭシステムでもよい）からのワーク１５（図１参照）のＣＡＤデータ（請求項中の設計データに相当）が入力され、不図示のハードディスクに保存されている。既にＣＡＤデータがハードディスクに保存されているワーク１５の種類は、図１のディスプレイ１９ａの表示画面上の選択ボタンを指で触れるか画面上のマウスでクリックすることで、選択することができる。制御用ＰＣ１９は、選択されたワーク１５についてのＣＡＤデータから、ワーク１５の理想形状を示す理想形状データを生成することができる。
【００３１】
次に、制御用ＰＣ１９のＣＰＵがＲＯＭに格納されたプログラムにしたがって行う、ロボット１を用いたワーク１５のバリ取り動作に関する制御を、図３のフローチャートを参照して説明する。
【００３２】
まず、制御用ＰＣ１９のＣＰＵは、接触子を先端に有するエンドエフェクタ１３がロボット１のフランジ部９に取り付けられている状態で、ワーク１５に接触子を所定の押し付け力で接触させる動作指令、つまり、力制御によりエンドエフェクタ１３を移動させるためのデータを、ロボットコントローラ３１に出力する（ステップＳ１）。このデータには、ロボット１のタッチセンシングによりロボット１に対するワーク１５の相対位置及び方向を確認するのに適した所定箇所の、ロボット座標系における座標値（押し付け開始位置）と、ワーク１５に対するエンドエフェクタ１３の押し付け力とが規定されている。ロボット１によりワーク１５をタッチセンシングする際には、所定箇所にワーク１５のバリが発生する箇所（例えば孔１５ａの周囲等）を除いた箇所を位置させるのが好ましい。
【００３３】
なお、ステップＳ１で制御用ＰＣ１９が出力するデータを受け取ったロボットコントローラ３１は、まず、エンドエフェクタ１３が所定箇所に位置（所定箇所においてワーク１５に接触）するようにロボット１の多関節型アーム５を作動させる。そして、力覚センサ１１の出力が、制御用ＰＣ１９から受け取ったデータ中に規定されているエンドエフェクタ１３のワーク１５に対する押し付け力に相当する所定値以上となるまで、所定箇所に位置（所定箇所においてワーク１５に接触）しているエンドエフェクタ１３をさらにワーク１５側に移動させて押し付けることになる。
【００３４】
次に、制御用ＰＣ１９のＣＰＵは、力覚センサ１１の出力が、上述した所定値以上となったか否かを確認する（ステップＳ３）。所定値以上となっていない場合は（ステップＳ３でＮＯ）、所定値以上となるまでステップＳ３をリピートし、所定値以上となった場合は（ステップＳ３でＹＥＳ）、ロボット１に対してワーク１５が位置決めされたものとして、ロボット１の姿勢データの出力要求をロボットコントローラ３１に出力する（ステップＳ５）。
【００３５】
なお、制御用ＰＣ１９からの姿勢データの出力要求を受け取ったロボットコントローラ３１は、出力要求の受け取り時点におけるロボット１の姿勢データを制御用ＰＣ１９に出力することになる。
【００３６】
そして、制御用ＰＣ１９のＣＰＵは、ロボット１の姿勢データがロボットコントローラ３１から入力されたならば（ステップＳ７でＹＥＳ）、入力されたロボット１の姿勢データから、エンドエフェクタ１３のロボット座標系における位置を割り出して、位置データとして取得する（ステップＳ９）。この位置データは、ワーク１５のエンドエフェクタ１３が接触している箇所のロボット１に対する相対位置を示すデータとなる。
【００３７】
この位置データが規定数に達していない場合は（ステップＳ１１でＮＯ）、エンドエフェクタ１３の移動先とするワーク１５の所定箇所を変えて、ステップＳ１以降の処理を繰り返す。ここで、位置データの規定数とは、例えば、ワーク１５の位置及び姿勢を特定できる３面の位置データを取得するのに必要な数とすることができる。具体的には、１面当たり３点の位置データが必要になるので、３面分の合計で位置データの規定数は「９」とすることができる。
【００３８】
位置データが規定数に達した場合は（ステップＳ１１でＹＥＳ）、制御用ＰＣ１９のＣＰＵは、ディスプレイ１９ａの表示画面上で選択されたワーク１５のＣＡＤデータから、そのワーク１５の設計上の形状（表面形状）を示す設計上の形状データを生成する（ステップＳ１３）。この設計上の形状データは、請求項中の理想形状データに相当する。設計上の形状データの生成は、ステップＳ１の前に行ってもよい。
【００３９】
次に、制御用ＰＣ１９のＣＰＵは、ステップＳ１３で生成した形状データとステップＳ９で取得した規定数の各位置データとを用いて、ワーク１５の設計上の形状とロボット１に対する実際の方向とを示す位置姿勢データを生成する（ステップＳ１５）。そして、生成した位置姿勢データで示される位置姿勢のワーク１５の表面に沿って、エンドエフェクタ２３，２５を位置制御により移動させるための動作指令を、ロボットコントローラ３１に出力し（ステップＳ１７）、一連の制御を終了する。
【００４０】
上述した位置姿勢データを生成するに当たっては、形状データによって示される設計上の形状によるワーク１５がロボット１に対して、規定数の各位置データから特定された方向に位置し、かつ、ワーク１５の表面上のある箇所が、ロボット座標系における所定箇所の座標値に対応付けられるように、形状データの座標系をロボット座標系に座標変換する。
【００４１】
このような形状データの座標系からロボット座標系への座標変換により、形状データの座標系上におけるワーク１５の方向が実際のワーク１５の方向と一致するようになる。
【００４２】
したがって、制御用ＰＣ１９からの動作指令を受け取ったロボットコントローラ３１は、その動作指令の元となる位置姿勢データに示された方向（ワーク１５の実際の方向）及び位置（ワーク１５の設計上の形状）に沿って、多関節型アーム５によりエンドエフェクタ２３，２５を移動させることになる。
【００４３】
これにより、エンドエフェクタ２３，２５は、図４中の破線で示す、大きなバリ（オニバリ）が存在する実際のワーク１５のエッジ１５ｃに沿ってではなく、図４中の実線で示す、バリのない、ＣＡＤモデル上のワーク１５のエッジ１５ｂに沿って位置制御により移動することになる。
【００４４】
以上に説明したように、第１実施形態のバリ除去方法によれば、ロボット１のエンドエフェクタ２３，２５を、ＣＡＤシステムからのワーク１５のＣＡＤデータから生成した位置姿勢データに基づいて、バリの存在しない理想的なワーク１５の仮想表面に沿って、実際のワーク１５の表面上を位置制御により移動させるようにした。
【００４５】
このため、ワーク１５の孔１５ａの周囲にバリが存在する場合であっても、力制御で移動させる場合のようにバリに倣ってエンドエフェクタ２３，２５が移動してしまうことがない。よって、ワーク１５に大きなバリ（オニバリ）が存在しても、精度よく除去することができる。また、バリの存在しないワーク１５の表面に沿ってエンドエフェクタ２３，２５を位置制御で移動させるために、ロボット１の膨大なティーチング作業を省くことができる。
【００４６】
以上に説明した第１実施形態では、ＣＡＤシステムからのワーク１５のＣＡＤデータから生成したワーク１５の形状データを、請求項中の理想形状データに相当するデータとした場合について説明した。しかし、ワーク１５のＣＡＤデータ以外のデータから請求項中の理想形状データを生成するようにしてもよい。
【００４７】
以下、そのようにした本発明の第２実施形態に係るバリ除去方法について説明する。なお、第２実施形態のバリ除去方法でも、図１及び図２に示す第１実施形態と同様の構成を用いる。但し、第１実施形態における制御用ＣＰＵ１９のＣＰＵがＲＯＭに格納されたプログラムにしたがって行う、ロボット１を用いたワーク１５のバリ取り動作に関する制御の内容が、図３のフローチャートに示す内容と異なっている。
【００４８】
次に、制御用ＰＣ１９のＣＰＵがＲＯＭに格納されたプログラムにしたがって行う、ロボット１を用いたワーク１５のバリ取り動作に関する制御を、図５及び図６のフローチャートを参照して説明する。本実施形態では、バリが理想的に除去されたワーク１５をマスターワーク（図示せず）として利用する。
【００４９】
まず、制御用ＰＣ１９のＣＰＵは、図５に示すように、接触子を先端に有するエンドエフェクタ１３がロボット１のフランジ部９に取り付けられている状態で、上述した不図示のマスターワークに接触子を所定の押し付け力で接触させる動作指令、つまり、力制御によりエンドエフェクタ１３を移動させるためのデータを、ロボットコントローラ３１に出力する（ステップＳＡ）。このデータには、ロボット１のタッチセンシングによりロボット１に対するマスターワークの相対位置及び方向を確認するのに適した所定箇所の、ロボット座標系における座標値（押し付け開始位置）と、マスターワークに対するエンドエフェクタ１３の押し付け力とが規定されている。ロボット１によりマスターワークをタッチセンシングする際には、所定箇所にワーク１５上でのバリが発生する箇所（例えば孔１５ａの周囲等）を除いた箇所を位置させるのが好ましい。
【００５０】
なお、ステップＳ１で制御用ＰＣ１９が出力するデータを受け取ったロボットコントローラ３１は、まず、エンドエフェクタ１３が所定箇所に位置（所定箇所においてマスターワークに接触）するようにロボット１の多関節型アーム５を作動させる。そして、力覚センサ１１の出力が、制御用ＰＣ１９から受け取ったデータ中に規定されているエンドエフェクタ１３のマスターワークに対する押し付け力に相当する所定値以上となるまで、所定箇所に位置（所定箇所においてマスターワークに接触）しているエンドエフェクタ１３をさらにマスターワーク側に移動させて押し付けることになる。
【００５１】
次に、制御用ＰＣ１９のＣＰＵは、力覚センサ１１の出力が、上述した所定値以上となったか否かを確認する（ステップＳＢ）。所定値以上となっていない場合は（ステップＳＢでＮＯ）、所定値以上となるまでステップＳＢをリピートし、所定値以上となった場合は（ステップＳＢでＹＥＳ）、ロボット１に対してマスターワークが位置決めされたものとして、ロボット１の姿勢データの出力要求をロボットコントローラ３１に出力する（ステップＳＣ）。
【００５２】
なお、制御用ＰＣ１９からの姿勢データの出力要求を受け取ったロボットコントローラ３１は、出力要求の受け取り時点におけるロボット１の姿勢データを制御用ＰＣ１９に出力することになる。
【００５３】
そして、制御用ＰＣ１９のＣＰＵは、ロボット１の姿勢データがロボットコントローラ３１から入力されたならば（ステップＳＤでＹＥＳ）、入力されたロボット１の姿勢データから、エンドエフェクタ１３のロボット座標系における位置を割り出して、位置データとして取得する（ステップＳＥ）。この位置データは、マスターワークのエンドエフェクタ１３が接触している箇所のロボット１に対する相対位置を示すデータとなる。
【００５４】
この位置データが規定数に達していない場合は（ステップＳＦでＮＯ）、エンドエフェクタ１３の移動先とするマスターワークの所定箇所を変えて、ステップＳＡ以降の処理を繰り返す。ここで、位置データの規定数とは、例えば、マスターワークの位置及び姿勢を特定できる３面の位置データを取得するのに必要な数とすることができる。具体的には、１面当たり３点の位置データが必要になるので、３面分の合計で位置データの規定数は「９」とすることができる。
【００５５】
位置データが規定数に達した場合は（ステップＳＦでＹＥＳ）、制御用ＰＣ１９のＣＰＵは、ディスプレイ１９ａの表示画面上で選択されたワーク１５のＣＡＤデータから、そのワーク１５の設計上の形状（表面形状）を示す設計上の形状データを生成する（ステップＳＧ）。設計上の形状データの生成は、ステップＳＡの前に行ってもよい。
【００５６】
次に、制御用ＰＣ１９のＣＰＵは、ステップＳＧで生成した形状データとステップＳＥで取得した規定数の各位置データとを用いて、ワーク１５の設計上の形状とロボット１に対する実際の方向とを示す位置姿勢データを生成する（ステップＳＨ）。そして、生成した位置姿勢データを、マスターワークの表面に沿ってエンドエフェクタ２３，２５を力制御により移動させるための位置制御用のデータとしてロボットコントローラ３１に出力する（ステップＳＩ）。
【００５７】
制御用ＰＣ１９からの位置制御データを受け取ったロボットコントローラ３１は、力覚センサ１１の出力が上述した所定値を維持するよう必要に応じて制御用ＰＣ１９から入力される動作指令により、エンドエフェクタ２３，２５の移動方向を適宜補正しながら、マスターワークの表面に沿ってエンドエフェクタ２３，２５を力制御により移動させることになる。
【００５８】
そして、制御用ＰＣ１９のＣＰＵは、ステップＳＩでロボットコントローラ３１に出力した動作指令によるエンドエフェクタ２３，２５の移動が一通り終了した場合に（ステップＳＪ）、図６のステップＳ１以降の処理に進む。
【００５９】
図６に示すステップＳ１以降の処理は、基本的に、図３に示すステップＳ１乃至ステップＳ１７の処理と同じである。但し、エンドエフェクタ１３のロボット座標系における位置を示す位置データの取得数が規定数に達した場合に（ステップＳ１１でＹＥＳ）、制御用ＰＣ１９のＣＰＵは、マスターワークの実形状に対応するワークの表面形状の形状データを生成する（ステップＳ１３ａ）。
【００６０】
ここで、マスターワークの実形状に対応するワークの形状データは、図５のステップＳＪで力制御によりエンドエフェクタ２３，２５をマスターワークの表面に沿って一通り移動させた際の、ロボットコントローラ３１で管理されるロボット１の姿勢データに基づいて、生成することができる。このマスターワークの実形状に対応するワークの形状データは、請求項中の理想形状データに相当する。形状データの生成後は、図３に示すステップＳ１５及びステップＳ１７と同様の各処理を行って、一連の制御を終了する。
【００６１】
したがって、制御用ＰＣ１９からの動作指令を受け取ったロボットコントローラ３１は、その動作指令の元となる位置姿勢データに示された方向（マスターワークの実際の方向）及び位置（マスターワークの形状）に沿って、多関節型アーム５によりエンドエフェクタ２３，２５を移動させることになる。
【００６２】
これにより、エンドエフェクタ２３，２５は、図７中の破線で示す、大きなバリ（オニバリ）が存在する実際のワーク１５のエッジ１５ｃや、図７中の想像線で示す、バリのない、ＣＡＤモデル上のワーク１５のエッジ１５ｂに沿ってではなく、図７中の実線で示す、実際にバリが理想的に除去されたマスターワークのエッジ１５ｄに沿って位置制御により移動することになる。
【００６３】
以上に説明した第２実施形態のバリ除去方法では、ロボット１のエンドエフェクタ２３，２５を、バリが理想的に除去されたワーク１５である不図示のマスターワークのタッチセンシングにより生成した位置姿勢データに基づいて、マスターワークの表面に沿って位置制御により移動させるようにした。
【００６４】
このように構成した第２実施形態のバリ除去方法によっても、第１実施形態のバリ除去方法と同様の効果を得ることができる。しかも、ワーク１５の設計上の形状データに代えて理想的にバリが除去されたマスターワークの形状データを用いることから、設計上のワーク１５の理想的な形状と、実際にバリを除去した理想的な形状のワーク１５（マスターワーク）の形状とが異なる場合に、現実の理想的な形状を有するマスターワークの形状に合わせてワーク１５のバリを精度よく除去することができる。
【符号の説明】
【００６５】
１  ロボット
３  基台
３ａ  設置面
５  多関節型アーム
５Ａ〜５Ｆ  ロータリアクチュエータ
５Ｇ〜５Ｌ  ドライブ回路
５Ｍ〜５Ｒ  ロータリセンサ
６ａ  第１アーム部
６ｂ  第２アーム部
６ｃ  第３アーム部
６ｄ  第４アーム部
６ｅ  Ａ１軸
６ｆ  Ａ２軸
６ｇ  Ａ３軸
６ｈ  Ａ４軸
６ｉ  Ａ５軸
６ｊ  Ａ６軸
９  フランジ部
１１  力覚センサ
１３  エンドエフェクタ
１５  ワーク
１５ａ  孔
１５ｂ  ワークエッジ
１５ｃ  ＣＡＤモデル上のワークエッジ
１５ｄ  マスターワークエッジ
１６  スライダ
１７  ガイドレール
１９  制御用ＰＣ
１９ａ  ディスプレイ
２１  ラック
２３  エンドエフェクタ
２５  エンドエフェクタ
３１  ロボットコントローラ
ＴＣＰ  ツールセンターポイント
【図１】
0005593899.tif 000002
【図２】
0005593899.tif 000003
【図３】
0005593899.tif 000004
【図４】
0005593899.tif 000005
【図５】
0005593899.tif 000006
【図６】
0005593899.tif 000007
【図７】
0005593899.tif 000008