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

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

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

<>
  • 特許-数値制御システム 図1
  • 特許-数値制御システム 図2
  • 特許-数値制御システム 図3
  • 特許-数値制御システム 図4
  • 特許-数値制御システム 図5A
  • 特許-数値制御システム 図5B
  • 特許-数値制御システム 図6A
  • 特許-数値制御システム 図6B
  • 特許-数値制御システム 図7
  • 特許-数値制御システム 図8
  • 特許-数値制御システム 図9A
  • 特許-数値制御システム 図9B
  • 特許-数値制御システム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-04
(45)【発行日】2024-03-12
(54)【発明の名称】数値制御システム
(51)【国際特許分類】
   G05B 19/4061 20060101AFI20240305BHJP
【FI】
G05B19/4061 Z
【請求項の数】 6
(21)【出願番号】P 2022545703
(86)(22)【出願日】2021-08-26
(86)【国際出願番号】 JP2021031377
(87)【国際公開番号】W WO2022045254
(87)【国際公開日】2022-03-03
【審査請求日】2023-03-08
(31)【優先権主張番号】P 2020146211
(32)【優先日】2020-08-31
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【弁理士】
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【弁理士】
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【弁理士】
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】澤岡 浩貴
【審査官】樋口 幸太郎
(56)【参考文献】
【文献】特開2011-183528(JP,A)
【文献】特許第5857803(JP,B2)
【文献】特開2009-54043(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/4061
(57)【特許請求の範囲】
【請求項1】
移動指令に基づいて工作機械の複数の機械要素を複数の軸に沿って移動させるとともに所定のチェック対象組を構成する2つの機械要素の間の干渉チェック演算を行う数値制御システムであって、
前記チェック対象組を構成する2つの機械要素の各々の形状及び姿勢に依存する情報である姿勢依存情報を記憶する姿勢依存情報記憶部と、
前記機械要素の位置情報を取得し、当該位置情報及び前記姿勢依存情報記憶部に記憶された前記姿勢依存情報に基づいて前記干渉チェック演算を行う干渉チェック部と、
前記機械要素の形状情報及び姿勢情報を取得し、前記形状情報及び前記姿勢情報に基づいて前記姿勢依存情報を更新する姿勢依存情報更新部と、を備え、
前記姿勢依存情報更新部は、前記姿勢情報が変化しない場合、前記姿勢依存情報を更新しない、数値制御システム。
【請求項2】
前記姿勢依存情報は、前記チェック対象組を構成する2つの機械要素の各々の位置に依存しない情報である、請求項1に記載の数値制御システム。
【請求項3】
前記移動指令に基づいて前記機械要素の姿勢情報を監視する姿勢情報監視部をさらに備え、
前記姿勢依存情報更新部は、前記姿勢情報監視部によって姿勢情報が変化すると判定された場合に前記姿勢依存情報を更新する、請求項1又は2に記載の数値制御システム。
【請求項4】
前記姿勢依存情報記憶部は、前記チェック対象組毎に前記姿勢依存情報を記憶し、
前記姿勢依存情報更新部は、前記姿勢情報が変化する場合、姿勢が変化する機械要素を含むチェック対象組に対する前記姿勢依存情報を更新し、姿勢が変化する機械要素を含まないチェック対象組に対する前記姿勢依存情報を更新しない、請求項1から3の何れかに記載の数値制御システム。
【請求項5】
前記干渉チェック部は、前記干渉チェック演算において、前記チェック対象組を構成する2つの機械要素を分離する分離平面及び当該分離平面に対し直交する分離軸の有無を位置情報及び姿勢依存情報に基づいて判断することによって干渉の有無を判断し、
前記姿勢依存情報は、前記チェック対象組毎に定義される複数の分離軸候補ベクトルと、当該チェック対象組を構成する2つの機械要素を前記分離軸候補ベクトルに射影したときにおける各々の半径である分離軸方向半径と、を含む、請求項1から4の何れかに記載の数値制御システム。
【請求項6】
前記干渉チェック部は、前記干渉チェック演算において、前記チェック対象組を構成する2つの機械要素のうち一方の機械要素の面と平行な面内において互いに直交する2軸をX軸及びY軸とし、他方の機械要素の辺と平行な軸をZ軸とする斜交座標系における他方の機械要素の座標値に基づいて干渉の有無を判断し、
前記姿勢依存情報は、前記チェック対象組毎に定義される前記斜交座標系に関する情報を含む、請求項1から4の何れかに記載の数値制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、数値制御システムに関する。
【背景技術】
【0002】
数値制御装置は、予め作成された数値制御プログラムに基づいて、工作機械を構成する複数の機械要素(工具、テーブル、ワークを保持する治具等)を複数の制御軸に沿って移動させることによってワークに加工を行う。また数値制御装置は、工作機械の各機械要素が互いに干渉していないかどうかを確認するための干渉チェック演算を工作機械による加工中に並行して行う干渉チェック機能を備える(例えば、特許文献1参照)。
【0003】
特許文献1に示された技術では、対象とする2つの機械要素を分離する分離平面及びこの分離平面に対し直交する分離軸の有無に基づいて干渉の有無を判断する所謂分離軸方式に基づいて干渉の有無を判断している。2つの機械要素の間にこのような分離平面及び分離軸を定義できるかどうかは、各機械要素の位置及び姿勢に関する情報を必要とすることから、特許文献1に示された技術では、所定の制御周期で各機械要素の位置に関する位置情報と姿勢に関する姿勢情報を取得した後、分離軸に関する計算を行っている。
【先行技術文献】
【特許文献】
【0004】
【文献】特許第5857803号
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで従来の数値制御装置では、所定のチェック対象組を構成する2つの機械要素同士が干渉していないかどうかを、各機械要素の形状に関する形状情報、各機械要素の位置に関する位置情報、及び各機械要素の姿勢に関する姿勢情報を用いた干渉チェック演算を行うことによって判断する。数値制御装置では、このような干渉チェック演算を、複数のチェック対象組に対して行う必要があることから、時間がかかるおそれがある。
【0006】
このためチェック対象組の数が多くなると、数値制御装置による工作機械の制御周期内に全てのチェック対象組について干渉チェック演算を完了することができなくなってしまうおそれがある。またこのため、機械要素同士の干渉を適切なタイミングで検出できなくなってしまうおそれがある。
【0007】
本開示は、上記課題に鑑みてなされたものであり、数値制御装置における干渉チェック演算を短時間で終えることができる数値制御システムを提供する。
【課題を解決するための手段】
【0008】
本開示の一態様は、移動指令に基づいて工作機械の複数の機械要素を複数の軸に沿って移動させるとともに所定のチェック対象組を構成する2つの機械要素の間の干渉チェック演算を行うものであって、前記チェック対象組を構成する2つの機械要素の各々の形状及び姿勢に依存する情報である姿勢依存情報を記憶する姿勢依存情報記憶部と、前記機械要素の位置情報を取得し、当該位置情報及び前記姿勢依存情報記憶部に記憶された前記姿勢依存情報に基づいて前記干渉チェック演算を行う干渉チェック部と、前記機械要素の形状情報及び姿勢情報を取得し、前記形状情報及び前記姿勢情報に基づいて前記姿勢依存情報を更新する姿勢依存情報更新部と、を備え、前記姿勢依存情報更新部は、前記姿勢情報が変化しない場合、前記姿勢依存情報を更新しない、数値制御システムである。
【発明の効果】
【0009】
本開示の一態様によれば、干渉チェック演算を行うために必要な情報の一部として、チェック対象組を構成する2つの機械要素の各々の形状及び姿勢に依存する情報である姿勢依存情報を姿勢依存情報記憶部に記憶させる。干渉チェック部は、移動指令の下で移動する機械要素の位置情報を取得し、この位置情報と姿勢依存情報記憶部に記憶された姿勢依存情報とに基づいて干渉チェック演算を行う。また姿勢依存情報更新部は、機械要素の形状情報及び姿勢情報を取得し、これら形状情報及び姿勢情報に基づいて姿勢依存情報記憶部に記憶されている姿勢依存情報を更新し、姿勢情報が変化しない場合、姿勢依存情報を更新しない。よって本開示の一態様によれば、機械要素の姿勢情報が変化しない限り、干渉チェック部では、姿勢依存情報記憶部に記憶された姿勢依存情報を使い回して干渉チェック演算を行うことができる。よって本開示の一態様によれば、干渉チェック演算を行う度に姿勢依存情報を再計算する必要がなくなるので、干渉チェック部における干渉チェック演算を短時間で終えることができる。
【図面の簡単な説明】
【0010】
図1】本開示の第1実施形態に係る数値制御システムの概略図である。
図2】工作機械の一例を示す図である。
図3】上記実施形態に係る干渉チェック演算のアルゴリズムを説明するための図である。
図4】上記実施形態に係る姿勢依存情報の一例を示す図である。
図5A】分離軸候補ベクトルの一例である。
図5B】分離軸候補ベクトルの一例である。
図6A】数値制御装置における干渉チェック処理の具体的な手順を示すフローチャートである(その1)。
図6B】数値制御装置における干渉チェック処理の具体的な手順を示すフローチャートである(その2)。
図7】本開示の第2実施形態に係る干渉チェック部における干渉チェック演算のアルゴリズムを説明するための図である。
図8】上記実施形態に係る姿勢依存情報更新部によって生成される姿勢依存情報の一例を示す図である。
図9A】上記実施形態に係る数値制御装置における干渉チェック処理の具体的な手順を示すフローチャートである(その1)。
図9B】上記実施形態に係る数値制御装置における干渉チェック処理の具体的な手順を示すフローチャートである(その2)。
図10】上記実施形態に係る干渉チェック部における干渉チェック演算のアルゴリズムを説明するための図である。
【発明を実施するための形態】
【0011】
<第1実施形態>
以下、図面を参照して、本開示の第1実施形態に係る数値制御システムについて説明する。
【0012】
図1は、本実施形態に係る数値制御システム1の概略図である。
【0013】
数値制御システム1は、工作機械2と、この工作機械2を制御する数値制御装置(CNC)3と、を備える。
【0014】
工作機械2は、工具、テーブル、工具を支持する支持具、及びワークを保持する治具等の所定の立体形状を有する複数の機械要素と、各機械要素を複数の制御軸に沿って移動させる複数のサーボモータ2a,2b,…,2nと、を備える。工作機械2は、数値制御装置3から送信される移動パルスに基づいて複数のサーボモータ2a,…,2nを駆動し、複数の機械要素を複数の制御軸に沿って移動させることによって図示しないワークを加工する。ここで工作機械2は、例えば、旋盤、ボール盤、フライス盤、研削盤、レーザ加工機、及び射出成型機等であるが、これらに限らない。
【0015】
図2は、工作機械2の一例を示す図である。図2に例示する工作機械2は、8つの機械要素21,22,23,24,25,26,27,28を、5つの制御軸X,Y,Z,A,Cに沿って移動させることが可能となっている。
【0016】
第8機械要素28は、図示しないワークを支持する治具である。第7機械要素27は、第8機械要素28を支持するテーブルである。第6機械要素26は、第7機械要素27及び第8機械要素28を、例えば鉛直方向に沿って延びる制御軸C回りで回転自在に支持する基台である。
【0017】
第5機械要素25は、第8機械要素28によって支持されるワークを加工する工具である。第4機械要素24は、その先端部において、第5機械要素25を水平面に沿って延びる制御軸A回りで回動自在に支持する支持具である。
【0018】
第3機械要素23は、その先端部において第4機械要素24の基端部を支持する支持具である。第2機械要素22は、機械要素23~25を鉛直方向に沿った制御軸Zに沿って移動自在に支持する支持具である。
【0019】
第1機械要素21は、機械要素22~25を水平面に沿って延びる制御軸Xに沿って移動自在に支持する支持具である。またこの第1機械要素21は、第8機械要素28によって水平面内において制御軸Xと直交する制御軸Yに沿って移動自在に支持されている。
【0020】
図2に例示するような5軸の工作機械2では、第5機械要素25を制御軸Aに沿って移動させると、この第5機械要素25の姿勢が変化する。また第7機械要素27及び第8機械要素28を制御軸Cに沿って移動させると、これら第7機械要素27及び第8機械要素28の姿勢が変化する。以下では、図2に示すような5軸の工作機械2を例として数値制御装置3の構成について説明するが、本開示はこれに限るものではない。
【0021】
図1に戻り、数値制御装置3は、CPU(Central Processing Unit)等の演算処理手段、各種プログラムを格納したHDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶手段、演算処理手段がプログラムを実行する上で一時的に必要とされるデータを格納するためのRAM(Random Access Memory)といった主記憶手段、オペレータが各種操作を行うキーボードといった操作手段、及びオペレータに各種情報を表示するディスプレイといった表示手段等のハードウェアによって構成されるコンピュータである。
【0022】
数値制御装置3は、上記ハードウェア構成によって、加工プログラムメモリ31、指令解析部32、補間部33、パルス生成部34、干渉チェック部36、機械要素形状記憶部37、及び干渉チェック前処理装置5等の各種機能が実現される。
【0023】
加工プログラムメモリ31には、工作機械2の各機械要素を各制御軸に沿って移動(並進移動及び回転移動を含む)させるための指令を含む数値制御プログラムが格納される。数値制御プログラムは、所定のプログラミング言語(例えば、Gコード)によって記述されている。
【0024】
指令解析部32は、加工プログラムメモリ31に格納された数値制御プログラムをブロック毎に読み出し、解析し、解析結果に基づいて工作機械2の各制御軸の移動を指令する移動指令データを生成する。指令解析部32は、生成した移動指令データを補間部33へ送信する。
【0025】
補間部33は、指令解析部32から送信される移動指令データに基づいて、指令経路上の点を所定の補間周期で補間計算した補間データを生成する。補間部33は、生成した補間データをパルス生成部34へ送信する。
【0026】
パルス生成部34は、補間部33から送信される補間データに基づいて、工作機械2に対する移動指令、すなわち工作機械2の各サーボモータ2a,…,2nに対する移動パルスを上記補間周期毎に生成する。パルス生成部34は、以上のようにして生成した移動パルスをサーボモータ2a,…,2nへ入力することにより、工作機械2の複数の機械要素を複数の制御軸に沿って移動させる。なおパルス生成部34は、干渉チェック部36における後述の干渉チェック演算に基づいて複数の機械要素の何れかが干渉すると判断された場合には、この干渉を未然に防ぐべく移動パルスの生成及び工作機械2への入力を停止する。
【0027】
またパルス生成部34は、上述のように補間データに基づいて移動パルスを補間周期毎に生成するとともに、今回の補間周期で工作機械2へ入力する予定の移動パルスを、工作機械2へ入力する前に干渉チェック部36及び干渉チェック前処理装置5へ送信する。
【0028】
以上より、本実施形態において移動パルスに基づいて工作機械2の複数の機械要素を複数の制御軸に沿って移動させる機械制御部は、加工プログラムメモリ31、指令解析部32、補間部33、及びパルス生成部34によって構成される。
【0029】
なお以下では、工作機械2、干渉チェック部36、及び干渉チェック前処理装置5へ入力する移動パルスを加工プログラムメモリ31に格納された数値制御プログラムに基づいて自動的に生成する場合、換言すれば数値制御装置3における自動運転に基づいて移動パルスを生成する場合について説明するが、本発明はこれに限らない。工作機械2、干渉チェック部36、及び干渉チェック前処理装置5へ入力する移動パルスは、オペレータによる数値制御装置3の手動運転に基づいて所定の補間周期毎に生成してもよい。
【0030】
機械要素形状記憶部37には、工作機械2を構成する複数の機械要素の各々の形状に関する形状情報が格納されている。より具体的には、機械要素形状記憶部37は、各機械要素の形状を凸形状の多面体で近似した場合における各面の面データや、各面の法線ベクトルに関するデータ等、後述の姿勢依存情報を算出するために必要なデータを形状情報として記憶する。
【0031】
なお、上述のようにパルス生成部34から工作機械2へ入力する移動パルスと同じ補間周期の移動パルスを干渉チェック部36及び干渉チェック前処理装置5へ入力する場合、仮に補間周期内に干渉チェック部36による干渉チェック演算を終えることができなかったとしても、直ちに干渉が生じることが無いように、機械要素形状記憶部37に格納されている形状情報には僅かなマージンを加えておくことが好ましい。すなわち、機械要素形状記憶部37に格納されている形状情報は、実際の機械要素よりも僅かに大きな機械要素に基づいて作成することが好ましい。
【0032】
干渉チェック部36は、上述のようにパルス生成部34によって生成される移動パルスを工作機械2へ入力し続けた場合に、工作機械2を構成する複数の機械要素同士で干渉が生じるかどうかを判定するための干渉チェック演算を、複数のチェック対象組に対して行う。ここでチェック対象組とは、工作機械2を構成する複数の機械要素のうちの2つを組み合わせて構成される。従って工作機械2を構成する機械要素の総数がNである場合、チェック対象組の総数はN(N-1)/2である。
【0033】
干渉チェック部36は、工作機械2に対する移動指令、より具体的にはパルス生成部34から補間周期毎に送信される移動パルスに基づいて、上述の機械制御部による制御下の工作機械2における各機械要素の位置に関する位置情報を算出し、算出した位置情報と干渉チェック前処理装置5によって予め生成された後述の姿勢依存情報とに基づいて、各チェック対象組に対する干渉チェック演算を行う。干渉チェック部36は、干渉チェック演算によって何れかのチェック対象組において干渉すると判断した場合には、その旨をパルス生成部34へ通知し、干渉が生じる前に移動パルスの生成及び工作機械2への入力を停止させる。
【0034】
図3は、本実施形態に係る干渉チェック部36における干渉チェック演算のアルゴリズムを説明するための図である。以下では、理解を容易にするため、チェック対象組とする2つの機械要素E1,E2を、それぞれ2次元の正方形とした場合について説明する。なお3次元への一般化は容易であるので、詳細な説明を省略する。また以下では、機械要素の形状は凸形状である場合について説明する。
【0035】
図3に例示するように、2つの機械要素E1,E2が離れており干渉していない場合、2つの機械要素E1,E2を分離する分離平面S(2次元の場合、分離線)と、この分離平面Sに対し直交する分離軸Aと、を定義することができる。換言すれば、2つの機械要素E1,E2を分離する分離平面Sを備える分離軸Aが存在しない場合、これら機械要素E1,E2は干渉していると判断することができる。
【0036】
また2つの機械要素E1,E2に対し、以上のような性質を備える分離軸Aが存在する場合、各機械要素E1,E2の内部の任意の位置(例えば中心)に定められた基準点O1,O2の間の分離軸Aに沿った長さR(以下、「分離軸方向間隔」ともいう)は、機械要素E1を分離軸Aに射影したときにおける機械要素E1の半径r1(以下、「分離軸方向半径」ともいう)と、機械要素E2の分離軸方向半径r2との和よりも長い。
【0037】
干渉チェック部36では、チェック対象組を構成する2つの機械要素に対し、分離軸方向間隔Rを2つの分離軸方向半径r1,r2の和よりも大きくするような性質(以下、「分離性質」ともいう)を備える分離軸が存在するか否かを判定する干渉チェック演算を行うことによって、2つの機械要素の干渉の有無を判定する。
【0038】
図1に戻り、干渉チェック前処理装置5は、姿勢情報監視部51と、姿勢依存情報更新部52と、姿勢依存情報記憶部53と、を備え、これらを用いることによって干渉チェック部36によって参照される姿勢依存情報を生成する。
【0039】
姿勢情報監視部51は、工作機械2に対する移動指令、より具体的にはパルス生成部34から補間周期毎に送信される移動パルスに基づいて、工作機械2の各機械要素の姿勢に関する姿勢情報を監視する。姿勢情報監視部51は、パルス生成部34から送信される移動パルスに基づいて、工作機械2の各機械要素の姿勢に関する姿勢情報を算出するとともに、この姿勢情報が変化するか否かを判定する。より具体的には、姿勢情報監視部51は、前回の補間周期における移動パルスに基づいて算出した姿勢情報と今回の補間周期における移動パルスに基づいて算出した姿勢情報とを比較することにより、各機械要素の姿勢情報が変化するか否かを判定する。
【0040】
図2に例示するような5軸の工作機械2では、制御軸Aを移動させると第5機械要素25の姿勢が変化し、制御軸Cを移動させると第7機械要素27及び第8機械要素28の姿勢が変化する。従って姿勢情報監視部51は、図2に示す工作機械2の例では、移動パルスが制御軸Aや制御軸Cの移動を伴う指令である場合、姿勢情報が変化すると判定する。姿勢情報監視部51は、以上の手順によって姿勢情報が変化すると判定した場合、その旨とともに変更後の姿勢情報を姿勢依存情報更新部52へ送信する。
【0041】
姿勢依存情報記憶部53は、姿勢依存情報更新部52によって以下の手順で生成される姿勢依存情報を、干渉チェック部36における干渉チェック演算の対象とするチェック対象組毎に記憶する。
【0042】
姿勢依存情報更新部52は、機械要素形状記憶部37に格納されている各機械要素の形状情報及び姿勢情報監視部51から送信される姿勢情報に基づいて、新たに姿勢依存情報を生成し姿勢依存情報記憶部53に記憶させたり、姿勢依存情報記憶部53に記憶されている姿勢依存情報を更新したりする。
【0043】
ここで姿勢依存情報とは、チェック対象組を構成する2つの機械要素の各々の形状及び姿勢に依存しかつ各々の位置に依存しない情報であり、チェック対象組毎に定義される。すなわち、姿勢依存情報は、チェック対象組を構成する2つの機械要素の相対姿勢や各機械要素の形状が変化すると、変化する。また姿勢依存情報は、チェック対象組を構成する2つの機械要素の相対姿勢や各機械要素の形状が変化しない限り、各々の位置が変化しても、変化しない。
【0044】
次に、本実施形態における姿勢依存情報の内容について具体的に説明する。図3を参照して説明したように、干渉チェック部36における干渉チェック演算では、チェック対象組を構成する2つの機械要素に対し、分離性質を備える分離軸が存在するか否かを判定することによって、2つの機械要素の干渉の有無を判定する。しかしながらこのような分離軸の存否を確認するためには、一般的には多くの計算を必要とする。そこで数値制御装置3では、チェック対象組毎に分離性質を備える可能性が高いと思われる分離軸の候補を所定の有限数だけ定めておく。そして干渉チェック部36では、これら限られた数の分離軸候補に対してのみ上述のような分離性質を備えるかを判定することにより、2つの機械要素の干渉の有無を判定する。また姿勢依存情報更新部52では、干渉チェック部36における干渉チェック演算を短時間で終えることができるようにするため、図4を参照して説明するように、これら分離軸候補に関する情報を含む姿勢依存情報を生成する。
【0045】
図4は、姿勢依存情報更新部52によって生成される姿勢依存情報の一例を示す図である。図4に示すように、姿勢依存情報は、チェック対象組毎に定義される複数の分離軸候補ベクトルのベクトル値と、チェック対象組を構成する2つの構成要素の各々の分離軸方向半径r1,r2と、を含む。ここで分離軸候補ベクトルの数は、チェック対象組を構成する機械要素の形状や相対姿勢に応じて適宜定められる。
【0046】
例えば図5Aに例示するように、チェック対象組を構成する2つの機械要素E1,E2の形状が両方とも直方体であり、かつ各々の表面が平行である場合、分離軸候補ベクトルの数は3でよい。すなわち、2つの機械要素E1,E2に定義される計6つの法線ベクトルのうち、3つの独立な法線ベクトルv1、v2、v3を分離軸候補ベクトルとすることができる。
【0047】
また例えば図5Bに例示するように、チェック対象組を構成する2つの機械要素E1,E2の形状が両方とも直方体であり、かつ各々の表面が非平行である場合、分離軸候補ベクトルの数は15でよい。すなわち、一方の機械要素E1に対して定義される3つの互いに直交する法線ベクトルv1、v2、v3と、他方の機械要素E2に対して定義される3つの互いに直交する法線ベクトルv4、v5、v6と、一方の機械要素E1の法線ベクトルv1、v2、v3の何れかと他方の機械要素E2の法線ベクトルv4、v5、v6の何れかとの外積の全組み合わせ(計9つ)と、を分離軸候補ベクトルとすることができる。
【0048】
以上のように各チェック対象組に対する分離軸候補ベクトルは、チェック対象組を構成する各機械要素に対して定められる複数の法線ベクトルや、これら法線ベクトルの外積によって生成されるベクトル等が用いられる。姿勢依存情報更新部52は、以上のように各チェック対象組に対して定められた複数の分離軸候補ベクトルのベクトル値や、チェック対象組を構成する2つの機械要素の分離軸候補ベクトルに沿った分離軸方向半径r1,r2を、姿勢情報監視部51から送信される姿勢情報及び機械要素形状記憶部37に記憶されている形状情報に基づいて算出する。
【0049】
図1に戻り、姿勢依存情報更新部52は、機械要素形状記憶部37に格納されている各機械要素の形状情報と、姿勢情報監視部51において姿勢情報が変化すると判定されたタイミングで姿勢情報監視部51から送信される各機械要素の姿勢情報と、に基づいて、上述のような複数の分離軸候補ベクトルのベクトル値と各分離軸候補ベクトルに対する2つの分離軸方向半径とを含む姿勢依存情報を、各チェック対象組に対して生成し、姿勢依存情報記憶部53に記憶させる。
【0050】
なお以上のようにして各チェック対象組に対して定義される分離軸候補ベクトルのベクトル値や、各分離軸候補ベクトルに対する2つの分離軸方向半径は、チェック対象組を構成する機械要素の形状や相対姿勢が変化すると変化する。またこれら分離軸候補ベクトルのベクトル値や2つの分離軸方向半径は、チェック対象組を構成する機械要素の形状や相対姿勢が変化しなければ、各機械要素の位置が変化しても変化しない。
【0051】
そこで姿勢依存情報更新部52は、姿勢情報監視部51において姿勢情報が変化しないと判定された場合には、姿勢依存情報記憶部53に記憶されている姿勢依存情報を更新しない。また姿勢依存情報更新部52は、姿勢情報監視部51において姿勢情報が変化すると判定された場合には、姿勢依存情報記憶部53に記憶されている姿勢依存情報を更新する。より具体的には、この場合、姿勢依存情報更新部52は、姿勢依存情報記憶部53に記憶されている全てのチェック対象組に対する姿勢依存情報のうち、姿勢が変化する機械要素を含むチェック対象組に対する姿勢依存情報(より具体的には、各分離軸候補ベクトルのベクトル値、及び各分離軸候補ベクトルに対する2つの分離軸方向半径r1,r2)を更新し、姿勢が変化する機械要素を含まないチェック対象組に対する姿勢依存情報を更新しない。
【0052】
図6A及び図6Bは、数値制御装置3における干渉チェック処理の具体的な手順を示すフローチャートである。図6A及び図6Bに示す干渉チェック処理は、機械制御部によって工作機械2の制御が開始されたことに応じて、干渉チェック前処理装置5及び干渉チェック部36によって補間周期毎に繰り返し実行される。なお図6A及び図6Bの干渉チェック処理を開始する際における姿勢依存情報記憶部53には、機械制御部による制御開始時における各機械要素の初期姿勢に応じて姿勢依存情報更新部52によって予め生成された姿勢依存情報が記憶されている。なお以下では、干渉チェック演算を行うチェック対象組の総数はNc(Ncは、1以上の任意の整数)とし、m番目のチェック対象組に対して定義される分離軸候補ベクトルの総数はNmとする。
【0053】
S1では、姿勢情報監視部51は、パルス生成部34から送信される移動パルスに基づいて各機械要素の姿勢情報を算出し、S2に移る。S2では、姿勢情報監視部51は、前回の補間周期時に算出した姿勢情報と今回の補間周期時に算出した姿勢情報とを比較することにより、各機械要素の姿勢情報が変化するか否かを判定する。S2の判定結果がYESである場合、姿勢情報監視部51はS3に移る。
【0054】
S3では、姿勢依存情報更新部52は、姿勢情報監視部51から送信される姿勢情報に基づいて、複数の機械要素のうち姿勢が変化する機械要素と、この姿勢が変化する機械要素を含むチェック対象組と、を特定し、S4に移る。
【0055】
S4では、姿勢依存情報更新部52は、姿勢情報監視部51から送信される姿勢情報及び機械要素形状記憶部37に記憶された形状情報を取得し、これら姿勢情報及び形状情報に基づいて、姿勢依存情報記憶部53に記憶されている姿勢依存情報を更新し、S5に移る。より具体的には、姿勢依存情報更新部52は、取得した姿勢情報及び形状情報に基づいて、S3において特定したチェック対象組に対する姿勢依存情報(複数の分離軸候補ベクトルのベクトル値、及びこれら分離軸候補ベクトルに沿った2つの分離軸方向半径r1,r2)を再計算し、再計算の結果によって姿勢依存情報記憶部53の姿勢依存情報を更新する。
【0056】
またS2の判定結果がNOである場合、すなわち姿勢情報が変化しない場合、姿勢依存情報更新部52は、S3~S4の処理を実行せずに、すなわち姿勢依存情報記憶部53に記憶されている姿勢依存情報を更新せずにS5に移る。
【0057】
S5では、干渉チェック部36は、チェック対象組カウンタmの値を1にし、S6に移る。S6では、干渉チェック部36は、パルス生成部34から送信される移動パルスに基づいてm番目のチェック対象組を構成する2つの機械要素の位置情報を算出し、S7に移る。S7では、干渉チェック部36は、分離軸候補ベクトルカウンタnの値を1にし、S8に移る。
【0058】
S8では、干渉チェック部36は、m番目のチェック対象組におけるn番目の分離軸候補ベクトルのベクトル値と、このn番目の分離軸候補ベクトルに沿った2つの分離軸方向半径r1,r2と、を姿勢依存情報記憶部53から取得し、S9に移る。
【0059】
S9では、干渉チェック部36は、S6で取得したm番目のチェック対象組を構成する2つの機械要素の位置情報と、S8で取得したm番目のチェック対象組におけるn番目の分離軸候補ベクトルのベクトル値と、に基づいて、これら2つの機械要素の間のn番目の分離軸候補ベクトルに沿った分離軸方向間隔Rを算出し、S10に移る。
【0060】
S10では、干渉チェック部36は、S9で算出した分離軸方向間隔Rは、S8で取得した2つの分離軸方向半径r1,r2の和より大きいか否かを判定する(R>r1+r2?)。
【0061】
干渉チェック部36は、S10の判定結果がNOである場合、S11に移り、分離軸候補ベクトルカウンタnの値は、m番目のチェック対象組に対して定義される分離軸候補ベクトルの総数Nmより大きいか否かを判定する。干渉チェック部36は、S11の判定結果がNOである場合、次の分離軸候補ベクトルを試行するべく、分離軸候補ベクトルカウンタnの値を1つだけカウントアップした後(S12参照)、S8に戻る。干渉チェック部36は、S11の判定結果がYESである場合、すなわち全ての分離軸候補ベクトルが分離性質(S10参照)を備えないと判定された場合には、m番目のチェック対象組を構成する2つの機械要素の間で干渉が生じると判定し(S13参照)、干渉チェック処理を終了する。なお干渉チェック部36は、1~Nc番目のチェック対象組の何れかにおいて干渉すると判定した場合には、その旨をパルス生成部34へ通知し、実際に干渉が生じる前に移動パルスの生成及び工作機械2への入力を停止させる。
【0062】
また干渉チェック部36は、S10の判定結果がYESである場合、すなわちm番目のチェック対象組では、少なくともn番目の分離軸候補ベクトルに分離性質があると判断し、S14に移る。S14では、干渉チェック部36は、チェック対象組カウンタmの値はチェック対象組の総数Ncより大きいか否かを判定する。S14の判定結果がNOである場合、干渉チェック部36は、次のチェック対象組について干渉の有無を判断するべく、チェック対象組カウンタの値を1つだけカウントアップした後(S15参照)、S6に戻る。またS14の判定結果がYESである場合、干渉チェック部36は、1~Nc番目の全てのチェック対象組において干渉していないと判断し(S16参照)、干渉チェック処理を終了する。
【0063】
本実施形態によれば、以下の効果が奏される。
本実施形態によれば、干渉チェック演算を行うために必要な情報の一部として、チェック対象組を構成する2つの機械要素の各々の形状及び姿勢に依存する情報である姿勢依存情報を姿勢依存情報記憶部53に記憶させる。干渉チェック部36は、移動パルスの下で移動する機械要素の位置情報を取得し、この位置情報と姿勢依存情報記憶部53に記憶された姿勢依存情報とに基づいて干渉チェック演算を行う。また姿勢依存情報更新部52は、機械要素の形状情報及び姿勢情報を取得し、これら形状情報及び姿勢情報に基づいて姿勢依存情報記憶部53に記憶されている姿勢依存情報を更新し、姿勢情報が変化しない場合、姿勢依存情報を更新しない。よって本実施形態によれば、機械要素の姿勢情報が変化しない限り、干渉チェック部36では、姿勢依存情報記憶部53に記憶された姿勢依存情報を使い回して干渉チェック演算を行うことができる。よって本実施形態によれば、干渉チェック演算を行う度に姿勢依存情報を再計算する必要がなくなるので、干渉チェック部36における干渉チェック演算を短時間で終えることができる。
【0064】
本実施形態によれば、チェック対象組を構成する2つの機械要素の各々の形状及び姿勢に依存しかつ各々の位置に依存しない情報を姿勢依存情報として姿勢依存情報記憶部53に記憶させる。すなわち、姿勢依存情報は、チェック対象組を構成する2つの機械要素の相対姿勢や各機械要素の形状が変化しない限り、各々の位置が変化しても、変化しない。本実施形態によれば、このように定義された姿勢依存情報を姿勢依存情報記憶部53に記憶させることにより、直線軸(例えば、図2に示す工作機械2の例では、制御軸X,Y,Zのように機械要素を並進させる制御軸)を多く備える数値制御装置3では、姿勢依存情報の更新回数を特に減らすことができる。
【0065】
本実施形態によれば、姿勢情報監視部51は、工作機械2に対する移動指令、より具体的にはパルス生成部34から補間周期毎に送信される移動パルスに基づいて機械要素の姿勢情報を監視し、姿勢依存情報更新部52は、姿勢情報監視部51によって姿勢情報が変化すると判定された場合に、姿勢依存情報記憶部53に記憶された姿勢依存情報を更新する。これにより、姿勢依存情報更新部52では、機械要素の姿勢が変化する適切なタイミングで姿勢依存情報を更新することができる。
【0066】
本実施形態によれば、姿勢依存情報記憶部53は、チェック対象組毎に姿勢依存情報を記憶し、姿勢依存情報更新部52は、姿勢情報が変化する場合、姿勢が変化する機械要素を含むチェック対象組に対する姿勢依存情報を更新し、姿勢が変化する機械要素を含まないチェック対象組に対する姿勢依存情報を更新しない。これにより、姿勢依存情報更新部52における計算量を最小限にとどめることができる。またこれにより、干渉チェック部36における干渉チェック演算を短時間で終えることができる。
【0067】
本実施形態によれば、姿勢依存情報記憶部53は、チェック対象組毎に定義される複数の分離軸候補ベクトルのベクトル値と、チェック対象組を構成する2つの機械要素をこの分離軸候補ベクトルに射影したときにおける各々の半径である分離軸方向半径r1,r2と、を姿勢依存情報として記憶し、干渉チェック部36は、干渉チェック演算では、あらかじめ準備された複数の分離軸候補ベクトルが分離性質を備えるかどうかを判断することによって、干渉の有無を判断する。本実施形態によれば、少ない演算で干渉の有無を効率的に判断することができる。
【0068】
<第2実施形態>
次に、本開示の第2実施形態に係る数値制御システムについて説明する。本実施形態に係る数値制御システムは、干渉チェック部における干渉チェック演算のアルゴリズム及び干渉チェック前処理装置によって生成される姿勢依存情報の内容において、第1実施形態に係る数値制御システム1と異なる。また以下の第2実施形態に係る数値制御システムの説明において、第1実施形態に係る数値制御システム1と同じ構成については詳細な説明を省略する。
【0069】
図7は、本実施形態に係る干渉チェック部における干渉チェック演算のアルゴリズムを説明するための図である。図7に示すように干渉チェック部では、チェック対象組を構成する2つの機械要素E1,E2の間の干渉の有無を、一方の機械要素E1の面S1と他方の機械要素E2の辺L1との干渉の有無によって判断する。より具体的には、干渉チェック部は、干渉チェック演算において、チェック対象組を構成する2つの機械要素E1,E2のうち、一方の機械要素E1の面S1内に原点Oを有する斜交座標系を定義する。この斜交座標系は、一方の機械要素E1の面S1と平行な面内において互いに直交する2軸をX軸及びY軸とし、他方の機械要素E2の辺L1と平行な軸をZ軸とする。また干渉チェック演算では、このように定義される斜交座標系における他方の機械要素E2の辺L1の座標値に基づいて面S1と辺L1との間の干渉の有無を判断する。
【0070】
本実施形態に係る数値制御装置では、干渉する可能性がある複数の面S1,S2,…と、複数の辺L1,L2,…と、をそれぞれ干渉候補面及び干渉候補辺として、チェック対象組毎に予め定義しておく。そして干渉チェック部では、各干渉候補面と各干渉候補辺との間の干渉の有無を判断することにより、チェック対象組を構成する2つの機械要素の間の干渉の有無を判断する。
【0071】
図8は、本実施形態に係る姿勢依存情報更新部によって生成される姿勢依存情報の一例を示す図である。図8には、複数のチェック対象組のうち、m番目のチェック対象組に対する姿勢依存情報のみを示す。姿勢依存情報記憶部には、図8に示すような姿勢依存情報を、全てのチェック対象組に対して記憶する。
【0072】
図8に示すように、本実施形態に係る姿勢依存情報は、チェック対象組を構成する一方の機械要素に対して定義される複数の干渉候補面と他方の機械要素に対して定義される複数の干渉候補辺との組み合わせ番号に関する情報と、これら複数の干渉候補面と複数の干渉候補辺との全ての組み合わせに対して定義される斜交座標系に関する情報(より具体的には、これら斜交座標系の3つの基底ベクトルのベクトル値に関する情報)と、を含む。ここでm番目のチェック対象組における干渉候補面の総数をNmとし、干渉候補辺の総数をMmとした場合、このm番目のチェック対象組に対して定義される斜交座標系の総数はNm×Mmである。
【0073】
図9A及び図9Bは、本実施形態に係る数値制御装置における干渉チェック処理の具体的な手順を示すフローチャートである。図9A及び図9Bに示す干渉チェック処理は、機械制御部によって工作機械の制御が開始されたことに応じて、干渉チェック前処理装置及び干渉チェック部によって補間周期毎に繰り返し実行される。なお図9A及び図9Bの干渉チェック処理を開始する際における姿勢依存情報記憶部には、機械制御部による制御開始時における各機械要素の初期姿勢に応じて姿勢依存情報更新部によって予め生成された姿勢依存情報が記憶されている。なお以下では、干渉チェック演算を行うチェック対象組の総数はNc(Ncは、1以上の任意の整数)とし、m番目のチェック対象組に対して定義される分離軸候補ベクトルの総数はNmとする。
【0074】
S21では、姿勢情報監視部は、パルス生成部から送信される移動パルスに基づいて各機械要素の姿勢情報を算出し、S22に移る。S22では、姿勢情報監視部は、前回の補間周期時に算出した姿勢情報と今回の補間周期時に算出した姿勢情報とを比較することにより、各機械要素の姿勢情報が変化するか否かを判定する。S22の判定結果がYESである場合、姿勢情報監視部はS23に移る。
【0075】
S23では、姿勢依存情報更新部は、姿勢情報監視部から送信される姿勢情報に基づいて、複数の機械要素のうち姿勢が変化する機械要素と、この姿勢が変化する機械要素を含むチェック対象組と、を特定し、S24に移る。
【0076】
S24では、姿勢依存情報更新部は、姿勢情報監視部から送信される姿勢情報及び機械要素形状記憶部に記憶された形状情報を取得し、これら姿勢情報及び形状情報に基づいて、姿勢依存情報記憶部に記憶されている姿勢依存情報を更新し、S25に移る。より具体的には、姿勢依存情報更新部は、取得した姿勢情報及び形状情報に基づいて、S23において特定したチェック対象組に対する姿勢依存情報(複数の干渉候補面と複数の干渉候補辺の全ての組み合わせに対する斜交座標系の3つの基底ベクトルのベクトル値)を再計算し、再計算の結果によって姿勢依存情報記憶部の姿勢依存情報を更新する。
【0077】
またS22の判定結果がNOである場合、すなわち姿勢情報が変化しない場合、姿勢依存情報更新部は、S23~S24の処理を実行せずに、すなわち姿勢依存情報記憶部に記憶されている姿勢依存情報を更新せずにS25に移る。
【0078】
S25では、干渉チェック部は、チェック対象組カウンタmの値を1にし、S26に移る。S26では、干渉チェック部は、パルス生成部から送信される移動パルスに基づいてm番目のチェック対象組を構成する2つの機械要素の位置情報を算出し、S27に移る。S27では、干渉チェック部は、組み合わせ番号カウンタnの値を1にし、S28に移る。
【0079】
S28では、干渉チェック部は、m番目のチェック対象組におけるn番目の干渉候補面と干渉候補辺の組み合わせの斜交座標系の3つの基底ベクトルのベクトル値を姿勢依存情報記憶部から取得し、S29に移る。
【0080】
S29では、干渉チェック部は、S28で取得した斜交座標系における干渉候補辺の始点P1(図10参照)のZ軸に沿った座標値及び終点P2(図10参照)のZ軸に沿った座標値を、S28で取得した3つの基底ベクトルのベクトル値と、機械要素形状記憶部に記憶された形状情報と、S26で取得したm番目のチェック対象組を構成する2つの機械要素の位置情報と、に基づいて算出し、これら始点のZ座標値と終点のZ座標値との積が正であるか否かを判定する。干渉チェック部は、S29の判定結果がNOである場合には、S30に移る。
【0081】
S30では、干渉チェック部は、S28で取得した斜交座標系における干渉候補辺の始点P1のX軸に沿った座標値(図10参照)及び干渉候補面のX軸に沿った長さを、S28で取得した3つの基底ベクトルのベクトル値と、機械要素形状記憶部に記憶された形状情報と、S26で取得したm番目のチェック対象組を構成する2つの機械要素の位置情報と、に基づいて算出し、始点のX座標値の絶対値が干渉候補面のX軸に沿った長さに1/2を乗算したものより大きいか否かを判定する。干渉チェック部は、S30の判定結果がNOである場合には、S31に移る。
【0082】
S31では、干渉チェック部は、S28で取得した斜交座標系における干渉候補辺の始点P1のY軸に沿った座標値(図10参照)及び干渉候補面のY軸に沿った長さを、S28で取得した3つの基底ベクトルのベクトル値と、機械要素形状記憶部に記憶された形状情報と、S26で取得したm番目のチェック対象組を構成する2つの機械要素の位置情報と、に基づいて算出し、始点のY座標値の絶対値が干渉候補面のY軸に沿った長さに1/2を乗算したものより大きいか否かを判定する。干渉チェック部は、S31の判定結果がNOである場合には、S32に移る。
【0083】
S32では、干渉チェック部は、m番目のチェック対象組を構成する2つの機械要素は、n番目の干渉候補面と干渉候補辺とにおいて干渉が生じると判定し、干渉チェック処理を終了する。なお干渉チェック部は、1~Nc番目のチェック対象組の何れかにおいて干渉すると判定した場合には、その旨をパルス生成部へ通知し、実際に干渉が生じる前に移動パルスの生成及び工作機械への入力を停止させる。
【0084】
また上述のS29~S31の何れかの判定結果がYESである場合、干渉チェック部は、S33に移り、組み合わせ番号カウンタnの値は、m番目のチェック対象組に対して定義される斜交座標系の総数Nm×Mmより大きいか否かを判定する。干渉チェック部は、S33の判定結果がNOである場合、次の斜交座標系を試行するべく、組み合わせ番号カウンタnの値を1つだけカウントアップした後(S34参照)、S28に戻る。
【0085】
また干渉チェック部は、S33の判定結果がYESである場合、S35に移り、チェック対象組カウンタmの値は、チェック対象組の総数Ncより大きいか否かを判定する。S35の判定結果がNOである場合、干渉チェック部は、次のチェック対象組について干渉の有無を判断するべく、チェック対象組カウンタの値を1つだけカウントアップした後(S36参照)、S26に戻る。またS35の判定結果がYESである場合、干渉チェック部は、1~Nc番目の全てのチェック対象組において干渉していないと判断し(S37参照)、干渉チェック処理を終了する。
【0086】
本実施形態によれば、以下の効果が奏される。
本実施形態に係る干渉チェック部は、チェック対象組を構成する2つの機械要素のうちの一方の機械要素の面と平行な面内において互いに直交する2軸をX軸及びY軸とし、他方の機械要素の辺と平行な軸をZ軸とする斜交座標系における他方の機械要素の座標値に基づいて干渉の有無を判断し、姿勢依存情報記憶部には、チェック対象組毎に定義される斜交座標系に関する情報を含む姿勢依存情報を記憶させる。本実施形態によれば、少ない演算で干渉の有無を効率的に判断することができる。
【0087】
ここで、面と辺に基づく第2実施形態に係る干渉チェック演算のアルゴリズムと、分離軸に基づく第1実施形態に係る干渉チェック演算のアルゴリズムとを比較する。第2実施形態に係るアルゴリズムでは、複数の面と辺の組み合わせの何れかにおいて1つでもS29~S31に基づく条件を満たせば干渉していると判定できるのに対し、第1実施形態に係るアルゴリズムでは、複数の分離軸候補ベクトルの全てに対しS10に基づく条件を満たすことが判明しなければ干渉していると判定することができない。すなわち、干渉していると判定するためにかかる時間は、第1実施形態に係るアルゴリズムよりも第2実施形態に係るアルゴリズムの方が速い。したがってこれとは逆に、干渉していないと判定するためにかかる時間は、第2実施形態に係るアルゴリズムよりも第1実施形態に係るアルゴリズムの方が速い。
【0088】
従って、何等かの理由によって干渉の可能性が高い状況では、第2実施形態に係るアルゴリズムに基づいて干渉チェック演算を行うことが好ましい。ここで干渉の可能性が高い状況とは、例えば、直前の干渉チェック演算において僅かな差によって干渉していないと判定された場合、機械要素を包含するように近似した形状情報の下で干渉していると判定された場合、及び2つの機械要素の間の距離が近い場合等が挙げられる。またこれとは逆に、何等かの理由によって干渉の可能性が低い状況では、第1実施形態に係るアルゴリズムに基づいて干渉チェック演算を行うことが好ましい。
【0089】
本開示は、上記実施形態に限定されるものではなく、種々の変更及び変形が可能である。例えば上記実施形態では、図2に示すような5軸の工作機械2を例に説明したが、本開示はこれに限らない。本開示は、任意の軸数の工作機械に適用することができる。例えば3軸の工作機械では、機械要素の姿勢が変化することは稀であることから、姿勢依存情報を姿勢依存情報記憶部に記憶させることによる効果が大きい。
【符号の説明】
【0090】
1…数値制御システム
2…工作機械
3…数値制御装置
31…加工プログラムメモリ
32…指令解析部
33…補間部
34…パルス生成部
36…干渉チェック部
37…機械要素形状記憶部
5…干渉チェック前処理装置
51…姿勢情報監視部
52…姿勢依存情報更新部
53…姿勢依存情報記憶部
図1
図2
図3
図4
図5A
図5B
図6A
図6B
図7
図8
図9A
図9B
図10