(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】制御システム
(51)【国際特許分類】
G05B 19/4069 20060101AFI20240618BHJP
【FI】
G05B19/4069
(21)【出願番号】P 2019217979
(22)【出願日】2019-12-02
【審査請求日】2022-10-21
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100106002
【氏名又は名称】正林 真之
(74)【代理人】
【識別番号】100165157
【氏名又は名称】芝 哲央
(74)【代理人】
【識別番号】100160794
【氏名又は名称】星野 寛明
(72)【発明者】
【氏名】大西 庸士
【審査官】小川 真
(56)【参考文献】
【文献】特開2014-021648(JP,A)
【文献】特開2019-012342(JP,A)
【文献】特開2019-057262(JP,A)
【文献】特開2017-213644(JP,A)
【文献】特開2014-021810(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/4061、19/4069
G05B 19/4093、19/18
B23Q 15/00
(57)【特許請求の範囲】
【請求項1】
制御システムであって、
制御対象としての産業用機械を制御する制御装置と、
前記産業用機械を構成する機械構成要素をノードとするグラフ形式で表現し、ノード情報通知部と、変換情報計算部とを備える機械構成管理装置と、
各機械構成要素間の干渉チェックを行い、干渉物設定部と、干渉物位置姿勢計算部と、干渉チェック部とを備える干渉チェック装置とを備え、
前記ノード情報通知部は、干渉物となる機械構成要素を含む選択可能なノードを特定し、特定されたノードに係るノード情報を前記干渉チェック装置に通知し、
前記干渉物設定部は、前記ノード情報を取得し、前記干渉物を、形状、選択ノード、ノード上での位置及び/又は姿勢で設定し、
前記変換情報計算部は、前記干渉物設定部で設定された前記干渉物に係る情報を取得し、前記選択ノードの位置及び/又は姿勢の計算式を導出し、
前記干渉物位置姿勢計算部は、前記選択ノードの位置及び/又は姿勢を前記産業用機械の各軸の座標値から計算し、前記選択ノードの位置及び/又は姿勢と、前記干渉物の前記選択ノード上の位置及び/又は姿勢から、
前記産業用機械における前記干渉物の位置及び/又は姿勢を計算し、
あるノードの変化が他のノードに互いに影響し合うような機構については、変換マトリクスを持つ1つのユニットとして捉え、このユニットを前記グラフ形式に挿入することにより表現し、
前記干渉チェック部は、前記干渉物の位置及び/又は姿勢を元に、干渉の有無をチェックする、制御システム。
【請求項2】
前記機械構成管理装置及び前記干渉チェック装置のうち少なくとも1が、前記制御装置に組み込まれて一体化している、請求項1に記載の制御システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御システムに関する。
【背景技術】
【0002】
数値制御装置における干渉チェックでは、工作機械において、工具と干渉物とが干渉するか否かをチェックするため、干渉物に係る情報の設定を行う必要がある。干渉物に係る情報の設定においては、干渉物の形状、干渉物の位置の定義、軸移動に対して干渉物がどう動作するかの定義を行う。
【0003】
三次元空間データを使用した干渉チェックに係る技術としては、例えば、工作機械の工具、ワーク等の各部を三次元表現法による三次元空間データで表現し、三次元空間データの各構成要素に対して加工可能属性、あるいは加工不可能属性を個別に付加し、三次元空間データを使用した干渉チェックにおいて、加工可能属性を付加されたもの同士の干渉時のみそれを許容し、それ以外の干渉時には回避すべき衝突と判定する技術がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、干渉チェックにおける干渉物の位置や軸に関する動作定義としては、例えば、各直線軸の軸番号、各回転軸の軸番号、各回転軸の回転中心軸方向、各回転軸の傾角、各回転軸の回転中心軸位置、各回転軸の回転方向等を定義する必要があり、面倒であった。
【0006】
簡便な作業で、干渉チェックにおける干渉物の位置や軸に関する動作定義を可能とすることが望まれている。
【課題を解決するための手段】
【0007】
本開示の一態様は、制御システムであって、制御対象としての産業用機械を制御する制御装置と、前記産業用機械を構成する機械構成要素をノードとするグラフ形式で表現し、ノード情報通知部と、変換情報計算部とを備える機械構成管理装置と、各機械構成要素間の干渉チェックを行い、干渉物設定部と、干渉物位置姿勢計算部と、干渉チェック部とを備える干渉チェック装置とを備え、前記ノード情報通知部は、干渉物となる機械構成要素を含む選択可能なノードを特定し、特定されたノードに係るノード情報を前記干渉チェック装置に通知し、前記干渉物設定部は、前記ノード情報を取得し、前記干渉物を、形状、選択ノード、ノード上での位置及び/又は姿勢で設定し、前記変換情報計算部は、前記干渉物設定部で設定された前記干渉物に係る情報を取得し、前記選択ノードの位置及び/又は姿勢の計算式を導出し、前記干渉物位置姿勢計算部は、前記選択ノードの位置及び/又は姿勢を前記産業用機械の各軸の座標値から計算し、前記選択ノードの位置及び/又は姿勢と、前記干渉物の前記選択ノード上の位置及び/又は姿勢から、前記工作機械における前記干渉物の位置及び/又は姿勢を計算し、前記干渉チェック部は、前記干渉物の位置及び/又は姿勢を元に、干渉の有無をチェックする、制御システムである。
【発明の効果】
【0008】
一態様によれば、簡便な作業で、干渉チェックにおける干渉物の位置や軸に関する動作定義が可能となる。
【図面の簡単な説明】
【0009】
【
図1】本発明の実施形態全体の基本的構成を示すブロック図である。
【
図2】本発明の実施形態に係る機械構成管理装置100の機能ブロック図である。
【
図3】本発明の実施形態に係る制御装置150の機能ブロック図である。
【
図4】本発明の実施形態に係る干渉チェック装置200の機能ブロック図である。
【
図5】本発明の実施形態における機械構成木の生成方法の説明図である。
【
図6】本発明の実施形態における機械構成木の生成方法の説明図である。
【
図7】本発明の実施形態における機械構成木の生成方法の説明図である。
【
図8】本発明の実施形態における機械構成木の生成方法を示すフローチャートである。
【
図9A】本発明の実施形態における機械の構成要素の親子関係の説明図である。
【
図9B】本発明の実施形態における機械の構成要素の親子関係の説明図である。
【
図10A】ユニットを機械構成木に挿入する方法の説明図である。
【
図10B】ユニットを機械構成木に挿入する方法の説明図である。
【
図10C】ユニットを機械構成木に挿入する方法の説明図である。
【
図11】本発明の実施形態に係る機械構成の例を示す図である。
【
図12A】機械構成木の生成対象となる機械の例を示す図である。
【
図12B】機械構成木の生成対象となる機械に対応する機械構成木の例を示す図である。
【
図13】本発明の実施形態において、機械の各ノードに座標系及び制御点が挿入された例を示す図である。
【
図14】本発明の実施形態における、座標系及び制御点が挿入された機械構成木の例を示す図である。
【
図15A】本発明の実施形態において、各ノードにオフセット及び姿勢マトリクスが挿入される機械の例を示す図である。
【
図15B】本発明の実施形態において、機械の各ノードにオフセット及び姿勢マトリクスが挿入された例を示す図である。
【
図16】本発明の実施形態において、機械構成木に制御点を挿入する動作フローを示す図である。
【
図17】本発明の実施形態における、座標系及び制御点が挿入された機械構成木の例を示す図である。
【
図18】本発明の実施形態において、変換情報を生成する際に用いる情報の例を示す図である。
【
図19】本発明の実施形態において、変換情報を生成する際に用いる情報の例を示す図である。
【
図20】本発明の実施形態に係る、干渉チェック方法の動作フローを示す図である。
【
図21A】本発明の実施形態の実施例を示す図である。
【
図21B】本発明の実施形態の実施例を示す図である。
【
図21C】本発明の実施形態の実施例を示す図である。
【発明を実施するための形態】
【0010】
<1.制御システムの構成>
次に、本発明の実施形態について図面を参照して詳細に説明する。まず、
図1を参照して本実施形態全体の構成について説明をする。
【0011】
本実施形態に係る制御システム10は、機械構成管理装置100、制御装置150、干渉チェック装置200、及び工作機械300を備える。
【0012】
機械構成管理装置100は、本実施形態特有の装置であり、工作機械300の各構成要素をノードとするグラフ(以下、機械構成木とも表記)を作成し、このグラフによって機械構成を管理することにより、後述の干渉チェック装置200が、この機械構成木に基づく機械構成のデータを利用した干渉チェックをすることが可能となる。
【0013】
より具体的には、機械構成管理装置100は、後述の<5.機械構成木の生成>に記載の方法により、工作機械300の構成を表現する機械構成木を生成する。機械構成木は各ノード相互の位置関係情報を有するため、機械構成木上に、干渉物を含むことで、後述の干渉チェック装置200において、機械構成木上の全てのノードについて、干渉物の位置/姿勢の関係が分かる。
機械構成管理装置100の詳細な構成については、
図2を参照して後述する。
【0014】
制御装置150は、一般的な制御装置としての機能と、機械構成管理装置100との通信を行う機能とを備える装置である。制御装置150は、工作機械300と通信可能に接続されている。そして、制御装置150は、制御装置150自身に組み込まれた加工プログラムに基づいて出力される各制御軸の移動量により工作機械300を制御して、ワークを加工する。
【0015】
また、制御装置150は、干渉チェック装置200に対しても加工プログラムに基づいて出力される各制御軸の移動量を出力する。
このように、制御装置150は、機械構成管理装置100と工作機械300との双方に対して移動量を出力する。この点、制御装置150から機械構成管理装置100に対しての移動量の出力は、制御装置150から工作機械300に対しての移動量の出力に同期して行われてもよいし、非同期に送られてもよい。
制御装置150の詳細な構成については、
図3を参照して後述する。
【0016】
干渉チェック装置200は、本実施形態特有の装置であり、機械構成木上での干渉物の位置及び/又は姿勢を算出することにより、適切に干渉チェックするための制御を行う。
干渉チェック装置200の詳細な構成については、
図4を参照して後述する。
【0017】
工作機械300は、一般的な工作機械であり、制御装置150から出力される各制御軸の移動量に応じて各制御軸を移動・回転させる。
【0018】
本実施形態では、このような構成により、干渉チェックにおいて、工作機械300における干渉物の位置や軸に対する動作定義が容易となる。
【0019】
なお、
図1に示した構成はあくまで一例である。例えば、機械構成管理装置100の機能の一部又は全部を制御装置150に搭載するようにしてもよい。また、干渉チェック装置200の機能の一部又は全部を制御装置150に搭載するようにしてもよい。また、干渉チェック装置200は、単独の装置により実現してもよいが複数の装置の組み合わせにより実現してもよい。また、干渉チェック装置200は、制御装置150や工作機械300の近傍に設置されている装置により実現してもよいが、制御装置150や工作機械300とネットワークを介して遠距離に設置されているサーバ装置等で実現してもよい。更に、各通信接続は有線接続であっても無線接続であってもよい。例えば、図中では、機械構成管理装置100、制御装置150、及び干渉チェック装置200の通信接続がイーサネット(登録商標)(Ethernet)に準拠して有線接続により行われる例を記載しているが、かかる接続は無線接続であってもよい。
【0020】
<2.機械構成管理装置の構成>
図2は、機械構成管理装置100の機能ブロック図である。
機械構成管理装置100は、制御部110と記憶部120とを備え、制御部110は、グラフ生成部111、制御点座標系挿入部113、ノード情報通知部114、変換情報計算部115、及び変換情報通知部116を備え、グラフ生成部111は、ノード追加部112を備える。
【0021】
制御部110は、機械構成管理装置100を全体的に制御するプロセッサである。この制御部110は、ROM(不図示)に格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、該システムプログラム及びアプリケーションプログラムに従って、制御部110が備えるグラフ生成部111、ノード追加部112、制御点座標系挿入部113、ノード情報通知部114、変換情報計算部115、変換情報通知部116の機能を実現する。
【0022】
グラフ生成部111は、工作機械300の機械構成をグラフ形式で生成する。更に、グラフ生成部111が有するノード追加部112は、生成したグラフにノードを追加する。それらの詳細な動作については、以下の「5.機械構成木の生成」で詳述する。
【0023】
制御点座標系挿入部113は、機械構成のグラフに対し、制御点及び座標系を挿入する。その詳細な動作については、以下の「6.制御点と座標値の自動挿入」で詳述する。
【0024】
ノード情報通知部114は、干渉チェック装置200に対し、干渉物を乗せるノードとして選択可能なノードの情報を通知する。
【0025】
変換情報計算部115は、後述のように、干渉チェック装置200の選択ノード通知部212から、選択ノードを通知された後、上記のグラフを元に、どのノードが各軸の座標値でどう動くか、各軸の座標値を変数として含む変換情報であって、各ノードの位置及び/又は姿勢を計算するための変換情報を計算する。
なお、上記の変換情報は、マトリクス形式であってもよく、ベクトル形式であってもよく、ロール・ピッチ・ヨー形式であってもよい。その詳細な動作については、以下の「7.変換情報の計算」で詳述する。
【0026】
変換情報通知部116は、変換情報計算部115が計算した変換情報を、干渉チェック装置200の座標情報変換部213に通知する。
【0027】
記憶部120は、グラフ生成部111によって生成された機械構成木に係る情報を記憶する。
【0028】
なお、グラフ生成部111、ノード情報通知部114、変換情報計算部115、変換情報通知部116、記憶部120の詳細な動作については、以下の「7.変換情報の計算」、「8.干渉チェックの方法」で詳述する。
【0029】
<3.制御装置の構成>
図3は、制御装置150の機能ブロック図である。
制御装置150は、制御部160を備え、制御部160は、座標情報通知部161と、サーボモータ制御部162をと備える。
【0030】
制御部160は、制御装置150を全体的に制御するプロセッサである。この制御部160は、ROM(不図示)に格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、該システムプログラム及びアプリケーションプログラムに従って、制御部160が備える座標情報通知部161、及びサーボモータ制御部162の機能を実現する。
【0031】
座標情報通知部161は、稼働中の工作機械300の座標情報を、干渉チェック装置200の座標情報変換部213に通知する。
サーボモータ制御部162は、制御部160からの各軸の移動指令量を受けて、各軸の指令をサーボモータ(不図示)に出力する。
【0032】
なお、制御装置150は、工作機械300を制御するために、通常の制御装置が備えるその他の構成要素も備えるが、その説明は省略する。
【0033】
<4.干渉チェック装置の構成>
図4は、干渉チェック装置200の機能ブロック図である。
干渉チェック装置200は、制御部210と、記憶部220とを備え、制御部210は、干渉物設定部211、選択ノード通知部212、座標情報変換部213、干渉物位置姿勢計算部214、及び干渉チェック部215を備える。
【0034】
制御部210は、干渉チェック装置200を全体的に制御するプロセッサである。この制御部210は、ROM(不図示)に格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、該システムプログラム及びアプリケーションプログラムに従って、制御部210が備える干渉物設定部211、選択ノード通知部212、座標情報変換部213、干渉物位置姿勢計算部214、及び干渉チェック部215の機能を実現する。
【0035】
干渉物設定部211は、干渉物の形状、干渉物が乗せられる選択ノード、及び選択ノード上での干渉物の位置及び/又は姿勢を設定する。例えば、干渉物設定部211は、これらの情報を同次マトリクスを用いて設定することが可能である。
【0036】
選択ノード通知部212は、干渉物設定部211が設定した選択ノードを機械構成管理装置100の変換情報計算部115に通知する。
【0037】
座標情報変換部213は、機械構成管理装置100から受け取った変換情報を元に、制御装置150から定期的に受け取る各制御軸の座標値から、干渉物の選択ノードの位置及び/又は姿勢を計算する。
【0038】
干渉物位置姿勢計算部214は、選択ノードの位置及び/又は姿勢と、干渉物の選択ノード上の位置及び/又は姿勢から、工作機械300における干渉物の位置及び/又は姿勢を計算する。
【0039】
干渉チェック部215は、各干渉物の位置及び/又は姿勢を元に、干渉の有無をチェックする。
【0040】
記憶部220は、機械構成管理装置100のグラフ生成部111によって生成されたグラフに係る情報、及び、干渉物設定データとして、干渉物の形状データ、選択ノードに係るデータ、及び、選択ノード上での干渉物の位置及び/又は姿勢に係るデータを記憶する。
【0041】
なお、干渉物設定部211、選択ノード通知部212、座標情報変換部213、干渉物位置姿勢計算部214、及び干渉チェック部215、及び記憶部220の詳細な動作については、以下の「8.干渉チェックの方法」で詳述する。
【0042】
<5.機械構成木の生成>
本発明の実施形態に係る機械構成管理装置100は、最初に、機械構成を表すグラフを生成する。グラフの一例として機械構成木を生成する生成方法について、
図5~
図11を参照しながら詳述する。
【0043】
例として、
図5に示す機械の構成を表現する機械構成木の生成方法について説明する。
図5の機械においては、Z軸に対して垂直にX軸が設定され、X軸には工具1が設置され、Z軸には工具2が設置されているとする。一方で、Y軸上にB軸が設定され、B軸上にC軸が設定され、C軸にはワーク1とワーク2が設置されているとする。この機械構成を機械構成木として表現する方法は、以下の通りである。
【0044】
まず、
図6に示すように、原点201とノード202A~202Iのみを配置する。この段階では、原点201とノード202、及びノード202間でのつながりは持たず、原点及びノードの各々の名称も設定されていない。
【0045】
次に、各軸の軸名称(軸型)、各工具の名称、各ワークの名称、各原点の名称、各軸の物理軸番号(軸型)を設定する。次に、各軸の親ノード(軸型)、各工具の親ノード、各ワークの親ノードを設定する。最後に、各軸の交叉オフセット(軸型)、各工具の交叉オフセット、各ワークの交叉オフセットを設定する。その結果、
図7に示す機械構成木が生成される。
【0046】
なお、機械構成木の各ノードは、上記の各情報に限られず、例えば、識別子(名称)、自身の親ノードの識別子、自身を親とする全ての子ノードの識別子、親ノードに対する相対オフセット(交叉オフセット)、親ノードに対する相対座標値、親ノードに対する相対移動方向(単位ベクトル)、ノード種別(直線軸/回転軸/ユニット(後述)/制御点/座標系/原点等)、物理軸番号、直交座標系と物理座標系の変換式に係る情報を有してもよく、あるいは、有さなくてもよい。
【0047】
このように各ノードに値を設定していくことにより、機械構成管理装置100内に機械構成木状のデータ構造を有するデータを生成する。更に、別の機械(又はロボット)を追加する場合も、原点を追加し、更にノードを追加することができる。
【0048】
上記の機械構成木生成方法、とりわけ各ノードへの各値の設定方法を一般化したフローチャートを
図8に示す。
【0049】
ステップS11において、グラフ生成部111は、ノードに対して設定するパラメータの値を受け取る。
ステップS12において、設定されたパラメータの項目が「自身の親ノード」の場合(S12:YES)には、処理はステップS13に移行する。「自身の親ノード」ではない場合(S12:NO)には、処理はステップS17に移行する。
【0050】
ステップS13において、パラメータが設定されるノードに、既に親ノードが設定されている場合(S13:YES)には、処理はステップS14に移行する。親ノードが設定されていない場合(S13:NO)には、処理はステップS15に移行する。
【0051】
ステップS14において、グラフ生成部111は、パラメータが設定されるノードの、現在の親ノードが持つ「子ノード」の項目から、自身の識別子を削除し、機械構成木を更新する。
【0052】
ステップS15において、グラフ生成部111は、パラメータを設定するノードの該当項目に値を設定する。
【0053】
ステップS16において、グラフ生成部111は、親ノードに対し、「子ノード」の項目に自身の識別子を追加し、機械構成木を更新した後、フローを終了する。
【0054】
ステップS17において、グラフ生成部111は、パラメータを設定するノードの該当項目に値を設定した後、フローを終了する。
【0055】
上記の機械構成木状のデータ構造を有するデータの生成方法を用いることにより、機械の構成要素同士の親子関係を設定することが可能である。
ここで親子関係とは、例えば
図9Aのように、2つの回転軸ノード504、505があったとき、一方のノード504の座標値の変化が、他方のノード505の幾何的状態(典型的には、位置・姿勢)に対して一方的に影響を及ぼすような関係のことである。この場合ノード504、505は親子関係にあると呼び、ノード504を親、ノード505を子と呼ぶ。
しかし、例えば
図9Bに示すように、2つの直線軸ノード502、503と4つのフリージョイント501により構成された機械構成においては、ノード502、503の一方の座標値(長さ)が変わることにより、他方の幾何的状態だけでなく、自身の幾何的状態も変わるような、相互に影響を及ぼす機構が存在する。このような場合は、互いに親であり子、すなわち親子関係が双方向であるとみなすことができる。
【0056】
このように、あるノードの変化が他のノードに互いに影響し合うような機構については、利便性の観点から、1つのユニットとして捉え、このユニットを機械構成木に挿入することにより全体の機械構成木を生成する。ユニットは、
図10Aのように二つの接続点510及び接続点520を持っており、ユニットが
図10Bのように機械構成木に挿入された場合、
図10Cのように、親ノードは接続点520に接続され、また、子ノードは接続点510に対して接続される。また、ユニットは、接続点520から接続点510への変換マトリクスを持っている。この変換マトリクスは、ユニットに含まれる各ノードの座標値によって表される。例えば
図11のような機械構成の場合、接続点520における位置・姿勢を表す同次マトリクスをM
Aとし、接続点510における位置・姿勢を表す同次マトリクスをM
Bとすると、それらのマトリクス間の変換式はユニットに含まれる各直線軸ノードの座標値x
1、x
2を用いて以下のように表される。
【数1】
【0057】
この機械構成を表すユニットは上記の[数1]の数式中のTのような同次変換マトリクスを持つ。同次マトリクスとは、以下の[数2]の数式のように位置・姿勢をまとめて表現できる4×4マトリクスのことである。
【数2】
【0058】
また、親子関係が相互でない場合であっても、計算処理や設定を簡単にするために、ある複数のノードを予め1つにまとめたユニットを定義し、機械構成木中に構成してもよい。
【0059】
上記のように、本実施形態においては、機械構成のグラフは、複数の軸をまとめて1つにしたユニットを構成要素として含むことができる。
【0060】
<6.制御点と座標値の自動挿入>
機械構成上の様々な位置を、制御点として指定すると共に、機械構成上の様々な箇所の座標系を設定するため、上記の「5.機械構成木の生成」で生成された機械構成木を用いて、以下の方法を実施する。
【0061】
例えば、
図12Aに示すロータリインデックスマシン350においては、Z1軸に対して垂直にX1軸が設定され、X1軸に工具1が設置されている。また、Z2軸に対して垂直にX2軸が設定され、X2軸上に工具2が設置されている。更に、テーブルにおいては、C軸上にC1軸とC2軸が並列に設定され、C1軸とC2軸の各々にワーク1とワーク2が設置されているとする。この機械構成を機械構成木で表わすと、
図12Bに示す機械構成木となる。
【0062】
各ワークから機械原点に連なる一連のノードを例に取ると、
図13に示すように、機械原点、C軸、C1軸、C2軸、ワーク1、ワーク2の各々に座標系と制御点を自動挿入する。これを、テーブルに対してのみならず、各工具から機械原点に連なる一連のノード、すなわちX1軸、X2軸、Z1軸、Z2軸、工具1、工具2のすべてに対して実施する。その結果、
図14に示すように、機械構成木を構成するすべてのノードに対して、各々に対応する制御点と座標系が自動挿入される。通常、加工を行う場合にはワークに座標系、工具を制御点として指定する。これにより、例えば、ワーク自身を所定の位置へ移動させるために、ワークに制御点を指定したい場合や、ある工具で別の工具を研磨するために、工具自身に座標系を設定したい場合といった様々な場合に対応することも可能となる。
【0063】
また、
図15Aに示すように、各制御点及び座標系は、オフセットを有する。そのため、ノード中心から離れた点を制御点や座標系原点にすることも可能である。更に、各制御点及び座標系は姿勢マトリクスを持つ。この姿勢マトリクスは、制御点の姿勢マトリクスである場合、制御点の姿勢(向き、傾き)を表し、座標系の姿勢マトリクスの場合、座標系の姿勢を表わす。
図15Bに示す機械構成木においては、オフセット及び姿勢マトリクスは、各々が対応するノードに紐づく形で表現される。更に、各制御点及び座標系は、機械構成木のルートまでの経路上に存在するノードの「移動」及び「交叉オフセット」それぞれを加味するか/しないかの情報を持っており、それらを設定できる。
【0064】
上記の制御点の自動挿入方法を一般化したフローチャートを
図16に示す。このフローチャートは、詳細には、チャートAとチャートBとを含み、後述のように、チャートAの途中でチャートBが実行されるという構成となっている。
【0065】
まず、チャートAについて説明する。
ステップS21において、グラフ生成部111は、機械構成木を設定する。
ステップS22において、チャートBを実行し、チャートAのフローを終了する。
【0066】
次に、チャートBについて説明する。
チャートBのステップS31において、ノードは制御点・座標系を挿入済である場合(S31:YES)には、フローを終了する。ノードに制御点・座標系を挿入済でない場合(S31:NO)には、処理はステップS32に移行する。
【0067】
ステップS32において、制御点座標系挿入部113は、ノードに制御点・座標系を挿入し、変数nを1つスタックする。また、n=1とする。
【0068】
ステップS33において、ノードにn番目の子ノードが存在する場合(S33:YES)には、処理はステップS34に移行する。ノードにn番目の子ノードが存在しない場合(S33:NO)には、処理はステップS36に移行する。
【0069】
ステップS34において、n番目の子ノードについて、チャートB自身を再帰的に実行する。
【0070】
ステップS35において、nを1だけインクリメントする。すなわちn=n+1とし、処理はステップS33に戻る。
【0071】
ステップS36において、変数nを1つポップし、チャートBのフローを終了する。
【0072】
上記の方法により、制御点座標系挿入部113は、機械構成のグラフの各ノードに対し、制御点及び座標系をノードとして挿入する。なお、上記では、制御点及び座標系をノードとして追加する場合の実施例を示したが、
図17に示すように、制御点座標系挿入部113は、機械構成のグラフの各ノードに対し、制御点及び座標系を情報として持たせる実施形態も同様に可能である。
【0073】
<7.変換情報の計算>
上記のように、変換情報計算部115は、機械構成管理装置100によって生成された機械構成木を元に、この機械構成木上のノードが、各軸の座標値を用いてどのように動くか、各軸の座標値を変数として含む変換情報であって、各ノードの位置及び/又は姿勢を計算するための変換情報を計算する。この変換情報の計算方法について、
図18~
図19を参照して詳述する。
【0074】
例えば、
図18に示すように、軸x
1の上に軸x
2が設定され、軸x
2の上に軸x
3が設定され、以下同様にN個のノードが連なり、その末端が軸x
Nであるとする。更に、軸x
N上の制御点ノードを干渉物を設置する選択ノードとする。同様に、軸y
1の上に軸y
2が設定され、軸y
2の上に軸y
3が設定され、以下同様にL個のノードが連なり、その末端が軸y
Lであるとする。ここで、x
i,y
jはノード名称だが、同時に各ノードの座標値も表わすこととする。
【0075】
更に、各ノードには
図18に示すオフセット、ノード種別(直線/回転/ユニット/制御点/座標系)、軸方向、姿勢マトリクス、座標値が与えられているとする。
【0076】
この時、
図19に示すように、ルート(機械原点)に対する選択ノードの現在位置・姿勢を表す同次マトリクスM
objは、以下の式で求められる。
【数3】
ただし、記号の意味は、以下の通りである。
S
xi:各ノードによる同次変換マトリクス;
N:機械構成木のルートから選択ノードまで連なる一連のノード個数;
M
ctrl:選択ノードの親ノードに対する相対オフセット・姿勢の同次マトリクスであり、選択ノードに定義されたオフセットベクトル・姿勢マトリクスから、上記の[数2]に従って定義される。
【0077】
同次変換マトリクスS
xiはノードの種別によって変わり、例えば、直線軸の場合は以下のように表される。
【数4】
ただし、記号の意味は、以下の通りである。
x
i:ノードx
iの座標値;
ofs
xi:ノードx
iの親ノードに対する相対オフセットベクトル;
v
xi:ノードx
iの移動方向ベクトル
【0078】
また、回転軸の場合は以下のように表される。
【数5】
ただし、記号の意味は、以下の通りである。
v
1:ノードx
iの回転軸方向ベクトルの第1成分;
v
2:ノードx
iの回転軸方向ベクトルの第2成分;
v
3:ノードx
iの回転軸方向ベクトルの第3成分
【0079】
この時、選択ノードの現在位置・姿勢を表す同次マトリクスX
mは、M
objを用いて以下の式で求められる。
【数6】
ただし、記号の意味は、以下の通りである。
L:機械構成木のルートから座標系まで連なる一連のノード個数;
M
coord:親ノードに対する相対オフセット・姿勢の同次マトリクスであり、座標系に定義されたオフセットベクトル・姿勢マトリクスから、上記の[数2]の数式に従って定義される。
【0080】
<8.干渉チェックの方法>
図20は、仮想オブジェクトを表示する際の動作フローを示す。
【0081】
ステップS41において、ノード情報通知部114は、干渉物を乗せるノードとして選択可能なノードを、干渉チェック装置200の干渉物設定部211に通知する。
【0082】
ステップS42において、干渉物設定部211は、干渉物の形状、干渉物を乗せる選択ノード、選択ノード上での干渉物の位置・姿勢に係る情報を用いて、干渉物を設定する。
【0083】
ステップS43において、選択ノード通知部212は、干渉物設定部211によって設定された選択ノードを、機械構成管理装置100の変換情報計算部115に通知する。
【0084】
ステップS44において、変換情報計算部115は、各選択ノードの位置・姿勢の計算式として、工作機械300の各軸の座標値を変数として含む同次マトリクスを導出する。
【0085】
ステップS45において、干渉物位置姿勢計算部214は、各軸の座標値から選択ノードの位置・姿勢を計算する。
【0086】
ステップS46において、干渉物位置姿勢計算部214は、選択ノードの位置・姿勢と、選択ノード上での干渉物の位置・姿勢から、工作機械300における干渉物の位置・姿勢を計算する。
【0087】
ステップS47において、干渉チェック部215は、各干渉物の位置・姿勢を元に干渉の有無をチェックする。
【0088】
<9.実施例>
図21A~
図21Cを参照することにより、本実施形態の実施例について説明する。
図21Aは、工作機械300の例として、工具1の先端に干渉物Aが設置された工作機械300Aの図である。
図21Bは、
図21Aに示される工作機械300Aをグラフを用いて表示した機械構成木を示す。
図21Cは、
図21Aの点線内に示される、工具1ノードと干渉物Aの拡大図であって、工具1ノードの座標系における干渉物の図を示す。
【0089】
図21Aにおいて、干渉物Aは、工具1に連れ回って動くので、干渉物設定部211は、
図21Bに示す工具1ノードを選択ノードして選択する。
【0090】
更に、
図20のステップS42において、干渉物設定部211は、干渉物Aの位置及び/又は姿勢を、
図21Cに示す工具1ノードの座標系上で設定する。
【0091】
以降、
図20のステップS43~S47を実行することにより、干渉チェック装置200で干渉物Aによる干渉の有無をチェックする。
【0092】
<10.本実施形態のもたらす効果>
本実施形態により、簡便な作業で、干渉チェックにおける干渉物の位置や軸に関する動作定義が可能となる。とりわけ、本実施形態においては、選択ノードを設定し、選択ノード上での干渉物の位置・姿勢を算出するのみで、干渉チェックにおける干渉物の位置や軸に関する動作定義が可能となる。
【0093】
<11.変形例>
また、機械構成管理装置100は、制御装置150に組み込まれて一体化されていてもよい。あるいは、機械構成管理装置100は、クラウド上に存在してもよい。
【0094】
なお、上記の機械構成管理装置、制御装置、干渉チェック装置、及び工作機械のそれぞれは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の機械構成管理装置、制御装置、干渉チェック装置、及び工作機械の協働により行われる干渉チェック方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【0095】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(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(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0096】
10 制御システム
100 機械構成管理装置
110 制御部
111 グラフ生成部
112 ノード追加部
113 制御点座標系挿入部
114 ノード情報通知部
115 変換情報計算部
116 変換情報通知部
120 記憶部
150 制御装置
160 制御部
161 座標情報通知部
162 サーボモータ制御部
200 干渉チェック装置
211 干渉物設定部
212 選択ノード通知部
213 座標情報変換部
214 干渉物位置姿勢計算部
215 干渉チェック部
220 記憶部
300 工作機械