(57)【要約】【課題】ロボットと外部環境との接触を高感度・高精度に検出可能なロボット制御装置を提供する。【解決手段】歪み検出センサ２を基台部に備えた多関節ロボット１を制御して予め教示された作業プログラム４を実行させ、作業プログラム４を実行中にセンサ２の出力からロボット１と外部環境との接触を検出するロボット制御装置において、制御装置３は、作業プログラム４を実行中にセンサ出力に対してフィルタ処理を行うフィルタ処理部８５と、フィルタ処理部８５のフィルタリング結果を用いてロボットと外部環境との接触状態を認識する状態認識部８６とを備え、フィルタ処理部８５は、作業プログラム４を実行中のロボット１の動作形態に応じてセンサ出力に対するフィルタ処理のカットオフ周波数を動的に変更する。【選択図】図１
2011110630.tif 000002
【特許請求の範囲】
【請求項１】
歪みセンサを基台部に備えた多関節ロボットを制御して予め教示された作業プログラムを実行させ、前記作業プログラムを実行中に前記センサの出力から前記ロボットと外部環境との接触を検出するロボット制御装置において、
前記制御装置は、前記作業プログラムを実行中に前記センサ出力に対してフィルタ処理を行うフィルタ処理部と、
前記フィルタ処理部のフィルタリング結果を用いて前記ロボットと外部環境との接触状態を認識する状態認識部とを備え、
前記フィルタ処理部は、前記作業プログラムを実行中の前記ロボットの動作形態に応じて前記センサ出力に対するフィルタ処理のカットオフ周波数を動的に変更することを特徴とするロボット制御装置。
【請求項２】
前記制御装置は、教示時に前記作業プログラムによって前記ロボットを動作させた際の前記センサ出力と前記ロボットの動作形態とを所定のサンプリング周期で記録する初期データ収録部と、
前記初期データ収録部に記録された前記センサ出力のデータを前記ロボットの動作形態に応じて複数に分割し、分割された各センサ出力データに対して、ノイズを除去するフィルタのカットオフ周波数を同定するフィルタリングパターン設定部と、
前記フィルタリングパターン設定部によって求めた各カットオフ周波数の組み合わせをフィルタリングパターンとして記憶するフィルタリングパターン記憶部と、
前記フィルタリングパターンによってフィルタリングされた前記センサ出力データを基準波形として記憶する基準波形記憶部と、を備え、
前記フィルタ処理部は、前記作業プログラムを実行する際に前記センサ出力に対して前記フィルタリングパターンによってフィルタ処理を行い、
前記状態認識部は、前記フィルタ処理部のフィルタリング結果と前記基準波形とを比較して前記ロボットと外部環境との接触状態を認識することを特徴とする請求項１記載のロボット制御装置。
【請求項３】
前記初期データ収録部は、前記ロボットの動作形態として前記ロボットの先端位置を前記センサ出力と同時に前記サンプリング周期で記録し、
前記フィルタリングパターン設定部は、前記ロボットの動作形態として記録された前記ロボットの先端位置が予め複数に分割された前記ロボットの動作領域のいずれの領域に属するかによって前記初期データ収録部に記録された前記センサ出力データを分割することを特徴とする請求項２記載のロボット制御装置。
【請求項４】
前記フィルタリングパターン設定部は、前記ロボットの動作領域ごとに分割された各センサ出力データに対し高速フーリエ変換を行ってパワースペクトルが最も大きい周波数成分を前記各領域についてそれぞれ抽出し、前記抽出した各周波数を初期カットオフ周波数とし、前記初期カットオフ周波数を所定の範囲内で変更しながら前記ロボットの動作領域ごとに分割された各センサ出力データをローパスフィルタ処理し、フィルタリング結果の標準偏差を評価値として前記ロボットの動作領域ごとに前記カットオフ周波数を同定することを特徴とする請求項３記載のロボット制御装置。
【請求項５】
前記フィルタリングパターン設定部は、初期データ収録部に収録された前記センサ出力データを前記フィルタリングパターンによってフィルタ処理した結果を表示する表示部を備えるとともに、作業者の入力に従って前記カットオフ周波数を変更する手動調整手段を備えることを特徴とする請求項２記載のロボット制御装置。
【請求項６】
前記フィルタリングパターン記憶部は複数の前記フィルタリングパターンを記憶するとともに、前記基準波形記憶部は複数の前記基準波形を記憶し、前記フィルタ処理部にて使用する前記フィルタリングパターンおよび前記状態認識部にて使用する基準波形とを前記作業プログラムにて指定することを特徴とする請求項２記載のロボット制御装置。
【請求項７】
前記状態認識部は、基準波形記憶部に記憶された前記基準波形を上下にオフセットして上限リミット値と下限リミット値を生成し、
前記フィルタ処理部のフィルタリング結果が前記上限リミット値を越えるか、前記下限リミット値を下回った場合に、前記ロボットが外部環境と異常接触したと認識することを特徴とする請求項２記載のロボット制御装置。
【請求項８】
前記状態認識部は、前記ロボットが外部環境と異常接触したと認識した場合にロボットの動作を停止させることを特徴とする請求項７記載のロボット制御装置。
【請求項９】
前記基準波形のオフセット量を前記作業プログラムにて指定することを特徴とする請求項７記載のロボット制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御装置に関し、特にロボットが外部環境と接触しながら作業を行うロボットの制御装置に関する。
【背景技術】
【０００２】
ロボットに対する外部からの接触力を検出する方法として、ロボットアーム本体のベース部に力センサや歪ゲージを設け、ロボットと外部環境との接触が発生しない状態でロボットアーム自身が動作することによってセンサに加わる力（内力）を相殺する推定値を求めておき、接触力が発生した場合は、センサ出力から推定値を差し引き、その結果をロボットに対する接触力として回避運動や動作停止を行うことが知られている（例えば特許文献１参照）。
また、ロボットによる加工作業時の加工力を検出する方法として、加工対象のワークをセットしない状態で教示データを再生し、その際にロボット先端部に取り付けられた力センサの出力を外乱力として記憶しておき、実際にワークに対して加工作業を行う際は、力センサの出力から記憶した外乱力を差し引きながら加工時の外力を検出する方法が知られている（例えば特許文献２参照）。
これら従来技術は、ロボットに作用する外力を検出するために、ロボットに外力が作用していない状態におけるセンサのデータを予め取得しておき、実作業時のセンサ出力から予め取得していたデータを差し引くことによって、外部からロボットに作用している力を抽出するというものであり、教示時のロボットの動作パターンと実際の作業時の動作パターンとが全く同じ場合には実用的な面から有効な手法と考えられる。
特に特許文献１によれば、ロボットのベース部にセンサを設けるため、先端部にセンサを設ける場合と比較してロボットの動作によって配線が断線したり、外部との接触によってセンサが破損したりする恐れがないという利点がある。
なおこうした用途においてはセンサの出力データからノイズを除去する目的で一般的にフィルタリング処理を行うが、従来は固定的なローパスフィルタが一様に使用されていた。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２１２８７号公報
【特許文献２】特開平４−１４８３０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術においては、センサ出力に対するフィルタリング方法としてカットオフ周波数が固定されたローパスフィルタが用いられており、ロボットの動作の全範囲について、センサ出力から一律に所定のカットオフ周波数以下の低周波成分のみが抽出されることとなる。
【０００５】
しかしながらロボットは作業実行時においては様々な姿勢や形態をとる。ロボットの固有振動数はロボットの姿勢や形態によって変化するので、ロボット自身の動作により発生する振動の大きさは、例えば同じ手首を回転させる動作であってもその姿勢や形態によって変化する。従来はこうした点を考慮せずカットオフ周波数を一定に設定しており、ロボットの姿勢や形態によって接触検出の感度にばらつきが発生するという問題が発生する。すなわちロボットが外部環境と接触していなくても、ロボットの動作に伴う振動を接触と誤検出したり、逆に外部環境と接触しているのに、その状態を検出できなかったりする恐れがあった。
特に組立作業のようにロボットが外部環境との接触を伴う作業を行う場合、接触検出の感度にばらつきがあると、正常な接触であってもロボットが停止して作業が中断したり、逆にロボットが外部環境と衝突しても停止せずに動作を継続してロボットや外部環境を破損してしまったりする恐れがある。
本発明は、こうした点に鑑みてなされたものであり、センサによってロボットと外環境との接触力を検出する場合に、センサ出力のカットオフ周波数をロボットの姿勢や形態に合わせて動的かつ適切に設定することにより、センサ出力からノイズを適切に除去してロボットと外部環境との接触を高感度・高精度に検出可能なロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記問題を解決するため、本発明は、次のように構成したものである。
請求項１に記載の発明は、歪みセンサを基台部に備えた多関節ロボットを制御して予め教示された作業プログラムを実行させ、前記作業プログラムを実行中に前記センサの出力から前記ロボットと外部環境との接触を検出するロボット制御装置において、前記制御装置は、前記作業プログラムを実行中に前記センサ出力に対してフィルタ処理を行うフィルタ処理部と、前記フィルタ処理部のフィルタリング結果を用いて前記ロボットと外部環境との接触状態を認識する状態認識部とを備え、前記フィルタ処理部は、前記作業プログラムを実行中の前記ロボットの動作形態に応じて前記センサ出力に対するフィルタ処理のカットオフ周波数を動的に変更することを特徴とするものである。
請求項２に記載の発明は、前記制御装置は、教示時に前記作業プログラムによって前記ロボットを動作させた際の前記センサ出力と前記ロボットの動作形態とを所定のサンプリング周期で記録する初期データ収録部と、前記初期データ収録部に記録された前記センサ出力のデータを前記ロボットの動作形態に応じて複数に分割し、分割された各センサ出力データに対して、ノイズを除去するフィルタのカットオフ周波数を同定するフィルタリングパターン設定部と、前記フィルタリングパターン設定部によって求めた各カットオフ周波数の組み合わせをフィルタリングパターンとして記憶するフィルタリングパターン記憶部と、前記フィルタリングパターンによってフィルタリングされた前記センサ出力データを基準波形として記憶する基準波形記憶部と、を備え、前記フィルタ処理部は、前記作業プログラムを実行する際に前記センサ出力に対して前記フィルタリングパターンによってフィルタ処理を行い、前記状態認識部は、前記フィルタ処理部のフィルタリング結果と前記基準波形とを比較して前記ロボットと外部環境との接触状態を認識することを特徴とするものである。
請求項３記載の発明は、前記初期データ収録部は、前記ロボットの動作形態として前記ロボットの先端位置を前記センサ出力と同時に前記サンプリング周期で記録し、前記フィルタリングパターン設定部は、前記ロボットの動作形態として記録された前記ロボットの先端位置が予め複数に分割された前記ロボットの動作領域のいずれの領域に属するかによって前記初期データ収録部に記録された前記センサ出力データを分割することを特徴とするものである。
請求項４に記載の発明は、前記フィルタリングパターン設定部は、前記ロボットの動作領域ごとに分割された各センサ出力データに対し高速フーリエ変換を行ってパワースペクトルが最も大きい周波数成分を前記各領域についてそれぞれ抽出し、前記抽出した各周波数を初期カットオフ周波数とし、前記初期カットオフ周波数を所定の範囲内で変更しながら前記ロボットの動作領域ごとに分割された各センサ出力データをローパスフィルタ処理し、フィルタリング結果の標準偏差を評価値として前記ロボットの動作領域ごとに前記カットオフ周波数を同定することを特徴とするものである。
請求項５に記載の発明は、前記フィルタリングパターン設定部は、初期データ収録部に収録された前記センサ出力データを前記フィルタリングパターンによってフィルタ処理した結果を表示する表示部を備えるとともに、作業者の入力に従って前記カットオフ周波数を変更する手動調整手段を備えることを特徴とするものである。
請求項６に記載の発明は、前記フィルタリングパターン記憶部は複数の前記フィルタリングパターンを記憶するとともに、前記基準波形記憶部は複数の前記基準波形を記憶し、前記フィルタ処理部にて使用する前記フィルタリングパターンおよび前記状態認識部にて使用する基準波形とを前記作業プログラムにて指定することを特徴とするものである。
請求項７に記載の発明は、前記状態認識部は、基準波形記憶部に記憶された前記基準波形を上下にオフセットして上限リミット値と下限リミット値を生成し、前記フィルタ処理部のフィルタリング結果が前記上限リミット値を越えるか、前記下限リミット値を下回った場合に、前記ロボットが外部環境と異常接触したと認識することを特徴とするものである。
請求項８に記載の発明は、前記状態認識部は、前記ロボットが外部環境と異常接触したと認識した場合にロボットの動作を停止させることを特徴とするものである。
請求項９に記載の発明は、前記基準波形のオフセット量を前記作業プログラムにて指定することを特徴とするものである。
【発明の効果】
【０００７】
請求項１に記載の発明によると、ロボットの動作形態に応じて最適なカットオフ周波数でセンサ出力のフィルタリングを行ってノイズを適切に除去するため、ロボットと外部環境との接触を高感度・高精度に検出することができる。
【０００８】
請求項２に記載の発明によると、実際の作業プログラムによってロボットを動作させた際のセンサ出力をもとにカットオフ周波数を同定するため、適切なカットオフ周波数を同定することができる。
【０００９】
請求項３に記載の発明によると、ロボットの動作形態としてロボットの先端位置を利用することでセンサ出力のデータを簡便に分割することができる。
請求項４に記載の発明によると、計算が簡便で実用的な時間でのカットオフ周波数の同定が可能である。
請求項５に記載の発明によると、作業者がフィルタリングされたセンサ出力のデータ波形を確認しながらカットオフ周波数の微調整を行うことができる。
請求項６に記載の発明によると、作業プログラムごとにセンサ出力に対し適切なフィルタリングパターンを適用できるため、ロボットと外部環境との接触を高感度・高精度に検出することができる。
請求項７に記載の発明によると、ロボットと外部環境との接触の検出に際し、正常な接触であるか異常な接触であるかを区別することができる。
請求項８に記載の発明によると、正常な接触ではロボットの動作を継続して作業効率を維持することができるとともに、異常な接触ではロボットの動作を停止させてロボットや外部環境の破損を防止することができる。
請求項９に記載の発明によると、ロボットと外部環境との接触の検出に際し、異常な接触とする基準を作業プログラムごとに柔軟に変更することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施例を示す全体構成図
【図２】センサの取り付け例を示す図
【図３】ロボットの作業プログラム例を示す図
【図４】ロボットの動作領域の分割例を示す図
【図５】ロボットの動作領域の別の分割例を示す図
【図６】センサの出力波形の例を示す図
【図７】周波数解析部での処理を説明する図
【図８】センサの出力波形をロボット先端位置が属する領域によって分割した図
【図９】ロボットの作業プログラム例を示す図
【図１０】作業プログラム実行時の接触検出の様子を示す図
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１２】
図１は、本実施例のロボット制御装置およびロボットの構成を模式的に示した図である。
図１において、１は複数の関節駆動部を備えた多関節ロボットである。２は半導体歪ゲージや水晶圧電式による歪センサであってロボット１の基台部に取り付けられている。歪センサはロボットが動作したり外部環境と接触したりする際に基台部に生じる歪みを検出するためのものであり、その歪みの大きさに比例した電圧を出力する。
図２はセンサ取り付けの具体例を示すもので、ロボット１の基台部の４箇所に歪センサ２ａ、２ｂ、２ｃ、２ｄが取り付けられている。歪センサの数は図２のように４つに限られるものではなく、さらに増やしてもよい。
本実施例では、ロボット１からやや離れた場所に整列された部品Ａ１１をハンド１０によって把持し、ロボット１の近くに設置された部品Ｂ１２に嵌めこんで組み立てるという、ロボットと外部環境との接触を伴う作業を例にとる。
３は、ロボット１を制御するための制御装置で、ロボット１の動作パターンを記述した作業プログラム４と、作業プログラム４を解釈しその実行を制御する作業プログラム実行制御部５と、作業プログラム実行制御部５の出力であるロボット１の各関節の位置指令を入力として電流指令を生成する位置速度制御部６と、位置速度制御部６の出力である電流指令を入力としてロボット１の各関節の駆動モータ（図示せず）を制御するアンプ部７と、センサ２の出力からロボット１の接触状態を監視する作業状況監視部８で構成される。
また作業状況監視部８は、ロボット１が作業プログラム４によって所定の作業を自動実行している間の接触状態を監視する場合と、作業の実行に先立って、作業プログラム４の実行に伴うセンサ２の出力データを収集し、センサ２の出力データのフィルタリングパターンを決定する場合とで処理が異なる。
９は、接触状態の監視か、センサ２の出力データ収集かを切り替えるモード切り替えスイッチである。センサのデータ収集の場合にはモード切り替えスイッチ９を図の「教示時」側に切り替え、作業実行中の接触状態の監視の場合にはモード切り替えスイッチ９を図の「自動運転時」側に切り替えることでセンサ２による検出値の入力先を切り替える。
作業状況監視部８は次の各部によって構成される。
初期データ収録部８１は、モード切り替えスイッチ９が「教示時」側に切り替えられた状態において、センサ２の出力を収録する。
周波数解析部８２は、初期データ収録部８１にて収録した波形データの周波数解析を行う。フィルタリングパターン生成部８３は、周波数解析部８２での周波数解析の結果を用いて波形データの最適なフィルタリングパターンの組み合わせを生成する。
フィルタリングパターン記憶部８４では、フィルタリングパターン生成部８３の出力結果であるカットオフ周波数の組合せを記憶する。また基準波形記憶部８９は、カットオフ周波数にてローパスフィルタリングされたセンサ２の出力波形を基準波形として記憶する。
表示部８７はフィルタリングされたセンサ２の出力波形を表示して作業者に提示するものであり、手動調整手段８８はフィルタリングパターン生成部８３によるフィルタリングパターンを手動で調整するためのものである。
作業状況監視部８のうち、破線９０で囲まれた部分は収集したセンサ２の出力データのフィルタリングパターンを設定する場合に機能する部分で、フィルタリングパターン設定部と呼称する。
さらに作業状況監視部８は、自動実行中のロボットの接触状態監視の場合にフィルタリングパターン記憶部８４に記憶された組合せパターンに従ってフィルタリングを行うフィルタ処理部８５と、フィルタ処理部８５の結果と基準波形記憶部８９に記録された波形とを比較してロボット１の外部環境との接触状態を認識する状態認識部８６を備える。また状態認識部８６にて接触したと認識した場合にロボット１の動作を停止させる停止手段９１を備えている。
続いて本実施例の装置の動作の詳細について、
（１）センサ２の出力データを収集し、そのフィルタリングパターンを決定する場合
（２）ロボット１が作業プログラム４によって所定の作業を実行している間の接触状態を監視する場合
に分けてそれぞれ説明する。
上記（１）の場合、まずロボット１に行わせる作業のプログラム４の教示を行う。教示は制御装置３に接続された可搬型教示装置（図示せず）によって実際にロボット１を動作させながら行ってもよいし、いわゆるオフライン教示にて行ってもよい。
図３に作成した作業プログラムの一例を示す。最初の行の「ＮＯＰ」と最後の行の「ＥＮＤ」はそれぞれ作業プログラムの最初と最後であることを明示するための命令で、作業内容に関わらず全ての作業プログラムに存在する。
２行目から４行目の「ＭＯＶ」がロボットを移動させる命令である。各行の「ＭＯＶ」の右側にあるＰ１、Ｐ２、Ｐ３はＭＯＶ命令のパラメータとして与えられ、ロボットの移動先の位置を指定するデータが格納されている変数である。位置の指定方法として、ロボット１の各関節軸の位置を指定したり、ロボット座標系に基づくロボット先端位置を指定したりすることができる。
また「Ｖ」はロボットの移動速度を指定するパラメータであって、図３の例では、「Ｖ＝１００」では所定の基準動作速度に対して１００％の速度で移動するよう指定し、「Ｖ＝８０」では基準動作速度に対して８０％の速度で移動するよう指定している。上記（２）の場合には、ロボット１は図３の作業プログラムで指定した動作を繰り返し実行することとなる。
ここで、ロボット１の動作領域はロボット座標系の原点からの距離によって予め複数の領域に分割されているものとする。領域分割の例を図４に示す。図４ではロボット座標系の原点に近い方からＡ、Ｂ、Ｃの３つの領域を設定しており、ロボット１の先端が最も外側の領域Ｃに達している。図４は領域分割の一例に過ぎず、分割する領域の数や各領域のロボット座標系の原点からの距離の範囲は適宜変更可能であり、領域の形状についても、図４では半球状となっているが、図５のように直方体によって領域を規定してもよい。さらに領域の設定も必ずしもロボット座標系に基づかなくてもよい。以降は図４の例に基づき説明する。
作業プログラム４の教示が完了したら、実際に作業を行わせるのに先立ち、作業プログラムの実行に伴いロボット１に生じる振動をセンサ２によって検出する。
この際に、まずモード切り替えスイッチ９を図１の「教示時」側に切り替える。
続いて作業プログラム実行制御部５に教示された作業プログラム４を読み込ませ実行させる。作業プログラム実行制御部５は作業プログラムをもとにロボット１の目標指令位置を自動生成する。なお、作業プログラムからロボットの指令位置を生成する点については公知技術であるため詳細は割愛する。
生成された指令位置が位置速度制御部６に入力され、アンプ部７を介してロボット１が指令された動作を行う。この時、モード切り替えスイッチ９が「教示時」側に切り替えられているので、センサ２の出力は作業状態監視部８の初期データ収納部８１へと送られる。なお、モード切り替えスイッチ９の機能は、作業プログラム４内の命令として記述し、作業プログラム実行制御部５によって切り替えるという方法で実現してもよい。
ロボット１が動作を開始すると、初期データ収録部８１はセンサ２によって計測された波形データを所定のサンプリング周期で収録する。図２のようにセンサを複数設置した場合は、２ａ、２ｂ、２ｃ、２ｄのそれぞれのセンサからの波形データが収録される。図６はセンサ２のうち、センサ２ａによって検出された歪みに対応する電圧波形の例を示しており、以降このデータを初期波形データＷａと呼称する。
またこれと並行してロボットの各関節のフィードバック位置から求められたロボット座標系に基づくロボットの先端位置も初期データ収納部８１へと送られセンサ出力と同じサンプリング周期で収録される。
こうしたデータの収録や、以降で述べるフィルタリングパターンの生成などは図２のすべてのセンサの出力について行われるが、説明を簡単にするためセンサ２ａの出力のみについて説明する。
収録された初期波形データは、周波数解析部８２に入力される。図７を用いて周波数解析部８２での処理を説明する。
周波数解析部８２は、領域分割モジュール８２ａと、公知技術であるＦＦＴ（高速フーリエ変換）処理を行う周波数解析モジュール８２ｂとで構成される。領域分割モジュール８２ａでは、センサ２の出力（図７に示すＳ（ｎΔｔ））を収録した際に同時に収録されたロボット１の先端位置（図７に示すＰ（ｎΔｔ））と、図４に示した領域の情報とを照合し、ロボット１の先端部が領域Ａ〜Ｃのいずれに存在していたかによって初期波形データＷａを分割する。
より具体的に述べると、分割処理モジュール８２aにおいて、サンプリング周期ごとのロボット先端位置（図７に示すＰ（ｎΔｔ））のロボット座標系原点からの距離が、領域Ａ、Ｂ、Ｃを定義するロボット座標系原点からの距離（図４のｒａ、ｒｂ、ｒｃ）と比較され、初期波形データＷa（図７に示すＳ（ｎΔｔ））はそのサンプリング時にロボット先端位置がどの領域に存在しているかによって分割される。
図７の例では、（Ｎ＋１）Δｔ〜ＮａΔｔの期間ではロボットの先端位置は領域Ｂに存在し、（Ｎａ＋１）Δｔ〜ＮｂΔｔの期間ではロボットの先端位置は領域Ｃに存在し、（Ｎｂ＋１）Δｔ〜ＮｃΔｔの期間ではロボットの先端位置は領域Ｂに存在していたとして初期波形データＷａが分割されている。図８は、ロボット先端位置がどの領域に属するかによって図７の例のように分割された初期波形データＷａを示す図である。図８では、白矢印で示された期間にロボット１の先端位置が一旦図４に示す領域Ｂから領域Ｃに移動し、再度領域Ｂに戻ったことを表している。
次に周波数解析モジュール８２ｂにて、分割された初期波形データＷａに対してＦＦＴ処理を行い、各領域においてパワースペクトルの最も大きい周波数成分を抽出する。
例えば領域Ａでは周波数３５Ｈｚ、領域Ｂでは１２Ｈｚ、領域Ｃでは８Ｈｚであったとする。
周波数解析部８２にて抽出されたこの周波数の組み合わせがフィルタリングパターン生成部８３に入力されると、フィルタリングパターン生成部８３ではこれらの周波数をカットオフ周波数の基準として、予め設定した範囲で各周波数の値を上下させさせながら領域ごとに分割された初期波形データＷａに対しそれぞれのカットオフ周波数にてローパスフィルタ処理を行う。さらにフィルタ処理した各領域の波形データについて次に示す式（１）によって時系列データの標準偏差Ｔを算出し、この標準偏差が最小となるカットオフ周波数の組み合わせ（例えば領域Ａのカットオフ周波数は３０Ｈｚ、領域Ｂのカットオフ周波数は１５Ｈｚ、領域Ｃのカットオフ周波数は１０Ｈｚ）を求め、フィルタリングパターンとしてフィルタリングパターン記憶部８４に記憶する。
2011110630.tif 000003
【００１３】
・・・式（１）
ただし、
Δｔ：サンプリング間隔の時間
Ｓ：フィルタリングされたセンサ信号
2011110630.tif 000004
【００１４】
：センサ信号Ｓの平均値
ｎ：１以上の整数
ｋ：サンプリングされたデータ数の上限値（整数）
こうして求めた領域ごとのカットオフ周波数を用いてフィルタリング処理された後の初期波形データＷａは基準波形として基準波形記憶部８９に記憶される。
また、フィルタリング処理された後の初期波形データＷａの波形は、フィルタリング結果を表示する表示部８７に図６や図８のように表示され、作業者が目視によってフィルタリングの効果を確認することができる。さらに表示部８７の表示内容を確認しながら、手動調整手段８８を用いて作業者がカットオフ周波数を変更することも可能である。表示部８７や手動調整手段８８は、それぞれロボット１の作業プログラムを教示する際に利用される可搬型教示装置の表示画面や操作ボタンによって実現してもよい。
以上が、上記（１）センサ２の出力データを収集し、そのフィルタリングパターンを決定する場合の手順である。こうした手順により、作業プログラムに従って動作するロボット１の姿勢や形態の変化に応じて、センサ出力に対し最適なフィルタリングを行うためのカットオフ周波数を決定することができる。
作業プログラムに従ってロボットが動作し、その姿勢や形態が変化するとロボットの固有振動数も変化する。そこで本実施例ではロボットの先端位置がどの領域に存在するかによってロボットの姿勢や形態を大まかに分類し、センサ２の出力からノイズを除去するための適切なカットオフ周波数を領域ごとに同定して、ロボットと外部環境との接触を高感度・高精度に検出できるようにしたのである。
以上では説明を簡単にするためセンサ２ａの出力についてのみ説明したが、センサ２ｂ、２ｃ、２ｄについても同様の処理を行ってフィルタリングパターン記憶部８４にフィルタリングパターンを記憶し、基準波形記憶部８９にフィルタリング処理された基準波形を記憶する。
またフィルタリングパターン記憶部８４や基準波形記憶部８９は、作業プログラムの種類に応じてセンサ２ａ〜２ｄについての複数のフィルタリングパターンや、フィルタリングパターンに対応した基準波形を記憶することが可能で、各フィルタリングパターンや基準波形に番号を付与することにより、その番号を指定してフィルタリングパターンや基準波形を選ぶことができる。
センサ２の出力はロボットの姿勢や形態の変化の他に動作速度などによっても変化するため、作業プログラムごとに基準波形とフィルタリングパターンを求めておくことでその作業プログラムに適したフィルタリングを行うことができ、ロボットと外部環境との接触の高感度・高精度な検出に寄与する。
次に上記（２）ロボット１が作業プログラム４によって所定の作業を実行している間の外部環境との接触状態を監視する場合について説明する。
上記（２）の場合には、まず図３に示した作業プログラムについて、外部環境との接触状態を監視するよう命令を追加する編集を行う。図９に編集した作業プログラムの例を示す。下線を引いた部分が図３から追加された命令である。追加された命令の意味については後述する。
続いてモード切り替えスイッチ９を図１の「自動運転時」側に切り替えた後、図９のように命令を追加した作業プログラム４を作業プログラム実行制御部５に読み込ませ実行させる。
作業プログラム実行制御部５は作業プログラムをもとにロボット１の目標指令位置を自動生成する。なお、作業プログラムからロボットの指令位置を生成する点については公知技術であるため詳細は割愛する。
生成された指令位置が位置速度制御部６に入力され、アンプ部７を介してロボット１が指定された動作を行う。この時、モード切り替えスイッチ９が「自動運転時」側に切り替えられているので、センサ２の出力はフィルタ処理部８５へと送られ、さらにフィルタ処理部８５の出力が状態認識部８６でチェックされる。
作業プログラム４に追加された命令のうち、２行目の「ＣＨＫＯＮ」は外部環境との接触状態監視を開始するための命令である。ＣＨＫＯＮにパラメータとして与えられる「ＰＡＴ＝１」は、フィルタリングパターン記憶部８４に記憶された複数のフィルタリングパターンや、各フィルタリングパターンに関連づけされて基準波形記憶部８９に記憶された複数の基準波形のうち、接触状態の監視に用いるものを指定するためのものである。
なお、前述のように、モード切り替えスイッチ９の機能を作業プログラム４のＣＨＫＯＮ命令によって実現するようにしてもよい。すなわちＣＨＫＯＮ命令を解釈した作業プログラム実行制御部５によって、センサ２の出力がフィルタ処理部８５へと送られるよう切り替えが行われるようにしてもよい。
作業プログラム実行制御部５はＰＡＴパラメータで指定されたフィルタリングパターンの番号（図９の例では１）をフィルタリングパターン記憶部８４に送り、同じくＰＡＴパラメータで指定された基準波形の番号（図９の例では１）を基準波形記憶部８９に送る。
フィルタリングパターン記憶部８４は指定されたフィルタリングパターンをフィルタ処理部８５に送出し、基準波形記憶部８９は指定された基準波形を状態認識部８６に送出する。ＰＡＴパラメータで指定されたフィルタリングパターンはフィルタ処理部８５にてセンサ２の出力をフィルタリングする際に使用され、同じくＰＡＴパラメータで指定された基準波形は状態認識部８６にてロボット１と外部環境との接触状態を認識する際に使用される。
またＬＭＴ＝１８０は、状態認識部８６で接触状態を監視する際、基準波形記憶部８９から入力された波形をどの程度オフセットさせて後述のリミット値とするかを指定するためのものである。作業プログラム実行制御部５はＬＭＴパラメータで指定された値を状態認識部８６に送る。状態認識部８６では基準波形をＬＭＴパラメータで指定された値だけ上下にオフセットさせたデータを生成し、これを上下のリミット値とする。図９の例では、基準波形のデータを±１８０ｍＶオフセットさせて上下リミット値とすることを意味している。状態認識部８６での処理の詳細については後述する。
さらに３〜５行目のＭＯＶ命令に追加された「ＵＮＴＩＬ  ＃ＩＮ１００」とは「＃ＩＮ１００」が「制御装置３の入力ポート１００番」を意味する。本実施例ではセンサ２の出力が入力されるポートとなっている。すなわちセンサ２の出力をモニタし、ＣＨＫＯＮ命令で指定したリミット値の範囲を越えるまではＭＯＶ命令を実行し、リミット値を越えた場合にはＭＯＶ命令の実行を停止することを表している。またＥＮＤの直前の「ＣＨＫＯＦ」は「ＣＨＫＯＮ」と対となる命令で、外部環境との接触状態監視を停止するための命令である。
フィルタ処理部８５では、上記（１）の場合にフィルタリングパターン記憶部８４に記憶されたフィルタリングパターン、すなわちカットオフ周波数の組み合わせのうち、ＰＡＴパラメータで指定されたものを用いてフィルタリングを行う。
この際、ロボットの各関節のフィードバック位置から求められたロボット座標系に基づくロボットの先端位置を取得し、作業プログラムの実行に伴ってロボット１の先端が図４に示したどの領域に含まれるかを逐次判断し、ロボット１の先端が存在する領域に応じてカットオフ周波数を切り替える。
上記（１）の場合を例にとれば、ロボット１の先端位置が領域Ａに存在する場合にはカットオフ周波数を３０Ｈｚとしてセンサ２の出力をフィルタリングし、領域Ｂに存在する場合にはカットオフ周波数を１５Ｈｚとしてセンサ２の出力をフィルタリングし、領域Ｃに存在する場合にはカットオフ周波数を１０Ｈｚとしてセンサ２の出力をフィルタリングする。こうすることによってロボット１の先端の位置、換言すればロボット１の姿勢や形態に応じて最適なフィルタリング処理が実施されることとなる。
フィルタ処理部８５によってフィルタリングされたセンサ２の出力は状態認識部８６に送られる。状態認識部８６では、上記（１）の手順において基準波形記憶部８９に記憶された基準波形データのうちＰＡＴパラメータで指定されたものとフィルタ処理部８５の出力とを用いて、ロボットと外部環境との接触状態を検出する。
図１０を用いて状態認識部８６での接触検出の処理を説明する。図１０（ａ）〜（ｃ）は作業プログラムを繰り返し実行している最中に、センサ２の出力の波形を利用してロボット１の接触を検出する様子を示している。
図１０（ａ）〜（ｃ）にはそれぞれ３種類の波形が描かれているが、真ん中がフィルタ処理部８５によってフィルタリングされたセンサ２の出力の波形である。図１０の波形はフィルタリングされているため、図６の波形の例と比較するとノイズが除去されている。また上下の波形はそれぞれ、基準波形記憶部８９に記憶された波形のデータをもとに、ＬＭＴパラメータで指定されたリミット値を加えた上限リミットと、同じくＬＭＴパラメータで指定されたリミット値を引いた下限リミットである。基準波形記憶部８９に記憶された波形もフィルタリングパターンによってフィルタリングされたものなので、図６の波形の例と比較するとノイズが除去されている。
状態認識部８６では、作業プログラムが実行開始されると基準波形記憶部８９に記憶された基準波形からこれら上下のリミット値を生成してセンサ２の出力値と逐次比較を行う。
ロボット１が作業プログラムに従って動作している間、センサ２の出力は基準波形記憶部８９に記憶された基準波形と全く同じとなることはなく、若干の誤差が生じる。特に組み立て作業のようなロボットと外部環境との接触を伴う作業では接触の際にセンサ２で検出される値と基準波形との差は大きくなる。上限リミット値と下限リミット値は、こうした誤差の許容範囲を規定するものであり、作業プログラム実行中のセンサ２の出力がリミット値の範囲内に収まっていれば、状態認識部８６はロボット１が外部環境と接触することなく動作している、あるいは外部環境と接触したとしても想定された範囲内であると判断する。
図１０では同じ作業プログラムを３回繰り返した場合を例にとっており、図１０（ａ）が作業プログラム実行１回目における接触状態の検出、図１０（ｂ）が２回目における接触状態の検出、図１０（ｃ）が３回目における接触状態の検出をそれぞれ示している。
図１０（ａ）〜（ｃ）ではそれぞれ白矢印で指し示した箇所でセンサ２の出力値が上限リミット値を越えている。このようにセンサ２の出力値が上限リミット値を越えた場合または下限リミット値を下回った場合、状態認識部８６はロボットと外部環境とが組み立て作業などの正常な接触の範囲を越えて予期せぬ大きな力で接触したと認識して作業プログラム実行制御部５と停止手段９１とに停止信号を出力する。
状態認識部からの信号を受けると作業プログラム実行制御部５は図９の作業プログラムの進行を停止し、停止手段９１は位置速度制御部６に指令を出力してロボット１を停止させロボットや外部環境の破損を防止する。
またセンサ２の出力値が上限リミット値を越えた場合または下限リミット値を下回った場合に即座にロボット１を停止させずに、センサ２の出力値とリミット値との差分の大きさを所定のしきい値と比較し、差分の大きさがしきい値を下回る場合にはロボット１の動作を継続させるようにしてもよい。
例えば図１０（ａ）の場合はセンサ２の出力値とリミット値との差分が比較的小さく、所定のしきい値以下であったとすると、状態認識部８６ではロボットと外部環境が接触したが正常な接触の範囲内であると判断し、ロボットを停止させず作業プログラムの実行を継続する。図１０（ｂ）や図１０（ｃ）の場合にはセンサ２の出力値とリミット値との差分が大きく、所定のしきい値を越えていたとすると、状態認識部８６ではロボットと外部環境が予期せぬ大きな力で接触をしたと判断し、ロボットを停止させる。
このようにセンサ２の出力がリミット範囲を越えた場合でもその差分が小さい場合にはロボットの動作を継続させることで作業を中断させず効率を向上させることができる。
【００１５】
本実施例では、ロボットと外部環境との接触を伴う組み立て作業を例にとって接触状態の検出を行ったが、アーク溶接作業など、ロボットと外部環境とが本来接触することがない作業についても本発明を適用して接触状態の検出が行えることは言うまでもない。
【産業上の利用可能性】
【００１６】
本発明は、ロボットが外環境との接触力を検出する場合に、ノイズを除去して高感度・高精度に検出可能な産業用ロボットの制御装置を提供できる。
【符号の説明】
【００１７】
１  ロボット
２、２ａ〜２ｄ  歪みセンサ
３  制御装置
４  作業プログラム
５  作業プログラム実行制御部
６  位置速度制御部
７  アンプ部
８  作業状況監視部
９  モード切り替えスイッチ
１０  ハンド
１１  部品Ａ
１２  部品Ｂ
８１  初期データ収録部
８２  周波数解析部
８２ａ  領域分割モジュール
８２ｂ  周波数解析モジュール
８３  フィルタリングパターン生成部
８４  フィルタリングパターン記憶部
８５  フィルタ処理部
８６  状態認識部
８７  表示部
８８  手動調整手段
８９  基準波形記憶部
９０  フィルタリングパターン設定部
９１  停止手段
【図１】
2011110630.tif 000005
【図２】
2011110630.tif 000006
【図３】
2011110630.tif 000007
【図４】
2011110630.tif 000008
【図５】
2011110630.tif 000009
【図６】
2011110630.tif 000010
【図７】
2011110630.tif 000011
【図８】
2011110630.tif 000012
【図９】
2011110630.tif 000013
【図１０】
2011110630.tif 000014