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

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

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

<>
  • 特許-制御装置、及び制御方法 図1
  • 特許-制御装置、及び制御方法 図2
  • 特許-制御装置、及び制御方法 図3A
  • 特許-制御装置、及び制御方法 図3B
  • 特許-制御装置、及び制御方法 図3C
  • 特許-制御装置、及び制御方法 図4A
  • 特許-制御装置、及び制御方法 図4B
  • 特許-制御装置、及び制御方法 図4C
  • 特許-制御装置、及び制御方法 図5
  • 特許-制御装置、及び制御方法 図6
  • 特許-制御装置、及び制御方法 図7
  • 特許-制御装置、及び制御方法 図8
  • 特許-制御装置、及び制御方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-11
(45)【発行日】2024-11-19
(54)【発明の名称】制御装置、及び制御方法
(51)【国際特許分類】
   B25J 13/08 20060101AFI20241112BHJP
   G05B 19/404 20060101ALI20241112BHJP
【FI】
B25J13/08 A
B25J13/08 Z
G05B19/404 K
【請求項の数】 4
(21)【出願番号】P 2019119764
(22)【出願日】2019-06-27
(65)【公開番号】P2021003788
(43)【公開日】2021-01-14
【審査請求日】2022-04-08
【審判番号】
【審判請求日】2023-09-29
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】鄭 詮翰
(72)【発明者】
【氏名】佐藤 貴之
【合議体】
【審判長】本庄 亮太郎
【審判官】大山 健
【審判官】堀内 亮吾
(56)【参考文献】
【文献】中国特許出願公開第109732625(CN,A)
【文献】特開2006-58961(JP,A)
【文献】特開2018-94638(JP,A)
【文献】特開平5-220656(JP,A)
【文献】特開平6-312344(JP,A)
【文献】特開平6-23682(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 13/08
G05B 19/404
(57)【特許請求の範囲】
【請求項1】
複数のワークに対してバリ取り処理を行う機械装置を制御する制御装置であって、
前記機械装置が有する可動部材に設けられたカメラにより計測された前記ワークの輪郭を示す輪郭データを取得するデータ取得部と、
前記輪郭データから前記ワークに対する加工軌道を示す加工軌道データを生成する軌道決定部と、
予め設定された所定の押付力で、可動部材でワークを押し付けながら、前記加工軌道データに対応する加工軌道に沿って移動する最初の前記ワークに対するバリ取り処理を含む前記バリ取り処理の間、前記可動部材に設けられた位置検出部により周期的に検出された前記可動部材の位置を示す位置データと、前記可動部材に設けられた力検出部により周期的に検出された前記ワークを押し付ける力又はモーメントを示す力データとを、状態データとして観測する状態観測部と、
前記カメラにより前記ワークの形状を計測して検出される前記ワークの輪郭に基づいて作成される加工軌道と前記位置データが示す前記ワークの輪郭に係るデータとの偏差及び/又は前記力データが示す力と予め設定された所定の押付力との偏差から前記ワークにおいて前記カメラにより検出できなかったバリがある部分を特定し、特定された前記バリを除去するために、力指令及び/又は位置指令に関するパラメータを調整するパラメータ調整部と、
最初の前記ワークに対するバリ取り処理における前記パラメータの調整量と、特定された前記バリに対する調整された前記パラメータに基づくバリ取り後のバリ量とを回帰分析し、回帰モデルを生成する回帰分析部と、を備え、
前記パラメータ調整部は、2個目以降の前記ワークに対するバリ取り処理において、特定された前記バリに対する調整された前記パラメータに基づくバリ取り後のバリ量に対応する、前記ワークの輪郭に基づいて作成される加工軌道と前記バリ取り処理中に前記位置検出部により検出された前記可動部材の位置データが示す前記ワークの輪郭に係るデータとの偏差及び/又は前記力検出部により検出された前記ワークを押し付ける力データが示す力と予め設定された押付力との偏差を前記バリ取り後のバリ量の引数として前記回帰モデルを用いて前記パラメータを調整する、制御装置。
【請求項2】
前記パラメータ調整部は、前記パラメータとして、押付力、進行方向、進行速度、繰り返し回数、又は制御ゲインのいずれか1つを調整する、請求項1に記載の制御装置。
【請求項3】
前記回帰分析部は、前記輪郭データに基づいて、前記カメラにより前記ワークの形状を計測して検出された前記ワークの輪郭データの特徴を所定の大きさの領域毎に分割し、分割された複数の前記領域の各々における輪郭データの特徴を複数のパターンに分類し、分類された前記複数のパターンの各々と、前記特定されたバリの部分とを対応付けすることにより、前記複数のパターン毎に前記回帰モデルを生成し、
前記パラメータ調整部は、前記輪郭データから検出されたパターンに応じた前記回帰モデルを用いて前記パラメータを調整する、請求項1又は請求項2に記載の制御装置。
【請求項4】
コンピュータにより実行される、複数のワークに対してバリ取り処理を行う機械装置を制御する制御方法であって、
前記機械装置が有する可動部材に設けられたカメラにより計測された前記ワークの輪郭を示す輪郭データを取得するデータ取得ステップと、
前記輪郭データから前記ワークに対する加工軌道を示す加工軌道データを生成する軌道決定ステップと、
予め設定された所定の押付力で、可動部材でワークを押し付けながら、前記加工軌道データに対応する加工軌道に沿って移動する最初の前記ワークに対するバリ取り処理を含む前記バリ取り処理の間、前記可動部材に設けられた位置検出部により周期的に検出された前記可動部材の位置を示す位置データと、前記可動部材に設けられた力検出部により周期的に検出された前記ワークを押し付ける力又はモーメントを示す力データとを、状態データとして観測する状態観測ステップと、
前記カメラにより前記ワークの形状を計測して検出される前記ワークの輪郭に基づいて作成される加工軌道と前記位置データが示す前記ワークの輪郭に係るデータとの偏差及び/又は前記力データが示す力と予め設定された所定の押付力との偏差から前記ワークにおいて前記カメラにより検出できなかったバリがある部分を特定し、特定された前記バリを除去するために、力指令及び/又は位置指令に関するパラメータを調整するパラメータ調整ステップと、
最初の前記ワークに対するバリ取り処理における前記パラメータの調整量と、特定された前記バリに対する調整された前記パラメータに基づくバリ取り後のバリ量とを回帰分析し、回帰モデルを生成する回帰分析ステップと、を備え、
前記パラメータ調整ステップは、2個目以降の前記ワークに対するバリ取り処理において、特定された前記バリに対する調整された前記パラメータに基づくバリ取り後のバリ量に対応する、前記ワークの輪郭に基づいて作成される加工軌道と前記バリ取り処理中に前記位置検出部により検出された前記可動部材の位置データが示す前記ワークの輪郭に係るデータとの偏差及び/又は前記力検出部により検出された前記ワークを押し付ける力データが示す力と予め設定された押付力との偏差を前記バリ取り後のバリ量の引数として前記回帰モデルを用いて前記パラメータを調整する、制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、及び制御方法に関する。
【背景技術】
【0002】
機械装置では、切削加工等で加工されたワークのバリ取りを行う場合に、カメラによりワークの形状を計測して検出される当該ワークの輪郭に基づいて、バリ取りに必要な加工軌道を作成することがある。この場合、機械装置では、カメラにより検出された輪郭に基づいて作成された加工軌道に沿って、力制御によりグラインダを一定の力でワークに押し付けて、バリ取りが行われる。
しかしながら、カメラの精度不足により、バリを検出できない箇所がある。このような場合、バリを検出できなかった箇所については、作業員により力制御のパラメータを調整して加工軌道を修正し、再びバリ取りが行われていた。このように、作業員によりバリが残っているかどうか、確認しながら、再びバリ取りすることによりバリを取り除いていた。このため、カメラの精度不足により、バリを検出できない箇所があった場合、押付力や進行速度等の力制御のパラメータの設定において熟練した人と、初心者と、ではバリ取りの結果に差が生じることがあった。
この点、機械装置に設けたセンサからの出力値を観測することでバリの発生状況を検知するとともに、その時の位置・姿勢データを記憶し、次回のバリ取りでは、センサの出力値が大きかった部分(バリが発生している部分)のみ繰り返し作業を行う、又は当該部分での押付力や進行速度等の条件を変える技術が知られている。例えば、特許文献1参照。しかしながら、特許文献1に記載の発明は、カメラによりワークの形状を計測して検出される当該ワークの輪郭に基づいて、バリ取りに必要な加工軌道を作成するものではない。また、カメラの精度不足によりバリを検出できなかった箇所を推定するとともに、その箇所における力制御のパラメータ等を自動的に修正するものでもない。
【先行技術文献】
【特許文献】
【0003】
【文献】特開平6-23682号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
バリ取りシステムにおいて、カメラによりワークの形状を計測して検出される当該ワークの輪郭に基づいて作成される加工軌道に沿ってバリ取りを行う場合に、カメラの精度不足によりバリを検出できなかった箇所を推定するとともに、その箇所における力制御のパラメータ等を自動的に修正して、バリを取り除くことが望まれている。
【課題を解決するための手段】
【0005】
(1)本開示の制御装置の一態様は、複数のワークに対してバリ取り処理を行う機械装置を制御する制御装置であって、前記機械装置が有する可動部材に設けられたカメラにより計測された前記ワークの輪郭を示す輪郭データを取得するデータ取得部と、前記輪郭データから前記ワークに対する加工軌道を示す加工軌道データを生成する軌道決定部と、前記バリ取り処理の間、前記可動部材に設けられた位置検出部により周期的に検出された前記可動部材の位置を示す位置データと、前記可動部材に設けられた力検出部により周期的に検出された前記ワークを押し付ける力又はモーメントを示す力データとを、状態データとして観測する状態観測部と、前記カメラにより前記ワークの形状を計測して検出される前記ワークの輪郭に基づいて作成される加工軌道と前記位置データが示す前記ワークの輪郭データとの偏差及び/又は前記力データが示す力と予め設定された所定の押付力との偏差から前記ワークにおいて前記カメラにより検出できなかったバリがある部分を特定し、特定された前記バリを除去するために、力指令及び/又は位置指令に関するパラメータを調整するパラメータ調整部と、最初の前記ワークに対するバリ取り処理において、前記パラメータの調整量と調整後のバリ量とを回帰分析し、回帰モデルを生成する回帰分析部と、を備え、前記パラメータ調整部は、2個目以降の前記ワークに対するバリ取り処理において、前記回帰モデルを用いて前記パラメータを調整する。
【0006】
(2)本開示の制御方法の一態様は、コンピュータにより実行される、複数のワークに対してバリ取り処理を行う機械装置を制御する制御方法であって、前記機械装置が有する可動部材に設けられたカメラにより計測された前記ワークの輪郭を示す輪郭データを取得するデータ取得ステップと、前記輪郭データから前記ワークに対する加工軌道を示す加工軌道データを生成する軌道決定ステップと、前記バリ取り処理の間、前記可動部材に設けられた位置検出部により周期的に検出された前記可動部材の位置を示す位置データと、前記可動部材に設けられた力検出部により周期的に検出された前記ワークを押し付ける力又はモーメントを示す力データとを、状態データとして観測する状態観測ステップと、前記カメラにより前記ワークの形状を計測して検出される前記ワークの輪郭に基づいて作成される加工軌道と前記位置データが示す前記ワークの輪郭データとの偏差及び/又は前記力データが示す力と予め設定された所定の押付力との偏差から前記ワークにおいて前記カメラにより検出できなかったバリがある部分を特定し、特定された前記バリを除去するために、力指令及び/又は位置指令に関するパラメータを調整するパラメータ調整ステップと、最初の前記ワークに対するバリ取り処理において、前記パラメータの調整量と調整後のバリ量とを回帰分析し、回帰モデルを生成する回帰分析ステップと、を備え、前記パラメータ調整ステップは、2個目以降の前記ワークに対するバリ取り処理において、前記回帰モデルを用いて前記パラメータを調整する。
【発明の効果】
【0007】
一態様によれば、カメラの精度不足により検出できないバリに対しても除去できるように、パラメータを調整することができる。
【図面の簡単な説明】
【0008】
図1】一実施形態に係るバリ取りシステムの機能的構成例を示す機能ブロック図である。
図2】ロボットの一例を示す図である。
図3A】1回目のバリ取り処理においてバリ取り軌道と位置の時系列データが示すワークの輪郭に係る位置データとの一例を示す図である。
図3B】1回目のバリ取り処理においてバリ取り軌道と位置の時系列データが示すワークの輪郭に係る位置データとの一例を示す図である。
図3C】1回目のバリ取り処理においてバリ取り軌道と位置の時系列データが示すワークの輪郭に係る位置データとの一例を示す図である。
図4A図3Aから図3Cに示した1回目のバリ取りにおける押付力の時系列データの一例を示す図である。
図4B図3Aから図3Cに示した1回目のバリ取りにおけるX軸方向の進行速度の時系列データの一例を示す図である。
図4C】バリ取り軌道の一例を示す図である。
図5図3Aから図3Cに示したバリ取り軌道と状態観測部により位置の時系列データから観測されたワークの輪郭に係る位置データとのバリ取り軌道偏差の一例を示す図である。
図6】ワークの輪郭を所定の大きさの領域に分割した一例を示す図である。
図7図6の各領域における輪郭の形状を分類したパターンの一例を示す図である。
図8】制御装置の調整処理について説明するフローチャートである。
図9図8のステップS1で示した最初のワークに対するバリ取り処理の詳細な処理内容を説明するフローチャートである。
【発明を実施するための形態】
【0009】
以下、一実施形態について図面を用いて説明する。
<一実施形態>
図1は、一実施形態に係るバリ取りシステムの機能的構成例を示す機能ブロック図である。図1に示すように、バリ取りシステムは、機械装置10、及び制御装置20を有する。
【0010】
機械装置10と制御装置20は、図示しない接続インタフェースを介して互いに直接接続されてもよい。なお、機械装置10と制御装置20は、LAN(Local Area Network)等のネットワークを介して相互に接続されていてもよい。この場合、機械装置10、及び制御装置20は、かかる接続によって相互に通信を行うための図示しない通信部を備えてもよい。
【0011】
機械装置10は、例えば、工作機械や産業用ロボット等である。なお、以下では、機械装置10は、産業用ロボット(以下、「ロボット10」ともいう)として説明する。
図2は、ロボット10の一例を示す図である。
ロボット10は、例えば、図2に示すように、6軸の垂直多関節ロボットであり、6つの関節軸11(1)-11(6)と、関節軸11(1)-11(6)の各々により連結されるアーム部12を有する。ロボット10は、制御装置20からの駆動指令に基づいて、関節軸11(1)-11(6)の各々に配置される図示しないサーボモータを駆動することにより、アーム部12等の可動部材(以下、「マニピュレータ」ともいう)を駆動する。また、ロボット10のマニピュレータの先端部、例えば、関節軸11(6)の先端部には、例えば、カメラ13、力センサ14、及びグラインダ15が取り付けられる。
【0012】
なお、ロボット10は、6軸の垂直多関節ロボットとしたが、6軸以外の垂直多関節ロボットでもよく、水平多関節ロボットやパラレルリンクロボット等でもよい。
また、以下において、関節軸11(1)-11(6)のそれぞれを個々に区別する必要がない場合、これらをまとめて「関節軸11」ともいう。
【0013】
カメラ13は、例えば、デジタルカメラであり、図2に示すように、ロボット10のマニピュレータの先端部に設けられる。カメラ13は、作業台40に配置されたバリ取り対象のワーク30を撮影することにより、ワーク30の輪郭を計測する。カメラ13は、図示しない接続インタフェースを介して、計測された輪郭を示す輪郭データを制御装置20に出力する。
力センサ14は、例えば、6軸力センサであり、ロボット10のマニピュレータの先端部に設けられる。力センサ14は、所定のサンプリング時間で周期的にワーク30に対する後述するグラインダ15の押付力を検出する。力センサ14は、図示しない接続インタフェースを介して、検出した押付力を示す力データを制御装置20に出力する。
また、関節軸11の図示しないサーボモータは、例えば、ロータリーエンコーダ等の位置センサ(図示しない)が装着され、マニピュレータの先端部の位置及び姿勢が測定される。位置センサ(図示しない)は、図示しない接続インタフェースを介して、測定された位置及び姿勢を示す位置データを制御装置20に出力してもよい。
なお、所定のサンプリング時間は、ロボット10の動作内容やロボット10が配置される工場の環境等に応じて適宜設定されてもよい。
グラインダ15は、ロボット10のマニピュレータの先端部に設けられ、ワーク30に発生したバリを除去する。
【0014】
<制御装置20>
制御装置20は、図1及び図2に示すように、プログラムに基づいて、ロボット10に対して駆動指令を出力し、ロボット10の動作を制御するロボット制御装置(「ロボットコントローラ」とも呼ばれる)である。なお、図2では、ロボット10に対して動作を教示する教示操作盤25が制御装置20に接続される。
図1に示すように、本実施形態に係る制御装置20は、データ取得部201、軌道決定部202、状態観測部203、力指令計算部204、位置指令計算部205、速度指令部206、記憶部207、偏差算出部208、パラメータ調整部209、及び回帰分析部210を含んで構成される。
なお、制御装置20は、図1の機能ブロックの動作を実現するために、CPU(Central Processing Unit)等の図示しない演算処理装置を備える。また、制御装置20は、各種の制御用プログラムを格納したROM(Read Only Memory)やHDD(Hard Disk Drive)等の図示しない補助記憶装置や、演算処理装置がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった図示しない主記憶装置を備える。
【0015】
そして、制御装置20において、演算処理装置が補助記憶装置からOSやアプリケーションソフトウェアを読み込み、読み込んだOSやアプリケーションソフトウェアを主記憶装置に展開させながら、これらのOSやアプリケーションソフトウェアに基づいた演算処理を行なう。この演算結果に基づいて、制御装置20が各ハードウェアを制御する。これにより、図2の機能ブロックによる処理は実現される。つまり、制御装置20は、ハードウェアとソフトウェアが協働することにより実現することができる。
【0016】
データ取得部201は、例えば、カメラ13により測定されたワーク30の輪郭データを取得する。また、データ取得部201は、力センサ14により測定されたグラインダ15の押付力を示す力データを取得する。また、データ取得部201、関節軸11の図示しないサーボモータに装着された位置センサ(図示しない)により測定された位置及び姿勢を示す位置データを取得する。また。データ取得部201は、図示しない上位装置からワーク30のCAD(Computer-Aided Design)データを取得する。
【0017】
軌道決定部202は、カメラ13により測定されたワーク30の輪郭データから、バリ取り処理におけるマニピュレータ(グラインダ15)の加工軌道を示す加工軌道データを生成する。
【0018】
状態観測部203は、軌道決定部202により生成された加工軌道に沿って行われたバリ取り処理により観測された、力センサ14で検出された押付力の時系列データと、位置センサ(図示しない)で検出されたマニピュレータ(グラインダ15)の位置の時系列データとを、状態データとして取得する。状態観測部203は、取得された押付力の時系列データ、及び位置の時系列データを、後述する記憶部207に記憶する。
【0019】
力指令計算部204は、状態観測部203により観測された押付力と、後述するパラメータ調整部209により調整されたパラメータを用いて算出される力指令との偏差を求め、当該偏差に応じた力指令を速度指令部206に出力する。
また、力指令計算部204は、最初のワーク30に対する1回目のバリ取り処理を行う場合、予め設定された所定の押付力でグラインダ15がワーク30を一定に押し付けるように力制御する。
【0020】
位置指令計算部205は、状態観測部203により観測されたマニピュレータ(グラインダ15)の位置と、後述するパラメータ調整部209により調整されたパラメータを用いて算出される位置指令との偏差を求め、当該偏差に応じた位置指令を、速度指令部206に出力する。
【0021】
速度指令部206は、力指令計算部204により出力された力指令と、位置指令計算部205により出力された位置指令とに応じた速度指令をロボット10に出力する。ロボット10は、受け付けた速度指令に基づいて、各関節軸11のサーボモータ(図示しない)を駆動し、力指令が示す押付力でグラインダ15をワーク30に押し付け、位置指令及び速度指令で加工軌道に沿ってグラインダ15を移動させることができる。
【0022】
記憶部207は、SSD(Solid State Drive)やHDD等であり、状態観測部203により観測された押付力の時系列データを記憶する力データ領域220と、位置の時系列データを記憶する位置データ領域221とを有する。また、記憶部207は、後述するパラメータ調整部209により特定されたバリの部分を示すデータを記憶するバリデータ領域222を有してもよい。
【0023】
偏差算出部208は、例えば、カメラ13によりワーク30の形状を計測して検出されるワーク30の輪郭に基づいて作成される加工軌道(以下「バリ取り軌道」ともいう)と位置データ領域221の位置の時系列データが示すワーク30の輪郭に係るデータとの偏差、及び/又は力データ領域220の押付力の時系列データと予め設定された所定の押付力との偏差を算出する。
より具体的には、偏差算出部208は、例えば、最初のワーク30に対する1回目のバリ取りにおいて、状態観測部203により観測されたワーク30の表面を一定の押付力で倣った時の押付力と位置との時系列データを記憶部207から取得する。偏差算出部208は、取得した押付力と位置との時系列データから、バリ取り軌道と位置の時系列データが示すワーク30の輪郭に係る位置データとの偏差(以下、「バリ取り軌道偏差」ともいう)、及び/又は押付力の時系列データと予め設定された所定の押付力との偏差(以下、「押付力の偏差」ともいう)を算出する。
【0024】
図3Aから図3Cは、1回目のバリ取り処理においてバリ取り軌道と位置の時系列データが示すワーク30の輪郭に係る位置データとの一例を示す図である。図3Aは、時間t=0のバリ取り開始時におけるグラインダ15の位置を示す。図3Bは、時間t=a(0<a<b)において、カメラ13の精度不足により検出できない1つ目のバリA1をバリ取りしているグラインダ15の位置を示す。図3Cは、時間t=bにおいて、カメラ13の精度不足により検出できない2つ目のバリA2をバリ取りしているグラインダ15の位置を示す。
なお、図3Aから図3Cの各々において、破線は、バリ取り軌道を示す。実線は、状態観測部203により位置の時系列データから観測されたワーク30の輪郭に係る位置データ(力制御により倣った軌道)を示す。
なお、図示しないが、カメラ13によりワーク30の形状を計測して検出されたバリの位置においては、バリ取り軌道と、状態観測部203により位置の時系列データから観測されたワーク30の輪郭に係る位置データ(力制御により倣った軌道)(実線)とは、乖離しないと考えられる。
【0025】
図3A及び図3Bに示すように、時間t=0から時間t=aの間にグラインダ15が一定の押付力で倣う箇所には1つ目のバリA1が存在する。これにより、バリA1の部分において、バリ取り軌道(破線)と、状態観測部203により位置の時系列データから観測されたワーク30の輪郭に係る位置データ(力制御により倣った軌道)(実線)とが乖離していることがわかる。
また、図3Cに示すように、時間t=aから時間t=bの間にグラインダ15が一定の押付力で倣う箇所には2つ目のバリA2が存在する。これにより、バリA2の部分においても、バリ取り軌道(破線)と、状態観測部203により位置の時系列データから観測されたワーク30の輪郭に係る位置データ(力制御により倣った軌道)(実線)とが乖離していることがわかる。
【0026】
図4Aは、図3Aから図3Cに示した1回目のバリ取りにおける押付力の時系列データ(状態データ)の一例を示す図である。図4Bは、図3Aから図3Cに示した1回目のバリ取りにおけるX軸方向の進行速度の時系列データ(状態データ)の一例を示す図である。図4Cは、バリ取り軌道の一例を示す図である。
図4Aに示すように、時間t=a、bにおいて、グラインダ15の押付力が、予め設定された一定の押付力で倣っているにも関わらず、カメラ13の精度不足により検出できなかったバリA1、A2により増加していることがわかる。同様に、図4Bに示すように、時間t=a、bにおいて、グラインダ15の進行速度がバリA1、A2により減速していることがわかる。なお、図4Cに示すように、バリ取り軌道には、カメラ13の精度不足により、バリA1、A2が検出されていないことがわかる。
【0027】
パラメータ調整部209は、前述したように、偏差算出部208により算出されたバリ取り軌道偏差及び/又は押付力の偏差に基づいてワーク30において、カメラ13の精度不足により検出できなかったバリを特定する。パラメータ調整部209は、特定された部分のバリを除去するために、力指令及び/又は位置指令に関するパラメータを調整する。
なお、力指令及び/又は位置指令に関するパラメータには、位置目標値、押付力、進行速度、繰り返し回数、進行速度、及び制御ゲインが含まれる。ここで、「繰り返し回数」は、特定されたバリの部分に対してバリ取りを繰り返す回数である。また、「制御ゲイン」は、バリ取り処理において、一定の押付力となるように制御するための反応速度である。
【0028】
図5は、図3Aから図3Cに示したバリ取り軌道(破線)と状態観測部203により位置の時系列データから観測されたワーク30の輪郭に係る位置データ(力制御により倣った軌道)(実線)とのバリ取り軌道偏差の一例を示す図である。
図5に示すように、パラメータ調整部209は、バリ取り軌道偏差が所定の閾値α以上、及び/又は押付力の偏差が所定の閾値β以上となる部分(箇所)を、カメラ13の精度不足により検出できなかったバリA1、A2の部分として特定することができる。パラメータ調整部209は、特定したバリA1、A2の部分を記憶部207のバリデータ領域222に記憶する。
【0029】
そして、パラメータ調整部209は、特定されたバリA1、A2の部分について、押付力、進行速度、繰り返し回数、進行方向、及び制御ゲインのいずれか1つを調整する。例えば、パラメータ調整部209は、押付力の変化が大きくかつバリ取り軌道と実際の軌道との偏差があるバリの部分に対して、繰り返し回数のパラメータを増加させてもよい。あるいは、パラメータ調整部209は、押付力の変化が大きく、かつ押付力が変化する方向とグラインダ15の進行方向とのなす角が大きいバリの部分に対して、進行速度を減少させてもよい。
なお、パラメータ調整部209は、例えば、バリが発生していない部分(箇所)に対して、押付力を弱く、又は押付力無しに調整してもよい。
【0030】
パラメータ調整部209は、特定されたバリA1、A2の部分についてパラメータを調整することで、2回目の加工軌道(すなわち、位置目標値)と、1回目の加工軌道と実際の軌道との偏差及び/又は押付力の偏差に比例する力目標値を生成する。パラメータ調整部209は、最初のワーク30に対する2回目のバリ取り処理を行うために、位置目標値を位置指令計算部205に出力し、力目標値を力指令計算部204に出力する。そして、速度指令部206は、力指令計算部204で算出された力指令と、位置指令計算部205で算出された位置指令とに応じた速度指令をロボット10に出力し、2回目のバリ取り処理を行う。
【0031】
なお、パラメータ調整部209は、例えば、ワーク30のCADデータに基づく形状をカメラ13により検出された輪郭データにパターンマッチングして得られるワーク30の輪郭データと、状態観測部203により位置の時系列データから観測されたワーク30の輪郭に係る位置データ(力制御により倣った軌道)との偏差(簡単のために、「ワーク輪郭偏差」ともいう)が予め設定された許容値以下となるまで、3回目以降のバリ取り処理についても同様に行う。そして、パラメータ調整部209は、ワーク輪郭偏差が予め設定された許容値以下となった場合、バリ取り処理を終了する。
【0032】
学習装置としての回帰分析部210は、例えば、最初のワーク30に対するバリ取り処理におけるパラメータの調整量と調整後のバリ量とを回帰分析し、回帰モデルを生成してもよい。
より具体的には、回帰分析部210は、カメラ13により測定された最初のワーク30の輪郭データに基づいて、輪郭の特徴を所定の大きさの領域毎に分割し、分割した各領域における輪郭の形状をパターン毎に分類してもよい。回帰分析部210は、最初のワーク30に対するバリ取り処理において、分類された各パターンと、パラメータ調整部209により特定されたバリの部分とを対応付けし、パターン毎に回帰モデルを生成してもよい。
【0033】
図6は、ワーク30の輪郭を所定の大きさの領域R1-R24に分割した一例を示す図である。
図6に示すように、回帰分析部210は、ワーク30の輪郭を24個の領域R1-R24に分割する。なお、領域R1-R24の大きさ、及び領域の数は、ワーク30の輪郭の形状や、要求されるバリ取りの精度等に応じて適宜決定されてもよい。
図7は、図6の各領域における輪郭の形状を分類したパターンPA1-PA4の一例を示す図である。なお、図7では、ワーク30の部分を黒の領域で示す。また、パターンの数は4つに限定されず、4以外の複数でもよい。
図7に示すように、回帰分析部210は、領域R1-R24の各々における輪郭の形状を、4つのパターンPA1-PA4に分類する。すなわち、回帰分析部210は、領域R4、R8、R11、R18、R21の輪郭の形状をパターンPA1に分類する。また、回帰分析部210は、領域R2、R3、R5、R7、R9、R10、R12-R17、R19、R20、R22、R24の輪郭の形状をパターンPA2に分類する。また、回帰分析部210は、領域R6、R23の輪郭の形状をパターンPA3に分類する。また、回帰分析部210は、領域R1の輪郭の形状をパターンPA4に分類する。
【0034】
回帰分析部210は、同じ輪郭のパターンであれば同じ箇所に同じバリが存在するとして、パターンPA1-PA4の各々と、パラメータ調整部209により特定されたバリの箇所とを対応付けし、パターンPA1-PA4毎に回帰モデルを生成する。そして、パラメータ調整部209は、2個目以降のワーク30に対するバリ取り処理において、カメラ13により測定されたワーク30の輪郭データから検出されたパターンに応じた回帰モデルを用いて、パターン毎にパラメータを調整する。
これにより、制御装置20は、ワーク30の輪郭の形状のパターンに応じてパラメータを調整することで、加工回数を減らすことができる。
【0035】
<制御装置20の調整処理>
次に、本実施形態に係る制御装置20の調整処理に係る動作について説明する。
図8は、制御装置20の調整処理について説明するフローチャートである。図9は、図8のステップS1で示した最初のワークに対するバリ取り処理の詳細な処理内容を説明するフローチャートである。
ステップS1において、制御装置20は、最初のワーク30に対するバリ取り処理を行う。なお、最初のワーク30に対するバリ取り処理の詳細なフローについては、図9を参照し後述する。
ステップS2において、制御装置20は、2個目以降の次のワーク30に対するバリ取り処理を行う。なお、2個目以降の次のワーク30に対するバリ取り処理の詳細な説明については、後述する。
ステップS3において、制御装置20は、全てのワーク30に対するバリ取り処理を行ったか否かを判定する。全てのワーク30に対するバリ取り処理を行っていない場合、処理はステップS2に戻る。一方、全てのワーク30に対するバリ取り処理を行った場合、処理は終了する。
【0036】
次に、図9を参照して、図8のステップS1で示した最初のワーク30に対するバリ取り処理について詳細な処理内容を説明する。
【0037】
ステップS11において、データ取得部201は、カメラ13により測定された最初のワーク30の輪郭データを取得する。
【0038】
ステップS12において、回帰分析部210は、ステップS11で取得された輪郭データからワーク30の輪郭の形状をパターンPA1-PA4毎に分類する。
【0039】
ステップS13において、軌道決定部202は、ステップS11で取得された最初のワーク30の輪郭データから、バリ取り処理におけるマニピュレータ(グラインダ15)の加工軌道データ(バリ取り軌道)を生成する。
【0040】
ステップS14において、速度指令部206は、グラインダ15が予め設定された所定の押付力で最初のワーク30を一定に押し付けて倣うように、力指令計算部204で算出された力指令と、位置指令計算部205で算出された位置指令とに応じた速度指令をロボット10に出力し、1回目のバリ取り処理を行う。
【0041】
ステップS15において、偏差算出部208は、1回目のバリ取り処理におけるバリ取り軌道と状態観測部203により位置の時系列データから観測されたワーク30の輪郭に係る位置データとのバリ取り軌道偏差及び/又は押付力の偏差を算出する。
【0042】
ステップS16において、パラメータ調整部209は、ステップS15で算出されたバリ取り軌道の偏差が閾値α以上、及び/又は押付力の偏差が予め設定された閾値β以上となる部分を、バリの部分として特定する。
【0043】
ステップS17において、パラメータ調整部209は、特定された部分のバリを除去するために、押付力、進行速度、繰り返し回数、進行速度、及び制御ゲインのいずれか1つのパラメータを調整する。
【0044】
ステップS18において、速度指令部206は、ステップS17で調整されたパラメータに基づいて、力指令計算部204で算出された力指令と、位置指令計算部205で算出された位置指令とに応じた速度指令をロボット10に出力し、ステップS16で検出されたバリに対する次(2回目等)のバリ取りを行う。
【0045】
ステップS19において、回帰分析部210は、ステップS12で分類された輪郭のパターンPA1-PA4毎に、ステップS18のバリ取り処理におけるパラメータの調整量と調整後のバリ量とを回帰分析し、回帰モデルを生成(更新)する。
【0046】
ステップS20において、パラメータ調整部209は、ステップS18のバリ取り処理において、ワーク軌道偏差を算出する。
【0047】
ステップS21において、パラメータ調整部209は、ステップS20で算出されたワーク軌道偏差が予め設定された許容値以下か否かを判定する。ワーク軌道偏差が許容値以下の場合、処理を図1のステップS2に進む。一方、ワーク軌道偏差が許容値より大きい場合、処理はステップS17に戻る。
以上、図8のステップS1で示した最初のワークに対するバリ取り処理について説明した。
【0048】
次に、図8のステップS2に示した2個目以降の次のワーク30に対するバリ取り処理について説明する。なお、2個目以降の次のワーク30に対するバリ取り処理は、図9に示した最初のワーク30に対するバリ取り処理と同様であり、相違点のみ説明する。
(1)2個目以降の次のワーク30に対するバリ取り処理では、ステップS14からステップS16、及びステップS19の処理が省略される。
(2)2個目以降の次のワーク30に対するバリ取り処理では、ステップS17において、パラメータ調整部209は、ステップS1の最初のワーク30に対するバリ取り処理で生成されたパターンPA1-PA4毎の回帰モデルを用いて、押付力、進行速度、繰り返し回数、進行速度、及び制御ゲインのいずれか1つのパラメータを調整する。
【0049】
以上により、一実施形態に係る制御装置20は、最初のワーク30に対して予め設定された所定(一定)の押付力でワーク30の表面を倣うように1回目のバリ取りを行い、輪郭データの偏差が閾値α以上、及び/又は押付力の偏差が予め設定された閾値β以上かを判定する。制御装置20は、判定結果に基づいてカメラ13の精度不足により検出できないバリの部分(箇所)を特定する。制御装置20は、押付力等のパラメータを調整し、検出された部分のバリに対する2回目以降のバリ取りを行うことにより、パラメータの調整量とバリ量とを回帰分析し、回帰モデルを生成する。
これにより、制御装置20は、カメラの精度不足により検出できないバリに対しても除去できるように、パラメータを調整することができる。
また、制御装置20は、回帰モデルを用いて、2個目以降の次のワーク30に対する1回目のバリ取り処理のパラメータを調整することで、次のワーク30のバリ取りの処理時間を短縮することができる。
また、制御装置20は、回帰モデルを用いることにより、熟練した人と初心者とにおけるバリ取りの結果の差異を小さくすることができ、作業員の負担を軽減することができる。
【0050】
以上、一実施形態について説明したが、制御装置20は、上述の実施形態に限定されるものではなく、目的を達成できる範囲での変形、改良等を含む。
【0051】
<変形例1>
上述の実施形態では、回帰分析部210は、分類された輪郭のパターンPA1-PA4毎に、最初のワーク30に対するバリ取り処理におけるパラメータの調整量と調整後のバリ量とを回帰分析し、回帰モデルを生成したが、これに限定されない。例えば、回帰分析部210は、ワーク30全体を1つのパターンとし、1つの回帰モデルを生成してもよい。
<変形例2>
また例えば、上述の実施形態では、パラメータ調整部209は、押付力、進行速度、繰り返し回数、進行速度、及び制御ゲインのいずれか1つを調整したが、2つ以上のパラメータを調整してもよい。
【0052】
なお、一の実施形態における、制御装置20に含まれる各機能は、ハードウェア、ソフトウェア又はこれらの組み合わせによりそれぞれ実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0053】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(Non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(Tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAMを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(Transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は、無線通信路を介して、プログラムをコンピュータに供給できる。
【0054】
なお、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0055】
以上を換言すると、本開示の制御装置は、次のような構成を有する各種各様の実施形態を取ることができる。
(1)本開示の制御装置20は、複数のワーク30に対してバリ取り処理を行う機械装置10を制御する制御装置であって、機械装置10が有する可動部材に設けられたカメラ13により計測されたワーク30の輪郭を示す輪郭データを取得するデータ取得部201と、輪郭データからワーク30に対する加工軌道を示す加工軌道データを生成する軌道決定部202と、バリ取り処理の間、可動部材に設けられた位置検出部により周期的に検出された可動部材の位置を示す位置データと、可動部材に設けられた力検出部(力センサ14)により周期的に検出されたワーク30を押し付ける力又はモーメントを示す力データとを、状態データとして観測する状態観測部203と、カメラ13によりワーク30の形状を計測して検出されるワーク30の輪郭に基づいて作成される加工軌道と位置データが示すワーク30の輪郭データとの偏差及び/又は前記力データが示す力と予め設定された所定の押付力との偏差からワーク30においてカメラ13により検出できなかったバリがある部分A1、A2を特定し、特定されたバリA1、A2を除去するために、力指令及び/又は位置指令に関するパラメータを調整するパラメータ調整部209と、最初のワーク30に対するバリ取り処理において、パラメータの調整量と調整後のバリ量とを回帰分析し、回帰モデルを生成する回帰分析部210と、を備え、パラメータ調整部209は、2個目以降のワーク30に対するバリ取り処理において、回帰モデルを用いてパラメータを調整する。
この制御装置20によれば、カメラの精度不足により検出できないバリに対しても除去できるように、パラメータを調整することができる。
(2)パラメータ調整部209は、パラメータとして、押付力、進行方向、進行速度、繰り返し回数、又は制御ゲインのいずれか1つを調整してもよい。
そうすることで、特定されたバリの部分に応じたグラインダ15の押付力を調整することができる。
(3)回帰分析部210は、輪郭データに基づいて、カメラ13によりワーク30の形状を計測して検出されたワーク30の輪郭データの特徴を所定の大きさの領域毎に分割し、分割された複数の領域R1-R24の各々における輪郭データの特徴を複数のパターンPA1-PA4に分類し、分類された複数のパターンPA1-PA4の各々と、特定されたバリの部分とを対応付けすることにより、複数のパターンPA1-PA4毎に回帰モデルを生成し、パラメータ調整部209は、輪郭データから検出されたパターンに応じた回帰モデルを用いてパラメータを調整してもよい。
そうすることで、ワーク30の輪郭の形状のパターンに応じてパラメータを調整することにより、加工回数を減らすことができる。
(4)本開示の制御方法は、コンピュータにより実行される、複数のワーク30に対してバリ取り処理を行う機械装置10を制御する制御方法であって、機械装置10が有する可動部材に設けられたカメラ13により計測されたワーク30の輪郭を示す輪郭データを取得するデータ取得ステップと、輪郭データからワーク30に対する加工軌道を示す加工軌道データを生成する軌道決定ステップと、バリ取り処理の間、可動部材に設けられた位置検出部により周期的に検出された可動部材の位置を示す位置データと、可動部材に設けられた力検出部により周期的に検出されたワークを押し付ける力又はモーメントを示す力データとを、状態データとして観測する状態観測ステップと、カメラ13によりワーク30の形状を計測して検出されるワーク30の輪郭に基づいて作成される加工軌道と位置データが示すワーク30の輪郭データとの偏差及び/又は前記力データが示す力と予め設定された所定の押付力との偏差からワーク30においてカメラ13により検出できなかったバリがある部分A1、A2を特定し、特定されたバリA1、A2を除去するために、力指令及び/又は位置指令に関するパラメータを調整するパラメータ調整ステップと、最初のワーク30に対するバリ取り処理において、パラメータの調整量と調整後のバリ量とを回帰分析し、回帰モデルを生成する回帰分析ステップと、を備え、パラメータ調整ステップは、2個目以降のワーク30に対するバリ取り処理において、回帰モデルを用いてパラメータを調整する。
この制御方法によれば、(1)と同様の効果を奏することができる。
【符号の説明】
【0056】
10 機械装置(ロボット)
13 カメラ
14 力センサ
15 グラインダ
20 制御装置
201 データ取得部
202 軌道決定部
203 状態観測部
209 パラメータ調整部
210 回帰分析部
図1
図2
図3A
図3B
図3C
図4A
図4B
図4C
図5
図6
図7
図8
図9