A.ロボットシステムの構成:
図1は、本実施形態のロボットシステムを示す説明図である。本実施形態のロボットシステムは、ロボット100と、エンドエフェクター200と、ロボット制御装置300と、カメラ400と、搬送装置500と、を備える。
ロボット100は、6個の回転関節X11~X16を備えたアーム110を有する6軸ロボットである。関節X11,X14,X16は、ねじり関節である。関節X12,X13,X15は、曲げ関節である。ロボット100は、6個の関節X11~X16をそれぞれサーボモーターで回転させることにより、アーム110の先端部に取りつけられたエンドエフェクター200を、3次元空間中の指定された位置に指定された姿勢で配することができる。なお、3次元空間におけるエンドエフェクター200の位置を代表する地点を、TCP(Tool Center Point)とも呼ぶ。
ロボット100は、アーム110の先端に力覚センサー190を備えている。エンドエフェクター200は、力覚センサー190を介して、ロボット100のアーム110に取りつけられている。力覚センサー190は、エンドエフェクター200に作用するX軸、Y軸、Z軸の3軸方向の力と、X軸、Y軸、Z軸まわりのトルクを測定することができる。力覚センサー190の出力は、ロボット制御装置300に送信され、ロボット100の制御に使用される。
ロボット制御装置300は、ロボット100に接続されており、ロボット100の動作を制御する。より具体的には、ロボット制御装置300は、ロボット100の関節X11~X16を動かすサーボモーターを駆動する。
ロボット制御装置300は、ロボット教示装置600によって、ロボット100に指定すべき動作を教示される。ロボット教示装置600は、いわゆる「ティーチングペンダント」である。実際のロボット100の運用に際しては、ロボット100の運用に先だって、まず、ロボット教示装置600によるロボットの動作の教示が行われる。ロボット制御装置300は、教示の結果をデータとして格納する。ロボット制御装置300は、ロボット100を運用する段階において、格納された教示結果を表すデータに基づいて、ロボット100を制御する。
搬送装置500は、ローラー510と、ベルト520とを備えるベルトコンベアである。搬送装置500は、ローラー510を駆動することにより、図1において矢印Atで示す方向に、ベルト520を運動させる。搬送装置500は、ベルト520上にワークピースW01を乗せて、矢印Atで示す方向に搬送する。ワークピースW01は、ロボット100が作業を行う対象物である。
エンドエフェクター200は、アーム110の先端に取りつけられている。エンドエフェクター200は、ロボット制御装置300に制御されて、ワークピースW01をつかむことができ、また、つかんでいるワークピースW01を離すことができる。その結果、たとえば、ロボット100とエンドエフェクター200とは、ロボット制御装置300に制御されて、搬送装置500上のワークピースW01をつかんで移動させることができる。
カメラ400は、搬送装置500上の所定の位置にあるワークピースW01と、そのワークピースW01の周辺と、を含む写真画像を撮像することができる。カメラ400が生成した画像は、ロボット制御装置300に送信され、ロボット100の制御に使用される。カメラ400は、支柱F400に支持されている。支柱F400に支持されているカメラ400は、ロボット100の動作によって揺れる場合がある。
図2は、ロボット制御装置300の構成要素と、ロボット100が備えるサーボモーター410および位置センサー420、カメラ400、ならびに搬送装置500と、の関係を示すブロック図である。ロボット制御装置300は、制御信号生成部310と、位置制御部320と、速度制御部330と、フィルター処理部340と、トルク制御部350と、サーボアンプ360と、フィルター設定部345と、対象物位置取得部370と、トラッキング補正量取得部380と、力制御部390と、を備える。
制御信号生成部310は、エンドエフェクター200が位置すべき目標位置を表す位置制御信号を生成し、位置制御部320に出力する。制御信号生成部310は、トラッキング制御を実施すべき指示をユーザーから受けている場合には、トラッキング制御を実施すべき制御信号を、位置制御部320に出力する。制御信号生成部310は、力覚制御を実施すべき指示をユーザーから受けている場合には、力覚制御を実施すべき制御信号を、位置制御部320に出力する。
制御信号生成部310は、力覚制御を実施すべき指示をユーザーから受けている場合には、エンドエフェクター200が発生させるべき力およびその力の方向、ならびにトルクおよびそのトルクの向きを表す力制御信号を生成し、力制御部390に出力する。制御信号生成部310は、あらかじめ入力されているユーザーからの指定に応じて、振動低減処理を実施すべきか否かの制御信号を、フィルター設定部345に出力する。また、制御信号生成部310は、ロボット100が実行中の動作を表すコマンド(たとえば、CP制御を実施させるコマンドや、「Power Low」コマンドなど、)を、フィルター設定部345に出力する。
対象物位置取得部370は、カメラ400から受信したワークピースW01周辺の写真画像に基づいて、搬送装置500で搬送されているワークピースW01の位置を特定し、出力する。
搬送装置500は、ローラー510の回転位置を表す信号を出力する。ローラー510によってベルト520が駆動され、ベルト520上にワークピースW01が載っている。このため、ローラー510の回転位置に基づいて、ベルト520上で搬送されているワークピースW01の現在の位置を推定することができる。
トラッキング補正量取得部380は、搬送装置500からローラー510の回転位置を表す信号を受信する。また、トラッキング補正量取得部380は、対象物位置取得部370からワークピースW01の位置を受信する。トラッキング補正量取得部380は、それらの情報に基づいて、搬送装置500によって搬送されているワークピースW01の現在位置を決定する。そして、トラッキング補正量取得部380は、ワークピースW01の現在位置に基づいて、ワークピースW01の現在位置に応じたトラッキング補正量を決定し、出力する。
力制御部390は、エンドエフェクター200が発生させるべき力およびその力の方向、ならびにトルクおよびそのトルクの向きを表す力制御信号を、制御信号生成部310から受信する。力制御部390は、エンドエフェクター200に作用しているX軸、Y軸、Z軸の3軸方向の力と、X軸、Y軸、Z軸まわりのトルクとを、力覚センサー190から受信する。そして、力制御部390は、それらのパラメーターに基づいて、位置の補正量を決定し、出力する。
ロボット100の各関節を駆動するサーボモーター410には、それぞれ位置センサー420が取りつけられている。位置センサー420は、サーボモーター410の回転位置および回転速度を検出し、ロボット制御装置300に送信する。
位置制御部320は、制御信号生成部310から位置制御信号を受信する。位置制御部320は、力制御部390から位置の補正量を受信する。位置制御部320は、位置フィードバックとして、ロボット100の位置センサー420から、各サーボモーター410の回転位置を受信する。さらに、位置制御部320は、トラッキング補正量取得部380からワークピースW01の現在位置を受信する。位置制御部320は、それらの情報に基づいて、ロボット100の各サーボモーター410の速度制御信号を生成し、出力する。
なお、位置制御部320は、トラッキング制御を実施すべき指示を制御信号生成部310から受けていない場合には、速度制御信号の生成に際して、トラッキング補正量取得部380から受信した情報は考慮しない。また、位置制御部320は、力覚制御を実施すべき指示を制御信号生成部310から受けていない場合には、速度制御信号の生成に際して、力制御部390から受信した情報は考慮しない。
速度制御部330は、位置制御部320から速度制御信号を受信する。また、速度制御部330は、速度フィードバックとして、ロボット100の位置センサー420から、各サーボモーター410の回転速度を受信する。速度制御部330は、その速度制御信号と、各サーボモーター410の回転速度と、に基づいて、トルク制御信号を生成し、出力する。
フィルター設定部345は、制御信号生成部310から実行中の動作を表すコマンドを受信する。フィルター設定部345は、受信したコマンドに応じて、トルク制御信号から除去すべき1以上の周波数を指示する制御信号を生成し、出力する。フィルター設定部345は、トルク制御信号から除去すべき周波数は存在しない旨の制御信号を出力することもできる。
フィルター処理部340は、速度制御部330からトルク制御信号を受信する。また、フィルター処理部340は、フィルター設定部345から除去すべき1以上の周波数の制御信号を受信する。フィルター処理部340は、速度制御部330が出力したトルク制御信号に対して、制御信号に応じた1以上の周波数成分を除去する処理を行って、新たなトルク制御信号を生成し、出力する。フィルター処理部340は、帯域除去フィルターを使用して、このような処理を行う。
フィルター処理部340において除去される周波数は、実行中の動作を表すコマンドに応じてあらかじめ定められた周波数である。実行中の動作を表すコマンドに応じてあらかじめ定められた周波数は、(i)その動作の終了時点におけるロボット100の姿勢、または、(ii)その動作の終了時点においてロボット100がワークピースW01を保持している場合には、ワークピースW01を保持した状態におけるその動作の終了時点におけるロボット100の姿勢における、ロボット100の振動の振動数である。このような処理を行うことにより、動作の終了時点において、ロボット100がその振動数で共振してしまう事態を防止できる。以下、本明細書において、トルク制御信号などの制御信号において所定の周波数成分を低減することにより、その周波数による制御対象物の共振を低減する処理を、「振動低減処理」と呼ぶ。また、制御信号において所定の周波数成分を低減することにより、その周波数による制御対象物の共振を低減する機能を、「振動低減機能」と呼ぶ。
フィルター処理部340は、フィルター設定部345から、除去すべき周波数は存在しない旨の制御信号を受信した場合には、速度制御部330から受信したトルク制御信号を、そのまま出力する。このような処理を行うことにより、速度制御部330から受信したトルク制御信号に基づいて、本来の制御信号に忠実にロボットを駆動することができる。
トルク制御部350は、フィルター処理部340からトルク制御信号を受信する。また、サーボアンプ360から、各サーボモーター410に供給する電流の電流量を表すフィードバック信号を受信する。トルク制御部350は、そのトルク制御信号と、各サーボモーター410の電流フィードバック信号と、に基づいて、各サーボモーター410に供給する電流量を決定し、サーボアンプ360を介して、各サーボモーター410を駆動する。
B.ロボットシステムの制御:
(1)振動低減処理の切り替え:
図3は、本実施形態の振動低減機能において設定される、トルク制御信号から除去される周波数(本明細書において「対象振動数」という)を表す表示を示す図である。図3の表示は、ロボット制御装置300に、ディスプレイ602を備えた振動低減機能の設定装置として機能するロボット教示装置600が接続されて、振動低減機能の設定が行われる際に、ディスプレイ602に表示される。表中の左端の列は、設定を区別するための番号である。ユーザーは、各番号に対応する振動低減機能に対して、最大2個までの対象振動数を設定することができる。なお、「対象振動数」は、その系の固有振動数であってもよいし、その系の固有振動数の近傍の振動数であってもよい。
図3の例では、番号1の行には、一つの対象振動数を表すF11が、一つ目のパラメーターParam1として格納されている。番号2の行には、一つの対象振動数を表すF21が、一つ目のパラメーターParam1として格納されている。番号3の行には、二つの対象振動数を表すF31,F32が、パラメーターParam1,Param2として格納されている。すなわち、番号3の設定では、もとのトルク制御信号から、二つの周波数成分が除去される(図2の340参照)。なお、Param1,Param2として格納される数値は、周波数そのものであってもよいし、周波数を一義的に定めることができる何らかの数値や符号であってもよい。
本実施形態においては、一つの作業中に含まれる複数の動作において、振動低減機能の処理内容が切り換えられる。すなわち、一つの作業中に含まれる複数の動作において、トルク制御信号から除去される周波数成分が切り換えられる。たとえば、ある動作において、図3の番号1の設定にしたがってF11の周波数成分が除去された後、次の動作では、図3の番号2の設定にしたがってF21の周波数成分が除去される。
このような処理を行うことにより、一つの作業に複数の動作が含まれる場合に、各動作の終了時点の姿勢における共振を、それぞれ低減することができる。なお、本実施形態においては、除去すべき周波数成分の切り替えは、ロボット100の関節を駆動するすべてのモーターについて、同じタイミングで行われる。
図4は、連続する二つの動作におけるトルク制御信号値の変化を表すグラフである。図4において、横軸は時間を表し、縦軸はトルク制御信号の値を表す。図4のグラフ中、破線のグラフは、速度制御部330(図2参照)が出力したトルク制御信号の値を示す。実線のグラフは、フィルター処理部340が出力したトルク制御信号の値を示す。フィルター処理部340は、時刻tswにおいて、トルク制御信号から除去すべき周波数を、F11の周波数からF21の周波数に切り換える。その結果、フィルター処理部340が出力するトルク制御信号値は、図4において実線で示すようになる。
図4には表れていないが、フィルター処理部340は、F11の周波数を除去したトルク制御信号から、F21の周波数を除去したトルク制御信号へ、切り替えを行う際に、中間的なトルク制御信号を出力する。
より具体的には、フィルター処理部340は、F11の周波数を除去したトルク制御信号(以下、「先のトルク制御信号」と呼ぶ)から、F21の周波数を除去したトルク制御信号(以下、「後のトルク制御信号」と呼ぶ)への切り替えを行う際に、所定の時間区間においては、先のトルク制御信号の値と、後のトルク制御信号の値と、の両方を計算する。そして、それら2つのトルク制御信号の値の重み付け平均により、第3トルク制御信号の値を生成する。フィルター処理部340は、先のトルク制御信号と、後のトルク制御信号と、第3トルク制御信号とを、選択的に出力することができる。
先のトルク制御信号と後のトルク制御信号とを切り換えて使用する場合に、先のトルク制御信号の出力と後のトルク制御信号の出力との間に中間的な第3トルク制御信号の出力を行うことにより、トルクの乱れや異音を低減した切り替えを行うことができる。そして、第3トルク制御信号を用いず、先のトルク制御信号による動作に起因する振動が収束するのを待って後のトルク制御信号を出力する態様に比べて、先のトルク制御信号による動作の後、後のトルク制御信号による動作を開始するまでの時間を、短くすることができる。
なお、図4では、それぞれパラメータF11,F21で表される所定の周波数成分が除去された二つのトルク制御信号を切り換える例について説明した。しかし、所定の周波数成分が除去されたトルク制御信号と、周波数成分を除去されていないトルク制御信号(速度制御部330が出力したトルク制御信号)を切り換える場合も、中間的な第3トルク制御信号を出力することにより、同様の効果が得られる。
図5は、フィルター処理部340が第3トルク制御信号を生成する際に、先のトルク制御信号の値に付される重み(混合比)の割合[%]の一例を示すグラフである。図5において、横軸は時間を表す。ただし、図5で示される時間区間は、たとえば、図4で示される時刻tsw近傍のごく短い時間に対応する。
図6は、フィルター処理部340が図5に示す時間区間中に生成する先のトルク制御信号値、後のトルク制御信号値、およびそれらを使用して生成される第3トルク制御信号値、ならびに先のトルク制御信号値と後のトルク制御信号値の重みの一例を示す表である。図6の右から2番目の列に示された先のトルク制御信号の重み(混合比)を時間軸方向に沿ってグラフ化したものが図5である。なお、図6に示す先のトルク制御信号値と後のトルク制御信号値は、一例であり、図4のグラフに対応するものではない。
フィルター処理部340は、第1のトルク制御信号と第2のトルク制御信号の間に、複数の第3のトルク制御信号を出力する。その際、図5のグラフおよび図6の表に示されるように、フィルター処理部340は、先のトルク制御信号値の重みが小さくなる順に、複数の第3のトルク制御信号を生成し、出力する。なお、本明細書において、「Aが小さくなる順にXを出力する」とは、一部において、Aの値が等しい複数のXを続けて出力する態様を含むものである。たとえば、図5においては、時間区間1~2および時間区間12~13においては、先のトルク制御信号値の重みは一定である(図5および図6参照)。
このような処理を行うことにより、ある動作から次の動作に移行する際に、除去される周波数成分が変わることにより、経過時間0でトルク制御信号値が大きく変更されて、トルクの乱れや異音が発生する事態を防止することができる。また、このように重みを徐々に変更して制御信号値を切り換えることにより、前の動作に起因する制御信号値の変動やロボットの振動が所定値以下に収束してから次の動作を行う態様に比べて、短い時間で、次の動作を開始することができる。
図7は、フィルター処理部340が第3トルク制御信号を生成する際に、先のトルク制御信号値に付される重み(混合比)の割合[%]の他の例を示すグラフである。図7において、横軸は時間を表す。ただし、図7で示される時間区間は、図4で示される時刻tsw近傍のごく短い時間に対応する。
図8は、フィルター処理部340が図7に示す時間区間中に生成する先のトルク制御信号値、後のトルク制御信号値、およびそれらを使用して生成される第3トルク制御信号値、ならびに先のトルク制御信号値と後のトルク制御信号値の重みの一例を示す表である。図8の右から2番目の列に示された先のトルク制御信号の重み(混合比)を時間軸方向に沿ってグラフ化したものが図7である。なお、図8に示す先のトルク制御信号値と後のトルク制御信号値は、一例であり、図4のグラフに対応するものではない。
図5および図6の例では、先のトルク制御信号値に付される重み(混合比)は、所定の時間区間の間に直線的に減少している。これに対して、図7の例においては、先のトルク制御信号から後のトルク制御信号への切り替え処理の開始時近傍(図7の時間区間1~4参照)、および先のトルク制御信号から後のトルク制御信号への切り替え処理の終了時近傍(図7の時間区間10~13参照)における先のトルク制御信号値に付される重み(混合比)の変化割合は、その間の区間(図7の時間区間5~9参照)よりも小さい。このような態様とすることにより、図5および図6の例に比べて、よりトルク変動や異音の発生の少ない移行を実現することができる。
フィルター処理部340は、上記の図5~図8で説明した切り替え処理を、図4の時刻tswを含む所定の時間区間において、実行する。フィルター処理部340が除去する周波数成分の切り替えを開始するのは、以下の条件1,2がいずれも満たされるタイミングである。
なお、本明細書において、ある構成について「ある条件が満たされる場合に、~制御信号を出力する」とは、その構成自身が「ある条件が満たされるか否か」を判断して、所定の制御信号を出力する場合に限られない。すなわち、客観的に「ある条件が満たされる」という状態が現出している場合に、その構成が所定の制御信号を出力していれば、その構成について「ある条件が満たされる場合に、~制御信号を出力する」を満たすものである。
[条件1]先に出力されるトルク制御信号(先のトルク制御信号)にしたがった場合のロボット100のアーム110の先端の位置と、後に出力すべきトルク制御信号(後のトルク制御信号)にしたがった場合のロボット100のアーム110の先端の位置と、の偏差が、あらかじめ定められた位置しきい値未満であること。
[条件2]先に出力されるトルク制御信号にしたがった場合のロボット100のアーム110の先端の速度と、後に出力すべきトルク制御信号にしたがった場合のロボット100のアーム110の先端の速度と、の偏差が、あらかじめ定められた速度しきい値未満であること。
図9は、ある方向についてのロボット100のアーム110の先端の位置を示すグラフである。図9において、横軸は時間を表す。破線のグラフは、フィルター処理部340において、特定の周波数成分の除去を行わなかった場合のロボット100のアーム110の先端の位置を示すグラフである。実線のグラフは、フィルター処理部340において、周波数成分F11の除去を行った場合、すなわち先のトルク制御信号を出力した場合のロボット100のアーム110の先端の位置を示すグラフである。一点鎖線のグラフは、フィルター処理部340において、周波数成分F21の除去を行った場合、すなわち後のトルク制御信号を出力した場合のロボット100のアーム110の先端の位置を示すグラフである。
たとえば、時刻ts1,ts5においては、周波数成分F11の除去を行った場合の実線のグラフと、周波数成分F21の除去を行った場合の一点鎖線のグラフと、が交差している。このため、グラフの交点においては、両者の場合のアーム110の先端の位置の偏差は、0である(条件1参照)。しかし、周波数成分F11の除去を行った場合の実線のグラフの傾きと、周波数成分F21の除去を行った場合の一点鎖線のグラフの傾きは、両者の交点において異なっている。すなわち、両者の場合のアーム110の先端の速度の偏差は、存在する。そして、速度偏差の大きさは、本実施形態における速度しきい値よりも大きい(条件2参照)。このため、時刻ts1,ts5は、周波数の切り替えには適さないタイミングである。
たとえば、時刻ts2,ts4においては、周波数成分F11の除去を行った場合の実線のグラフと、周波数成分F21の除去を行った場合の一点鎖線のグラフと、がほぼ平行に走っている。このため、両者の場合のアーム110の先端の速度の偏差は、0に近い(条件2参照)。しかし、周波数成分F11の除去を行った場合の実線のグラフと、周波数成分F21の除去を行った場合の一点鎖線のグラフは、互いに離れている。すなわち、両者の場合のアーム110の先端の位置の偏差は、存在する。そして、位置偏差の大きさは、本実施形態における位置しきい値よりも大きい(条件1参照)。このため、時刻ts2,ts4も、周波数の切り替えには適さないタイミングである。
一方、時刻ts3においては、周波数成分F11の除去を行った場合の実線のグラフと、周波数成分F21の除去を行った場合の一点鎖線のグラフと、が交差している。このため、両者の場合のアーム110の先端の位置の偏差は、0である(条件1参照)。そして、周波数成分F11の除去を行った場合の実線のグラフの傾きと、周波数成分F21の除去を行った場合の一点鎖線のグラフの傾きも、平行に近い。すなわち、両者の場合のアーム110の先端の速度の偏差は、本実施形態における速度しきい値よりも小さい(条件2参照)。このため、時刻ts3は、周波数の切り替えには適したタイミングである。ts6も同様である。
このような条件下で除去すべき周波数の切り替えを行うことにより、条件によらず切り換えを行う態様に比べて、切り換えの際に、トルクの乱れや異音の少ない切り替えを行うことができる。
なお、本明細書において、フィルター処理部340は、「受付部」、「第2制御信号生成部」、「第3制御信号生成部」、および「制御信号切替部」とも呼ばれる。速度制御部330が生成するトルク制御信号は、「第1制御信号」とも呼ばれる。フィルター処理部340が、速度制御部330から受信したトルク制御信号から1以上の周波数成分を除去する処理を行って生成するトルク制御信号は、「第2制御信号」とも呼ばれる。フィルター処理部340が、先のトルク制御信号と後のトルク制御信号から生成する第3トルク制御信号は、「第3制御信号」とも呼ばれる。トルク制御部350とサーボアンプ360とは、「駆動信号生成部」とも呼ばれる。
図3の番号1の振動低減機能によってフィルター処理部340で生成されるトルク制御信号(図4の左側参照)は、本明細書において、「第1種の第2制御信号」とも呼ばれる。その際に除去される図3のF11で表される周波数成分は、「第1の周波数成分」とも呼ばれる。図3の番号2の振動低減機能によってフィルター処理部340で生成されるトルク制御信号(図4の右側参照)は、「第2種の第2制御信号」とも呼ばれる。その際に除去される図3のF21で表される周波数成分は、「第2の周波数成分」とも呼ばれる。
(2)振動低減処理の自動ON/OFF:
本実施形態においては、フィルター設定部345(図2参照)は、制御信号生成部310から受信したコマンドに応じて、(i)トルク制御信号から除去すべき1以上の周波数を指示する制御信号、または(ii)トルク制御信号から除去すべき周波数が存在しない旨の制御信号を、生成し、出力する。以下では、フィルター設定部345において、トルク制御信号から除去すべき周波数が存在しない旨の制御信号が生成される場合について、より詳細に説明する。
図10は、振動低減機能の設定の自動ON/OFFについて説明する際に参照するロボット100bを示す図である。ここで言及するロボットシステムは、搬送装置500は備えていない。また、ロボット100bのハードウェア構成は、ロボット100とは異なる。
ロボット100bは、フレームF100bに取り付けられている。フレームF100bは、略四角形の天板と、略四角形の支持台560bとを備える。フレームF100bは、天板の4個の角部と支持台560bの4個の角部とをそれぞれ結ぶ4本の支柱に支持されている。ロボット100bは、フレームF100bの天板に固定され、そこから下方に伸びている。
フレームF100bの4本の支柱のうち、一つの支柱F400bにカメラ400bが取りつけられている。カメラ400bの構成および機能は、カメラ400と同じである。フレームF100bの支持台560bには、ワークピースW01が乗せられる。
ロボット100bは、4個の関節X21~X24を備えたアーム110bを有する4軸ロボットである。関節X21,X22,X24は、ねじり関節である。関節X23は、並進関節である。ロボット100は、4個の関節X21~X24をそれぞれサーボモーターで駆動させることにより、アーム110bの先端に取りつけられたエンドエフェクター200bを、3次元空間中の指定された位置に指定された姿勢で配することができる。
ロボット100bは、アーム110bの先端に力覚センサー190bを備えている。力覚センサー190bの機能は、図1のロボット100の力覚センサー190と同じである。
エンドエフェクター200bは、ロボット100bのアーム110bの先端に取りつけられている。エンドエフェクター200bは、図示しないロボット制御装置に制御されて、ワークピースW01を保持することができ、また、保持しているワークピースW01を離すことができる。その結果、たとえば、ロボット100bとエンドエフェクター200bとは、ロボット制御装置に制御されて、支持台560b上のワークピースW01を持ち上げて移動させ、作業を行うことができる。
ロボット100bを制御するロボット制御装置は、搬送装置500からローラー510の回転位置を表す信号を受信しない(図2の500参照)。ロボット100bを制御するロボット制御装置の他の点は、図2のロボット制御装置300と同じである。技術の理解を容易にするため、図10において、ロボット制御装置は省略している。
図11は、振動低減処理を実施させる指示をユーザーから制御信号生成部310が受け取っている場合に、振動低減処理を実施しない条件と、それぞれの条件下で振動低減機能が無効にされた後、振動低減機能を有効にするタイミングの例を示す表である。以下で、振動低減処理を実施しない条件について説明する。
(i)「Motor On」コマンドの実行:
「Motor On」によって、ロボット100bのサーボモーターが励磁される。「Motor On」以前の状態では、ロボット100bのアーム110bはユーザーが手動で自由に動かすことができる。「Motor On」は、サーボモーターの回転位置を指定するものではない。このため、ロボット100bのアーム110bが、それまでにユーザーによって移動されていた場合には、ロボット100bのサーボモーターは、アーム110bの姿勢が本来、電源ON時にとっているべき基本姿勢とは異なっていても、アーム110bのその姿勢を保って、励磁される。すなわち、「Motor On」のコマンドが実行される際には、制御信号生成部310(図2参照)は、電源ON時にとっているべき基本姿勢ではなく、位置センサー420の出力に基づいて、実際のアーム110bの姿勢を表す位置制御信号を出す。
そのような場合には、電源ON時にとっているべき基本姿勢、すなわち、システムが想定していた姿勢から、ユーザーが手動で動かした姿勢に、経過時間0で位置制御信号が変更されたことになる。このとき、フィルター処理部340(図2参照)が所定の周波数を除去する振動低減処理を実施していると、0であるべきトルク制御信号は本来の値0から変動することになる(たとえば、図4参照)。その結果、静止しているべきアーム110bが、動いてしまう。このため、「Motor On」コマンドが実行される際には、振動低減処理は実施されない(図11の左欄、第1行目参照)。
(ii)「Motor Off」コマンドの実行:
「Motor Off」によって、ロボット100bのサーボモーターが励磁されなくなる。「Motor Off」コマンドの実行後は、「Motor On」コマンドが実行されるまで、ロボット100bのサーボモーターが駆動されることはない。このため、振動低減処理は実施されない(図11の左欄、第2行目参照)。
(iii)「Power Low」コマンドの実行:
「Power Low」は、ロボットを駆動するモーターのトルクが所定の第1閾値を超えないように動作する第1の動作モードを指定するコマンドである。第1の動作モードにおいては、サーボモーターが発生させるトルクは小さい。このため、ロボット100bのアーム110bの加速度も小さい。よって、一つの動作が終了してアーム110bが静止した際に、ロボットが共振する可能性も低い。このため、「Power Low」コマンドが実行される際には、振動低減処理を実施する要請は高くない。
一方、振動低減処理が実施されると、トルク制御信号値が本来の値から変更される(たとえば、図4参照)。その結果、ロボットのアーム110bおよびエンドエフェクター200bにかかる加速度も、本来の値からずれることになる。すると、位置フィードバック制御は行われるものの(図2参照)、エンドエフェクター200bは、本来の位置制御信号が指定していた位置から微妙にずれた位置に存在することになる。振動低減処理を実施する要請が高くないコマンドの実行中に、そのような位置ズレが生じるのは好ましくない。よって、「Power Low」コマンドが実行され、ロボットが第1の動作モードで動作している間は、振動低減処理は実施されない(図11の左欄、第3行目参照)。
(iv)「Power High」コマンドの実行:
「Power High」は、第1閾値よりも高いトルクを発生させることが許容される第2の動作モードを指定するコマンドである。第2の動作モードにおいては、サーボモーターが発生させるトルクは大きい。このため、ロボットのアーム110bの加速度も大きい。よって、一つの動作が終了した際に、動作終了時の姿勢において静止しているべきロボットが共振する可能性が高い。よって、「Power High」コマンドが実行される際には、振動低減処理を実施する要請が高い。よって、「Motor On」コマンドおよび「Motor Off」コマンドの実行時、および「Power Low」コマンドの実行時に実施されないこととなった振動低減機能は、「Power High」コマンドの実行時に再び実施される(図11の右欄、第1行目参照)。このような処理を行うことにより、第1の動作モードに比べてロボットの各部の加速度が大きくなる第2の動作モードにおいて、共振しないようにロボットを駆動することができる。
(v)トラッキング制御の実行:
搬送装置500上のワークピースW01にエンドエフェクター200を追従させるトラッキング制御(「追従処理」ともいう)を実施する際には(図1および図2の380,500参照)、エンドエフェクター200は、搬送装置500上のワークピースW01に正確に追従することが好ましい。よって、本来の位置制御信号の位置に対してエンドエフェクター200bの位置ズレが生じ得る振動低減機能は、コンベアトラッキングが行われている間は、実施されないことが好ましい。よって、トラッキング制御が実行されている間は、振動低減処理は実施されない(図11の左欄、第4行目参照)。そして、トラッキング制御が終了するか、またはPower Highコマンドが実行されると、振動低減処理が実施される(図11の右欄、第2行目参照)。このような処理を行うことにより、トラッキング制御の実行中は、移動する対象物に正確に追従しつつロボットを動作させることができる駆動信号を生成することができる。
(vi)力覚制御の実行:
力覚フィードバックを利用した制御を実行する際にも(図2の190,390参照)、エンドエフェクター200bは、本来の位置制御信号に従った正確な位置に配されることが好ましい。エンドエフェクター200bの位置ズレは、エンドエフェクター200bが発生させるべき力やトルクを、本来の値から減少または増大させてしまうためである。よって、力覚制御が実行されている間は、振動低減処理は実施されない(図11の左欄、第5行目参照)。そして、力覚制御が終了するか、またはPower Highコマンドが実行されると、振動低減処理が実施される(図11の右欄、第2行目参照)。このような処理を行うことにより、力覚制御の実行中は、ロボットに加えられる外力や反力を正確に考慮しつつロボットを動作させることができる駆動信号を生成することができる。
(vii)ジョグ動作の実行:
ジョグ動作は、移動距離を指定せずにロボットのサーボモーターを動かす動作である。ジョグ動作は、ロボットに動作を教示する際に実行される。ジョグ動作は、比較的低速で行われる。このため、ジョグ動作の動作中、またはジョグ動作が終了してアーム110bが静止した際に、ロボットが共振する可能性も低い。よって、ジョグ動作が実行される際には、振動低減処理を実施する要請は高くない。一方、振動低減処理が実施されると、前述のように、エンドエフェクター200bは、本来の位置制御信号が指定していた位置から微妙にずれた位置に存在する可能性がある。よって、ジョグ動作が実行されている間は、振動低減処理は実施されない(図11の左欄、第6行目参照)。そして、ジョグ動作が終了するか、またはPower Highコマンドが実行されると、振動低減処理が実施される(図11の右欄、第2行目参照)。
(viii)CP制御が実行されること:
連続経路制御は、あらかじめ定められた移動経路にしたがって前記ロボットを動作させる制御である。連続経路制御は、CP制御(Continuous Path制御)とも呼ばれる。連続経路制御の実行中は、エンドエフェクター200bは、各時刻において、本来の位置制御信号に従った正確な位置に配されることが好ましい。よって、連続経路制御が実行されている間は、振動低減処理は実施されない(図11の左欄、第7行目参照)。そして、連続経路制御が終了するか、またはPower Highコマンドが実行されると、振動低減処理が実施される(図11の右欄、第2行目参照)。
このような処理を行うことにより、連続経路制御の実行中は、あらかじめ定められた移動経路に正確にしたがってロボットを動作させることができる駆動信号を生成することができる。そして、周波数成分の低減を実行すべき旨の指示が制御信号生成部310に入力された場合に、他の制御において、所定の周波数で共振しないようにロボットを駆動することができる。
図12は、ロボット100bを動作させるプログラムリストの一例である。図12の例に沿って振動低減機能の自動ON/OFF、ならびに振動低減機能の実行について説明する。なお、図12においては、以下で言及するコマンドについて、下線を付している。
「Motor On」コマンドの実行によって、振動低減機能は実行されないこととなる。以下では、振動低減処理が実施されないこととなることを、「振動低減機能がOffされる」とも表記する。その後、「Power High」コマンドの実行によって、振動低減処理が実施される。以下では、振動低減処理が実施されるようになることを、「振動低減機能がOnされる」とも表記する。
「ABCSet 1,30」は、番号1の振動低減機能の周波数を、パラメーター「30」が表す所定の周波数に設定するコマンドである(図3参照)。
「ABCSet 2,15,30」は、番号2の振動低減機能の周波数を、パラメーター「15」が表す所定の周波数と、パラメーター「30」が表す所定の周波数とに設定するコマンドである(図3参照)。
「ABC 1」は、番号1の振動低減処理を実施する旨のコマンドである(図3参照)。
「ABC 2」は、番号2の振動低減処理を実施する旨のコマンドである(図3参照)。
このような処理を行うことによって、フィルター設定部345から周波数成分の低減を実行すべき旨の指示が入力された場合であって、実行されるコマンドなどに関する所定の下位条件が満たされる場合には、フィルター処理部340は、振動低減処理を実施する。その結果、所定の周波数で共振しないようにロボット100bを駆動することができる。また、フィルター設定部345から周波数成分の低減を実行すべき旨の指示が入力されない場合、すなわち、低減すべき周波数はない旨の制御信号が入力された場合には、フィルター処理部340は、本来の制御信号に忠実にロボット100bを駆動することができる。
本実施形態においては、下位条件として、周波数成分の低減を実行することが好ましくない場合が設定されている(図11参照)。このため、周波数成分の低減を実行すべき旨の指示が制御信号生成部310に入力されている場合であっても、周波数成分の低減を実行することが好ましくない場合には、自動的に周波数成分の低減が実行されないこととなる。よって、ユーザーは、各場面について、周波数成分の低減を実行すべき旨の指示と、周波数成分の低減を実行すべきではない旨の指示と、を入力する必要がない。このため、ユーザーの指示の負担が低減される。
図13は、ロボット制御装置に、ディスプレイ602を備えたロボット教示装置600が接続されている場合の、ディスプレイ602の表示を示す図である。図13の表示は、ディスプレイ602の下段に示される。一例として図12に示した一連の作業中、振動低減処理が実施されている間は、「振動低減」という表示Dvrが濃い色で表示される。一方、振動低減処理が実施されていない間は、振動低減処理が実施されている間よりも、「振動低減」という表示Dvrが薄い色で表示される。
このような処理を行うことにより、ユーザーは、振動低減処理が実施されて、ロボットを共振させる可能性が少ないトルク制御信号が生成されて、ロボットが駆動されていることを、ロボットの動作中に、容易に知ることができる(図12および図13参照)。このような処理を行うロボット制御装置300およびロボット教示装置600の機能部を、表示制御部305,615として図1に示す。表示制御部305は、ロボット制御装置300のCPU303によって実現される。表示制御部615は、ロボット教示装置600のCPU610によって実現される。
なお、本明細書においては、フィルター処理部340は、「第2制御信号生成部」および「制御信号切替部」とも呼ばれる(図2参照)。制御信号生成部310は、「受付部」とも呼ばれる。トルク制御部350とサーボアンプ360とは、「駆動信号生成部」とも呼ばれる。
制御信号生成部310(図2参照)が、振動低減処理を実施させる指示をユーザーから受け取っていないことは、「第1の条件」に含まれる「前記周波数成分の低減を実行すべき旨の指示が入力されないこと」として機能する。制御信号生成部310(図2参照)が、振動低減処理を実施させる指示をユーザーから受け取っていることは、「第2の条件」に含まれる「前記周波数成分の低減を実行すべき旨の指示が入力されたこと」として機能する。
ロボット制御装置に接続されるロボット教示装置600のディスプレイ602は、「表示部」とも呼ばれる。
上記実施形態において、位置制御部320が、トラッキング制御を実施すべき指示を制御信号生成部310から受信し、トラッキング補正量取得部380から受信した情報を考慮して速度制御信号を生成しており(図2参照)、その結果、速度制御部330がその速度制御信号に応じてトルク制御信号を生成している。これらの処理が行われていることは、「第3の条件」の「下位条件」としての「移動する対象物に追従しつつ前記ロボットを動作させる追従処理を実現するように、前記第1制御信号が生成されていること」として機能する。
力覚センサー190,190b(図1、図2、および図10参照)は、「力検出部」とも呼ばれる。位置制御部320が、力覚制御を実施すべき指示を制御信号生成部310から受信し、力制御部390から受信した情報を考慮して速度制御信号を生成しており(図2参照)、その結果、速度制御部330がその速度制御信号に応じてトルク制御信号を生成していることは、「下位条件」としての「前記ロボットに設けられた力検出部の出力に基づいて、前記第1制御信号が生成されていること」として機能する。
上記実施形態において、制御信号生成部310がCP制御を実施させるコマンドにしたがって、目標位置を表す位置制御信号を生成し、位置制御部320がその位置制御信号に応じて速度制御信号を生成し、速度制御部330が速度制御信号に応じてトルク制御信号を生成している。これらの処理が行われていることは、「下位条件」としての「あらかじめ定められた移動経路にしたがって前記ロボットを動作させる連続経路制御にしたがって前記第1制御信号が生成されていること」として機能する。
「Power Low」コマンドが実行されている状態で、速度制御部330がトルク制御信号を生成していることは、「第2の条件」に含まれる「前記第2の動作モードにしたがって前記第1制御信号が生成されていること」として機能する。
C.振動低減処理の設定:
図14は、本実施形態のロボットシステムの運用の流れを示すフローチャートである。本実施形態のロボットシステムの運用においては、まずステップS100において、工場などにロボットが設置されて振動低減機能の設定が行われる。たとえば、図3に示すParam1,Paramに、具体的なパラメーターが設定される。その後、ステップS200において、ロボットがその工場などで運用され、製品の製造等に使用される。上記B.で説明した内容は、ロボットの運用段階(図14のS200)におけるロボットの制御内容である。以下では、図14のS100に相当する振動低減機能の設定について説明する。
(1)振動計測装置の取りつけ:
図15は、振動低減機能の設定を行う際のシステムの構成を示す図である。ロボット100、エンドエフェクター200、およびロボット制御装置300の構成および機能は、図1および図2を使用して説明したとおりである。ロボット100および他の部位に、互いに直交する3軸の方向の加速度の測定が可能な振動計測装置が取りつけられる。図15の例においては、ロボット100に取り付けられる振動計測装置700は、IMU(Inertial Measurement Unit)である。また、ロボット制御装置300には、振動低減機能の設定装置として機能するロボット教示装置600が接続される。以下、ロボット教示装置600を設定装置600とも表記する。
設定装置600は、出力装置および入力装置として機能するタッチセンサーつきのディスプレイ602と、入力装置として機能するキー604およびトラックポイント606と、を備えたコンピューターである。設定装置600は、振動計測装置700およびロボット制御装置300に接続される。設定装置600は、振動計測装置700からの出力に基づいて、振動計測装置700が取りつけられた対象物の対象振動数を特定することができる。設定装置600は、ロボット制御装置300のRAM301またはROM302(図2参照)に、その対象振動数を記憶させることができる。その結果、ロボット制御装置300のフィルター設定部345(図2参照)は、その対象振動数を参照してフィルター処理部340に制御信号を出力し、フィルター処理部340は、フィルター設定部345からの制御信号に基づいて、その対象振動数の成分を除去したトルク制御信号を生成する。
図16は、本実施形態で採用される振動計測装置700を示す斜視図である。本実施形態で採用される振動計測装置700は、IMU(Inertial Measurement Unit)である。振動計測装置700は、第1支持部710と、第2支持部720と、接続部730と、測定部740と、出力部750と、取付部を備える。なお、図16には、取付部は示されていない。
測定部740は、X軸、Y軸、Z軸方向の加速度を計測できる加速度センサーと、X軸、Y軸、Z軸方向をそれぞれ回転の中心とする角速度を計測できるジャイロセンサーと、を備える。測定部740は、自身のX軸、Y軸、Z軸方向の加速度と、X軸、Y軸、Z軸方向をそれぞれ回転の中心とする角速度とを、出力することができる。測定部740は、板状の部材である第1支持部710に固定されている。
測定部740の上面には、測定部740が測定できる加速度および角速度の方向である、互いに直交するX軸、Y軸、Z軸の方向が図示されている。このような表記745を有することにより、ユーザーは、振動計測装置700をロボット100に取りつける際に、設定装置600の処理に沿った向きに、間違うことなく振動計測装置700をロボット100に取りつけることができる。
出力部750は、出力端子を備えている。出力部750は、測定部740に接続されており、測定部740の測定結果を信号として出力端子から外部に出力することができる。出力端子は、設定装置600に有線接続される。出力部750も、第1支持部710に固定されている。
第1支持部710は、略四角形の板状の部材である。第1支持部710は、一対の接続部730によって、板状の第2支持部720に接続されている。一対の接続部730は、ねじ穴715を貫通するネジ(図示せず)によって、第1支持部710に固定される。また、一対の接続部730は、ねじ穴716を貫通するネジ(図示せず)によって、第2支持部720に固定される。
図17は、振動計測装置700を示す斜視図である。図17に示すX軸、Y軸、Z軸は、図16に示したX軸、Y軸、Z軸に対応する。第2支持部720は、略四角形の板状の部材である。第2支持部720は、一対の接続部730が接続されている穴714,716の間の位置に、3個の接続穴724,722,724を有する。接続穴724,722,724の内面には、雌ねじが形成されている。
図18は、第1の取付部760を備える振動計測装置700を示す斜視図である。第1の取付部760は、両端に雄ネジが形成されている棒状の部材である。第1の取付部760は、第2支持部720の中央の穴722(図16および図17参照)にねじ込まれて固定される。ロボット100などの測定対象物に対応する雌ねじが形成された穴が設けられている場合には、振動計測装置700は、第1の取付部760によって測定対象物に取りつけられる。
図19は、第2の取付部770,770を備える振動計測装置700を示す斜視図である。第2の取付部770は、円柱状の磁石である。第2の取付部770は、第2支持部720の穴724,724(図16および図17参照)にねじによって固定される。ロボット100などの測定対象物の振動を測定したい部位が磁性体で構成されている場合には、振動計測装置700は、第2の取付部770によって測定対象物に取りつけられる。
図20は、第3の取付部780,780を備える振動計測装置700を示す斜視図である。第3の取付部780,780は、結束バンドを通すための一対の貫通孔782,782をそれぞれ有する固定器具である。第3の取付部780,780は、第2支持部720の穴724,724(図16および図17参照)にねじによって固定される。振動計測装置700は、第3の取付部780,780がそれぞれ備える貫通孔782,782に結束バンドを通されて、結束バンドによって測定対象物に対して固定される。
図21は、第4の取付部790を備える振動計測装置700を示す斜視図である。第4の取付部790は、粘着部材で構成される粘着層である。第4の取付部790は、粘着部材の粘着性によって第2支持部720に固定される。振動計測装置700は、第4の取付部790の粘着性によって測定対象物に取りつけられる。
第2支持部720は、第1の取付部760~第4の取付部790のいずれをも選択的に取りつけられることができる。このような構成とすることにより、様々な種類の測定対象物に振動計測装置700を取りつけることができる。その結果、ロボットによって振動する、ロボットやロボットに設けられたエンドエフェクターとは異なる部位が、ロボットの制御に影響を与える場合に、そのような任意の部位に振動計測装置700を取りつけることができる。その結果、ロボットとは異なる部位が振動することによってロボットの制御に与えられる悪影響を、低減することができる。
図15の例では、振動計測装置700は、ロボット100のアーム110の先端に取りつけられている。振動計測装置700は、互いに取付方式が異なる第1~第4の取付部760~790のうちの適切な取付部を選択されて、ロボット100のアーム110の先端に取りつけられる。
その結果、設定装置600は、振動計測装置700から得られるロボット100のアーム110の先端部の振動の情報に基づいてその対象振動数を決定し、ロボット100のアーム110の先端部の振動を発生させにくいトルク制御信号をロボット制御装置300に出力させることができる(図2の340参照)。その結果、ロボットにおいて、振動が問題となっている部位に、加速度や角速度を測定できるセンサーが設けられていない場合にも、そのようなロボットの振動を発生させにくいトルク制御信号を生成することができる。
たとえば、ロボット100の動作終了後、ロボットの基部からエンドエフェクターにかけての部分においては、相対的な振動が十分に収束しているが、ロボット全体を支持しているフレームがロボットの動作によって振動する場合には、第1~第4の取付部760~790のうちの適切な取付部を選択して、ロボットを支持しているフレームF100b(図10参照)に振動計測装置700を取りつけることができる。
その結果、設定装置600は、振動計測装置700から得られるフレームF100bの振動の情報に基づいてその対象振動数を決定し、フレームF100bの振動を発生させにくいトルク制御信号をロボット制御装置300に出力させることができる(図2の340参照)。その結果、フレームに支持されたロボットの振動を低減することができる。
たとえば、ロボットの動作終了後、ロボットの振動は十分収束しているが、ロボットの画像を撮像しているカメラがロボットの動作によって振動し、ロボットの振動が十分収束していないと判断されて、次の動作の開始が遅れている場合には、以下のような対応を取ることができる。すなわち、第1~第4の取付部760~790のうちの適切な取付部を選択して、カメラ400b(図10参照)やカメラ400を支持している支柱F400(図1参照)に振動計測装置700を取りつけることができる。
その結果、設定装置600は、振動計測装置700から得られるカメラの振動の情報に基づいてその対象振動数を決定し、カメラの振動を発生させにくいトルク制御信号をロボット制御装置300に出力させることができる(図2の340参照)。その結果、カメラが振動することによってロボットの制御に与えられる悪影響、および/または、たとえばワークピースW01が撮像された画像に基づく制御に与えられる悪影響を、低減することができる。
たとえば、ロボットの動作終了後、ロボットの振動は十分収束しているが、ワークピースがロボットによって置かれる場所や、ロボットによって移動されるワークピースが置かれている場所や、ロボットがワークピースに対して作業を行う場所(図10の例では支持台560b)がロボットの動作によって振動し、その振動が十分収束していないと判断されて、次の動作の開始が遅れている場合には、以下のような対応を取ることができる。すなわち、第1~第4の取付部760~790のうちの適切な取付部を選択して、それらの場所に振動計測装置700を取りつけることができる(図10のP706参照)。
その結果、設定装置600は、振動計測装置700から得られるそれらの場所(たとえば支持台560b)の振動の情報に基づいてその対象振動数を決定し、それらの場所の振動を発生させにくいトルク制御信号をロボット制御装置300に出力させることができる(図2の340参照)。その結果、それらの場所がロボットの動作によって振動することにより、作業中における動作開始までの待ち時間が長くなってしまう事態を防止できる。
以上のように、ロボットによって振動する、ロボットとは異なる部位がロボットの制御に影響を与える場合には、そのような部位に振動計測装置700を取り付け、設定装置600で設定を行うことにより、以下のような効果が得られる。すなわち、ロボット制御装置300は、ロボットとは異なる部位の振動を発生させにくいトルク制御信号を生成し、ロボットに対して出力することができる。その結果、ロボットとは異なる部位が振動することによってロボットの制御に与えられる悪影響を、低減することができる。
一方、図4~図8を使用して説明したように、ロボット制御装置300は、振動低減処理において除去する周波数成分を切り換えて、トルク制御信号を生成することができる。以上で説明した、異なる部位の振動を発生させにくいトルク制御信号を生成する複数の振動低減処理についても、ロボット制御装置300は、それらを切り換えて、順に実施することができる。
たとえば、ロボット制御装置300は、ロボットとは異なる部位の振動を生じさせにくいトルク制御信号と、ロボット自身の振動を生じさせにくいトルク制御信号を、切り替えてロボットに対して出力することができる。また、ロボット制御装置300は、ロボットとは異なる第1の部位の振動を生じさせにくいトルク制御信号と、ロボットとは異なる第2の部位の振動を生じさせにくいトルク制御信号と、ロボット自身の振動を生じさせにくいトルク制御信号を、切り替えてロボットに対して出力することもできる。
また、ロボット制御装置300のフィルター処理部340(図2参照)は、図3で説明したように、複数の周波数成分を除去したトルク制御信号を生成することができる。このため、ロボット制御装置300は、ロボットとは異なる部位の振動と、ロボット自身の振動と、のいずれをも生じさせにくいトルク制御信号を、ロボットに対して出力することができる。さらに、ロボット制御装置300は、ロボットとは異なる第1の部位の振動と、ロボットとは異なる第2の部位の振動と、ロボット自身の振動と、のいずれをも生じさせにくいトルク制御信号ロボットに対して出力できるように構成してもよい。
なお、以上では、対象振動数の測定および設定において、振動計測装置700として、3軸方向についての加速度と角速度を測定できるIMUを採用する態様について説明した。しかし、対象振動数の測定の際に測定対象物に取りつける振動計測装置は、たとえば、互いに直交する3軸について、加速度を測定することができる加速度センサーを採用することができる。また、それぞれ1軸の方向について加速度を測定することができる複数の加速度センサーを、互いの軸が直交するように測定対象物に取りつけて、互いに直交する2軸、または互いに直交する3軸について、加速度を測定することもできる。そのような加速度センサーにおいても、図18~図21を使用して説明したような、出力部に対して交換可能な取付部を採用することにより、様々な測定対象に加速度センサーを取りつけることができる。
(2)IMUを使用した対象振動数の測定および設定:
図22は、振動低減機能の設定の手順を示すフローチャートである。ステップS210においては、測定対象物に振動計測装置700が取りつけられる。測定対象物への振動計測装置700が取りつけ方法については、上記(1)において、図1、図10,図15~図21を使用して説明したとおりである。
図22のステップS220においては、加振プログラムを作成する。本実施形態では、ハンマーによるロボットへの衝撃の適用に代えて、ロボットのサーボモーターを駆動して、あらかじめ定められた動作(以下、「特定動作」ともいう)をロボットに行わせることにより、ロボットを振動させる。そして、特定動作を終了した後のロボットの残留振動が測定される。ステップS220においては、ロボットに特定動作を行わせるためのプログラム(本明細書において「加振プログラム」ともいう)を作成する。
図23は、ロボットのあるサーボモーターに対して指示される特定動作の一例を示すグラフである。図23のグラフにおいて、横軸は時間tを表し、縦軸はある関節のサーボモーターの動作速度Vを表す。特定動作Mt1においては、サーボモーターの動作速度Vは、0から直線的に増加し、その後、直線的に減少して0に戻る。特定動作Mt1の開始から終了までの時間はTである。
図24は、特定動作Mt1の速度の波形に対して高速フーリエ変換を行った結果を示す。図24において、横軸は周波数を表し、縦軸は各周波数のパワーの実効値を表す。特定動作Mt1は、周波数fp1において最も高いパワーを有し、そこから離れるほど、そのパワーが低くなることが分かる。
図25は、ロボットのあるサーボモーターに対して指示される特定動作Mt2を示すグラフである。図25のグラフにおいて、横軸は時間tを表し、縦軸はサーボモーターの動作速度Vを表す。特定動作Mt2においても、サーボモーターの動作速度Vは、0から直線的に増加し、直線的に減少して0に戻る。最大速度はMt1と同じである。ただし、特定動作Mt2の開始から終了までの時間は2Tである。
図26は、特定動作Mt2の速度の波形に対して高速フーリエ変換を行った結果を示す。図26において、横軸は周波数を表し、縦軸は各周波数のパワーの実効値を表す。特定動作Mt2は、周波数fp2(<fp1)において最も高いパワーを有し、そこから離れるほど、そのパワーが低くなることが分かる。
図23~図26から分かるように、特定動作の速度変化の波形によって、各周波数成分が有するパワーが異なる。加速度が大きく高周波成分が多い特定動作(図23および図24参照)は、加速度が小さく高周波成分が少ない特定動作(図25および図26参照)に比べて、より広い範囲の周波数の残留振動を生起させることができる。その結果、より正確に対象振動数を決定することができる。一方、加速度が小さい特定動作(図25および図26参照)は、ロボットにかかる力が小さいため、ロボットのハードウェアに与える影響も小さい。図22のステップS220においては、残留振動の測定において重視される項目(測定の正確さやハードウェアへの影響の小ささ)に応じて、プログラムが作成される。なお、ステップS220においては、複数の特定動作を行うように、プログラムを作成することもできる。
ここでは、技術の理解を容易にするため、三角形状の速度変化を有する動作を示した(図23および図25参照)。しかし、特定動作におけるロボットの動きは、そのロボットの構造や、低減させたい振動が発生する際のロボットの姿勢などに応じて、作成することができる。たとえば、アームが所定の姿勢になった際に発生している残留振動を低減させたい場合には、動作終了時にアームがその姿勢になる動作を、特定動作とすることができる。また、対象物を持ち上げて、他の場所に移動させて置く、という動作において発生している残留振動を低減させたい場合には、対象物を持ち上げて、他の場所に移動させて置く動作を、所定の移動距離および所定の移動速度で実施する動作を、特定動作とすることができる。
予想される固有振動の周波数や方向、および/または振動の低減をしたいロボットの姿勢などに応じて、複数の特定動作をあらかじめ用意することにより(図23および図25参照)、目的とする振動の対象振動数を正確かつ容易に検出することができる特定動作をロボットに行わせることができる。
上記のような典型的かつ互いに異なる複数の動作は、あらかじめ複数のコマンドとして用意しておくことができる。また、互いに異なる複数の動作を、コマンドとそのパラメーターの複数の組み合わせとして、あらかじめ設定装置600のRAM630に記憶させておくこともできる。
特定動作である、互いに異なる複数の動作としては、動作の終了時のロボットの姿勢が互いに異なる複数の動作があげられる。そのような態様とすれば、その姿勢における振動の低減が望まれるロボットの姿勢に応じて、複数の特定動作をあらかじめ用意することによって、目的とする振動の対象振動数を正確かつ容易に検出することができる。また、互いに異なる複数の動作としては、動作の終了までのアームの移動速度が互いに異なる複数の動作があげられる。動作の終了までのアームの移動速度が互いに異なる複数の動作には、動作終了時のアームの姿勢が同じであっても、動作の終了までのアームの移動速度が互いに異なる複数の動作が含まれる。
また、たとえば、プログラム中のコマンドのパラメーターを指定することにより、特定動作において駆動させるロボットのアームの関節を指定することができる。このような態様とすることにより、その関節における振動の低減が望まれているロボットの関節に応じて、特定動作をあらかじめ用意することによって、目的とする振動の対象振動数を正確かつ容易に検出することができる。
図22のステップS230においては、設定装置600は、S220で作成されたプログラムを実行すべき旨の指示を、ユーザーインターフェイス画像を表示しているタッチディスプレイ602、キー604、およびトラックポイント606を介してユーザーから受け取って、ステップS220で作成されたプログラムをロボット制御装置300に実行させる。その結果、プログラムにしたがってロボットが特定動作をする。ユーザーからプログラムの実行の指示を受け取る設定装置600の機能部を、受付部611として、図15に示す。受付部611は、設定装置600のCPU610によって実現される。
ロボット制御装置300においては、制御信号生成部310(図2参照)が特定動作の実行の指示を表すコマンドを設定装置600から受け取り、そのコマンドおよびそのコマンドに付属するパラメーターに応じて、位置制御信号を出力する。コマンドとパラメーターの組み合わせによって、特定の関節を駆動すべき旨が指定されている場合には、制御信号生成部310は、その関節のみを駆動するように、位置制御信号を出力する。
位置制御部320と、速度制御部330と、フィルター処理部340と、トルク制御部350と、サーボアンプ360とが、ロボット100のサーボモーター410を駆動させる(図2参照)。なお、ステップS230においては、フィルター処理部340は、特定の周波数成分を除去する処理を行わず、速度制御部330から受信したトルク制御信号を、そのままトルク制御部350に出力する。
図22のステップS240においては、特定動作の終了後の残留振動が測定される。より具体的には、ロボット等に取りつけられた振動計測装置700によって測定された特定動作の実行による振動の測定結果を、設定装置600が、振動計測装置700から受け付ける。受信した振動の測定結果は、設定装置600のRAM630にデータファイルとして保存される。振動の測定結果を受け付けて保存する設定装置600の機能部を、「測定結果受付部613」として図15に示す。測定結果受付部613は、設定装置600のCPU610によって実現される。
このような態様とすることにより、外部からハンマーなどでロボットに衝撃を加えることなく、振動計測装置700から得られるロボットの動作の実行による振動の測定の結果に基づいて、ロボットの対象振動数を知ることができる。
なお、設定装置600は、ロボット制御装置300から受信する特定動作を指示するコマンドの終了をトリガーとして、残留振動の測定を行うことができる。より具体的には、ロボット100の動作の終了を指示する位置制御信号が制御信号生成部310から出されたことをロボット制御装置300から通知されて、設定装置600は、振動を測定すべき時間区間の開始時刻、または振動を測定された時間区間のうち、対象振動数を得るための処理対象とすべき時間区間の開始時刻を定めることができる。たとえば、ロボット100の動作の終了を指示する位置制御信号を受領してから所定の時間が経過したタイミングを、処理対象とすべき時間区間の開始時刻とすることができる。
そのような処理を行うことにより、ユーザーは、自ら測定の開始時刻を指定することなく、対象とする状態において制御対象物を最も大きく振動させる可能性が高い対象振動数を、知ることができる。
図22のステップS250においては、設定装置600において、特定動作の実行による振動の測定結果が処理され、処理結果がディスプレイ602に表示される。
図27は、ステップS250においてディスプレイ602に表示される出力の一例である。図27の表示は、処理結果の出力として機能するだけではなく、処理内容を指定するための入力を受けつける機能も有するユーザーインターフェイスUI01である。ユーザーインターフェイスUI01は、入力窓UI11、角速度グラフGg、加速度グラフGa、入力窓UI31、処理対象グラフGsa、開始時間指示UI51、終了時間指示UI52、拡大グラフGsaa、周波数グラフGf、周波数指定UI23、周波数表示UI24、最大周波数表示UI25、停止スイッチUI45を含む。
入力窓UI11は、設定装置600のRAM630に保存されている振動の測定結果のデータファイルのうち、処理すべきデータファイルを指定するための入力窓である。ここで指定されたデータファイルの情報が処理されて、その結果に基づいて、ユーザーインターフェイスUI01の各表示がなされる。このような態様とすれば、ユーザーは、あらかじめ測定された振動のデータを使用して、容易に制御対象物の対象振動数を知ることができる。
停止スイッチUI45は、ユーザーインターフェイスUI01を通じて行われる処理を、強制的に終了させるためのスイッチである。
図28は、角速度グラフGgを示す(図27も参照)。図28において、横軸は時間を示し、縦軸は角速度を示す。角速度グラフGgには、振動計測装置700から受信した情報に基づいて、X軸、Y軸、Z軸をそれぞれ回転の中心とする角速度の時間変化が示される。X軸を中心とする角速度はグラフGxで示される。Y軸を中心とする角速度はグラフGyで示される。Z軸を中心とする角速度はグラフGzで示される。
図28の角速度グラフGgにおいては、X軸を中心とする角速度Gxがまずマイナス方向に大きく振れて0に戻り、その後、プラス方向に大きく振れて0に戻っている。そして、Y軸を中心とする角速度GyとZ軸を中心とする角速度Gzは、ほとんど変化がない。すなわち、図22のステップS230において、特定動作として、X軸を中心とする回転運動の往復動が行われたことがわかる。
図29は、加速度グラフGaを示す(図27も参照)。図29において、横軸は時間を示し、縦軸は加速度を示す。加速度グラフGaには、振動計測装置700から受信した情報に基づいて、X軸、Y軸、Z軸の方向の加速度の時間変化が示される。X軸方向の加速度はグラフAxで示される。Y軸方向の加速度はグラフAyで示される。Z軸方向の加速度はグラフAzで示される。
図30は、処理対象グラフGsaを示す(図27も参照)。図30において、横軸は時間を示し、縦軸は変化量を示す。処理対象グラフGsaには、X軸、Y軸、Z軸をそれぞれ回転の中心とする角速度、ならびにX軸、Y軸、Z軸の方向の加速度のうち、選択された対象が示される。対象の選択は、入力窓UI31(図27参照)に入力される。ここでは、Z軸方向の加速度Azが選択されたものとする。その結果、処理対象グラフGsaの表示は、加速度グラフGaのグラフAzと相似である。
処理対象グラフGsa中には、開始時間指示UI51と、終了時間指示UI52とが示される。開始時間指示UI51は、処理対象グラフGsaで表されている測定結果のうち、処理対象とする部分の開始時刻を指定するためのユーザーインターフェイスである。終了時間指示UI52は、処理対象グラフGsaで表されている測定結果のうち、処理対象とする部分の終了時刻を指定するためのユーザーインターフェイスである。開始時間指示UI51と終了時間指示UI52とは、それぞれタッチディスプレイ602上でドラッグされて、左右方向に動かされることができる。
このような態様とすれば、ユーザーは、振動データのうち、対象振動数を得るための処理に対するノイズを多く含む部分を除外して、考慮すべき時間区間を指定し、対象振動数を得るための処理を適用させることができる。なお、開始時間指示UI51は、処理対象グラフGsaで表されている測定結果のうち、ユーザーが認識できる明確な変化が終了したと思われるタイミングに設定されることが好ましい。処理対象グラフGsaで表されている測定結果のうち、ユーザーが認識できる明確な変化が表れている部分は、特定動作自体の動きを表している部分である可能性が高い。
なお、開始時間指示UI51は、デフォルトでは、特定動作の終了を指示する位置制御信号が制御信号生成部310(図2参照)から出されたタイミングである。また、終了時間指示UI52は、デフォルトでは、開始時間指示UI51からあらかじめ定められた時間(たとえば、0.5秒)が経過したタイミングである。
このような態様とすることにより、処理対象となる時間区間は、制御対象物に対して駆動させる制御信号が出されていない時間区間を含むことができる。その結果、残留振動に相当する部分を含む振動データに基づいて計算された対象振動数を表すパラメーターを表示することができる。このため、静止すべき状態において制御対象物を最も大きく振動させる可能性が高い対象振動数を、ユーザーインターフェイスUI01を介して、ユーザーは知ることができる。
なお、開始時間指示UI51は、特定動作の終了を指示する位置制御信号が制御信号生成部310(図2参照)から出されたタイミングから所定の時間T51(たとえば、0.1秒)が経過した後のタイミングとすることもできる。終了時間指示UI52は、開始時間指示UI51からあらかじめ定められた時間T52(T52>T51。たとえば、T52=0.5秒)が経過したタイミングである。
このような態様とすることにより、処理対象となる時間区間のすべてが制御対象物に対して駆動させる制御信号が出されていない時間区間となるように、処理対象となる時間区間を設定できる。その結果、残留振動を表す振動データに基づいて計算された対象振動数を表すパラメーターを、ユーザーインターフェイスUI01に表示することができる。このため、静止すべき状態において制御対象物を最も大きく振動させる可能性が高い対象振動数を、ユーザーは知ることができる。
図31は、拡大グラフGsaaを示す(図27も参照)。図31において、横軸は時間を示し、縦軸は変化量を示す。拡大グラフGsaaは、処理対象グラフGsaのうち、開始時間指示UI51と終了時間指示UI52で区切られた時間区間に対応する部分を、縦軸方向に拡大したグラフである。
図32は、周波数グラフGfを示す(図27も参照)。図32において、横軸は周波数を示し、縦軸は各周波数の強度を示す。周波数グラフGfは、拡大グラフGsaaに対して高速フーリエ変換を行った結果を表すグラフである。周波数グラフGf中には、周波数指定UI23が示される。周波数指定UI23は、周波数グラフGf中において、周波数を指定するためのユーザーインターフェイスである。周波数指定UI23は、タッチディスプレイ602上でドラッグされて、左右方向に動かされることができる。周波数指定UI23は、タッチディスプレイ602上で指定された位置から最も近い位置にある周波数グラフGf中のピーク(局所的最大値)の位置に自動的に位置あわせされる。周波数指定UI23が示している周波数は、周波数表示UI24(図27参照)に数値で表示される。
図27に示す最大周波数表示UI25には、周波数グラフGf中で最大のパワーを有する周波数を数値が自動的に示される。ここでは、110.0901Hzが示されている(周波数グラフGfの右部分も参照)。最大周波数表示UI25で示される周波数は、測定対象を共振させる振動数である可能性が高い。このため、このような態様とすれば、制御対象物を最も大きく振動させる可能性が高い対象振動数を、ユーザーは知ることができる。
なお、ロボット制御装置300に動作を指示し、振動計測装置700から得られる情報を処理して、周波数グラフGfや最大周波数表示UI25などユーザーインターフェイスUI01中の表示のためのデータを生成する設定装置600の機能部を、「処理部612」として図15に示す。処理部612は、設定装置600のCPU610によって実現される。
ユーザーは、最大周波数表示UI25と周波数グラフGfを確認した後、最大周波数表示UI25で表示される周波数が低減すべき周波数(測定対象の対象振動数)であると判断した場合には、以下の処理を行う。すなわち、図22のステップS260において、ユーザーインターフェイス画像を表示しているタッチディスプレイ602、キー604、およびトラックポイント606を介して、その周波数を、除去すべき周波数成分として、ロボット制御装置300に入力する。ロボット制御装置300は、その周波数を所定の番号の振動低減機能のパラメーターParam1としてRAM301またはROM302に記憶する(図3参照)。
また、最大周波数表示UI25と周波数グラフGfを確認した結果、最大周波数表示UI25で表示される周波数が低減すべき周波数ではないと判断した場合には、ユーザーは、ユーザーインターフェイス画像を表示しているタッチディスプレイ602を操作して、測定対象物の対象振動数であると思われる周波数グラフGf中の他の周波数の近傍に、周波数指定UI23を移動させる。すると、周波数指定UI23は自動的に近傍のピークの位置に自動的に位置あわせされ、周波数表示UI24にその周波数が表示される。ユーザーは、その周波数を、図22のステップS260において、設定装置600のタッチディスプレイ602等を介して、除去すべき周波数成分として、ロボット制御装置300に入力することができる。
このような態様とすれば、ユーザーは、設定装置600の入出力装置を介して、容易にロボットの対象振動数に関する情報を知ることができる。なお、図27~図31で説明した表示をディスプレイ602に行わせる設定装置600の機能部は、「表示制御部615」(図15参照)である。
図33は、周波数グラフGfの他の例Gf01を示す図である(図27および図32参照)。より具体的には、図33は、振動計測装置700をエンドエフェクター200b(図10参照)に取りつけた場合の周波数グラフGf01を示す。図33に対応する振動計測装置700の取りつけ位置を、図10において、P701で示す。この場合、対象振動数は、30Hz、48Hz、80Hzに表れていることが分かる。
図34は、周波数グラフGfの他の例Gf02を示す図である(図27および図32参照)。より具体的には、図34は、振動計測装置700をロボット100bのアーム110bに取りつけた場合の周波数グラフGf02を示す。図34に対応する振動計測装置700の取りつけ位置を、図10において、P702で示す。この場合、対象振動数は、30Hz、33Hz、49Hz、80Hzに表れていることが分かる。
図35は、周波数グラフGfの他の例Gf03を示す図である(図27および図32参照)。より具体的には、図35は、振動計測装置700をロボット100bを支持するフレームF100bに取りつけた場合の周波数グラフGf03を示す。図35に対応する振動計測装置700の取りつけ位置を、図10において、P703で示す。この場合、対象振動数は、30Hz、33Hzに表れていることが分かる。
図36は、周波数グラフGfの他の例Gf04を示す図である(図27および図32参照)。より具体的には、図36は、振動計測装置700をカメラ400bが取りつけられている支柱F400bに取りつけた場合の周波数グラフGf01を示す。図33に対応する振動計測装置700の取りつけ位置を、図10において、P704で示す。この場合、対象振動数は、30Hz、72Hzに表れていることが分かる。
なお、図33~図36の例においては、周波数グラフGf01~Gf04は、30Hz以上の周波数領域を示している。しかし、周波数グラフGfは、30Hz以下の領域を示してもよい。すなわち、周波数グラフGfが提示する周波数領域は、測定される振動に応じて、設定することができる。
図33~図36の周波数グラフGf01~Gf04から分かるように、ロボットシステムを構成する部位によって、その振動の振動数は異なる。このため、ロボットによって振動する、ロボットとは異なる部位がロボットの制御に影響を与える場合には、ロボット自身の対象振動数の成分を低減したトルク制御信号を生成して使用しても、その部位の影響が低減されるとは限らない。本実施形態のように、振動を測定するための測定部としての振動計測装置700を用意し、ロボットだけでなく、ロボットの制御に影響を与えるロボット以外の部位にも取りつけられるように構成することにより、以下のような効果が得られる。すなわち、ロボットによって振動する、ロボットとは異なる部位がロボットの制御に影響を与える場合に、その部位の振動を低減するように、トルク制御信号を改変して、ロボットに対して出力することができる。その結果、ロボットとは異なる部位が振動することによってロボットの制御に与えられる悪影響を、低減することができる。
なお、IMUに代えて、直交する3軸について加速度を測定することができる1以上の加速度センサーを、振動計測装置として採用した場合には、3軸についての加速度の測定値と、測定対象物の回転の中心から加速度センサーまでの距離と、を使用して、3軸についての角速度を得ることができる。直交する3軸について加速度を測定することができる加速度センサーを、振動計測装置として採用した場合には、設定装置600の処理部612は、そのような処理を行うことにより、ユーザーインターフェイスUI01の角速度グラフGgを表示する(図15および図27参照)。なお、IMUを振動計測装置として採用した場合には、互いに直交する3軸方向の加速度の測定値と、互いに直交する3軸方向まわりの各速度の測定値と、をIMUから得て、設定装置600の処理部612は、ユーザーインターフェイスUI01の加速度グラフGaおよび角速度グラフGgを表示する。
(3)3軸の加速度センサーを使用した対象振動数の測定および設定:
図37Aは、処理内容を指定するための入力と処理結果の出力のための他のユーザーインターフェイスUI02を示す図である。ユーザーインターフェイスUI02は、直交する3軸について加速度を測定することができる加速度センサーを、振動計測装置として採用した場合に、好適に採用されるユーザーインターフェイスである。ただし、ユーザーインターフェイスUI02は、IMUを振動計測装置として採用した場合にも適用できる。
ユーザーインターフェイスUI02は、入力窓UI11および停止スイッチUI45を備えている。ユーザーインターフェイスUI02は、さらに、測定開始ボタンUI12、測定時間指定窓UI50、最大周波数表示UI26~UI28を備えている。
一方、ユーザーインターフェイスUI02は、角速度グラフGg、加速度グラフGa、入力窓UI31、処理対象グラフGsa、開始時間指示UI51、終了時間指示UI52、拡大グラフGsaa、周波数グラフGf、周波数指定UI23、周波数表示UI24を備えていない。このような構成とすることにより、ユーザーは、多数の情報によって惑わされることなく、また、煩雑な操作を行うことなく、残留振動を低減することができる可能性が高い周波数を知ることができる(UI26~UI28参照)。
入力窓UI11および停止スイッチUI45の機能は、ユーザーインターフェイスUI01の入力窓UI11および停止スイッチUI45の機能と同じである。
測定開始ボタンUI12は、図22のステップS230,S240の処理を設定装置600およびロボット制御装置300に行わせるためのスイッチである。この場合、ロボットに特定動作を行わせるためのプログラムとしては、あらかじめ用意され設定装置600のROM640に格納されているものが使用される。あらかじめ用意されるプログラムとしては、ロボットを動作させる条件(たとえば、動作の方向やロボットの姿勢)が異なる様々なプログラムを用意しておくことができる。
測定時間指定窓UI50は、振動の測定を行う時間区間の長さを指定するための入力窓である。
最大周波数表示UI26~UI28は、特定動作の後の残留振動において、X軸方向、Y軸方向、Z軸方向の各加速度について、最大のパワーを有している周波数に対応するパラメータを表示する。ユーザーインターフェイスUI02は、入力窓UI31(図27参照)を備えていない。このため、ユーザーインターフェイスUI02においては、デフォルトで、X軸方向、Y軸方向、Z軸方向の各加速度について、最大のパワーを有している周波数が表示される。その際、パワーが大きい順に、すなわち、振幅が大きい順にX軸方向、Y軸方向、Z軸方向の周波数が示される。このような処理を行うことにより、ユーザーは、制御対象物がどの方向について大きく振動しているかを、その方向の振動の対象振動数とともに、容易に知ることができる。
図37Bは、処理内容を指定するための入力と処理結果の出力のための他のユーザーインターフェイスUI02bを示す図である。ユーザーインターフェイスUI02bは、ユーザーインターフェイスUI02と同様に、直交する3軸について加速度を測定することができる加速度センサーを振動計測装置として採用した場合に、好適に採用されるユーザーインターフェイスである。なお、ユーザーインターフェイスUI02bは、IMUを振動計測装置として採用した場合にも適用できる。
ユーザーインターフェイスUI02bは、測定開始ボタンUI12、測定時間指定窓UI50、および停止スイッチUI45を備えている。ユーザーインターフェイスUI02bは、さらに、プログラム番号指定窓UI62、最大周波数表示UI29、最大加速度グラフGaxを備えている。
一方、ユーザーインターフェイスUI02bは、角速度グラフGg、加速度グラフGa、入力窓UI31、処理対象グラフGsa、開始時間指示UI51、終了時間指示UI52、拡大グラフGsaa、周波数グラフGf、周波数指定UI23、周波数表示UI24、ならびに入力窓UI11、最大周波数表示UI26~UI28を備えていない。このような構成とすることにより、ユーザーは、多数の情報によって惑わされることなく、また、煩雑な操作を行うことなく、残留振動を低減することができる可能性が高い周波数を知ることができる(UI29参照)。
停止スイッチUI45の機能は、ユーザーインターフェイスUI01,UI02の停止スイッチUI45の機能と同じである。測定時間指定窓UI50の機能は、ユーザーインターフェイスUI02の測定時間指定窓UI50の機能と同じである。
測定開始ボタンUI12は、図22のステップS230,S240の処理を設定装置600およびロボット制御装置300に行わせるためのスイッチである。ロボットに特定動作を行わせるためのプログラムとしては、あらかじめ用意され設定装置600のROM640に格納されているプログラムのうち、プログラム番号指定窓UI62を介して対応する番号が入力されたプログラムが使用される。あらかじめ用意されるプログラムとしては、ロボットを動作させる条件(たとえば、動作の方向やロボットの姿勢)が異なる様々なプログラムを用意しておくことができる。
最大周波数表示UI29は、特定動作の後の残留振動において、X軸方向、Y軸方向、Z軸方向の各加速度の周波数の中で、最大のパワーを有している一つの周波数に対応するパラメータを表示する。このような処理を行うことにより、ユーザーは、制御対象物がどの方向について大きく振動しているかを考慮することなく、残留振動のうちで最大のパワーを有している周波数、すなわち低減すべき振動の周波数を、知ることができる。
最大加速度グラフGaxは、加速度センサーから受信した3軸の加速度情報に基づいて、X軸、Y軸、Z軸の方向の加速度のうち、最大のパワーを有している振動数が属する軸の加速度の時間変化が示される。振動低減処理を行って加速度の計測を行った場合には、振動低減処理を行わずに加速度の計測を行った場合と比べて、最大加速度グラフGaxに表示される加速度の振幅は、低減されているはずである。ユーザーは、最大加速度グラフGaxの表示を通じて、振動低減処理を行わない場合と、振動低減処理を行う場合との結果の違いを直感的に知ることができる。
なお、図27、図37A、図37BのユーザーインターフェイスUI01,UI02,UI02bは、設定装置として機能するロボット教示装置600のロボットを操作するためのタッチディスプレイ602上の表示を経由して表示される。すなわち、タッチディスプレイ602上には、ロボットを操作するための画面と、振動低減機能の設定のための画面が、切り換えて表示される。画面の切り替えは各画面のユーザーインターフェイスを通じて可能である。そして、ロボット教示装置600のタッチディスプレイ602の表示を介して、各指示が入力される。
このような態様とすることにより、ユーザーが使い慣れているロボットを操作するための表示を介して、操作部として機能する表示(図27、図37A、図37BのユーザーインターフェイスUI01,UI02,UI02b参照)を呼び出して、対象物の対象振動数を測定することができる。
なお、本明細書においては、図10におけるフレームF100bの一部P703と、支柱F400bの一部P704は、「ロボットによって振動する部位」とも呼ばれる。フレームF100bに取りつけられている振動計測装置700(P703参照)、および支柱F400bに取りつけられている振動計測装置700(P704参照)は、「第1の検出器」とも呼ばれる。そのような振動計測装置700からの出力に基づいて振動低減機能の処理が設定され、フィルター処理部340によって生成されるトルク制御信号は、「第2制御信号」とも呼ばれる。図2のフィルター処理部340は、「制御信号改変部」とも呼ばれる。
本明細書においては、図10においてロボット100bのアーム110bに取りつけられている振動計測装置700(図10のP702参照)、および図15においてロボット100のアーム110の先端部に取りつけられている振動計測装置700は、「第2の検出器」とも呼ばれる。そのような振動計測装置700からの出力に基づいて振動低減機能の処理が設定され、フィルター処理部340によって生成されるトルク制御信号は、「第3制御信号」とも呼ばれる。
支持台560bは、「記ロボットの作業対象であるワークピースが前記ロボットによって置かれる場所、前記ロボットによって移動される前記ワークピースが前記移動するまで置かれている場所、および前記ロボットが前記ワークピースに対して作業を行う場所、のうちの1以上の場所」として機能する。
フレームF100bに取りつけられている振動計測装置700(P703参照)、および支柱F400bに取りつけられている振動計測装置700(P704参照)、ならびにロボット制御装置300と設定装置600(ロボット教示装置600)は、「制御システム」とも呼ばれる。測定部740と出力部750は、「出力部」とも呼ばれる。第1の取付部760~第4の取付部790は、「取付部」とも呼ばれる。
(4)複数の対象振動数の測定および設定:
図38は、振動低減機能の設定の手順の他の例を示すフローチャートである。図38のステップS210~S260の処理は、図22に示したステップS210~S260の処理と同じであるためステップS210~S260の処理については、説明を省略する。ステップS260までの処理によって、トルク制御信号から低減すべき一つ目の周波数が設定される(図3のF11,F21,F31参照)。
ステップS330では、ステップS230と同様に、ステップS220で作成されたプログラムがロボット制御装置300において実行され、プログラムにしたがってロボットが特定動作をする。より具体的には、制御信号生成部310(図2参照)が特定動作の実行の指示を表すコマンドを受け取り、そのコマンドおよびそのコマンドに付属するパラメーターに応じて、位置制御信号を出力する。
位置制御部320と、速度制御部330と、フィルター処理部340と、トルク制御部350と、サーボアンプ360とが、位置制御信号に従って、ロボット100のサーボモーター410を駆動させる(図2参照)。ただし、ステップS330においては、フィルター処理部340は、ステップS260で設定された特定の周波数成分を除去する処理を行って、速度制御部330から受信したトルク制御信号を改変して、トルク制御部350に出力する。
ステップS340においては、ステップS240と同様の処理によって、特定動作の終了後の残留振動が測定される。ステップS350においては、ステップS250と同様の処理によって、設定装置600において、S330の特定動作の実行による振動の測定結果が処理され、処理結果がディスプレイ602に表示される(図27参照)。
図39は、図38のステップS250で表示される、拡大グラフGsaa(図27および図31参照)に相当するグラフである。ただし、技術の理解を容易にするために、ここでは、X軸、Y軸、Z軸のすべての加速度Ax,Ay,Azを示している。
図40は、図38のステップS250で表示される、周波数グラフGf(図27および図32参照)に相当するグラフである。ただし、技術の理解を容易にするために、ここでは、X軸、Y軸、Z軸のすべての加速度Ax,Ay,Azの高速フーリエ変換の結果を示している。
図41は、図38のステップS350で表示される、拡大グラフGsaa(図27および図31参照)に相当するグラフである。ただし、技術の理解を容易にするために、ここでは、X軸、Y軸、Z軸のすべての加速度Ax,Ay,Azを示している。
図42は、図38のステップS350で表示される、周波数グラフGf(図27および図32参照)に相当するグラフである。ただし、技術の理解を容易にするために、ここでは、X軸、Y軸、Z軸のすべての加速度Ax,Ay,Azの高速フーリエ変換の結果を示している。
図39と図41、図40と図42を比較すれば分かるように、図38のステップS260における設定によって、最も大きかったZ軸方向の加速度Az(一点鎖線で示す)の34Hz近傍の振動が低減されていることが分かる(特に図40および図42参照)。
図38のステップS355においては、ユーザーは、ユーザーインターフェイスUI01の拡大グラフGsaa、周波数グラフGf、最大周波数表示UI25を確認して(図27参照)、残留振動が十分低減されたか否かを判定する。残留振動が十分低減された場合には、ステップS357において、ステップS260で行われたパラメーターParam1の設定に従って、ロボットが運用される。
一方、ステップS355において、残留振動が十分低減されていない場合には、処理はステップS360に進む。ステップS360において、ユーザーは、ユーザーインターフェイスUI01の拡大グラフGsaa、周波数グラフGf、最大周波数表示UI25を確認して(図27、図41、図42参照)、残っている振動の中で最大のパワーを有する周波数を、特定する。そして、ユーザーは、設定装置600のタッチディスプレイ602、キー604、およびトラックポイント606を介して、除去すべき周波数成分として、その周波数を、追加的にロボット制御装置300に入力する。ロボット制御装置300は、その周波数を所定の番号の振動低減機能のパラメーターParam2として記憶する(図3のF32参照)。
ステップS430では、ステップS230,S330と同様に、ステップS220で作成されたプログラムがロボット制御装置300において実行され、プログラムにしたがってロボットが特定動作をする。ただし、ステップS430においては、フィルター処理部340は、ステップS260とステップS360で設定された二つの周波数成分を除去する処理を行って、速度制御部330から受信したトルク制御信号を改変して、トルク制御部350に出力する。
ステップS440においては、ステップS240,S340と同様の処理によって、特定動作の終了後の残留振動が測定される。ステップS450においては、ステップS250,S350と同様の処理によって、設定装置600において、S430の特定動作の実行による振動の測定結果が処理され、処理結果がディスプレイ602に表示される(図27参照)。
図43は、図38のステップS450で表示される、拡大グラフGsaa(図27および図31参照)に相当するグラフである。ただし、技術の理解を容易にするために、ここでは、X軸、Y軸、Z軸のすべての加速度Ax,Ay,Azを示している。
図44は、図38のステップS450で表示される、周波数グラフGf(図27および図32参照)に相当するグラフである。ただし、技術の理解を容易にするために、ここでは、X軸、Y軸、Z軸のすべての加速度Ax,Ay,Azの高速フーリエ変換の結果を示している。
図41と図43、図42と図44を比較すれば分かるように、図38のステップS360における設定によって、最も大きかったZ軸方向の加速度Az(一点鎖線で示す)の31Hz近傍の振動が低減されていることが分かる(特に図42および図44参照)。
ステップS455においては、ユーザーは、ユーザーインターフェイスUI01の拡大グラフGsaa、周波数グラフGf、最大周波数表示UI25を確認して(図27参照)、残留振動が十分低減されたか否かを判定する。残留振動が十分低減された場合には、ステップS457において、ステップS260,S360で行われたパラメーターParam1,Param2の設定に従って、ロボットが運用される。
このような態様とすることにより、ユーザーは、タッチディスプレイ602上のユーザーインターフェイスUI01に基づいて、設定前後の振動を比較した上で、必要な場合に、追加的な周波数の設定を行うことができる。すなわち、ユーザーは、ステップS230で特定動作が引き起こした振動と、特定動作を指示するトルク制御信号から対象振動数成分を低減して得られるトルク制御信号による動作が引き起こしたステップS330における振動と、を比較した上で、必要な場合に、追加的な周波数の設定を行うことができる。
一方、ステップS455において、残留振動が十分低減されていない場合には、処理はステップS470に進む。ステップS470において、ユーザーは、保守サービス提供者に連絡をする。
(5)力覚センサーを使用した対象振動数の測定および設定:
以上では、振動計測装置をロボットを含む各部に取りつけて、振動低減機能の設定を行う態様について説明した。しかし、ロボットが力覚センサーを備えている場合には(図1の190および図10の190b参照)、振動計測装置に代えて、ロボットが有する力覚センサーを使用して、振動の計測を行うこともできる。
力覚センサー190は、エンドエフェクター200に作用するX軸、Y軸、Z軸の3軸方向の力Fx,Fy,Fzと、X軸、Y軸、Z軸まわりのトルクTx,Ty,Tzを測定することができる。ここでは、振動計測装置700が出力するX軸、Y軸、Z軸方向の加速度と、X軸、Y軸、Z軸方向をそれぞれ回転の中心とする角速度と、に代えて、力覚センサー190によって得られるX軸、Y軸、Z軸の3軸方向の力Fx,Fy,Fzと、X軸、Y軸、Z軸まわりのトルクTx,Ty,Tzを使用して、特定動作による振動を計測し、振動低減機能の設定を行う態様を説明する。このような態様とすれば、制御対象物としてのロボットに設けられた力覚センサーを有効に活用して、対象振動数の測定を行うことができる。
図45は、処理内容を指定するための入力と処理結果の出力のための他のユーザーインターフェイスUI03およびグラフGidを示す図である。ユーザーインターフェイスUI03は、入力窓UI91、拡大グラフGsab、周波数グラフGf00、およびスペクトラム表示UI94fxを備えている。
入力窓UI91は、X軸、Y軸、Z軸の3軸方向の力Fx,Fy,Fzと、X軸、Y軸、Z軸まわりのトルクTx,Ty,Tzのいずれかを選択するためのユーザーインターフェイスである。ここでは、X軸方向の力Fxが選択されている。入力窓UI91は、図27のユーザーインターフェイスUI01における入力窓UI31に相当する。
拡大グラフGsabは、入力窓UI91で選択された測定結果の残留振動を、拡大して示すグラフである。拡大グラフGsabは、図27のユーザーインターフェイスUI01における拡大グラフGsaaに相当する。図45では、特定動作後のX軸方向の力Fxの残留振動が拡大して示されている。
スペクトラム表示UI94fxは、入力窓UI31で選択された測定値の時間変化(X軸方向の力Fxの時間変化)に対して短時間フーリエ変換を行った結果を示す。スペクトラム表示UI94fxにおいて、横軸は時間を表し、縦軸は周波数を表す。各周波数の時間ごとのパワーの大小は、色の変化で表される。このような態様とすることにより、ユーザーは、周波数成分のパワーが時刻に応じて変化する態様を知ることができる。図45の例においては、スペクトラム表示UI94fxにおいて表される時間区間のうち、中央近傍の時刻において60Hz近傍にパワーのピークがあることが分かる。なお、図45においては、技術の理解を容易にするため、スペクトラム表示UI94fx中の色の変化を2段階の変化としている。
周波数グラフGf00は、スペクトラム表示UI94fxに表される結果を時間軸方向に合計した結果(度数分布)を示す。周波数グラフGf00において、縦軸は周波数を、横軸は強度を表す。図45における周波数グラフGf00は、図27における周波数グラフGfに対応する。
グラフGidは、ロボットにおいて実行されるコマンドのうち、振動の測定対象の時間区間において実行を完了している最新のコマンドのステップに対応する表示を、表示するグラフである。その結果、現在、どのコマンドまで処理が進んでいるかを、ユーザーは知ることができる。このような態様とすれば、ユーザーは、複数のコマンドで特定動作を行わせて測定を行う際に、残留振動を発生させる特定動作を指示するコマンドを確認しつつ、対象振動数を知ることができる。図45の例では、コマンドID2.0のコマンドが実行を完了している最新のコマンドである。
図46は、処理内容を指定するための入力と処理結果の出力のための他のユーザーインターフェイスUI04およびグラフGidを示す図である。グラフGidの機能は、図45に示したグラフGidの機能と同じである。
図46のユーザーインターフェイスUI04は、スペクトラム表示UI94fx,UI94fy,UI94fz,UI94tx,UI94ty,UI94tzを備えている。一方、ユーザーインターフェイスUI04は、入力窓UI91、拡大グラフGsab、周波数グラフGf00を備えていない。
スペクトラム表示UI94fxは、X軸方向の力Fxの時間変化に対して短時間フーリエ変換を行った結果を示す。スペクトラム表示UI94fxの内容は、図45に示したスペクトラム表示UI94fxの機能と同じである。スペクトラム表示UI94fyは、Y軸方向の力Fyの時間変化に対して短時間フーリエ変換を行った結果を示す。スペクトラム表示UI94fzは、Z軸方向の力Fzの時間変化に対して短時間フーリエ変換を行った結果を示す。
スペクトラム表示UI94txは、X軸方向のトルクTxの時間変化に対して短時間フーリエ変換を行った結果を示す。スペクトラム表示UI94tyは、Y軸方向のトルクTyの時間変化に対して短時間フーリエ変換を行った結果を示す。スペクトラム表示UI94tzは、Z軸方向のトルクTzの時間変化に対して短時間フーリエ変換を行った結果を示す。
すなわち、ユーザーインターフェイスUI04は、各周波数成分のパワーの表示を、互いに異なる複数の方向の力やトルクの振動について、表示することができる。このような態様とすることにより、ユーザーは、互いに異なる複数の方向について、周波数成分のパワーが時刻に応じて変化する態様を知ることができる。
なお、図45および図46の例においては、スペクトラム表示UI94fx~fz、UI94tx~tzは、30Hz以上の周波数領域を示している。しかし、スペクトラム表示UI94fx~fz、UI94tx~tzは、30Hz以下の領域を示してもよい。すなわち、スペクトラム表示UI94fx~fz、UI94tx~tzが提示する周波数領域は、測定される振動に応じて設定することができる。
なお、本明細書においては、制御信号生成部310は、「受付部」とも呼ばれる。位置制御部320と、速度制御部330と、フィルター処理部340と、トルク制御部350と、サーボアンプ360とは、「実行部」とも呼ばれる。サーボモーター410は、「駆動部」とも呼ばれる。振動計測装置700ならびに力覚センサー190,190bは、「測定部」とも呼ばれる。設定装置600の機能部としての測定結果受付部613は、「測定結果受付部」とも呼ばれる。ロボット制御装置300と設定装置600(ロボット教示装置600)とは、「制御装置」として機能する。
互いに異なる複数の動作を指示するコマンドとそのパラメーターの複数の組み合わせは、「動作が互いに異なる複数種類の前記特定動作の実行の指示」として機能する。駆動させるロボットのアームの関節を指定するコマンドとパラメーターの組み合わせは、「前記複数の関節のうちの1以上の関節の指定を含む前記特定動作の実行の指示」として機能する。
なお、本明細書においては、設定装置600の受付部611は、「受付部」とも呼ばれる。図22のステップS230におけるプログラムの実行の指示は、「第1の指示」とも呼ばれる。タッチディスプレイ602、キー604、およびトラックポイント606は、「操作部」ともして機能する。周波数グラフGfおよび最大周波数表示UI25は、「制御対象物の対象振動数に関する情報」として機能する。設定装置600のディスプレイ602は、「表示部」とも呼ばれる。設定装置600の表示制御部615は、「表示制御部」とも呼ばれる。開始時間指示UI51と終了時間指示UI52で指定された時間区間は、「制御対象物の振動を表す時間区間」または「ある時間区間」とも呼ばれる。
入力窓UI11に入力されるデータファイルの指定は、「第2の指示」とも呼ばれる。振動計測装置700は、「測定部」とも呼ばれる。ステップS250におけるユーザーインターフェイスUI01は、「前記振動データに基づく表示」とも呼ばれる。ステップS350におけるユーザーインターフェイスUI01は、「前記時間区間の前記制御対象物の前記振動の原因となった動作を指示した第1制御信号から特定の周波数成分を低減して得られる第2制御信号に基づいて動作された前記制御対象物 の振動を表す振動データに基づく表示」として機能する。
最大周波数表示UI25で表示される周波数は、「前記対象振動数の少なくとも1つを表すパラメーター」として機能する。開始時間指示UI51の位置の指定は、「前記時間区間の開始時刻を指定する指示」として機能する。
入力窓UI31,IU91への対象の指定の入力は、「前記表示される対象振動数の振動の方向を指定する軸指定」として機能する。処理対象グラフGsa、拡大グラフGsaa、周波数グラフGf、周波数表示UI24、最大周波数表示UI25は、「前記指定された方向の振動の前記対象振動数に関する情報」とも呼ばれる。
スペクトラム表示UI94fx、UI94fy,UI94fz,UI94tx、UI94ty,UI94tzを含むUI04は、「スペクトラム表示部」とも呼ばれる。X軸、Y軸、Z軸は、「互いに異なる複数の方向」として機能する。グラフGidは、「最新のコマンドのステップに対応する表示」として機能する。
(6)他のロボットシステムへの振動計測装置の取りつけ:
上記実施形態では、振動を低減する対象であるロボット100,100bや、そのロボットを含むロボットシステムを構成するカメラ400,400b、ならびにそれらが取りつけられるフレームF100bや支柱F400bに、振動計測装置が取りつけられる(図10のP701~P706)。しかし、振動を低減する対象であるロボットや、そのロボとを含むロボットシステムの構成要素以外の場所に、振動計測装置を取りつけることもできる。
図47は、並んで配される2組のロボットシステムRS100b,RS100cを示す図である。二つのロボットシステムRS100b,RS100cは、同じ製品を生産するための上流と下流の生産工程を担当するロボットであってもよいし、別の製品を生産するための異なる生産ラインに含まれるロボットであってもよい。
ロボットシステムRS100bを構成するロボット100bおよびフレームF100bの構成は、すでに説明したとおりである(図10参照)。ロボットシステムRS100cを構成するロボット100cおよびフレームF100cの構成は、それぞれロボット100bおよびフレームF100bの構成と同じである。ロボットシステムRS100bの各構成要素に対応するロボットシステムRS100cの各構成要素に対して、ロボットシステムRS100bの構成要素を表す符号中のbに代えてcを付したものを、使用する。
ロボットシステムRS100cのエンドエフェクター200cは、隣のロボットシステムRS100bのロボット100bの動きによって振動し得る。また、ロボットシステムRS100cのカメラ400bおよび支持台560cも、隣のロボットシステムRS100bのロボット100bの動きによって振動し得る。その結果、隣のロボットシステムRS100bのロボット100bによって、ロボット100cの動きの精度が低下し、また、次の動作開始タイミングが遅延しうる。このため、ここで説明する実施形態では、ロボットシステムRS100bを対象とした図22の振動低減機能の設定において、ロボットシステムRS100cの構成要素を振動させないように、除去すべき周波数成分が決定される。
図22のステップS210においては、測定対象物に振動計測装置が取りつけられる。たとえば、ロボットシステムRS100cのフレームF100cに、振動計測装置700が取りつけられる(図47のP803参照)。そして、ロボットシステムRS100bについて、ステップS220以下の処理が行われる。その結果、フレームF100cを振動させにくいトルク制御信号を生成できる対象周波数を、ロボットシステムRS100bのロボット制御装置のフィルター設定部345(図2参照)に設定することができる。
図22のステップS210においては、たとえば、ロボットシステムRS100cにおいてカメラ400cが取りつけられている支柱F400cに、ロボットシステムRS100bについて、振動計測装置700を取りつけることもできる(図47のP804参照)。そして、ステップS220以下の処理が行われる。その結果、支柱F400cに取りつけられたカメラ400cを振動させにくいトルク制御信号を生成できる対象周波数を、ロボットシステムRS100bのロボット制御装置のフィルター設定部345(図2参照)に設定することができる。
同様に、図22のステップS210においては、たとえば、ロボットシステムRS100cの支持台560cに、振動計測装置700を取りつけることもできる(図47のP804参照)。支持台560cは、ロボットシステムRS100cの処理対象であるワークピースW02が乗せられる構造である。そして、ロボットシステムRS100bについて、ステップS220以下の処理が行われる。その結果、支持台560cおよびその上のワークピースW02を振動させにくいトルク制御信号を生成できる対象周波数を、ロボットシステムRS100bのロボット制御装置のフィルター設定部345(図2参照)に設定することができる。
同様に、振動計測装置は、ロボットシステムRS100cに含まれるカメラ400c(図47のP805参照)、エンドエフェクター200c(図47のP801参照)、アーム110c(図47のP802参照)に取りつけられることもできる。その結果、振動計測装置が取りつけられたそれらの部位の振動を起こしにくいトルク制御信号を生成できる対象周波数を、ロボットシステムRS100bのロボット制御装置のフィルター設定部345(図2参照)に設定することができる。
なお、本明細書においては、図47におけるロボットシステムRS100cの各部位P801~P806は、「ロボットによって振動する部位」とも呼ばれる。それらの部位に取りつけられる振動計測装置700は、「第1の検出器」とも呼ばれる。そのような振動計測装置700からの出力に基づいて振動低減機能の処理が設定され、フィルター処理部340によって生成されるトルク制御信号は、「第2制御信号」とも呼ばれる。
D.変形例:
D1.変形例1:
(1)上記実施形態においては、先の制御信号と後の制御信号の間に出力される第3制御信号は、複数存在する(図6および図8参照)。しかし、第3制御信号は、先の制御信号の出力と後の制御信号の出力との間に、1つだけ出力されてもよい。
(2)上記実施形態においては、異なる周波数成分を低減して生成された第2制御信号が複数存在する(図3の番号1~15参照)。しかし、周波数成分を低減した第2制御信号を、1つだけ生成して適用する態様とすることもできる。
(3)上記実施形態においては、第3制御信号は、先の制御信号と後の制御信号とを重み付け平均して得られる。しかし、第3制御信号は、先の制御信号と後の制御信号以外の要素をも考慮して決定することができる。
(4)上記実施形態においては、ロボット100のアーム110の先端の位置の制御信号切り替え前後の偏差と、ロボット100のアーム110の先端の速度の制御信号切り替え前後の偏差と、がいずれもしきい値未満である場合に、制御信号の切り替えが行われる(図9参照)。しかし、制御信号の切り替えは、ロボットを駆動するモーターの回転位置の偏差と速度の偏差について、それぞれ所定のしきい値以下となることを条件としてもよい。また、位置の偏差がしきい値よりも小さいという条件が満たされる場合に、速度偏差によらず、制御信号を切り換えてもよい。
(5)上記実施形態においては、第2制御信号生成部としてのフィルター処理部340は、帯域除去フィルターを使用して、周波数成分の除去を行う。しかし、第2制御信号生成部は、ノッチフィルターやバンドパスフィルターを使用して、第1制御信号から第2制御信号制御信号を生成する態様とすることもできる。なお、第1制御信号から第2制御信号を生成する際には、特定の周波数成分を除去する態様に加えて、特定の周波数成分を低減する態様を採用することもできる。
(6)上記実施形態においては、振動低減機能は、トルク制御信号に対して行われる。しかし、振動低減機能は、加速度の制御信号や電流量に適用することもでき、速度制御信号や位置制御信号に適用することもできる。振動低減機能においては、対象となる制御信号をフーリエ変換して、制御信号中の特定の周波数成分を低減し、逆変換を行って新たな制御信号を生成する。このため、上記で例示したトルク制御信号に基づいて微積分および比例によって変換できる関係にある各種パラメーターについて、振動低減機能は適用可能である。
(7)多軸ロボットについては、軸ごとに異なる周波数を、制御信号から低減すべき周波数として設定することができる(図2の340,345参照)。そのような態様においては、フィルター処理部340は、複数の関節のそれぞれについて、フィルター設定部345から除去すべき1以上の周波数の制御信号を受信する。そして、フィルター処理部340は、速度制御部330が複数の関節のそれぞれについて出力したトルク制御信号に対して、フィルター設定部345からの制御信号に応じた1以上の周波数成分を除去する処理を行って、新たなトルク制御信号を生成し、出力する。フィルター処理部340は、複数の関節のそれぞれについて、先のトルク制御信号から、後のトルク制御信号への切り替えを行う際に、それら2つのトルク制御信号の値の重み付け平均により、第3トルク制御信号の値を生成し、出力してもよい。そのような態様とすれば、関節(軸)によって低減すべき周波数が異なる場合に、各軸の振動をそれぞれ効果的に低減することができる。
なお、上記の態様においても、制御信号から低減すべき周波数成分が2以上の軸について一致してもよい。本明細書においては、ある関節(軸)について低減すべき周波数成分を、他の関節(軸)について低減すべき周波数に限定されることなく、設定し得ることを、関節(軸)ごとに設定される低減すべき周波数が「独立」である、と記載する。それぞれの関節(軸)について低減すべき周波数成分を独立に設定しうる態様においても、偶然または意図的に、同一の周波数成分を複数の関節について設定することができる。
一方、多軸ロボットの各軸に対して、同一の周波数で振動低減処理を行うこともできる(図2の340,345参照)。多軸ロボットにおいて、各軸が協調して制御されるべき場合には、軸ごとに、特定の周波数成分を有している制御信号が与えられたり、特定の周波数成分を有していない制御信号が与えられたりすると、不測のトルク変動、経路の位置ずれなどが生じる場合がある。このため、多軸ロボットの各軸に対して、同一の周波数で振動低減処理を行うことにより、そのような事態が生じる可能性を低減することができる。
さらに、多軸ロボットの各軸について、振動低減処理が行われない軸と、振動低減処理が行われる軸と、を設定することができる(図2の340,345参照)。そのような態様においては、フィルター処理部340は、複数の関節のうち、振動低減処理を行うべき1以上の一部の関節の指定を受け付ける。なお、フィルター処理部340は、複数の関節のうち、振動低減処理を行わない1以上の一部の関節の指定を受け付けるという態様で、振動低減処理を行うべき1以上の一部の関節の指定を受け付けてもよい。そして、フィルター処理部340は、振動低減処理を行うべき1以上の一部の関節について、振動低減処理を行い、他の関節については、振動低減処理を行わない。
そのような態様とすることにより、ロボット全体を振動させる影響の程度が高い軸(たとえば、図1のX11,X12のような、ロボットを支えている基部に近い軸)については、振動低減処理を行って、ロボット全体の振動を低減させることができる。一方、ロボット全体を振動させる影響の程度が低い軸(たとえば、図1のX15のようなアームの先端近傍の軸)については、振動低減処理を行わないこととし、ワークピースをつかむ動作などのエンドエフェクターによる作業の精度を高めることができる。
(8)本開示は、ロボットにおいて低減したい振動の振動数の測定に限らず、自動制御が行われて物理的な状態が変化する様々な機械において低減したい振動の振動数を測定する場合に、適用しうる。
D2.変形例2:
(1)上記実施形態においては、周波数成分の低減を実行すべき旨の指示が入力されないことを含む第1の条件が満たされる場合に、フィルター処理部340によって、周波数成分が低減されていない第1制御信号が出力される。この第1の条件は、さらに、下位の加重条件として、所定の設定がなされていることや所定の設定がなされていないことなど、他の条件を含むこともできる。
下位の加重条件としては、たとえば、(a)周波数成分の低減を実行しない旨の指示が入力されたこと、が挙げられる。下位の加重条件としては、さらに、(a)に加えて、(b)あらかじめ定められたパスワードが入力されたこと、(c)あらかじめ定められたIDとそのIDに対応するパスワードが入力されたこと、(d)あらかじめ定められた設定装置としてのハードウェア(図1の600参照)を介して(a)の指示が入力されたこと、などが挙げられる。これらの下位条件は組み合わされて使用されてもよい。
また、周波数成分の低減を実行しない旨の指示は、明示的な指示であってもよいし、暗示的な指示であってもよい。暗示的な指示としては、たとえば、「周波数成分の低減を実行すべき旨の指示」と選択的に実行される指示、すなわち、「周波数成分の低減を実行すべき旨の指示」と両立することが認められない指示がある。そのような指示としては、たとえば、「正確な位置制御を行うモードで動作すべきことの指示」が挙げられる。
また、「周波数成分の低減を実行すべき旨の指示が入力されないこと」が満たされたか否かを判断する構成要素(CPUの機能部など)は、あらかじめ定められた長さの時間、周波数成分の低減を実行すべき旨の明示的または暗示的な指示が入力されない場合に、「周波数成分の低減を実行すべき旨の指示が入力されないこと」が満たされたと判断してもよい。一方、時間的な制限は設けないこととしてもよい。すなわち、周波数成分の低減を実行すべき旨の明示的または暗示的な指示が入力されたときに、初めて、「周波数成分の低減を実行すべき旨の指示が入力されないこと」が満たされなくなったと判断し、それ以外の場合は、「周波数成分の低減を実行すべき旨の指示が入力されないこと」が満たされていると判断してもよい。
(2)上記実施形態においては、周波数成分の低減を実行すべき旨の指示が入力されたことを含む第2の条件が満たされる場合に、フィルター処理部340によって、第2制御信号が出力される。この第2の条件は、さらに、下位の加重条件として、所定の設定がなされていることや所定の設定がなされていないことなど、他の条件を含むこともできる。
下位の加重条件としては、たとえば、(b)あらかじめ定められたパスワードが入力されたこと、(c)あらかじめ定められたIDとそのIDに対応するパスワードが入力されたこと、(d)あらかじめ定められた設定装置としてのハードウェア(図1の600参照)を介して周波数成分の低減を実行すべき旨の指示が入力されたこと、などが挙げられる。これらの下位条件は組み合わされて使用されてもよい。
また、周波数成分の低減を実行する旨の指示は、明示的な指示であってもよいし、暗示的な指示であってもよい。暗示的な指示としては、たとえば、「周波数成分の低減を実行しない旨の指示」と選択的に実行される指示、すなわち、「周波数成分の低減を実行しない旨の指示」と両立することが認められない指示がある。そのような指示としては、たとえば、「高速な運転を行うモードで動作すべきことの指示」や「静かな運転を行うモードで動作すべきことの指示」が挙げられる。
(3)上記実施形態においては、振動低減処理が実施されているときには、図13に示す表示Dvrがディスプレイ602に表示される。しかし、所定の周波数成分が低減された第2制御信号が制御信号切替部から出力されている場合に、表示部に表示される表示は、他の態様であってもよい。たとえば、表示部としてランプを備え、所定の周波数成分が低減された第2制御信号が出力されている場合には、ランプが点灯する態様とすることもできる。また、所定の周波数成分が低減された第2制御信号が出力されている場合にも、なんらの表示が行われない態様とすることもできる。
(4)上記実施形態においては、フィルター処理部340は、周波数成分の低減を実行すべき旨の指示が入力されたことと、図11に示すあらかじめ定められた下位条件を満たすことと、の両方が満たされることを含む第3の条件が満たされる場合に、周波数成分が低減されていない第1制御信号を出力する(図11および図12参照)。しかし、第3の条件は、さらに、下位の加重条件として、所定の設定がなされていることや所定の設定がなされていないことなど、他の条件を含むこともできる。
なお、上記実施形態では、連続経路制御(CP制御)が実行される場合には、振動低減処理は実施されない(図11の左欄、第7行目参照)。しかし、連続経路制御が実行される場合にも、振動低減処理が実施されることとしてもよい。
(5)上記実施形態においては、力覚センサー190は、エンドエフェクター200に作用するX軸、Y軸、Z軸の3軸方向の力Fx,Fy,Fzと、X軸、Y軸、Z軸まわりのトルクTx,Ty,Tzを測定することができる。しかし、力検出部は、1軸の力だけを検出することができる態様であってもよいし、1軸のトルクだけを検出することができる態様であってもよい。また、力検出部は、2軸の力やトルクを検出できる態様であってもよい。また、3以下の数の軸の力と、3以下の数の軸のトルクと、の任意の組み合わせを検出できる態様とすることができる。
(6)本開示は、ロボットの制御に限らず、自動制御が行われる様々な機械において、適用しうる。
D3.変形例3:
(1)本明細書において、「ロボットに設けられた測定部」という記載は、あらかじめロボットの構成の一部として組み込まれている測定部と、測定時にロボットに対して取りつけられた測定部とを含む。
(2)上記実施形態において、設定装置600およびロボット制御装置300は、1個の特定動作を実行すべき旨の指示を受付ることもでき、また、複数の特定動作を連続して実行すべき旨の指示を受付ることもできる。そして、設定装置600およびロボット制御装置300は、1個の特定動作を実行すべき旨の指示を、異なるタイミングで受付ることができる。そして、それら異なるタイミングで指示される特定動作は、同じ特定動作であってもよく、異なる種類の特定動作であってもよい。すなわち、受付部としての受付部611は、複数種類の特定動作の実行の指示を受け付けることができるが、その受付は、連続して行われてもよいし、一つずつ別のタイミングで行われてもよい。さらに、受付部(図15の受付部611参照)および実行部(図2の位置制御部320、速度制御部330、フィルター処理部340、トルク制御部350、サーボアンプ360参照)は、一つの特定動作だけを受け付けて実行できるように構成されてもよい。
(3)特定動作としての複数の動作は、動作の終了時のロボットの姿勢が同一であり、動作終了時の姿勢に至るまでの動作(たとえば、動作の経路や速度)が異なる複数の動作を含むことができる。
(4)特定動作は、関節を指定せずに、アームの先端の位置や動きを指定する方法で、特定されてもよい。
(5)本開示は、ロボットにおいて低減したい振動の振動数の測定に限らず、自動制御が行われて物理的な状態が変化する様々な機械において低減したい振動の振動数を測定する場合に、適用しうる。
D4.変形例4:
(1)上記実施形態においては、「対象振動数に関する情報」として、周波数グラフGf、最大周波数表示UI25,UI29、スペクトラム表示UI94fx~fz、UI94tx~tzなどが、ディスプレイ602に表示される。このように、「対象振動数に関する情報」は、対象振動数そのものであってもよいし、対象振動数を一義的に特定することができる何らかのパラメーターであってもよい。また、対象振動数を含む振動を表すグラフなどであってもよい。
また、「振動」は、制御対象物としてのロボットの関節に加えられる力やトルクの振動であってもよいし、測定対象物の構成部位の加速度の振動であってもよいし、速度の振動であってもよいし、位置の振動であってもよい。
(2)上記実施形態においては、力覚センサー190,190bの測定値に基づいて、スペクトラム表示が行われている。しかし、加速度や角速度の測定値に基づいて、スペクトラム表示が行われる態様とすることもできる。また、力覚センサーの測定値に基づいて、周波数グラフGf中で最大のパワーを有する周波数を数値が自動的に示される態様とすることもできる。すなわち、ユーザーインターフェイスU01~U04は、加速度や角速度の測定値に基づいて表示されることもでき、力やトルクの測定値に基づいて表示されることもできる。
(3)上記実施形態においては、ロボット教示装置600が、設定装置としても機能する。しかし、振動低減機能の設定を行う装置は、専用の装置であってもよい。また、振動低減機能の設定を行う装置は、汎用のパーソナルコンピューターやスマートフォンに、振動低減機能の設定を行うためのアプリケーションソフトをインストールすることにより、実現されてもよい。
(4)上記実施形態においては、ユーザーインターフェイスU01は、データファイルを指定して、振動低減機能の設定処理を行う。しかし、あらかじめ測定されて生成されているデータを取り込むのではなく、ロボットを動作させて、その動作からデータを生成し、処理を行うことによって、振動低減機能の設定を行ってもよい。
また、上記実施形態の一部においては、第1の指示としての、図22のステップS230におけるプログラムの実行の指示によって、制御対象物の対象振動数に関する情報が表示部に表示される(図22のステップS250参照)。しかし、制御対象物の対象振動数に関する情報が表示されるきっかけとなる第1の指示は、振動の測定結果を処理させる指示であってもよいし、制御対象物の対象振動数に関する情報が表示させる指示であってもよい(図22のステップS250参照)。その際、振動の測定結果の処理は、直前に行われた特定動作(図22のステップS230参照)のデータに基づいて行われてもよいし、過去に行われた特定動作に基づいて作成されたデータに基づいて行われてもよい(図27のUI11参照)。すなわち、第1の指示は、制御対象物の対象振動数に関する情報が表示部に表示されることを想定して、ユーザーが行う指示であればよい。
(5)上記実施形態においては、特定の周波数成分を除去する前の特定動作による残留振動の測定結果を、図38のステップS250で表示し、その後、特定の周波数成分を除去した特定動作による残留振動の測定結果を、ステップS350,S450で表示する。しかし、特定の周波数成分を低減していない第1制御信号による動作の振動データに基づく表示をせず、特定の周波数成分を低減した第2制御信号による動作の振動データに基づく表示を行う態様とすることもできる。
(6)上記実施形態においては、処理対象となる時間区間の開始時間指示UI51は、デフォルトでは、特定動作の終了を指示する位置制御信号が制御信号生成部310から出されたタイミングである。すなわち、振動の測定結果を記録しているデータ自体は、「それに基づいて制御対象物の対象振動数が決定される振動データの時間区間」よりも前の時刻の制御対象物の振動のデータ(対象振動数の決定に際して考慮されないデータ)を含んでいる。しかし、このような態様に代えて、「それに基づいて制御対象物の対象振動数が決定される振動データの時間区間」の開始タイミングから、測定が開始される態様とすることもできる。制御対象物の振動を表す時間区間としてのある時間区間は、自動的に設定されてもよいし、ユーザーが自ら設定してもよい。
(7)上記実施形態においては、制御対象物の対象振動数を決定するもととなるデータの時間区間は、制御対象物に対して駆動させる制御信号が出されていない時間区間である。しかし、制御対象物の対象振動数を決定するもととなる情報が準備される時間区間は、制御対象物に対して等速運動させる制御信号が出されている時間区間を含むこともできる。
このような態様とすれば、等速運動をすべき時間区間の振動データに基づいて計算された対象振動数を表すパラメーターを表示することができる。このため、振動することなく等速運動をすべき状態において制御対象物を最も大きく振動させる可能性が高い対象振動数を、ユーザーは知ることができる。なお、「等速運動」には、等速直線運動と等速回転運動とが含まれる。なお、本明細書において、「等速」とは、速さの変化が5%以内であることを意味する。
(8)上記実施形態においては、処理対象となる時間区間の開始時間指示UI51は、デフォルトでは、特定動作の終了を指示する位置制御信号が制御信号生成部310から出されたタイミングである。しかし、装置からの開始時刻の提示を受けることなく、ユーザーが自ら開始時刻を指定する態様とすることもできる。
また、振動低減機能の設定を行うべき旨の指示が入力された場合には、振動データの一部を指定する指示や、指定された振動データの一部を取り込ませる指示を受け取ることなく、振動データに基づいて決定された対象振動数の1つを表すパラメーターを、表示制御部が表示部に表示する態様とすることもできる。
また、たとえば、一つの特定動作のみを実行させて振動を測定する場合には、最新のコマンドのステップに対応する表示(図45および図46のGid参照)をしない態様とすることもできる。
(9)本開示は、ロボットにおいて低減したい振動の振動数の測定に限らず、自動制御が行われて物理的な状態が変化する様々な機械において低減したい振動の振動数を測定する場合に、適用しうる。
D5.変形例5:
(1)上記実施形態においては、カメラ400bの振動を計測するために、振動計測装置700は、カメラ400bが取りつけられている支柱F400bに取りつけられる(図10のP704および図36参照)。しかし、撮像部の振動を計測する際には、第1の検出器は、画像を撮像することができる撮像部に取りつけられてもよい(図10のP705参照)。
なお、撮像部は、静止画を撮像するカメラであってもよいし、動画を撮像するカメラであってもよい。すなわち、カメラが撮像する画像は、静止画であってもよいし、動画であってもよい。
(2)上記実施形態においては、制御対象のロボットと、制御対象のロボット以外の構造と、の両方に振動計測装置700が取りつけられる。そして、両方の測定結果に基づいて、振動低減処理が実施される。しかし、制御信号改変部としてのフィルター処理部340は、制御対象のロボットに取りつけられる第2の検出機に基づく周波数成分の低減を行わない態様とすることもできる。
(3)上記実施形態においては、振動計測装置700は、ロボットのアーム110bに取り付けられる(図10のP702参照)。しかし、第2の検出器は、サーボモーターの駆動によって変位しない、ロボットのアームの基部に取りつけられることもできる。
(4)上記実施形態においては、振動計測装置700は、それぞれ第2支持部720に着脱可能でかつ互いに交換可能な第1~第4の取付部760~790を備える(図18~図21参照)。しかし、検出器は、交換可能な取付部を備えず、出力部自体が測定対象部位に取りつけられる態様とすることもできる。
また、検出器は、外表面に計測される振動の方向である3方向を示す表示(図16の745参照)を有さない態様とすることもできる。
上記実施形態においては、振動計測装置700の出力部750が備える出力端子は、設定装置600に有線接続される。しかし、振動計測装置は、設定装置と無線で接続される態様とすることもできる。
(5)上記実施形態においては、6軸または4軸のロボットの振動の低減について説明した。しかし、本明細書で開示した技術は、6軸または4軸の多軸ロボットに限らず、プリンター、プロジェクターど、制御が行われて物理的な状態が変化する様々な機械に適用することができる。たとえば、本明細書で開示した技術をプリンターの印刷ヘッドの動作や印刷媒体の搬送動作に適用することにより、ヘッドと印刷媒体との相対位置の変動(振動)を低減することもできる。
(6)本開示は、ロボットおよびロボットの制御のために使用される画像センサーに限らず、自動制御が行われて物理的な状態が変化する様々な機械およびその自動制御に影響を与えるその機械以外の構成について、適用しうる。
本開示は、上述の実施形態や実施例、変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、実施例、変形例中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。