(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024101574
(43)【公開日】2024-07-30
(54)【発明の名称】加工ロボット制御装置、加工システム及び加工ロボット制御方法
(51)【国際特許分類】
B25J 13/08 20060101AFI20240723BHJP
【FI】
B25J13/08 Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023005521
(22)【出願日】2023-01-18
(71)【出願人】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】110003166
【氏名又は名称】弁理士法人山王内外特許事務所
(72)【発明者】
【氏名】清水 康司
(72)【発明者】
【氏名】田原 鉄也
【テーマコード(参考)】
3C707
【Fターム(参考)】
3C707AS12
3C707DS01
3C707ES03
3C707ET08
3C707HS27
3C707JS02
3C707KS31
3C707KS34
3C707KS35
3C707KW03
3C707KX06
3C707KX10
3C707LU01
3C707LU08
3C707LV01
(57)【要約】
【課題】加工ツールの回転数を検知するためのセンサを用いることなく、加工ツールを用いたロボットによる加工品質を向上することができる加工ロボット制御装置、加工システム及び加工ロボット制御方法を提供する。
【解決手段】加工ロボット制御装置3Aは、回転駆動する加工ツール1Aにより加工される加工対象W1を加工ツールに押付けるように、加工対象を保持したロボットアーム2Aを制御する制御部と、加工ツールの回転駆動により生じる振動を含むロボットアームにかかる外力を示すデータを取得する外力取得部と、外力取得部により取得された外力を示すデータに基づいて、加工ツールの回転数を推定するツール回転数推定部と、を備えた。
【選択図】
図1
【特許請求の範囲】
【請求項1】
回転駆動する加工ツールにより加工される加工対象を前記加工ツールに押付けるように、前記加工対象を保持したロボットアームを少なくとも含む加工ロボットシステムを制御する制御部と、
前記加工ツールの回転駆動により生じる振動を含む前記ロボットアームにかかる外力を示すデータを取得する外力取得部と、
前記外力取得部により取得された外力を示すデータに基づいて、前記加工ツールの回転数を推定するツール回転数推定部と、を備えた
ことを特徴とする加工ロボット制御装置。
【請求項2】
前記制御部は、前記ツール回転数推定部により推定された前記加工ツールの推定回転数に基づいて、前記加工ツールの回転数を制御する
ことを特徴とする請求項1記載の加工ロボット制御装置。
【請求項3】
前記加工ツールと前記加工対象とが接触しているか否かを判定するための接触判定部を備え、
前記制御部は、前記推定回転数と前記接触判定部による判定結果と、に基づいて、前記加工ツールが前記加工対象に接触している状態における前記加工ツールの回転数を制御する
ことを特徴とする請求項2記載の加工ロボット制御装置。
【請求項4】
前記制御部は、前記推定回転数と前記接触判定部による判定結果とに基づいて、前記推定回転数が予め設定されている回転数に関する条件を満たすように、前記加工ツールが前記加工対象に接触している状態における前記加工ツールの回転数を制御する
ことを特徴とする請求項3記載の加工ロボット制御装置。
【請求項5】
前記制御部は、前記接触判定部による判定結果が、前記加工ツールが前記加工対象に接触していない状態にあるとした場合は、前記推定回転数が予め設定されている回転数に関する条件を満たすための前記加工ツールの回転数の制御を制限する
ことを特徴とする請求項3記載の加工ロボット制御装置。
【請求項6】
前記加工対象の位置に関する位置情報を取得する位置情報取得部を備え、
前記制御部は、前記位置情報に基づいて前記加工ツールに対する前記加工対象の位置を変化させることにより前記加工ツールの回転数を制御する
ことを特徴とする請求項2記載の加工ロボット制御装置。
【請求項7】
前記外力取得部は、前記加工対象に対する前記加工ツールの押付力に関する情報を取得し、
前記制御部は、前記押付力に関する情報に基づいて、前記押付力を変化させることにより前記加工ツールの回転数を制御する
ことを特徴とする請求項2記載の加工ロボット制御装置。
【請求項8】
前記制御部は、前記加工ツールの回転力を変化させることにより、前記加工ツールの回転数を制御する
ことを特徴とする請求項2記載の加工ロボット制御装置。
【請求項9】
請求項1乃至8のいずれか1項記載の加工ロボット制御装置と、
前記ロボットアームと、
前記加工ツールの回転駆動により生じる振動を含む前記ロボットアームにかかる外力を検知するための力覚センサと、
前記加工ツールと、を備えた
ことを特徴とする加工システム。
【請求項10】
制御部と、外力取得部と、ツール回転数推定部と、を備えた装置が行う加工ロボット制御方法であって、
前記制御部が、回転駆動する加工ツールにより加工される加工対象を前記加工ツールに押付けるように、前記加工対象を保持したロボットアームを少なくとも含む加工ロボットシステムを制御するステップと、
前記外力取得部が、前記加工ツールの回転駆動により生じる振動を含む前記ロボットアームにかかる外力を示すデータを取得するステップと、
前記ツール回転数推定部が、前記外力取得部により取得された外力を示すデータに基づいて、前記加工ツールの回転数を推定するステップと、を備えた
ことを特徴とする加工ロボット制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、加工ツールを用いて加工するロボットアームを制御する加工ロボット制御装置、加工システム及び加工ロボット制御方法に関する。
【背景技術】
【0002】
一般に、ロボットに加工作業を実施させる場合、ロボットが有するロボットアームの手先に空圧式の加工ツールを取付けることで、加工作業が行われてきた。このような空圧式の加工ツールは、過負荷によって加工ツールの回転数が落ちるという特性がある。このため、加工ツールを用いたロボットは、加工品質の向上が難しい。
また、ロボットアームの手先に加工ツールを取り付けて加工を行う方法の他に、特許文献1の
図7のようにロボットアームの手先にワークを保持するツールを取り付け、それによりワークを保持し、加工ツールに押し当てて加工を行う加工方法もあるが、加工品質の問題については同じである。
【0003】
これに対し、加工ツールの回転数を検知可能な加工システムが開示されている(例えば特許文献2参照)。この加工システムは、光電センサを用いて加工ツールの回転数を検知し、検知した回転数に応じてワークへの押付け力を制御することで、加工品質の向上を図っている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2016-68216号公報
【特許文献2】特開2000-24974号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献2に開示されている加工システムは、ロボットアームにかかる押付け力を検知するためのセンサとは別に、加工ツールの回転数を検知するためのセンサが必要になるという課題がある。
【0006】
本開示は、上記課題を解決するものであって、加工ツールの回転数を検知するためのセンサを用いることなく、加工ツールを用いたロボットによる加工品質を向上することができる加工ロボット制御装置、加工システム及び加工ロボット制御方法を提供することを目的としている。
【課題を解決するための手段】
【0007】
本開示に係る加工ロボット制御装置は、回転駆動する加工ツールにより加工される加工対象を加工ツールに押付けるように、加工対象を保持したロボットアームを少なくとも含む加工ロボットシステムを制御する制御部と、加工ツールの回転駆動により生じる振動を含むロボットアームにかかる外力を示すデータを取得する外力取得部と、外力取得部により取得された外力を示すデータに基づいて、加工ツールの回転数を推定するツール回転数推定部と、を備えたことを特徴とする。
【発明の効果】
【0008】
本開示によれば、上記のように構成したので、加工ツールの回転数を検知するためのセンサを用いることなく、加工ツールを用いたロボットによる加工品質を向上することができる。
【図面の簡単な説明】
【0009】
【
図1】実施の形態1に係る加工システムの構成例を示す図。
【
図2】実施の形態1に係る加工システムの構成を示すブロック図。
【
図3】実施の形態1に係るツール負荷制御部の構成を示すブロック図。
【
図4】実施の形態1に係るコントローラのハードウェア構成の一例を示す図。
【
図5】実施の形態1に係るコントローラのハードウェア構成の一例を示す図。
【
図6】実施の形態1に係るコントローラが行う処理を示すフローチャート。
【
図7】実施の形態1に係るセンサ受信部による外力データの取得結果の一例を示す図。
【
図8】実施の形態1に係るツール回転数演算部による外力データのスペクトル解析結果の一例を示す図。
【
図9】実施の形態2に係る加工システムの構成例を示す図。
【
図10】実施の形態3に係る加工システムの構成を示すブロック図。
【
図11】実施の形態3に係るツール負荷制御部の構成を示すブロック図。
【
図12】実施の形態3に係るコントローラが行う処理を示すフローチャート。
【
図13】実施の形態4に係る加工システムの構成例を示す図。
【
図14】実施の形態4に係る加工システムの構成を示すブロック図。
【
図15】実施の形態4に係るツール負荷制御部の構成を示すブロック図。
【
図16】実施の形態4に係るコントローラが行う処理を示すフローチャート。
【発明を実施するための形態】
【0010】
以下、本開示に係る実施の形態について図面を参照しながら詳細に説明する。
実施の形態1.
図1は、実施の形態1に係る加工ロボットシステムとしての加工システム100Aの構成例を示す図である。加工システム100Aは、
図1に示すように、加工ツール1A、ロボット2A、及びロボット2Aを制御するコントローラ3Aを備えている。
【0011】
加工ツール1Aは、回転駆動することにより加工対象であるワークW1を加工する。例えば、加工ツール1Aは、回転可能な先端工具11を有しており、先端工具11が加工対象であるワークW1に押付けられている状態で、先端工具11を回転させるように駆動することで、ワークW1の加工を行う。例えば、先端工具11は、ワークW1の切削、研磨、穴あけ等の加工を行うための刃又は砥石等によって構成されている。
【0012】
ロボットアームとしてのロボット2Aは、アーム部21と、アーム部の先端部(手先部)に配置されているエンドエフェクタE1と、を有している。エンドエフェクタE1は、ワークW1を保持可能に構成されている。例えば、エンドエフェクタE1は、第1把持爪221と、第1把持爪221と相対移動可能な第2把持爪222と、を有しており、第1把持爪221と第2把持爪222との間でワークW1を挟持することで、ワークW1を保持する。
【0013】
アーム部21は、エンドエフェクタE1と先端工具11との相対位置を変更可能に、エンドエフェクタE1を保持している。言い換えると、アーム部21は、エンドエフェクタE1が保持しているワークW1と加工ツール1Aとの相対位置を変更可能に、エンドエフェクタE1を保持している。例えば、アーム部21は、複数のリンクと、複数のリンク間にそれぞれ形成されている複数の関節と、を有しており、一端側の根元部が床面等に固定され、他端側の手先部が根元部に対して移動可能な多関節ロボットのアームとして機能する。このように構成されて、ロボット2Aは、コントローラ3Aの制御によりエンドエフェクタE1に保持されているワークW1を、先端工具11に押付け可能に構成されている。
【0014】
次に、
図2及び
図3を参照して、加工システム100Aの詳細について説明する。
図2は、実施の形態1に係る加工システム100Aの構成を示すブロック図である。
図2に示すように、例えば、ロボット2Aは、ロボットアーム駆動部としてのアーム駆動部23Aと、エンドエフェクタ駆動部24と、力覚センサ25Aと、を有しており、ロボット2Aとコントローラ3Aとは、互いに電気的に接続されている。
【0015】
アーム駆動部23Aは、エンドエフェクタE1を先端工具11との相対位置を変化させるように、アーム部21を駆動する。例えば、アーム駆動部23Aは、複数の関節のそれぞれに対応して設けられている複数のモータをコントローラ3Aからの信号に基づいて駆動することにより、エンドエフェクタE1を先端工具11との相対位置を変化させるように、アーム部21を駆動する。また、アーム駆動部23Aは、エンドエフェクタE1が保持しているワークW1が加工ツール1Aの先端工具11に接触している状態で、ワークW1が先端工具11に向けて移動するように各関節にトルクを発生させることで、ワークW1を加工ツール1Aに押付ける。
【0016】
また、アーム駆動部23Aは、アーム部21を駆動した際のエンドエフェクタE1の移動量に基づいて、エンドエフェクタE1の位置に関する情報を取得して、取得した情報をコントローラ3Aに出力する。例えば、アーム駆動部23Aは、各関節の角度を検知可能なサーボ機構によって構成されており、エンドエフェクタE1の位置に関する情報として各関節の角度を示す情報をコントローラ3Aに出力する。
【0017】
エンドエフェクタ駆動部24は、ワークW1を保持している状態とワークW1を保持していない状態とを切替えるように、エンドエフェクタE1を駆動する。例えば、エンドエフェクタ駆動部24は、コントローラ3Aからの信号に基づいて第1把持爪221と第2把持爪222とを互いに相対移動させることにより、ワークW1を挟持している状態とワークW1を挟持していない状態とを切替える。なお、エンドエフェクタ駆動部24は、アーム駆動部23Aを介してコントローラ3Aからの信号を受信するように構成されていてもよいし、図示しないコントローラ3Aの制御部から直接信号を受信するように構成されていてもよい。
【0018】
力覚センサ25Aは、ロボット2Aの力制御を行うためのセンサであり、加工ツール1Aの回転駆動により生じる微小な振動を含むロボット2Aにかかる外力を検知するためのセンサである。力覚センサ25Aは、外力を検知すると、検知した外力に応じた信号をコントローラ3Aに出力する。言い換えると、力覚センサ25Aは、外力を受けると、受けた外力を示すデータである外力データをコントローラ3Aに出力する。なお、ここで力とは、並進力とトルク(回転力)の両方を含むものとする。
図1に示すように、例えば、力覚センサ25Aは、アーム部21の先端とエンドエフェクタE1との間に取付けられており、エンドエフェクタE1が受けた外力を検知可能に構成されている。
【0019】
力覚センサ25Aは、エンドエフェクタE1が保持しているワークW1が加工ツール1Aに接触している状態で、ワークW1を介して加工ツール1Aの回転駆動により生じる振動を検知する(本開示では振動によって発生する力や、外力に含まれる振動に起因する成分を力覚センサが検知することを、単に振動を検知すると記述する)。例えば、加工ツール1Aの回転駆動により生じる振動は、先端工具11の重心が回転中心と一致していないことによる先端工具11の回転自体に起因する振動、及び先端工具11がワークW1に接触しながら回転することによるワークW1が先端工具11から受ける力に起因する振動がある。加工ツール1Aの回転駆動により生じる振動の振幅(振動によって発生する力の振幅)は小さいため、力覚センサ25Aは、この振幅を検知できるだけの分解能が必要である。
【0020】
また、力覚センサ25Aは、加工ツール1Aの回転駆動により生じる振動の周波数を捉えられるだけの帯域が必要である。言い換えると、力覚センサ25Aは、サンプリング周期が、加工ツール1Aの先端工具11の1回転に要する時間よりも短い必要がある。ここで、加工ツール1Aの先端工具11の回転数(以下「加工ツールの先端工具の回転数」を単に「加工ツールの回転数」ともいう。)をr[rpm]とすると、対応する周波数はr/60[Hz]になるため、力覚センサ25Aは、この周波数よりも広い帯域が必要となる。
【0021】
図2に示すように、加工ツール1Aは、先端工具11を回転させるツール駆動部12Aを有している。ツール駆動部12Aは、空気圧又は電力の供給を受けて、先端工具11を駆動し回転させる。言い換えると、ツール駆動部12Aは、空気圧又は電力の供給を受けて、加工ツール1Aを回転駆動させる。例えば、ツール駆動部12Aは、図示しない入力部に対するユーザの入力操作に応じて設定される回転数で、先端工具11を回転させる。なお、ツール駆動部12Aは、コントローラ3Aと電気的に接続されて、コントローラ3Aから受信した信号に基づく回転数で先端工具11を回転させるように構成されていてもよい。
【0022】
加工ロボット制御装置としてのコントローラ3Aは、加工ロボットシステムを制御する制御部(不図示)を備える。ここで加工ロボットシステムとは、少なくとも加工に用いるロボットアームを含み、加工に用いるツールなども含みうる、ロボットアームを中心とするシステムである。制御部は、センサ受信部31Aと、ツール回転数演算部32と、ツール負荷制御部34Aと、接触判定部33と、記憶部35と、を備えている。外力取得部としてのセンサ受信部31Aは、力覚センサ25Aからの情報を受信する。言い換えると、センサ受信部31Aは、力覚センサ25Aから、加工ツール1Aの回転駆動により生じる振動を含むロボット2Aにかかる外力を示すデータを取得している。センサ受信部31Aは、取得した情報をツール回転数演算部32に送信する。
制御部は、ユーザが作成したプログラム等の指示に従い、アーム駆動部23Aへロボット2Aを制御するための指令値を出力することにより、ワークW1を加工ツール1Aに押付けるように、ワークW1を保持したロボット2Aを制御する。例えば、制御部は、ワークW1が、プログラムによって決まる始点から、ワークW1と加工ツール1Aが接触すると想定される点を結ぶ直線に沿って動くように、ロボット2Aを制御する。この直線の方向から、ワークW1やエンドエフェクタE1の移動方向が決まる。
【0023】
ツール回転数推定部としてのツール回転数演算部32は、センサ受信部31Aにより取得された外力を示すデータに基づいて、加工ツール1Aの回転数を推定する。言い換えると、ツール回転数演算部32は、センサ受信部31Aから取得した外力を示すデータに基づいて、加工ツール1Aの回転数の推定値を算出する。例えば、ツール回転数演算部32は、センサ受信部31Aから取得したデータに対する高速フーリエ変換又はスペクトル解析の結果に基づいて、加工ツール1Aの回転数を推定する。ツール回転数演算部32は、推定した加工ツール1Aの回転数を示すデータを、ツール負荷制御部34Aに送信する。
【0024】
記憶部35は、コントローラ3Aが行う各種処理に用いられる情報を記憶している。例えば、記憶部35は、予め設定されているアーム部21の根元部と先端工具11との相対位置に関する情報、予め設定されている加工ツール1Aの回転数が満たすべき条件、先端工具11の形状及び大きさに関する情報、ワークW1の形状及び大きさに関する情報、その他各種処理に用いられる閾値を含む設定値を記憶している。なお、実施の形態1において、アーム部の根元部と先端工具との相対位置を、ロボットと加工ツールとの相対位置ともいう。
【0025】
接触判定部33は、エンドエフェクタE1が保持しているワークW1と先端工具11とが接触しているか否かを判定する。例えば、接触判定部33は、記憶部35に記憶されている情報と、アーム駆動部23Aから取得した情報と、センサ受信部31Aから取得した情報と、に基づいて、ワークW1と先端工具11とが接触しているか否かを判定する。具体的には、接触判定部33は、ユーザが作成したプログラム等の指示で決まるエンドエフェクタE1の移動方向を制御部から取得し、センサ受信部31AからエンドエフェクタE1がワークW1から受けた外力の大きさ及び外力の方向を示す情報を取得する。接触判定部33は、エンドエフェクタE1が受けた外力の移動方向成分の大きさが所定の閾値を超えた場合に、ワークW1と先端工具11とが接触している状態であると判定する。接触判定部33は、判定結果をツール負荷制御部34Aに送信する。なお、実施の形態1において、接触している状態とは、短時間の非接触状態を許容するものであり、ワークの加工において実質的に接触しているものとして扱って差し支えない状態を含む。例えば、実施の形態1において、接触している状態とは、先端工具11の1回転に要する時間よりも短い連続する非接触状態と、連続する接触状態と、を繰り返す状態を含む。また、接触判定部33は、エンドエフェクタE1の移動方向を、アーム駆動部23Aから取得するように構成されていてもよい。
【0026】
ツール負荷制御部34Aは、ツール回転数演算部32により推定された加工ツール1Aの推定回転数に基づいて、加工ツール1Aにかかる負荷を制御することにより、加工ツール1Aの回転数を制御する。一般に、一定の出力で回転する先端工具とワークとを接触させることによりワークの加工を行う場合、ワークと先端工具とが押付けあう力の大きさに応じて、先端工具の回転数が変化する。例えば、ワークと先端工具とが押付けあう力が大きい場合、ワークと先端工具とが押付けあう力が小さい場合よりも先端工具にかかる負荷が増大し、先端工具の回転数は低下する。このため、ワークと先端工具とが押付けあう力が大き過ぎると、先端工具の回転数が予め想定されている回転数よりも小さくなってしまう場合がある。
【0027】
このため、実施の形態1に係るツール負荷制御部34Aは、ツール回転数演算部32により推定された加工ツール1Aの推定回転数と、ワークW1の位置を示す位置情報と、接触判定部33による判定結果と、に基づいて、エンドエフェクタE1の位置制御を行うことにより、加工ツール1Aの回転数を間接的に制御している。この制御により、先端工具にかかる負荷増大による負荷変動を抑制する。
【0028】
図3は、実施の形態1に係るツール負荷制御部34Aの構成を示すブロック図である。
図3に示すように、ツール負荷制御部34Aは、手先位置算出部341Aと、手先位置指令値演算部342Aと、位置制御部343Aと、を有している。位置情報取得部としての手先位置算出部341Aは、アーム駆動部23Aから取得したエンドエフェクタE1の位置に関する手先位置情報(位置情報)に基づいて、エンドエフェクタE1の位置を算出する。言い換えると、手先位置算出部341Aは、アーム駆動部23Aから取得した位置情報としての各関節の角度を示す情報に基づいて、エンドエフェクタE1の位置を算出する。例えば、手先位置算出部341Aは、アーム駆動部23Aから取得した各関節の角度を示す情報に基づいて、根元部に対するエンドエフェクタE1の位置を算出する。
【0029】
手先位置指令値演算部342Aは、手先位置算出部341Aが算出したエンドエフェクタE1の位置、ツール回転数演算部32からの情報及び記憶部35に記憶されている情報に基づいて、ロボット2Aを制御するための指令値を算出する。例えば、手先位置指令値演算部342Aは、エンドエフェクタE1の位置、加工ツール1Aの推定回転数、ロボット2Aと加工ツール1Aとの相対位置を示す情報、ワークW1の大きさ及び形状、先端工具11の大きさ及び形状に基づいて、エンドエフェクタE1の位置制御をするための指令値を算出する。
【0030】
手先位置指令値演算部342Aは、加工ツール1Aの推定回転数が予め設定されている回転数に関する条件を満たすように制御する。回転数に関する条件とは、回転数が所定の設定回転数と一致する(一定値制御。例えば1200rpmにするという条件)、回転数が所定の回転数下限以上かつ回転数上限以下になる(レンジ制御、範囲制御。例えば1000rpm以上1200rpm以下といった条件)、回転数が所定の回転数下限以上になる(例えば1000rpm以上にする)、回転数が所定の回転数上限以下になる(例えば1200rpm以下にする)、といった条件である。これらの条件を満たすように制御するとは、例えば、閾値である設定回転数または回転数下限以下になった場合、加工ツール1Aの負荷を減少させるようにワークW1が加工ツール1Aから離れる方向へ、ワークW1と加工ツール1Aが接触すると想定される点を結ぶ直線に沿って、エンドエフェクタE1を移動させる指令値を算出する。また、手先位置指令値演算部342Aは、加工ツール1Aの推定回転数が予め設定されている設定回転数または回転数上限を超えた場合、加工ツール1Aの負荷を増大させるようにワークW1を加工ツール1Aに押付ける方向へ、ワークW1と加工ツール1Aが接触すると想定される点を結ぶ直線に沿って、エンドエフェクタE1を移動させる指令値を算出する。
なお、エンドエフェクタE1を移動させる指令値は、位置そのものを示す指令値の他、動かす方向と速度を示す速度指令値や、その動かす方向と速度を発生されるようなモータの駆動電流を示す指令値であってもよい。
【0031】
位置制御部343Aは、接触判定部33から取得した判定結果、及び手先位置指令値演算部342Aの算出結果に基づいて、アーム駆動部23Aに指令値を出力する。例えば、位置制御部343Aは、接触判定部33による判定結果がワークW1と加工ツール1Aとが接触している状態であることを示す結果であった場合、手先位置指令値演算部342Aが算出した指令値をアーム駆動部23Aへ出力する。また、例えば、位置制御部343Aは、接触判定部33による判定結果がワークW1と加工ツール1Aとが接触していない状態であることを示す結果であった場合、手先位置指令値演算部342Aが算出した指令値をアーム駆動部23Aへ出力しないことを決定する。言い換えると、位置制御部343Aは、接触判定部33による判定結果がワークW1と加工ツール1Aとが接触していない状態であることを示す結果であった場合、手先位置指令値演算部342Aが算出した指令値をアーム駆動部23Aへ出力することを制限する。また、言い換えると、位置制御部343Aは、接触判定部33による判定結果が、加工ツール1AがワークW1に接触していない状態であるという結果になった場合は、推定回転数が予め設定されている回転数に関する条件を満たすための、加工ツール1Aの回転数の制御を制限する。
【0032】
上述したツール回転数演算部32は、ワークW1と加工ツール1Aとが接触しているか否かによらず加工ツール1Aの推定回転数を算出するように構成することもできる。しかしながら、ワークW1と加工ツール1Aとが接触していない状態で算出された推定回転数はゼロになるか不正確な値になり、このように算出された推定回転数に基づいてコントローラ3Aがロボット2Aを制御した場合、ワークW1の加工品質の向上を行うことはできない。このため、実施の形態1においては、位置制御部343AがワークW1と加工ツール1Aとが接触していない状態で、手先位置指令値演算部342Aが算出した指令値をアーム駆動部23Aへ出力することを制限することで、不正確な推定回転数に基づいてロボット2Aが制御されることを抑制し、ワークW1の加工品質の向上を図っている。なお、上述したコントローラの構成の一部がロボットに配置されていてもよいし、上述したコントローラ3Aの構成の一部が、加工ツールに配置されていてもよいし、ロボットの構成の一部が、コントローラに配置されていてもよい。
また、位置制御部343Aは、ワークW1と加工ツール1Aとが接触していない状態では、接触している状態で行う回転数の制御と異なる制御を行ってもよい。例えば、エンドエフェクタE1の先端を、ワークW1を加工ツール1Aに押付ける方向へ、ワークW1と加工ツール1Aが接触すると想定される点を結ぶ直線に沿って動かして、ワークW1と加工ツール1Aが接触するように制御する。この他、加工ツール1Aを回転させる駆動力を低下させて、加工ツール1Aの回転数を小さくして、音や振動を抑制するような制御をしてもよい。
【0033】
次に、
図4及び
図5を参照して、コントローラ3Aのハードウェア構成について説明する。
図4は、実施の形態1に係るコントローラ3Aのハードウェア構成の一例を示すブロック図であり、
図5は、実施の形態1に係るコントローラ3Aの
図4とは異なるハードウェア構成の一例を示すブロック図である。例えば、
図4に示すように、コントローラ3Aは、プロセッサ3a、メモリ3b及びI/Oポート3cを有し、メモリ3bに格納されているプログラムをプロセッサ3aが読み出して実行するように構成されている。メモリ3bは、例えば、RAM、ROM、フラッシュメモリ、EPROM、EEPROM等の、不揮発性又は揮発性の半導体メモリであってよい。また、メモリ3bは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等であってもよい。さらにメモリ3bは、HDD又はSSDであってもよい。
【0034】
また、例えば、
図5に示すように、コントローラ3Aは、専用のハードウェアである処理回路3d及びI/Oポート3cを有している。処理回路3dは、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、システムLSI(Large-Scale Integration)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、又はこれらの組み合わせによって構成される。コントローラ3Aの各機能は、これらプロセッサ3a又は専用のハードウェアである処理回路3dがソフトウェア、ファームウェアまたはソフトウェアとファームウェアとの組合せであるプログラムを実行することによって実現される。なお、加工ツール1A及びロボット2Aについても、
図4及び
図5に示すコントローラ3Aのハードウェア構成と一部又は全部が同様のハードウェア構成によって構成されていてもよい。
【0035】
次に、
図6乃至
図8を参照して、実施の形態1に係るコントローラ3Aが実行するロボット制御方法に係る処理について説明する。
図6は、実施の形態1に係るコントローラ3Aが行う処理を示すフローチャートである。
図6に示すように、コントローラ3Aは、処理を開始すると、まず、加工ツール1Aの回転駆動により生じる振動を含むロボット2Aにかかる外力を示すデータを、センサ受信部31Aにより取得する(ステップST01)。この処理において、コントローラ3Aは、ワークW1が加工ツール1Aと接触する際に加工ツール1Aから受けた外力を示すデータを、センサ受信部31Aを介してロボット2Aの力覚センサ25Aから取得している。例えば、ステップST01の処理において、加工ツール1Aによる加工作業中に、
図7に示すようなデータが得られたとする。
図7は、実施の形態1に係るセンサ受信部31Aによる外力データの取得結果の一例を示す図である。
【0036】
ステップST01の処理を行うと、コントローラ3Aは、加工ツール1Aの回転数を推定するため、センサ受信部31Aが取得したデータの一部を抽出する(ステップST02)。この処理において、例えば、ツール回転数演算部32は、取得した外力データのうち、所定時間前から現在までのデータを抽出し、データを抽出後に高速フーリエ変換又はスペクトル解析を行う。この際、データを抽出する時間の長さ、すなわちデータ長は、適切な値に設定される必要がある。なぜなら、データ長が十分に長くない場合、周波数分解能が低くなり、求める回転数の分解能も低くなるためである。一方、データ長が長いと、求める回転数の分解能は高くなるが、回転数を検知するまでの時間が長くなるので、回転数が変化した場合に加工ツール1Aの回転数を変えるまでの時間も長くなり、加工品質や信頼性を改善するという目的が十分に達成できなくなる場合がある。よって、この2つのバランスを取って適切なデータ長を決める必要がある。つまり、必要な回転数の分解能と、必要とされる回転数を検知する時間から、設計者が適宜、必要ならば試行錯誤して決めればよい。
【0037】
なお、必要な回転数の分解能は加工ツール1Aの回転数と概ね比例する場合が多いので、最低限必要なデータ長は加工ツール1Aの回転数に基づいて決めることができる。例えば、回転数の推定における分解能として加工ツールの回転数のr%が必要ならば、データ長は先端工具11の1回転に要する時間の約100/r倍以上にするといった手順で決める。つまり、回転数の分解能として回転数の5%が必要ならば、データ長は先端工具11の1回転に要する時間の20倍にする。ここで、先端工具11の1回転に要する時間は、加工ツール1Aの設定回転数に基づいて算出されてもよいし、ツール回転数演算部32が算出した加工ツール1Aの推定回転数の、直近の所定期間における平均値に基づいて算出されてもよい。
【0038】
そして、ツール回転数演算部32は、抽出したデータに対して高速フーリエ変換又はスペクトル解析を行い、データの周波数毎のパワー又は振幅を求める(ステップST03)。
図8は、実施の形態1に係るツール回転数演算部32による外力データのスペクトル解析結果の一例を示す図である。例えば、ツール回転数演算部32は、抽出したデータに対してスペクトル解析を実施することで、
図8に示すような結果を得ることができる。
図8において、横軸は周波数を示し、縦軸は周波数毎のパワー(パワースペクトル)を示している。
【0039】
そして、ツール回転数演算部32は、高速フーリエ変換又はスペクトル解析の結果から、パワー又は振幅が最も大きい周波数を、加工ツール1Aの回転に対応する周波数であると推定し、その周波数から加工ツール1Aの回転数を推定する(ステップST04)。例えば
図8では、パワーが最も大きい周波数が20[Hz]であるため、ツール回転数演算部32は、20[Hz]×60[sec]=1200[rpm]が加工ツール1Aの回転数であると推定する。この際、ツール回転数演算部32は、加工ツール1Aの回転と関係無い周波数にあるパワー又は振幅のピーク(この例で言えば20[Hz]から離れた周波数にあるピーク)については無視する方がよい。なお、この演算では、高速フーリエ変換又はスペクトル解析により得られた周波数毎のパワー又は振幅の値そのものではなく、パワー又は振幅が最も大きくなる周波数を求めることで回転数を推定している点に注意を要する。
【0040】
ステップST04の処理を行うと、コントローラ3Aは、回転数が満たすべき条件を取得する(ステップST05)。この処理において、ツール負荷制御部34Aは、記憶部35に記憶されている情報を参照し、ワークW1が接触している状態の加工ツール1Aの回転数に求める条件である、予め設定されている回転数が満たすべき条件を記憶部35から取得している。
【0041】
ステップST05の処理を行うと、コントローラ3Aは、手先位置情報、即ちエンドエフェクタE1の位置に関する情報を取得する(ステップST06)。この処理において、ツール負荷制御部34Aは、アーム駆動部23Aから手先位置情報として、アーム駆動部23Aから取得した各関節の角度を示す情報を取得している。
【0042】
ステップST06の処理を行うと、コントローラ3Aは、手先位置、即ちエンドエフェクタE1の位置を算出する(ステップST07)。この処理において、ツール負荷制御部34Aは、ステップST06で取得した手先位置情報に基づいて、エンドエフェクタE1の位置を算出している。
【0043】
ステップST07の処理を行うと、コントローラ3Aは、ツール情報及びワーク情報を取得する(ステップST08)。この処理において、ツール負荷制御部34Aは、記憶部35に記憶されている情報を参照し、先端工具11の形状及び大きさに関する情報及びロボット2Aと加工ツール1Aとの相対位置に関する情報を含む加工ツール1Aに関する情報であるツール情報と、ワークW1の形状及び大きさに関する情報を含むワークW1に関する情報であるワーク情報と、を取得している。
【0044】
ステップST08の処理を行うと、コントローラ3Aは、手先位置指令値を算出する(ステップST09)。この処理において、ツール負荷制御部34Aは、手先位置と、推定回転数と、ツール情報と、ワーク情報と、に基づいて、ロボット2Aを制御するための指令値である手先位置指令値を算出している。
【0045】
ステップST09の処理を行うと、コントローラ3Aは、加工ツール1AとワークW1とが接触している状態であるか否かを判定する(ステップST10)。この処理において、接触判定部33は、記憶部35に記憶されている情報と、アーム駆動部23Aから取得した情報と、センサ受信部31Aから取得した情報と、に基づいて、ワークW1と先端工具11とが接触しているか否かを判定している。
【0046】
ステップST10の処理において、加工ツール1AとワークW1とが接触している状態である場合(ステップST10のYES)、コントローラ3Aは、アーム駆動部23Aへ指令値を出力して加工ツール1Aに対するワークW1の位置を変化させる(ステップST11)。この処理において、ツール負荷制御部34Aは、加工ツール1Aに対するワークW1の位置を変化させることにより、推定回転数が設定された回転数に関する条件を満たすように、加工ツール1AがワークW1に接触している状態における加工ツール1Aの回転数を制御している。
【0047】
ステップST10の処理において、加工ツール1AとワークW1とが接触していない状態である場合(ステップST10のNO)、及びステップST11の処理を行った場合、コントローラ3Aは、処理をステップST01に戻す。
【0048】
以上、実施の形態1に係る加工システム100Aは、回転駆動する加工ツール1Aにより加工されるワークW1を加工ツール1Aに押付けるように、ワークW1を保持したロボット2Aを制御するツール負荷制御部34Aと、加工ツール1Aの回転駆動により生じる振動を含むロボット2Aにかかる外力を示すデータを取得するセンサ受信部31Aと、センサ受信部31Aにより取得された外力を示すデータに基づいて、加工ツール1Aの回転数を推定するツール回転数演算部32と、を備えた。これにより、実施の形態1に係る加工システム100Aは、加工ツール1Aの回転数を検知するセンサを別途用いることなく、加工ツール1Aを用いたロボット2Aによる加工品質及び信頼性を改善可能となる。
【0049】
また、実施の形態1に係る加工システム100Aは、加工ツール1Aの回転数を検知するセンサを別途用いる必要が無いので、搭載するセンサの種類及び数を抑制し、従来よりも製品のコストを抑制することが可能になる。また、従来の力覚センサと加工ツールの回転数を検知するセンサとを共に備える加工システムのように、これら両方のセンサによる検知結果をロボット側にフィードバックする必要がないので、従来よりもコントローラ3Aとロボット2Aとを接続する配線の数を抑制することが可能になる。また、実施の形態1に係る加工システム100Aは、力覚センサ25Aによる検知結果の出力結果のみを取得すればよいため、ソフトウェアとして、両方のセンサの出力結果を取得するためのインターフェイスの実装が不要となり、従来よりも開発コストを抑制することが可能になる。
【0050】
また、実施の形態1に係る加工システム100Aは、ワークW1の位置に関する位置情報を取得する手先位置算出部341Aを備え、ツール負荷制御部34Aは、位置情報に基づいて加工ツール1Aに対するワークW1の位置を変化させることにより加工ツール1Aの回転数を制御する。これにより、加工システム100Aは、ワークW1と加工ツール1Aとの接触している状態における加工ツール1Aの回転数を安定させることが可能になり、従来よりも加工ツール1Aを用いたロボット2Aによる加工品質を向上させることができる。
【0051】
また、実施の形態1に係る加工システム100Aは、加工ツール1AとワークW1とが接触しているか否かを判定するための接触判定部33を備え、ツール負荷制御部34Aは、推定回転数と接触判定部33による判定結果と、に基づいて、加工ツール1AがワークW1に接触している状態における加工ツール1Aの回転数を制御する。これにより、加工システム100Aは、ワークW1と加工ツール1Aとが接触していない状態で算出された推定回転数に基づく指令値をアーム駆動部23Aへ出力することを制限し、従来よりも加工ツール1Aを用いたロボット2Aによる加工品質を向上させることができる。
【0052】
なお、実施の形態1において、加工システム100Aは、コントローラ3Aが推定回転数に基づいて加工ツール1Aの回転数を制御するように構成されているが、これに限定されない。加工システムは、少なくとも加工ツールの回転駆動により生じる振動を含むロボットにかかる外力を示すデータに基づいて、加工ツールの回転数を推定可能であればよく、例えば、加工システムは、推定回転数を表示する図示しない表示部と、ユーザがロボット2Aに対する手動操作を受付ける図示しない入力操作部と、を備え、ユーザが表示部に表示された推定回転数を見て、加工ツール1Aの回転数が変化するようにロボット2Aを手動で操作することができるように構成されていてもよい。特に、ロボット2Aを遠隔から手動で操作する場合は、加工ツール1Aの状態がわかりにくいため、表示部に表示される情報はユーザにとってより有用になると考えられる。
【0053】
また、実施の形態1において、加工システム100Aは、コントローラ3Aが推定回転数と接触判定部33による判定結果と、に基づいて、加工ツール1AがワークW1に接触している状態における加工ツール1Aの回転数を制御するように構成されているが、これに限定されない。加工システムは、少なくともワークと加工ツールとが接触している状態であるか否かを判定可能に構成されていればよく、例えば、加工システムは、ワークと加工ツールとが接触している状態であるか否かの判定結果を表示する図示しない表示部と、ユーザによるロボット2Aに対する手動操作を受付ける図示しない入力操作部と、を備え、ユーザが表示部に表示された判定結果を見て、加工ツール1Aの回転数が変化するようにロボット2Aを手動で操作することができるように構成されていてもよい。
【0054】
また、実施の形態1において、加工システム100Aは、コントローラ3AがエンドエフェクタE1の位置情報と加工ツールの推定回転数とに基づいて、加工ツール1Aに対するワークW1の位置を変化させることで加工ツール1Aの回転数を間接的に制御するように構成されているが、これに限定されない。コントローラは、加工ツールの推定回転数に基づいて、加工ツールの回転数を制御するように構成されていればよく、例えば、力覚センサから取得した加工ツールに対するワークの押付力と加工ツールの推定回転数とに基づいて、加工ツール1Aに対するワークW1の押付力を変化させることで加工ツール1Aの回転数を間接的に制御するように構成されていてもよいし、推定回転数に基づいて、加工ツールを回転させる駆動力を変化させることにより、加工ツールの回転数を直接制御するように構成されていてもよいし、これら複数の要素に基づいてロボット及び加工ツールの一方又は両方を制御するように構成されていてもよいし、所定の条件に基づいてこれらの制御を切替えるように構成されていてもよい。
【0055】
また、実施の形態1において、エンドエフェクタE1は、ワークW1を挟持することでワークW1を保持するように構成されているが、これに限定されない。エンドエフェクタは、ワークW1を保持可能に構成されていればよく、例えば、エンドエフェクタは、ワークW1を負圧又は磁力によって吸着することでワークW1を保持するように構成されていてもよいし、ワークW1がねじ留めされることでワークW1を保持するように構成されていてもよい。
【0056】
また、実施の形態1において、接触判定部33は、エンドエフェクタE1の移動方向と、エンドエフェクタE1がワークW1から受けた外力の大きさ及び外力の方向と、に基づいて、エンドエフェクタE1が受けた外力の移動方向成分の大きさが所定の閾値を超えた場合に、ワークW1と先端工具11とが接触している状態であると判定するように構成されているが、これに限定されない。接触判定部は、ロボットから取得した情報と、予め設定されている情報と、に基づいてワークW1と先端工具11とが接触している状態か否かを判定可能に構成されていればよく、例えば、接触判定部は、ロボット2Aと加工ツール1Aとの相対位置に関する情報と、エンドエフェクタE1の位置に関する情報と、ワークW1の形状及び大きさに関する情報と、に基づいて、幾何的にワークW1と先端工具11とが接触している状態か否かを判定するように構成されていてもよいし、これら幾何的な情報と力覚センサからの情報とに基づいて、ワークW1と先端工具11とが接触している場合にワークW1が先端工具11から受ける反力の方向を算出し、エンドエフェクタが受ける外力の、反力の方向の成分の大きさが予め設定されている閾値を超えた場合に、ワークW1と先端工具11とが接触している状態であると判定するように構成されていてもよい。
【0057】
また、加工ツールは特定の周波数で回転をしているため、ワークと加工ツールとが接触するとアーム側の力覚センサに加工ツールの回転に対応する周波数成分が検知される。このため、例えば、接触判定部は、センサ受信部から取得した外力データに対して高速フーリエ変換又はスペクトル解析から周波数解析を行い、予め算出した加工ツールの回転周波数の帯域で解析結果のパワーが一定値よりも大きくなった場合にワークと加工ツールとの接触状態であると判定をするように構成されていてもよい。また、接触判定部は、周波数解析によらず、加工ツールによる微小振動からワークと加工ツールとの接触状態であるか否かを判定するように構成されていてもよい。例えば、接触判定部は、センサ受信部から取得した外力データに対して加工ツールの回転周波数付近のみバンドパスフィルタで抽出し、抽出されたデータの標準偏差を算出してその標準偏差が一定値よりも大きくなった場合に接触状態であると判定するように構成されていてもよい。また、接触判定部は、予め記憶部に記憶されている加工ツールとワークとが接触する時のアーム部の各関節角度の情報に基づいて、アーム駆動部から取得した各関節角度が接触状態の角度と一定の割合以上一致した場合に接触状態と判定するように構成されていてもよい。
【0058】
また、接触判定部は、磁界の変化、静電容量の変化等を検知する図示しないセンサからの情報に基づいてワークW1と先端工具11とが接触している状態か否かを判定するように構成されていてもよいし、図示しない音センサからの情報に基づいて、音の変化によりワークW1と先端工具11とが接触している状態か否かを判定するように構成されていてもよいし、図示しない画像センサからの情報に基づいて、視覚的にワークW1と先端工具11とが接触している状態か否かを判定するように構成されていてもよい。
【0059】
また、力覚センサ25Aは、アーム部21の先端とエンドエフェクタE1との間に取付けられており、エンドエフェクタE1が受けた外力を検知可能に構成されているが、これに限定されない。力覚センサは、エンドエフェクタが受けた外力を検知可能に構成されていればよく、例えば、力覚センサは、アーム部21の各関節に対応して設けられ、各関節にかかるトルクを検知可能なトルクセンサであってもよい。
【0060】
実施の形態2.
次に、
図9を参照して、実施の形態2に係る加工ロボットシステムとしての加工システム100Bについて説明する。実施の形態2に係る加工システム100Bは、実施の形態1に係る加工システム100Aに対し、力覚センサ及び力覚センサから取得した情報の扱いに係る構成が異なるが、他の構成については実施の形態1に係る加工システム100Aと同様であり、実施の形態1に係る加工システム100Aと同様の構成については、同一の名称又は同一の符号を付して説明を省略する。
【0061】
図9は、実施の形態2に係る加工システム100Bの構成例を示す図である。
図9に示すように、実施の形態2に係る加工システム100Bは、加工ツール1Aと、ロボット2Bと、コントローラ3Bと、を備えている。ロボット2Bは、力覚センサ25Bとして、アーム部21の関節毎に取付けられた複数のトルクセンサが用いられている。各力覚センサ25Bは、アーム部21の各関節にかかるトルクを検知する。なお、力覚センサが複数のトルクセンサである場合、各トルクセンサは、アーム部21の全ての関節において、加工ツール1Aの回転駆動により生じる振動の振幅を検知できるだけの分解能と、加工ツール1Aの回転駆動により生じる振動の周波数を捉えられるだけの帯域と、を有している必要はない。例えば、加工ツール1Aに最も近い関節に対応するトルクセンサのみが上記性能を満たすように構成されていればよい。
【0062】
実施の形態3.
次に、
図10乃至
図12を参照して、実施の形態3に係る加工ロボットシステムとしての加工システム100Cについて説明する。実施の形態3に係る加工システム100Cは、実施の形態1に係る加工システム100Aに対し、力覚センサから取得したと加工ツールの推定回転数とに基づいてエンドエフェクタE1の位置を力制御することで、加工ツール1Aの回転数を制御するように構成されている点が異なるが、他の構成については実施の形態1に係る加工システム100Aと同様であり、実施の形態1に係る加工システム100Aと同様の構成については、同一の名称又は同一の符号を付して説明を省略する。
【0063】
図10は、実施の形態3に係る加工システム100Cの構成例を示す図である。
図10に示すように、実施の形態3に係る加工システム100Cは、加工ツール1Aと、ロボット2Aと、コントローラ3Cと、を備えている。コントローラ3Cは、センサ受信部31Cと、ツール回転数演算部32と、ツール負荷制御部34Cと、接触判定部33と、記憶部35と、を備えている。センサ受信部31Cは、力覚センサ25Aから取得した情報を、ツール負荷制御部34C及び接触判定部33に出力する。
【0064】
ツール負荷制御部34Cは、センサ受信部31Cを介して力覚センサ25Aから取得したエンドエフェクタE1にかかる外力を示すデータと、推定回転数と、接触判定部33の判定結果と、記憶部35に記憶されている情報と、に基づいて、アーム駆動部23Aへ指令値を出力する。言い換えると、ツール負荷制御部34Cは、センサ受信部31Cから取得した加工ツール1Aに対するワークW1の押付力に関するデータと、推定回転数と、接触判定部33の判定結果と、記憶部35に記憶されている情報と、に基づいて、アーム駆動部23Aへ指令値を出力する。例えば、ツール負荷制御部34Cは、センサ受信部31Cから取得した外力データに基づいて加工ツール1Aに対するワークW1の押付力を推定し、当該押付力に基づいて、加工ツール1Aに対するワークW1の押付力を変化させることにより加工ツール1Aの回転数を間接的に制御する。
【0065】
図11は、実施の形態3に係るツール負荷制御部34Cの構成を示すブロック図である。
図11に示すように、ツール負荷制御部34Cは、押付力算出部341Cと、押付力指令値演算部342Cと、力制御部343Cと、を有している。押付力算出部341Cは、センサ受信部31Cから取得した外力情報に基づいて、加工ツール1Aに対するワークW1の押付力を算出する。例えば、押付力算出部341Cは、センサ受信部31Cから取得した外力情報に基づいて、アーム部21の手先力の推定値を算出し、手先力から重力に起因する成分を差し引くことで、加工ツール1Aに対するワークW1の押付力の推定値を算出する。なお、力覚センサ25として、アーム部21の関節毎に取付けられた複数のトルクセンサを用いる場合、押付力算出部は、各関節で検知されたトルクから、重力に起因する成分を差し引いて外力に起因するトルクを求め、その外力に起因するトルクから加工ツール1Aに対するワークW1の押付力の推定値を算出する。
【0066】
押付力指令値演算部342Cは、押付力算出部341Cから取得した現在の押付力、推定回転数に基づいて、アーム駆動部23Aへ出力する指令値を算出する。例えば、押付力指令値演算部342Cは、加工ツール1Aの推定回転数が設定回転数または回転数下限以下になった場合、加工ツール1Aの負荷を減少させるように加工ツール1Aに対するワークW1の押付力を小さくするように押付力の目標値である押付力指令値を算出する。また、押付力指令値演算部342Cは、加工ツール1Aの推定回転数が予め設定されている設定回転数または回転数上限を超えた場合、加工ツール1Aの負荷を増大させるように加工ツール1Aに対するワークW1の押付力を大きくするような押付力指令値を算出する。なお、押付力指令値演算部342Cは、回転数に応じた押付力指令値を算出する関数を用いてもよい。
【0067】
力制御部343Cは、接触判定部33から取得した判定結果、及び押付力指令値演算部342Cの算出結果に基づいて、アーム駆動部23Aに指令値を出力する。例えば、力制御部343Cは、接触判定部33による判定結果がワークW1と加工ツール1Aとが接触している状態であることを示す結果であった場合、押付力指令値演算部342Cが算出した指令値をアーム駆動部23Aへ出力する。また、例えば、力制御部343Cは、接触判定部33による判定結果がワークW1と加工ツール1Aとが接触していない状態であることを示す結果であった場合、押付力指令値演算部342Cが算出した指令値をアーム駆動部23Aへ出力しないことを決定する。言い換えると、力制御部343Cは、接触判定部33による判定結果がワークW1と加工ツール1Aとが接触していない状態であることを示す結果であった場合、押付力指令値演算部342Cが算出した指令値をアーム駆動部23Aへ出力することを制限する。また、言い換えると、力制御部343Cは、接触判定部33による判定結果が、加工ツール1AがワークW1に接触していない状態にあるという結果になった場合は、推定回転数が設定されている回転数に関する条件を満たすための、加工ツール1Aの回転数の制御を制限する。
【0068】
なお、力覚センサがツールの回転に伴う微小振動を検知できるように構成されている場合、手先力の推定値に加工ツール1Aの振動による成分が含まれるが、これが押付力制御にとって外乱となる場合は、ローパスフィルタ等で外乱を取り除いてから力制御部や押付力指令値演算部に送信するようにしてもよい。
【0069】
図12は、実施の形態3に係るコントローラ3Cが行うロボット制御方法に係る処理を示すフローチャートである。コントローラ3Cが行う処理は、実施の形態1に係るコントローラ3Aが行う処理に対し、ステップST07とステップST08との間に、押付力算出部341Cが加工ツール1Aに対するワークW1の押付力を算出するステップST17を有しており、ステップST09の代わりに、押付力指令値演算部342Cが押付力指令値を算出するステップST19を有し、ステップST11の代わりに、力制御部343Cがアーム駆動部23Aへ指令値を出力することで、推定回転数が設定された回転数に関する条件を満たすように押付力を制御するステップST21を有している点が異なるが、他の処理については、実施の形態1に係るコントローラ3Aが行う処理と同様であるため、説明を省略する。また、力制御の手法によっては手先位置を必要としない場合があるが、その場合はST07を省略可能である。
【0070】
実施の形態4.
次に、
図13乃至
図16を参照して、実施の形態4に係る加工ロボットシステムとしての加工システム100Dについて説明する。実施の形態4に係る加工システム100Dは、実施の形態1に係る加工システム100Aに対し、推定回転数が設定された回転数の条件を満たさない場合に加工ツールを回転させる駆動力を変化させることで、加工ツールの回転数を制御するように構成されている点が異なるが、他の構成については実施の形態1に係る加工システム100Aと同様であり、実施の形態1に係る加工システム100Aと同様の構成については、同一の名称又は同一の符号を付して説明を省略する。
【0071】
図13は、実施の形態4に係る加工システム100Dの構成例を示す図であり、
図14は、実施の形態4に係る加工システム100Dの構成を示すブロック図であり、
図15は、実施の形態4に係るツール負荷制御部34Dの構成を示すブロック図である。
図13及び
図14に示すように、実施の形態4に係る加工システム100Dは、加工ツール1Dと、ロボット2Aと、コントローラ3Dと、を備えている。コントローラ3Dは、センサ受信部31Aと、ツール回転数演算部32と、ツール負荷制御部34Dと、接触判定部33と、記憶部35と、を備えている。センサ受信部31Aは、力覚センサ25Aから取得した情報を、ツール負荷制御部34C及び接触判定部33に出力する。加工ツール1Dは、コントローラ3Dと電気的に接続されており、コントローラ3Dからの信号に応じて先端工具11を回転させる駆動力を変化させる。言い換えると、コントローラ3Dは、加工ツール1Dと電気的に接続されており、加工ツール1Dに指令値を出力することで加工ツール1Dを回転させる駆動力を制御する。
【0072】
図15に示すように、ツール負荷制御部34Dは、回転数指令値演算部342Dと、回転数制御部343Dと、を有している。回転数指令値演算部342Dは、ツール回転数演算部32から取得した情報と、記憶部35に記憶されている情報と、に基づいて、加工ツール1Dを回転させる駆動力に応じた指令値を算出する。例えば、回転数指令値演算部342Dは、推定回転数と設定された回転数に関する条件とを比較して、推定回転数が設定された回転数の条件を満たすように加工ツール1Dを回転させる駆動力を変化させる回転数指令値を算出する。回転数指令値演算部342Dは、算出した指令値を回転数制御部343Dへ出力する。
【0073】
回転数制御部343Dは、回転数指令値演算部342Dから取得した指令値と、接触判定部33の判定結果と、に基づいて、アーム駆動部23Aへ指令値を出力する。例えば、回転数制御部343Dは、接触判定部33による判定結果がワークW1と加工ツール1Dとが接触している状態であることを示す結果であった場合、回転数指令値演算部342Dが算出した指令値をアーム駆動部23Aへ出力する。また、例えば、回転数制御部343Dは、接触判定部33による判定結果がワークW1と加工ツール1Dとが接触していない状態であることを示す結果であった場合、回転数指令値演算部342Dが算出した指令値をアーム駆動部23Aへ出力しないことを決定する。言い換えると、回転数制御部343Dは、接触判定部33による判定結果がワークW1と加工ツール1Dとが接触していない状態であることを示す結果であった場合、回転数指令値演算部342Dが算出した指令値をアーム駆動部23Aへ出力することを制限する。また、言い換えると、回転数制御部343Dは、接触判定部33による判定結果が、加工ツール1DがワークW1に接触していない状態であるという結果になった場合は、推定回転数を予め設定されている回転数に関する条件を満たすための、加工ツール1Dの回転数の制御を制限する。
【0074】
図16は、実施の形態4に係るコントローラ3Dが行うロボット制御方法に係る処理を示すフローチャートである。コントローラ3Dが行う処理は、実施の形態1に係るコントローラ3Aが行う処理に対し、ステップST09の代わりに、回転数指令値演算部342Dが回転数指令値を算出するステップST29を有し、ステップST11の代わりに、回転数制御部343Dがアーム駆動部23Aへ指令値を出力することで、推定回転数が設定された回転数に関する条件を満たすように加工ツール1Dを回転させる駆動力を制御するステップST31を有している点が異なるが、他の処理については、実施の形態1に係るコントローラ3Aが行う処理と同様であるため、説明を省略する。なお、実施の形態4は加工ツールを回転させる駆動力を制御することでツール負荷を制御するため、アームの制御に関するステップであるST06、ST07、ST08の処理は必ずしも必要ではない。
【0075】
なお、本開示は、各実施の形態の自由な組合せ、或いは各実施の形態の任意の構成要素の変形、若しくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【0076】
1A,1D:加工ツール
2A,2B:ロボット(ロボットアーム)
3A,3B,3C,3D:コントローラ(加工ロボット制御装置)
11 :先端工具
12A :ツール駆動部
21 :アーム部
23A :アーム駆動部
24 :エンドエフェクタ駆動部
25A,25B:力覚センサ
31A,31C:センサ受信部(外力取得部)
32 :ツール回転数演算部
33 :接触判定部
34A,34C,34D:ツール負荷制御部(制御部)
35 :記憶部
100A,100B,100C,100D:加工システム
221 :第1把持爪
222 :第2把持爪
341A :手先位置算出部(位置情報取得部)
341C :押付力算出部
342A :手先位置指令値演算部
342C :押付力指令値演算部
342D :回転数指令値演算部
343A :位置制御部
343C :力制御部
343D :回転数制御部
E1 :エンドエフェクタ
W1 :ワーク(加工対象)