(57)【特許請求の範囲】
【請求項１】
モータにより駆動される被駆動体の外界との衝突を検知するモータ駆動構造を備えたシステムであって、
前記被駆動体に加わる外乱値を算出し、当該外乱値と比較して当該被駆動体が外界と衝突したものとする閾値を設定する閾値設定手段と、
前記閾値設定手段による閾値の設定に先だち、前記モータ駆動構造の使用者が、衝突の検知のための感度レベルを、当該モータ駆動構造の実際の動作における、当該閾値を設定するための仮の基準に対応する感度レベルに対して上下させることにより段階的に設定できるユーザインタフェースを提供する提供手段と、
前記提供手段により提供された前記ユーザインタフェースによってなされた使用者の段階的な感度レベルの設定を認識する認識手段と、
を備え、
前記閾値設定手段は、前記認識手段により認識される段階的な感度レベルの設定に応じた修正値に基づいて閾値を定め、前記外乱値と比較する閾値として設定することを特徴とするモータ駆動構造を備えたシステム。
【請求項２】
前記閾値設定手段は、予め定められたプログラムを稼働させ、前記被駆動体の駆動トルクと当該被駆動体の実トルクから得られる外乱値に、予め定められた誤差値を加味した値を基準閾値として設定し、
前記提供手段は、前記基準閾値を基準として感度レベルを段階的に設定できるユーザインタフェースを提供することを特徴とする請求項１記載のモータ駆動構造を備えたシステム。
【請求項３】
前記モータ駆動構造は複数の関節からなる被駆動体を有し、
前記閾値設定手段は、前記複数の関節の各々に対する閾値を設定し、
前記提供手段は、前記複数の関節の各々の閾値を一括して、段階的に設定できるユーザインタフェースを提供することを特徴とする請求項１または２に記載のモータ駆動構造を備えたシステム。
【請求項４】
前記モータ駆動構造は産業用ロボットであり、当該産業用ロボットは複数種類のエンドエフェクタを用いて作業を行うことが可能であり、
前記複数種類のエンドエフェクタの各々を用いた場合のエンドエフェクタ毎に定まる運動方程式の負荷パラメータを記憶する記憶手段を更に備え、
前記提供手段は、前記複数種類のエンドエフェクタの各々を識別する識別情報によってエンドエフェクタを選択させるユーザインタフェースを提供し、
前記閾値設定手段は、前記提供手段により提供された前記ユーザインタフェースによってなされたエンドエフェクタの選択に基づいて前記記憶手段から当該エンドエフェクタの負荷パラメータを読み出し、読み出した値を前記外乱値の算出に用いることを特徴とする請求項１乃至３何れか１項記載のモータ駆動構造を備えたシステム。
【請求項５】
前記産業用ロボットは溶接ロボットであり、当該溶接ロボットは前記複数種類のエンドエフェクタとして複数種類のトーチを用いて溶接作業を行うことが可能であることを特徴とする請求項４記載のモータ駆動構造を備えたシステム。
【請求項６】
モータにより駆動される被駆動体の外界との衝突を検知するモータ駆動構造のシステムに用いられるプログラムであって、
前記被駆動体に加わる外乱値（Ａ）を算出し、当該外乱値（Ａ）と比較して当該被駆動体が外界と衝突したものとする閾値（Ａｓ）を設定する閾値設定機能と、
前記閾値設定機能による閾値（Ａｓ）の設定に先だち、前記モータ駆動構造の使用者が、衝突の検知のための感度レベルを、当該モータ駆動構造の実際の動作における、当該閾値（Ａｓ）を設定するための仮の基準に対応する感度レベルに対して上下させることにより段階的に設定できるユーザインタフェースを提供する提供機能と、
前記提供機能により提供された前記ユーザインタフェースによってなされた使用者の段階的な感度レベルの設定を認識する認識機能と、
を前記モータ駆動構造のシステムに実現させ、
前記閾値設定機能は、前記認識機能により認識される段階的な感度レベルの設定に応じた修正値に基づいて閾値（Ａｓ）を定め、前記外乱値（Ａ）と比較する閾値として設定することを特徴とするプログラム。
【請求項７】
前記閾値設定機能は、前記モータ駆動構造が有する複数の関節の各々に対する閾値を設定し、
前記提供機能は、前記複数の関節の各々の閾値を一括して、段階的に設定できるユーザインタフェースを提供することを特徴とする請求項６記載のプログラム。
【請求項８】
モータにより駆動される被駆動体の外界との衝突を検知する機能を備えた溶接ロボットを用いた溶接物製造方法であって、
前記被駆動体に加わる外乱値を算出し、当該外乱値と比較して当該被駆動体が外界と衝突したものとする閾値の設定に先だち、当該溶接ロボットの使用者が、衝突の検知のための感度レベルを、当該溶接ロボットの実際の動作における、当該閾値を設定するための仮の基準に対応する感度レベルに対して上下させることにより段階的に設定できるユーザインタフェースを提供し、
提供された前記ユーザインタフェースによってなされた使用者の段階的な感度レベルの設定を認識し、
認識される段階的な感度レベルの設定に応じた修正値に基づいて閾値を定め、前記外乱値と比較する閾値として記憶し、
閾値が記憶された前記溶接ロボットを用いて溶接を行うことを特徴とする溶接物製造方法。
【請求項９】
予め定められたプログラムを稼働させ、前記被駆動体の駆動トルクと当該被駆動体の実トルクから得られる外乱値に、予め定められた誤差値を加味した値を基準閾値として設定する工程を更に備え、
前記基準閾値を基準として感度レベルを段階的に設定できるユーザインタフェースを提供することを特徴とする請求項８記載の溶接物製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ駆動構造を備えたシステム、モータ駆動構造のシステムに用いられるプログラム、および溶接物製造方法に関する。
【背景技術】
【０００２】
従来、溶接ロボットを含む産業ロボットのようなモータが被駆動体を駆動するモータ駆動構造体において、被駆動体と外界の衝突を検知する装置が提案されている。
例えば、特許文献１に記載されている装置は以下のように構成されている。コントローラは軌道計画を実現するための指令値としてトルクをマニピュレータに出力し、それに従ってマニピュレータのモータが駆動され、エンコーダにより検出された各軸の関節角度はコントローラにフィードバックされる。また、モータ制御装置は、外乱算出器、評価量算出器、及び比較器を備えている。外乱算出器はコントローラから入力されるトルク、エンコーダから入力される関節角度を使用して各軸の外乱を時々刻々と算出する。評価量算出器は外乱を使用して衝突検知のための評価量を算出し、この算出値は比較器により閾値と比較される。比較器の比較結果より、衝突評価量が閾値以上であれば、コントローラは衝突であると判定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１００１４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
外乱算出器で使用するロボットのモデルと実機との間には、ロボットの機械的な誤差や温度変化などの環境による誤差、あるいは使用者が設定するロボットやワークの設定誤差などが存在する。そのため、常に正確な外乱が推定されるわけではなく、ある程度の誤差を含んだものとなり、衝突が発生していない場合でも、外乱は完全な零とはならない。
【０００５】
それゆえ、被駆動体と外界の衝突を検知するのに用いる閾値を小さくするほどより早く衝突の発生を検知することができるが、閾値を小さくし過ぎると、実際に衝突が発生していない場合でも衝突が発生しているとの誤った判断がされてしまうおそれがある。したがって、迅速かつ信頼性の高い衝突検知を行わせるためには、閾値の決定が重要となる。そして、閾値を設定する際の使用者の負担は小さいほうが望ましい。
本発明は、閾値を設定する際の使用者の負担を軽減することを目的とする。
【課題を解決するための手段】
【０００６】
かかる目的のもと、本発明は、モータにより駆動される被駆動体の外界との衝突を検知するモータ駆動構造を備えたシステムであって、被駆動体に加わる外乱値を算出し、外乱値と比較して被駆動体が外界と衝突したものとする閾値を設定する閾値設定手段と、閾値設定手段による閾値の設定に先だち、モータ駆動構造の使用者が、衝突の検知のための感度レベルを、モータ駆動構造の実際の動作における、閾値を設定するための仮の基準に対応する感度レベルに対して上下させることにより段階的に設定できるユーザインタフェースを提供する提供手段と、提供手段により提供されたユーザインタフェースによってなされた使用者の段階的な感度レベルの設定を認識する認識手段と、を備え、閾値設定手段は、認識手段により認識される段階的な感度レベルの設定に応じた修正値に基づいて閾値を定め、外乱値と比較する閾値として設定することを特徴とするモータ駆動構造を備えたシステムである。
【０００７】
ここで、閾値設定手段は、予め定められたプログラムを稼働させ、被駆動体の駆動トルクと被駆動体の実トルクから得られる外乱値に、予め定められた誤差値を加味した値を基準閾値として設定し、提供手段は、基準閾値を基準として感度レベルを段階的に設定できるユーザインタフェースを提供することを特徴とすることができる。かかる構成によれば、予め定めたプログラムの稼働により得られた外乱値の誤差を勘案して、より適切な基準閾値に基づく設定が可能となる。
また、モータ駆動構造は複数の関節からなる被駆動体を有し、閾値設定手段は、複数の関節の各々に対する閾値を設定し、提供手段は、複数の関節の各々の閾値を一括して、段階的に設定できるユーザインタフェースを提供することができる。かかる構成によれば、複数の関節の各々に対する段階的な設定を可能とし、または複数の関節を含む場合に一般に複雑化する設定をより簡易に行うことができる。
【０００８】
さらに、モータ駆動構造は産業用ロボットであり、産業用ロボットは複数種類のエンドエフェクタを用いて作業を行うことが可能であり、複数種類のエンドエフェクタの各々を用いた場合のエンドエフェクタ毎に定まる運動方程式の負荷パラメータを記憶する記憶手段を更に備え、提供手段は、複数種類のエンドエフェクタの各々を識別する識別情報によってエンドエフェクタを選択させるユーザインタフェースを提供し、閾値設定手段は、提供手段により提供されたユーザインタフェースによってなされたエンドエフェクタの選択に基づいて記憶手段からエンドエフェクタの負荷パラメータを読み出し、読み出した値を外乱値の算出に用いることを特徴とすることができる。かかる構成によれば、複数種類のエンドエフェクタを用いた場合であっても、そのエンドエフェクタ毎に、より好ましい運動方程式を簡易に設定することが可能となり、閾値の設定をより良好に行うことが可能となる。
そして、産業用ロボットは溶接ロボットであり、溶接ロボットは複数種類のエンドエフェクタとして複数種類のトーチを用いて溶接作業を行うことが可能であることを特徴とすることができる。かかる構成によれば、例えば飛散物の影響によりカメラ等の映像によって障害物を検知することの難しいような溶接作業においても、外界との衝突を、より良好に検知することが可能となる。
【０００９】
また、他の観点から捉えると、本発明は、モータにより駆動される被駆動体の外界との衝突を検知するモータ駆動構造のシステムに用いられるプログラムであって、被駆動体に加わる外乱値（Ａ）を算出し、外乱値（Ａ）と比較して被駆動体が外界と衝突したものとする閾値（Ａｓ）を設定する閾値設定機能と、閾値設定機能による閾値（Ａｓ）の設定に先だち、モータ駆動構造の使用者が、衝突の検知のための感度レベルを、モータ駆動構造の実際の動作における、閾値（Ａｓ）を設定するための仮の基準に対応する感度レベルに対して上下させることにより段階的に設定できるユーザインタフェースを提供する提供機能と、提供機能により提供されたユーザインタフェースによってなされた使用者の段階的な感度レベルの設定を認識する認識機能と、をモータ駆動構造のシステムに実現させ、閾値設定機能は、認識機能により認識される段階的な感度レベルの設定に応じた修正値に基づいて閾値（Ａｓ）を定め、外乱値（Ａ）と比較する閾値として設定することを特徴とするプログラムである。
【００１０】
ここで、閾値設定機能は、モータ駆動構造が有する複数の関節の各々に対する閾値を設定し、提供機能は、複数の関節の各々の閾値を一括して、段階的に設定できるユーザインタフェースを提供することを特徴とすることができる。
【００１１】
さらにまた、他の観点から捉えると、本発明は、モータにより駆動される被駆動体の外界との衝突を検知する機能を備えた溶接ロボットを用いた溶接物製造方法であって、被駆動体に加わる外乱値を算出し、外乱値と比較して被駆動体が外界と衝突したものとする閾値の設定に先だち、溶接ロボットの使用者が、衝突の検知のための感度レベルを、溶接ロボットの実際の動作における、閾値を設定するための仮の基準に対応する感度レベルに対して上下させることにより段階的に設定できるユーザインタフェースを提供し、提供されたユーザインタフェースによってなされた使用者の段階的な感度レベルの設定を認識し、認識される段階的な感度レベルの設定に応じた修正値に基づいて閾値を定め、外乱値と比較する閾値として記憶し、閾値が記憶された溶接ロボットを用いて溶接を行うことを特徴とする溶接物製造方法である。
【００１２】
ここで、予め定められたプログラムを稼働させ、被駆動体の駆動トルクと被駆動体の実トルクから得られる外乱値に、予め定められた誤差値を加味した値を基準閾値として設定する工程を更に備え、基準閾値を基準として感度レベルを段階的に設定できるユーザインタフェースを提供することを特徴とすることができる。
【発明の効果】
【００１３】
本発明によれば、閾値を設定する際の使用者の負担を軽減することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態に係る溶接ロボットシステムの概略構成図である。
【図２】ロボットコントローラの構成を示すブロック図である。
【図３】識別情報入力画面を例示する図である。
【図４】衝突が発生していない場合の外乱トルクの時間変化を例示する図である。
【図５】使用者に感度の設定を促す画面である感度設定画面を例示する図である。
【図６】感度と修正値との相関関係を例示する図である。
【図７】閾値設定部が行う衝突検知閾値設定処理の手順を示すフローチャートである。
【図８】外乱トルクの時間変化と衝突検知閾値（外乱トルク基準値）との関係を示す図である。
【図９】ある動作プログラムを実行した場合の、溶接ロボットに装着された溶接トーチの先端の移動形態を模式的に示す図である。
【図１０】図９に示す動作形態における、衝突が発生していない場合の外乱トルクの時間変化を示す図である。
【図１１】図９を用いて示した動作形態における衝突発生前後の外乱トルクの時間変化を示す図である。
【図１２−１】第２の実施形態に係る閾値設定部が行う衝突検知閾値設定処理の手順を示すフローチャートである。
【図１２−２】第２の実施形態に係る閾値設定部が行う衝突検知閾値設定処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態に係る溶接ロボットシステム１の概略構成図である。
本実施の形態に係る溶接ロボットシステム１は、アーク溶接を行う溶接ロボット１０と、溶接ロボット１０に取り付けられた溶接ワイヤに高電圧を印加し、アークを発生させる溶接電源２０と、これら溶接ロボット１０および溶接電源２０を制御するロボットコントローラ３０と、教示データを入力する教示装置４０と、を備えている。
【００１６】
溶接ロボット１０は、６関節（軸）構成の垂直多関節ロボットであるアーク溶接ロボットである。つまり、溶接ロボット１０は、モータにより駆動される被駆動体の一例としての関節を複数（本実施の形態では６個）有するモータ駆動構造の一例としての産業用ロボットである。溶接ロボット１０は、ロボットコントローラ３０から後述する必要駆動トルクτ´が印加されると、内蔵するサーボモータが駆動し、所望の姿勢をとることができる。本実施の形態に係る溶接ロボット１０のアーム先端には、溶接を行うための溶接電流やシールドガスなどの供給を行うエンドエフェクタやツールの一例としての溶接トーチ１１が装着されている。また、溶接ロボット１０には、溶接ワイヤを溶接トーチ１１の方へ送り供給する送給装置１２が装着されている。
【００１７】
ロボットコントローラ３０は、溶接の制御を行う際の演算処理等を行うＣＰＵ（Central Processing Unit）３０ａと、各種データやＣＰＵ３０ａにて実行されるプログラム等が記憶されたＲＯＭ（Read Only Memory）３０ｂと、ＣＰＵ３０ａの作業用メモリ等として用いられるＲＡＭ（Random Access Memory）３０ｃと、内容を書き換え可能なＥＥＰＲＯＭ(Electrically Erasable & Programmable Read Only Memory)３０ｄと、ＨＤＤ（Hard Disk Drive）３０ｅと、を備えている。
【００１８】
ＲＯＭ３０ｂに記憶されたプログラムの中には、例えば、溶接ロボット１０に取り付けられた溶接トーチ１１の移動する目標位置、指定速度が記述された教示プログラムなどが含まれる。なお、プログラムをＥＥＰＲＯＭ３０ｄあるいはＨＤＤ３０ｅに記憶してもよい。また、教示プログラムは、教示装置４０からの入力操作またはパーソナルコンピュータ等の不図示の接続機器からの入力操作によって作成・編集可能である。
ロボットコントローラ３０については、後で詳述する。
【００１９】
教示装置４０は、溶接ロボット１０の教示作業の際に、溶接経路や溶接作業条件等を入力するために使用される装置である。教示装置４０は、液晶などにより構成された表示画面４１と、入力ボタン４２とを備えている。あるいは、教示装置４０は、例えば、低圧の電界を形成したパネルの表面電荷の変化を検知することで指が触れた位置を電気的に検出する静電容量方式や、互いに離間する電極の指が触れた位置が非通電状態から通電状態に変化することによりその位置を電気的に検出する抵抗膜方式等の周知のタッチパネルであってもよい。
【００２０】
次に、ロボットコントローラ３０について詳述する。
図２は、ロボットコントローラ３０の構成を示すブロック図である。
ロボットコントローラ３０は、溶接ロボット１０、溶接トーチ１１および送給装置１２の種類毎のパラメータを記憶するパラメータ記憶部３１と、溶接ロボット１０のモデル（動特性）を導き出すモデル導出部３２と、モデル導出部３２が導き出したモデルを記憶するモデル記憶部３３と、を備えている。また、ロボットコントローラ３０は、溶接ロボット１０の軌道を算出する軌道計算部３４と、溶接ロボット１０に対して必要駆動トルクτ´を印加するコントローラ３５と、を備えている。
【００２１】
なお、本実施の形態において、ロボットコントローラ３０における各部の機能は、ＣＰＵ３０ａがプログラムをＲＯＭ３０ｂからＲＡＭ３０ｃに読み込んで実行することにより実現される。また、本実施の形態のロボットコントローラ３０における機能を実現するプログラムは、通信手段により提供することはもちろん、ＤＶＤ−ＲＯＭやフラッシュメモリなどの記録媒体に格納して提供するようにしてもよい。
【００２２】
パラメータ記憶部３１は、溶接ロボット１０、溶接トーチ１１および送給装置１２の種類毎のパラメータを記憶する。例えば、溶接トーチ１１のパラメータとしては、質量、重心位置、重心周りの慣性などが含まれる。パラメータ記憶部３１は、溶接ロボット１０、溶接トーチ１１あるいは送給装置１２の商品番号、商品名などの識別情報と、パラメータとを対応付けて記憶している。なお、パラメータ記憶部３１は、ＲＯＭ３０ｂにより構成されることを例示することができる。
【００２３】
モデル導出部３２は、先ず、教示装置４０の表示画面４１に、溶接トーチ１１あるいは送給装置１２の識別情報の入力を使用者に促す画面である識別情報入力画面を表示させ、この識別情報入力画面を介して入力された識別情報を取得する。
図３は、識別情報入力画面を例示する図である。図３（ａ）は、教示装置４０の表示画面４１に表示された識別情報入力画面を例示する図である。図３（ｂ）は、教示装置４０がタッチパネルである場合に、このタッチパネルに表示された識別情報入力画面を例示する図である。図３では、溶接トーチ１１の識別情報の入力画面を例示している。
モデル導出部３２は、識別情報入力画面を介して入力された識別情報を基に、パラメータ記憶部３１からその識別情報に対応するパラメータを読み取り、ロボットコントローラ３０にて制御すべき溶接ロボット１０のモデル（動特性）を導き出す。そして、モデル導出部３２は、導き出した溶接ロボット１０のモデルを、モデル記憶部３３に記憶する。モデル記憶部３３は、ＥＥＰＲＯＭ３０ｄあるいはＨＤＤ３０ｅにより構成される。
【００２４】
軌道計算部３４は、モデル記憶部３３に記憶された溶接ロボット１０のモデル（動特性）を読み込み、読み込んだモデルに基づいて溶接ロボット１０が所望の動作を行うような各関節（軸）の角度を算出する。
コントローラ３５は、モデル記憶部３３に記憶された溶接ロボット１０のモデルを読み込み、読み込んだモデルに対して、所望の動作を行わすための各関節（軸）の必要駆動トルクτ´を算出し、この必要駆動トルクτ´を溶接ロボット１０に印加する。これにより、溶接ロボット１０は、コントローラ３５からの必要駆動トルクτ´に基づいて移動する。そして、溶接ロボット１０のモータのエンコーダにより検出された各関節の角度θがロボットコントローラ３０にフィードバックされる。
【００２５】
また、ロボットコントローラ３０は、溶接ロボット１０が障害物と衝突したことを検知する機能を有している。つまり、ロボットコントローラ３０は、溶接ロボット１０に生じた外乱トルクｄを算出する外乱算出部３６と、外乱トルクｄを、衝突検知の判定に使用する衝突評価量Ａに変換する評価量算出部３７と、衝突検知の判定に使用する衝突検知閾値Ａｓを設定する閾値設定部３８と、衝突評価量Ａと衝突検知閾値Ａｓとを比較する比較部３９と、を備えている。
【００２６】
外乱算出部３６は、コントローラ３５から入力される必要駆動トルクτ´、溶接ロボット１０のエンコーダから入力される関節角度θなどに基づいて各関節の外乱トルクｄを定期的に算出する。外乱算出部３６にて算出された外乱トルクｄは評価量算出部３７に出力される。外乱トルクｄを算出する手法は以下の通りである。
【００２７】
ロボットの運動方程式モデルは一般に以下の式で表される。
【００２８】
【数１】
0005912683.tif 000002
【００２９】
ここで、Θは溶接ロボット１０の関節角度ベクトル（モータ回転角度ベクトルと１対１に比例）、Ｊ(Θ)はロボットの慣性行列、Ｃ(ｄΘ／ｄｔ,Θ)は重力、遠心コリオリ力、摩擦などを含むベクトル、Τはトルクベクトル、Ｄは外乱トルクベクトルである。
【００３０】
式（１）から外乱トルクベクトルＤは以下の式（２）で算出することができる。
【００３１】
【数２】
0005912683.tif 000003
【００３２】
モータ制御の分野では、一般的に、関節（軸）毎に外乱が導出されることが多いので、溶接ロボット１０のある関節（軸）に注目して式（１），（２）式を書き換えると、以下の式（３）、（４）が得られる。
【００３３】
【数３】
0005912683.tif 000004
【００３４】
【数４】
0005912683.tif 000005
【００３５】
ここで、θとτとｄは、それぞれ、ある関節（軸）の関節角度とトルクと外乱トルク、ｊ(Θ)はある関節（軸）の慣性、ｃ(ｄ２Θother/ｄｔ２,ｄΘ/ｄｔ,Θ)はある関節（軸）に対応するベクトルＣの要素と他の関節（軸）から受ける慣性力（ただしΘotherはθを除いた他の関節（軸）の関節角度を要素とするベクトル）である。
【００３６】
また、モータを駆動させるために必要な必要駆動トルクτ´は、式（１）あるいは式（３）の運動方程式モデルから推定可能で、式（１）左辺あるいは式（３）左辺の和として計算できる。すなわち、必要駆動トルクベクトルΤ´と、ある関節（軸）に関する必要駆動トルクτ´はそれぞれ以下の式（５）、（６）で計算できる。
【００３７】
【数５】
0005912683.tif 000006
【００３８】
【数６】
0005912683.tif 000007
【００３９】
式（２）および式（５）、式（４）および式（６）から明らかなように、一般的に、外乱トルクｄは必要駆動トルクτ´と実トルクτの差として記述され、以下の式（７）、（８）で与えられる。
【００４０】
【数７】
0005912683.tif 000008
【００４１】
【数８】
0005912683.tif 000009
【００４２】
以上より、外乱算出部３６は、コントローラ３５から入力される必要駆動トルクτ´と、溶接ロボット１０のエンコーダから入力される関節角度θと、モデル記憶部３３から読み込んだ溶接ロボット１０のモデルに基づいて予め導き出されたｊ(Θ)と、予め導き出されたｃ(ｄ２Θother/ｄｔ２,ｄΘ/ｄｔ,Θ)とにより、式（８）から各関節（軸）の外乱トルクｄを算出する。
【００４３】
評価量算出部３７は、外乱算出部３６が算出した外乱トルクｄを、衝突検知の判定に使用する衝突評価量Ａに変換し、変換した衝突評価量Ａを比較部３９に出力する。衝突評価量Ａは、例えば外乱トルクｄ自体、または外乱トルクｄの絶対値｜ｄｉ｜であることを例示することができる。
【００４４】
閾値設定部３８は、衝突検知の判定に使用する衝突検知閾値Ａｓを設定する。設定する手法については後で詳述する。
比較部３９は、評価量算出部３７が変換した衝突評価量Ａと、閾値設定部３８が設定した衝突検知閾値Ａｓとに基づいて、溶接ロボット１０が衝突しているか否かを判別する。具体的には、比較部３９は、衝突評価量Ａが衝突検知閾値Ａｓより大きければ溶接ロボット１０が衝突していると判定し、衝突評価量Ａが衝突検知閾値Ａｓ以下であれば衝突していないと判定する。
そして、比較部３９は、溶接ロボット１０が衝突していると判定した場合にはコントローラ３５にその旨出力する。コントローラ３５は、溶接ロボット１０が衝突している旨の通知を受けた場合には、溶接ロボット１０の動作を停止するべく、必要駆動トルクτ´を零とするなどの処理を行う。
【００４５】
以上のように構成された衝突検知機能においては、外乱算出部３６が算出した外乱トルクｄを変換した衝突評価量Ａが予め定められた衝突検知閾値Ａｓより大きければ溶接ロボット１０が障害物と衝突していると判定する。
【００４６】
ここで、例えば、各関節（軸）にカメラを取り付け、カメラの映像に基づいて衝突回避を行う構成も考えられる。ただし、本実施の形態のように溶接作業を行う溶接ロボット１０においては、実際の作業の際にヒュームやスパッタなどの飛散物がそのカメラに付着する可能性が特に高い。この場合、飛散物によってカメラが影響を受けることで衝突を誤検知するおそれがある。これに対して、本実施の形態の溶接ロボットシステム１では、必要駆動トルクτ´と実トルクτから得られる外乱トルクｄを衝突検知閾値Ａｓと比較して衝突検知を行う構成を採用することで、例えばカメラ等を必要としない衝突検知を行っている。
【００４７】
ところで、上述した衝突検知閾値Ａｓが小さいほどより早く衝突の発生を検知することが可能となるが、小さくし過ぎると、実際に衝突が発生していない場合でも衝突が発生しているとの誤った判断をしてしまう。
図４は、衝突が発生していない場合の外乱トルクｄの時間変化を例示する図である。
コントローラ３５などで使用する溶接ロボット１０のモデル（動特性）と実機との間には、溶接ロボット１０の機械的な差、溶接ロボット１０が据え付けられた場所での温度変化などの環境の差、溶接トーチ１１用のケーブルの這わせ方などにより、ある程度の誤差が生じる。その結果、外乱トルクｄは、衝突が発生していない場合でも、零とはならずに図４に示すように零と乖離して変化する。
【００４８】
そのため、衝突検知閾値Ａｓを極度に引き下げると、実際に衝突が発生する前でも外乱トルクｄに応じた衝突評価量Ａが衝突検知閾値Ａｓを超える状態が起き、誤検知してしまう。一方、衝突検知閾値Ａｓの値が大き過ぎると、実際に衝突が発生しても外乱トルクｄに応じた衝突評価量Ａが衝突検知閾値Ａｓを超えない状態となってしまい、衝突が検知されなくなってしまう。したがって、迅速かつ信頼性の高い衝突検知を実現するためには、適正な衝突検知閾値Ａｓを設定することが必要となる。また、衝突検知閾値Ａｓを設定するにあたって、使用者が関知する事項は少ない方がよい。使用者の負担を軽減することができるとともに、使用者の設定ミスによる誤検出などを抑制することができるためである。
【００４９】
＜第１の実施形態＞
かかる事項に鑑み、第１の実施形態に係る閾値設定部３８は、以下に述べる手法にて衝突検知閾値Ａｓを設定する。なお、閾値設定部３８は、溶接ロボット１０の各関節（軸）分の衝突検知閾値Ａｓを設定するが、その手法は同じである。以下では、ある関節の衝突検知閾値Ａｓを設定する手法について説明する。
【００５０】
閾値設定部３８は、先ず、ある動作プログラムに基づいて溶接ロボット１０を動かしたときの外乱トルクｄの最大値である最大外乱トルクｄｍａｘを算出する。そして、算出した最大外乱トルクｄｍａｘに基づいて、衝突検知閾値Ａｓを設定するのに基準となる外乱トルク基準値ｄｓの仮の値である外乱トルク仮基準値ｄｔを設定する。例えば、外乱トルク仮基準値ｄｔとして、算出した最大外乱トルクｄｍａｘに予め定められた値の係数αを加算することにより得られた値を設定する。
ここで、係数αは、溶接ロボット１０の軌道、溶接ロボット１０の種類、溶接トーチ１１の種類などに応じて経験則に基づいて設定される値である。
【００５１】
閾値設定部３８は、外乱トルク仮基準値ｄｔを設定した後、設定した外乱トルク仮基準値ｄｔと、衝突検知閾値Ａｓを設定する使用者が設定した感度Ｋに応じた修正値βに基づいて、外乱トルク基準値ｄｓを算出する。外乱トルク基準値ｄｓは、例えば外乱トルク仮基準値ｄｔに修正値βを加算することにより得られる値であることを例示することができる。修正値βについては後で詳述する。そして、この外乱トルク基準値ｄｓに基づいて衝突検知閾値Ａｓを算出する。衝突検知閾値Ａｓは、例えば外乱トルク基準値ｄｓ自体、または外乱トルク基準値ｄｓの絶対値｜ｄｓ｜であることを例示することができる。
【００５２】
図５は、使用者に感度Ｋの設定を促す画面である感度設定画面を例示する図である。図５（ａ）は、教示装置４０の表示画面４１に表示された感度設定画面を例示する図である。図５（ｂ）は、教示装置４０がタッチパネルである場合に、このタッチパネルに表示された感度設定画面を例示する図である。
上述したように、修正値βは、外乱トルク仮基準値ｄｔに加算される値であり、衝突検知閾値Ａｓの基準となる外乱トルク基準値ｄｓを増減する値である。図５（ａ）に示すように、教示装置４０の表示画面４１に表示された画面には、使用者に対して、修正値βと相関関係のある感度Ｋの入力を促す文字が表示されている。使用者は、図５（ａ）に示した感度設定画面に、入力ボタン４２を介して感度Ｋの値を入力することで感度Ｋを設定する。あるいは、図５（ｂ）に示すように、教示装置４０のタッチパネルに表示された画面には、使用者に対して、感度Ｋの設定を促す文字が表示されている。使用者は、図５（ｂ）に示した感度設定画面の「↑」、「↓」で、感度Ｋの値を上下することで感度Ｋを設定する。
【００５３】
図６は、感度Ｋと修正値βとの相関関係を例示する図である。
図６に例示した相関関係では、感度Ｋが零のとき修正値βは零であり、感度Ｋが−１のとき修正値βは所定値γ（γは正の値）の１倍（β＝１×γ）、感度Ｋが−２のとき修正値βは所定値γの２倍（β＝２×γ）、というように感度Ｋが１減る（マイナスされる）毎に修正値βが所定値γ増加する。また、感度Ｋが＋１のとき修正値βは所定値γの−１倍（β＝−１×γ）、感度Ｋが＋２のとき修正値βは所定値γの−２倍（β＝−２×γ）、というように感度Ｋが１増える（プラスされる）毎に修正値βが所定値γ減少する。
【００５４】
図５に例示した感度設定画面上で使用者が感度Ｋの値を設定すると、図６に示すように予め定められた相関関係に基づいて、修正値βを設定する。
これにより、ある動作プログラムに基づいて溶接ロボット１０を動かしたときの最大外乱トルクｄｍａｘに、経験則に基づいて予め設定された係数αを加算することにより得られた値が外乱トルク仮基準値ｄｔとして設定される。そして、この外乱トルク仮基準値ｄｔに、使用者が設定した感度Ｋに基づいて定めた修正値βを加算することにより得られる値が外乱トルク基準値ｄｓとして設定される。
【００５５】
例えば、使用者が感度Ｋの値として＋２を入力した場合、修正値βが−２γに設定され、外乱トルク基準値ｄｓが外乱トルク仮基準値ｄｔに対して所定値γの−２倍の値が加算された値に設定される。その結果、感度Ｋが零に設定される場合（外乱トルク基準値ｄｓ＝外乱トルク仮基準値ｄｔ）よりも、衝突検知閾値Ａｓが小さくなるので、外乱トルクｄが小さくても衝突として検知され易くなる。
【００５６】
他方、例えば、使用者が感度Ｋの値として−２を入力した場合、修正値βが２γに設定され、外乱トルク基準値ｄｓが外乱トルク仮基準値ｄｔに対して所定値γの２倍の値が加算された値に設定される。これにより、感度Ｋが零に設定される場合（外乱トルク基準値ｄｓ＝外乱トルク仮基準値ｄｔ）よりも、衝突検知閾値Ａｓが大きくなるので、外乱トルクｄが大きくても衝突として検知され難くなる。
【００５７】
このように第１の実施形態に係る閾値設定部３８によれば、使用者は、溶接ロボット１０の軌道などに応じて、感度Ｋを設定でき、例えば感度Ｋをプラスにして迅速性に優れた衝突検知とすること、あるいは、感度Ｋをマイナスにして信頼性に優れた衝突検知とすることを選択することが可能となる。また、使用者は、感度Ｋを設定するだけであるため、第１の実施形態に係る閾値設定部３８によれば、使用者の衝突検知閾値Ａｓを設定する負担を軽減させることができるとともに、使用者の設定ミスによる誤検出などを抑制することができる。
【００５８】
なお、溶接ロボット１０は、据え付けられた場所の環境や溶接トーチ１１用のケーブルの這わせ方などにより異なった特徴を示す。そのため、閾値設定部３８は、使用者に溶接ロボットシステム１を納入し、据え付けた状態(実際にシステムを使用する状態)で、衝突検知閾値Ａｓを設定するとよい。
【００５９】
次に、フローチャートを用いて、閾値設定部３８が行う衝突検知閾値設定処理の手順について説明する。
図７は、閾値設定部３８が行う衝突検知閾値設定処理の手順を示すフローチャートである。
閾値設定部３８は、溶接ロボット１０を実際の動作プログラムに従い動作を開始させた後に衝突検知閾値設定処理を実行する。あるいは、閾値設定部３８は、衝突検知閾値設定処理の一環として、溶接ロボット１０を実際の動作プログラムに従い動作させてもよい。以下では、閾値設定部３８が、溶接ロボット１０を実際の動作プログラムに従い動作を開始させた旨の情報（信号）を取得後に衝突検知閾値設定処理を実行する態様について説明する。
【００６０】
先ず、外乱トルクｄの最大値である最大外乱トルクｄｍａｘを初期化する（ステップ（以下、単に、「Ｓ」と記す。）７０１）。その後、外乱算出部３６にて算出した最新の外乱トルクｄを取得し（Ｓ７０２）、取得した外乱トルクｄがこの時点での最大外乱トルクｄｍａｘよりも大きいか否かを判別する（Ｓ７０３）。
【００６１】
そして、取得した外乱トルクｄが最大外乱トルクｄｍａｘよりも大きい場合（Ｓ７０３でＹＥＳ）、この外乱トルクｄを新たな最大外乱トルクｄｍａｘと置き換え（Ｓ７０４）、動作が終了しているか否かを判別する（Ｓ７０５）。他方、取得した外乱トルクｄが最大外乱トルクｄｍａｘ以下の場合（Ｓ７０３でＮＯ）、この外乱トルクｄを最大外乱トルクｄｍａｘとして置き換えることなしに、動作が終了しているか否かを判別する（Ｓ７０５）。
【００６２】
そして、動作が終了している場合（Ｓ７０５でＹＥＳ）、最大外乱トルクｄｍａｘに予め定められた値の係数αを加算することにより外乱トルク仮基準値ｄｔを算出する（Ｓ７０６）。他方、動作が終了していない場合（Ｓ７０５でＮＯ）、Ｓ７０２以降の処理を行う。
外乱トルク仮基準値ｄｔを算出した後、感度Ｋを変更するか否かを判別する（Ｓ７０７）。これは、例えば、教示装置４０の入力ボタン４２の中に予め設けられた感度Ｋを設定するためのボタン（以下、「感度設定ボタン」と称する場合がある。）が押されたか否かを判別する処理である。感度設定ボタンが押されたとの情報を取得した場合は肯定判定され、所定期間内に、あるいは所定のタイミングで感度設定ボタンが押されたとの情報を取得しない場合は否定判定される。そして、感度Ｋを変更する場合（Ｓ７０７でＹＥＳ）、使用者に感度Ｋの入力を促す図５に示した感度設定画面を教示装置４０の表示画面４１に表示させる（Ｓ７０８）。そして、教示装置４０の表示画面４１を介して感度Ｋが入力されたか否かを判別する（Ｓ７０９）。これは、教示装置４０の表示画面４１に感度Ｋが入力されたとの情報を取得したか否かを判別する処理である。
【００６３】
そして、感度Ｋが入力された場合（Ｓ７０９でＹＥＳ）、その感度Ｋに応じた修正値βを算出し、算出した修正値βに基づいて、外乱トルク基準値ｄｓを算出する（Ｓ７１０）。他方、感度Ｋが入力されていない場合（Ｓ７０９でＮＯ）、感度Ｋを取得するまで待機する。外乱トルク基準値ｄｓを算出した後、算出した外乱トルク基準値ｄｓを衝突検知閾値Ａｓに変換し、記憶する（Ｓ７１１）。
【００６４】
一方、感度Ｋを変更しない場合（Ｓ７０７でＮＯ）、感度Ｋを零として外乱トルク基準値ｄｓを算出し（Ｓ７１０）、算出した外乱トルク基準値ｄｓを衝突検知閾値Ａｓに変換し、記憶する（Ｓ７１１）。
閾値設定部３８がこの衝突検知閾値設定処理を行うことで、衝突検知閾値Ａｓが設定される。
【００６５】
図８は、外乱トルクｄの時間変化と衝突検知閾値Ａｓ（外乱トルク基準値ｄｓ）との関係を示す図である。なお、図８では、衝突が発生していない場合の外乱トルクｄの時間変化を例示している。
使用者は、教示装置４０の表示画面４１に表示された感度設定画面で感度Ｋを決定することで、溶接ロボット１０の動作プログラムに応じて衝突検知閾値Ａｓを調整することが可能となる。使用者が、例えば感度Ｋをプラスにすると、図８に示すように、外乱トルクｄの時間変化と近い値に衝突検知閾値Ａｓ（外乱トルク基準値ｄｓ）が設定される。他方、感度Ｋをマイナスにすると、図８に示すように、外乱トルクｄの時間変化と遠い値に衝突検知閾値Ａｓ（外乱トルク基準値ｄｓ）が設定される。
【００６６】
すなわち、使用者は、例えば感度Ｋをプラスにして、感度Ｋを零とする場合よりも迅速性に優れた衝突検知とすること、あるいは、感度Ｋをマイナスにして、感度Ｋを零とする場合よりも信頼性に優れた衝突検知とすることを選択することが可能となる。
この衝突検知閾値設定処理によれば、衝突検知閾値Ａｓを設定するにあたって、使用者は感度Ｋを設定するだけであるため、使用者の負担は小さい。つまり、例えば、ある動作プログラムにおける最大外乱トルクｄｍａｘに基づいて、使用者が外乱トルク仮基準値ｄｔを入力しなければならない態様と比べると使用者の負担は小さくなる。また、使用者の入力が少ないため、使用者の入力ミスを減らすことができる。その結果、信頼性の高い衝突検知を実現することができる。
【００６７】
また、本実施の形態に係るロボットコントローラ３０においては、溶接トーチ１１などの種類毎のパラメータを記憶するパラメータ記憶部３１と、溶接ロボット１０のモデルを導き出すモデル導出部３２と、モデル導出部３２が導き出したモデルを記憶するモデル記憶部３３と、を備えている。そして、ロボットコントローラ３０においては、コントローラ３５が、このモデル記憶部３３から読み込んだ溶接ロボット１０のモデルに基づいて必要駆動トルクτ´を算出し、外乱算出部３６が、外乱トルクｄを算出する。そのため、このロボットコントローラ３０によれば、使用者が、溶接ロボット１０、溶接トーチ１１および送給装置１２などの、溶接ロボット１０のモデル構築に必要な負荷パラメータを設定しなければならない構成と比べると使用者の負担は小さくなる。また、使用者自身で行う設定が少ないため、使用者の設定ミスを減らすことができる。その結果、信頼性の高い衝突検知を実現することができる。
【００６８】
なお、上述した衝突検知閾値設定処理は、ある関節の衝突検知閾値Ａｓを設定する場合にも、全ての関節の衝突検知閾値Ａｓを設定する場合にも用いることができる。
全ての関節の衝突検知閾値Ａｓを設定する場合には、図７のフローチャートを用いて説明した衝突検知閾値設定処理において、閾値設定部３８は、Ｓ７０１にて、最大外乱トルクｄｍａｘ（ｎ）を初期化する（ｎは自然数であり、全関節中のｎ番目の関節を示す。６個の関節を有する場合には、ｎは、１〜６のいずれかの自然数である。以下、同様）。その後、閾値設定部３８は、外乱算出部３６にて算出した最新の外乱トルクｄ（ｎ）を取得し（Ｓ７０２）、取得した外乱トルクｄ（ｎ）がこの時点での最大外乱トルクｄｍａｘ（ｎ）よりも大きいか否かを判別する（Ｓ７０３）。そして、取得した外乱トルクｄ（ｎ）が最大外乱トルクｄｍａｘ（ｎ）よりも大きい場合（Ｓ７０３でＹＥＳ）、この外乱トルクｄ（ｎ）を新たな最大外乱トルクｄｍａｘ（ｎ）と置き換える（Ｓ７０４）。
【００６９】
そして、動作が終了している場合（Ｓ７０５でＹＥＳ）、最大外乱トルクｄｍａｘ（ｎ）に予め定められた値の係数α（ｎ）を加算することにより外乱トルク仮基準値ｄｔ（ｎ）を算出する（Ｓ７０６）。外乱トルク仮基準値ｄｔ（ｎ）を算出した後、感度Ｋを変更する場合（Ｓ７０７でＹＥＳ）、使用者に感度Ｋ（ｎ）の入力を促す図５に示した感度設定画面を教示装置４０の表示画面４１に表示させる（Ｓ７０８）。そして、感度Ｋ（ｎ）が入力された場合（Ｓ７０９でＹＥＳ）、その感度Ｋ（ｎ）に応じた修正値β（ｎ）を算出し、算出した修正値β（ｎ）に基づいて、外乱トルク基準値ｄｓ（ｎ）を算出する（Ｓ７１０）。他方、感度Ｋを変更しない場合（Ｓ７０７でＮＯ）、感度Ｋ（ｎ）を零として外乱トルク基準値ｄｓ（ｎ）を算出する（Ｓ７１０）。外乱トルク基準値ｄｓ（ｎ）を算出した後、算出した外乱トルク基準値ｄｓ（ｎ）を衝突検知閾値Ａｓ（ｎ）に変換し、記憶する（Ｓ７１１）。
【００７０】
これにより、ｎ番目の関節の外乱トルク仮基準値ｄｔ（ｎ）が、ｄｔ（ｎ）＝ｄｍａｘ（ｎ）＋α（ｎ）にて算出され、外乱トルク基準値ｄｓ（ｎ）が、ｄｓ（ｎ）＝ｄｔ（ｎ）＋β（ｎ）にて算出される。そして、外乱トルク基準値ｄｓ（ｎ）が変換されることで、ｎ番目の関節の衝突検知閾値Ａｓ（ｎ）が定められ、記憶される。
【００７１】
なお、係数αは、全ての関節に対して共通な値であってもよい。つまり、Ｓ７０４にて最大外乱トルクｄｍａｘ（ｎ）が定まった後に、各最大外乱トルクｄｍａｘ（ｎ）に一つの係数αを加算することにより、外乱トルク仮基準値ｄｔ（ｎ）を一括して算出してもよい（ｄｔ（ｎ）＝ｄｍａｘ（ｎ）＋α）。
【００７２】
また、修正値βは、全ての関節に対して共通な値であってもよい。つまり、感度Ｋの入力を促す感度設定画面を教示装置４０の表示画面４１に表示させた（Ｓ７０８）ことに起因して、使用者が感度Ｋを入力した場合には（Ｓ７０９でＹＥＳ）、その感度Ｋに応じた修正値βを算出し、各外乱トルク仮基準値ｄｔ（ｎ）に一つの修正値βを加算することにより、外乱トルク基準値ｄｓ（ｎ）を一括して算出してもよい（ｄｓ（ｎ）＝ｄｔ（ｎ）＋β）。これにより、使用者の負担はより小さくなる。また、使用者の入力が少ないため、使用者の入力ミスをより減らすことができる。
【００７３】
続いて、以上のように構成される溶接ロボットシステム１を用いたワーク溶接物の製造方法について説明する。
本実施の形態の溶接ロボットシステム１では、先ず、教示装置４０の表示画面において、溶接ロボット１０の使用者が衝突の検知のための感度Ｋを段階的に設定可能な表示画面（図５参照）を表示させる。そして、教示装置４０においてなされた使用者の段階的な感度Ｋの設定を認識する。教示装置４０にて認識した感度Ｋは、ロボットコントローラ３０の閾値設定部３８に入力される。ロボットコントローラ３０の閾値設定部３８では、設定された段階的な感度Ｋの設定に基づいて衝突検知閾値Ａｓを定める。
そして、溶接ロボットシステム１では、ロボットコントローラ３０に衝突検知閾値Ａｓを記憶するとともに、溶接ロボット１０を用いてワークの溶接を行う。
【００７４】
溶接ロボットシステム１では、ワークの溶接を実行しながら、ロボットコントローラ３０の外乱算出部３６にて、コントローラ３５から入力されるトルクと、溶接ロボット１０のエンコーダから入力される関節角度θなどに基づいて外乱トルクｄを算出する。そして、比較部３９では、衝突評価量Ａに変換した外乱トルクｄと、衝突検知閾値Ａｓとに基づいて、溶接ロボット１０が衝突しているか否かを判別する。コントローラ３５は、溶接ロボット１０が衝突している旨の通知を受けた場合には、溶接ロボット１０の動作を停止するべく、必要駆動トルクτ´を零とするなどの処理が実行される。
【００７５】
以上のように、本実施形態の溶接ロボットシステム１では、衝突検知閾値Ａｓを設定するにあたって、使用者は感度Ｋを設定するだけであるため、使用者の負担は小さい。また、使用者の入力が少ないため、使用者の入力ミスを減らすことができる。その結果、信頼性の高い衝突検知を実現することができる。
【００７６】
なお、本実施の形態に係るロボットコントローラ３０の閾値設定部３８は、衝突検知閾値Ａｓを設定する閾値設定手段としての機能と、衝突検知閾値Ａｓの設定に先だち、使用者が衝突の検知のための感度Ｋのレベルを段階的に設定できるユーザインタフェースの一例としての感度設定画面を提供する提供手段としての機能と、感度設定画面によってなされた使用者の段階的な感度Ｋのレベルの設定を認識する認識手段としての機能とを有する。しかしながら、かかる態様に限定されない。
例えば、感度設定画面を提供する機能を有する提供部を閾値設定部３８とは別に備え、閾値設定部３８は、この提供部に、教示装置４０に感度設定画面を表示する旨の指示を出力するようにしてもよい。また、例えば、感度設定画面によってなされた使用者の段階的な感度Ｋのレベルの設定を認識する機能を有する認識部を閾値設定部３８とは別に備え、閾値設定部３８は、認識部からの情報を基に、感度設定画面を介して設定された感度Ｋを認識するようにしてもよい。
【００７７】
また、本実施の形態では、外乱トルク仮基準値ｄｔを設定する際、最大外乱トルクｄｍａｘに予め定められた係数αを加算するが、これに限定されるものではない。得られた最大外乱トルクｄｍａｘに予め定めた誤差値を加味することができれば良く、例えば最大外乱トルクｄｍａｘに予め定めた係数を乗算するようにしてもよい。
同様に、本実施の形態では、外乱トルク基準値ｄｓを算出する際に、例えば外乱トルク仮基準値ｄｔに修正値βを加算しているが、これに限定されるものではない。例えば、感度Ｋに応じて設定される予め定めた修正値を外乱トルク仮基準値ｄｔに乗算するように構成してもよい。
【００７８】
さらに、本実施の形態では、外乱トルク仮基準値ｄｔを設定する際に、ある動作プログラムに基づいて溶接ロボット１０を動かしたときの外乱トルクｄの最大値に基づいて行っているが、これに限定されない。例えば、あるプログラムに基づく溶接ロボット１０の作動を複数回実施し、複数の実施によって得られた外乱トルクｄの最大値の平均値を外乱トルク仮基準値ｄｔの算出に用いるようにしてもよい。
【００７９】
さらに、本実施の形態では、図７のフローチャートを用いて説明したように、外乱トルク仮基準値ｄｔの算出、感度Ｋの設定、設定された感度Ｋに応じた外乱トルク基準値ｄｓの算出、算出した外乱トルク基準値ｄｓの衝突検知閾値Ａｓへの変換・記憶を、連続して行っているが特にかかる態様に限定されない。
外乱トルク仮基準値ｄｔの算出、暫定的に感度Ｋを零とした外乱トルク基準値ｄｓの算出、算出した外乱トルク基準値ｄｓの衝突検知閾値Ａｓへの変換・記憶を行った後に、使用者が好む任意のタイミングで感度Ｋを変更できるようにしてもよい。かかる場合、暫定的に感度Ｋを零として算出された外乱トルク基準値ｄｓに応じた衝突検知閾値Ａｓを、使用者により変更された感度Ｋに応じた外乱トルク基準値ｄｓに応じた衝突検知閾値Ａｓに変更し、これを記憶すればよい。
【００８０】
このようにすれば、使用者に溶接ロボットシステム１を納入し、据え付けた状態で、暫定的に感度Ｋを零として外乱トルク基準値ｄｓを算出して衝突検知閾値Ａｓを設定しておき、後に、教示プログラムで溶接ロボット１０に動作を教示しているときなどに感度Ｋを変更できるようにするとよい。例えば、使用者が好む任意のタイミングで感度設定ボタンを押すことができるようにしておき、感度設定ボタンが押されたら、図７のフローチャートにおけるＳ７０８以降の処理を実行すればよい。
【００８１】
＜第２の実施形態＞
第２の実施形態特に係る閾値設定部３８は、例えば、１つの動作プログラム中に、複数の動作が含まれている場合は動作毎に衝突検知閾値Ａｓを設定する点が、第１の実施形態に係る閾値設定部３８と異なる。その他は、第１の実施形態と同じであるので、以下では、異なる点について説明する。
【００８２】
図９は、ある動作プログラムを実行した場合の、溶接ロボット１０に装着された溶接トーチ１１の先端の移動形態を模式的に示す図である。
この動作プログラム実行による溶接ロボット１０の動作は以下の通りである。先ず、溶接トーチ１１の先端位置が初期位置Ｐ０に存在するように溶接ロボット１０が位置決めされ、次いで、溶接位置Ｐ１、Ｐ２、Ｐ３の順に位置決めされて各溶接位置においてアーク溶接を行い、溶接位置Ｐ３での溶接終了後に終了位置Ｐ４に退避する。
【００８３】
図１０は、図９に示す動作形態における、衝突が発生していない場合の外乱トルクｄの時間変化を示す図である。
図１０に示すように、溶接ロボット１０が各溶接位置Ｐ１、Ｐ２、Ｐ３間を移動する際の外乱トルクｄは、その区間以外（初期位置Ｐ０〜溶接位置Ｐ１、溶接位置Ｐ３〜終了位置Ｐ４）を移動する際の外乱トルクｄよりも一般に小さくなる。これは溶接ロボット１０が各溶接位置Ｐ１、Ｐ２、Ｐ３間を移動する際の速度は、その区間以外（初期位置Ｐ０〜溶接位置Ｐ１、溶接位置Ｐ３〜終了位置Ｐ４）を移動する際の速度よりも小さく設定されていることに起因している。
【００８４】
第１の実施形態のように、溶接ロボット１０の動作プログラム毎に衝突検知閾値Ａｓを設定する場合、図９を用いて示した動作形態では、最大外乱トルクｄｍａｘは、各溶接位置Ｐ１、Ｐ２、Ｐ３間以外の、初期位置Ｐ０〜溶接位置Ｐ１、溶接位置Ｐ３〜終了位置Ｐ４を移動する際に生じ、この最大外乱トルクｄｍａｘに基づいて衝突検知閾値Ａｓが設定されることとなる。
【００８５】
図１１は、図９を用いて示した動作形態における衝突発生前後の外乱トルクｄの時間変化を示す図である。図１１では、溶接位置Ｐ２〜Ｐ３間で衝突が発生した場合を例示している。
図１１に示すように、衝突検知閾値Ａｓ（外乱トルク基準値ｄｓ）が衝突発生直前の外乱トルクｄと比べて非常に高くなってしまうために、衝突の発生からその検知までに時間がかかってしまうおそれがある。
【００８６】
そこで、溶接ロボット１０を動作させるための１つの動作プログラム中に、複数の動作が含まれている場合は動作毎に衝突検知閾値Ａｓを設定してもよい。例えば、図９を用いて示した動作形態においては、初期位置Ｐ０〜溶接位置Ｐ１間を移動する動作、溶接位置Ｐ１〜Ｐ２間を移動する動作、溶接位置Ｐ２〜Ｐ３間を移動する動作、溶接位置Ｐ３〜終了位置Ｐ４間を移動する動作毎に衝突検知閾値Ａｓを設定してもよい。
【００８７】
次に、フローチャートを用いて、第２の実施形態に係る閾値設定部３８が行う衝突検知閾値設定処理の手順について説明する。
図１２−１および図１２−２は、第２の実施形態に係る閾値設定部３８が行う衝突検知閾値設定処理の手順を示すフローチャートである。図１２−１および図１２−２に示すフローチャートは、図９を用いて示した動作形態における衝突検知閾値Ａｓを設定するものである。以下では、図９を用いて示した動作形態における、初期位置Ｐ０〜溶接位置Ｐ１間を移動する動作を第１区間動作、溶接位置Ｐ１〜Ｐ２間を移動する動作を第２区間動作、溶接位置Ｐ２〜Ｐ３間を移動する動作を第３区間動作、溶接位置Ｐ３〜終了位置Ｐ４間を移動する動作を第４区間動作とする。
閾値設定部３８は、溶接ロボット１０を実際の動作プログラムに従い動作を開始させた後に衝突検知閾値設定処理を実行する。
【００８８】
先ず、第１区間動作における最大外乱トルクｄ１ｍａｘを初期化する（Ｓ１２０１）。その後、外乱算出部３６にて算出した第１区間動作における最新の外乱トルクｄ１を取得し（Ｓ１２０２）、取得した外乱トルクｄ１がこの時点での最大外乱トルクｄ１ｍａｘよりも大きいか否かを判別する（Ｓ１２０３）。そして、取得した外乱トルクｄ１が最大外乱トルクｄ１ｍａｘよりも大きい場合（Ｓ１２０３でＹＥＳ）、この外乱トルクｄ１を新たな最大外乱トルクｄ１ｍａｘと置き換え（Ｓ１２０４）、第１区間動作が終了したか否かを判別する（Ｓ１２０５）。他方、取得した外乱トルクｄ１が最大外乱トルクｄ１ｍａｘ以下の場合（Ｓ１２０３でＮＯ）、Ｓ１２０５以降の処理を行う。
【００８９】
第１区間動作が終了している場合（Ｓ１２０５でＹＥＳ）、最大外乱トルクｄ１ｍａｘに第１区間動作の係数αとして予め定められた値の係数α１を加算することにより外乱トルク仮基準値ｄｔ１を算出する（Ｓ１２０６）。他方、第１区間動作が終了していない場合（Ｓ１２０５でＮＯ）、Ｓ１２０２以降の処理を行う。
外乱トルク仮基準値ｄｔ１を算出した後、感度Ｋ１を変更するか否かを判別する（Ｓ１２０７）。そして、感度Ｋ１を変更する場合（Ｓ１２０７でＹＥＳ）、使用者に第１区間動作における感度Ｋ１の入力を促す感度設定画面を教示装置４０の表示画面４１に表示させる（Ｓ１２０８）。そして、教示装置４０の表示画面４１を介して感度Ｋ１が入力されたか否かを判別する（Ｓ１２０９）。これは、教示装置４０の表示画面４１に感度Ｋ１が入力されたとの情報を取得したか否かを判別する処理である。
【００９０】
そして、感度Ｋ１が入力された場合（Ｓ１２０９でＹＥＳ）、その感度Ｋ１に応じて設定された修正値β１に基づいて、外乱トルク仮基準値ｄｔ１を修正して第１区間動作の外乱トルク基準値ｄｓ１を算出する（Ｓ１２１０）。他方、感度Ｋ１が入力されていない場合（Ｓ１２０９でＮＯ）、感度Ｋ１を取得するまで待機する。外乱トルク基準値ｄｓ１を算出した後、算出した外乱トルク基準値ｄｓ１を第１区間動作の衝突検知閾値Ａｓ１に変換し、記憶する（Ｓ１２１１）。
一方、感度Ｋ１を変更しない場合（Ｓ１２０７でＮＯ）、感度Ｋ１を零として外乱トルク基準値ｄｓ１を算出し（Ｓ１２１０）、算出した外乱トルク基準値ｄｓ１を衝突検知閾値Ａｓ１に変換し、記憶する（Ｓ１２１１）。
【００９１】
衝突検知閾値Ａｓ１を記憶した後、第２区間動作における最大外乱トルクｄ２ｍａｘを初期化する（Ｓ１２２１）。その後、外乱算出部３６にて算出した第２区間動作における最新の外乱トルクｄ２を取得し（Ｓ１２２２）、取得した外乱トルクｄ２がこの時点での最大外乱トルクｄ２ｍａｘよりも大きいか否かを判別する（Ｓ１２２３）。そして、取得した外乱トルクｄ２が最大外乱トルクｄ２ｍａｘよりも大きい場合（Ｓ１２２３でＹＥＳ）、この外乱トルクｄ２を新たな最大外乱トルクｄ２ｍａｘと置き換え（Ｓ１２２４）、第２区間動作が終了したか否かを判別する（Ｓ１２２５）。他方、取得した外乱トルクｄ２が最大外乱トルクｄ２ｍａｘ以下の場合（Ｓ１２２３でＮＯ）、Ｓ１２２５以降の処理を行う。
【００９２】
第２区間動作が終了している場合（Ｓ１２２５でＹＥＳ）、最大外乱トルクｄ２ｍａｘに第２区間動作の係数αとして予め定められた値の係数α２を加算することにより第２区間動作の外乱トルク仮基準値ｄｔ２を算出する（Ｓ１２２６）。他方、第２区間動作が終了していない場合（Ｓ１２２５でＮＯ）、Ｓ１２２２以降の処理を行う。
外乱トルク仮基準値ｄｔ２を算出した後、感度Ｋ２を変更するか否かを判別する（Ｓ１２２７）。そして、感度Ｋ２を変更する場合（Ｓ１２２７でＹＥＳ）、使用者に第２区間動作における感度Ｋ２の入力を促す感度設定画面を教示装置４０の表示画面４１に表示させる（Ｓ１２２８）。そして、教示装置４０の表示画面４１を介して感度Ｋ２が入力されたか否かを判別する（Ｓ１２２９）。これは、教示装置４０の表示画面４１に感度Ｋ２が入力されたとの情報を取得したか否かを判別する処理である。
【００９３】
そして、感度Ｋ２が入力された場合（Ｓ１２２９でＹＥＳ）、その感度Ｋ２に応じて設定された修正値β２に基づいて、外乱トルク仮基準値ｄｔ２を修正して第２区間動作の外乱トルク基準値ｄｓ２を算出する（Ｓ１２３０）。他方、感度Ｋ２が入力されていない場合（Ｓ１２２９でＮＯ）、感度Ｋ２を取得するまで待機する。外乱トルク基準値ｄｓ２を算出した後、算出した外乱トルク基準値ｄｓ２を第２区間動作の衝突検知閾値Ａｓ２に変換し、記憶する（Ｓ１２３１）。
一方、感度Ｋ２を変更しない場合（Ｓ１２２７でＮＯ）、感度Ｋ２を零として外乱トルク基準値ｄｓ２を算出し（Ｓ１２３０）、算出した外乱トルク基準値ｄｓ２を衝突検知閾値Ａｓ２に変換し、記憶する（Ｓ１２３１）。
【００９４】
衝突検知閾値Ａｓ２を記憶した後、第３区間動作における最大外乱トルクｄ３ｍａｘを初期化する（Ｓ１２４１）。その後、外乱算出部３６にて算出した第３区間動作における最新の外乱トルクｄ３を取得し（Ｓ１２４２）、取得した外乱トルクｄ３がこの時点での最大外乱トルクｄ３ｍａｘよりも大きいか否かを判別する（Ｓ１２４３）。そして、取得した外乱トルクｄ３が最大外乱トルクｄ３ｍａｘよりも大きい場合（Ｓ１２４３でＹＥＳ）、この外乱トルクｄ３を新たな最大外乱トルクｄ３ｍａｘと置き換え（Ｓ１２４４）、第３区間動作が終了したか否かを判別する（Ｓ１２４５）。他方、取得した外乱トルクｄ３が最大外乱トルクｄ３ｍａｘ以下の場合（Ｓ１２４３でＮＯ）、Ｓ１２４５以降の処理を行う。
【００９５】
第３区間動作が終了している場合（Ｓ１２４５でＹＥＳ）、最大外乱トルクｄ３ｍａｘに第３区間動作の係数αとして予め定められた値の係数α３を加算することにより第３区間動作の外乱トルク仮基準値ｄｔ３を算出する（Ｓ１２４６）。他方、第３区間動作が終了していない場合（Ｓ１２４５でＮＯ）、Ｓ１２４２以降の処理を行う。
外乱トルク仮基準値ｄｔ３を算出した後、感度Ｋ３を変更するか否かを判別する（Ｓ１２４７）。そして、感度Ｋ３を変更する場合（Ｓ１２４７でＹＥＳ）、使用者に第３区間動作における感度Ｋ３の入力を促す感度設定画面を教示装置４０の表示画面４１に表示させる（Ｓ１２４８）。そして、教示装置４０の表示画面４１を介して感度Ｋ３が入力されたか否かを判別する（Ｓ１２４９）。これは、教示装置４０の表示画面４１に感度Ｋ３が入力されたとの情報を取得したか否かを判別する処理である。
【００９６】
そして、感度Ｋ３が入力された場合（Ｓ１２４９でＹＥＳ）、その感度Ｋ３に応じて設定された修正値β３に基づいて、外乱トルク仮基準値ｄｔ３を修正して第３区間動作の外乱トルク基準値ｄｓ３を算出する（Ｓ１２５０）。他方、感度Ｋ３が入力されていない場合（Ｓ１２４９でＮＯ）、感度Ｋ３を取得するまで待機する。外乱トルク基準値ｄｓ３を算出した後、算出した外乱トルク基準値ｄｓ３を第３区間動作の衝突検知閾値Ａｓ３に変換し、記憶する（Ｓ１２５１）。
一方、感度Ｋ３を変更しない場合（Ｓ１２４７でＮＯ）、感度Ｋ３を零として外乱トルク基準値ｄｓ３を算出し（Ｓ１２５０）、算出した外乱トルク基準値ｄｓ３を衝突検知閾値Ａｓ３に変換し、記憶する（Ｓ１２５１）。
【００９７】
衝突検知閾値Ａｓ３を記憶した後、第４区間動作における最大外乱トルクｄ４ｍａｘを初期化する（Ｓ１２６１）。その後、外乱算出部３６にて算出した第４区間動作における最新の外乱トルクｄ４を取得し（Ｓ１２６２）、取得した外乱トルクｄ４がこの時点での最大外乱トルクｄ４ｍａｘよりも大きいか否かを判別する（Ｓ１２６３）。そして、取得した外乱トルクｄ４が最大外乱トルクｄ４ｍａｘよりも大きい場合（Ｓ１２６３でＹＥＳ）、この外乱トルクｄ４を新たな最大外乱トルクｄ４ｍａｘと置き換え（Ｓ１２６４）、第４区間動作が終了したか否かを判別する（Ｓ１２６５）。他方、取得した外乱トルクｄ４が最大外乱トルクｄ４ｍａｘ以下の場合（Ｓ１２６３でＮＯ）、Ｓ１２６５以降の処理を行う。
【００９８】
第４区間動作が終了している場合（Ｓ１２６５でＹＥＳ）、最大外乱トルクｄ４ｍａｘに第４区間動作の係数αとして予め定められた値の係数α４を加算することにより第４区間動作の外乱トルク仮基準値ｄｔ４を算出する（Ｓ１２６６）。他方、第４区間動作が終了していない場合（Ｓ１２６５でＮＯ）、Ｓ１２６２以降の処理を行う。
外乱トルク仮基準値ｄｔ４を算出した後、感度Ｋ４を変更するか否かを判別する（Ｓ１２６７）。そして、感度Ｋ４を変更する場合（Ｓ１２６７でＹＥＳ）、使用者に第４区間動作における感度Ｋ４の入力を促す感度設定画面を教示装置４０の表示画面４１に表示させる（Ｓ１２６８）。そして、教示装置４０の表示画面４１を介して感度Ｋ４が入力されたか否かを判別する（Ｓ１２６９）。これは、教示装置４０の表示画面４１に感度Ｋ４が入力されたとの情報を取得したか否かを判別する処理である。
【００９９】
そして、感度Ｋ４が入力された場合（Ｓ１２６９でＹＥＳ）、その感度Ｋ４に応じて設定された修正値β４に基づいて、外乱トルク仮基準値ｄｔ４を修正して第４区間動作の外乱トルク基準値ｄｓ４を算出する（Ｓ１２７０）。他方、感度Ｋ４が入力されていない場合（Ｓ１２６９でＮＯ）、感度Ｋ４を取得するまで待機する。外乱トルク基準値ｄｓ４を算出した後、算出した外乱トルク基準値ｄｓ４を第４区間動作の衝突検知閾値Ａｓ４に変換し、記憶する（Ｓ１２７１）。
一方、感度Ｋ４を変更しない場合（Ｓ１２６７でＮＯ）、感度Ｋ４を零として外乱トルク基準値ｄｓ４を算出し（Ｓ１２７０）、算出した外乱トルク基準値ｄｓ４を衝突検知閾値Ａｓ４に変換し、記憶する（Ｓ１２７１）。
【０１００】
なお、この第２の実施形態では、各区間で、最大外乱トルクｄｍａｘ、外乱トルク仮基準値ｄｔを算出しているが特にかかる態様に限定されない。例えば、全区間で共通の最大外乱トルクｄｍａｘあるいは外乱トルク仮基準値ｄｔとし、感度Ｋのみを動作毎に変更するようにしてもよい。
【０１０１】
また、上述した実施の形態においては、溶接ロボット１０としてアーク溶接を行うロボットを例示したが、アーク溶接を行うロボットに限定されない。例えば、スポット溶接を行うロボットに対して、本実施の形態に係るロボットコントローラ３０および教示装置４０を適用してもよい。また、溶接以外の用途に用いるロボットに対して、本実施の形態に係るロボットコントローラ３０および教示装置４０を適用してもよい。
【符号の説明】
【０１０２】
１…溶接ロボットシステム、１０…溶接ロボット、２０…溶接電源、３０…ロボットコントローラ、３１…パラメータ記憶部、３２…モデル導出部、３３…モデル記憶部、３４…軌道計算部、３５…コントローラ、３６…外乱算出部、３７…評価量算出部、３８…閾値設定部、３９…比較部、４０…教示装置、４１…表示画面、４２…入力ボタン
【図１】
0005912683.tif 000010
【図２】
0005912683.tif 000011
【図３】
0005912683.tif 000012
【図４】
0005912683.tif 000013
【図５】
0005912683.tif 000014
【図６】
0005912683.tif 000015
【図７】
0005912683.tif 000016
【図８】
0005912683.tif 000017
【図９】
0005912683.tif 000018
【図１０】
0005912683.tif 000019
【図１１】
0005912683.tif 000020
【図１２−１】
0005912683.tif 000021
【図１２−２】
0005912683.tif 000022