(57)【特許請求の範囲】
【請求項１】
ワークに対して所定の仕上げ加工を行うロボットシステムにおいて、
先端部に手先工具が取り付けられたロボットアームを有するロボットと、
前記ロボットの動作を制御するロボット制御部と
を備え、
前記ロボット制御部は、
予め生成された軌道データに応じた第１の目標軌道に沿って前記手先工具を移動させるように前記ロボットを制御することにより前記ワークを試加工させ、
試加工後の前記ワークの形状として、前記ワークの加工面上の任意の複数の計測点の座標又は各前記計測点における前記加工面の面幅をそれぞれ計測し、
計測した各前記計測点における前記加工面の面幅に基づいて、前記第１の目標軌道を構成する複数の各経由点における前記加工面の面幅をそれぞれ算出し、
算出した各経由点における前記加工面の面幅が当該経由点について設定された面幅と一致させるよう前記第１の目標軌道を補正する
ことを特徴とするロボットシステム。
【請求項２】
前記ロボット制御部は、
予め生成された前記軌道データに基づく第２の目標軌道を前記ワークから離反する方向にシフトさせた前記第１の目標軌道を生成し、
生成した前記第１の目標軌道に沿って前記手先工具を移動させるように前記ロボットを制御する
ことを特徴とする請求項１に記載のロボットシステム。
【請求項３】
前記ロボット制御部は、
前記ワークの形状を計測する形状計測センサを備える
ことを特徴とする請求項１に記載のロボットシステム。
【請求項４】
前記ロボット制御部は、
前記手先工具を一定圧力で前記ワークに押し付けながら、予め生成された前記軌道データに基づく前記第１の目標軌道に沿って前記手先工具を移動させるように前記ロボットを制御することにより前記ワークを試加工させる
ことを特徴とする請求項１に記載のロボットシステム。
【請求項５】
ワークに対して所定の仕上げ加工を行うロボットシステムの制御方法であって、
前記ロボットシステムは、
先端部に手先工具が取り付けられたロボットアームを有するロボットと、
前記ロボットの動作を制御するロボット制御部と
を有し、
前記ロボット制御部が、予め生成された軌道データに応じた第１の目標軌道に沿って前記手先工具を移動させるように前記ロボットを制御することにより前記ワークを試加工させる第１のステップと、
前記ロボット制御部が、試加工後の前記ワークの形状を計測する第２のステップと、
前記ロボット制御部が、計測結果に基づいて前記第１の目標軌道を補正する第３のステップと
を備え、
前記ロボット制御部は、
前記第２のステップにおいて、
試加工後の前記ワークの形状として、前記ワークの加工面上の任意の複数の計測点の座標又は各前記計測点における前記加工面の面幅をそれぞれ計測し、
前記第３のステップにおいて、
計測した各前記計測点における前記加工面の面幅に基づいて、前記第１の目標軌道を構成する複数の各経由点における前記加工面の面幅をそれぞれ算出し、
算出した各経由点における前記加工面の面幅が当該経由点について設定された面幅と一致させるよう前記第１の目標軌道を補正する
ことを特徴とするロボットシステムの制御方法。
【請求項６】
前記第１のステップにおいて、前記ロボット制御部は、
予め生成された前記軌道データに基づく第２の目標軌道を前記ワークから離反する方向にシフトさせた前記第１の目標軌道を生成し、
生成した前記第１の目標軌道に沿って前記手先工具を移動させるように前記ロボットを制御する
ことを特徴とする請求項５に記載のロボットシステムの制御方法。
【請求項７】
前記第１のステップにおいて、前記ロボット制御部は、
前記手先工具を一定圧力で前記ワークに押し付けながら、予め生成された前記軌道データに基づく前記第１の目標軌道に沿って前記手先工具を移動させるように前記ロボットを制御することにより前記ワークを試加工させる
ことを特徴とする請求項５に記載のロボットシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットシステム及びその制御方法に関し、例えば、面取り加工などの仕上げ加工を行うロボットシステムに適用して好適なものである。
【背景技術】
【０００２】
仕上げ加工とは、切削加工や研削加工等の後、部品の形状や粗さを最終的に求められる形状や粗さに調整する作業である。バリ取り、面取り及び磨きなど、加工の多様性もさることながら、求められる品質レベルも多様である。
【０００３】
複雑な形状の部品や精密部品については高品質な仕上げ加工が求められているが、このような精密な仕上げ加工は人間の手作業により行われているのが実情である。しかしながら高度な技能を持つ作業者の育成に時間を要するため、ロボットを利用した仕上げ加工の自動化が望まれている。
【０００４】
このような状況のもと、近年では、ロボットの動作軌道をオフラインで生成し、生成した動作軌道に沿ってロボットを動作させることにより、ワーク（被加工体）に対して所定の仕上げ加工を施すロボットシステムの研究開発も広く行われ、実用化されている。
【０００５】
この種のロボットシステムの１つとして、例えば特許文献１には、溶接部位を含むワーク表面の起伏を測定して実データを取得し、取得した実データに基づいて推定完成曲面を生成し、実データと推定完成曲面との高さ方向の差分を研削量としてロボットの経路（動作軌道）を自動生成する発明が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−２８３０９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、オフラインで生成した動作軌道に従ってロボットを動作させる場合、かかるロボットの絶対位置決め精度が悪いと、最終的に専門知識を有するユーザによる調整作業が必要となる問題があった。またこの調整作業も煩雑であり、ワークとは別の調整用のワークが必要となる問題もあった。
【０００８】
本発明は以上の点を考慮してなされたもので、煩雑な調整作業を要することなく精度良く仕上げ加工を行い得るロボットシステム及びその制御方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、ワークに対して所定の仕上げ加工を行うロボットシステムにおいて、先端部に手先工具が取り付けられたロボットアームを有するロボットと、前記ロボットの動作を制御するロボット制御部とを有し、前記ロボット制御部は、予め生成された軌道データに応じた第１の目標軌道に沿って前記手先工具を移動させるように前記ロボットを制御することにより前記ワークを試加工させ、試加工後の前記ワークの形状として、前記ワークの加工面上の任意の複数の計測点の座標又は各前記計測点における前記加工面の面幅をそれぞれ計測し、計測した各前記計測点における前記加工面の面幅に基づいて、前記第１の目標軌道を構成する複数の各経由点における前記加工面の面幅をそれぞれ算出し、算出した各経由点における前記加工面の面幅が当該経由点について設定された面幅と一致させるよう前記第１の目標軌道を補正するようにした。
【００１０】
また本発明においては、ワークに対して所定の仕上げ加工を行うロボットシステムの制御方法であって、前記ロボットシステムは、先端部に手先工具が取り付けられたロボットアームを有するロボットと、前記ロボットの動作を制御するロボット制御部とを有し、前記ロボット制御部が、予め生成された軌道データに応じた第１の目標軌道に沿って前記手先工具を移動させるように前記ロボットを制御することにより前記ワークを試加工させる第１のステップと、前記ロボット制御部が、試加工後の前記ワークの形状を計測する第２のステップと、前記ロボット制御部が、計測結果に基づいて前記第１の目標軌道を補正する第３のステップとを設け、前記ロボット制御部は、前記第２のステップにおいて、試加工後の前記ワークの形状として、前記ワークの加工面上の任意の複数の計測点の座標又は各前記計測点における前記加工面の面幅をそれぞれ計測し、前記第３のステップにおいて、計測した各前記計測点における前記加工面の面幅に基づいて、前記第１の目標軌道を構成する複数の各経由点における前記加工面の面幅をそれぞれ算出し、算出した各経由点における前記加工面の面幅が当該経由点について設定された面幅と一致させるよう前記第１の目標軌道を補正するようにした。
【００１１】
本ロボットシステム及びその制御方法によれば、オフラインで生成した目標軌道がロボットの座標系に応じた位置に補正される。
【発明の効果】
【００１２】
本発明によれば、煩雑な調整作業を要することなく精度良く仕上げ加工を行い得るロボットシステム及びその制御方法を実現できる。
【図面の簡単な説明】
【００１３】
【図１】第１及び第２の実施の形態によるロボットシステムの全体構成を概念的に示す概念図である。
【図２】第１の実施の形態による軌道補正機能の説明に供する概念図である。
【図３】第１の実施の形態による軌道補正機能の説明に供する概念図である。
【図４】第１の実施の形態による軌道補正機能の説明に供する概念図である。
【図５】第１の実施の形態による軌道補正機能の説明に供する概念図である。
【図６】第１の実施の形態による軌道補正処理の処理手順を示すフローチャートである。
【図７】第１の実施の形態における各経由点での面幅の算出方法の説明に供する概念図である。
【図８】第１の実施の形態における各経由点での面幅の算出方法の説明に供する概念図である。
【図９】第２の実施の形態による軌道補正処理の処理手順を示すフローチャートである。
【図１０】第２の実施の形態における各経由点での面幅の算出方法の説明に供する概念図である。
【発明を実施するための形態】
【００１４】
以下図面について、本発明の一実施の形態を詳述する。
【００１５】
（１）第１の実施の形態
（１−１）本実施の形態によるロボットシステムの構成
図１において、１は全体として本実施の形態によるロボットシステムを示す。このロボットシステム１は、テーブル２に固定されたワーク３に対して所定の仕上げ加工（以下、面取り加工であるものとする）を施すロボット４と、当該ロボット４の動作を制御するロボット制御部５とから構成される。
【００１６】
ロボット４は、基台１０上に設置された多関節のロボットアーム１１を備え、当該ロボットアーム１１の先端にフランジ部１２を介して力覚センサ１３が取り付けられている。また力覚センサ１３には、スピンドルモータ１４を介して手先工具１５が交換自在に取り付けられており、かくしてワーク３に対する手先工具１５の押付け力を力覚センサ１３によって計測しながら、手先工具１５によりワーク３の面取り加工を行い得るようになされている。
【００１７】
なお、本実施の形態の場合、フランジ部１２には、力覚センサ１３に代えてロボット制御部５の一部を構成する２次元レーザ変位センサ等の形状計測センサ２５（図４）を取り付け得るようになされており、加工後のワーク３の形状をこの形状計測センサによって計測することもできるようになされている。
【００１８】
ロボット制御部５は、制御装置６及びコントローラ７から構成される。制御装置６は、ＣＰＵ（Central Processing Unit）２０及びメモリ２１等の情報処理資源を備えるコンピュータ装置であり、例えばパーソナルコンピュータから構成される。
【００１９】
制御装置６は、図示しないＣＡＭ（Computer Aided Manufacturing）システムを用いて生成されたロボット４の手先工具１５の先端近傍に設定されたＴＣＰ（Tool Center Pint）の目標軌道と、力覚センサ１３から与えられる計測値と、コントローラ７から与えられるロボット４の位置及び姿勢を表す位置・姿勢データとに基づいて手先工具１５のＴＣＰの実際の目標軌道を計算し、計算により得られた目標軌道に沿って手先工具１５のＴＣＰを移動させるための指令値（以下、これを位置・姿勢指令値と呼ぶ）をコントローラ７に送信する。
【００２０】
コントローラ７は、制御装置６と同様に、ＣＰＵ２２及びメモリ２３等の情報処理資源を備えるコンピュータ装置であり、例えばパーソナルコンピュータから構成される。コントローラ７は、制御装置６から送信される位置・姿勢指令値に基づいてロボット４内のモータ等の各マニュピレータをそれぞれ制御することにより、制御装置６により算出された目標軌道上を手先工具１５のＴＣＰが移動するようにロボット４を駆動する。
【００２１】
（１−２）軌道補正機能
次に、かかるロボットシステム１の制御装置６に実装された軌道補正機能について説明する。ロボット４の手先工具１５のＴＣＰの目標軌道をオフラインで生成する場合、上述のように絶対位値決めの誤差が大きいロボットシステムでは面取り加工のような精密仕上げ加工を行うことが難しい。
【００２２】
そこで本実施の形態によるロボットシステム１には、図２のようにオフラインで生成された目標軌道ＲＡ＝｛ｒ１，ｒ２，…，ｒｎ｝をワーク３から離反する方向（手先工具１５をワーク３に押付ける押付け方向の逆方向。以下、同様。）にシフトさせた目標軌道ＲＡ’を生成し、生成した目標軌道ＲＡ’に沿って手先工具１５のＴＣＰを移動させることにより図３のようにワーク３の試加工を行い、加工後のワーク３の加工面３Ａの形状を図４のように２次元レーザ変位センサ等の形状計測センサ２５を用いて計測し、計測結果に基づいて図５のように手先工具１５のＴＣＰの目標軌道ＲＡ’を補正した目標軌道ＲＡ”（図５）を生成する軌道補正機能が搭載されている。
【００２３】
図６は、このような軌道補正機能に関連して制御装置６のＣＰＵ２０により実行される軌道補正処理の処理手順を示す。ＣＰＵ２０は、ロボットシステム１の運転モードとして、生産運転モード前に実行される軌道補正モードが選択されると、メモリ２１に格納された第１の実施の形態のプログラム（図示せず）に基づき、この図６に示す処理手順に従って必要な処理を実行することにより、オフラインで生成された目標軌道ｒ１を補正する。
【００２４】
実際上、ＣＰＵ２０は、まず、オフラインで生成された目標軌道ＲＡを所定距離だけワーク３から離反する方向にシフトさせた目標軌道ＲＡ’を生成する（ＳＰ１）。
【００２５】
ここで、ロボット４の手先工具１５のＴＣＰの目標軌道ＲＡは、それぞれ｛ｘ〔mm〕，ｙ〔mm〕，ｚ〔mm〕，Ａ〔deg〕，Ｂ〔deg〕，Ｃ〔deg〕，ｖｘ，ｖｙ，ｖｚ，ｗ〔mm〕｝で表現される複数の経由点の点列として生成される。ｘ、ｙ及びｚは、それぞれ目標軌道ｒ１上の経由点のｘ座標、ｙ座標及びｚ座標を表し、Ａ，Ｂ及びＣは、それぞれその経由点における手先工具１５のロール角、ピッチ角及びヨー角を表す。また（ｖｘ，ｖｙ，ｖｚ）は、その経由点に対する手先工具１５の押付け方向ベクトルを表す。なお、手先工具１５の押付け方向ベクトルは、その経由点におけるワーク３の法線方向と平行な単位ベクトルである。またｗは、その経由点における加工面の面幅を表す。
【００２６】
そこでＣＰＵ２０は、目標軌道ｒ１を構成するこのような各経由点について、ベクトルｒ＝｛ｘ，ｙ，ｚ｝、ベクトルｖ＝｛ｖｘ、ｖｙ、ｖｚ｝とし、シフト量をｄ〔mm〕とし、シフト後の目標軌道をＲＡ’＝｛ｒ１’,ｒ２’，…，ｒｎ’｝として、次式
【数１】
0006569222.tif 000002
の演算を経由点ｒｉ（ｉ＝１〜ｎ）ごとにそれぞれ実行することにより、シフト後の目標軌道ＲＡ’を求める。なお（１）式において太字はベクトルを表す。以下においても同様である。
【００２７】
続いて、ＣＰＵ２０は、シフト後の目標軌道ＲＡ’に沿ってロボット４の手先工具１５のＴＣＰを移動させるようにしてワーク３を位置制御で試加工させる（ＳＰ２）。
【００２８】
具体的に、ＣＰＵ２０は、シフト後の目標軌道ＲＡ’上の各経由点のｘ座標、ｙ座標及びｚ座標と、その経由点における手先工具１５のロール角Ａ、ピッチ角Ｂ及びヨー角Ｃと、その経由点におけるワーク３に対する手先工具１５の押付け方向ｖとをそれぞれ所定の制御周期（例えば12〔msec〕）で順次読み出し、読み出したこれらの情報と、当該制御周期でコントローラ７（図１）から与えられる現在のロボット４の位置・姿勢データとに基づいて、次の経由点に手先工具１５のＴＣＰが移動するようにロボット４を動作させるための位置・姿勢指令値を順次算出する。そしてＣＰＵ２０は、このようにして算出した位置・姿勢指令値をコントローラ７に順次送信する。かくして、これらの位置・姿勢指令値に基づいてロボット４の位置及び姿勢がコントローラ７により制御され、これによりワーク３が試加工される。
【００２９】
続いて、ＣＰＵ２０は、試加工後のワークの加工面３Ａ（図３）の形状を計測する（ＳＰ３）。具体的に、ＣＰＵ２０は、ユーザにより力覚センサ１３（図１）に変えてフランジ部１２（図１）に取り付けられた形状計測センサ２５（図４）をワーク３の加工面３Ａに沿って移動させるための位置・姿勢指令値を制御周期でコントローラ７に順次与える。これによりＣＰＵ２０は、かかる形状計測センサ２５からコントローラ７を介して与えられる計測データに基づいて、加工面３Ａ上のｎ箇所の任意の点（以下、これを計測点と呼ぶ）について、その座標｛ｘｋ、ｙｋ、ｚｋ｝及び当該計測点における面幅ｃｋ（ｋ＝１，２，……ｎ）をそれぞれ取得する。
【００３０】
次いで、ＣＰＵ２０は、このとき取得した各計測点の座標｛ｘｋ、ｙｋ、ｚｋ｝及び当該計測点における面幅ｃｋに基づいて、ワーク３の加工面３Ａの形状が目標とする加工形状となっているか否か（目標軌道ＲＡ’上の各経由点における面幅ｃｌがその経由点について設定された面幅ｗとすべて一致するか否か）を判断する（ＳＰ４）。
【００３１】
なお、各経由点における面幅ｃｌは、各計測点の面幅ｃｋを利用して、以下の手法により算出することができる。まず、図７に示すように、各計測点ｐｋ（ｋ＝１，２，……，ｎ）をそれぞれそのときの目標軌道ＲＡ’上に投影した点（以下、これを投影計測点ｐｋ’と呼ぶ）を算出する。この投影計測点ｐｋ’は、最短の経由点を２点探索し、図８に示すように、投影計測点ｐｋ’からその２点の経由点ｒｌとｒｌ＋１とを結ぶ線分に下した垂線の足として、次式
【数２】
0006569222.tif 000003
により求めることができる。なお（２）式において「・」はベクトルの内積を表し、「||a||」はベクトルａの絶対値を表す。また（２）式は、図７の投影計測点ｐｋ’を求める式であるが、他の投影計測点についても、同様に求めることができる。
【００３２】
この後、経由点ｒｌごとに、最短の投影計測点ｐｋ’をそれぞれ２点探索し、検出した２点の投影計測点ｐｋ’とその経由点ｒｐｌとに基づいて、内分点計算によりその経由点ｒｌにおける面幅ｃｌを計算する。例えば図７の経由点ｒｌの場合では、最短の投影計測点として投影計測点ｐｋ−１’及び投影計測点ｐｋ’が検出される。そこで、この経由点ｒｌでの面幅ｃｌは、次式により求めることができる。
【数３】
0006569222.tif 000004
【００３３】
かくしてＣＰＵ２０は、ステップＳＰ３において、このようにして求めた経由点ｒｌごとの面幅ｃｌと、個々の経由点ｒｌについてそれぞれ定められた面幅ｗとを比較し、これらがすべて一致するか否かに基づいてワーク３の加工面３Ａの形状が目標とする加工形状となっているか否かを判断する。
【００３４】
そしてＣＰＵ２０は、この判断で否定結果を得ると、計測結果に基づいて現在の目標軌道ＲＡ’を補正する（ＳＰ５）。具体的に、ＣＰＵ２０は、目標軌道ＲＡ’上のｍ個の経由点ｒ’ごとに次式
【数４】
0006569222.tif 000005
の演算を実行することにより、シフト後の目標軌道ＲＡ’を補正した新たな目標軌道ＲＡ” ＝｛ｒ１”，ｒ２”，…，ｒm”｝を算出する。
【００３５】
なお（４）式において、ｌは１〜ｍの整数であり、ａｌは目標軌道ＲＡ’から目標軌道ＲＡ”への目標軌道のシフト量と、対応する経由点ｒｌにおける加工面３Ａの面幅ｃｌとから幾何学的に決定される係数を表す。例えば、エッジの角度が90度であれば、0.1〔mm〕のシフト量で0.1×√２だけ面幅が変化するためａｌが0.1414に設定される。
【００３６】
続いて、ＣＰＵ２０は、ステップＳＰ２に戻り、この後、ステップＳＰ４で肯定結果を得るまでステップＳＰ２〜ステップＳＰ５の処理を繰り返す。そしてＣＰＵ２０は、やがてワーク３の加工面が目標通りの形状に面取り加工されることによりステップＳＰ４で肯定結果を得ると、この一連の処理を終了し、そのときの目標軌道ＲＡ”をこれ以降に実行される生産運転モード時におけるロボット４の手先工具１５の目標軌道として内部設定する。
【００３７】
かくしてＣＰＵ２０は、生産運転モードでは、上述のように内部設定した目標軌道ＲＡ”に沿って手先工具１５のＴＣＰを移動させるようにロボット４を動作させる位置・姿勢指令値を上述の制御周期でコントローラ７に送信するようにして、ロボット４にワーク３を加工させる。
【００３８】
（１−３）本実施の形態の効果
以上のように本実施の形態のロボットシステム１では、オフラインで生成した目標軌道に基づいてワーク３を試加工し、加工後のワーク３の形状を計測し、計測結果に基づいて目標軌道を補正する。
【００３９】
従って、本ロボットシステム１によれば、オフラインで生成した目標軌道がロボット４の座標系に応じた位置に補正されるため、ロボット４の絶対位置決め精度が悪い場合においても、煩雑な調整作業を要することなく精度良く仕上げ加工を行うことができる。
【００４０】
また本ロボットシステム１では、オフラインで生成した軌道データに基づく目標軌道をワーク３から離反する方向にシフトさせた目標軌道を生成し、この目標軌道に沿って手先工具１５のＴＣＰを移動させるようにロボット４の動作を制御するため、試加工の際にワーク３を加工し過ぎることがなく、実際の製品を用いて試加工を行うことができる。かくするにつき、本ロボットシステム１によれば、調整用のワークを必要とすることなく、目標軌道の補正を行うことができる。
【００４１】
（２）第２の実施の形態
（２−１）本実施の形態による軌道補正機能
第１の実施の形態においては、ワーク３の試加工時及び生産加工時におけるロボット４の制御方式として位置制御方式を適用しているが、このような位置制御方式を適用した場合、試加工の際にワーク３を加工し過ぎることがないように、図６のステップＳＰ１で設定する目標軌道のシフト量を大きくする必要がある。
【００４２】
具体的には、最初の図６のステップＳＰ１においてシフト後の目標軌道を十分にワーク３から離れた位置に設定し、その後、ロボット４の動作確認を行いながら、手先工具１５がワーク３に接触するまで目標軌道を少しずつワーク３に近づけていくように目標軌道を補正する必要がある。このためこの方法によると、最終的なロボット４の目標軌道の設定に相応の時間を要することとなる。
【００４３】
そこで、本実施の形態では、ワーク３の試加工時におけるロボット４の制御方式として、手先工具１５を常に一定圧力でワーク３に押し付けながら目標軌道に沿って移動させる、いわゆる位置と力のハイブリッド制御方式を適用する。このようなハイブリッド制御を適用すると、ワーク３の加工時にロボット４の手先工具１５がそのワーク３の形状に倣うため、ワーク３を加工し過ぎるのを防止することができ、ロボット４の手先工具１５の目標軌道としてオフラインで生成した目標軌道をそのまま試加工時の手先工具１５の目標軌道として適用することができる。
【００４４】
図１において、３０はこのような本実施の形態によるロボットシステムを示す。このロボットシステム３０は、軌道補正機能に関連して実行される軌道補正処理時や生産運転モード時において、位置と力のハイブリッド制御でロボット４を動作させながらワーク３を試加工又は加工する点を除いて第１の実施の形態によるロボットシステム１と同様に構成されている。
【００４５】
図９は、本実施の形態による軌道補正機能に関連して制御装置３１（図１）のＣＰＵ２０により実行される軌道補正処理の処理手順を示す。ＣＰＵ２０は、メモリ２１に格納された第２の実施の形態のプログラム（図示せず）に基づき、この図９に示す処理手順に従って必要な処理を実行することにより、オフラインで生成されたロボット４の手先工具１５の目標軌道を補正する。
【００４６】
ここで、本実施の形態においては、位置と力のハイブリッド制御によりロボット４を制御するようにしてワーク３の試加工及びその後の生産加工を行うため、ロボット４の手先工具１５のＴＣＰの目標軌道をオフラインで生成する際に、ワーク３に対する手先工具１５の押付け力も併せて設定される。
【００４７】
そしてＣＰＵ２０は、軌道補正モードが選択されると、まず、オフラインで生成された目標軌道に沿って手先工具１５を移動させるよう、位置と力のハイブリッド制御でロボット４の動作を制御することによりワーク３を試加工させる（ＳＰ１０）。
【００４８】
実際上、ＣＰＵ２０は、オフラインで生成された目標軌道上の各経由点のｘ座標、ｙ座標及びｚ座標と、その経由点における手先工具１５のロール角Ａ、ピッチ角Ｂ及びヨー角Ｃと、その経由点におけるワーク３に対する手先工具１５の押付け方向ｖ＝（ｖｘ、ｖｙ、ｖｚ）と、手先工具１５のワーク３への押付け力とをそれぞれ所定の制御周期（例えば12〔msec〕）で順次読み出し、読み出したこれらの情報と、当該制御周期でコントローラ７から与えられる現在のロボット４の位置及び姿勢を表す位置・姿勢データと、力覚センサ１３により計測されたワーク３に対する手先工具１５の押付け力とに基づいて、次の経由点に手先工具１５のＴＣＰが移動するようにロボット４を動作させるための位置・姿勢指令値を順次算出する。そしてＣＰＵ２０は、このようにして算出した位置・姿勢指令値と、ワーク３に対する手先工具１５の押付け力とをコントローラ７に順次送信する。かくして、これらの位置・姿勢指令値と、ワーク３に対する手先工具１５の押付け力とに基づいてロボット４の位置及び姿勢がコントローラ７により制御され、これによりワーク３が試加工される。
【００４９】
続いて、ＣＰＵ２０は、ステップＳＰ１１及びステップＳＰ１２を図６について上述した第１の実施の形態による軌道補正処理のステップＳＰ３及びステップＳＰ４と同様に処理する。そしてＣＰＵ２０は、ステップＳＰ１２において否定結果を得ると、そのときの目標軌道を補正することにより、新たな目標軌道を生成する（ＳＰ１３）。具体的に、ＣＰＵ２０は、そのときの目標軌道をＲＢ＝｛ｒ１，ｒ２，…，ｒｎ｝とし、新たな目標軌道をＲＢ’＝｛ｒ１’,ｒ２’，…，ｒｎ’｝として、ｍ個の経由点ごとに次式
【数５】
0006569222.tif 000006
の演算を実行することにより、新たな目標軌道ＲＢ’を生成する。
【００５０】
なお（５）式において、ｌは１〜ｍの整数であり、ａｌは目標軌道ＲＢから目標軌道ＲＢ’への目標軌道のシフト量と、対応するその経由点における加工面の面幅ｃｌとから幾何学的に決定される係数を表す。例えば、エッジの角度が90度であれば、0.1〔mm〕のシフト量で0.1×√２だけ面幅が変化するため係数ａｌを0.1414に設定する。また面幅ｃｌは、第１の実施の形態による軌道補正処理のステップＳＰ５と同様に算出される。
【００５１】
続いて、ＣＰＵ２０は、ステップＳＰ１０に戻り、この後、ステップＳＰ１２で肯定結果を得るまでステップＳＰ１０〜ステップＳＰ１３の処理を繰り返す。そしてＣＰＵ２０は、やがてワーク３が目標通りの加工形状に面取り加工されることによりステップＳＰ１２で肯定結果を得ると、この一連の処理を終了し、そのときの目標軌道ＲＢ’をこれ以降に実行される生産運転モード時におけるロボット４の手先工具１５の目標軌道として内部設定する。
【００５２】
かくしてＣＰＵ２０は、生産運転モードでは、上述のように内部設定した目標軌道ＲＢ’に沿って手先工具１５のＴＣＰを移動させるようにロボット４を動作させる位置・姿勢指令値と、そのときのワーク３に対する手先工具１５の押付け力とを上述の制御周期でコントローラ７に送信するようにして、位置と力のハイブリッド制御によりロボット４にワーク３を加工させる。
【００５３】
（２−２）位置と力のハイブリッド制御
次に、本実施の形態のロボットシステム３０において、ロボット４の制御方式として適用された位置と力のハイブリッド制御について説明する。
【００５４】
本ロボットシステム３０では、上述のようにロボット４の制御方式として位置と力のハイブリッド制御を採用している。そして本実施の形態において、制御装置３１（図１）のＣＰＵ２０は、複雑な形状のワーク３に対応するため、手先工具１５を力制御でワーク３に押し付ける方向（押付け方向）をワーク３の表面の法線方向と一致させるべく、以下の演算を実行している。
【００５５】
まず、ＣＰＵ２０には、目標軌道として、ＣＡＭを用いて生成された、ワーク３の基準面等に固定されたローカル基準座標系ΣLを基準とした手先工具１５のＴＣＰの位置及び姿勢の点列Ｌｐｄ（ｎ）と、押付け方向ベクトルの点列Ｌｖ（ｎ）とのデータが与えられる。
【００５６】
ＣＰＵ２０は、この目標軌道ＲＢから制御周期ごとの目標とすべき位置及び姿勢Ｌｐｄ（ｔｋ）と、押付け方向ベクトルＬｖ（ｔｋ）とを、それぞれ所望する送り速度・加速度の台形加速となるように、次式
【数６】
0006569222.tif 000007
及び
【数７】
0006569222.tif 000008
により算出する。なお（６）式及び（７）式において、右上の添え字「Ｔ」は転置を表し、「ｔｋ」は各制御周期における離散的な時刻を表す。また押付け方向ベクトルＬｖ（ｔｋ）は単位ベクトルであり、送り方向とは直交するように生成される。
【００５７】
次に、ＣＰＵ２０は、送り方向ベクトルＬｕ（ｔｋ）を、次の目標位置（経由点）までの方向ベクトルとして、次式
【数８】
0006569222.tif 000009
により算出する。またＣＰＵ２０は、手先工具１５を一定圧力ｆ〔Ｎ〕でワークに押し付ける際の目標値を次式
【数９】
0006569222.tif 000010
により算出する。
【００５８】
ここで、各制御周期における次式
【数１０】
0006569222.tif 000011
で表されるロボット４の位置・姿勢の計測値Ｌｐ（ｔｋ）はコントローラ７から得られ、次式
【数１１】
0006569222.tif 000012
で与えられるワーク３に対する手先工具１５の押付け力の計測値Ｌｆ（ｔｋ）は力覚センサ１３（図１）の計測データを元に、手先工具１５の重力成分を除去（重力補償）して算出されるものとする。
【００５９】
なおｆｘ（ｔｋ）、ｆｙ（ｔｋ）及びｆｚ（ｔｋ）はそれぞれｘ軸方向、ｙ軸方向又はｚ軸方向の力を表し、τｘ（ｔｋ）、τｙ（ｔｋ）及びτｚ（ｔｋ）はそれぞれｘ軸回り、ｙ軸回り又はｚ軸回りのトルクを表す。また手先工具１５の重力成分は、手先工具１５をワーク３等に接触させずに同じ目標軌道ＲＢを位置制御で動作したときの力覚センサ１３の計測値を予め取得しておき、この計測値に基づいて算出する。
【００６０】
ここで複雑な形状に対応するために中間的な作業座標系を定義する。一般的な作業座標系の設定手法を自由既知形状に拡張し、各時刻において作業座標系Σpを、次式
【数１２】
0006569222.tif 000013
と定義する。なお（１２）式において、「ＬＲＰ（ｔｋ）」は作業座標系Σｐからローカル基準座標系ΣLへの回転行列であり、「ａ×ｂ」は次式
【数１３】
0006569222.tif 000014
で与えられるａ及びｂの外積を表す。つまり作業座標系Σｐは、Ｘ軸を押付け方向、Ｙ軸を送り方向として定義される座標系である。
【００６１】
その上で、ＣＰＵ２０は、押付け方向の力の誤差Ｌｆｅ（ｔｋ）を次式
【数１４】
0006569222.tif 000015
により算出し、押付け方向の位置の誤差Ｌｐｅ（ｔｋ）を次式
【数１５】
0006569222.tif 000016
により算出する。これにより曲面に対しても常に面の法線方向に力制御することができる。
【００６２】
そしてＣＰＵ２０は、ＰＩＤ制御を用いて次式
【数１６】
0006569222.tif 000017
により位置・姿勢指令値ＬｐCMD（ｔｋ+１）を算出し、これをコントローラ７に送信する。なお、「ＫＸＸ」は位置・力のＰＩＤ制御ゲインである。
【００６３】
（２−３）本実施の形態の効果
以上のように本実施の形態のロボットシステム３０では、ワーク３の試加工時に位置と力のハイブリッド制御によりロボット４の位置及び姿勢を制御しながらオフラインで生成した手先工具の目標軌道ＲＢに基づいてワーク３を試加工し、加工後のワーク３の形状を計測し、計測結果に基づいて手先工具１５の目標軌道を補正する。
【００６４】
従って、本ロボットシステム３０によれば、第１の実施の形態により得られる効果に加えて、ロボット４の手先工具１５の目標軌道の補正をより迅速に行うことができるという効果をも得ることができる。
【００６５】
（３）他の実施の形態
なお上述の第１及び第２の実施の形態においては、本発明を面取り加工を行うロボットシステム１，３０に適用するようにした場合について述べたが、本発明はこれに限らず、この他種々の仕上げ加工を行うロボットシステムに広く適用することができる。
【００６６】
また上述の第１及び第２の実施の形態においては、試加工が施されたワーク３の形状を形状計測センサ２５を用いて計測するようにした場合について述べたが、本発明はこれに限らず、例えば、ロボット４の手先工具１５をワーク３の加工部位に接触させるタッチセンシングにより加工後のワーク３の形状を計測するようにしても良い。
【００６７】
さらに上述の第１及び第２の実施の形態においては、試加工後のワーク形状の計測において加工面が目標通りの加工形状となっていなかった場合には、ワーク３の加工面３Ａの全面に渡って試加工を最初から行うようにした場合について述べたが、本発明はこれに限らず、例えばワーク３の加工面３Ａのうち、面幅が目標とする面幅よりも狭い箇所についてのみ選択的に試加工を再度実行するようにしても良い。
【００６８】
さらに上述の第１及び第２の実施の形態においては、ロボット４の動作を制御するロボット制御部５を制御装置６，３１及びコントローラ７により構成するようにした場合について述べたが、本発明はこれに限らず、これら制御装置６，３１及びコントローラ７の機能を搭載した１つの装置としてロボット制御部５を構成するようにしても良い。
【産業上の利用可能性】
【００６９】
本発明は、ワークに対して所定の仕上げ加工を行う種々のロボットシステムに広く適用することができる。
【符号の説明】
【００７０】
１，３０……ロボットシステム、３……ワーク、４……ロボット、５……ロボット制御部、６，３１……制御装置、７……コントローラ、１３……力覚センサ、１５……手先工具、２０……ＣＰＵ、２５……形状計測センサ。
【図１】
0006569222.tif 000018
【図２】
0006569222.tif 000019
【図３】
0006569222.tif 000020
【図４】
0006569222.tif 000021
【図５】
0006569222.tif 000022
【図６】
0006569222.tif 000023
【図７】
0006569222.tif 000024
【図８】
0006569222.tif 000025
【図９】
0006569222.tif 000026
【図１０】
0006569222.tif 000027