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

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

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

特許7583176ウィービング動作のための信号を生成する装置、制御装置、及び方法
<>
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図1
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図2
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図3
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図4
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図5
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図6
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図7
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図8
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図9
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図10
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図11
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図12
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図13
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図14
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図15
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図16
  • 特許-ウィービング動作のための信号を生成する装置、制御装置、及び方法 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-05
(45)【発行日】2024-11-13
(54)【発明の名称】ウィービング動作のための信号を生成する装置、制御装置、及び方法
(51)【国際特許分類】
   G05B 19/4093 20060101AFI20241106BHJP
【FI】
G05B19/4093 M
【請求項の数】 13
(21)【出願番号】P 2023539428
(86)(22)【出願日】2021-08-03
(86)【国際出願番号】 JP2021028840
(87)【国際公開番号】W WO2023012908
(87)【国際公開日】2023-02-09
【審査請求日】2024-03-13
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(72)【発明者】
【氏名】渡邊 大吾
(72)【発明者】
【氏名】松嶋 友則
【審査官】牧 初
(56)【参考文献】
【文献】特開平3-207576(JP,A)
【文献】特開平6-222817(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/18-19/416
G05B 19/42-19/46
B23K 9/06- 9/133
(57)【特許請求の範囲】
【請求項1】
ロボットによってツールを予め定めた作業経路に沿って移動させるとともに該ツールを該作業経路と交差する方向へ揺動させるウィービング動作のための信号を生成する装置であって、
前記ロボットに前記ツールを揺動させるためのウィービング信号を生成するウィービング信号生成部と、
前記ウィービング信号生成部が生成した前記ウィービング信号に従って前記ロボットに前記ウィービング動作を実行させたときの、前記交差する方向における前記ツールの振幅値の時系列データを取得する時系列データ取得部と、
前記時系列データ取得部が取得した前記時系列データの第1周波数特性を取得する周波数特性取得部と、
前記周波数特性取得部が取得した前記第1周波数特性に基づいて、前記ウィービング信号生成部が生成した前記ウィービング信号の周波数で前記ロボットが共振しているか否かを判定する共振判定部と、
前記共振判定部によって前記ロボットが共振していると判定されたときに、前記周波数を変更するように前記ウィービング信号を補正する補正部と、を備える、装置。
【請求項2】
前記補正部は、前記ウィービング信号の基本波の前記周波数を変更することによって、前記ウィービング信号を補正する、請求項1に記載の装置。
【請求項3】
前記基本波の前記周波数の入力を受け付ける第1入力受付部をさらに備え、
前記ウィービング信号生成部は、前記第1入力受付部が受け付けた前記周波数を有する前記ウィービング信号を生成し、
前記補正部は、前記第1入力受付部が受け付けた前記周波数を変更することによって、前記ウィービング信号生成部が生成する前記ウィービング信号を補正する、請求項2に記載の装置。
【請求項4】
前記第1入力受付部は、前記周波数を変更する変更量の入力をさらに受け付け、
前記補正部は、前記第1入力受付部が受け付けた前記変更量に従って前記周波数を変更する、請求項3に記載の装置。
【請求項5】
前記周波数特性取得部は、前記ウィービング信号生成部が生成した前記ウィービング信号の第2周波数特性をさらに取得し、
前記共振判定部は、前記周波数特性取得部が取得した前記第1周波数特性及び前記第2周波数特性を比較することによって、前記ロボットが共振しているか否かを判定する、請求項1~4のいずれか1項に記載の装置。
【請求項6】
前記共振判定部は、前記第1周波数特性に含まれる所定の周波数の第1振幅値が、前記第2周波数特性に含まれる該所定の周波数の第2振幅値に応じて定めた閾値を超えた場合に、前記ロボットが共振していると判定する、請求項5に記載の装置。
【請求項7】
前記閾値を設定するための閾値設定データの入力を受け付ける第2入力受付部をさらに備え、
前記共振判定部は、前記第2入力受付部が受け付けた前記閾値設定データに従って、前記第2振幅値に対し前記閾値を設定する、請求項6に記載の装置。
【請求項8】
前記共振判定部は、前記周波数特性取得部が取得した前記第1周波数特性に含まれる所定の周波数の第1振幅値が、前記ウィービング信号の前記周波数に基づいて予め定められた閾値を超えた場合に、前記ロボットが共振していると判定する、請求項1~4のいずれか1項に記載の装置。
【請求項9】
前記閾値の入力を受け付ける第2入力受付部をさらに備える、請求項8に記載の装置。
【請求項10】
前記ツールを作動させて該ツールに所定の作業を実行させるツール制御部をさらに備え、
前記ウィービング信号生成部は、前記ツール制御部が前記ツールを停止させているときに、前記ウィービング信号を生成し、
前記時系列データ取得部は、前記ツールの停止時に前記ウィービング信号生成部が生成した前記ウィービング信号に従って前記ウィービング動作を実行したときの前記時系列データを取得し、
前記共振判定部は、前記ツールの停止時に前記周波数特性取得部が取得した前記第1周波数特性に基づいて前記ロボットが共振しているか否かを判定する、請求項1~9のいずれか1項に記載の装置。
【請求項11】
前記ツールを作動させて該ツールに所定の作業を実行させるツール制御部をさらに備え、
前記ウィービング信号生成部は、前記ツール制御部が前記所定の作業を実行しているときに、前記ウィービング信号を生成し、
前記時系列データ取得部は、前記所定の作業の実行時に前記ウィービング信号生成部が生成した前記ウィービング信号に従って前記ウィービング動作を実行したときの前記時系列データを取得し、
前記共振判定部は、前記所定の作業の実行時に前記周波数特性取得部が取得した前記第1周波数特性に基づいて前記ロボットが共振しているか否かを判定し、
前記補正部は、前記所定の作業の実行時に、前記共振判定部によって前記ロボットが共振していると判定されたときに、前記ウィービング信号を補正する、請求項1~9のいずれか1項に記載の装置。
【請求項12】
請求項1~11のいずれか1項に記載の装置を備え、前記ウィービング動作を実行させるように前記ロボットを制御する、制御装置。
【請求項13】
ロボットによってツールを予め定めた作業経路に沿って移動させるとともに該ツールを該作業経路と交差する方向へ揺動させるウィービング動作のための信号を生成する方法であって、
プロセッサが、
前記ロボットに前記ツールを揺動させるためのウィービング信号を生成し、
生成した前記ウィービング信号に従って前記ロボットに前記ウィービング動作を実行させたときの、前記交差する方向における前記ツールの振幅値の時系列データを取得し、
取得した前記時系列データの第1周波数特性を取得し、
取得した前記第1周波数特性に基づいて、生成した前記ウィービング信号の周波数で前記ロボットが共振しているか否かを判定し、
前記ロボットが共振していると判定したときに、前記周波数を変更するように前記ウィービング信号を補正する、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ウィービング動作のための信号を生成する装置、制御装置、及び方法に関する。
【背景技術】
【0002】
ロボットにウィービング動作を実行させる装置が知られている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平10-235582号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来、ウィービング動作でロボットがツールを揺動させたときに、該ロボットが共振し、これにより、作業品質が低下してしまう場合があった。
【課題を解決するための手段】
【0005】
本開示の一態様において、ロボットによってツールを予め定めた作業経路に沿って移動させるとともに該ツールを該作業経路と交差する方向へ揺動させるウィービング動作のための信号を生成する装置は、ロボットにツールを揺動させるためのウィービング信号を生成するウィービング信号生成部と、ウィービング信号生成部が生成したウィービング信号に従ってロボットにウィービング動作を実行させたときの、交差する方向におけるツールの振幅値の時系列データを取得する時系列データ取得部と、時系列データ取得部が取得した時系列データの第1周波数特性を取得する周波数特性取得部と、周波数特性取得部が取得した第1周波数特性に基づいて、ウィービング信号生成部が生成したウィービング信号の周波数でロボットが共振しているか否かを判定する共振判定部と、共振判定部によってロボットが共振していると判定されたときに、周波数を変更するようにウィービング信号を補正する補正部とを備える。
【0006】
本開示の他の態様において、ロボットによってツールを予め定めた作業経路に沿って移動させるとともに該ツールを該作業経路と交差する方向へ揺動させるウィービング動作のための信号を生成する方法は、プロセッサが、ロボットにツールを揺動させるためのウィービング信号を生成し、生成したウィービング信号に従ってロボットにウィービング動作を実行させたときの、交差する方向におけるツールの振幅値の時系列データを取得し、取得した時系列データの第1周波数特性を取得し、取得した第1周波数特性に基づいて、生成したウィービング信号の周波数でロボットが共振しているか否かを判定し、ロボットが共振していると判定したときに、周波数を変更するようにウィービング信号を補正する。
【発明の効果】
【0007】
ウィービング動作でツールを揺動させたときに発生する共振を抑えることができるので、ウィービング動作をより安定して実行することが可能となる。その結果、溶接作業の精度を高めることができ、以って、溶接品質を向上させることができる。
【図面の簡単な説明】
【0008】
図1】一実施形態に係るロボットシステムの図である。
図2図1に示すロボットシステムのブロック図である。
図3図1に示すロボットが実行するウィービング動作の軌道を示す。
図4図1に示す制御装置においてウィービング動作指令を生成する機能のブロック図である。
図5】一実施形態に係る第1のウィービング信号の波形を示す。
図6図5に示す第1のウィービング信号にフィルタ処理することで生成される第2のウィービング信号の波形を示す。
図7図6に示す第2のウィービング信号の周波数特性(周波数スペクトル)を示す。
図8】基本波周波数でロボットが共振した場合のツールの振幅値の時間変化特性を示す。
図9図8に示す時間変化特性の周波数特性を示す。
図10】高調波周波数でロボットが共振した場合のツールの振幅値の時間変化特性を示す。
図11図8に示す時間変化特性の周波数特性を示す。
図12図1に示すロボットシステムが実行する溶接作業の制御フローの一例を示すフローチャートである。
図13】他の実施形態に係るロボットシステムの図である。
図14図13に示すロボットシステムのブロック図である。
図15図13に示す教示装置においてウィービング動作指令を生成する機能のブロック図である。
図16】ウィービング動作の軌道の他の例を示す。
図17図16に示す軌道でロボットにウィービング動作を実行させるためのウィービング信号の波形を示す。
【発明を実施するための形態】
【0009】
以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、図1及び図2を参照して、一実施形態に係るロボットシステム10について説明する。ロボットシステム10は、ロボット12、及び制御装置14を備える。
【0010】
本実施形態においては、ロボット12は、ワークWに対して溶接作業を実行する。具体的には、ロボット12は、垂直多関節ロボットであって、ロボットベース16、旋回胴18、下腕部20、上腕部22、手首部24、及びツール26を有する。ロボットベース16は、作業セルの床、又は無人搬送車(AGV)の上に固定される。旋回胴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は、その原点(いわゆる、TCP)が、ツール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を前後方向へ揺動させる。その結果、ツール26は、ワークWに対し、波線状の軌道TRに沿って移動しつつ、該ワークWを溶接することになる。
【0023】
次に、ウィービング動作のための信号を生成する方法について説明する。まず、オペレータは、準備プロセスとして、入力装置38を操作して、ウィービング動作でツール26を揺動させるためのウィービング信号WSのパラメータPRを入力する。パラメータPRは、ウィービング信号WSの振幅値A、及び、該ウィービング信号WSの基本波FMの周波数f等を含む。プロセッサ30は、入力装置38を通して、パラメータPRの入力を受け付ける。このように、本実施形態においては、プロセッサ30は、基本波FMの周波数fの入力を受け付ける第1入力受付部44(図2)として機能する。
【0024】
プロセッサ30は、パラメータPRに従って、ウィービング信号WSを生成する。図4に、制御装置14においてウィービング信号WSを生成する機能を表すブロック図を示す。プロセッサ30は、原信号生成部46として機能して、受け付けたパラメータPRに従ってウィービング信号WS1を生成する。
【0025】
ウィービング信号WS1の一例を図5に示す。図5の縦軸は、ツール26を前後方向へ揺動させる振幅値A(換言すれば、作業経路WPからの距離A)を示し、横軸は、時間tを示す。図5に示す例では、ウィービング信号WS1は、三角波であって、オペレータから受け付けた振幅値A及び周波数f(すなわち、周期T=1/f)を有する。
【0026】
次いで、プロセッサ30は、フィルタ部48として機能して、原信号生成部46が生成したウィービング信号WS1に対し、高周波成分を除去するためのフィルタ処理FR1を行う。本実施形態においては、フィルタ部48は、デジタルフィルタ(FIRフィルタ、又はIIRフィルタ)から構成される。例えば、フィルタ部48は、デジタル信号としてのウィービング信号WS1に対し、フィルタ時間τ毎に移動平均処理を行うことで、ローパスフィルタ処理としてのフィルタ処理FR1を実行する。
【0027】
代替的には、フィルタ部48は、フィルタ処理FR1を、バンドパスフィルタ処理、又はノッチフィルタ処理として実行するように構成されてもよい。フィルタ部48は、ウィービング信号WS1にフィルタ処理FR1を実行することで、ウィービング信号WS2を生成する。
【0028】
図6に、ウィービング信号WS2の一例を示す。なお、図6においては、比較のために、ウィービング信号WS1を点線表示している。図6に示すように、フィルタ処理FR1の結果、三角波のウィービング信号WS1が、三角関数の波形に類似するウィービング信号WS2に変化する(すなわち、高周波成分が除去されることで周波数特性FCが変化する)。
【0029】
このように、本実施形態においては、プロセッサ30は、原信号生成部46及びフィルタ部48として機能して、ウィービング信号WS1及びWS2を生成している。したがって、原信号生成部46及びフィルタ部48は、ウィービング信号WS1及びWS2を生成するウィービング信号生成部56を構成する。なお、図6では、ウィービング信号WS1及びWS2をアナログ信号として表しているが、本実施形態においては、ウィービング信号生成部56が生成するウィービング信号WS1及びWS2は、デジタル信号である。
【0030】
図7に、ウィービング信号生成部56が生成したウィービング信号WS2の周波数特性FCWS(周波数スペクトル)を模式的に示す。図7に示すように、ウィービング信号WS2は、周波数fの基本波FMを有するとともに、周波数fの高調波HM、周波数fの高調波HM、・・・周波数fの高調波HMの周波数成分を有している。
【0031】
高調波HMの周波数fは、例えば、基本波FMの周波数fの整数倍(具体的には、奇数倍)であり得る。図7に示す例では、基本波FMは、振幅Aを有し、高調波HMは、振幅Aを有し、高調波HMは、振幅Aを有している。このように、ウィービング信号WS2は、周波数f(n=0,1,2,3・・・)の周波数成分(つまり、基本波FMと高調波HM)を有する。
【0032】
再度、図2及び図4を参照して、プロセッサ30は、主動作指令生成部50と機能して、上述のウィービング動作においてロボット12にツール26を作業経路WPの方向へ移動させるための主動作指令CM1を生成する。そして、プロセッサ30は、フィルタ部52として機能して、主動作指令生成部50で生成した主動作指令CM1に対しフィルタ処理FR2を行う。
【0033】
フィルタ部52は、上述のフィルタ部48と同様のデジタルフィルタから構成され、主動作指令CM1に対し、高周波成分を除去するためのフィルタ処理FR2を実行する。フィルタ処理FR2は、上述のフィルタ処理FR1と同じであってもよいし、異なってもよい。フィルタ部52は、主動作指令CM1に対してフィルタ処理FR2を実行することで、主動作指令CM2を生成する。
【0034】
次いで、プロセッサ30は、ウィービング動作指令生成部54として機能して、主動作指令CM2にウィービング信号WS2を適用することで、ロボット12にウィービング動作を実行させるためのウィービング動作指令CM3を生成する。具体的には、ウィービング動作指令生成部54は、加算器であって、主動作指令CM2にウィービング信号WS2を加算することでウィービング動作指令CM3(=CM2+WS2)を生成する。
【0035】
ウィービング動作指令生成部54で生成されたウィービング動作指令CM3は、I/Oインターフェース34、及びサーボアンプ(図示せず)を通して、ロボット12のサーボモータ28へ出力される。このウィービング動作指令CM3に従って、ロボット12は、ウィービング動作を実行し、ツール26を図3に示す軌道TRに沿って移動させる。
【0036】
原信号生成部46、主動作指令生成部50、フィルタ部48及び52、並びにウィービング動作指令生成部54は、プロセッサ30が実行する作業プログラムPGによって実現される機能モジュールであり得る。なお、主動作指令生成部50、フィルタ部48及び52、並びにウィービング動作指令生成部54の少なくとも1つ(例えば、フィルタ部48及び50)は、アナログ回路として制御装置14に実装されてもよい。
【0037】
上述のように生成されたウィービング動作指令CM3に従ってロボット12にウィービング動作を実行させた場合に、ツール26を前後方向へ揺動させるロボット12の固有振動数が、図7で説明したウィービング信号WS2の基本波FMの周波数f、又は高調波HMの周波数fに一致し、その結果、ロボット12が共振し得る。
【0038】
図8に、基本波FMの周波数fでロボット12が共振した場合のツール26の前後方向(つまり、ロボット座標系C1のy軸方向)の振幅値Aの時間変化特性AR1を模式的に示す。なお、図8においては、比較のために、ウィービング信号生成部56が生成したウィービング信号WS2の時間変化特性を点線表示している。
【0039】
また、図9に、時間変化特性AR1の周波数特性FCR1を模式的に示す。図9に示すように、周波数特性FCR1は、元のウィービング信号WS2に含まれていた基本波FM及び高調波HMの周波数成分を含んでいるが、ロボット12が周波数fで共振した場合、基本波FMの振幅値A’が、元のウィービング信号WS2の振幅値Aよりも大きくなる。
【0040】
一方、図10に、高調波HMの周波数fでロボット12が共振した場合のツール26の前後方向の振幅値Aの時間変化特性AR2を模式的に示す。また、図11に、時間変化特性AR2の周波数特性FCR2を模式的に示す。図11に示すように、ロボット12が周波数fで共振した場合、高調波HMの振幅値A’が、元のウィービング信号WS2の振幅値Aよりも大きくなっている。
【0041】
図8図11に示すような共振が発生すると、ツール26の軌跡TRが、図3に示すような元のウィービング信号WS2に対応する軌跡TRからずれてしまい、その結果、溶接作業の精度が低下してしまう。そこで、本実施形態においては、プロセッサ30は、このような共振を検知した場合に、該共振を抑えるようにウィービング信号WSを補正する。
【0042】
以下、ウィービング信号WSを補正する方法について説明する。図4に示すように、本実施形態においては、各々のサーボモータ28に、該サーボモータ28の回転(回転角度、又は回転位置)を検出する回転検出器58(エンコーダ、又はホール素子等)が設けられている。
【0043】
各々の回転検出器58は、ウィービング動作指令CM3に従ってロボット12がウィービング動作を実行している間、サーボモータ28の回転を連続的(例えば、周期的)に検出し、位置フィードバックFBとして、制御装置14に順次供給する。一例として、回転検出器58は、制御周期T(例えば、100[msec])で、サーボモータ28の回転を周期的に検出し、位置フィードバックFBとして制御装置14に供給する。
【0044】
プロセッサ30は、I/Oインターフェース34を通して回転検出器58から位置フィードバックFBを連続的に取得する。そして、プロセッサ30は、時系列データ取得部60として機能して、取得した位置フィードバックFBに基づいて、前後方向におけるツール26の振幅値Aの時系列データTDを取得する。
【0045】
具体的には、プロセッサ30は、回転検出器58から位置フィードバックFBを取得する毎に、該位置フィードバックFBを用いて、ツール26(具体的には、ツール座標系C2の原点:TCP)のロボット座標系C1における座標を演算し、該座標から振幅値Aを求める。
【0046】
プロセッサ30は、回転検出器58から位置フィードバックFBを取得する毎に(すなわち、制御周期Tで)振幅値Aを取得し、時系列データTDとして、メモリ32に記憶する。このように取得される時系列データTDは、例えば、図8の時間変化特性AR1、又は図10の時間変化特性AR2に対応するデジタル信号である。
【0047】
次いで、プロセッサ30は、周波数特性取得部62として機能して、時系列データ取得部60が取得した時系列データTDの周波数特性FCTD(第1周波数特性)を取得する。具体的には、プロセッサ30は、取得した時系列データTDを、所定の周期Tでフーリエ変換(例えば、FFT)することで周波数領域のデータに変換し、これにより、周波数特性FCTDを取得する。
【0048】
このように取得される周波数特性FCTDは、例えば、図9に示す周波数特性FCR1、又は図11に示す周波数特性FCR2に対応するものとなる。なお、フーリエ変換の周期Tは、例えば、制御周期Tの整数倍の期間として、オペレータによって任意に設定され得る。オペレータは、周期Tを、上述のパラメータPRとして入力してもよい。
【0049】
次いで、プロセッサ30は、共振判定部64として機能して、周波数特性取得部62が取得した周波数特性FCTDに基づいて、ウィービング信号生成部56が生成したウィービング信号WS2の周波数fでロボット12が共振しているか否かを判定する。以下、共振を判定する方法の具体例について説明する。
【0050】
共振判定の一具体例として、共振判定部64は、時系列データ取得部60が取得した時系列データTDの周波数特性FCTDと、ウィービング信号生成部56が生成したウィービング信号WS2の周波数特性FCWS(第2周波数特性)とを比較することによって、ロボット12が共振しているか否かを判定する。
【0051】
具体的には、プロセッサ30は、周波数特性取得部62として機能して、上述の周波数特性FCTDとともに、ウィービング信号WS2の周波数特性FCWSを取得する。例えば、周波数特性取得部62は、フィルタ部48が生成したウィービング信号WS2を取得し、該ウィービング信号WS2を、所定の周期Tでフーリエ変換(例えば、FFT)することで周波数領域のデータに変換し、これにより、周波数特性FCWSを取得する。こうして、周波数特性取得部62は、図7に示すような周波数特性FCWSを取得する。
【0052】
一例として、共振判定部64は、取得したウィービング信号WS2の周波数特性FCWSに基づいて、該周波数特性FCWSに含まれる周波数fでの振幅値A(第2振幅値)に応じて、閾値αを設定する。具体的には、共振判定部64は、取得した周波数特性FCWSに含まれる基本波FMの周波数fでの振幅値A図7)に応じて、閾値αを、α=β×A(βは、1以上の係数)として設定する。
【0053】
一方、共振判定部64は、取得した時系列データTDの周波数特性FCTDから、該周波数特性FCTDに含まれる基本波FMの周波数fでの振幅値A’(第1振幅値)を取得する。そして、共振判定部64は、振幅値A’と閾値αとを比較し、振幅値A’が閾値αを超えた(つまり、A’>α)か否かを判定し、A’>αである場合に、ロボット12が、ウィービング信号WS2の基本波FMの周波数fで共振していると判定する。
【0054】
代替的には、共振判定部64は、周波数特性FCWSに含まれる高調波HMの周波数fでの振幅値A(例えば、図7に示す振幅値A,A・・・)に応じて、閾値αを、α=β×Aとして定めてもよい。そして、共振判定部64は、取得した時系列データTDの周波数特性FCTDに含まれる高調波HMの周波数fでの振幅値A’(第1振幅値。例えば、図11に示す振幅値A’)が閾値αを超えた(A’>α)か否かを判定し、A’>αである場合に、ロボット12が、ウィービング信号WS2の高調波HMの周波数fで共振していると判定する。
【0055】
なお、共振判定部64は、周波数特性FCWSに含まれる基本波FM及び高調波HMの周波数fの各々の振幅値Aに対して閾値αを設定し、周波数特性FCTDに含まれる基本波FM及び高調波HMの周波数fの各々の振幅値A’と比較してもよい。いずれの周波数fの振幅値Aに対して閾値αを設定するかは、オペレータによって予め定められてもよい。
【0056】
他の例として、共振判定部64は、周波数特性FCWSに含まれる所定の周波数帯域[f,f](例えば、[f,f]=f≦f≦fの周波数帯域)における振幅値Aの積分値INT(=∫A)を求め、求めた積分値INTに対し、閾値γを、γ=β×INTとして設定する。
【0057】
一方、共振判定部64は、周波数特性FCTDに含まれる周波数帯域[f,f]における振幅値A’の積分値INT’(=∫A’)を求める。そして、共振判定部64は、取得した積分値INT’が閾値γを超えた(INT’>γ)か否かを判定し、INT’>γである場合に、ロボット12が、ウィービング信号WS2のいずれかの周波数成分で共振していると判定する。
【0058】
さらに他の例として、共振判定部64は、周波数特性FCWSの振幅値Aのスペクトル密度D(パワースペクトル密度、エネルギースペクトル密度等)を求め、該スペクトル密度Dに対し、閾値δを、δ=β×Dとして設定する。一方、共振判定部64は、取得した周波数特性FCTDの振幅値A’のスペクトル密度D’を求める。そして、共振判定部64は、求めたスペクトル密度D’が閾値δを超えた(D’>δ)か否かを判定し、D’>δである場合に、ロボット12が共振していると判定する。
【0059】
なお、共振判定部64は、周波数特性FCWSから取得した演算値(例えば、振幅値A、積分値INT、又はスペクトル密度D)と、周波数特性FCTDから取得した演算値(例えば、振幅値A’、積分値INT’、又はスペクトル密度D’)との差Δを求めてもよい。
【0060】
そして、共振判定部64は、該差Δが予め定めた閾値Δthを超えた(Δ>Δth)か否かを判定し、Δ>Δthである場合に、ロボット12が共振していると判定してもよい。上述のように、共振判定部64は、周波数特性FCTD及びFCWSを互いに比較することにより、ロボット12が共振しているか否かを判定する。
【0061】
なお、共振判定部64は、上述の閾値α、γ、δ又はΔthを設定するための閾値設定データTHDの入力を受け付けてもよい。例えば、オペレータは、入力装置38を操作して、閾値設定データTHDとして、上述の係数β又は閾値Δthを予め入力する。プロセッサ30は、閾値設定データTHDを受け付け、共振判定部64として機能して該閾値設定データTHDに従って、閾値α、γ、δ又はΔthを設定する。すなわち、この場合、プロセッサ30は、閾値設定データTHDの入力を受け付ける第2入力受付部66(図2)として機能する。
【0062】
共振判定の他の具体例として、共振判定部64は、ウィービング信号WS2の周波数特性FCWSを取得することなく、ロボット12が共振しているか否かを判定することもできる。具体的には、プロセッサ30は、共振判定部64として機能して、周波数特性取得部62が取得した時系列データTDの周波数特性FCTDに含まれる基本波FM又は高調波HMの周波数fでの振幅値A’が、予め定められた閾値α’を超えたか否かを判定する。
【0063】
そして、共振判定部64は、A’>αである場合に、ロボット12が共振していると判定する。この閾値α’は、ウィービング信号WS2の周波数fに基づいてオペレータによって予め定められ、メモリ32に予め格納される。例えば、オペレータは、実験的手法等を用いて、ウィービング信号WS2の周波数特性FCWSを事前に検証することによって、閾値α’を設定できる。この場合において、プロセッサ30は、第2入力受付部66として機能し、入力装置38を通して、該閾値α’の入力を予め受け付けてもよい。
【0064】
以上の方法により、共振判定部64は、ロボット12が共振しているか否かを判定する。共振判定部64によってロボット12が共振していると判定されたとき、プロセッサ30は、補正部68として機能して、ウィービング信号WSの周波数fを変更するように、ウィービング信号WSを補正する。
【0065】
一例として、補正部68は、パラメータPRとして入力された基本波FMの周波数fを変更する。具体的には、補正部68は、パラメータPRに設定されている周波数fを、所定の変更量φだけ増加又は減少させることにより、周波数f’(=f+φ、又は、f-φ)へ変更する。周波数f’への変更後、原信号生成部46は、変更後の周波数f’を有するウィービング信号WS1を生成する。
【0066】
その結果、フィルタ部48によって生成されるウィービング信号WS2の基本波FMの周波数fも、周波数f’へ変更されることになる。このように、補正部68は、基本波FMの周波数fを変更することによって、ウィービング信号生成部56が生成するウィービング信号WS1及びWS2を補正する。この場合、ウィービング信号生成部56によって生成されるウィービング信号WS2の基本波FMの周波数fのみならず、高調波HMの周波数fも変更できる。
【0067】
他の例として、共振判定部64が、ウィービング信号WS2の高調波HMの周波数fでロボット12が共振していると判定した場合において、補正部68は、該高調波HMの周波数fを変更することで、ウィービング信号WS2を補正してもよい。例えば、周波数特性取得部62が、周波数特性FCWS及びFCTDを取得し、共振判定部64が、周波数特性FCWS及びFCTDを比較した結果、図11に示すように、高調波HMの周波数fでの振幅値A’が閾値αを超えたと判定したとする。
【0068】
この場合、補正部68は、周波数特性取得部62が取得したウィービング信号WS2の周波数特性FCWSに含まれる高調波HMの周波数fを、デジタル信号処理により、所定の変更量φだけ増加又は減少させて、周波数f’へ変更する。そして、補正部68は、変更後の周波数f’の高調波HMと、元のウィービング信号WS2の基本波FM及び高調波HM、HM、HM・・・とを有する周波数特性FCWS’を求める。
【0069】
ウィービング信号生成部56は、補正部68が求めた周波数特性FCWS’を逆フーリエ変換(例えば、IFFT)することで、補正されたウィービング信号WS2を生成し、ウィービング動作指令生成部54へ出力する。こうして、補正部68は、高調波HMの周波数fを変更することでウィービング信号WS2を補正できる。
【0070】
なお、共振判定部64が、高調波HMの周波数fの振幅値A’が予め定められた閾値α’を超えたか否かを判定することでロボット12の共振を判定した場合でも、補正部68は、高調波HMの周波数fを変更することでウィービング信号WS2を補正できる。
【0071】
具体的には、共振判定部64が、例えば図11に示すように、高調波HMの周波数fでの振幅値A’が、予め定められた閾値α’を超えたと判定したとする。このとき、周波数特性取得部62は、ウィービング信号WS2の周波数特性FCWSを取得し、補正部68は、取得された周波数特性FCWSに含まれる高調波HMの周波数fを変更量φだけ増加又は減少することで、周波数f’へ変更する。
【0072】
そして、補正部68は、上述のように、変更後の周波数f’の高調波HMと、元のウィービング信号WS2の基本波FM及び高調波HM、HM、HM・・・とを有する周波数特性FCWS’を求め、逆フーリエ変換(例えば、IFFT)することで、補正されたウィービング信号WS2を生成する。こうして、補正部68は、高調波HMの周波数fを変更することでウィービング信号WS2を補正できる。
【0073】
なお、プロセッサ30は、第1入力受付部44として機能し、基本波FMの周波数fとともに、上述の変更量φの入力を受け付けてもよい。例えば、オペレータは、入力装置38を操作して、変更量φを予め入力する。ウィービング信号生成部56は、受け付けた振幅値A及び周波数fに従ってウィービング信号WS2を生成し、補正部68は、共振判定部64によってロボット12が共振していると判定された場合に、受け付けた変更量φに従って、ウィービング信号WSの周波数fを変更する。以上のようにして、補正部68は、周波数fを変更するようにウィービング信号WSを補正する。
【0074】
次に、図12を参照して、プロセッサ30が実行する溶接作業の制御フローについて説明する。図12に示すフローは、プロセッサ30が、オペレータ、上位コントローラ、又は作業プログラムPGから作業開始指令を受け付けたときに、開始される。ステップS1において、プロセッサ30は、ウィービング動作を開始する。
【0075】
具体的には、プロセッサ30は、上述したように、ウィービング信号生成部56(原信号生成部46、フィルタ部48)、主動作指令生成部50、フィルタ部52、及びウィービング動作指令生成部54として機能して、ウィービング動作指令CM3を生成し、該ウィービング動作指令CM3に従ってロボット12を動作させる。その結果、ロボット12は、ウィービング動作を開始する。
【0076】
ステップS2において、プロセッサ30は、ツール26を作動させて、該ツール26に溶接作業を実行させる。こうして、プロセッサ30は、ステップS1で開始したウィービング動作を実行しつつ、ツール26によってワークWに対し溶接作業を行う。このように、プロセッサ30は、ツール26を作動させて該ツール26に溶接作業を実行させるツール制御部70(図2)として機能する。ステップS3において、プロセッサ30は、時系列データ取得部60として機能して、上述のように時系列データTDを取得する動作を開始する。
【0077】
ステップS4において、プロセッサ30は、周波数特性取得部62として機能して、上述のように時系列データTDの周波数特性FCTDを取得する動作を開始する。例えば、周波数特性取得部62は、ウィービング信号生成部56が生成したウィービング信号WS2の周波数特性FCWSと、該ウィービング信号WS2に従ってロボット12を動作させときに時系列データ取得部60が取得した時系列データTDの周波数特性FCTDとを、連続的に(例えば、制御周期Tで)取得する。
【0078】
ステップS5において、プロセッサ30は、共振判定部64として機能して、上述のように、ステップS4で取得した周波数特性FCTDに基づいて、ロボット12が共振しているか否かを判定する。例えば、プロセッサ30は、直近のステップS4で取得した周波数特性FCWS及びFCTDを比較することによって、ロボット12が共振しているか否かを判定する。プロセッサ30は、ロボット12が共振している(すなわち、YES)と判定した場合はステップS6へ進む一方、NOと判定した場合はステップS7へ進む。
【0079】
ステップS6において、プロセッサ30は、補正部68として機能して、上述のように、ウィービング信号WSの周波数fを変更するように、該ウィービング信号WSを補正する。例えば、プロセッサ30は、ウィービング信号WS1の基本波FMの周波数f(又は、ウィービング信号WS2の高調波HMの周波数f)を、変更量φだけ増加又は減少させることで、周波数f’へ変更する。その後、プロセッサ30は、ウィービング信号生成部56として機能し、変更後の周波数f’に基づいて、ウィービング信号WS1及びWS2を生成する。
【0080】
ステップS6の後、プロセッサ30は、ステップS5へ戻り、ステップS5でNOと判定するまで、ステップS5及びS6のループを繰り返し実行する。ここで、プロセッサ30は、ステップS6を実行する毎に、ウィービング信号WSの周波数fを、予め定められた許容範囲[fth1,fth2]内で、変更量φずつ変更してもよい。
【0081】
許容範囲[fth1,fth2](=fth1≦f’≦fth2)は、例えば、基本波FMの周波数fが、f=4[Hz]である場合、[3.5,4.5](すなわち、4[Hz]±0.5[Hz])の範囲として、オペレータによって任意に定められ得る。この場合において、プロセッサ30は、第1入力受付部44として機能し、変更量φとともに、許容範囲[fth1,fth2]を画定する閾値fth1及びfth2の入力を受け付けてもよい。
【0082】
なお、ステップS6を実行したことにより、変更後の周波数f’が許容範囲[fth1,fth2]外となったとき(つまり、f’<fth1、又は、fth2<f’)、その旨を表す警告信号を画像データ(又は音声データ)として生成し、表示装置40に表示(又はスピーカを通して出力)してもよい。また、プロセッサ30は、変更後の周波数f’が許容範囲[fth1,fth2]外となったときに、警告信号を出力しつつ溶接作業を継続してもよいし、警告信号を出力して溶接作業を停止してもよい。
【0083】
ステップS7において、プロセッサ30は、作業プログラムPGと、回転検出器58からのフィードバックFBとに基づいて、溶接作業が終了したか否かを判定する。プロセッサ30は、溶接作業が終了した(すなわち、YES)と判定した場合は、ツール制御部70として機能してツール26の動作を停止させ、図12に示すフローを終了する。一方、プロセッサ30は、NOと判定した場合は、ステップS5へ戻る。
【0084】
なお、図12に示すフローにおいて、プロセッサ30は、ステップS2を開始した後に、ステップS1を開始してもよい。また、オペレータは、変更量φを予め入力せずに、プロセッサ30は、ステップS6を実行する毎に、周波数fを変更する変更量φをランダムに決定してもよい。
【0085】
以上のように、本実施形態においては、プロセッサ30は、第1入力受付部44、ウィービング信号生成部56、時系列データ取得部60、周波数特性取得部62、共振判定部64、第2入力受付部66、補正部68、及びツール制御部70として機能して、ウィービング動作のための信号を生成している。
【0086】
したがって、第1入力受付部44、ウィービング信号生成部56、時系列データ取得部60、周波数特性取得部62、共振判定部64、第2入力受付部66、補正部68、及びツール制御部70は、ウィービング動作のための信号を生成する装置80(図2)を構成する。つまり、本実施形態においては、装置80は、プロセッサ30が作業プログラムPGを実行することで実現される機能モジュールとして、制御装置14に実装されている。
【0087】
以上のように、装置80は、ウィービング信号WS1及びWS2を生成するウィービング信号生成部56と、ウィービング信号WS2に従ってロボット12にウィービング動作を実行させたときの時系列データTDを取得する時系列データ取得部60と、該時系列データTDの周波数特性FCTD(第1周波数特性)を取得する周波数特性取得部62とを備える。
【0088】
また、装置80は、周波数特性FCTDに基づいてロボット12が共振しているか否かを判定する共振判定部64と、ロボット12が共振していると判定されたときに、ウィービング信号WS1又はWS2の周波数fを変更するように該ウィービング信号WS1又はWS2を補正する補正部68とを備えている。
【0089】
この構成によれば、ウィービング動作でツール26を前後に揺動させたときに発生する共振を抑えることができるので、ウィービング動作をより安定して実行することが可能となる。その結果、溶接作業の精度を高めることができ、以って、溶接品質を向上させることができる。
【0090】
また、装置80においては、補正部68は、一例として、ウィービング信号WS1、WS2の基本波FMの周波数fを変更することによって、ウィービング信号WS1、WS2を補正する。この構成によれば、上述したように、ウィービング信号WS2の基本波FMの周波数fのみならず、高調波HMの周波数fも変更できる。したがって、ウィービング信号WS2の基本波FM又は高調波HMのいずれの周波数fでロボット12が共振したとしても、該共振を容易且つ確実に抑えることができる。
【0091】
また、装置80においては、第1入力受付部44は、基本波FMの周波数fの入力を受け付け、ウィービング信号生成部56は、受け付けた周波数fを有するウィービング信号WS1、WS2を生成し、補正部68は、受け付けた周波数fを変更することによって、ウィービング信号生成部56が生成するウィービング信号WS1、WS2を補正する。
【0092】
この構成によれば、オペレータは、周波数fを任意に設定することができるので、より多様なウィービング動作を設計できるとともに、オペレータが設定した周波数fを変更することで、該周波数fに起因して発生するロボット12の共振を確実に抑えることができる。
【0093】
また、装置80においては、第1入力受付部44は、基本波FM又は高調波HMの周波数fを変更する変更量φの入力をさらに受け付け、補正部68は、受け付けた変更量φに従って周波数fを変更する。この構成によれば、オペレータは、周波数fの変更による溶接品質への影響を最小化しつつ、共振を確実に抑えることができるように、変更量φを任意に定めることができる。
【0094】
また、装置80においては、一例として、周波数特性取得部62は、ウィービング信号生成部56が生成したウィービング信号WS2の周波数特性FCWS(第2周波数特性)をさらに取得し、共振判定部64は、周波数特性取得部62が取得した周波数特性FCTD及びFCWSを比較することによって、ロボット12が共振しているか否かを判定する。この構成によれば、ロボット12が共振しているか否かを、より高精度に検出できる。
【0095】
また、周波数特性FCTD及びFCWSを比較する場合において、共振判定部64は、周波数特性FCTDに含まれる所定の周波数fの振幅値A’(第1振幅値)が、周波数特性FCWSに含まれる該所定の周波数fの振幅値A(第2振幅値)に応じて定めた閾値αを超えた場合に、ロボット12が共振していると判定する。この構成によれば、比較的簡単なアルゴリズムによって、ロボット12が共振しているか否かを高精度に検出できる。
【0096】
また、第2入力受付部66は、閾値αを設定するための閾値設定データTHD(係数β)の入力を受け付け、共振判定部64は、該閾値設定データTHDに従って、振幅値Aに対し閾値αを設定する。この構成によれば、オペレータは、共振判定のための閾値αを任意に設定できる。
【0097】
一方、他の例として、共振判定部64は、周波数特性取得部62が取得した時系列データTDの周波数特性FCTDに含まれる所定の周波数fの振幅値A’が、ウィービング信号WS2の周波数fに基づいて予め定められた閾値α’を超えた場合に、ロボット12が共振していると判定する。
【0098】
この構成によれば、より簡単なアルゴリズムで、ロボット12が共振しているか否かを検出できる。この場合において、第2入力受付部66は、閾値α’の入力を受け付ける。この構成によれば、オペレータは、共振判定のための閾値α’を任意に設定できる。
【0099】
また、装置80によれば、図12に示すフローにおいて、ウィービング信号生成部56は、ツール制御部70が溶接作業を実行しているとき(ステップS2)に、ウィービング信号WS1、WS2を生成し、時系列データ取得部60は、溶接作業の実行時に生成されたウィービング信号WS1、WS2に従ってウィービング動作を実行したときの時系列データTDを取得する(ステップS3)。
【0100】
そして、共振判定部64は、溶接作業の実行時に周波数特性取得部62が取得した周波数特性FCTD(ステップS4)に基づいて、ロボット12が共振しているか否かを判定し(ステップS5)、補正部68は、溶接作業の実行時に、ロボット12が共振していると判定されたときに、ウィービング信号WS1、WS2を補正する(ステップS6)。この構成によれば、実際に溶接作業を実行しているときに、ロボット12の共振の有無をリアルタイムで監視し、該共振が発生したときに、ウィービング信号WSをリアルタイムで補正することができる。
【0101】
なお、実際に溶接作業を実行する前(例えば、ロボット12にウィービング動作を教示するとき)に、ロボット12の共振の発生と、ウィービング信号WSを補正する動作とを検証することもできる。以下、図13及び図14を参照して、このような機能を実行するロボットシステム100について説明する。
【0102】
ロボットシステム100は、上述のロボットシステム10と、教示装置102をさらに備える点で相違する。教示装置102は、ウィービング動作をロボット12に教示する。具体的には、教示装置102は、例えば、教示ペンダント又はタブレット型端末装置等の携帯型コンピュータであって、プロセッサ104、メモリ106、及びI/Oインターフェース108を有する。また、教示装置102には、入力装置110、及び表示装置112が設けられている。
【0103】
なお、プロセッサ104、メモリ106、I/Oインターフェース108、入力装置110、及び表示装置112の構成及び機能は、上述のプロセッサ30、メモリ32、I/Oインターフェース34、入力装置38、及び表示装置40と同様であるので、重複する説明を省略する。プロセッサ104は、バス114を介してメモリ106、及びI/Oインターフェース108と通信可能に接続され、これらコンポーネントと通信しつつ、後述する教示機能を実行するための演算処理を行う。
【0104】
本実施形態においては、装置80(第1入力受付部44、ウィービング信号生成部56、時系列データ取得部60、周波数特性取得部62、共振判定部64、第2入力受付部66、補正部68、及びツール制御部70)の機能は、教示装置102に実装され、教示装置102のプロセッサ104が、装置80として機能する。
【0105】
プロセッサ104は、入力装置110への入力データに応じて、制御装置14を介してロボット12の各サーボモータ28へ指令を送り、該指令に従って該ロボット12をジョグ動作させることができるように構成されている。オペレータは、入力装置110を操作することでロボット12をジョグ動作させ、該ロボット12にウィービング動作を教示する。
【0106】
具体的には、オペレータは、入力装置110を操作して、ロボット12にツール26(TCP)を作業経路WPの方向へ移動させるための複数の教示点TPを教示する。一方、オペレータは、入力装置110を操作して、ウィービング信号WSのパラメータPR(振幅値A、周波数f等)を入力する。
【0107】
プロセッサ104は、ロボット座標系C1における教示点TPの座標を取得するとともに、第1入力受付部44として機能して、パラメータPRの入力を受け付ける。そして、プロセッサ104は、取得した教示点TP及びパラメータPRに基づいて、作業プログラムPG1を生成する。この作業プログラムPG1には、教示点TPの座標とパラメータPRとが、命令コードとして規定されている。このようにして、教示装置102は、ロボット12にウィービング動作を教示し、溶接作業のための作業プログラムPG1を作成する。
【0108】
オペレータは、作成した作業プログラムPG1に従ってロボット12にウィービング動作を試行させて、ロボット12が共振するか否かを検証する。図15は、教示装置102においてウィービング信号WSを生成する機能を表すブロック図を示す。オペレータは、入力装置110を操作して、プロセッサ104に作業開始指令を与える。
【0109】
作業開始指令に応じて、プロセッサ104は、上述の実施形態と同様に、ウィービング信号生成部56として機能して、ウィービング信号WSを生成する。具体的には、プロセッサ104は、原信号生成部46として機能して、作業プログラムPG1に規定されたパラメータPRに従ってウィービング信号WS1を生成し、フィルタ部48として機能して、原信号生成部46が生成したウィービング信号WS1に対しフィルタ処理FR1を行うことで、ウィービング信号WS2を生成する。
【0110】
また、プロセッサ104は、上述の実施形態と同様に、主動作指令生成部50と機能して、作業プログラムPG1に規定された教示点TPに従って主動作指令CM1を生成し、フィルタ部52として機能して、主動作指令生成部50が生成した主動作指令CM1に対しフィルタ処理FR2を行うことで、主動作指令CM2を生成する。
【0111】
そして、プロセッサ104は、ウィービング動作指令生成部54として機能して、主動作指令CM2にウィービング信号WS2を適用することでウィービング動作指令CM3を生成し、I/Oインターフェース108、及び制御装置14を介して、ロボット12のサーボモータ28へ送信する。こうして、プロセッサ104は、制御装置14を介してウィービング動作指令CM3に従ってロボット12を制御し、ウィービング動作を実行させる。
【0112】
ここで、本実施形態においては、ロボット12にウィービング動作を実行させている間、プロセッサ104は、ツール制御部70として機能して、ツール26の動作を停止させる。したがって、ロボット12は、ツール26の動作を停止させた状態で(つまり、溶接作業を実行せずに)、該ツール26を図3に示すような軌道TRに沿って移動させるウィービング動作を行うことになる。
【0113】
ロボット12にウィービング動作を実行させている間、回転検出器58は、上述の実施形態と同様に、サーボモータ28の回転を連続的に検出し、位置フィードバックFBとして、制御装置14を介して教示装置102に供給する。そして、プロセッサ104は、上述の実施形態と同様に、時系列データ取得部60、周波数特性取得部62、及び共振判定部64として機能して、ロボット12が共振しているか否かを判定する。
【0114】
こうして、オペレータは、作業プログラムPG1に従ってロボット12にウィービング動作を実行させたときに、該ロボット12が共振するか否かを検証することができる。そして、オペレータは、共振の発生が検出された場合に、ロボット12が共振する周波数fを特定できる。
【0115】
ロボット12の共振が検出された場合、オペレータは、入力装置110を操作して、上述の変更量φを入力する。プロセッサ104は、第1入力受付部44として機能して変更量φの入力を受け付け、補正部68として機能して、該変更量φに従って周波数f(例えば、基本波FMの周波数f)を変更することで、ウィービング信号WS1、WS2を補正する。
【0116】
そして、ウィービング信号生成部56は、補正後のウィービング信号WS2を生成し、共振判定部64は、補正後のウィービング信号WS2に従ってロボット12にウィービング動作を実行させたときに、再度、ロボット12の共振が発生するか否かを判定する。以上のような試行プロセスを繰り返すことで、オペレータは、ロボット12の共振を抑えることができる最適な変更量φを取得することができる。
【0117】
その後、プロセッサ104は、オペレータからの入力データに応じて、作業プログラムPG1にパラメータPRとして規定されていた周波数fを変更量φだけ変更するための命令文が規定された作業プログラムPG2を生成する。例えば、プロセッサ104は、作業プログラムPG1に規定されていた基本波FMの周波数fを変更量φだけ変更し、変更後の周波数f’が命令文として規定された作業プログラムPG2を生成する。
【0118】
プロセッサ104は、生成した作業プログラムPG2を制御装置14に供給する。制御装置14のプロセッサ30は、作業プログラムPG2に従ってロボット12を動作させて、ワークWに対し実際の溶接作業を実行する。ここで、作業プログラムPG2によれば、共振の原因となった周波数fが周波数f’へ変更されているので、該作業プログラムPG2に従ってロボット12にウィービング動作を実行させたとしても、ロボット12が共振することがない。よって、作業品質を向上させることができる。
【0119】
以上のように、本実施形態においては、ウィービング信号生成部56は、ツール制御部70がツール26を停止させているときにウィービング信号WS1、WS2を生成し、時系列データ取得部60は、ツール26の停止時に生成されたウィービング信号WS2に従ってウィービング動作を実行したときの時系列データTDを取得している。
【0120】
そして、共振判定部64は、ツール26の停止時に取得された周波数特性FCTDに基づいてロボット12が共振しているか否かを判定する。このように、ツール26を動作させずにロボット12にウィービング動作を教示する段階でロボット12の共振を検証することによって、実際の溶接作業時に該共振が発生するのを確実に抑え、作業品質を向上させることができる。
【0121】
なお、共振判定部64は、周波数特性取得部62が取得した周波数特性FCTDを、機械学習によって構築された学習モデルLMに適用することによって、ロボット12が共振しているか否かを判定してもよい。この学習モデルLMは、周波数特性FCTDとロボット12で発生する共振との相関性を示す。
【0122】
学習モデルLMは、例えば、様々なパラメータPRのウィービング信号WSに従ってロボット12にウィービング動作を実行させたときに取得された周波数特性FCTDと、そのときの共振の有無を表す判定データとの学習データセットを、機械学習装置に反復して与えることによって(例えば、教師あり学習)、構築することができる。学習モデルLMは、メモリ32又は106に予め格納される。
【0123】
共振判定部64は、ウィービング動作中に周波数特性取得部62が取得した周波数特性FCTDを、学習モデルLMに順次入力する。学習モデルLMは、入力された周波数特性FCTDから共振の有無を判定する。こうして、共振判定部64は、周波数特性FCTD及び学習モデルLMを用いて、ロボット12が共振しているか否かを高精度に判定できる。
【0124】
なお、学習モデルLMは、周波数特性FCTDが入力されたときに、共振の有無を判定し、共振が発生していると判定した場合に、最適な変更量φを出力してもよい。このような学習モデルLMは、周波数特性FCTD、ロボット12で発生する共振、及び変更量φの相関性を示し、様々な周波数特性FCTDと、そのときの共振の有無を表す判定データと、共振の発生を表す判定データに関連付けられた変更量φとの学習データセットを機械学習装置に反復して与えることによって、構築することができる。
【0125】
この場合、学習モデルLMは、共振判定部64によってウィービング動作中に取得された周波数特性FCTDが入力されると、共振の有無を判定し、共振が発生していると判定した場合に、入力された周波数特性FCTDと高い相関性を有する変更量φを出力する。そして、補正部68は、学習モデルLMによって出力された変更量φに従って周波数fを変更することでウィービング信号WSを補正する。この構成によれば、ロボット12の共振の発生時に、機械学習によって得られた最適な変更量φでウィービング信号WSを補正できる。
【0126】
なお、プロセッサ30又は104は、ウィービング動作において、ツール26を前後方向へ揺動させるのと同期して、該ツール26を上下方向へ揺動させてもよい。このようなウィービング動作について、図3及び図16を参照して説明する。図16に示す例では、プロセッサ30は、ツール26を、前後方向へ揺動させるとともに、移動経路WPの位置で距離δだけ上方へ変位させるように上下方向へ揺動させている。
【0127】
図16に示すような上下方向への揺動動作をロボット12に実行させるためにウィービング信号生成部56が生成するウィービング信号WS1及びWS2を、図17に示す。なお、図17の縦軸は、ツール26を上下方向へ揺動させる振幅Aを示し、横軸は、時間tを示す。図17に示すウィービング信号WS1は、パラメータPRとして、振幅A及び周波数f0_z(=1/T0_z)を有する。
【0128】
上述の実施形態と同様に、原信号生成部46は、ウィービング信号WS1を生成し、フィルタ部48は、ウィービング信号WS1にフィルタ処理FR1を実行することで、ウィービング信号WS2を生成する。このウィービング信号WS2に従ってロボット12にツール26を上下方向へ揺動させた場合、該ウィービング信号WS2の周波数fn_zでロボット12が共振し得る。
【0129】
プロセッサ30又は104は、時系列データ取得部60、周波数特性取得部62、及び共振判定部64として機能して、上述の実施形態と同様の方法により、このようなロボット12の共振の有無を判定し、共振が発生していると判定した場合に、周波数fn_zを変更するようにウィービング信号WS1又はWS2を補正することができる。
【0130】
なお、上述の実施形態においては、プロセッサ30又は104が、実機のロボット12にウィービング動作を実行させたときに、ロボット12の共振の有無を判定し、ウィービング信号WSを補正する場合について述べた(いわゆる、オンライン)。しかしながら、これに限らず、プロセッサ30又は104は、装置80として機能して、ロボット12のウィービング動作を仮想空間内で模擬的に行うシミュレーションを実行し、該シミュレーションにおいて、ロボット12の共振の有無と、ウィービング信号WSの補正とを模擬的に実行してもよい(いわゆる、オフライン)。
【0131】
また、上述の実施形態においては、装置80の機能が、制御装置14及び教示装置102のいずれか一方に実装される場合について述べた。しかしながら、これに限らず、装置80の機能は、制御装置14及び教示装置102の双方に実装されてもよい。すなわち、この場合、装置80A(第1入力受付部44、ウィービング信号生成部56、時系列データ取得部60、周波数特性取得部62、共振判定部64、第2入力受付部66、補正部68、及びツール制御部70)が、制御装置14に実装されるとともに、装置80B(第1入力受付部44、ウィービング信号生成部56、時系列データ取得部60、周波数特性取得部62、共振判定部64、第2入力受付部66、補正部68、及びツール制御部70)が、教示装置102に実装される。
【0132】
代替的には、装置80の機能の一部(例えば、補正部68及びツール制御部70)が、制御装置14に実装される一方、装置80の機能の他の部分(例えば、第1入力受付部44、ウィービング信号生成部56、時系列データ取得部60、周波数特性取得部62、共振判定部64、及び第2入力受付部66)が、教示装置102に実装されてもよい。
【0133】
また、装置80の機能は、制御装置14又は教示装置102に通信可能に接続された他の如何なるコンピュータ(デスクトップ型PC等)に実装されてもよい。この場合、該他のコンピュータのプロセッサが、装置80として機能し、制御装置14を介してロボット12を制御し、ウィービング動作を実行させてもよい。
【0134】
また、上述の実施形態においては、ツール26が溶接トーチであり、ワークWに溶接作業を実行する場合について述べた。しかしながら、これに限らず、ツール26は、例えば、ろう材送給装置(図示せず)から送給されたろう材を溶融させてワークWにろう付け作業を実行するように構成されてもよいし、又は、ワークWに対して如何なる作業を実行するように構成されてもよい。
【0135】
また、ロボット12は、垂直多関節型ロボットに限らず、例えば、水平多関節型ロボット、パラレルリンク型ロボット等、ツール26を移動可能な如何なるタイプのロボットであってもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
【符号の説明】
【0136】
10,100 ロボットシステム
12 ロボット
14 制御装置
26 ツール
30,104 プロセッサ
44,66 入力受付部
56 ウィービング信号生成部
60 時系列データ取得部
62 周波数特性取得部
64 共振判定部
68 補正部
70 ツール制御部
80 装置
102 教示装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17