(57)【要約】【課題】簡易な手法で、仮想オブジェクトを表示する。【解決手段】グラフ生成部１１１は、制御対象の機械構成を、カメラを含む構成要素をノードとする、グラフを生成し、ノード選択部２１１は、仮想オブジェクトを表示したいノードを選択し、選択ノード通知部２１２は、仮想オブジェクトを表示したいノードを機械構成管理装置１００に通知し、変換情報計算部１１５は、カメラノードから表示対象のノードへのグラフにおける経路上の制御軸ノードの座標値を変数として含む変換情報であって、グラフを元に、カメラノードの座標系における表示対象のノードの位置及び／又は姿勢を計算するための変換情報を計算し、変換情報通知部１１６は、変換情報を拡張情報制御装置に通知し、座標情報変換部２１３は、通知された各制御軸の座標値を、カメラノードの座標系における表示対象の各ノードの位置及び／又は姿勢に変換する。【選択図】図１
2019212041.tif 000002
【特許請求の範囲】
【請求項１】
機械構成管理装置と拡張情報制御装置とを備え、前記機械構成管理装置は、グラフ生成部と、制御点座標系挿入部と、ノード情報通知部と、変換情報計算部と、変換情報通知部とを備え、前記拡張情報制御装置は、ノード選択部と、選択ノード通知部と、座標情報変換部とを備える、仮想オブジェクト表示システムであって、
前記グラフ生成部は、制御対象の機械構成を、カメラを含む構成要素をノードとする、グラフを生成し、
前記制御点座標系挿入部は、前記グラフに制御点及び座標系を挿入し、
前記ノード情報通知部は、表示可能なノード情報を前記拡張情報制御装置に通知し、
前記ノード選択部は、仮想オブジェクトを表示したいノードを選択し、
前記選択ノード通知部は、仮想オブジェクトを表示したいノードを前記機械構成管理装置に通知し、
前記変換情報計算部は、カメラノードから表示対象のノードへの前記グラフにおける経路上の制御軸ノードの座標値を変数として含む変換情報であって、前記グラフを元に、カメラノードの座標系における表示対象のノードの位置及び／又は姿勢を計算するための変換情報を計算し、
前記変換情報通知部は、前記変換情報を前記拡張情報制御装置に通知し、
前記座標情報変換部は、前記変換情報を用いて、通知された各制御軸の座標値を、カメラノードの座標系における表示対象の各ノードの位置及び／又は姿勢に変換する、仮想オブジェクト表示システム。
【請求項２】
表示装置を更に備え、
前記拡張情報制御装置は、前記座標情報変換部が変換した、カメラノードの座標系における表示対象の各ノードの位置及び／又は姿勢に基づいて、仮想オブジェクトを拡張情報として前記表示装置で計算するための拡張情報表示用データを計算する拡張情報表示用データ計算部と、前記拡張情報表示用データを前記表示装置に通知する、拡張情報表示用データ通知部とを更に備える、請求項１に記載の仮想オブジェクト表示システム。
【請求項３】
前記座標情報変換部は、数値制御装置から受け取った座標値を、前記各制御軸の座標値として、カメラノードの座標系における、表示対象の各ノードの位置及び／又は姿勢に変換する、請求項１又は２に記載の仮想オブジェクト表示システム。
【請求項４】
前記拡張情報制御装置は、前記グラフのデータを有する記憶部を更に備える、請求項１〜３のいずれか１項に記載の仮想オブジェクト表示システム。
【請求項５】
前記グラフのデータを格納するサーバを更に備える、請求項１〜４のいずれか１項に記載の仮想オブジェクト表示システム。
【請求項６】
前記機械構成管理装置は、工作機械の数値制御装置と一体化されている、請求項１〜５のいずれか１項に記載の仮想オブジェクト表示システム。
【請求項７】
前記機械構成管理装置は、クラウド上に存在する、請求項１〜５のいずれか１項に記載の仮想オブジェクト表示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張現実（ＡＲ（Augmented Reality））や複合現実（ＭＲ（Mixed Reality））の技術を用いてシミュレーションを行うための、仮想オブジェクト表示システムに関する。
【背景技術】
【０００２】
従来、数値制御装置により制御される工作機械の分野では、ＣＡＤ（computer-aided design）等でワークや治具を設計する。また、設計した治具を用いてワークを加工するための加工プログラムを作成する。
そして、数値制御装置が加工プログラムに基づいて工作機械を制御することにより、ワークの加工が実現される。
【０００３】
ここで、設計した治具やワーク、及び加工プログラムを実際に製造ラインに載せる前に、これらが適切であるかを確認するために加工シミュレーションを行うことが一般的である。
【０００４】
この加工シミュレーションを、実際の機械による動作確認で行う場合、当然のことながら実物の治具が完成するまでは加工シミュレーションは行えない。従って、治具が完成するまで工程が停滞するという問題が発生する。
【０００５】
また、治具完成後の動作確認時に干渉等の問題が見つかり、治具の設計変更が必要になった場合には、工程が更に延びてしまう。また、治具の設計変更のための費用も発生してしまう。仮に、治具の設計変更をしない場合には、加工プログラムの変更が必要となるが、この場合には加工に要するサイクルタイムが当初よりも延びるおそれがある。
【０００６】
これらの問題を考慮して、実際の機械により動作確認を行うのではなく、パーソナルコンピュータ等の演算処理により、仮想的に加工シミュレーションを行う技術が存在する。
例えば、特許文献１に開示の技術では、工作機械における構造を全て仮想オブジェクト化して、加工シミュレーションを行う。
【０００７】
しかしながら、特許文献１に開示の技術では、ワークや治具の仮想オブジェクトを作成するだけでなく、複数種類の工作機械それぞれについて機械全体の仮想オブジェクトを作成する必要があった。また、実際の工作機械の動作を再現するために、工作機械の可動部分の仮想オブジェクトに動作処理を実装する必要もあった。つまり、仮想オブジェクトの作成が容易ではないという問題があった。
【０００８】
更に、このように仮想オブジェクトを作成したとしても、仮想オブジェクトの再現度が低い場合には、現実との差異が生じてしまうという問題があった。
【０００９】
このような仮想オブジェクトに関する問題を鑑みた技術が、特許文献２に開示されている。特許文献２に開示の技術では、工作機械内部をカメラ画像で取得して、事前に登録してある工具保持部又はワーク保持部を特徴点として抽出する。そして、事前に登録した工具又はワークの仮想オブジェクトを、特徴点の位置に基づいて、実際に撮影した工作機械の画像にオーバレイ表示させる。このようにすれば、工作機械の仮想オブジェクトを作成する必要がなくなる。このように、現実空間に実在するオブジェクトに対して重ね合わせる情報を、以下では「拡張情報」と呼ぶ。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許４０８３５５４号明細書
【特許文献２】特許５３８４１７８号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、カメラの撮影方向を予め設定された方向に固定する必要があり、更に特徴点の抽出が必要になる。
【００１２】
そこで、本発明は、簡易な手法で、仮想オブジェクトを表示することが可能な、仮想オブジェクト表示システムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
（１）  本発明に係る仮想オブジェクト表示システム（例えば、後述の仮想オブジェクト表示システム１０）は、機械構成管理装置（例えば、後述の機械構成管理装置１００）と拡張情報制御装置（例えば、後述の拡張情報制御装置２００）とを備え、前記機械構成管理装置は、グラフ生成部（例えば、後述のグラフ生成部１１１）と、制御点座標系挿入部（例えば、後述の制御点座標系挿入部１１３）と、ノード情報通知部（例えば、後述のノード情報通知部１１４）と、変換情報計算部（例えば、後述の変換情報計算部１１５）と、変換情報通知部（例えば、後述の変換情報通知部１１６）とを備え、前記拡張情報制御装置は、ノード選択部（例えば、後述のノード選択部２１１）と、選択ノード通知部（例えば、後述の選択ノード通知部２１２）と、座標情報変換部（例えば、後述の座標情報変換部２１３）とを備える、仮想オブジェクト表示システムであって、前記グラフ生成部は、制御対象の機械構成を、カメラを含む構成要素をノードとする、グラフを生成し、前記制御点座標系挿入部は、前記グラフに制御点及び座標系を挿入し、前記ノード情報通知部は、表示可能なノード情報を前記拡張情報制御装置に通知し、前記ノード選択部は、仮想オブジェクトを表示したいノードを選択し、前記選択ノード通知部は、仮想オブジェクトを表示したいノードを前記機械構成管理装置に通知し、前記変換情報計算部は、カメラノードから表示対象のノードへの前記グラフにおける経路上の制御軸ノードの座標値を変数として含む変換情報であって、前記グラフを元に、カメラノードの座標系における表示対象のノードの位置及び／又は姿勢を計算するための変換情報を計算し、前記変換情報通知部は、前記変換情報を前記拡張情報制御装置に通知し、前記座標情報変換部は、前記変換情報を用いて、通知された各制御軸の座標値を、カメラノードの座標系における表示対象の各ノードの位置及び／又は姿勢に変換する。
【００１４】
（２）  （１）に記載の仮想オブジェクト表示システム（例えば、後述の仮想オブジェクト表示システム１０）は、表示装置（例えば、後述の表示装置３００）を更に備え、前記拡張情報制御装置（例えば、後述の拡張情報制御装置２００）は、前記座標情報変換部（例えば、後述の座標情報変換部２１３）が変換した、カメラノードの座標系における表示対象の各ノードの位置及び／又は姿勢に基づいて、仮想オブジェクトを拡張情報として前記表示装置で計算するための拡張情報表示用データを計算する拡張情報表示用データ計算部（例えば、後述の拡張情報表示用データ計算部２１４）と、前記拡張情報表示用データを前記表示装置に通知する、拡張情報表示用データ通知部（例えば、後述の拡張情報表示用データ通知部２１５）を備えてもよい。
【００１５】
（３）  （１）又は（２）に記載の仮想オブジェクト表示システム（例えば、後述の仮想オブジェクト表示システム１０）において、前記座標情報変換部（例えば、後述の座標情報変換部２１３）は、数値制御装置（例えば、後述の数値制御装置１５０）から受け取った座標値を、前記各制御軸の座標値として、カメラノードの座標系における、表示対象の各ノードの位置及び／又は姿勢に変換してもよい。
【００１６】
（４）  （１）〜（３）に記載の仮想オブジェクト表示システム（例えば、後述の仮想オブジェクト表示システム１０）において、前記拡張情報制御装置（例えば、後述の拡張情報制御装置２００）は、前記グラフのデータを有する記憶部（例えば、後述の記憶部２２０）を更に備えてもよい。
【００１７】
（５）  （１）〜（４）に記載の仮想オブジェクト表示システム（例えば、後述の仮想オブジェクト表示システム１０）は、前記グラフのデータを格納するサーバを更に備えてもよい。
【００１８】
（６）  （１）〜（５）に記載の仮想オブジェクト表示システム（例えば、後述の仮想オブジェクト表示システム１０）において、前記機械構成管理装置（例えば、後述の機械構成管理装置１００）は、工作機械（例えば、後述の工作機械４００）の数値制御装置（例えば、後述の数値制御装置１５０）と一体化されていてもよい。
【００１９】
（７）  （１）〜（５）に記載の仮想オブジェクト表示システム（例えば、後述の仮想オブジェクト表示システム１０）において、前記機械構成管理装置（例えば、後述の機械構成管理装置１００）は、クラウド上に存在してもよい。
【発明の効果】
【００２０】
本発明によれば、簡易な手法で、仮想オブジェクトを表示することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明の実施形態全体の基本的構成を示すブロック図である。
【図２】本発明の実施形態に係る機械構成管理装置１００の機能ブロック図である。
【図３】本発明の実施形態に係る数値制御装置１５０の機能ブロック図である。
【図４】本発明の実施形態に係る拡張情報制御装置２００の機能ブロック図である。
【図５】本発明の実施形態における機械構成木の生成方法の説明図である。
【図６】本発明の実施形態における機械構成木の生成方法の説明図である。
【図７】本発明の実施形態における機械構成木の生成方法の説明図である。
【図８】本発明の実施形態における機械構成木の生成方法を示すフローチャートである。
【図９Ａ】本発明の実施形態における機械の構成要素の親子関係の説明図である。
【図９Ｂ】本発明の実施形態における機械の構成要素の親子関係の説明図である。
【図１０Ａ】ユニットを機械構成木に挿入する方法の説明図である。
【図１０Ｂ】ユニットを機械構成木に挿入する方法の説明図である。
【図１０Ｃ】ユニットを機械構成木に挿入する方法の説明図である。
【図１１】本発明の実施形態に係る機械構成の例を示す図である。
【図１２Ａ】機械構成木の生成対象となる機械の例を示す図である。
【図１２Ｂ】機械構成木の生成対象となる機械に対応する機械構成木の例を示す図である。
【図１３】本発明の実施形態において、機械の各ノードに座標系及び制御点が挿入された例を示す図である。
【図１４】本発明の実施形態における、座標系及び制御点が挿入された機械構成木の例を示す図である。
【図１５Ａ】本発明の実施形態において、各ノードにオフセット及び姿勢マトリクスが挿入される機械の例を示す図である。
【図１５Ｂ】本発明の実施形態において、機械の各ノードにオフセット及び姿勢マトリクスが挿入された例を示す図である。
【図１６】本発明の実施形態において、機械構成木に制御点を挿入する動作フローを示す図である。
【図１７】本発明の実施形態における、座標系及び制御点が挿入された機械構成木の例を示す図である。
【図１８】本発明の実施形態において、変換情報を生成する際に用いる情報の例を示す図である。
【図１９】本発明の実施形態において、変換情報を生成する際に用いる情報の例を示す図である。
【図２０】本発明の実施形態に係る、仮想オブジェクト表示方法の動作フローを示す図である。
【図２１Ａ】本発明の実施形態の実施例を示す図である。
【図２１Ｂ】本発明の実施形態の実施例を示す図である。
【図２２Ａ】本発明の実施形態の実施例を示す図である。
【図２２Ｂ】本発明の実施形態の実施例を示す図である。
【発明を実施するための形態】
【００２２】
＜１．仮想オブジェクト表示システムの構成＞
次に、本発明の実施形態について図面を参照して詳細に説明する。まず、図１を参照して本実施形態全体の構成について説明をする。
【００２３】
本実施形態に係る仮想オブジェクト表示システム１０は、機械構成管理装置１００、数値制御装置１５０、拡張情報制御装置２００、表示装置３００、及び工作機械４００を備える。
【００２４】
機械構成管理装置１００は、本実施形態特有の装置であり、工作機械４００の各構成要素をノードとするグラフ（以下、機械構成木とも表記）を作成し、このグラフによって機械構成を管理することにより、後述の拡張情報制御装置２００が、この機械構成木に基づく機械構成のデータを利用した制御をすることが可能となる。
【００２５】
より具体的には、機械構成管理装置１００は、後述の＜５．機械構成木の生成＞に記載の方法により、工作機械４００の構成を表現する機械構成木を生成し、更に、カメラを機械構成木のノードとして追加登録する。機械構成木は各ノード相互の位置関係情報を有するため、機械構成木上に、ノードとしてカメラを含むことで、後述の拡張情報制御装置２００において、機械構成木上の全てのノードについて、カメラとの位置／姿勢の関係が分かる。
機械構成管理装置１００の詳細な構成については、図２を参照して後述する。
【００２６】
数値制御装置１５０は、一般的な数値制御装置としての機能と、機械構成管理装置１００との通信を行う機能とを備える装置である。数値制御装置１５０は、工作機械４００と通信可能に接続されている。そして、数値制御装置１５０は、数値制御装置１５０自身に組み込まれた加工プログラムに基づいて出力される各制御軸の移動量により工作機械４００を制御して、ワークを加工する。
【００２７】
また、数値制御装置１５０は、拡張情報制御装置２００に対しても加工プログラムに基づいて出力される各制御軸の座標値を出力する。
このように、数値制御装置１５０は、機械構成管理装置１００と工作機械４００との双方に対して移動量を出力する。この点、数値制御装置１５０から機械構成管理装置１００に対しての移動量の出力は、数値制御装置１５０から工作機械４００に対しての移動量の出力に同期して行われてもよいし、非同期に送られてもよい。
数値制御装置１５０の詳細な構成については、図３を参照して後述する。
【００２８】
拡張情報制御装置２００は、拡張現実技術により、仮想オブジェクトの表示位置及び表示姿勢を算出することにより、適切に仮想オブジェクトを表示させるための制御を行う。
拡張情報制御装置２００の詳細な構成については、図４を参照して後述する。
【００２９】
表示装置３００は、拡張情報制御装置２００が出力する仮想オブジェクトと、その表示位置及び姿勢を取得する。そして、この取得した情報に基づいて、表示装置３００に仮想オブジェクトを表示する。この取得した情報は、カメラ座標系に対応したものとなっている。
【００３０】
工作機械４００は、一般的な工作機械であり、数値制御装置１５０から出力される各制御軸の移動量に応じて各制御軸を移動・回転させる。また、工作機械４００に固定されたカメラは、撮像により取得した情報を拡張情報制御装置２００に対して出力する。
【００３１】
本実施形態では、このような構成により、ユーザが、カメラ座標系に対応して表示される仮想オブジェクトを表示装置３００にて参照すると共に、各制御軸の移動量に対応して可動する工作機械４００の実際の構造をディスプレイ越しに参照する。これにより、ユーザは加工シミュレーションの様子を観察することが可能となる。
【００３２】
なお、図１に示した構成はあくまで一例である。例えば、表示装置３００を、タブレット型の端末により実現するようにしてもよい。また、機械構成管理装置１００の機能の一部又は全部を数値制御装置１５０に搭載するようにしてもよい。また、拡張情報制御装置２００の機能の一部又は全部を表示装置３００や数値制御装置１５０に搭載するようにしてもよい。また、拡張情報制御装置２００は、単独の装置により実現してもよいが複数の装置の組み合わせにより実現してもよい。また、拡張情報制御装置２００は、数値制御装置１５０や工作機械４００の近傍に設置されている装置により実現してもよいが、数値制御装置１５０や工作機械４００とネットワークを介して遠距離に設置されているサーバ装置等で実現してもよい。更に、各通信接続は有線接続であっても無線接続であってもよい。例えば、図中では、機械構成管理装置１００、数値制御装置１５０、及び拡張情報制御装置２００の通信接続がイーサネット（登録商標）(Ｅｔｈｅｒｎｅｔ）に準拠して有線接続により行われる例を記載しているが、かかる接続は無線接続であってもよい。
【００３３】
＜２．機械構成管理装置の構成＞
図２は、機械構成管理装置１００の機能ブロック図である。
機械構成管理装置１００は、制御部１１０と記憶部１２０とを備え、制御部１１０は、グラフ生成部１１１、制御点座標系挿入部１１３、ノード情報通知部１１４、変換情報計算部１１５、及び変換情報通知部１１６を備え、グラフ生成部１１１は、ノード追加部１１２を備える。
【００３４】
制御部１１０は、機械構成管理装置１００を全体的に制御するプロセッサである。この制御部１１０は、ＲＯＭ（不図示）に格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、該システムプログラム及びアプリケーションプログラムに従って、制御部１１０が備えるグラフ生成部１１１、ノード追加部１１２、制御点座標系挿入部１１３、ノード情報通知部１１４、変換情報計算部１１５、変換情報通知部１１６の機能を実現する。
【００３５】
グラフ生成部１１１は、カメラを含む工作機械４００の機械構成をグラフ形式で生成する。更に、グラフ生成部１１１が有するノード追加部１１２は、生成したグラフにノードを追加する。それらの詳細な動作については、以下の「５．機械構成木の生成」で詳述する。
【００３６】
制御点座標系挿入部１１３は、機械構成のグラフに対し、制御点及び座標系を挿入する。その詳細な動作については、以下の「６．制御点と座標値の自動挿入」で詳述する。
【００３７】
ノード情報通知部１１４は、後述の拡張情報制御装置２００に対し、表示可能なノードの情報を通知する。
【００３８】
変換情報計算部１１５は、後述のように、拡張情報制御装置２００の選択ノード通知部２１２から、仮想オブジェクトを表示したいノードを通知された後、カメラノードから表示対象のノードへの経路上の制御軸ノードの座標値を変数として含む変換情報であって、上記のグラフを元に、カメラノードの座標系における、各表示対象のノードの位置及び／又は姿勢を計算するための変換情報を計算する。
なお、上記の変換情報は、マトリクス形式であってもよく、ベクトル形式であってもよく、ロール・ピッチ・ヨー形式であってもよい。その詳細な動作については、以下の「７．変換情報の計算」で詳述する。
【００３９】
変換情報通知部１１６は、変換情報計算部１１５が計算した変換情報を、拡張情報制御装置２００の座標情報変換部２１３に通知する。
【００４０】
記憶部１２０は、グラフ生成部１１１によって生成された機械構成木に係る情報を記憶する。
【００４１】
なお、グラフ生成部１１１、ノード情報通知部１１４、変換情報計算部１１５、変換情報通知部１１６、記憶部１２０の詳細な動作については、以下の「８．仮想オブジェクトの表示方法」で詳述する。
【００４２】
＜３．数値制御装置の構成＞
図３は、数値制御装置１５０の機能ブロック図である。
数値制御装置１５０は、制御部１６０を備え、制御部１６０は、座標情報通知部１６１と、サーボモータ制御部１６２をと備える。
【００４３】
制御部１６０は、数値制御装置１５０を全体的に制御するプロセッサである。この制御部１６０は、ＲＯＭ（不図示）に格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、該システムプログラム及びアプリケーションプログラムに従って、制御部１６０が備える座標情報通知部１６１、及びサーボモータ制御部１６２の機能を実現する。
【００４４】
座標情報通知部１６１は、稼働中の工作機械４００の座標情報を、拡張情報制御装置２００の座標情報変換部２１３に通知する。
サーボモータ制御部１６２は、制御部１６０からの各軸の移動指令量を受けて、各軸の指令をサーボモータ（不図示）に出力する。
【００４５】
なお、数値制御装置１５０は、工作機械４００を数値制御するために、通常の数値制御装置が備えるその他の構成要素も備えるが、その説明は省略する。
【００４６】
＜４．拡張情報制御装置の構成＞
図４は、拡張情報制御装置２００の機能ブロック図である。
拡張情報制御装置２００は、制御部２１０と、記憶部２２０とを備え、制御部２１０は、ノード選択部２１１、選択ノード通知部２１２、座標情報変換部２１３、拡張情報表示用データ計算部２１４、及び拡張情報表示用データ通知部２１５を備える。
【００４７】
制御部２１０は、拡張情報制御装置２００を全体的に制御するプロセッサである。この制御部２１０は、ＲＯＭ（不図示）に格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、該システムプログラム及びアプリケーションプログラムに従って、制御部２１０が備えるノード選択部２１１、選択ノード通知部２１２、座標情報変換部２１３、拡張情報表示用データ計算部２１４、及び拡張情報表示用データ通知部２１５の機能を実現する。
【００４８】
ノード選択部２１１は、仮想オブジェクトを表示したいノードを選択する。
【００４９】
選択ノード通知部２１２は、ノード選択部２１１が選択したノードを機械構成管理装置１００の変換情報計算部１１５に通知する。
【００５０】
座標情報変換部２１３は、機械構成管理装置１００から受け取った変換情報を元に、数値制御装置１５０から定期的に受け取る各制御軸の座標値から、仮想オブジェクトのカメラ座標系での位置及び／又は姿勢を計算する。
【００５１】
拡張情報表示用データ計算部２１４は、ＡＲやＭＲ等の技術に基づいて、仮想オブジェクト等の拡張情報を表示させるための拡張情報表示用データを計算する。より具体的には、拡張情報表示用データ計算部２１４は、仮想オブジェクトのカメラ座標系での位置及び／又は姿勢を、スクリーン座標系での位置及び／又は姿勢に変換する。
【００５２】
拡張情報表示用データ通知部２１５は、拡張情報表示用データ計算部２１４が計算した拡張情報表示用データを、無線通信装置２５０を介して表示装置３００に対して送信する。この拡張情報表示用データには、仮想オブジェクトの形状等と、この仮想オブジェクトの、スクリーン座標系の座標値に変換された表示位置及び表示姿勢等が含まれる。
【００５３】
記憶部２２０は、機械構成管理装置１００のグラフ生成部１１１によって生成されたグラフに係る情報を記憶する。
【００５４】
なお、ノード選択部２１１、選択ノード通知部２１２、座標情報変換部２１３、拡張情報表示用データ計算部２１４、及び拡張情報表示用データ通知部２１５、及び記憶部２２０の詳細な動作については、以下の「８．仮想オブジェクトの表示方法」で詳述する。
【００５５】
＜５．機械構成木の生成＞
本発明の実施形態に係る機械構成管理装置１００は、最初に、機械構成を表すグラフを生成する。グラフの一例として機械構成木を生成する生成方法について、図５〜図１１を参照しながら詳述する。
【００５６】
例として、図５に示す機械の構成を表現する機械構成木の生成方法について説明する。図５の機械においては、Ｚ軸に対して垂直にＸ軸が設定され、Ｘ軸には工具１が設置され、Ｚ軸には工具２が設置されているとする。一方で、Ｙ軸上にＢ軸が設定され、Ｂ軸上にＣ軸が設定され、Ｃ軸にはワーク１とワーク２が設置されているとする。この機械構成を機械構成木として表現する方法は、以下の通りである。
【００５７】
まず、図６に示すように、原点２０１とノード２０２Ａ〜２０２Ｉのみを配置する。この段階では、原点２０１とノード２０２、及びノード２０２間でのつながりは持たず、原点及びノードの各々の名称も設定されていない。
【００５８】
次に、各軸の軸名称（軸型）、各工具の名称、各ワークの名称、各原点の名称、各軸の物理軸番号（軸型）を設定する。次に、各軸の親ノード（軸型）、各工具の親ノード、各ワークの親ノードを設定する。最後に、各軸の交叉オフセット（軸型）、各工具の交叉オフセット、各ワークの交叉オフセットを設定する。その結果、図７に示す機械構成木が生成される。
【００５９】
なお、機械構成木の各ノードは、上記の各情報に限られず、例えば、識別子（名称）、自身の親ノードの識別子、自身を親とする全ての子ノードの識別子、親ノードに対する相対オフセット（交叉オフセット）、親ノードに対する相対座標値、親ノードに対する相対移動方向（単位ベクトル）、ノード種別（直線軸／回転軸／ユニット（後述）／制御点／座標系／原点等）、物理軸番号、直交座標系と物理座標系の変換式に係る情報を有してもよく、あるいは、有さなくてもよい。
【００６０】
このように各ノードに値を設定していくことにより、機械構成管理装置１００内に機械構成木状のデータ構造を有するデータを生成する。更に、別の機械（又はロボット）を追加する場合も、原点を追加し、更にノードを追加することができる。
【００６１】
上記の機械構成木生成方法、とりわけ各ノードへの各値の設定方法を一般化したフローチャートを図８に示す。
【００６２】
ステップＳ１１において、グラフ生成部１１１は、ノードに対して設定するパラメータの値を受け取る。
ステップＳ１２において、設定されたパラメータの項目が「自身の親ノード」の場合（Ｓ１２：ＹＥＳ）には、処理はステップＳ１３に移行する。「自身の親ノード」ではない場合（Ｓ１２：ＮＯ）には、処理はステップＳ１７に移行する。
【００６３】
ステップＳ１３において、パラメータが設定されるノードに、既に親ノードが設定されている場合（Ｓ１３：ＹＥＳ）には、処理はステップＳ１４に移行する。親ノードが設定されていない場合（Ｓ１３：ＮＯ）には、処理はステップＳ１５に移行する。
【００６４】
ステップＳ１４において、グラフ生成部１１１は、パラメータが設定されるノードの、現在の親ノードが持つ「子ノード」の項目から、自身の識別子を削除し、機械構成木を更新する。
【００６５】
ステップＳ１５において、グラフ生成部１１１は、パラメータを設定するノードの該当項目に値を設定する。
【００６６】
ステップＳ１６において、グラフ生成部１１１は、親ノードに対し、「子ノード」の項目に自身の識別子を追加し、機械構成木を更新した後、フローを終了する。
【００６７】
ステップＳ１７において、グラフ生成部１１１は、パラメータを設定するノードの該当項目に値を設定した後、フローを終了する。
【００６８】
上記の機械構成木状のデータ構造を有するデータの生成方法を用いることにより、機械の構成要素同士の親子関係を設定することが可能である。
ここで親子関係とは、例えば図９Ａのように、２つの回転軸ノード５０４、５０５があったとき、一方のノード５０４の座標値の変化が、他方のノード５０５の幾何的状態（典型的には、位置・姿勢）に対して一方的に影響を及ぼすような関係のことである。この場合ノード５０４、５０５は親子関係にあると呼び、ノード５０４を親、ノード５０５を子と呼ぶ。
しかし、例えば図９Ｂに示すように、２つの直線軸ノード５０２、５０３と４つのフリージョイント５０１により構成された機械構成においては、ノード５０２、５０３の一方の座標値（長さ）が変わることにより、他方の幾何的状態だけでなく、自身の幾何的状態も変わるような、相互に影響を及ぼす機構が存在する。このような場合は、互いに親であり子、すなわち親子関係が双方向であるとみなすことができる。
【００６９】
このように、あるノードの変化が他のノードに互いに影響し合うような機構については、利便性の観点から、１つのユニットとして捉え、このユニットを機械構成木に挿入することにより全体の機械構成木を生成する。ユニットは、図１０Ａのように二つの接続点５１０及び接続点５２０を持っており、ユニットが図１０Ｂのように機械構成木に挿入された場合、図１０Ｃのように、親ノードは接続点５２０に接続され、また、子ノードは接続点５１０に対して接続される。また、ユニットは、接続点５２０から接続点５１０への変換マトリクスを持っている。この変換マトリクスは、ユニットに含まれる各ノードの座標値によって表される。例えば図１１のような機械構成の場合、接続点５２０における位置・姿勢を表す同次マトリクスをＭＡとし、接続点５１０における位置・姿勢を表す同次マトリクスをＭＢとすると、それらのマトリクス間の変換式はユニットに含まれる各直線軸ノードの座標値ｘ１、ｘ２を用いて以下のように表される。
【数１】
2019212041.tif 000003
【００７０】
この機械構成を表すユニットは上記の［数１］の数式中のＴのような同次変換マトリクスを持つ。同次マトリクスとは、以下の［数２］の数式のように位置・姿勢をまとめて表現できる４×４マトリクスのことである。
【数２】
2019212041.tif 000004
【００７１】
また、親子関係が相互でない場合であっても、計算処理や設定を簡単にするために、ある複数のノードを予め１つにまとめたユニットを定義し、機械構成木中に構成してもよい。
【００７２】
上記のように、本実施形態においては、機械構成のグラフは、複数の軸をまとめて１つにしたユニットを構成要素として含むことができる。
【００７３】
＜６．制御点と座標値の自動挿入＞
機械構成上の様々な位置を、制御点として指定すると共に、機械構成上の様々な箇所の座標系を設定するため、上記の「５．機械構成木の生成」で生成された機械構成木を用いて、以下の方法を実施する。
【００７４】
例えば、図１２Ａに示すロータリインデックスマシン３５０においては、Ｚ１軸に対して垂直にＸ１軸が設定され、Ｘ１軸に工具１が設置されている。また、Ｚ２軸に対して垂直にＸ２軸が設定され、Ｘ２軸上に工具２が設置されている。更に、テーブルにおいては、Ｃ軸上にＣ１軸とＣ２軸が並列に設定され、Ｃ１軸とＣ２軸の各々にワーク１とワーク２が設置されているとする。この機械構成を機械構成木で表わすと、図１２Ｂに示す機械構成木となる。
【００７５】
各ワークから機械原点に連なる一連のノードを例に取ると、図１３に示すように、機械原点、Ｃ軸、Ｃ１軸、Ｃ２軸、ワーク１、ワーク２の各々に座標系と制御点を自動挿入する。これを、テーブルに対してのみならず、各工具から機械原点に連なる一連のノード、すなわちＸ１軸、Ｘ２軸、Ｚ１軸、Ｚ２軸、工具１、工具２のすべてに対して実施する。その結果、図１４に示すように、機械構成木を構成するすべてのノードに対して、各々に対応する制御点と座標系が自動挿入される。通常、加工を行う場合にはワークに座標系、工具を制御点として指定する。これにより、例えば、ワーク自身を所定の位置へ移動させるために、ワークに制御点を指定したい場合や、ある工具で別の工具を研磨するために、工具自身に座標系を設定したい場合といった様々な場合に対応することも可能となる。
【００７６】
また、図１５Ａに示すように、各制御点及び座標系は、オフセットを有する。そのため、ノード中心から離れた点を制御点や座標系原点にすることも可能である。更に、各制御点及び座標系は姿勢マトリクスを持つ。この姿勢マトリクスは、制御点の姿勢マトリクスである場合、制御点の姿勢（向き、傾き）を表し、座標系の姿勢マトリクスの場合、座標系の姿勢を表わす。図１５Ｂに示す機械構成木においては、オフセット及び姿勢マトリクスは、各々が対応するノードに紐づく形で表現される。更に、各制御点及び座標系は、機械構成木のルートまでの経路上に存在するノードの「移動」及び「交叉オフセット」それぞれを加味するか／しないかの情報を持っており、それらを設定できる。
【００７７】
上記の制御点の自動挿入方法を一般化したフローチャートを図１６に示す。このフローチャートは、詳細には、チャートＡとチャートＢとを含み、後述のように、チャートＡの途中でチャートＢが実行されるという構成となっている。
【００７８】
まず、チャートＡについて説明する。
ステップＳ２１において、グラフ生成部１１１は、機械構成木を設定する。
ステップＳ２２において、チャートＢを実行し、チャートＡのフローを終了する。
【００７９】
次に、チャートＢについて説明する。
チャートＢのステップＳ３１において、ノードは制御点・座標系を挿入済である場合（Ｓ３１：ＹＥＳ）には、フローを終了する。ノードに制御点・座標系を挿入済でない場合（Ｓ３１：ＮＯ）には、処理はステップＳ３２に移行する。
【００８０】
ステップＳ３２において、制御点座標系挿入部１１３は、ノードに制御点・座標系を挿入し、変数ｎを１つスタックする。また、ｎ＝１とする。
【００８１】
ステップＳ３３において、ノードにｎ番目の子ノードが存在する場合（Ｓ３３：ＹＥＳ）には、処理はステップＳ３４に移行する。ノードにｎ番目の子ノードが存在しない場合（Ｓ３３：ＮＯ）には、処理はステップＳ３６に移行する。
【００８２】
ステップＳ３４において、ｎ番目の子ノードについて、チャートＢ自身を再帰的に実行する。
【００８３】
ステップＳ３５において、ｎを１だけインクリメントする。すなわちｎ＝ｎ＋１とし、処理はステップＳ３３に戻る。
【００８４】
ステップＳ３６において、変数ｎを１つポップし、チャートＢのフローを終了する。
【００８５】
上記の方法により、制御点座標系挿入部１１３は、機械構成のグラフの各ノードに対し、制御点及び座標系をノードとして挿入する。なお、上記では、制御点及び座標系をノードとして追加する場合の実施例を示したが、図１７に示すように、制御点座標系挿入部１１３は、機械構成のグラフの各ノードに対し、制御点及び座標系を情報として持たせる実施形態も同様に可能である。
【００８６】
＜７．変換情報の計算＞
上記のように、変換情報計算部１１５は、制御軸の座標値を、仮想オブジェクトのカメラ座標系での位置及び／又は姿勢に変換する変換情報を計算する。この変換情報の計算方法について、図１８〜図１９を参照して詳述する。
【００８７】
例えば、図１８に示すように、軸ｘ１の上に軸ｘ２が設定され、軸ｘ２の上に軸ｘ３が設定され、以下同様にＮ個のノードが連なり、その末端が軸ｘＮであるとする。更に、軸ｘＮ上の制御点に仮想オブジェクトを表示するものとする。同様に、軸ｙ１の上に軸ｙ２が設定され、軸ｙ２の上に軸ｙ３が設定され、以下同様にＬ個のノードが連なり、その末端が軸ｙＬであるとする。更に、軸ｙＬ上にカメラが設置されているとする。ここで、ｘｉ，ｙｊはノード名称だが、同時に各ノードの座標値も表わすこととする。
【００８８】
更に、各ノードには図１８に示すオフセット、ノード種別（直線／回転／ユニット／制御点／座標系）、軸方向、姿勢マトリクス、座標値が与えられているとする。
【００８９】
この時、図１９に示すように、ルート（機械原点）に対する制御点上の仮想オブジェクトの現在位置・姿勢を表す同次マトリクスＭｏｂｊは、以下の式で求められる。
【数３】
2019212041.tif 000005
ただし、記号の意味は、以下の通りである。
Ｓｘｉ：各ノードによる同次変換マトリクス；
Ｎ：機械構成木のルートから制御点まで連なる一連のノード個数；
Ｍｃｔｒｌ：制御点の親ノードに対する相対オフセット・姿勢の同次マトリクスであり、制御点に定義されたオフセットベクトル・姿勢マトリクスから、上記の［数２］に従って定義される。
【００９０】
同時変換マトリクスＳｘｉはノードの種別によって変わり、例えば、直線軸の場合は以下のように表される。
【数４】
2019212041.tif 000006
ただし、記号の意味は、以下の通りである。
ｘｉ：ノードｘｉの座標値；
ｏｆｓｘｉ：ノードｘｉの親ノードに対する相対オフセットベクトル；
ｖｘｉ：ノードｘｉの移動方向ベクトル
【００９１】
また、回転軸の場合は以下のように表される。
【数５】
2019212041.tif 000007
ただし、記号の意味は、以下の通りである。
ｖ１：ノードｘｉの回転軸方向ベクトルの第１成分；
ｖ２：ノードｘｉの回転軸方向ベクトルの第２成分；
ｖ３：ノードｘｉの回転軸方向ベクトルの第３成分
【００９２】
この時、カメラ座標系上における、制御点上の仮想オブジェクトの現在位置・姿勢を表す同次マトリクスＸｃは、Ｍｏｂｊを用いて以下の式で求められる。
【数６】
2019212041.tif 000008
ただし、記号の意味は、以下の通りである。
Ｌ：機械構成木のルートからカメラノードまで連なる一連のノード個数；
Ｍｃｏｏｒｄ：カメラの親ノードに対する相対オフセット・姿勢の同次マトリクスであり、座標系に定義されたオフセットベクトル・姿勢マトリクスから、上記の［数２］の数式に従って定義される。
【００９３】
＜８．仮想オブジェクトの表示方法＞
図２０は、仮想オブジェクトを表示する際の動作フローを示す。最初に、各ステップの概略について述べる。
【００９４】
ステップＳ４１において、機械構成管理装置１００は、機械構成木に新規ノードとしてカメラノードを追加する。これにより、例えば、工作機械４００の構成が、図２１Ａに示されるような構成だった場合、図２１Ｂに示されるように、工作機械４００の構成を示す機械構成木にカメラノードが追加される。
【００９５】
ステップＳ４２において、拡張情報制御装置２００は、機械構成管理装置１００から、表示可能なノードを取得する。
【００９６】
ステップＳ４３において、拡張情報制御装置２００は、仮想オブジェクト等の拡張情報を表示するノードを選択し、機械構成管理装置１００に通知する。
【００９７】
ステップＳ４４において、機械構成管理装置１００は、表示要求されたノードのカメラ座標系での位置・姿勢を求める式を導出し、拡張情報制御装置２００に通知する。
【００９８】
ステップＳ４５において、拡張情報制御装置２００は、数値制御装置１５０から、各制御軸の座標値を取得する。
【００９９】
ステップＳ４６において、拡張情報制御装置２００は、取得した座標値と、カメラ座標系での位置・姿勢を求める式とを用いて、仮想オブジェクト等の拡張情報を表示するノードの、カメラ座標系における位置・姿勢を求める。
【０１００】
ステップＳ４７において、拡張情報制御装置２００は、カメラ座標系における位置・姿勢から、座標系の変換により、スクリーン座標系での位置・姿勢を求める。
【０１０１】
ステップＳ４８において、拡張情報制御装置２００は、仮想オブジェクト等の拡張情報の表示用データである、拡張情報表示用データを生成して、表示装置３００に出力する。
【０１０２】
ステップＳ４９において、表示装置３００は、仮想オブジェクト等の拡張情報を表示する。その後、処理は、ステップＳ４５に戻る。
【０１０３】
なお、仮想オブジェクト等の拡張情報を表示するノードの、カメラ座標系における位置・姿勢を機械構成管理装置１００で求め、位置・姿勢それ自体を示す値を拡張情報制御装置２００に通知してもよい。
【０１０４】
上記のステップＳ４７において、拡張情報制御装置２００は、公知の方法を用いて、カメラ座標系における位置・姿勢から、スクリーン座標系での位置・姿勢を求める。より具体的には、カメラ座標系からスクリーン座標系への変換情報を求める処理を行い、この変換情報により、仮想オブジェクトの位置・姿勢をカメラ座標系からスクリーン座標系の値へ変換する。拡張情報表示用データは、ここで求めたカメラ座標系及びスクリーン座標系の位置・姿勢に加え、仮想オブジェクトの形状等のデータを含む。拡張情報表示用データは表示装置３００に出力され、出力されたデータを用いることにより、表示装置３００はスクリーンの適切な位置に仮想オブジェクトを描画することが可能となる。
【０１０５】
上記の方法により、ディスプレイ上で、任意のノードに対して、仮想オブジェクトを表示することができる。図２２Ａに記載のように、仮想オブジェクトとして、例えば、ワークや工具の３Ｄモデルを配置し、加工シミュレーションするために用いてもよい。あるいは、各主軸の回転数のようなノードに紐づいたデータを表示してもよい。更に、加速度センサや温度センサを配置し、図２２Ｂに記載のように、センサ用ノードを機械構成木に追加することで、各場所の加速度や温度を視覚的に確認することもできる。
これにより、工作機械４００のオペレータは、シミュレーション作業中に、ノードに紐づいたデータや、センサの数値を確認することができる。
【０１０６】
＜９．本実施形態のもたらす効果＞
本実施形態により、グラフ上に登録されたノード全てに対して、仮想オブジェクトを配置することができる。とりわけ、カメラノードの追加により、任意の位置に仮想オブジェクトを追加することができ、移動量の変換式を別途登録したり、別途特異点を認識したりする必要はない。また、初期位置の認識も不要である。
【０１０７】
＜１０．変形例＞
【０１０８】
一部繰り返しとなるが、グラフデータは、機械構成管理装置１００に格納されていてもよいが、これには限定されない。例えば、拡張情報制御装置２００に格納されてもよく、仮想オブジェクト表示システム１０とネットワークを介して接続するサーバ上に格納されてもよい。拡張情報制御装置２００や、サーバ上に機械構成木データを格納できるようにすることで、古い工作機械に対しても、本発明の適用が可能となる。なお、この場合には、上記のステップＳ４３までの処理は実行せず、ステップＳ４４は、拡張情報制御装置２００側で実行する。
【０１０９】
また、機械構成管理装置１００は、数値制御装置１５０に組み込まれて一体化されていてもよい。あるいは、機械構成管理装置１００は、クラウド上に存在してもよい。
【０１１０】
なお、上記の機械構成管理装置、数値制御装置、拡張情報制御装置、及び工作機械のそれぞれは、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。また、上記の機械構成管理装置、数値制御装置、拡張情報制御装置、及び工作機械の協働により行われるシミュレーション方法も、ハードウェア、ソフトウェア又はこれらの組み合わせにより実現することができる。ここで、ソフトウェアによって実現されるとは、コンピュータがプログラムを読み込んで実行することにより実現されることを意味する。
【０１１１】
プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば、光磁気ディスク）、ＣＤ−ＲＯＭ(Read Only Memory)、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ(Programmable ROM)、ＥＰＲＯＭ(Erasable PROM)、フラッシュＲＯＭ、ＲＡＭ(random access memory）)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１１２】
１０  仮想オブジェクト表示システム
１００  機械構成管理装置
１１０  制御部
１１１  グラフ生成部
１１２  ノード追加部
１１３  制御点座標系挿入部
１１４  ノード情報通知部
１１５  変換情報計算部
１１６  変換情報通知部
１２０  記憶部
１５０  数値制御装置
１６０  制御部
１６１  座標情報通知部
１６２  サーボモータ制御部
２００  拡張情報制御装置
２１１  ノード選択部
２１２  選択ノード通知部
２１３  座標情報変換部
２１４  拡張情報表示用データ計算部
２１５  拡張情報表示用データ通知部
２２０  記憶部
２５０  無線通信装置
３００  表示装置
４００  工作機械
【図１】
2019212041.tif 000009
【図２】
2019212041.tif 000010
【図３】
2019212041.tif 000011
【図４】
2019212041.tif 000012
【図５】
2019212041.tif 000013
【図６】
2019212041.tif 000014
【図７】
2019212041.tif 000015
【図８】
2019212041.tif 000016
【図９Ａ】
2019212041.tif 000017
【図９Ｂ】
2019212041.tif 000018
【図１０Ａ】
2019212041.tif 000019
【図１０Ｂ】
2019212041.tif 000020
【図１０Ｃ】
2019212041.tif 000021
【図１１】
2019212041.tif 000022
【図１２Ａ】
2019212041.tif 000023
【図１２Ｂ】
2019212041.tif 000024
【図１３】
2019212041.tif 000025
【図１４】
2019212041.tif 000026
【図１５Ａ】
2019212041.tif 000027
【図１５Ｂ】
2019212041.tif 000028
【図１６】
2019212041.tif 000029
【図１７】
2019212041.tif 000030
【図１８】
2019212041.tif 000031
【図１９】
2019212041.tif 000032
【図２０】
2019212041.tif 000033
【図２１Ａ】
2019212041.tif 000034
【図２１Ｂ】
2019212041.tif 000035
【図２２Ａ】
2019212041.tif 000036
【図２２Ｂ】
2019212041.tif 000037