IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファナック株式会社の特許一覧

特許7602016ウィービング動作のための信号を生成する装置、制御装置、及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】ウィービング動作のための信号を生成する装置、制御装置、及び方法
(51)【国際特許分類】
   G05B 19/4093 20060101AFI20241210BHJP
   B25J 9/22 20060101ALI20241210BHJP
   B23K 9/12 20060101ALI20241210BHJP
【FI】
G05B19/4093 M
B25J9/22 A
B23K9/12 331K
B23K9/12 350D
【請求項の数】 10
(21)【出願番号】P 2023511085
(86)(22)【出願日】2022-03-23
(86)【国際出願番号】 JP2022013687
(87)【国際公開番号】W WO2022210202
(87)【国際公開日】2022-10-06
【審査請求日】2023-10-10
(31)【優先権主張番号】P 2021058154
(32)【優先日】2021-03-30
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】渡邊 大吾
【審査官】亀田 貴志
(56)【参考文献】
【文献】特開2014-083605(JP,A)
【文献】国際公開第2020/261581(WO,A1)
【文献】特開2020-097083(JP,A)
【文献】特開2019-028909(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18 - 19/46
B25J 9/22
B23K 9/12
(57)【特許請求の範囲】
【請求項1】
ロボットによってツールを予め定めた作業経路に沿って移動させるとともに該ツールを該作業経路と交差する方向へ揺動させるウィービング動作のための信号を生成する装置であって、
前記ロボットに前記ツールを揺動させるためのウィービング信号のパラメータの入力を受け付ける入力受付部と、
前記入力受付部が受け付けた前記パラメータを有する前記ウィービング信号を生成する信号生成部と、
前記信号生成部が生成した前記ウィービング信号に対し高周波成分を除去するためのフィルタ処理を実行した場合の該ウィービング信号の前記パラメータを、フィルタ処理後パラメータとして取得するパラメータ取得部と、
前記フィルタ処理後パラメータが、予め定めた条件を満たすか否かを判定する条件判定部と、
前記条件判定部が前記条件を満たさないと判定した場合に、該条件を満たすように前記入力受付部が受け付けた前記パラメータを調整するパラメータ調整部と、を備え、
前記信号生成部は、前記パラメータ調整部が調整した前記パラメータを有する前記ウィービング信号を生成する、装置。
【請求項2】
前記条件判定部は、前記フィルタ処理後パラメータが所定の許容範囲外である場合に、前記条件を満たさないと判定し、
前記パラメータ調整部は、前記フィルタ処理後パラメータを、前記入力受付部が受け付けた前記パラメータに一致させることができるように、該パラメータを調整する、請求項1に記載の装置。
【請求項3】
前記パラメータ調整部は、前記入力受付部が受け付けた複数の前記パラメータの優先順位に従って、該優先順位の高い第1の前記パラメータに対応する前記フィルタ処理後パラメータを該第1のパラメータに一致させる一方、該第1のパラメータよりも前記優先順位が低い第2の前記パラメータに対応する前記フィルタ処理後パラメータが該第2のパラメータと異なることを許容するように、前記複数のパラメータを調整する、請求項2に記載の装置。
【請求項4】
前記入力受付部は、前記優先順位の入力をさらに受け付け、
前記パラメータ調整部は、前記入力受付部が受け付けた前記優先順位に従って、前記複数のパラメータを調整する、請求項3に記載の装置。
【請求項5】
前記フィルタ処理後パラメータを有する前記ウィービング信号に従って前記ロボットに前記ウィービング動作を実行させたときの該ロボットの動作状態を表す動作状態パラメータを取得する動作取得部をさらに備え、
前記条件判定部は、前記動作取得部が取得した前記動作状態パラメータが所定の許容値を超えた場合に、前記条件を満たさないと判定し、
前記パラメータ調整部は、前記動作状態パラメータが前記許容値を超えないように、前記パラメータを調整する、請求項1~4のいずれか1項に記載の装置。
【請求項6】
前記動作状態パラメータは、前記ロボットの速度、加速度、及び躍度のうちの少なくとも1つを含む、請求項5に記載の装置。
【請求項7】
前記パラメータは、
前記ウィービング信号の振幅、
前記ウィービング信号の周波数、
前記ウィービング信号の位相、及び
前記ウィービング動作における前記ツールの揺動動作の端点に該ツールを維持する時間を定める端点停止時間、の少なくとも1つを含む、請求項1~6のいずれか1項に記載の装置。
【請求項8】
請求項1~7のいずれか1項に記載の装置を備え、前記ウィービング動作を実行させるように前記ロボットを制御する、制御装置。
【請求項9】
前記ロボットに前記ツールを前記作業経路の方向へ移動させるための主動作指令を生成する主動作指令生成部と、
前記信号生成部が生成した前記ウィービング信号に対し前記フィルタ処理を実行するフィルタ部と、
前記主動作指令に、前記フィルタ部で前記フィルタ処理が実行された前記ウィービング信号を適用することで、前記ロボットに前記ウィービング動作を実行させるためのウィービング動作指令を生成するウィービング動作指令生成部と、をさらに備える、請求項8に記載の制御装置。
【請求項10】
ロボットによってツールを予め定めた作業経路に沿って移動させるとともに該ツールを該作業経路と交差する方向へ揺動させるウィービング動作のための信号を生成する方法であって、
プロセッサが、
前記ロボットに前記ツールを揺動させるためのウィービング信号のパラメータの入力を受け付け、
受け付けた前記パラメータを有する前記ウィービング信号を生成し、
生成した前記ウィービング信号に対し高周波成分を除去するためのフィルタ処理を実行した場合の該ウィービング信号の前記パラメータを、フィルタ処理後パラメータとして取得し、
前記フィルタ処理後パラメータが、予め定めた条件を満たすか否かを判定し、
前記条件を満たさないと判定した場合に、該条件を満たすように、受け付けた前記パラメータを調整し、
調整した前記パラメータを有する前記ウィービング信号を生成する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ウィービング動作のための信号を生成する装置、制御装置、及び方法に関する。
【背景技術】
【0002】
ロボットにウィービング動作を実行させる制御装置が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2014-83605号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、ロボットにウィービング動作を教示する作業を簡単化しつつ、オペレータが所望する態様で該ロボットに該ウィービング動作を実行可能とする技術が求められている。
【課題を解決するための手段】
【0005】
本開示の一態様において、ロボットによってツールを予め定めた作業経路に沿って移動させるとともに該ツールを該作業経路と交差する方向へ揺動させるウィービング動作のための信号を生成する装置は、ロボットにツールを揺動させるためのウィービング信号のパラメータの入力を受け付ける入力受付部と、入力受付部が受け付けたパラメータを有するウィービング信号を生成する信号生成部と、信号生成部が生成したウィービング信号に対し高周波成分を除去するためのフィルタ処理を実行した場合の該ウィービング信号のパラメータを、フィルタ処理後パラメータとして取得するパラメータ取得部と、フィルタ処理後パラメータが、予め定めた条件を満たすか否かを判定する条件判定部と、条件判定部が条件を満たさないと判定した場合に、該条件を満たすように入力受付部が受け付けたパラメータを調整するパラメータ調整部とを備える。信号生成部は、パラメータ調整部が調整したパラメータを有するウィービング信号を生成する。
【0006】
ロボットによってツールを予め定めた作業経路に沿って移動させるとともに該ツールを該作業経路と交差する方向へ揺動させるウィービング動作のための信号を生成する方法は、プロセッサが、ロボットにツールを揺動させるためのウィービング信号のパラメータの入力を受け付け、受け付けたパラメータを有するウィービング信号を生成し、生成したウィービング信号に対し高周波成分を除去するためのフィルタ処理を実行した場合の該ウィービング信号のパラメータを、フィルタ処理後パラメータとして取得し、フィルタ処理後パラメータが、予め定めた条件を満たすか否かを判定し、条件を満たさないと判定した場合に、該条件を満たすように、受け付けたパラメータを調整し、調整したパラメータを有するウィービング信号を生成する。
【発明の効果】
【0007】
本開示によれば、オペレータが任意に定めた条件を満足するウィービング信号を生成することができるように、ウィービング信号のパラメータを自動で調整することが可能となる。これにより、オペレータが所望する態様でロボットにウィービング動作を実行させることができるとともに、所望のウィービング動作をロボットに教示する作業を簡単化することができる。
【図面の簡単な説明】
【0008】
図1】一実施形態に係るロボットシステムの図である。
図2図1に示すロボットシステムのブロック図である。
図3図1に示すロボットが実行するウィービング動作の軌道を示す。
図4図1に示す制御装置においてウィービング動作指令を生成する機能のブロック図である。
図5】ウィービング信号の波形を示す。
図6図5に示すウィービング信号にフィルタ処理を実行した場合の波形を示す。
図7】ウィービング信号を生成する方法の一例を示すフローチャートである。
図8】端点停止時間が設定されたウィービング信号の波形を示す。
図9】フィルタ処理後パラメータを演算により求める方法を説明するための図である。
図10】ウィービング信号のパラメータとして振幅が調整された場合の波形を示す。
図11図10に示すパラメータ調整後のウィービング信号にフィルタ処理を実行した場合の波形を示す。
図12】ウィービング信号のパラメータとして端点停止時間が設定された場合の波形を示す。
図13図12に示すパラメータ調整後のウィービング信号にフィルタ処理を実行した場合の波形を示す。
図14】端点停止時間が設定されたウィービング信号の波形を示す。
図15図14に示すウィービング信号のパラメータとして周波数が調整された場合の波形を示す。
図16】ウィービング信号のパラメータとして振幅及び周波数が調整された場合の波形を示す。
図17図16に示すパラメータ調整後のウィービング信号にフィルタ処理を実行した場合の波形を示す。
図18】ウィービング信号を生成する方法の他の例を示すフローチャートである。
図19】ウィービング信号にフィルタ処理を実行することで位相が変化した波形を示す。
図20】ウィービング信号のパラメータとして、一部の波形の振幅を調整することで、他の部分の波形の周波数を調整した場合のウィービング信号の波形を示す。
図21図20に示すパラメータ調整後のウィービング信号にフィルタ処理を実行した場合の波形を示す。
図22】ウィービング動作の軌道の他の例を示す。
図23図22に示す軌道でロボットにウィービング動作を実行させるためのウィービング信号の波形を示す。
【発明を実施するための形態】
【0009】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、図1及び図2を参照して、一実施形態に係るロボットシステム10について説明する。ロボットシステム10は、ロボット12、及び制御装置14を備える。
【0010】
本実施形態においては、ロボット12は、ワークWに対して溶接作業を実行する。具体的には、ロボット12は、垂直多関節型ロボットであって、ロボットベース16、旋回胴18、下腕部20、上腕部22、手首部24、及びツール26を有する。ロボットベース16は、作業セルの床の上に固定される。旋回胴18は、鉛直軸周りに回動可能となるようにロボットベース16に設けられている。
【0011】
下腕部20は、水平軸周りに回動可能となるように旋回胴18に設けられている。上腕部22は、下腕部20の先端部に回動可能に設けられている。手首部24は、上腕部22の前端部に、互いに直交する2つの軸の周りに回動可能となるように設けられた手首ベース24aと、該手首ベース24aに回動可能に設けられた手首フランジ24bとを有する。
【0012】
ツール26は、手首フランジ24bに着脱可能に取り付けられる。本実施形態においては、ツール26は、溶接トーチであって、制御装置14からの指令に応じてワークWとの間で放電を発生させ、ワイヤ材送給装置(図示せず)から送給された溶接ワイヤを溶融させてワークWを溶接する。なお、ツール26は、レーザ光を出射して該レーザ光によって溶接ワイヤを溶融させてワークWを溶接するレーザ加工ヘッドであってもよい。
【0013】
ロボットベース16、旋回胴18、下腕部20、上腕部22、及び手首部24には、複数のサーボモータ28(図2)がそれぞれ内蔵されている。これらサーボモータ28は、制御装置14からの指令に応じてロボット12の各可動要素(すなわち、旋回胴18、下腕部20、上腕部22、手首部24、手首フランジ24b)を回動させ、これによりツール26を移動させる。
【0014】
制御装置14は、ロボット12の動作を制御する。図2に示すように、制御装置14は、プロセッサ30、メモリ32、及びI/Oインターフェース34を有するコンピュータである。プロセッサ30は、CPU又はGPU等を有し、メモリ32、及びI/Oインターフェース34と、バス36を介して通信可能に接続され、これらコンポーネントと通信しつつ、後述する各種機能のための演算処理を行う。
【0015】
メモリ32は、RAM又はROM等を有し、プロセッサ30が実行する演算処理で利用される各種データ、及び演算処理の途中で生成される各種データを、一時的又は恒久的に記憶する。I/Oインターフェース34は、例えば、イーサネット(登録商標)ポート、USBポート、光ファイバコネクタ、又はHDMI(登録商標)端子を有し、プロセッサ30からの指令の下、外部機器との間でデータを有線又は無線で通信する。本実施形態においては、ロボット12のサーボモータ28は、I/Oインターフェース34に通信可能に接続されている。
【0016】
制御装置14には、入力装置38及び表示装置40が設けられている。入力装置38は、キーボード、マウス、又はタッチパネル等を有し、オペレータからデータ入力を受け付ける。表示装置40は、液晶ディスプレイ又は有機ELディスプレイ等を有し、各種データを表示する。
【0017】
入力装置38、及び表示装置40は、I/Oインターフェース34に、有線又は無線で通信可能に接続されてもよい。また、入力装置38及び表示装置40は、制御装置14の筐体とは別体として設けられてもよいし、又は、制御装置14の筐体に一体に組み込まれてもよい。
【0018】
図1に示すように、ロボット12には、ロボット座標系C1及びツール座標系C2が設定される。ロボット座標系C1は、ロボット12の各可動要素を自動制御するための座標系である。本実施形態においては、ロボット座標系C1は、その原点がロボットベース16の中心に配置され、そのz軸が旋回胴18の旋回軸に一致するように、ロボット12に対して設定されている。なお、以下の説明においては、便宜上、ロボット座標系C1のx軸プラス方向を右方、y軸プラス方向を前方、z軸プラス方向を上方として言及する。
【0019】
ツール座標系C2は、ロボット座標系C1においてツール26の位置を自動制御するための座標系であって、ツール26に対して設定される。なお、本稿において、「位置」とは、位置及び姿勢を意味することがある。本実施形態においては、ツール座標系C2は、その原点が、ツール26の作業点(例えば、ツール26が溶接ワイヤを溶融させる点)に位置し、そのz軸方向が、ツール26の作業方向(例えば、溶接トーチ先端の中心軸線の方向、又はレーザ光の出射方向)に一致するように、ツール26に対して設定されている。
【0020】
ツール26を移動させるとき、プロセッサ30は、ロボット座標系C1においてツール座標系C2を設定し、ツール26を、設定したツール座標系C2によって表される位置に位置決めするように、ロボット12の各サーボモータ28へ指令を送信しロボット12の各可動要素を動作させる。こうして、プロセッサ30は、ロボット12の動作によってツール26をロボット座標系C1の任意の位置に位置決めする。
【0021】
次に、図3を参照して、ワークWに対する溶接作業時にプロセッサ30がロボット12に実行させるウィービング動作について説明する。ウィービング動作は、ワークWを溶接したときに該ワークWに形成されるビードの幅を広げるために実行される。具体的には、ウィービング動作において、プロセッサ30は、ロボット12によってツール26を予め定められた作業経路WPに沿って移動させるとともに、該ツール26を該作業経路WPと交差する方向へ揺動させる。
【0022】
図3に示す例では、作業経路WPが、ロボット座標系C1のx軸方向に直線状に延びるように、ワークW上に設定されている。この例の場合、プロセッサ30は、ウィービング動作において、ロボット12によってツール26を作業経路WPに沿って右方へ移動させるととともに、ツール26を、前側の端点P1と、後側の端点P2との間で前後方向へ揺動させる。その結果、ツール26は、ワークWに対し、波線状の軌道TRに沿って移動しつつ、該ワークWを溶接することになる。
【0023】
プロセッサ30は、ウィービング動作でツール26を揺動させるためのウィービング信号WSを生成する。以下、図4図6を参照して、ウィービング信号WSの生成について、説明する。図4に示すように、制御装置14は、主動作指令生成部42、信号生成部44、フィルタ部46及び48、及びウィービング動作指令生成部50を有する。主動作指令生成部42は、上述のウィービング動作においてロボット12にツール26を作業経路WPの方向へ移動させるための主動作指令CM1を生成する。
【0024】
フィルタ部46は、デジタルフィルタ(FIRフィルタ、又はIIRフィルタ)であって、主動作指令生成部42が生成した主動作指令CM1に対し、高周波成分を除去するためのフィルタ処理FR1を、所定のフィルタ時間τ1で実行する。例えば、フィルタ部46は、主動作指令CM1のデジタル信号に対し、フィルタ時間τ1毎に移動平均処理を行うことで、ローパスフィルタ処理としてのフィルタ処理FR1を実行する。
【0025】
代替的には、フィルタ部46は、フィルタ処理FR1を、バンドパスフィルタ処理、又はノッチフィルタ処理として実行するように構成されてもよい。フィルタ部46は、主動作指令CM1に対してフィルタ処理FR1を実行することで、主動作指令CM2を生成し、ウィービング動作指令生成部50へ出力する。
【0026】
信号生成部44は、ウィービング信号WS1を生成する。ウィービング信号WS1の一例を図5に示す。なお、図5の縦軸は、ツール26を前後方向へ揺動させる振幅A(換言すれば、作業経路WPからの距離A)を示し、横軸は、時間tを示す。図5に示す例では、ウィービング信号WS1は、振幅A1を有する周期T1(つまり、周波数f1=1/T1)の三角波であって、基準時間t(例えば、ウィービング動作の開始時間)に対する位相φ1はゼロとなっている。これら振幅A1、周波数f1(又は周期T1)、及び位相φ1は、ウィービング信号WS1を規定するパラメータPR1を構成する。
【0027】
再度、図4を参照して、フィルタ部48は、上述のフィルタ部46と同様のデジタルフィルタであって、信号生成部44が生成したウィービング信号WS1に対し、高周波成分を除去するためのフィルタ処理FR2を所定のフィルタ時間τ2で実行する。フィルタ処理FR2は、上述のフィルタ処理FR1と同じであってもよいし、異なってもよい。
【0028】
例えば、フィルタ部48は、デジタル信号としてのウィービング信号WS1に対し、フィルタ時間τ2毎に移動平均処理を行うことで、ローパスフィルタ処理としてのフィルタ処理FR2を実行する。代替的には、フィルタ部48は、フィルタ処理FR2を、バンドパスフィルタ処理、又はノッチフィルタ処理として実行するように構成されてもよい。
【0029】
フィルタ部48によってウィービング信号WS1に対しフィルタ処理FR2が実行されると、ウィービング信号WS1が変化して、図6に実線で示すウィービング信号WS2が生成される。このウィービング信号WS2は、振幅A2、周期T2(周波数f2=1/T2)、及び位相φ2を含むパラメータPR2を有している。
【0030】
ウィービング信号WS2のパラメータPR2(振幅A2、周波数f2、位相φ2)のうちの少なくとも1つは、フィルタ処理FR2によって、ウィービング信号WS1のパラメータPR1(振幅A1、周波数f1、位相φ1)から変化し得る。なお、以下の説明においては、パラメータPR2を、フィルタ処理後パラメータPR2として言及することがある。
【0031】
なお、図6に示す例では、フィルタ処理FR2の結果、三角波のウィービング信号WS1が、三角関数の波形に類似するウィービング信号WS2に変化する(すなわち、高周波成分が除去されることで周波数特性が変化する)とともに、ウィービング信号WS2の振幅A2が減衰してウィービング信号WS1の振幅A1よりも小さくなっている(A2<A1)。フィルタ部48は、生成したウィービング信号WS2をウィービング動作指令生成部50に出力する。
【0032】
再度、図4を参照して、ウィービング動作指令生成部50は、主動作指令CM2にウィービング信号WS2を適用することで、ロボット12にウィービング動作を実行させるためのウィービング動作指令CM3を生成する。具体的には、ウィービング動作指令生成部50は、加算器であって、主動作指令CM2にウィービング信号WS2を加算することでウィービング動作指令CM3(=CM2+WS2)を生成する。
【0033】
ウィービング動作指令生成部50によって生成されたウィービング動作指令CM3は、I/Oインターフェース34、及びサーボアンプ(図示せず)を通して、ロボット12のサーボモータ28へ出力される。このウィービング動作指令CM3に従って、ロボット12は、ウィービング動作を実行し、ツール26を図3に示す軌道TRに沿って移動させる。
【0034】
なお、主動作指令生成部42、信号生成部44、フィルタ部46及び48、及びウィービング動作指令生成部50は、プロセッサ30が実行するコンピュータプログラムによって実現される機能モジュールであり得る。この場合、プロセッサ30が、主動作指令生成部42、信号生成部44、フィルタ部46及び48、及びウィービング動作指令生成部50として機能する。代替的には、信号生成部44、フィルタ部46及び48、及びウィービング動作指令生成部50の少なくとも1つ(例えば、フィルタ部46及び48)は、アナログ回路として制御装置14に実装されてもよい。
【0035】
次に、図7を参照して、ウィービング信号WSを生成する方法について、さらに詳細に説明する。図7に示すフローは、例えば、制御装置14が起動したときに開始される。ステップS1において、プロセッサ30は、ウィービング信号WS1(図5)のパラメータPR1、及び該パラメータPR1の優先順位POの入力を受け付けたか否かを判定する。
【0036】
具体的には、プロセッサ30は、図7のフローの開始後、パラメータPR1及び優先順位POを入力するための入力画像を生成し、表示装置40に表示させる。オペレータは、表示装置40を視認しつつ、入力装置38を操作して、パラメータPR1を入力する。ここで、オペレータが入力可能なパラメータPR1は、上述の振幅A1、周波数f1、及び位相φ1に加えて、端点停止時間tを含む。
【0037】
この端点停止時間tは、ウィービング動作におけるツール26の揺動動作の端点P1及びP2(すなわち、図5において振幅AがA1及び-A1になる位置)に該ツール26を維持する時間を規定する。端点停止時間tが設定されたときのウィービング信号WS1の一例を、図8に示す。
【0038】
例えば、オペレータが、パラメータPR1として、振幅A1、周波数f1、及び端点停止時間t、及び位相φ1=0を入力したとする。この場合、プロセッサ30は、図5に示す振幅A1及び周波数f1を有する三角波としてのウィービング信号WS1の傾きを維持しつつ、該ウィービング信号WS1における振幅A1及び-A1の点(三角波の頂点)に、端点停止時間tを設定する。その結果、ウィービング信号WS1は、図8に示す台形波として設定されることになる。したがって、この場合、ウィービング信号WS1の周波数fは、オペレータが入力した周波数f1から、周波数f3(=1/T3<f1 T3=T1+2t)へ変更されることになる。
【0039】
プロセッサ30は、入力装置38を通して、パラメータPR1の入力を受け付ける。このように、本実施形態においては、プロセッサ30は、ウィービング信号WS1のパラメータPR1の入力を受け付ける入力受付部52(図2)として機能する。プロセッサ30は、受け付けたパラメータPR1を、ウィービング信号WS1のパラメータ設定値PR1として、メモリ32に記憶する。以下、プロセッサ30が、図5に示すウィービング信号WS1のパラメータPR1(振幅A1、周波数f1、位相φ1=0、端点停止時間t=0)の入力を受け付けた場合について、説明する。
【0040】
オペレータは、入力装置38を操作して、パラメータPR1とともに、優先順位POを入力する。ここで、図6を参照して説明したように、フィルタ処理FR2によって、元のウィービング信号WS1のパラメータPR1(例えば、振幅A1)が変化し得る。優先順位POは、パラメータPR1が変化した場合に、ステップS1でオペレータが入力した値を優先して再現すべきパラメータPR1の優先順位を定める。
【0041】
例えば、このステップS1において、オペレータは、パラメータPR1として振幅A1、周波数f1、位相φ、及び端点停止時間tを入力するとともに、振幅A1の値を優先して再現すべきと定める優先順位PO(つまり、振幅A1の優先順位が1位であると定める優先順位PO)を入力する。プロセッサ30は、入力受付部52として機能して、優先順位POの入力を受け付ける。
【0042】
ステップS2において、プロセッサ30は、フィルタ処理FR2のフィルタ時間τ2を決定する。具体的には、プロセッサ30は、固有フィルタ時間τを読み出す。この固有フィルタ時間τは、ロボット12の種類毎に固有に定められ、メモリ32に予め格納される。一方、プロセッサ30は、ステップS1で受け付けたパラメータPR1に基づいて、許容フィルタ時間τを求める。
【0043】
この許容フィルタ時間τは、フィルタ処理FR2によって元のウィービング信号WS1のパラメータPR1(例えば、振幅A1)から変化したフィルタ処理後パラメータPR2(例えば、振幅A2)を所定の許容範囲内(例えば、振幅A2が振幅A1の50%以上の範囲)に収めることができるフィルタ時間である。
【0044】
例えば、プロセッサ30は、許容フィルタ時間τを、τ=T1/2として求めてもよい。そして、プロセッサ30は、固有フィルタ時間τと許容フィルタ時間τのうちの長い方を、フィルタ時間τ2として決定する。このように、本実施形態においては、プロセッサ30は、受け付けたパラメータPR1に基づいて、フィルタ時間τ2を決定する。
【0045】
ステップS3において、プロセッサ30は、信号生成部44として機能し、ステップS1で受け付けたパラメータPR1を有するウィービング信号WS1を生成する。これにより、プロセッサ30は、図5に示すような、振幅A1、周波数f1、位相φ1(=0)、及び端点停止時間t(=0)を有するウィービング信号WS1を生成する。
【0046】
ステップS4において、プロセッサ30は、フィルタ処理後パラメータPR2を取得する。フィルタ処理後パラメータPR2は、ステップS3で生成したウィービング信号WS1に対しフィルタ処理FR2を実行した場合の、該ウィービング信号WS1の変化後のパラメータPR2である。一例として、プロセッサ30は、ステップS4において、上述のステップS3で生成したウィービング信号WS1に対し、実際のフィルタ処理FR2を模擬的に実行することで、フィルタ処理後パラメータPR2を取得する。
【0047】
他の例として、プロセッサ30は、ステップS1で受け付けたパラメータPR1、及びステップS2で決定したフィルタ時間τ2に基づいて、フィルタ処理後パラメータPR2を演算により求めてもよい。以下、図9を参照して、フィルタ処理後パラメータPR2を演算により求める方法について説明する。
【0048】
図9は、振幅A1、周波数f3(=1/T3=1/(T1+2t))、位相φ1(=0)、及び端点停止時間tを有するウィービング信号WS1を示しており、このウィービング信号WS1に対し、フィルタ処理FR2のフィルタ時間τ2が設定されている。この例において、プロセッサ30は、ウィービング信号WS1に対しフィルタ処理FR2を行うことによって得られるウィービング信号WS2の振幅A2を、以下の式(1)から、演算により求めることができる。
A2=A+A(1+t/τ2)/2 ・・・(1)
【0049】
ここで、式(1)中のA及びAは、以下の式(2)及び(3)からそれぞれ求められる。
=A1(2(τ2-t)/T1) ・・・(2)
=A1-A=A1-A1(2(τ2-t)/T1) ・・・(3)
【0050】
なお、本実施形態においては、ステップS1で受け付けた端点停止時間tがゼロであるので、上述の式(1)~(3)においてt=0が代入されることになる。このように、プロセッサ30は、フィルタ処理後パラメータPR2として、式(1)から振幅A2を演算により求めることができる。すなわち、この場合、プロセッサ30は、ステップS3で生成したウィービング信号WS1に対し実際のフィルタ処理FR2を実行することなく、フィルタ処理後パラメータPR2を取得できる。
【0051】
このように、本実施形態においては、プロセッサ30は、フィルタ処理後パラメータPR2を取得するパラメータ取得部54(図2)として機能する。なお、本実施形態においては、ウィービング信号WS1にフィルタ処理FR2を実行したとしても、周波数f1及び位相φ1は変化しないとする。よって、フィルタ処理後パラメータPR2の周波数f2及び位相φ2は、周波数f1及びφ1と同じとなる(f2=f1、φ2=φ1)。
【0052】
再度、図7を参照して、ステップS5において、プロセッサ30は、ステップS4で取得したフィルタ処理後パラメータPR2が、予め定めた第1条件CD1を満たすか否かを判定する。本実施形態においては、この第1条件CD1は、フィルタ処理後パラメータPR2が、ステップS1で受け付けたパラメータPR1と実質同じであるという条件として、定められる。
【0053】
例えば、フィルタ処理後パラメータPR2が振幅A2である場合、プロセッサ30は、振幅A2が、振幅A1を基準として定められた許容範囲(例えば、振幅A1の90%以上の範囲)に収まっている場合は、フィルタ処理後パラメータPR2(振幅A2)がパラメータPR1(振幅A1)と実質同じであると判定し、故に、第1条件CD1を満たしている(すなわち、YES)と判定する。一方、プロセッサ30は、振幅A2が許容範囲外である場合は、フィルタ処理後パラメータPR2がパラメータPR1と異なっていると判定し、故に、第1条件CD1を満たしていない(すなわち、NO)と判定する。
【0054】
なお、プロセッサ30は、このステップS5において、ステップS1で受け付けた優先順位POが高いパラメータPR1(例えば、振幅A1)についてのみ、第1条件CD1を満たしているか否かを判定してもよい。代替的には、プロセッサ30は、ステップS1で受け付けた全てのパラメータPR1(振幅A1、周波数f1、位相φ1、端点停止時間t)について、第1条件CD1を満たしているか否かを判定してもよい。
【0055】
このように、本実施形態においては、プロセッサ30は、フィルタ処理後パラメータPR2が条件CD1を満たすか否かを判定する条件判定部56(図2)として機能する。プロセッサ30は、このステップS5でYESと判定した場合はステップS7へ進む一方、NOと判定した場合はステップS6へ進む。
【0056】
ステップS6において、プロセッサ30は、ステップS1で受け付けたパラメータPR1を、第1条件CD1を満たすように調整する。具体的には、プロセッサ30は、ステップS4で取得したフィルタ処理後パラメータFR2を、ステップS1で受け付けたパラメータPR1に一致させることができるように、該パラメータPR1を調整する。
【0057】
例えば、プロセッサ30は、図10に示すように、ステップS1で受け付けたパラメータPR1としての振幅A1を増加させて、振幅A1’(>A1)とする。その結果、信号生成部44(図4)によって生成されるウィービング信号WS1は、振幅A1’を有するウィービング信号WS1’に変更されることになる。
【0058】
パラメータ調整後のウィービング信号WS1’に対しフィルタ処理FR1を実行した場合に生成されるウィービング信号WS2を、図11に示す。図11に示すように、パラメータPR1の振幅A1を振幅A1’に増大させることで、ウィービング信号WS2の振幅A2を、ステップS1で受け付けた振幅A1に一致させることができる(A2=A1)。
【0059】
こうして、ウィービング信号WS2のフィルタ処理後パラメータPR2(振幅A2、周波数f2、位相φ2)は、ウィービング信号WS1のパラメータPR1と一致することになり(A2=A1、f2=f1、φ2=φ1=0、t=0)、これにより、第1条件CD1を満たすことができる。
【0060】
なお、プロセッサ30は、このステップS6で振幅A1を増加させる変化量を、図6に示す振幅A1から振幅A2への変化量に基づいて定めてもよい。一例として、プロセッサ30は、ステップS4において、図6中の振幅A1と振幅A2との差Δ1(=A1-A2)を取得する。そして、プロセッサ30は、ステップS6において、振幅A1に、Δ1×α(αは所定の係数)を加算することで、振幅A1’(=A1+Δ1×α)とする。他の例として、プロセッサ30は、ステップS4において、図6中の振幅A1と振幅A2との比R1(=A1/A2)を取得する。そして、プロセッサ30は、ステップS6で振幅A1に比R1を乗算することで、振幅A1’(=A1×R1)とする。
【0061】
このようにして、プロセッサ30は、第1条件CD1を満たすように、パラメータPR1(例えば、振幅A1)を、パラメータPR1’(振幅A1’)へ調整する。したがって、本実施形態においては、プロセッサ30は、パラメータ調整部58(図2)として機能する。プロセッサ30は、メモリ32に格納されているパラメータ設定値PR1を、このステップS6で調整した後のパラメータPR1’に更新する。
【0062】
ステップS7において、プロセッサ30は、動作状態パラメータOPRを取得する。動作状態パラメータOPRは、ウィービング信号WS2に従ってロボット12にウィービング動作を実行させたときの該ロボット12の動作状態を表すパラメータであって、例えば、ロボット12の速度V、加速度a、及び躍度jを含む。
【0063】
例えば、ステップS5でYESと判定した後にステップS7を実行する場合、動作状態パラメータOPRは、図6に示すウィービング信号WS2に従ってロボット12にウィービング動作を実行させたときの該ロボット12の速度V、加速度a、及び躍度jを含む。図6に示すウィービング信号WS2は、ステップS1で受け付けたパラメータPR1に対応するフィルタ処理後パラメータPR2(振幅A2<A1、周波数f2=f1、位相φ2=φ1)を有する。
【0064】
一方、ステップS6の後にステップS7を実行する場合、動作状態パラメータOPRは、図11に示すウィービング信号WS2に従ってロボット12にウィービング動作を実行させたときの該ロボット12の速度V、加速度a、及び躍度jを含む。図11のウィービング信号WS2は、ステップS6の調整後のパラメータPR1’に対応するフィルタ処理後パラメータPR2(振幅A2=A1、周波数f2=f1、位相φ2=φ1)を有する。
【0065】
プロセッサ30は、このステップS7において、上述のステップS3及びS4と同様のプロセスを実行することで、図6又は図11のウィービング信号WS2のフィルタ処理後パラメータPR2を取得する。具体的には、ステップS5でYESと判定した後にステップS7を実行する場合、プロセッサ30は、ステップS1で受け付けたパラメータPR1を有するウィービング信号WS1を模擬的に生成し、次いで、該ウィービング信号WS1に対応するフィルタ処理後パラメータPR2(振幅A2<A1、周波数f2=f1、位相φ2=φ1)を取得する。
【0066】
一方、ステップS5でYESと判定した後にステップS7を実行する場合、プロセッサ30は、ステップS6の調整後のパラメータPR1’を有するウィービング信号WS1’を模擬的に生成し、次いで、該ウィービング信号WS1’に対応するフィルタ処理後パラメータPR2(振幅A2=A1、周波数f2=f1、位相φ2=φ1)を取得する。
【0067】
次いで、プロセッサ30は、取得したフィルタ処理後パラメータPR2を有するウィービング信号WS2を模擬的に生成する。これとともに、プロセッサ30は、主動作指令生成部42として機能し、主動作指令CM1を模擬的に生成し、フィルタ部46として機能し、主動作指令CM1にフィルタ処理FR1を実行することで、主動作指令CM2を生成する。
【0068】
そして、プロセッサ30は、ウィービング動作指令生成部50として機能し、生成したウィービング信号WS2を主動作指令CM2に適用することで、ウィービング動作指令CM3(=CM2+WS2)を模擬的に生成する。プロセッサ30は、模擬的に生成したウィービング動作指令CM3に基づいて、該ウィービング動作指令CM3に従ってロボット12にウィービング動作を実行させたときの該ロボット12の速度V、加速度a、及び躍度jを求める。
【0069】
このとき、プロセッサ30は、ウィービング動作指令CM3に従ってロボット12にウィービング動作を実行させるシミュレーションを行うことで、速度V、加速度a、及び躍度jを取得してもよい。このように、本実施形態においては、プロセッサ30は、動作状態パラメータOPR(速度V、加速度a、躍度j)を取得する動作取得部60(図2)として機能する。
【0070】
ステップS8において、プロセッサ30は、条件判定部56として機能し、フィルタ処理後パラメータPR2が、予め定めた第2条件CD2を満たすか否かを判定する。本実施形態においては、この第2条件CD2は、ステップS7で取得した動作状態パラメータOPR(速度V、加速度a、躍度j)が所定の許容値を超えないという条件として、定められる。
【0071】
例えば、プロセッサ30は、ステップS7で取得した速度V、加速度a、及び躍度jの各々について、許容値を超えたか否かを判定する。そして、プロセッサ30は、速度V、加速度a、及び躍度jの少なくとも1つが、対応する許容値を超えた場合に、ステップS7で動作状態パラメータOPRを取得したウィービング信号WS2のフィルタ処理後パラメータPR2が、第2条件CD2を満たしていない(すなわち、NO)と判定する。
【0072】
一方、プロセッサ30は、速度V、加速度a、及び躍度jの全てが、対応する許容値を超えない場合には、フィルタ処理後パラメータPR2が第2条件CD2を満たしている(すなわち、YES)と判定する。速度V、加速度a、及び躍度jの許容値は、メモリ32に予め格納される。
【0073】
なお、プロセッサ30は、ステップS7で、1つの動作状態パラメータOPR(例えば、速度V)のみを取得し、このステップS8において、該1つの動作状態パラメータOPRが許容値を超えた否かを判定してもよい。プロセッサ30は、このステップS8でYESと判定した場合はステップS10へ進む一方、NOと判定した場合はステップS9へ進む。
【0074】
ステップS9において、プロセッサ30は、パラメータ調整部58として機能し、第2条件CD2を満たすように、パラメータPR1又はPR1’を調整する。具体的には、プロセッサ30は、ステップS1で受け付けた優先順位POに従って、パラメータPR1又はPR1’を以下のように調整する。
【0075】
すなわち、プロセッサ30は、優先順位POの高い第1のパラメータPR1又はPR1’に対応するフィルタ処理後パラメータPR2を、該第1のパラメータPR1又はPR1’に一致させる一方、優先順位が低い第2のパラメータPR1又はPR1’に対応するフィルタ処理後パラメータPR2が該第2のパラメータPR1又はPR1’と異なることを許容するように、パラメータPR1又はPR1’を調整する。
【0076】
以下、プロセッサ30が、ステップS1で、振幅A1を優先して再現すべきと定める優先順位POの入力を受け付けた場合について説明する。例えば、ステップS5でYESと判定した後に(つまり、ステップS6を実行せずに)ステップS9を実行する場合、プロセッサ30は、図5に示すウィービング信号WS1のパラメータPR1を、端点停止時間t(>0)を設定するように、調整する。図12に、このように端点停止時間tが設定されたウィービング信号WS1’を示す。
【0077】
図12に示すウィービング信号WS1’の周波数f1’(=1/T1’)は、元のウィービング信号WS1の周波数f1よりも低くなる。すなわち、この場合、プロセッサ30は、パラメータPR1を、振幅A1、周波数f1’、位相φ(=0)、及び端点停止時間t(>0)を有するパラメータPR1’に調整する。
【0078】
調整後のパラメータPR1’を有するウィービング信号WS1’にフィルタ処理FR2を実行した場合、図13に示すウィービング信号WS2が得られる。このウィービング信号WS2は、フィルタ処理後パラメータPR2として、振幅A2=A1を有することになる。
【0079】
このように、端点停止時間tを長くするように調整することで、フィルタ処理後パラメータPR2の振幅A2として、振幅A1を再現することができる。このときに調整する端点停止時間tは、第2条件CD2を満たすことができるように、定められる。例えば、端点停止時間tは、フィルタ時間τ2に一致する値(又は、フィルタ時間τ2に所定の係数を乗算した値)として、定められ得る。
【0080】
一方、図7のステップS5でNOと判定した後(つまり、ステップS6の実行後)にステップS9を実行する場合、プロセッサ30は、まず、ステップS6で調整したパラメータPR1’をキャンセルする(換言すれば、この時点でパラメータ設定値PR1として記憶されているパラメータPR1’を削除する)。
【0081】
そして、プロセッサ30は、図12で説明した方法と同様に、ステップS1で受け付けたパラメータPR1を、端点停止時間tを設定するように調整する。その結果、ステップS9で新たに調整されたパラメータPR1’を有するウィービング信号WS1’(図12)が生成されることになり、その結果、パラメータPR2の振幅A2として、振幅A1を再現することができる。
【0082】
なお、プロセッサ30は、端点停止時間tを設定することなく、振幅A1を再現することもできる。例えば、ステップS5でNOと判定した後にステップS9を実行する場合、プロセッサ30は、ステップS6で調整した後のパラメータPR1’の周波数f1を、f1’に低下させるように、該パラメータPR1’をさらに調整する。
【0083】
すなわち、この場合は、図10に示すウィービング信号WS1’の周期T1が、より長い周期T1’(>T1)に増加することになる。よって、さらなる調整後のパラメータPR1’は、振幅A1’及び周波数f1’を有することになる。このときに周波数f1を周波数f1’に低下させる変化量は、第2条件CD2を満たすことができるように、振幅A1’に基づいて定められてもよい。
【0084】
一例として、第2条件CD2を満たすことができる振幅Aと周波数fとのデータテーブルDTが、メモリ32に予め格納されてもよい。このデータテーブルDTは、実験的手法又はシミュレーションによって、予め作成することができる。そして、プロセッサ30は、振幅A1’に対応する周波数fをデータテーブルDTから読み出して、パラメータPR1’の周波数f1’として決定してもよい。
【0085】
このように、優先順位POに従って振幅A1を優先すべき場合、プロセッサ30は、フィルタ処理後パラメータPR2の振幅A2を、ステップS1で受け付けたパラメータPR1の振幅A1に一致させる一方、フィルタ処理後パラメータPR2の周波数f2が、ステップS1で受け付けた周波数f1と異なることを許容するように、パラメータPR1又はPR1’を調整する。
【0086】
次に、プロセッサ30が、ステップS1で、周波数f1を優先して再現すべきと定める優先順位POの入力を受け付けた場合について説明する。例えば、ステップS5でYESと判定した後にステップS9を実行する場合、プロセッサ30は、図5に示すウィービング信号WS1のパラメータPR1を、振幅A1を減少させるように調整する。また、ステップS5でNOと判定した後にステップS9を実行する場合、プロセッサ30は、図10に示すウィービング信号WS1’のパラメータPR1’を、振幅A1’を減少させるように、さらに調整する。
【0087】
ここで、第2条件CD2を満たすことができるか否か(つまり、動作状態パラメータOPRが許容値を超えないか否か)は、ウィービング信号WS2の振幅A2及び周波数f2の組み合わせに依存する。具体的には、振幅A2が大きくなる程、また、周波数f2が高くなる程、第2条件CD2を満たすことができない可能性が増大する。
【0088】
したがって、このステップS9で周波数f1を低下させるか、又は振幅A1、A1’を減少させることによって、第2条件CD2を満たすように(つまり、動作状態パラメータOPRが許容値を超えないように)、パラメータPR1又はPR1’を調整することができる。プロセッサ30は、メモリ32に格納されているパラメータ設定値PR1を、このステップS9で調整した後のパラメータPR1’に更新する。
【0089】
再度、図7を参照して、ステップS10において、プロセッサ30は、オペレータ、上位コントローラ、又はコンピュータプログラムから作業開始指令を受け付けたか否かを判定する。プロセッサ30は、作業開始指令を受け付けた(すなわち、YES)と判定した場合はステップS10へ進む一方、NOと判定した場合はステップS10をループする。
【0090】
ステップS11において、プロセッサ30は、ウィービング動作指令CM3を生成する。具体的には、プロセッサ30は、図4を参照して説明したように、信号生成部44として機能して、この時点でパラメータ設定値PR1として記憶されているパラメータPR1又はPR1’を用いて、該パラメータPR1又はPR1’を有するウィービング信号WS1(図5)又はWS1’(図10又は図12)を生成する。
【0091】
そして、プロセッサ30は、フィルタ部48として機能し、ウィービング信号WS1又はWS1’に対してフィルタ処理FR2を実行し、ウィービング信号WS2(図6図11、又は図13)を生成する。ここで生成されるウィービング信号WS2のパラメータPR2においては、上述したように、優先順位POが高いパラメータPR1(例えば、振幅A1又は周波数f1)が再現されている。
【0092】
そして、プロセッサ30は、上述したように、ウィービング信号WS2に基づいてウィービング動作指令CM3を生成し、該ウィービング動作指令CM3に従ってロボット12のサーボモータ28を動作させることで、ロボット12に、図3に示すようなウィービング動作を実行させる。これとともに、プロセッサ30は、ツール26を起動して、ワークWを溶接する。
【0093】
再度、図7を参照して、ステップS12において、プロセッサ30は、溶接作業が終了したか否かを判定する。プロセッサ30は、溶接作業が終了した(すなわち、YES)と判定した場合は、図7に示すフローを終了する一方、NOと判定した場合は、ステップS12をループする。こうして、プロセッサ30は、ワークWに対する溶接作業を実行する間、ロボット12にウィービング動作を実行させる。
【0094】
以上のように、本実施形態においては、プロセッサ30は、入力受付部52、信号生成部44、パラメータ取得部54、条件判定部56、パラメータ調整部58、及び動作取得部60として機能して、ウィービング動作のための信号WS1、WS1’、WS2を生成する。
【0095】
したがって、入力受付部52、パラメータ取得部54、信号生成部44、条件判定部56、パラメータ調整部58、及び動作取得部60は、信号WS1、WS1’、WS2を生成する装置70(図2)を構成する。装置70(入力受付部52、パラメータ取得部54、信号生成部44、条件判定部56、パラメータ調整部58、及び動作取得部60)は、プロセッサ30が実行するコンピュータプログラムにより実現される機能モジュールであり得る。
【0096】
この装置70においては、条件判定部56が条件CD1、CD2を満たさないと判定した場合に、パラメータ調整部58が、該条件CD1、CD2を満たすように、入力受付部52が受け付けたパラメータPR1を調整している(ステップS6、S9)。そして、信号生成部44は、パラメータ調整部58がパラメータPR1を調整した場合に、調整後のパラメータPR1’を有するウィービング信号WS1’を生成する(ステップS11)。
【0097】
この構成によれば、オペレータが任意に定めた条件CD1、CD2を満足するウィービング信号WSを生成することができるように、パラメータPR1を自動で調整することが可能となる。これにより、オペレータが所望する態様でロボット12にウィービング動作を実行させることができるとともに、所望のウィービング動作をロボット12に教示する作業を簡単化することができる。
【0098】
また、装置70においては、条件判定部56は、フィルタ処理後パラメータPR2がパラメータPR1と異なる場合に、第1条件CD1を満たさないと判定し(ステップS5でNO)、パラメータ調整部58は、フィルタ処理後パラメータPR2をパラメータPR1に一致させることができるように、該パラメータPR1を調整する(ステップS6)。
【0099】
この構成によれば、調整後のパラメータPR1’を有するウィービング信号WS1’にフィルタ処理FR2を実行することで得られるウィービング信号WS2において、オペレータが入力したパラメータPR1(例えば、振幅A1)を再現することができる。これにより、オペレータが所望するウィービング動作を、ロボット12により効果的に実行させることができる。
【0100】
また、装置70においては、パラメータ調整部58は、複数のパラメータPR1(例えば、振幅A1、周波数f1)の優先順位POに従って、該優先順位POの高い第1のパラメータPR1(例えば、振幅A1)に対応するフィルタ処理後パラメータPR2(振幅A2)を、該第1のパラメータPR1に一致させる一方、優先順位POが低い第2のパラメータPR1(例えば、周波数f1)に対応するフィルタ処理後パラメータPR2(周波数f2)が該第2のパラメータPR1と異なることを許容するように、複数のパラメータPR1を調整している(ステップS9)。
【0101】
そして、入力受付部52は、優先順位POの入力をさらに受け付け、パラメータ調整部58は、入力受付部52が受け付けた優先順位POに従って、複数のパラメータPR1を調整している。この構成によれば、ウィービング信号WS2において、オペレータが入力した優先順位POの高いパラメータPR1を優先的に再現することができるので、ロボット12に実行させるウィービング動作を、オペレータが条件CD1、CD2を考慮して任意に設計することができる。また、オペレータが、生成されるウィービング信号WS2を予想し易くなるので、ウィービング動作時のロボット12の挙動の検証を容易化することができる。
【0102】
また、装置70においては、動作取得部60が動作状態パラメータOPRを取得し(ステップS7)、条件判定部56は、動作取得部60が取得した動作状態パラメータOPRが所定の許容値を超えた場合に、第2条件CD2を満たさないと判定する(ステップS8でNO)。この場合、パラメータ調整部58は、動作状態パラメータOPRが許容値を超えないように、パラメータPR1を調整する(ステップS9)。
【0103】
この構成によれば、ウィービング動作時にロボット12が不適切な動作状態(例えば、速度、加速度、又は躍度が過大となる状態)になるのを防止することができるので、ロボット12に過度な負荷が掛かるのを防止し、以って、ロボット12が故障してしまうのを防止できる。また、ロボット12が不適切な動作状態でウィービング動作を実行することによってワークWに対する溶接品質が低下してしまうのを防止することができる。
【0104】
なお、図8を参照して説明したように、ステップS1においてオペレータが、振幅A1、周波数f1、及び端点停止時間t(>0)を入力した場合、ウィービング信号WS1の周波数fは、オペレータが入力した周波数f1から周波数f3へ変更されることになる。
【0105】
図14に、振幅A1、周波数f1、及び端点停止時間t=0を有する三角波としての信号WS0と、振幅A1、周波数f3(=1/T3)、及び端点停止時間t(>0)を有するウィービング信号WS1を示す。プロセッサ30は、ステップS1で端点停止時間tの入力を受け付けると、周波数f3を、パラメータPR1のパラメータ設定値PR1としてメモリ32に記憶する。
【0106】
そして、プロセッサ30は、上述のステップS4において、フィルタ処理後パラメータPR2として、周波数f3を取得することになる。そうすると、プロセッサ30は、ステップS5で、フィルタ処理後パラメータPR2としての周波数f3が、ステップS1で受け付けた周波数f1と異なっているので、NOと判定することになる。
【0107】
この場合において、オペレータがステップS1で周波数f1を優先して再現すべきと定める優先順位POを入力したとすると、プロセッサ30は、ステップS6において、パラメータ設定値PR1として設定されている周波数f3を、入力を受け付けた周波数f1に変更するように、パラメータPR1を調整する。
【0108】
その結果、信号生成部44によって生成されるウィービング信号WS1は、図15に示すように、周波数f1を有する台形波としてのウィービング信号WS1’に変更されることになる。そして、プロセッサ30は、周波数f1を有する、ウィービング信号WS1’のパラメータPR1’を、パラメータ設定値PR1としてメモリ32に記憶する。
【0109】
なお、装置70から動作取得部60を省略し、図7に示すフローから、ステップS7~S9を省略してもよい。この場合、プロセッサ30は、図7に示すフローにおいて、ステップS6の後に、ステップS10を実行する。このフローにおいて、オペレータがステップS1で振幅A1を優先して再現すべきと定める優先順位POを入力したとする。この場合において、プロセッサ30は、ステップS6において、図12を参照して説明した方法で、端点停止時間tを長くするように、パラメータPR1を調整してもよい。
【0110】
代替的には、プロセッサ30は、ステップS6において、振幅A1と周波数f1の双方を変化させるように、パラメータPR1を調整してもよい。このようなパラメータ調整方法について、図16を参照して説明する。図16は、プロセッサ30がステップS1で受け付けたパラメータPR1としての振幅A1、周波数f1(=1/T1)、位相φ1(=0)、及び端点停止時間t(=0)を有するウィービング信号WS1が示されている。
【0111】
このようなパラメータPR1を受け付けた場合において、プロセッサ30は、ステップS6において、振幅A1を振幅A1’に増大させるとともに、周波数f1を周波数f1’(=1/T1’<f1)に低下させるように、パラメータPR1を調整する。その結果、信号生成部44は、図16に示すように、調整後のパラメータPR1’(振幅A1’、周波数f1’、位相φ1=0、端点停止時間t=0)を有するウィービング信号WS1’を生成することになる。
【0112】
図17に、図16に示すウィービング信号WS1’に対しフィルタ処理FR2を実行した場合に得られるウィービング信号WS2を示す。このウィービング信号WS2のフィルタ処理後パラメータPR2においては、振幅A2は、ステップS1で受け付けた振幅A1と一致する一方、周波数f2(=f1’)は、ステップS1で受け付けた周波数f1とは異なることになる。
【0113】
このようなパラメータ調整方法において、プロセッサ30は、フィルタ処理後パラメータPR2が第2条件CD2を満たすように、ステップS6で振幅A1及び周波数f1を変化させる変化量を決定してもよい。例えば、プロセッサ30は、上述のデータテーブルDTを用いることで、該変化量を決定してもよい。
【0114】
なお、図7に示すフローからステップS7~S9を省略した場合において、オペレータがステップS1で周波数f1を優先して再現すべきと定める優先順位POを入力したとすると、プロセッサ30は、ステップS6において、パラメータPR1を調整しなくてもよい。
【0115】
具体的には、図6に示すように、ウィービング信号WS1にフィルタ処理FR2を実行すると振幅A1が減衰するが、周波数f1は維持される。よって、プロセッサ30は、ステップS6でパラメータPR1を調整せずとも、優先順位POの高い周波数f1を再現でき得る。
【0116】
次に、図18を参照して、プロセッサ30(装置70)が実行するウィービング信号WSを生成する方法の他の形態について、説明する。なお、図18に示すフローにおいて、図7に示すフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。以下、プロセッサ30が、ステップS1で、振幅A1を優先して再現すべきと定める優先順位POの入力を受け付けた場合について説明する。本実施形態においては、プロセッサ30は、ステップS5又はS8でNOと判定した後、ステップS6’を実行する。
【0117】
ステップS6’において、プロセッサ30は、パラメータ調整部58として機能し、この時点でパラメータ設定値PR1として設定されているパラメータPR1又はPR1’を、条件CD1及びCD2を満たすように調整する。例えば、ステップS5でNOと判定した後にステップS6’を実行する場合、プロセッサ30は、上述のステップS6と同様に、ステップS1で受け付けた振幅A1を増加させて振幅A1’とする。
【0118】
一方、ステップS8でNOと判定した後にステップS6’を実行する場合、プロセッサ30は、例えば、図12に示す端点停止時間tを設定する(つまり、周波数f1又はf1’を変化させる)か、又は、図16を参照して説明したように、振幅A1又はA1’と、周波数f1又はf1’の双方を変化させる。
【0119】
ここで、ステップS8でNOと判定した後にステップS6’を実行する場合において、プロセッサ30は、パラメータPR1又はPR1’を変化させる変化量を、第2条件CD2を満たすことができるように、例えば上述のデータテーブルDTを用いて決定してもよい。代替的には、プロセッサ30は、ステップS6’を実行する毎に、優先順位POの低いパラメータPR1又はPR1’(例えば、周波数f1又はf1’)を、ランダムに変化させてもよい。
【0120】
プロセッサ30は、ステップS6’の実行後、ステップS3へ戻り、ステップS8でYESと判定するまで、ステップS3~S5、S6’、S7及びS8のループを繰り返し実行する。これにより、プロセッサ30は、優先順位POに従って、条件CD1及びCD2を満たすことができるパラメータPR1’を自動で検索することができる。
【0121】
なお、図18に示すフローにおいて、プロセッサ30は、ステップS5において、ステップS1で受け付けた優先順位POの高い(つまり、1位である)パラメータPR1(例えば、振幅A1)についてのみ、第1条件CD1を満たしているか否かを判定してもよい。
【0122】
代替的には、プロセッサ30は、第1回目に実行するステップS5においては、ステップS1で受け付けた全てのパラメータPR1について第1条件CD1を満たしているか否かを判定する一方、第n回目(nは2以上の整数)に実行するステップS5においては、ステップS1で受け付けた優先順位POの高いパラメータPR1(例えば、振幅A1)についてのみ、第1条件CD1を満たしているか否かを判定してもよい。
【0123】
本実施形態によれば、プロセッサ30が、最適なパラメータPR1’を自動で検索するので、オペレータが所望する態様に合致するウィービング動作を効果的に設計できるとともに、このようなウィービング動作をロボット12に教示する作業を簡単化することができる。
【0124】
なお、上述の実施形態においては、フィルタ処理FR2によって位相φ1が変化しない場合について述べた。しかしながら、フィルタ処理FR2の種類によっては、位相φ1が変化する場合がある。このような場合において、ステップS1で位相φ1を優先して再現すべきと定める優先順位POの入力を受け付けた場合、プロセッサ30は、上述のステップS6、S6’又はS9において、位相φ1を再現するように、パラメータPR1、PR1’を調整することになる。
【0125】
以下、図19図21を参照して、位相φ1を再現する方法について、説明する。図19においては、パラメータPR1として振幅A1、周波数f1(=1/T1)、及び位相φ1(=0)を有するウィービング信号WS1を点線で示している。一方、該ウィービング信号WS1に対しフィルタ処理FR2を実行することで得られるウィービング信号WS2を実線で示している。図19に示す例では、ウィービング信号WS2の位相φ2が、ウィービング信号WS1の位相φ1に対し、位相φだけ遅れている(つまり、φ2=φ1-φ)。
【0126】
このような場合において、優先順位POが高い位相φ1を再現するために、プロセッサ30は、図20に示すウィービング信号WS1’を生成するように、パラメータPR1を調整する。図20に示すウィービング信号WS1’は、一点鎖線で示す1波長目の波形WSと、実線で示す2波長目以降の波形WSとを含む。
【0127】
ウィービング信号WS1’の波形WSは、ウィービング信号WS1の1波長目の波形の傾きを維持しつつ、該波形の振幅A1を、振幅A1’に低減させることで、得られる。一方、ウィービング信号WS1’の波形WSは、ウィービング信号WS1の2波長目以降の波形と同じ振幅A1を有している。このように低減された振幅A1’を有する波形WSによって、波形WSの位相φ1’が、元のウィービング信号WS1に対し、位相φだけ進むことになる(つまり、φ1’=φ1+φ)。
【0128】
プロセッサ30は、図20に示すウィービング信号WS1’を生成するために、元のウィービング信号WS1のパラメータPR1を、該ウィービング信号WS1’のパラメータPR1’(振幅A1’、位相φ1’)へ調整する。なお、振幅A1を振幅A1’へ変化させる変化量は、波形WSの位相φ1’が、φ1’=φ1+φとなる値として、定められる。プロセッサ30は、調整後のパラメータPR1’(A1’、φ1’)を、パラメータ設定値PR1としてメモリ32に記憶する。
【0129】
図21に、図20に示すウィービング信号WS1’にフィルタ処理FR2を実行することによって得られるウィービング信号WS2を示す。なお、図21では、波形WSに対応する、1波長目のウィービング信号WS2の波形を一点鎖線で示す一方、波形WSに対応する、2波長目以降のウィービング信号WS2の波形を実線で示している。
【0130】
図21に示すように、ウィービング信号WS2の位相φ2は、2波長目以降の波形において、ステップS1で受け付けたウィービング信号WS1の位相φ1に一致することになる。このようにパラメータPR1を調整することで、プロセッサ30は、位相φ1を再現することができる。
【0131】
なお、プロセッサ30は、ウィービング動作において、ツール26を前後方向へ揺動させるのと同期して、該ツール26を上下方向へ揺動させてもよい。このようなウィービング動作について、図3及び図22を参照して説明する。図22に示す例では、プロセッサ30は、ツール26を、端点P1と端点P2との間で前後方向へ揺動させる間、移動経路WPの位置で距離δだけ上方へ変位させる一方、端点P1及び端点P2の位置でワークWの表面に当接させるように、ウィービング動作を実行している。
【0132】
図22に示すような上下方向への揺動動作をロボット12に実行させるためのウィービング信号WS1を、図23に示す。なお、図23の縦軸は、ツール26を上下方向へ揺動させる振幅Aを示し、横軸は、時間tを示す。図23に示すウィービング信号WS1は、パラメータPR1として、正の振幅A1、周波数f1(=1/T1)、位相φ1(=0)、及び端点停止時間t(=0)を有する。
【0133】
このウィービング信号WS1にフィルタ処理FR2を実行することにより得られるウィービング信号WS2は、パラメータPR2として、振幅A2(<A1)を有し得る。図23に示すウィービング信号WS1のパラメータPR1についても、上述の実施形態と同様の方法で、調整することができる。
【0134】
そして、プロセッサ30は、上述のステップS11において、信号生成部44として機能して、上述のウィービング信号WS1と、図23に示すウィービング信号WS1とをそれぞれ生成し、これらを加算することで、合成ウィービング信号WS1を生成し、フィルタ部48へ出力する。
【0135】
本実施形態のように、ツール26を前後方向へ揺動させるのと同期して上下方向へ揺動させるウィービング動作を実行することで、溶接品質を向上させることができる。そして、オペレータが所望するウィービング信号WS1及びWS1のパラメータPR1を再現することができるので、前後上下へ揺動させるウィービング動作を、任意に設計することができる。
【0136】
なお、プロセッサ30は、フィルタ処理FR1のフィルタ時間τ1として、上述の固有フィルタ時間τを用いてもよい。また、上述のステップS2において、プロセッサ30は、フィルタ時間τ2を、固有フィルタ時間τ(又は、許容フィルタ時間τ)に一義的に決定してもよい。
【0137】
また、図7又は図18に示すフローから、ステップS2を省略してもよい。この場合において、オペレータは、入力装置38を操作して、所望のフィルタ時間τ2を入力してもよい。そして、プロセッサ30は、入力を受け付けたフィルタ時間τ2でフィルタ処理FR2を実行してもよい。この場合において、プロセッサ30は、オペレータから受け付けたフィルタ時間τ2が固有フィルタ時間τよりも短い場合に、アラームを出力してもよい。
【0138】
なお、上述の実施形態においては、プロセッサ30が、ステップS1において、優先順位POの入力を受け付ける場合について述べた。しかしながら、これに限らず、優先順位POのデータが予め定められて、メモリ32に格納されてもよい。また、優先順位POが設定されていなくてもよい。例えば、プロセッサ30は、上述のステップS6’又はS9において、第2条件CD2を満たすべく、全てのパラメータPR1について、対応するフィルタ処理後パラメータPR2が元のパラメータPR1と異なるのを許容するように、該全てのパラメータPR1を調整してもよい。
【0139】
また、プロセッサ30は、ステップS1において、ウィービング信号WS1の波形の種類(三角波、台形波、鋸波、三角関数等)の入力を受け付けてもよい。また、ウィービング動作指令CM3を生成する構成は、図4に示す形態に限定されない。例えば、フィルタ部46を省略するとともに、フィルタ部48をウィービング動作指令生成部50の後段に設けてもよい。
【0140】
この場合、主動作指令生成部42が生成した主動作指令CM1と、信号生成部44が生成したウィービング信号WS1、WS’とが、ウィービング動作指令生成部50で加算され、ウィービング動作指令CM3が生成される。そして、ウィービング動作指令生成部50が生成したウィービング動作指令CM3に、フィルタ部48でフィルタ処理FR2が実行され、サーボモータ28へ出力される。
【0141】
また、上述の実施形態においては、装置70の機能が、制御装置14に実装される場合について述べた。しかしながら、これに限らず、装置70の機能は、制御装置14に通信可能に接続された他のコンピュータ(教示ペンダント、タブレット型PC、デスクトップ型PC等)に実装されてもよい。この場合、該他のコンピュータのプロセッサが、装置70として機能する。そして、該他のコンピュータのプロセッサが、信号生成部44として機能してウィービング信号WS1、WS1’を生成し、制御装置14に送信してもよい。
【0142】
また、上述の実施形態においては、ツール26が溶接トーチであり、ワークWに溶接作業を実行する場合について述べた。しかしながら、これに限らず、ツール26は、例えば、ろう材送給装置(図示せず)から送給されたろう材を溶融させてワークWにろう付け作業を実行するように構成されてもよいし、又は、ワークWに対して如何なる作業を実行するように構成されてもよい。
【0143】
また、ロボット12は、垂直多関節型ロボットに限らず、例えば、水平多関節型ロボット、パラレルリンク型ロボット等、ツール26を移動可能な如何なるタイプのロボットであってもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【0144】
10 ロボットシステム
12 ロボット
14 制御装置
26 ツール
30 プロセッサ
42 主動作指令生成部
44 信号生成部
46,48 フィルタ部
50 ウィービング動作指令生成部
52 入力受付部
54 パラメータ取得部
56 条件判定部
58 パラメータ調整部
60 動作取得部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23