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

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

▶ 株式会社小松製作所の特許一覧

特開2023-113305加工機械、加工機械の制御装置および加工機械の制御方法
<>
  • 特開-加工機械、加工機械の制御装置および加工機械の制御方法 図1
  • 特開-加工機械、加工機械の制御装置および加工機械の制御方法 図2
  • 特開-加工機械、加工機械の制御装置および加工機械の制御方法 図3
  • 特開-加工機械、加工機械の制御装置および加工機械の制御方法 図4
  • 特開-加工機械、加工機械の制御装置および加工機械の制御方法 図5
  • 特開-加工機械、加工機械の制御装置および加工機械の制御方法 図6
  • 特開-加工機械、加工機械の制御装置および加工機械の制御方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023113305
(43)【公開日】2023-08-16
(54)【発明の名称】加工機械、加工機械の制御装置および加工機械の制御方法
(51)【国際特許分類】
   G05B 19/4097 20060101AFI20230808BHJP
   G05B 19/19 20060101ALI20230808BHJP
   B23Q 15/00 20060101ALI20230808BHJP
   B24B 49/12 20060101ALI20230808BHJP
   B23Q 17/24 20060101ALI20230808BHJP
   B23Q 17/22 20060101ALI20230808BHJP
【FI】
G05B19/4097 C
G05B19/19 H
B23Q15/00 305C
B24B49/12
B23Q17/24 C
B23Q17/22 B
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022015574
(22)【出願日】2022-02-03
(71)【出願人】
【識別番号】000001236
【氏名又は名称】株式会社小松製作所
(74)【代理人】
【識別番号】110001634
【氏名又は名称】弁理士法人志賀国際特許事務所
(72)【発明者】
【氏名】板東 賢一
(72)【発明者】
【氏名】伊藤 夏輝
(72)【発明者】
【氏名】ムンジル モハマド
【テーマコード(参考)】
3C029
3C034
3C269
【Fターム(参考)】
3C029AA01
3C029AA40
3C034AA19
3C034BB11
3C034BB37
3C034BB50
3C034BB75
3C034BB93
3C034CA02
3C034CA22
3C034CA26
3C034CB04
3C034CB08
3C034CB18
3C034DD20
3C269AB31
3C269AB33
3C269BB08
3C269CC09
3C269CC18
3C269EF02
3C269EF59
3C269EF71
3C269JJ09
3C269JJ20
3C269MN07
3C269MN09
3C269MN16
3C269MN17
3C269MN40
3C269MN48
3C269QD02
3C269QE03
3C269QE10
(57)【要約】
【課題】加工プログラムを用意することなくワークを加工する。
【解決手段】加工機械は、ワークを機械加工する工具と、撮像範囲にワークが入るように設置され、被写体の深度を撮像する深度カメラとを備える。位置計測部は、深度カメラが撮像した深度画像に基づいて、ワークの表面の三次元位置を計算する。位置合わせ部は、ワークの目標形状を表す三次元データとワークの三次元位置とに基づいて、ワークと目標形状とを重ね合わせたときの目標形状の三次元位置を計算する。切込量決定部は、ワークを所定の視点から見たときのワークの表面の三次元位置と目標形状の表面の三次元位置との視線方向における差に基づいてワークの表面上の複数の点それぞれにおける切込量を決定する。工具制御部は、決定された切込量に基づいて工具を移動させる。
【選択図】図1
【特許請求の範囲】
【請求項1】
ワークを機械加工する工具と、
撮像範囲に前記ワークが入るように設置され、被写体の深度を撮像する深度カメラと、
前記深度カメラが撮像した深度画像に基づいて、前記ワークの表面の三次元位置を計算する位置計測部と、
前記ワークの目標形状を表す三次元データと前記ワークの三次元位置とに基づいて、前記ワークと前記目標形状とを重ね合わせたときの前記目標形状の三次元位置を計算する位置合わせ部と、
前記ワークを所定の視点から見たときの前記ワークの表面の三次元位置と前記目標形状の表面の三次元位置との視線方向における差に基づいて前記ワークの表面上の複数の点それぞれにおける切込量を決定する切込量決定部と、
決定された前記切込量に基づいて前記工具を移動させる工具制御部と
を備える加工機械。
【請求項2】
前記目標形状の三次元位置に基づいて、前記深度カメラを基準とする前記目標形状の表面の深度を計算する目標深度計算部を備え、
前記位置計測部は、前記深度画像に基づいて前記ワークの表面の深度を特定し、
前記切込量決定部は、前記ワークの表面の深度と前記目標形状の表面の深度との差に基づいて、前記切込量を決定する
請求項1に記載の加工機械。
【請求項3】
前記位置合わせ部は、前記工具の加工方向を前記深度カメラの撮像方向と一致させ、決定された前記切込量に基づいて前記工具を移動させる
請求項2に記載の加工機械。
【請求項4】
前記切込量決定部は前記ワークの表面と前記目標形状の表面との差が前記工具の最大切込量を超える点における切込量を、前記最大切込量に決定し、前記ワークの表面と前記目標形状の表面との差が前記工具の最大切込量を超えない点における切込量を、前記ワークの表面と前記目標形状の表面との差を所定数で除算した量に決定する、
請求項1から請求項3の何れか1項に記載の加工機械。
【請求項5】
前記切込量決定部は、前記工具による前記ワークの加工後における前記ワークの表面の三次元位置と前記目標形状の表面の三次元位置との差に基づいて、再度前記ワークの表面上の複数の点それぞれにおける切込量を決定する
請求項1から請求項4の何れか1項に記載の加工機械。
【請求項6】
ワークを機械加工する工具と、撮像範囲に前記ワークが入るように設置され、被写体の深度を撮像する深度カメラと、前記工具を駆動させるアクチュエータとを備える加工機械の制御装置であって、
前記深度カメラが撮像した深度画像に基づいて、前記ワークの表面の三次元位置を計算する位置計測部と、
前記ワークの目標形状を表す三次元データと前記ワークの三次元位置とに基づいて、前記ワークと前記目標形状とを重ね合わせたときの前記目標形状の三次元位置を計算する位置合わせ部と、
前記ワークを所定の視点から見たときの前記ワークの表面の三次元位置と前記目標形状の表面の三次元位置との視線方向における差に基づいて前記ワークの表面上の複数の点それぞれにおける切込量を決定する切込量決定部と、
決定された前記切込量に基づいて前記アクチュエータを制御する工具制御部と
を備える加工機械の制御装置。
【請求項7】
ワークを機械加工する工具と、撮像範囲に前記ワークが入るように設置され、被写体の深度を撮像する深度カメラと、前記工具を駆動させるアクチュエータとを備える加工機械の制御方法であって、
前記深度カメラが撮像した深度画像に基づいて、前記ワークの表面の三次元位置を計算するステップと、
前記ワークの目標形状を表す三次元データと前記ワークの三次元位置とに基づいて、前記ワークと前記目標形状とを重ね合わせたときの前記目標形状の三次元位置を計算するステップと、
前記ワークを所定の視点から見たときの前記ワークの表面の三次元位置と前記目標形状の表面の三次元位置との視線方向における差に基づいて前記ワークの表面上の複数の点それぞれにおける切込量を決定するステップと、
決定された前記切込量に基づいて前記アクチュエータを制御するステップと
を備える加工機械の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、加工機械、加工機械の制御装置および加工機械の制御方法
に関する。
【背景技術】
【0002】
加工機械の制御装置は、ワークの加工に用いる加工プログラムを読み取り、当該プログラムの実行によって加工機械を駆動させることで、ワークを所望の形状に切削する。特許文献1には、ワークを撮影したカメラ画像上に加工プログラムによる加工軌跡を重畳表示する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第6253847号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ワークを加工するための加工プログラムを用意することは、容易ではない。ワークの目標形状に基づいて加工プログラムを作成しても、実際の加工機械に実行させると、加工機械の特性によって切削誤差が生じる。そのため、作業者は、ワークの試加工を繰り返しながら加工プログラムを修正することで、加工プログラムを作成する必要がある。
本開示の目的は、加工プログラムを用意することなくワークを加工することができる加工機械、加工機械の制御装置および加工機械の制御方法を提供することにある。
【課題を解決するための手段】
【0005】
本開示の一態様によれば、加工機械は、ワークを機械加工する工具と、撮像範囲に前記ワークが入るように設置され、被写体の深度を撮像する深度カメラと、前記深度カメラが撮像した深度画像に基づいて、前記ワークの表面の三次元位置を計算する位置計測部と、前記ワークの目標形状を表す三次元データと前記ワークの三次元位置とに基づいて、前記ワークと前記目標形状とを重ね合わせたときの前記目標形状の三次元位置を計算する位置合わせ部と、前記ワークを所定の視点から見たときの前記ワークの表面の三次元位置と前記目標形状の表面の三次元位置との視線方向における差に基づいて前記ワークの表面上の複数の点それぞれにおける切込量を決定する切込量決定部と、決定された前記切込量に基づいて前記工具を移動させる工具制御部とを備える。
【発明の効果】
【0006】
上記態様によれば、加工プログラムを用意することなくワークを加工することができる。
【図面の簡単な説明】
【0007】
図1】第一の実施形態に係る加工機械の斜視図である。
図2】第一の実施形態に係るロボットアームの構成を示す斜視図である。
図3】第一の実施形態に係る制御装置の構成を示す概略ブロック図である。
図4】第一の実施形態に係る表示画面の一例である。
図5】第一の実施形態に係る制御装置による加工機械の制御方法を示すフローチャート(パート1)である。
図6】第一の実施形態に係る制御装置による加工機械の制御方法を示すフローチャート(パート2)である。
図7】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0008】
〈第一の実施形態〉
《加工機械1の構成》
以下、図面を参照しながら実施形態について詳しく説明する。
図1は、第一の実施形態に係る加工機械の斜視図である。加工機械1は、テーブル10、治具20、複数のステレオカメラ30、ロボットアーム40、工具60、制御装置70を備える。他の実施形態においては、加工機械1は、例えばマシニングセンタであってもよい。
【0009】
テーブル10は、加工機械1の基台である。治具20は、テーブル10の上に設けられる。治具20はワークWを挟み込むことで支持する。
【0010】
ステレオカメラ30は、撮像範囲に含まれる被写体の深度画像を撮像する。ステレオカメラ30は、深度カメラの一例である。ステレオカメラ30は、撮像範囲にワークWの設置領域が含まれるように設けられる。ステレオカメラ30は、例えば加工機械1の内壁に、テーブル10を見下ろすように設置される。ステレオカメラ30は、テーブル10との相対位置が変化しないよう、熱膨張が生じ難い材料で構成される治具で固定されることが好ましい。複数のステレオカメラ30は、互いに死角を補うように配置される。図1に示す例では、加工機械1は4つのステレオカメラ30を備え、4方向から深度画像を撮像することができる。なお、他の実施形態においては、ステレオカメラ30は1つでも複数でもよい。また、4方向ではなく2方向や1方向から深度画像を計測してもよい。ステレオカメラ30は加工機械1を覆う略直方体の筐体の天井の四隅に取り付けられている。なお、ステレオカメラ30は加工機械1に対して固定されていればよいため、筐体に限らず、例えば4本の柱に固定されてもよい。
【0011】
図2は、第一の実施形態に係るロボットアーム40の構成を示す斜視図である。ロボットアーム40は、工具60を移動可能に支持する。工具60はロボットアーム40の先端に支持される。工具60はワークWを切削する。なお他の実施形態においては、工具60はワークWを研削するものであってもよい。ロボットアーム40は、例えば6軸垂直間接ロボットであってよい。ロボットアーム40は、ベース41、第一アーム42、第二アーム43、第三アーム44、第四アーム45、第五アーム46、スピンドル47とを備える。ベース41は、テーブル10に上下方向に伸びる第一軸O1回りに回転可能に固定される。第一アーム42は、第一軸O1に直交する第二軸O2回りに回転可能に連結されている。第二アーム43は、第一アーム42に対して第二軸O2と平行な第三軸O3回りに回転自在に連結されている。第三アーム44は、第三軸O3と平行な第四軸O4回りに回転可能に連結されている。第四アーム45は、第三アーム44に対して第三アーム44の軸方向に伸びる第五軸O5回りに回転可能に連結されている。第五アーム46は、第四アーム45に対して第五軸O5に直交する第六軸O6回りに回転可能に連結されている。スピンドル47は、第五アーム46の先端に設けられ、工具60を回転可能に支持する。
【0012】
ロボットアーム40は、第一モータ51、第二モータ52、第三モータ53、第四モータ54、第五モータ55、第六モータ56、第七モータ57を備えている。第一モータ51は、ベース41を回転させる。第二モータ52は、ベース41に対して第一アーム42を回転させる。第三モータ53は、第一アーム42に対して第二アーム43を回転させる。第四モータ54は、第二アーム43に対して第三アーム44を回転させる。第五モータ55は、第三アーム44に対して第四アーム45を回転させる。第六モータ56は、第四アーム45に対して第五アーム46を回転させる。第七モータ57は、スピンドル47を回転させる。また、各モータには、図示しないエンコーダが設けられ、各アームの回転角を計測する。
【0013】
ロボットアーム40は、ドライバ58を備える。ドライバ58は、制御指示に従ってロボットアーム40の各モータを駆動させる。ドライバ58は、エンコーダが計測する回転角に基づいて、スピンドル47の先端の位置および姿勢を計算する。ドライバ58は、スピンドル47の位置および姿勢を、ベース座標系とツール座標系で特定する。ベース座標系は、ベース41の底面の中心を原点とする座標系であって、上下方向に伸びるZb軸と、Zb軸に直交するXb軸およびYb軸によって表される。ツール座標系は、スピンドル47の先端を原点とする座標系であって、スピンドル47の軸方向に伸びるZt軸と、Zt軸に直交するXt軸およびYt軸によって表される。ドライバ58は、座標軸と平行移動または回転に係る移動量を示す制御指示を受信すると、制御指示が示す座標軸に沿って、制御指示が示す移動量だけスピンドル47を移動させるための各モータの角度を演算し、各モータを制御する。また、ドライバ58は、座標系と当該座標系における位置および姿勢を示す制御指示を受信すると、制御指示が示す位置へスピンドル47を移動させるための各モータの角度を演算し、各モータを制御する。
【0014】
制御装置70は、ステレオカメラ30が撮像した深度画像とロボットアーム40の先端の位置とに基づいて、ロボットアーム40を制御する。
【0015】
《制御装置70の構成》
図3は、第一の実施形態に係る制御装置70の構成を示す概略ブロック図である。
制御装置70は、データ取得部71、記憶部72、位置計測部73、位置合わせ部74、表示制御部75、差分算出部76、切込量決定部77、パス生成部78、工具制御部79、補正部80を備える。
【0016】
データ取得部71は、ステレオカメラ30から深度画像を取得し、ロボットアーム40から各アームの角度の計測値を取得する。深度画像は、ステレオカメラ30の主カメラとなる一方のカメラが撮像した画像を構成する各画素に、当該カメラからの距離を示す深度を対応付けたものである。
【0017】
記憶部72は、工具60の形状を示す三次元データである工具データと、加工前のワークWの形状を示す三次元データであるマッチングデータと、ワークWの目標形状を表す三次元データである目標データを記憶する。工具データ、マッチングデータおよび目標データは、例えばCADデータであってよい。なお、目標データは、加工機械1を操作するオペレータによって作成され、記録される。また記憶部72は、ステレオカメラ30のベース座標系における位置および姿勢を記憶する。
【0018】
位置計測部73は、ステレオカメラ30から取得した深度画像に基づいて、ワークWの三次元位置を特定する。具体的には、第一の実施形態に係る位置計測部73は、以下の手順でワークWの三次元位置を特定する。まず位置計測部73は、少なくとも1つのステレオカメラ30が生成した深度画像と、ステレオカメラ30のベース座標系における位置および姿勢とに基づいて、ベース座標系の点群データを生成する。次に、位置計測部73は、点群データに対して記憶部72が記憶するマッチングデータのマッチングを行う。位置計測部73は、例えばICPアルゴリズムによってマッチングを行うことができる。これにより、位置計測部73は、マッチングデータのベース座標系における位置及び姿勢を、ワークWの三次元位置として特定する。
【0019】
位置合わせ部74は、位置計測部73が計測したワークWの三次元位置に記憶部72が記憶する目標データを配置する。すなわち位置合わせ部74は、目標データが表すワークWの目標形状のベース座標系における位置および姿勢を決定する。位置合わせ部74は、位置合わせされた目標形状から、ステレオカメラ30に対応する深度画像を生成する。すなわち、位置合わせ部74は、記憶部72が記憶するステレオカメラ30のベース座標系における位置および姿勢と、目標形状のベース座標系における位置および姿勢とに基づいて、ステレオカメラ30の視点からワークWの目標形状を投影したときの深度画像を生成する。以下、位置合わせ部74が生成した深度画像を目標深度画像という。位置合わせ部74は、目標形状の三次元位置に基づいて、ステレオカメラ30を基準とする目標形状の表面の深度を計算する目標深度計算部の一例である。
【0020】
表示制御部75は、位置合わせ部74が生成した目標深度画像に基づいて、ステレオカメラ30のそれぞれについて、主カメラとなる一方のカメラから見たワークWの目標形状を表す目標画像P1をレンダリングする。目標画像P1は、例えば三次元モデルのアウトラインレンダリングによって得られた線画や、半透明の画像であってよい。表示制御部75は、ステレオカメラ30が撮像した画像(撮像画像P0)と、当該ステレオカメラ30に対応する目標画像P1とを重畳した表示画面を、ディスプレイに表示させる。図4は、第一の実施形態に係る表示画面の一例である。なお、表示制御部75は、位置合わせ等について必ずしも表示画面へ表示しなくてもよい。図4に示すように、目標画像P1は、撮像画像P0に写るワークWに内包されるように表示される。撮像画像P0は、4つのステレオカメラ30が撮像した画像を合成したものであってもよい。
【0021】
差分算出部76は、ステレオカメラ30が取得した深度画像と、位置合わせ部74が生成した目標深度画像との画素ごとの深度差分を算出する。
【0022】
切込量決定部77は、各画素の深度差分と工具60の最大切込量とに基づいて、ワークWのうち各画素に対応する位置における切込量を決定する。ワークWの画素は、ワークWの表面上の点を表す。切込量決定部77は、具体的には以下の手順で切込量を決定する。
まず、切込量決定部77は、差分算出部76が算出した深度差分の最大値を特定する。切込量決定部77は、深度差分の最大値を最大切込量で除算した値の整数部分に1を加算することで、見込み走査回数を決定する。なお、他の実施形態においては、最大切込量に代えて予め作業者が設定した最大切込量より小さい所定切込量を用いて見込み走査回数を決定してもよい。見込み走査回数は、ワークWを計画通りに切削できた場合に切削が完了するまでの走査の回数である。なお、ロボットアーム40の制御誤差や工具60の撓み等の影響により、実際の走査回数は必ずしも見込み走査回数と一致しない。切込量決定部77は、深度差分が最大切込量以上の画素に対応する位置の切込量を、最大切込量に決定する。切込量決定部77は、深度差分が最大切込量未満の画素に対応する位置の切込量を、深度差分を走査回数で除算した量に決定する。これにより、深度差分が最大切込量未満の画素に対応する位置については、小さい切込量での切削を繰り返し行うことで、精度の高い切削を実現することができる。他の実施形態においては、切込量決定部77は他の方法で各画素に対応する位置における切込量を決定してもよい。例えば、他の実施形態に係る切込量決定部77は、深度差分の大きさによらず、深度差分を走査回数で除算した量に切込量を決定してもよい。また他の実施形態に係る切込量決定部77は、深度差分が最大切込量未満の画素に対応する位置の切込量を、深度差分に相当する切込量に決定してもよい。
なお、切込量決定部77は、深度画像の画素を間引き、残った画素のみについて切込量を算出してもよい。この場合、切込量決定部77は、間引かれた画素について移動平均による補間によって切込量を算出してもよい。
【0023】
パス生成部78は、ステレオカメラ30から取得した深度画像と切込量決定部77が決定した切込量とに基づいて、工具60の先端の移動経路であるパスを決定する。パス生成部78は、深度画像の各画素の深度に、切込量決定部77が決定した切込量を加算することで、切削時の工具60の先端の位置を決定し、所定のパスプランニングアルゴリズムに従って工具60のパスを決定する。パスプランニングアルゴリズムの例としては、ダイクストラ法、A*法、PRM法、RRT法、RRT*法などが挙げられる。パス生成部78は、工具60の先端の位置を、NURBS曲線によって補間することで滑らかなパスを生成してよい。
【0024】
工具制御部79は、パス生成部78が生成したパスに従って工具を移動させるように、ロボットアーム40のドライバ58に出力する移動指示を生成する。工具制御部79は、まず工具60の姿勢(ベース座標系における各軸回りの回転角)をステレオカメラ30の姿勢と一致させるために、記憶部72が記憶するステレオカメラ30の姿勢に基づいて工具60を回転させる移動指示を生成し、ドライバ58に送信する。なお、工具60をステレオカメラ30の姿勢と一致させる場合は、ステレオカメラ30の主カメラとなる一方のカメラの姿勢に、工具60の姿勢を一致させることが好ましい。これにより、ドライバ58はロボットアーム40のスピンドル47の姿勢をステレオカメラ30の姿勢と一致させる。これにより、工具60が向く方向は、ステレオカメラ30の視線方向と一致する。すなわちツール座標系のZt軸が伸びる方向は、深度画像の深さ方向と一致する。
その後、工具制御部79は、パス生成部78が生成したパスに基づいて、移動指示を生成し、ドライバ58に送信する。このとき、工具制御部79は、Zt軸方向の位置を、パスが示す工具60の先端位置より工具60の長さだけ手前の位置に修正する。なお、工具60の初期姿勢はステレオカメラ30の姿勢と一致するが、パスにしたがって工具60が移動する際は、加工面に応じて工具60の姿勢が変化し得る。
【0025】
補正部80は、工具制御部79による1パス分の切削後に、工具制御部79の指示とロボットアーム40の加工位置とのずれを補正する。具体的には、補正部80は、下記に示す式(1)が示すSAD(Sum of Absolute Difference)が最小となるXb軸のずれ量dおよびYb軸方向のずれ量dを探索する。
【0026】
【数1】
【0027】
式(1)において、xはベース座標系のXb軸成分、yはベース座標系のYb軸成分である。hはパスを内包する最小の矩形のXb軸方向の長さであり、wはパスを内包する最小の矩形のYb軸方向の長さである。p(x,y)は、ベース座標系における位置(x,y)における切込指示量である。δは、ゼロでの除算を防ぐための定数である。I(x,y)は、加工前に撮像された深度画像と加工後に撮像された深度画像の位置(x,y)における深度差分、すなわち実際の切込量である。式(1)でSADが最小となるd、dが、工具制御部79の指示とロボットアーム40の加工位置とのずれを表すため、補正部80は、以降の移動指示に算出したずれ量を減算することで、制御ずれを補正する。なお、削りすぎを防ぐために、補正部80は、実際の切込量が切込指示量より大きい部分が存在する場合に、SADに有意に大きいペナルティ値を加えてもよい。
【0028】
《加工機械1の制御》
図5は、制御装置70による加工機械1の制御方法を示すフローチャート(パート1)である。図6は、制御装置70による加工機械1の制御方法を示すフローチャート(パート2)である。作業者がテーブル10にワークWを設置し、記憶部72に目標データを記録し、加工開始の指示を入力すると、制御装置70はワークWの加工を開始する。
【0029】
まずデータ取得部71は、ステレオカメラ30から深度画像を取得する(ステップS1)。次に、位置計測部73はステレオカメラ30が生成した深度画像と、記憶部72が記憶するステレオカメラ30のベース座標系における位置および姿勢とに基づいて、ベース座標系の点群データを生成する(ステップS2)。位置計測部73は、生成された4つの点群データをマージする(ステップS3)。
【0030】
位置計測部73は、マージした点群データに対して記憶部72が記憶するマッチングデータのマッチングを行うことで、ワークWの三次元位置を特定する(ステップS4)。次に、位置合わせ部74は、仮想空間においてステップS4で特定されたワークWの三次元位置に、記憶部72が記憶する目標データを配置する(ステップS5)。次に、位置合わせ部74は、位置合わせされた目標形状から、ステレオカメラ30に対応する目標深度画像を生成する(ステップS6)。位置合わせ部74は、生成した目標深度画像を記憶部72に記録する。
【0031】
表示制御部75は、ステップS6で生成されたステレオカメラ30に対応する目標深度画像に基づいて、ステレオカメラ30の一方のカメラから見たワークWの目標形状を表す目標画像をレンダリングする(ステップS7)。表示制御部75は、生成した目標画像を記憶部72に記録する。表示制御部75は、ステレオカメラ30の一方のカメラが撮像した画像と、ステップS6で生成した目標画像とを重畳した表示画面を、ディスプレイに表示させる(ステップS8)。以降、表示制御部75は、ステレオカメラ30が一定のフレームレートで撮像する画像を取得するたびに、当該画像と記憶部72が記憶する目標画像とを重畳して表示画面を更新し、ディスプレイに表示させる。これにより、作業者はワークWの形状と目標形状とをリアルタイムに比較することができる。
【0032】
次に、制御装置70は、ステレオカメラ30を1つずつ選択して(ステップS9)、以下のステップS10からステップS22の処理を実行する。
工具制御部79は、ステップS9で選択したステレオカメラ30の姿勢を記憶部72から読み出し、スピンドル47のベース座標系における姿勢をステレオカメラ30の姿勢と一致させる移動指示を生成し、ドライバ58に送信する。つまり、工具制御部79は、工具60が向く方向を、ステレオカメラ30の視線方向と一致させる(ステップS10)。
【0033】
次に、データ取得部71は、ステップS9で選択したステレオカメラ30から新たな深度画像を取得する(ステップS11)。次に、差分算出部76は、ステップS11で取得した深度画像と、ステップS9で選択したステレオカメラ30に対応する目標深度画像との画素ごとの深度差分を算出する(ステップS12)。
【0034】
次に、切込量決定部77は、算出した深度差分の最大値を工具60の最大切込量で除算した値の整数部分に1を加算することで、見込み走査回数を決定する(ステップS13)。切込量決定部77は、深度差分と工具60の最大切込量と見込み走査回数とに基づいて、深度画像の各画素に対応する位置の切込量を決定する(ステップS14)。具体的には、切込量決定部77は、深度差分が最大切込量以上の画素に対応する位置の切込量を、最大切込量に決定する。切込量決定部77は、深度差分が最大切込量未満の画素に対応する位置の切込量を、深度差分を最大切込量で除算した量に決定する。
【0035】
パス生成部78は、深度画像と切込量決定部77が決定した切込量とに基づいて、工具60のパスを生成する(ステップS15)。記憶部72に補正量が記録されている場合、パス生成部78は当該補正量に基づいてパスを補正する。次に、工具制御部79は、ステップS15で生成したパスに従って工具を移動させるための移動指示をし、ロボットアーム40のドライバ58に出力する(ステップS16)。これにより、ロボットアーム40は、パスに従って工具を移動させ、ワークを切削する。
【0036】
次に、データ取得部71は、ステップS9で選択したステレオカメラ30から新たな深度画像を取得する(ステップS17)。次に、差分算出部76は、ステップS17で取得した深度画像と、ステップS9で選択したステレオカメラ30に対応する目標深度画像との画素ごとの深度差分を算出する(ステップS18)。
【0037】
制御装置70は、全ての画素の深度差分が所定の許容誤差未満になったか否かを判定する(ステップS19)。少なくとも1つの画素の深度差分が所定の許容誤差未満になっていない場合(ステップS19:NO)、制御装置70は、ステップS9で選択したステレオカメラ30が撮像する面の切削を継続することを決定する。
【0038】
切削を継続する場合、補正部80は、深度画像の各画素について、パスの生成に用いた深度画像と、新たに取得した深度画像との深度差分を求めることで、当該画素に対応する位置の実際の切込量を算出する(ステップS20)。次に補正部80は、ステップS16でドライバ58に出力した指示が示す切込指示量と、実際の切込量とに基づいて、上述した式(1)を用いて加工位置のずれ量を探索する(ステップS21)。補正部80は、記憶部72に記憶された補正量に得られたずれ量を加算することで、補正量を更新する(ステップS22)。なお、記憶部72に補正量が記録されていない場合、補正部80は、得られたずれ量を補正量として記憶部72に記録する。そして、制御装置70は処理をステップS13に処理を戻し、ステップS17で取得された深度画像とステップS18で算出した深度差分とに基づいて再度切削を行う。
【0039】
全ての画素の深度差分が所定の許容誤差未満になった場合(ステップS19:YES)、制御装置70は、次のステレオカメラ30を選択し、ステップS10からステップS22の処理を実行する。
すべてのステレオカメラ30についてステップS10からステップS22の処理が完了すると、制御装置70はワークWの加工が終了したと判断し、処理を終了する。つまり、制御装置70は、死角を補うように設けられた複数のステレオカメラ30から見て、目標形状との差が許容誤差未満となった場合に、ワークWの加工を終了する。
【0040】
《作用・効果》
このように、第一の実施形態に係る加工機械1は、以下の手順でワークWを加工する。制御装置70が、ステレオカメラ30が撮像した深度画像に基づいてワークWの表面の三次元位置を計算する。制御装置70が、ワークWの目標形状を表す目標データとワークWの三次元位置とに基づいて、ワークWと目標形状とを重ね合わせたときの目標形状の三次元位置を計算する。制御装置70が、ワークWをステレオカメラ30の視点から見たときのワークWの表面の三次元位置と目標形状の表面の三次元位置との視線方向における差に基づいて、ワークWの表面上の複数の点それぞれにおける切込量を決定する。制御装置70が決定された切込量に基づいて工具60を移動させる。
これにより、第一の実施形態に係る加工機械1は、作業者が加工プログラムを用意することなく、深度画像と目標データとに基づいて自動的に工具60を制御することができる。
【0041】
また、第一の実施形態に係る加工機械1の制御装置70は、目標形状の三次元位置に基づいて、ステレオカメラ30を基準とする目標形状の表面の深度を計算し、深度画像におけるワークWの深度と計算された目標形状の深度とに基づいて切込量を決定する。これにより、第一の実施形態に係る加工機械1は、切込量を決定するために、切削を進めるたびに深度画像から三次元データへ変換し直さなくてよい。具体的には、制御装置70は、図5に示すステップS2で点群データを一度生成すれば、選択したステレオカメラ30におけるステップS9からステップS22のループや、ステップS13からステップS22のループにおいて点群データを生成する必要がない。ワークWの目標形状は加工開始から加工終了まで変わらない。そのため、制御装置70はステップS8で加工前に目標深度画像を生成して記憶部72に記録しておけば、以降のステップS12やステップS18における深度差分の計算において、記憶部72が記憶する目標深度画像を用いることで、目標データから目標深度画像への変換を省略することができる。なお、三次元データは、3軸直交座標系で複数の点の位置を表すデータである。点群データは三次元データの一例である。深度画像は、二次元平面上の各点に深度を関連付けたデータである。深度は、カメラの視点からの距離を表すため、必ずしも二次元平面に直交しない。
深度画像から三次元データへの変換は計算量が多いため、上記手順により三次元データの計算を減らすことで、加工機械1はワークWの加工を迅速に行うことができる。また、三次元データは容量が大きいため、記憶部72に大きな記憶領域を確保しておく必要があるところ、第一の実施形態のように三次元データに代えて深度画像を用いることで、データ量を抑えることができる。なお、他の実施形態においては、計算量は多くなるが、深度画像に代えて3次元データを用いて深度差分を算出してもよい。
【0042】
また、第一の実施形態に係る加工機械1の制御装置70は、工具60によるワークWの切削後におけるワークWの表面の三次元位置と、目標形状の表面の三次元位置との差に基づいて、再度ワークWの表面上の画素ごとの切込量を決定する。このように、制御装置70は切削の都度ワークWの形状を計算しなおすことで、実際の形状と目標形状との誤差を常に認識し、誤差を低減しながらワークWの切削を行うことができる。
【0043】
〈他の実施形態〉
以上、図面を参照して一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、様々な設計変更等をすることが可能である。すなわち、他の実施形態においては、上述の処理の順序が適宜変更されてもよい。また、一部の処理が並列に実行されてもよい。
上述した実施形態に係る制御装置70は、単独のコンピュータによって構成されるものであってもよいし、制御装置70の構成を複数のコンピュータに分けて配置し、複数のコンピュータが互いに協働することで制御装置70として機能するものであってもよい。このとき、制御装置70がロボットアーム40のドライバ58の機能の一部有していてもよいし、制御装置70の一部の機能をドライバ58が有していてもよい。
【0044】
上述した実施形態に係る加工機械1は、深度カメラとしてステレオカメラ30を備えるが、これに限られない。例えば、他の実施形態においては深度カメラとしてTOFカメラ、LiDAR、3次元スキャナなどを用いてもよい。また、他の実施形態においては、加工機械1は、ステレオカメラ30に代えて複数の単カメラを備え、複数の単カメラのうち隣接する2つのカメラの撮像画像をステレオマッチング処理し、ステレオカメラとして用いてもよい。
なお、他の実施形態においては、加工機械1は深度カメラを1つだけ備えてもよい。例えば、他の実施形態に係る加工機械1は深度カメラをワークWの直上に備え、深度カメラの視線方向に工具60を向けて加工を行ってもよい。また他の実施形態においては、深度カメラはカメラと深度計測装置との組み合わせであってもよい。
【0045】
また、上述した実施形態に係る制御装置70は、工具60の向きをステレオカメラ30の視線方向に合わせることで、深度画像を変換せずに工具のパスを生成するが、これに限られない。例えば、他の実施形態に係る制御装置70は、深度画像の視線方向を工具60の向きに変換して、切込量の決定およびパスの作成を行ってもよい。例えば、他の実施形態に係る制御装置70は、深度画像の視線方向を鉛直下方向に変換して、切込量の決定およびパスの作成を行ってもよい。この場合、変換後の深度画像は、3軸の直交座標系で表される。また、他の実施形態においては計算量は多くなるが、深度画像から三次元データを生成して、切込量を決定してもよい。深度画像の変換を行う場合、工具60を支持するアームはロボットアーム40のように高い自由度を有しなくてもよい。例えば、アームは工具60の角度を変化させずに工具60を平行移動させるものであってもよい。
【0046】
また、上述した実施形態に係る制御装置70は、加工前のワークWの形状を表すマッチングデータに基づいてワークWの三次元位置を特定するが、これに限られない。例えば、他の実施形態に係る制御装置70は、ワークWの設置前の深度画像とワークWの設置後の深度画像との差分によってワークWの三次元位置を特定してもよい。また、他の実施形態においては、ワークWのうち治具20に保持される部分は加工されないことから、ワークWの被保持部分の形状(面、辺など)と目標データの被保持部分の形状とのマッチングを行うことで、ワークWの三次元位置の特定および目標データの位置合わせを行ってもよい。また他の実施形態においては、作業者が手作業で位置合わせを行ってもよい。
【0047】
また、上述した実施形態に係る制御装置70は、1つのステレオカメラ30が撮像する深度画像について、深度差分が許容誤差未満になるまで切削を行った後、次のステレオカメラ30に基づく切削を行うが、これに限られない。例えば、他の実施形態においては、制御装置70は、1つのパスの切削を行うたびに対象のステレオカメラ30を切り替えてもよい。すなわち、他の実施形態に係る制御装置70は、ステップS10からステップS18の処理を全てのステレオカメラ30について行った後、ステップS19の加工の終了の判定を行ってもよい。
【0048】
〈コンピュータ構成〉
図7は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ900は、プロセッサ901、メインメモリ902、ストレージ903、インタフェース904を備える。
上述の制御装置70は、コンピュータ900に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ903に記憶されている。プロセッサ901は、プログラムをストレージ903から読み出してメインメモリ902に展開し、当該プログラムに従って上記処理を実行する。また、プロセッサ901は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ902に確保する。プロセッサ901の例としては、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、マイクロプロセッサなどが挙げられる。
【0049】
プログラムは、コンピュータ900に発揮させる機能の一部を実現するためのものであってもよい。例えば、プログラムは、ストレージに既に記憶されている他のプログラムとの組み合わせ、または他の装置に実装された他のプログラムとの組み合わせによって機能を発揮させるものであってもよい。なお、他の実施形態においては、コンピュータ900は、上記構成に加えて、または上記構成に代えてPLD(Programmable Logic Device)などのカスタムLSI(Large Scale Integrated Circuit)を備えてもよい。PLDの例としては、PAL(Programmable Array Logic)、GAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA(Field Programmable Gate Array)が挙げられる。この場合、プロセッサ901によって実現される機能の一部または全部が当該集積回路によって実現されてよい。このような集積回路も、プロセッサの一例に含まれる。
【0050】
ストレージ903の例としては、磁気ディスク、光磁気ディスク、光ディスク、半導体メモリ等が挙げられる。ストレージ903は、コンピュータ900のバスに直接接続された内部メディアであってもよいし、インタフェース904または通信回線を介してコンピュータ900に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムをメインメモリ902に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ903は、一時的でない有形の記憶媒体である。
【0051】
また、当該プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、当該プログラムは、前述した機能をストレージ903に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0052】
1…加工機械 10…テーブル 20…治具 30…ステレオカメラ 40…ロボットアーム 41…ベース 42…第一アーム 43…第二アーム 44…第三アーム 45…第四アーム 46…第五アーム 47…スピンドル 51…第一モータ 52…第二モータ 53…第三モータ 54…第四モータ 55…第五モータ 56…第六モータ 57…第七モータ 58…ドライバ 60…工具 70…制御装置 71…データ取得部 72…記憶部 73…位置計測部 74…位置合わせ部 75…表示制御部 76…差分算出部 77…切込量決定部 78…パス生成部 79…工具制御部 80…補正部 900…コンピュータ 901…プロセッサ 902…メインメモリ 903…ストレージ 904…インタフェース W…ワーク
図1
図2
図3
図4
図5
図6
図7