(58)【調査した分野】(Int.Cl.,DB名)
前記判定部が、前記妥当性がないと判定した場合に、前記センサの前記内部パラメータ、前記状態量、前記取付位置および姿勢の内、前記妥当性がないと判定した値を補正する請求項1または請求項2に記載の制御システム。
前記報知部が、前記センサの前記内部パラメータ、前記状態量、前記取付位置および姿勢の内、前記判定部によって前記妥当性がないと判定された値を報知する請求項4に記載の制御システム。
前記センサが、加速度センサ、ジャイロセンサ、力センサ、レーザトラッカ、カメラおよびモーションキャプチャ装置のいずれかである請求項1から請求項5のいずれかに記載の制御システム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に記載された技術を用いて振動やねじれを補正するためには、ジャイロセンサの検出値と、ジャイロセンサのキャリブレーションデータ等の内部パラメータと、アームに対するジャイロセンサの取付位置および向きに関連する外部パラメータとが、適切に設定されている必要がある。これらが適切に設定されていない場合には、算出された補正値を用いても、アームに発生する振動やねじれを補正できない場合がある。その結果、補正値を用いたロボットの制御を行う前に、上記の値が適切に設定されているかを判定する必要があった。
【0005】
本発明は、振動防止のために用いられるセンサが適切に設定されていない状態のままで被駆動体の動作制御が行われることを防止することができる制御システムおよび被駆動体の制御方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様は、モータにより駆動される被駆動体と、前記モータを制御して前記被駆動体を動作させる制御装置と、前記被駆動体に取り付けられ取付位置における該被駆動体の状態量を検出するセンサとを備え、前記制御装置が、前記取付位置に生じる振動を補正するための振動補正量を記憶する記憶部と、動作プログラムに基づいて制御周期毎に前記モータへの指令値を生成し、前記記憶部に記憶されている前記振動補正量および前記指令値に基づいて前記被駆動体の動作制御を行う動作制御部と、該動作制御部による前記動作制御が行われたときに前記振動補正量を算出する補正量算出部と、前記動作制御が行われる毎に前記振動補正量を更新する補正量更新部と、前記動作制御が行われる毎に、前記指令値と前記状態量
とに基づいて、前記センサの内部パラメータ、前記状態量、前記取付位置および姿勢の少なくとも1つの妥当性を判定する判定部とを備え
、該判定部が、前記センサによって検出された前記状態量と前記センサの前記内部パラメータとに基づいて算出された第1の時系列データと、前記指令値と前記センサの前記取付位置および姿勢の設定値とに基づいて算出された第2の時系列データとの積に基づいて相関値を算出し、該相関値と予め設定された閾値に基づいて前記妥当性を判定する制御システムを提供する。
【0007】
本態様によれば、動作制御部により動作プログラムに基づいて制御周期毎に指令値が生成され、生成された指令値および記憶部に記憶されている振動補正量に基づいて被駆動体の動作制御が行われる。動作制御部による動作制御が行われる毎に、被駆動体に取り付けられているセンサにより取付位置における被駆動体の状態量が検出され、補正量算出部により振動補正量が算出され、補正量更新部により更新される。そして、指令値と状態量とに基づいて、判定部によりセンサの内部パラメータ、状態量、取付位置および姿勢の少なくとも1つの妥当性が判定される。
【0008】
すなわち、センサの内部パラメータ、状態量、取付位置および姿勢が妥当である場合には、被駆動体の振動を抑制する方向に振動補正量が更新されていく一方、妥当でない場合には、振動の抑制が効果的に行われないが、センサにより検出される状態量と動作プログラムに基づいて生成される指令値とに基づいて妥当性が判定されるので、センサの内部パラメータ、状態量、取付位置および姿勢の少なくとも1つが妥当でないことを迅速に認識することができる。これにより、センサの内部パラメータ、状態量、取付位置および姿勢のいずれかが妥当ではない状態で被駆動体が制御し続けられることを防止することができる。
【0009】
上記態様においては、前記判定部が、前記動作制御が実行される毎に、前記センサによって検出された前記状態量の時系列データと前記センサの前記内部パラメータとに基づいて算出された前記センサの前記取付位置における物理量の第1の時系列データと、前記指令値の時系列データと前記センサの前記取付位置および姿勢の設定値とに基づいて算出された前記センサの前記取付位置における物理量の第2の時系列データとを用いて相関値を算出し、算出した該相関値に基づいて前記妥当性を判定してもよい。
【0010】
この構成により、センサの取付位置における物理量が、2つの異なるパラメータに基づいて第1の時系列データと第2の時系列データとして算出される。この2つのパラメータに基づく相関値を比較することにより、センサの内部パラメータ、状態量、取付位置および姿勢の少なくとも1つが妥当でないことを簡単に認識できる。
【0011】
上記態様においては、前記判定部が、前記妥当性がないと判定した場合に、前記センサの前記内部パラメータ、前記状態量、前記取付位置および姿勢の内、前記妥当性がないと判定した値を補正してもよい。
この構成により、正しく設定されていないパラメータ等が特定されて補正されるため、速やかにセンサの内部パラメータ、状態量、取付位置および姿勢を適切に設定できる。
【0012】
上記態様においては、前記判定部によって前記妥当性がないと判定された場合に、前記妥当性がない旨を報知する報知部を備えていてもよい。
この構成により、報知を受けたユーザは、センサの内部パラメータ、状態量、取付位置および姿勢のいずれかが妥当ではない状態で被駆動体が制御し続けられることを防止することができる。
【0013】
上記態様においては、前記報知部が、前記センサの前記内部パラメータ、前記状態量、前記取付位置および姿勢の内、前記判定部によって前記妥当性がないと判定された値を報知してもよい。
この構成により、ユーザは、適切な値のみから算出したセンサの内部パラメータ、状態量、取付位置および姿勢を用いることにより、適切な振動補正量を得ることができる。
【0014】
上記態様においては、前記センサが、加速度センサ、ジャイロセンサ、力センサ、レーザトラッカ、カメラおよびモーションキャプチャ装置のいずれかであってもよい。
【0015】
本発明の他の一態様は、被駆動体に取り付けられたセンサにより検出された取付位置における状態量に基づいて、前記取付位置に生じる振動を補正するための振動補正量を算出するステップと、算出された前記振動補正量を記憶するステップと、動作プログラムに基づいて制御周期毎に前記被駆動体への指令値を生成し、記憶されている前記振動補正量および前記指令値に基づいて前記被駆動体の動作制御を行うステップと、前記動作制御が行われる毎に前記振動補正量を更新するステップと、前記動作制御が行われる毎に、前記指令値と前記状態量
とに基づいて、前記センサの内部パラメータ、前記状態量、前記取付位置および姿勢の少なくとも1つの妥当性を判定するステップとを含
み、該妥当性を判定するステップが、前記センサによって検出された前記状態量と前記センサの前記内部パラメータとに基づいて算出された第1の時系列データと、前記指令値と前記センサの前記取付位置および姿勢の設定値とに基づいて算出された第2の時系列データとの積に基づいて相関値を算出し、該相関値と予め設定された閾値に基づいて前記妥当性を判定する被駆動体の制御方法を提供する。
【0016】
本態様によれば、センサの内部パラメータ、状態量、取付位置および姿勢の妥当性があると判定された場合には、被駆動体の振動を抑制する方向に振動補正量が更新されていく。一方で、妥当性がないと判定された場合には、状態量と、動作プログラムに基づく指令値とに基づいて妥当性が判定されているので、センサの内部パラメータ、状態量、取付位置および姿勢の少なくとも1つが妥当でないことを認識できる。これにより、センサの内部パラメータ、状態量、取付位置および姿勢のいずれかが妥当ではない状態で被駆動体が制御し続けられることを防止することができる。
【発明の効果】
【0017】
本発明によれば、振動防止のために用いられるセンサが適切に設定されていない状態のままで被駆動体の動作制御が行われることを防止することができるという効果を奏する。
【発明を実施するための形態】
【0019】
本発明の実施形態に係る制御システム100について、図面を参照しながら以下に説明する。
図1は、制御システム100を説明するための概略図である。制御システム100は、6つの関節軸を有する垂直多関節型ロボット(被駆動体:以降、単に「ロボット」と呼ぶ)10と、ロボット10の動作を制御する制御装置20と、ロボット10の先端に取り付けられた加速度センサ(センサ)SNとを備えている。
【0020】
ロボット10は、先端位置に作業対象のワークに作業を行うためのエンドエフェクタEFを有している。加速度センサSNは、エンドエフェクタEFに取り付けられ、取付位置であるエンドエフェクタEFの加速度(状態量)を検出する。ロボット10の各関節軸は、制御装置20によって制御されているモータの駆動によって、各回転軸回りに駆動する。各モータには、モータの回転角度を検出するエンコーダが配置されている。ロボット10には、ワールド座標系Cwが設定されており、エンドエフェクタEFには、インタフェイス座標系Ci(以降、「センサ座標系Ci」とも呼ぶ)が設定されている。
【0021】
制御装置20は、各種制御を実行する制御部29と、ユーザの操作を受け付ける操作部26と、ロボット10の制御に関連する情報を画像として表示可能なモニタ(報知部)27と、警告通知などの音を出力するスピーカ(報知部)28とを備えている。制御部29は、
図1に図示されていないCPU(Central Processing Unit)と、ROM(Read Only
Memory)と、RAM(Random Access Memory)と、メモリとで構成されている。CPUが、ROMに格納されたプログラムを、RAMとメモリとに展開することにより、制御部29は、各プログラム機能を実行できる。操作部26は、キーボードおよびマウスで構成されている。
【0022】
図1に示されるように、制御部29は、ロボット10の動作プログラムおよびエンドエフェクタEFが動作した際にエンドエフェクタEFに発生する振動を補正するための振動補正量を記憶する記憶部25と、記憶部25から読み出した動作プログラムに応じて生成した指令値に基づいてモータを駆動させる動作制御部21と、振動補正量を算出する補正量算出部23と、動作プログラムが実行される毎に算出される振動補正量を更新する補正量更新部24と、動作プログラムが実行される毎に加速度センサSNのキャリブレーションデータ等の内部パラメータを用いて内部パラメータ等が適切であるか否かを判定する判定部22とを備えている。
【0023】
補正量算出部23は、動作プログラムが実行される毎に振動補正量を算出するために、加速度センサSNの検出値と、加速度センサSNの内部パラメータとを用いて、センサ加速度As1を算出する。
【0024】
補正量算出部23は、
図2に示されるように、動作プログラムに基づく指令値を変換することによって、エンドエフェクタEFの位置データを算出する。補正量算出部23は、算出したエンドエフェクタEFの位置データに、センサ座標系Ciを使用することによって、加速度センサSNの位置データである第2位置データを算出する。補正量算出部23は、算出した第2位置データを2回微分することによって、第2加速度データ(第2の時系列データ)Acを算出する。
【0025】
補正量算出部23は、算出した第2加速度データAcと、加速度センサSNによって検出された
図3に示されるセンサ加速度As1とを順に加工することによって、振動補正量を算出する。
図3に示されるように、センサ加速度As1は、第2加速度データAcと比較して、重力加速度の分およびエンドエフェクタEFにおける振動の分に対応する差分を有している。
【0026】
補正量算出部23は、センサ加速度As1から重力加速度を差し引いて、
図4に示される修正加速度As2の時系列データを算出する。その後、補正量算出部23は、修正加速度As2に対してローパスフィルタをかけて電気的なノイズを除去する。補正量算出部23は、ノイズが除去された加速度に対して、
図2に示されるように、加速度センサSNのキャリブレーションデータを使用することによって、第1加速度データ(第1の時系列データ)As3を算出する。補正量算出部23は、
図5に示される第1加速度データAs3から、第2加速度データAcを差し引いた差分を、
図6に示される振動補正量Ad1として算出し、振動補正量Ad1を記憶部25に記憶させる。
【0027】
補正量更新部24は、動作プログラムが実行される毎に補正量算出部23によって算出された振動補正量Ad1を、記憶部25に記憶された新たな振動補正量として更新する。
【0028】
図1に示される判定部22は、記憶部25に記憶された振動補正量が下記3点について適切であるか否かの妥当性を判定する。
1 加速度センサSNの内部パラメータの設定値
2 エンドエフェクタEFに対する加速度センサSNの取付位置および姿勢の設定値
3 加速度センサSNの検出値
なお、以降では、上記3点の値の総称として、単に「上記内部パラメータ等」を用いる。
【0029】
判定部22は、動作プログラムに基づいて各モータが駆動すると、補正量算出部23により算出された第1加速度データAs3および第2加速度データAcを用いて、下記式(1)に示される相関値cを算出する。判定部22は、算出した相関値cに基づいて上記内部パラメータ等についての妥当性を判定する。
【0030】
【数1】
a
ck:各時刻における第2加速度データAc
a
sk:各時刻における第1加速度データAs3
【0031】
上記式(1)に示されるように、第1加速度データAs3と、第2加速度データAcとの差分が小さいほど、相関値cは1に近づく。判定部22は、相関値cを含む下記式(2)を用いて、上記内部パラメータ等の妥当性を判定する。
【0033】
判定部22は、式(2)の左辺が予め設定された閾値ε以下の場合に、上記内部パラメータ等の妥当性があると判定する。一方で、判定部22は、式(2)の左辺が閾値εを超える場合に、上記内部パラメータ等の妥当性がないと判定する。
【0034】
図5に示される第1加速度データAs3および第2加速度データAcとを用いて算出された相関値cを上記式(2)に代入すると、
図7に示される時系列データが得られる。
図7に示されるように、この場合の相関値cから1を差し引いた値は、−εから+εまでの範囲に含まれている。よって、判定部22は、この場合の上記内部パラメータ等の妥当性があると判定する。なお、
図7における時間軸である横軸のスケールは、指令値が変動している期間に対応している。すなわち、
図7の横軸のスケールは、指令値の変動が完了した後の指令値の加速度がゼロになった後の時系列データを含んでおらず、
図3−6の横軸全体のスケールと異なる。
【0035】
一方で、判定部22が上記内部パラメータ等の妥当性がないと判定する場合には、妥当性がない原因として、例えば、下記の3つの事象が考えられる。
A 加速度センサSNのキャリブレーションデータが不適切な場合
B 加速度センサSNの取付方向の設定値が不適切な場合
C 加速度センサSNが異常値を検出している場合
【0036】
図8には、妥当性がないと判定される事象Aの場合に、加速度センサSNによって検出された比較例のセンサ加速度As1aが示されている。なお、
図8の縦軸および横軸のスケールは、
図3−6のスケールと同じであり、以降で説明する
図10,12のスケールとも同じである。
図8に示されるセンサ加速度As1aと、
図3に示されるセンサ加速度As1とを比較すると、センサ加速度As1aが、実際よりも重力加速度を小さく検出されている。センサ加速度As1aを用いた場合の上記式(2)の時系列データは、
図9に示され、+εよりも大きい値および−εよりも小さい値を含んでいる。なお、
図9の縦軸及び横軸のスケールは、
図7のスケールと同じであり、以降で説明する
図11,13のスケールとも同じである。
【0037】
図10には、妥当性がないと判定される事象Bの場合に、加速度センサSNによって検出された別の比較例のセンサ加速度As1bが示されている。
図10に示されるセンサ加速度As1bと、
図3に示されるセンサ加速度As1とを比較すると、センサ加速度As1bの検出方向が、実際の方向と正反対になっている。センサ加速度As1bを用いた事象Bの場合の上記式(2)の時系列データは、
図11に示されるように、全域において−εよりも小さい値で推移している。
【0038】
図12には、妥当性がないと判定される事象Cの場合に、加速度センサSNによって検出された別の比較例のセンサ加速度As1cが示されている。
図12に示されるセンサ加速度As1cと、
図3に示されるセンサ加速度As1とを比較すると、センサ加速度As1cが、指令値の振幅が最も小さい時点付近で瞬間的な異常値を含んでいる。センサ加速度As1cを用いた事象Cの場合の上記式(2)の時系列データは、
図13に示されるように、センサ加速度As1cが異常値を含む前後で−εよりも小さい値を含んでいる。
【0039】
ここで、実際に行われるロボット10の制御方法について、
図14に示されるフローチャートに沿って説明する。初めに、動作制御部21は、記憶部25に記憶された動作プログラムと、前回の動作プログラム実行時に記憶部25に記憶された振動補正量を読み出す(ステップS1)。動作制御部21は、読み出した動作プログラムおよび振動補正量に基づき、各モータを駆動させる動作制御を実行する(ステップS2)。
【0040】
補正量算出部23は、動作制御の実行時に検出された加速度センサSNの検出値と、動作プログラムの指令値とに基づいて、振動補正量Ad1を算出する(ステップS3)。補正量更新部24は、補正量算出部23によって算出された振動補正量Ad1を、新たな振動補正量として記憶部25に記憶させる(ステップS4)。
【0041】
次に、判定部22は、加速度センサSNの検出値と、指令値とに基づいて相関値cを算出する。判定部22は、算出した相関値cを式(2)に代入することによって、上記内部パラメータ等の妥当性を判定する(ステップS5)。
【0042】
判定部22により妥当性がないと判定された場合には(ステップS6:NO)、モニタ27およびスピーカ28によって妥当性がない旨の報知が行われる(ステップS7)。具体的な報知として、モニタ27によって妥当性がない旨の画像が表示され、かつ、スピーカ28によって警告音が出力される。
【0043】
ステップS7の処理が行われる、または、ステップS6の処理において判定部22によって妥当性があると判定されると(ステップS6:YES)、動作制御を終了するか否かが判定され(ステップS8)、終了しない場合には(ステップS8:NO)、ステップS2からの処理が繰り返される。
【0044】
本実施形態に係る制御システム100の作用について以下に説明する。
本実施形態に係る制御システム100によれば、動作制御部21が、動作プログラムの指令値と、記憶部25に記憶された前回の振動補正量とを用いて、動作制御を実行する。補正量算出部23は、動作制御により検出された加速度センサSNの検出値と、指令値とを用いて振動補正量Ad1を算出する。算出された振動補正量Ad1は、補正量更新部24によって、新たな振動補正量として毎回記憶部25に記憶される。振動補正量Ad1が算出されると同時に、判定部22は、加速度センサSNの検出値と、指令値とに基づく相関値cを用いて、加速度センサSNの検出値、加速度センサSNの内部パラメータの設定値、および、エンドエフェクタEFに対する加速度センサの取付位置および姿勢の少なくとも1つの妥当性を判定する。
【0045】
すなわち、上記内部パラメータ等の妥当性がある場合には、算出された振動補正量Ad1によってエンドエフェクタEFの振動が抑制される。一方で、妥当性がない場合には、上記内部パラメータ等の内のいずれかが適切に設定されていないことがユーザに認識される。ユーザは、適切に設定されていないパラメータ等を修正した後に、エンドエフェクタEFの振動を抑制するための適切な振動補正量Ad1を求めることができる。また、妥当性がない場合には、算出された振動補正量Ad1を用いて動作制御を行わないことによって、振動が発散した場合などにエンドエフェクタEFに発生し得る事故および損傷を未然に防止することができる。
【0046】
上記実施形態では、判定部22が、算出した第1加速度データAs3と、第2加速度データAcとを用いて相関値cを算出したが、変形例では、加速度データの代わりに
図15に示される第1速度データおよび第2速度データ等の他の物理量を用いてもよい。また、
図16に示されるように、実施形態の加速度データの代わりに、第1位置データおよび第2位置データが用いられて相関値cが算出されてもよい。
【0047】
上記実施形態では、判定部22が、相関値cを含む式(2)の左辺と閾値εとを比較することによって上記内部パラメータ等の妥当性を判定したが、変形例では、上記実施形態の相関値cとは異なる相関値によって妥当性を判定してもよい。例えば、判定部22は、式(3)に示されているa
ckおよびa
skの積である相関値c2の正負を判定することによって上記内部パラメータ等の妥当性を判定してもよい。また、判定部22は、相関値c2と、相関値cとを組み合わせて妥当性を判定してもよい。
【0049】
上記実施形態では、判定部22は、上記内部パラメータ等の妥当性を判定していたが、さらに、妥当性がないと判定した場合に、上記内部パラメータ等の適切な設定値を算出してもよい。適切な設定値の算出方法の一例として、判定部22は、初めに、
図1に示される加速度センサSNの検出値が、重力加速度を加味して(X,Y,Z)=(−9.8m/s
2,0,0)になるように、キャリブレーションデータを書き換える。その後、判定部22は、再度、相関値cを算出して、妥当性を判定する。
【0050】
別の例として、エンドエフェクタEFに対する加速度センサSNの取付位置および姿勢が適切でない場合に、判定部22は、下記式(4)を用いて、センサ座標系Ciの向きを複数に変更することによって、適切なエンドエフェクタEFに対する加速度センサSNの姿勢を算出してもよい。
【0051】
【数4】
W
0,P
0,R
0:初期設定値
j
1,j
2,j
3:−17〜+17までの任意の整数
【0052】
判定部22は、式(4)におけるj
1,j
2,j
3のそれぞれに35通りの数字を代入することによって、式(4)から算出される35
3通りのセンサ座標系Ciのすべての相関値cを算出する。判定部22は、算出した35
3種類の相関値cの内、式(2)の左辺の最大値が最小である相関値cのj
1,j
2,j
3の組み合わせを仮のセンサ座標系Ciの仮値(W
1,P
1,R
1)として設定する。これにより、10deg刻みで、センサ座標系Ciの大まかな適切な向きが決定する。
【0053】
次に、判定部22は、センサ座標系Ciの仮値(W
1,P
1,R
1)を基準として、下記式(5)を用いることによって、センサ座標系Ciのより詳細な適切な向きを決定する。
【0054】
【数5】
j
4,j
5,j
6:−9〜+9までの任意の整数
【0055】
判定部22は、式(5)におけるj
4,j
5,j
6のそれぞれに19通りの数字を代入することによって、式(5)から算出される19
3通りのセンサ座標系Ciの全ての相関値cを算出する。判定部22は、算出した19
3種類の相関値cの内、式(2)の左辺の最大値が最小である相関値cのj
1,j
2,j
3の組み合わせを仮のセンサ座標系Ciの仮値(W
1,P
1,R
1)として設定する。これにより、1deg刻みでセンサ座標系Ciのより詳細な適切な向きが決定する。なお、判定部22は、加速度センサSNの回転動作に対して同様の処理を行うことにより、加速度センサSNの取付位置についても適切な設定値を決定できる。
【0056】
上記実施形態および上記変形例では、判定部22は、相関値cを用いて上記内部パラメータ等の妥当性を判定したが、それ以外の指標を用いて妥当性を判定してもよい。例えば、変形例の判定部22は、第1加速度データAs3および第2加速度データAcに、移動平均フィルタおよびメディアンフィルタのような平滑化フィルタを掛け、2つのデータの差分を指標として算出してもよい。判定部22は、当該指標が予め設定された閾値を超える場合に、妥当性がないと判定してもよい。
【0057】
上記実施形態では、被駆動体として、ロボット10を例に挙げて説明したが、被駆動体については、指令値に基づくモータ駆動によって動作する物体であればよい。また、被駆動体の状態量を検出するためのセンサとして、上記実施形態では、加速度センサSNを用いたが、他の実施形態では、例えば、ジャイロセンサ、力センサ、レーザトラッカ、カメラおよびモーションキャプチャ装置などであってもよい。指令値として、エンコーダの検出値が用いられてもよい。