(57)【要約】【課題】関節の各軸が軸ずれした場合でも、ロボットの動作を正常に復帰させる。【解決手段】ロボット衝突後、ロボットコントローラは次のことを実行する。基準姿勢状態で各軸Ｊ１〜Ｊ６の補正用角度データＪｈ（１）〜Ｊｈ（６）を得（ステップＳ１）、この角度データを不揮発性メモリ６に記憶させ、軸ずれ値ΔＪ（１）〜ΔＪ（６）を検出する（ステップＳ２）。そして、衝突前の各作業ポイントでのティーチングポイントデータＰ１〜Ｐｎを軸Ｊ１〜Ｊ６の角度データに変換し（ステップＳ３）、各作業ポイントでのティーチング角度データの各軸角度データを前記軸ずれ値ΔＪ（１）〜ΔＪ（６）に基づいて補正し（ステップＳ４）、上記各作業ポイントでのティーチング角度データからティーチングポイントデータを得る（ステップＳ５）。【選択図】図１
2006321046.tif 000002
【特許請求の範囲】
【請求項１】
複数の関節各軸を回動駆動する各アクチュエータを、前記関節各軸の回動角度データであるティーチング角度データに基づいて動作させ、ロボットのアーム先端に各作業ポイントで所定動作を行わせるようにした多関節ロボットの制御方法において、
前記各作業ポイントでのロボットのアーム先端の座標と姿勢を示すデータを前記各作業ポイントでのティーチングポイントデータ（Ｐ１〜Ｐｎ）として記憶し、
前記多関節ロボットを基準姿勢に設定したときでの前記関節各軸のティーチング角度データを基準角度データ（Ｊｋ（１）〜Ｊｋ（６））として記憶し、
前記多関節型ロボットが障害物に衝突した異常時の後に、前記基準姿勢に設定したときでの前記関節各軸のティーチング角度データを補正用角度データ（Ｊｈ（１）〜Ｊｈ（６））として記憶し、
記憶された前記基準角度データ（Ｊｋ（１）〜Ｊｋ（６））と記憶された前記補正用角度データ（Ｊｈ（１）〜Ｊｈ（６））との間の誤差（ΔＪ（１）〜ΔＪ（６））を検出し、
記憶されている前記衝突前の前記各作業ポイントでのティーチングポイントデータ（Ｐ１〜Ｐｎ）を前記関節各軸のティーチング角度データ（Ｊｐ１（１）〜Ｊｐｎ（６））に変換し、
検出した前記誤差（ΔＪ（１）〜ΔＪ（６））に基づいて、変換された前記関節各軸のティーチング角度データ（Ｊｐ１（１）〜Ｊｐｎ（６））を補正して、補正した前記関節各軸のティーチング角度データ（Ｊｐ１（１）´〜Ｊｐｎ（６）´）を得ることを特徴とする多関節型ロボットの制御方法。
【請求項２】
補正したティーチング角度データ（Ｊｐ１（１）´〜Ｊｐｎ（６）´）からティーチングポイントデータ（Ｐ１´〜Ｐｎ´）を得ることを特徴とする請求項１記載の多関節型ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は関節の各軸を駆動するアクチュエータをティーチングデータに基づいて動作させるようにした多関節型ロボットの制御方法に関する。
【背景技術】
【０００２】
従来より、ロボットはティーチングデータに基づいて各関節の軸をアクチュエータにより回転駆動して、ロボットのアーム先端のハンドに所定動作を行なうようになっている。上記ティーチングデータには、いわゆるＪ変数と称されるティーチング角度データと、Ｐ変数と称されるティーチングポイントデータとがある。ティーチング角度データは、各関節の軸の回動角度データであり、ロボットの姿勢が直接的に制御されるものである。ティーチングポイントデータはロボットのアームの先端アーム部のＸＹＺ座標と姿勢（θｘ，θｙ，θｚ）を示すデータである。このティーチングポイントデータは、オペレータによる実際のティーチングに好適している。ただし、このティーチングポイントデータも各関節の各軸のティーチング角度データに変換されて使用されるものである。
【０００３】
ところで、例えば、何らかの原因でロボットが衝突した場合、ハンドの位置や姿勢が不適正となってしまうことがある。
その対策として、ロボット先端に、形状記憶合金からなる保護体を設ける構成としたもの（特許文献１）があるが、このものは特定の姿勢に対しては有効であるものの他の姿勢全般に対して有効とはいえないものであった。また、特許文献２に、ハンドの取り付け位置がずれた場合の復帰を行なうロボット制御装置が開示されている。このものでは、ツールオフセットを更新してハンドのずれを修正し、もってロボットの動作を正常に戻すようにしている。
【特許文献１】特開平２−２２４９９５号公報
【特許文献２】特開昭０９−０７６１７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、このものでは、関節の各軸が軸ずれした場合には良好に復帰できないという問題点があった。
すなわち、この種の多関節型ロボットは図７に示すように、各軸Ｊ１〜Ｊ６を矢印で示す方向に回動可能である。そして、先端アーム部５０を回動させるための軸Ｊ６は、図８に示すように、モータ５１により回動されるものであり、その回動角度は、エンコーダ５２により検出されるようになっている。この各軸の角度データは予めティーチングされており、そのティーチングデータに基づいてロボットが動作されるようになっている。
【０００５】
しかして、ハンド５３が、図８の矢印で示すように衝突力を受けると、ねじ孔５４部分等がずれてしまい、例えば図９の角度βで示すように、軸Ｊ６の実際の角度がずれる軸ずれが発生する。この場合、エンコーダ５２の検出角度は変らず、そのまま復帰するとロボットが所期の動作をしないことになってしまう。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的は、関節の各軸が軸ずれした場合でも、ロボットの動作を正常に復帰させることができるようにすることにある。
【課題を解決するための手段】
【０００７】
請求項１の多関節型ロボットの制御方法によれば、各作業ポイントでのロボットのアーム先端の座標と姿勢を示すデータを前記各作業ポイントでのティーチングポイントデータ（Ｐ１〜Ｐｎ）として記憶し、多関節ロボットを基準姿勢に設定したときでの前記関節各軸のティーチング角度データを基準角度データ（Ｊｋ（１）〜Ｊｋ（６））として記憶し、前記多関節型ロボットが障害物に衝突した異常時の後に、前記基準姿勢に設定したときでの前記関節各軸のティーチング角度データを補正用角度データ（Ｊｈ（１）〜Ｊｈ（６））として記憶し、記憶された前記基準角度データ（Ｊｋ（１）〜Ｊｋ（６））と記憶された前記補正用角度データ（Ｊｈ（１）〜Ｊｈ（６））との間の誤差（ΔＪ（１）〜ΔＪ（６））を検出し、記憶されている前記衝突前の前記各作業ポイントでのティーチングポイントデータ（Ｐ１〜Ｐｎ）を前記関節各軸のティーチング角度データ（Ｊｐ１（１）〜Ｊｐｎ（６））に変換し、検出した前記誤差（ΔＪ（１）〜ΔＪ（６））に基づいて、変換された前記関節各軸のティーチング角度データ（Ｊｐ１（１）〜Ｊｐｎ（６））を補正して、補正した前記関節各軸のティーチング角度データ（Ｊｐ１（１）´〜Ｊｐｎ（６）´）を得るから、ロボットの動作を正常に復帰させることができる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の一実施例につき図1ないし図６を参照して説明する。図２には、本実施例にかかる多関節型ロボットの本体１の外観構造を示している。ここで、ロボット本体１は、ベース２上に多関節型（例えば６軸）アーム３を備えており、各関節の軸Ｊ１〜Ｊ６は、図２及び図３に矢印で示す方向に回動するようになっている。そして、先端アーム部３ａのフランジ３ｂには、図示しないがハンドが連結されるようになっている。上記各軸Ｊ１〜Ｊ６には、各軸の回動角度を検出する角度センサたるエンコーダＥ１〜Ｅ６（図６参照、図４には一つのみ図示）が設けられていると共に、各軸Ｊ１〜Ｊ６を回動させるためのアクチュエータたるモータＭ１〜Ｍ６（図６参照、図４には一つのみ図示）が設けられている。
【０００９】
このロボットには、図６に示すロボットコントローラ４が設けられている。このロボットコントローラ４はマイコンを含んで構成されていて、誤差検出手段及びティーチング角度補正手段並びにティーチングポイントデータ取得手段として機能するようになっている。このロボットコントローラ４には、前記角度センサとしてのエンコーダＥ１〜Ｅ６からの信号が与えられると共に、テンキーを備えたティーチングペンダント５からスイッチ信号が与えられるようになっている。そして、このロボットコントローラ４には不揮発性メモリ６が接続されており、これは、基準データ記憶手段及び異常時用記憶手段として機能するものである。
【００１０】
前記不揮発性メモリ６には、その所定記憶エリアに予め基準角度データが記憶されている。この基準角度データはロボットを基準姿勢とした上で各エンコーダＥ１〜Ｅ６からの信号を読み取って基準角度データを得ている。
【００１１】
すなわち、図２に示すように、まず、基準姿勢用の治具７ａ、７ｂの一方の治具７ａを先端アーム部３ａのフランジ３ｂに取り付け、他方の治具７ｂを所定部位に取り付け、そして、図５に示すように、ロボットを一方の治具７ａが他方の治具７ｂに対して平行に対向し且つ上方からみて合致する基準姿勢とする。この場合図示しないがダイヤルゲージなどを用いて基準姿勢に導くとよい。この状態で、ティーチングポイントデータＰｋを得ている。ティーチングポイントデータＰｋは不揮発性メモリ６の所定エリアに記憶させている。
【００１２】
このティーチングポイントデータＰｋは
（Ｘｋ，Ｙｋ，Ｚｋ，θｋｘ，θｋｙ，θｋｚ）で示されるものであり、フランジ３ｂのＸＹＺ座標（Ｘｋ，Ｙｋ，Ｚｋ）と姿勢（θｋｘ，θｋｙ，θｋｚ）を示している。
【００１３】
そして、この基準姿勢において、各軸Ｊ１〜Ｊ６での基準角度データＪｋ（１）〜Ｊｋ（６）も得ている。この基準角度データＪｋ（１）〜Ｊｋ（６）を不揮発性メモリ６の所定エリアに記憶させている。さらに、この不揮発性メモリ６には、各作業ポイント（１〜ｎ）でのティーチングポイントデータＰ１〜Ｐｎが記憶されている。このティーチングポイントデータＰ１〜Ｐｎは、フランジ３ｂの座標系データであり、
作業ポイント１でのティーチングポイントデータＰ１は
（Ｘ１，Ｙ１，Ｚ１，θ１ｘ，θ１ｙ，θ１ｚ）
作業ポイント２でのティーチングポイントデータＰ２は
（Ｘ２，Ｙ２，Ｚ２，θ２ｘ，θ２ｙ，θ２ｚ）
…
…
作業ポイントｎでのティーチングポイントデータＰｎは
（Ｘｎ，Ｙｎ，Ｚｎ，θｎｘ，θｎｙ，θｎｚ）
となる。
【００１４】
このうち、Ｘｎ，Ｙｎ，Ｚｎは座標データで、θｎｘ，θｎｙ，θｎｚは姿勢データである。なお、このティーチングポイントデータＰ１〜Ｐｎは、ロボットの実動作時には、ティーチング角度データに変換し、このティーチング角度データによりモータＭ１〜Ｍ６を駆動することになる。
【００１５】
さて、上記ロボットコントローラ４の誤差検出手段及びティーチング角度データ補正手段としての機能について説明する。この機能は、ロボットコントローラ４のマイコンのソフトウエアによって構成されている。そして、この機能は、ロボットが衝突後のティーチングペンダント５の入力スイッチの操作によって実行することができる。すなわち、ロボットが衝突すると、オペレータは、図２及び図５に示したように、フランジ３ｂに基準姿勢用の治具７ａを取り付け、他方の治具７ｂを所定部位に取り付け、ロボットを一方の治具７ａが他方の治具７ｂに対して平行に対向し且つ上からみて合致する基準姿勢となるように導く。
【００１６】
そして、ティーチングペンダント５の入力スイッチを操作する。すると、図１のフローチャートのステップＳ１に示すように、ロボットコントローラ４は、この状態で各軸Ｊ１〜Ｊ６の角度データをエンコーダＥ１〜Ｅ６から得、この角度データを補正用角度データＪｈ（１）〜Ｊｈ（６）として不揮発性メモリ６の所定エリアに記憶させる。そして、ステップＳ２に移行して、衝突前の基準角度データＪｋ（１）〜Ｊｋ（６）に対する補正用角度データＪｈ（１）〜Ｊｈ（６）の誤差つまり軸ずれ値ΔＪ（１）〜ΔＪ（６）を検出する。すなわち、
各軸Ｊ１〜Ｊ６の軸ずれ値ΔＪ（１）〜ΔＪ（６）は
ΔＪ（１）＝Ｊｈ（１）−Ｊｋ（１）
ΔＪ（２）＝Ｊｈ（２）−Ｊｋ（２）
ΔＪ（３）＝Ｊｈ（３）−Ｊｋ（３）
ΔＪ（４）＝Ｊｈ（４）−Ｊｋ（４）
ΔＪ（５）＝Ｊｈ（５）−Ｊｋ（５）
ΔＪ（６）＝Ｊｈ（６）−Ｊｋ（６）
となる。
【００１７】
次に、ステップＳ３に移行して、衝突前の各作業ポイントでのティーチングポイントデータＰ１〜Ｐｎを、夫々軸Ｊ１〜Ｊ６の角度データに変換する。例えばティーチングポイントデータＰ１の角度データは次のようになっている。
作業ポイント１でのティーチングポイントデータＰ１は
Ｐ１＝（Ｘ１，Ｙ１，Ｚ１，θ１ｘ，θ１ｙ，θ１ｚ）であり、
この作業ポイント１でのティーチング角度データは
軸Ｊ１でＪｐ１（１）
軸Ｊ２でＪｐ１（２）
軸Ｊ３でＪｐ１（３）
軸Ｊ４でＪｐ１（４）
軸Ｊ５でＪｐ１（５）
軸Ｊ６でＪｐ１（６）
である。
【００１８】
また、作業ポイントｎでのティーチングポイントデータは
Ｐｎ＝（Ｘｎ，Ｙｎ，Ｚｎ，θｎｘ，θｎｙ，θｎｚ）であり、
この作業ポイントｎでのティーチング角度データはＪｐ１
軸Ｊ１でＪｐｎ（１）
軸Ｊ２でＪｐｎ（２）
軸Ｊ３でＪｐｎ（３）
軸Ｊ４でＪｐｎ（４）
軸Ｊ５でＪｐｎ（５）
軸Ｊ６でＪｐｎ（６）
である。
【００１９】
そしてステップＳ４にて、各作業ポイントでの各軸のティーチング角度データを前記軸ずれ値ΔＪ（１）〜ΔＪ（６）に基づいて補正する。
すなわち、
［作業ポイント１での各軸ティーチング角度データ］
Ｊｐ１（１）′＝Ｊｐ１（１）＋ΔＪ（１）    …軸Ｊ１
Ｊｐ１（２）′＝Ｊｐ１（２）＋ΔＪ（２）    …軸Ｊ２
Ｊｐ１（３）′＝Ｊｐ１（３）＋ΔＪ（３）    …軸Ｊ３
Ｊｐ１（４）′＝Ｊｐ１（４）＋ΔＪ（４）    …軸Ｊ４
Ｊｐ１（５）′＝Ｊｐ１（５）＋ΔＪ（５）    …軸Ｊ５
Ｊｐ１（６）′＝Ｊｐ１（６）＋ΔＪ（６）    …軸Ｊ６
［作業ポイント２での各軸ティーチング角度データ］
Ｊｐ２（１）′＝Ｊｐ２（１）＋ΔＪ（１）    …軸Ｊ１
Ｊｐ２（２）′＝Ｊｐ２（２）＋ΔＪ（２）    …軸Ｊ２
Ｊｐ２（３）′＝Ｊｐ２（３）＋ΔＪ（３）    …軸Ｊ３
Ｊｐ２（４）′＝Ｊｐ２（４）＋ΔＪ（４）    …軸Ｊ４
Ｊｐ２（５）′＝Ｊｐ２（５）＋ΔＪ（５）    …軸Ｊ５
Ｊｐ２（６）′＝Ｊｐ２（６）＋ΔＪ（６）    …軸Ｊ６
…
…
［作業ポイントｎでの各軸ティーチング角度データ］
Ｊｐｎ（１）′＝Ｊｐｎ（１）＋ΔＪ（１）    …軸Ｊ１
Ｊｐｎ（２）′＝Ｊｐｎ（２）＋ΔＪ（２）    …軸Ｊ２
Ｊｐｎ（３）′＝Ｊｐｎ（３）＋ΔＪ（３）    …軸Ｊ３
Ｊｐｎ（４）′＝Ｊｐｎ（４）＋ΔＪ（４）    …軸Ｊ４
Ｊｐｎ（５）′＝Ｊｐｎ（５）＋ΔＪ（５）    …軸Ｊ５
Ｊｐｎ（６）′＝Ｊｐｎ（６）＋ΔＪ（６）    …軸Ｊ６
次のステップＳ５では、上記各作業ポイント１〜ｎでのティーチング角度データからティーチングポイントデータを得る。まず、作業ポイント１では、ティーチング角度データＪｐ１（１）′〜Ｊｐ１（６）′に基づいてティーチングポイントデータＰ１′を得る。
【００２０】
Ｐ１′＝（Ｘ１′，Ｙ１′，Ｚ１′，θ１ｘ′，θ１ｙ′，θ１ｚ′）
同様にして、作業ポイント２〜ｎのティーチングポイントデータＰ２′〜Ｐｎ′を得る。このときティーチングポイントデータＰｎ′は、
Ｐｎ′＝（Ｘｎ′，Ｙｎ′，Ｚｎ′，θｎｘ′，θｎｙ′，θｎｚ′）
となる。
【００２１】
このように本実施例によれば、ロボットが衝突などして関節に軸ずれが発生しても、その軸ずれに応じてティーチング角度データを正確に補正できる。従って、ロボットを正常に復帰させることができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施例にかかる、ロボットコントローラの制御内容を示すフローチャート
【図２】ロボット全体の斜視図
【図３】ロボットの関節構造を概略的に示す図
【図４】軸Ｊ５部分の概略側面図
【図５】基準姿勢用治具の斜視図
【図６】電気的構成のブロック図
【図７】従来例を示すロボット全体の斜視図
【図８】軸Ｊ５部分の概略側面図
【図９】軸ずれを説明するための概略側面図
【符号の説明】
【００２３】
図面中、１はロボット本体、３はアーム、３ａは先端アーム部、４はロボットコントローラ、７ａ、７ｂは基準姿勢用の治具、Ｊ１〜Ｊ６は軸、Ｅ１〜Ｅ６はエンコーダ、Ｍ１〜Ｍ６はモータ（アクチュエータ）を示す。
【図１】
2006321046.tif 000003
【図２】
2006321046.tif 000004
【図３】
2006321046.tif 000005
【図４】
2006321046.tif 000006
【図５】
2006321046.tif 000007
【図６】
2006321046.tif 000008
【図７】
2006321046.tif 000009
【図８】
2006321046.tif 000010
【図９】
2006321046.tif 000011