図1は、工作機械100の外観図である。
工作機械100は、NCプログラム310に従って加工室においてワークに対する加工動作を自動的に行う。工作機械100の正面には、加工室と外部とを仕切るドア202が設けられている。ドア202には、作業者が工作機械100の加工室内を見るための窓200が設けられている。
また、ドア202の脇には、操作盤110が設置されている。操作盤110には、モニター112、シングルブロックボタン114、サイクルスタートボタン116、一時停止ボタン118およびリセットボタン120が設けられている。モニター112には、NCプログラム310および残移動量304などの情報が表示される。シングルブロックボタン114は、作業者がシングルブロックモードへの切り替えを指示するためのボタンである。サイクルスタートボタン116は、作業者が加工動作の開始を指示するためのボタンである。一時停止ボタン118は、作業者が加工動作の一時停止を指示するためのボタンである。リセットボタン120は、作業者が加工動作のリセットを指示するためのボタンである。各ボタンの操作と加工動作については、図4に関連して後述する。
窓200は、たとえば強化ガラスなどの透明板部材を使用しており耐衝撃性を有する。実施形態では、窓200の面上に画像、文字や数字などを表示できる透明ディスプレイ240を設ける。透明ディスプレイ240は、透明板部材の外側平面あるいは内側平面に接して固定される。
実施形態では、モニター112に表示される情報の一部が透明ディスプレイ240にも表示させる。また、3次元モデリングの技術を利用して加工室の状況を把握しやすくするための画像や情報を、透明ディスプレイ240に表示させる。具体的には、図5と図6に関連して後述するように、透明ディスプレイ240は、特定の情報(目盛り、各種座標、ワーク、工具、NCプログラム310のブロックおよびブロックの実行状態などの情報)を表示することができる。つまり、工作機械100は、特定の情報を表示可能で、内部を見るための窓200を備える。
作業者は、工作機械100の加工室内とモニター112に表示される情報を確認しながら、工作機械100を操作する。そのため、従来作業者は窓200と操作盤110のモニター112の間を移動する必要があった。実施形態では、作業者は、窓200の透明ディスプレイ240によって種々の情報を見られるので、モニター112の方へ移動する必要がなくなる。そのため、作業者が作業をしやすくなり、作業効率が良くなる。
なお、ドア202の正面には、作業者を撮影するためのカメラ600が設けられている。カメラ600については、変形例1で説明する。
図2は、工作機械100のブロック図である。
工作機械100は、上述した操作盤110、透明ディスプレイ240およびカメラ600の他に、加工部102およびNC制御装置104を有する。
加工部102は、ワークに対する加工動作を行う。加工部102は、工具が取り付けられる取付部や軸を回転させるサーボモーターなどの駆動部などを含む。工作機械100がマシニングセンタの場合、主軸が取付部に相当し、主軸を回転させるサーボモーターが駆動部に相当する。工作機械100がターニングセンタの場合、刃物台が取付部822に相当し、ワークを取り付けられた回転軸を回転させるサーボモーターの他に、タレットを移動させる駆動部を有する。ここでは、ターニングセンタの例を示す。図6に関連して後述するように、この例の加工部102には、回転軸、チャック、刃物台および工具などが含まれる。このように、加工部102には、種々の装置や部品が含まれる。
NC制御装置104は、NCプログラム310を実行し、NCプログラム310に従って加工部102に対して加工動作の指示を行う。加工部102は、NC制御装置104の指示に従って加工動作を行う。
操作盤110は、シングルブロックボタン114、サイクルスタートボタン116、一時停止ボタン118、リセットボタン120およびモニター112などのハードウェアの他に、受付部130、情報取得部150、3次元モデル記憶部152、表示処理部156および目位置検出部158などの構成要素を備える。
操作盤110の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサ(Coprocessor)などの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。図示した受付部130、情報取得部150、3次元モデル記憶部152、表示処理部156および目位置検出部158は、ハードウェア単位の構成ではなく、機能単位のブロックを示している。操作盤110は、情報処理装置の例である。操作盤110以外の情報処理装置が、これらの構成要素を備え、後述する操作盤110の処理動作を行うようにしてもよい。
受付部130は、シングルブロックボタン114、サイクルスタートボタン116、一時停止ボタン118およびリセットボタン120の押下など、ユーザ操作を受け付ける。
情報取得部150は、NC制御装置104から種々の情報を取得する。
3次元モデル記憶部152は、加工部102に含まれる装置及び部品(回転軸、チャック、刃物台および工具など)とワークの3次元モデルの形状と位置(機械座標)を定義するデータ(以下、「3次元モデルデータ」という)を記憶する。機械座標は、「グローバル座標」ともいう。機械座標を定めるための各軸の向きや原点は工作機械100の固有値として定められている。3次元モデルデータには、間隔を計測するための目盛りやワーク座標系(図7参照)の3次元モデルの形状も含まれる。
表示処理部156は、透明ディスプレイ240に表示させる画像(以下、「表示画像という)を生成し、生成された表示画像を透明ディスプレイ240に表示させる処理を行う。表示処理部156は、モデリング部154を有する。モデリング部154は、メモリ領域を使って仮想空間を展開し、仮想空間に3次元モデルを生成する。表示処理部156は、3次元の3次元モデルに基づいて表示画像の一部(目盛り、座標、ワークや工具の情報)を生成することができる。また、表示処理部156は、3次元モデルを3次元的に表現するレンダリングの機能を備える。図5と図6に関連して後述するように、工作機械100が備える表示処理部156は、作業者が窓200を通して内部(加工室内)を見る場合に、特定の情報(目盛り、各種座標、ワーク、工具、NCプログラム310のブロックおよびブロックの実行状態などの情報)を、作業者が内部を見ながら情報を見ることができる位置に表示させる。
目位置検出部158は、カメラ600によって撮像された作業者の撮像画像に基づいて、作業者の目の位置(機械座標)を検出する。目位置検出部158の詳細については、変形例1で説明する。
図3は、NCプログラム310の構成例を示す図である。
この例におけるNCプログラム310では、ワークに対して荒加工を行った後で、仕上げ加工を行う。荒加工では、まず工具をワークに近づけるアプローチの動作を行った後で、荒加工の切削の動作に移る。仕上げ加工も同様に工具をワークに近づけるアプローチの動作を行った後に、仕上げ加工の切削の動作に移る。
したがって、NCプログラム310は、荒加工のアプローチ、荒加工の切削、仕上げ加工のアプローチおよび仕上げ加工の切削の順に処理するように記述されている。また、荒加工のアプローチ、荒加工の切削、仕上げ加工のアプローチおよび仕上げ加工の切削のいずれの動作に関しても、複数のブロックが記述されている。
通常は各ブロックの動作が連続して行われるが、工作機械100をシングルブロックモードにすると、1つのブロックずつ動作が行われる。NCプログラム310が正しくプログラミングされているかどうかを確かめる場合には、作業者はシングルブロックモードにおいて、1つのブロックずつ加工部102を動作させて、その都度意図している通りに動いていることを確認する。
NCプログラム310の全体をシングルブロックモードで動作させて、すべてのブロックについて動作確認を行うことが可能である。ただし、NCプログラム310の一部のみをシングルブロックモードで動作させて、そこに含まれるブロックについてだけ動作確認を行うことも可能である。図3に示した例では、荒加工のためのアプローチと仕上げ加工のためのアプローチに関して、1つのブロックずつ動作のチェックを行う。荒加工の切削と仕上げ加工の切削について、プログラミングミスの可能性が低いと考えられ、あるいは連続動作でも確認可能であると考えられる場合には、このようにしてもよい。このようにシングルブロックモードで1つのブロックずつ動作させて確認する手法は、従来技術と実施形態で共通である。
図4は、工作機械100の状態の遷移図である。
この遷移図は、工具を移動させる1つのブロックの動作に関する。縦軸に、残移動量を示している。残移動量は、これからどれだけ移動するかを示している。横軸には、経過する時間を示す。この例のブロックには、工具を100mm移動させる指令が記述されており、ワークの端面に接する位置まで工具の刃先をワークに近づけることが意図されているものとする。
作業者がサイクルスタートボタン116を押下すると、工具が移動を始め、RUN状態になる。RUN状態は、加工部102の動作中を意味する。Tsは、RUN状態になった時間を示す。当初残移動量は100mmであるが、Tsから時間が経過するにつれて残移動量は減って行く。
作業者が一時停止ボタン118を押下すると、工具が停止し、HOLD状態になる。HOLD状態では、加工部102の動作が一時的に停止していることを意味する。Thは、HOLD状態になった時間を示す。HOLD状態では、残移動量は変化しない。HOLD状態で、作業者はチェックを行う。この例では、残移動量が50mmで停止している。
ここで、従来技術の場合のチェック手順について説明する。作業者は、操作盤110のモニター112を見て、ブロックの内容と残移動量(50mm)を知る。そして、作業者は、ドアを開いて加工室内に入り、ノギスを使ってワークと工具の刃先の距離を測る。ワークと工具の刃先の距離が50mmであれば、この後50mm移動して刃先が側面に接する位置で工具が停止することがわかる。つまり、意図した通りに動作していることが確認される。ワークと工具の刃先の距離が50mmでなければ、意図した通りに動作しておらず、プログラミングにミスがあることがわかる。そして、作業者は、加工室から出る。
続いて、実施形態の場合のチェック手順について説明する。作業者は、透明ディスプレイ240の表示画像(図5、図6参照)を見て、ブロックの内容と残移動量(50mm)を知ることができる。したがって、操作盤に近づく動作がいらなくなる。また、透明ディスプレイ240の表示画像の目盛り332によってワークと工具の刃先の距離を目測することができる。したがって、ドアを開いて加工室内に入り、ノギスを使って実測する作業を行わなくてもよくなる。目測による距離が残移動量と一致していれば、正常と判断できる。
作業者が、HOLD状態でサイクルスタートボタン116を押下すると、工具の移動が再開され、再びRUN状態になる。Trは、再びRUN状態になった時間を示す。RUN状態になると、残移動量がさらに減って行く。残移動量が0になると、工具が停止し、STOP状態になる。Tpは、STOP状態になった時間を示す。なお、リセットボタン120が押下された場合には、運転が停止されリセット状態となる。
図5は、表示画像340の一例を示す図である。図6は、作業者に見えるイメージを示す図である。
表示画像340が透明ディスプレイ240に表示され、作業者は、透明ディスプレイ240に表示される表示画像340越しに加工室内を見ることができる。作業者は、加工室内を見ながら、同時に表示画像340に表示された種々の情報を知ることができる。
表示画像340には工作機械100の実行状態302(RUN状態、HOLD状態およびSTOP状態)が含まれる。工作機械100の実行状態302は、NC制御装置104で制御されている。情報取得部150は、NC制御装置104から工作機械100の実行状態302を取得する。表示処理部156は、取得した実行状態302を表示画像340の所定箇所に表し、表示画像340の一部として実行状態302がディスプレイ240に表示される。たとえばRUN状態であれば「RUN」と表示され、HOLD状態であれば「HOLD」と表示され、STOP状態であれば「STOP」と表示される。実行状態302の表示が「RUN」から「STOP」に切り替われば、作業者は、加工室内を見ながらブロックの動作が終了したとすぐに判断できる。このように、表示されるブロックの実行状態302は、たとえばシングルブロックが実行中、シングルブロックの実行終了のいずれかである。
表示画像340には残移動量304が含まれる。情報取得部150は、NC制御装置104から、移動可能な軸方向毎に残りの移動量を取得する。表示処理部156は、取得された各軸方向の移動量を表示画像340の所定箇所に表し、表示画像340の一部として各軸方向の移動量がディスプレイ240に表示される。RUN状態では、移動している軸方向の残移動量が変化し、表示処理部156は、変化する残移動量を表示する。
たとえば、X軸、Y軸およびZ軸の3軸方向の移動が可能であれば、X軸、Y軸およびZ軸について残移動量が示される。また、X軸、Y軸、Z軸、A軸、B軸およびC軸の6軸方向の移動が可能であれば、X軸、Y軸、Z軸、A軸、B軸およびC軸について残移動量が示される。以下に6軸において移動可能な場合の残移動量の表示例を示す。
X: 50.000
Y: 0.000
Z: -2.000
A: 0.000
B: 0.000
C: 0.000
表示画像340にはNCプログラム310に関する表示が含まれる。以下にNCプログラム310の一部の例を示す。
G54
G0X104.Z2.
X96.
G1Z-49.9F.3
G0U1.Z2.
X92.
G1Z-49.9
G0U1.Z2.
G0X104.
この例では、実行ブロック306と次のブロック308が表示される。図4にTsと示したRUN状態の開始時点では、これから実行されるブロックの内容が、実行ブロック306として表示され、その次に実行されるブロックの内容が、次のブロック308として表示される。その後、HOLD状態および再開したRUN状態において実行ブロック306と次のブロック308の表示は変わらない。また、STOP状態になっても実行ブロック306と次のブロック308の表示は変わらない。次にサイクルスタートボタンが押下されたタイミングで、次のブロック308に示されていたブロックの内容が実行ブロック306に繰り上がり、次のブロック308にはその次のブロックの内容が表示される。
そのため、情報取得部150がNC制御装置104から取得した実行状態302がSTOP状態からRUN状態に切り替わると、表示処理部156は、それまで次のブロック308に表示させていたブロックの内容を実行ブロック306に表示させる。情報取得部150は、その次のブロックの内容を取得して、次のブロック308に表示させる。あるいは、STOP状態からRUN状態に切り替わるタイミングで、情報取得部150が実行中のブロックの内容と次に実行するブロックの内容を取得して、表示処理部156は、実行ブロック306と次のブロック308に表示させるようにしてもよい。ブロックの表示の仕方は、この例に限らない。
表示画像340にはワーク座標系330の表示が含まれる。ワーク座標系330の表示は、ワーク座標系330の3軸線を示す3次元モデルを透明ディスプレイ240に投影する方法で描かれる。NCプログラム310の初期処理において位置合わせが行われた後に、情報取得部150は、ワーク座標系330の原点の機械座標(オフセット)を取得する。モデリング部154は、ワーク座標系330の3次元モデルにおける3軸線の交点がその機械座標に一致するように、この3次元モデルを仮想空間内に配置する(図7参照)。この例では、ワーク座標系330の原点を、回転軸410のチャック402に固定されているワーク404の端面の中心に合わせているが、ワーク座標系330の原点をワーク404がない場所に設定してもよい。3次元モデルの投影方法については、図7に関連して後述する。
表示画像340には、工具406の所定箇所(たとえば、刃先)を基準点とする目盛り332の表示が含まれる。この例では、上下方向の目盛り332と回転軸方向の目盛り332が表示される。目盛り322の表示は、2方向の目盛り332を示す3次元モデルを透明ディスプレイ240に投影する方法で描かれる。情報取得部150は、刃物台408に固定されている工具406の刃先の機械座標を常時取得する。モデリング部154は、目盛り332の3次元モデルにおける2線の交点がその機械座標に一致するように、工具406の動きに合わせて目盛り332の3次元モデルを仮想空間内で移動させる(図7参照)。3次元モデルの投影方法については、図7に関連して後述する。
表示画像340には、移動終点座標334が含まれる。移動終点座標334は、たとえば黒丸や十字などのマークで表される。情報取得部150は、ブロックの動作が開始される前にそのブロックの動作による工具406の基準点(たとえば、刃先)の移動終点の機械座標をNC制御装置104から取得する。表示処理部156は、仮想空間における移動終点の機械座標を仮想表示面540に写像する方法で、移動終点座標334のマークを透明ディスプレイ240に表示させる。写像の方法は、図7に関連して後述する。表示処理部156は、移動終点の機械座標値(たとえば、「Xe:××,Ye:××,Ze:××」)を透明ディスプレイ240に表示させてもよい。
表示画像340に、移動終点座標334以外に、残移動量を確認するための座標、ワーク座標、工具座標を含めてもよい。残移動量を確認するための座標とは、たとえばブロックの動作が開始される時点における工具406の基準点(たとえば、刃先)を示す移動始点座標である。移動始点座標は、たとえば黒丸や十字などのマークで表される。情報取得部150は、ブロックの動作が開始される前にそのブロックの動作による工具406の基準点(たとえば、刃先)の移動始点の機械座標をNC制御装置104から取得する。表示処理部156は、仮想空間における移動始点の機械座標を仮想表示面540に写像する方法で、移動始点座標のマークを透明ディスプレイ240に表示させる。表示処理部156は、移動始点の機械座標値(たとえば、「Xs:××,Ys:××,Zs:××」)を透明ディスプレイ240に表示させてもよい。作業者が、ブロックの動作の途中で移動始点座標と現在の工具406の基準点を見比べれば、残移動量を知ることができる。
表示画像340に含まれるワーク座標は、たとえばワーク404の基準点(たとえば、ワーク404の端面の中心)の機械座標である。ワーク座標は、たとえば黒丸や十字などのマークで表される。情報取得部150は、ワーク404の基準点の機械座標をNC制御装置104から取得する。表示処理部156は、仮想空間におけるワーク座標を仮想表示面540に写像する方法で、ワーク座標のマークを透明ディスプレイ240に表示させる。表示処理部156は、ワーク座標の機械座標値(たとえば、「Xw:××,Yw:××,Zw:××」)を透明ディスプレイ240に表示させてもよい。
表示画像340に含まれる工具座標は、たとえば工具406の基準点(たとえば、刃先)の機械座標である。工具座標は、たとえば黒丸や十字などのマークで表される。情報取得部150は、工具406の基準点の機械座標をNC制御装置104から取得する。表示処理部156は、仮想空間における工具座標を仮想表示面540に写像する方法で、ワーク座標のマークを透明ディスプレイ240に表示させる。表示処理部156は、工具座標の機械座標値(たとえば、「Xt:××,Yt:××,Zt:××」)を透明ディスプレイ240に表示させてもよい。
このように、表示処理部156は、作業者が窓200を通じて内部のワーク404を見ている場合に、作業者が視認できる位置に特定の情報(目盛り332、各種座標、ワーク404、工具406、NCプログラム310のブロックおよびブロックの実行状態302などの情報)を表示させる。つまり、目盛り332、座標、ワーク404、工具406、NCプログラム310のブロック、ブロックの実行状態302、のうちの少なくとも1つが窓200に表示される。
図7は、仮想空間における3次元モデルの例を示す図である。
モデリング部154は、メモリ領域に展開される仮想空間内に、加工部102に含まれる装置や部品およびワーク3次元モデルを置き、加工部102の動きに合わせてそれらの3次元モデルを移動させる。つまり、モデリング部154は、加工部102に含まれる装置や部品の3次元モデルの形状や位置を、現実の装置や部品の形状や位置と一致させる。また、切削によってワーク404の形が変わる場合には、ワーク404の3次元モデルも変形させる。この技術は、たとえば干渉予防の機能としても行われている。なお、干渉予防の観点では、この先に起こる移動を予想して求めた機械座標(以下、「将来機械座標」という)を用いて、少し将来の3次元モデルの形状や位置を決めるように処理するが、この実施形態におけるモデリングでは、現在の機械座標を用いて、現在の3次元モデルの形状や位置を決めるだけで足りる。ただし、モデリング部154において将来機械座標に3次元モデルを配置し、表示処理部156は、将来機械座標に配置された3次元モデルを透明ディスプレイ240に投影するようにしてもよい。
具体的には、モデリング部154は、図示するように回転軸3次元モデル510、チャック3次元モデル502、ワーク3次元モデル504、刃物台3次元モデル508および工具3次元モデル506を仮想空間内に設定する。また、モデリング部154は、工具3次元モデル506の刃先を基準として目盛り3次元モデル532を仮想空間内に設定する。目盛り3次元モデル532の2線の交点が工具3次元モデル506の刃先の位置と一致するようにする。さらに、モデリング部154は、ワーク3次元モデル504の端面の中心を基準としてワーク座標系3次元モデル530を仮想空間内に設定する。ワーク座標系3次元モデル530の3軸線の交点がワーク3次元モデル504の端面の中心と一致するようにする。
そして、NC制御装置104が加工室内の刃物台408と工具406を移動させるときに、情報取得部150は、刃物台408と工具406の移動の情報を取得し、モデリング部154は、その情報に基づいて仮想空間内の刃物台3次元モデル508および工具3次元モデル506を移動させる。また、モデリング部154は、工具3次元モデル506の移動に合わせて目盛り3次元モデル532も移動させる。
現実空間における透明ディスプレイ240の位置に相当する仮想空間内の位置に、仮想表示面540が設定される。仮想表示面540の大きさや形は、透明ディスプレイ240の大きさや形に合わせられる。さらに、現実空間における作業者の目の位置に相当する仮想空間内の位置に、仮想視点550が設定される。実施形態では、仮想視点550は移動しない。仮想視点550を移動させる態様は、変形例1で説明する。
表示処理部156は、仮想視点550から見て、仮想表示面540において目盛り3次元モデル532と重なるところに目盛り写像552を描く。目盛り3次元モデル532の1点(たとえば、2本の目盛りの交点)に着目した場合に、表示処理部156は、仮想視点550とその1点とを結ぶ線が仮想表示面540の上で交わる点を、写像の1点とする。目盛り3次元モデル532に含まれる各点について同様に特定される点の集まりによって、目盛り写像552が定まる。表示処理部156は、仮想表示面540における目盛り写像552を透明ディスプレイ240に投影させる。
このようにすれば、作業者は、透明ディスプレイ240に表示された目盛り332越しに実際の工具406とワーク404を見て、目盛り332を参照して工具406とワーク404との距離を目測することができる。
また、表示処理部156は、同様の方法で、ワーク座標系3次元モデル530を透明ディスプレイ240に投影する。つまり、表示処理部156は、仮想視点550から見て、仮想表示面540においてワーク座標系3次元モデル530と重なるところにワーク座標系330の写像(図7では省略する)を描く。ワーク座標系3次元モデル530の1点(たとえば、3軸線の交点)に着目した場合に、表示処理部156は、仮想視点550とその1点とを結ぶ線が仮想表示面540の上で交わる点を、ワーク座標系330の写像の1点とする。ワーク座標系3次元モデル530に含まれる各点について同様に特定される点の集まりによって、ワーク座標系330の写像が定まる。表示処理部156は、仮想表示面540におけるワーク座標系330の写像を透明ディスプレイ240に表示させる。
なお、同様の方法で、目盛り332とワーク座標系330以外の3次元モデルを透明ディスプレイ240に投影することが可能である。表示処理部156は、ワーク3次元モデル504を仮想表示面540に写像して、ワーク404を透明ディスプレイ240に表示させてもよい。表示処理部156は、工具3次元モデル506を仮想表示面540に写像して、工具406を透明ディスプレイ240に表示させてもよい。たとえば、切削している間はクーラントに隠れてワーク404や工具406が見えない。しかし、透明ディスプレイ240に、ワーク3次元モデル504の投影および工具3次元モデル506の投影を表示すれば、切削中のワーク404や工具406がどのようになっているかを把握しやすくなる。このように、表示されるワーク404の情報は、窓200を通して見えないワーク404の部分の3次元画像であってもよい。
表示処理部156がワーク3次元モデル504や工具3次元モデル506などの3次元モデルを透明ディスプレイ240に投影する場合に、3次元モデルの平面の境界や輪郭を表す外形線で表された画像(以下、「2次元画像」という)を表示させてもよいし、3次元モデルを陰影や色彩が施された面で表された画像(以下、「3次元画像」という)を表示させてもよい。2次元画像を表示させる場合には、表示処理部156は、仮想表示面540の上に3次元モデルの平面の境界や輪郭を表す外形線の写像を生成し、その写像を透明ディスプレイ240に表示させる。3次元画像を表示させる場合には、表示処理部156は、レンダリングの処理によって、仮想表示面540の上に3次元モデルの面に陰影や色彩を施した写像を生成し、その写像を透明ディスプレイ240に表示させる。
表示処理部156は、ワークのオフセット情報を表示させてもよい。表示処理部156は、ワークのオフセット情報を、ワークのオフセットの座標を示すマークとして表示させてもよいし、オフセットの座標値((たとえば、「Xwo:××,Ywo:××,Zwo:××」))として表示させてもよい。表示処理部156は、工具のオフセット情報を表示させてもよい。表示処理部156は、工具のオフセット情報を、工具のオフセットの座標を示すマークとして表示させてもよいし、工具のオフセットの座標値((たとえば、「Xto:××,Yto:××,Zto:××」))として表示させてもよい。
このように、表示されるワーク404の情報は、ワーク404の2次元画像、ワーク404の3次元画像、ワーク404のオフセット情報のうちの少なくとも1つである。また、表示される工具406の情報は、工具406の2次元画像、工具406の3次元画像、工具406のオフセット情報のうちの少なくとも1つである。
図5と図6に示した移動終点座標334は、仮想空間における移動終点の機械座標を仮想表示面540に写像する方法で描かれる。表示処理部156は、仮想視点550から見て、仮想表示面540において移動終点と重なるところに移動終点座標334のマークを描く。つまり、表示処理部156は、仮想視点550とその1点と移動終点を結ぶ線が仮想表示面540の上で交わる点を、移動終点の表示位置とする。表示処理部156は、透明ディスプレイ240における移動終点の表示位置に移動終点座標334のマークを表示する。上述のとおり、表示処理部156は、移動終点座標334の機械座標値(たとえば、「Xe:××,Ye:××,Ze:××」)を透明ディスプレイ240に表示させてもよい。
図示していないが、表示処理部156は、仮想空間における移動始点の機械座標を仮想表示面540に写像する方法で、移動始点座標のマークを透明ディスプレイ240に表示させてもよい。上述のとおり、表示処理部156は、移動始点の機械座標値(たとえば、「Xs:××,Ys:××,Zs:××」)を透明ディスプレイ240に表示させてもよい。
また、表示処理部156は、仮想空間における工具406の機械座標を仮想表示面540に写像する方法で、工具406の機械座標のマークを透明ディスプレイ240に表示させてもよい。上述のとおり、表示処理部156は、工具406の機械座標値(たとえば、「Xt:××,Yt:××,Zt:××」)を透明ディスプレイ240に表示させてもよい。工具406の機械座標は、たとえば刃先などの所定箇所の位置を示す。
上述した目盛り332は工具406を基準とする位置に表示されたが、表示処理部156は、ワーク404を基準とする位置に目盛り332を表示させてもよい。たとえば、2本の目盛り線の交点がワーク404の端面の中心に合わせられる。ワーク404を基準とする目盛り332でも、作業者はワーク404と工具406の間の距離を把握できる。また、表示処理部156がワーク404を基準とする目盛り332といっしょにワーク404も表示させれば、作業者はワーク404の位置、長さおよび大きさを確認できる。このように、表示処理部156によって、作業者の視線に対して、内部(加工室内)にあるワーク404と目盛り332とが視認できる位置に表示され、目盛り332をもとに、作業者は、ワーク404の位置、長さ又は大きさの少なくともいずれか1つを確認できる。
上述した実施形態によれば、作業者は窓200の前とモニター112の前を行き来しなくても済むようになる。また、窓200に目盛り332を表示するので、ドアを開けて加工室内に入らなくてもワーク404と工具406の間隔などの状態を外からの目測で把握できる。
実施形態では、仮想視点550は動かない。したがって、作業者が、所定の位置から加工室内を見るようにする。作業者の目の位置に合わせて仮想視点550が動く態様は、変形例1で説明する。
[変形例1]
変形例1では、作業者の位置に応じて表示の位置や大きさなどを変える。つまり、作業者がどの角度から加工室内を見たとしても、透明ディスプレイ240に表示される目盛り332、ワーク座標系330、ワーク404や工具406などが、加工室の実際の装置や工具の位置と整合するように表示される。たとえば、作業者が窓200の前で右へ移動すると、目盛り332は右に動き、目盛り332の交点が工具の基準点に重なり続ける。反対に、作業者が窓200の前で左へ移動すると、目盛り332は左に動き、目盛り332の交点が工具の基準点に重なり続ける。また、作業者が窓200に近づくと、目盛り332はわずかに小さくなり、作業者が窓200から遠のくと、目盛り332はわずかに大きくなる。その結果、常にワーク404と工具406の間の距離を正しく示すことができる。
図1に示したように、工作機械100は、作業者を撮像するカメラ600を備える。カメラ600は、全天球カメラなどの広角のカメラ600であることが望ましい。広角のカメラであれば、作業者が広い範囲で移動しても、その位置をとらえられる。カメラ600で作業者を撮像して、撮像画像に基づいて目位置検出部158で作業者の目の位置を検出する。
目位置検出部158は、まずカメラ600から撮像画像を取得する。目位置検出部158は、取得された撮像画像を歪みのない画像に展開する。目位置検出部158は、展開された画像から作業者の顔を検出する。目位置検出部158は、検出された作業者の顔から作業者の両目を検出し、展開された画像における両目の位置を特定する。目位置検出部158は、画像における両目の間隔を算出する。目位置検出部158は、算出された両目の間隔に基づいて、カメラ600から両目までの距離を算出する。目位置検出部158には、実際の作業者の両目の間隔が予め記憶されているものとする。目位置検出部158は、画像における両目の間隔と実際の両目の間隔とを比較して、カメラ600から両目までの距離を求めることができる。目位置検出部158は、展開された画像における両目の位置によって、カメラ600からの方向を特定でき、さらに両目までの距離によってカメラ600と両目の位置関係、つまりカメラ座標系における両目の座標を特定できる。目位置検出部158は、両目のカメラ座標を機械座標に変換することによって、作業者の両目の機械座標を求めることができる。
表示処理部156は、作業者の両目の機械座標を取得して、1つの仮想視点550を決める。右目の座標あるいは左目の座標のいずれかを使用するか設定されている場合には、表示処理部156は、その設定に従って一方の目の機械座標を仮想視点550の機械座標として用いる。右目の座標あるいは左目の座標のいずれかを使用するかが設定されていない場合には、表示処理部156は、右目と左目の中央点の機械座標を仮想視点550の機械座標として用いる。
上述した処理を繰り返すことによって、現実空間における作業者の目の位置に合わせて、仮想空間内で仮想視点550を追従させることができる。したがって、常時作業者が見たときに、透明ディスプレイ240に表示される目盛り332、ワーク座標系330、ワーク404や工具406などが、加工室の実際の装置や工具の位置と整合するようになる。作業者の目の位置が右側に動いた場合に、表示処理部156は、NCプログラム310のブロックおよびブロックの実行状態302などの情報の表示位置を右側に移動させ、反対に作業者の目の位置が左側に動いた場合に、表示処理部156は、NCプログラム310のブロックおよびブロックの実行状態302などの情報の表示位置を左側に移動させるようにしてもよい。このように、表示処理部156は、作業者の目の位置に基づいて、特定の情報(目盛り332、各種座標、ワーク404、工具406、NCプログラム310のブロックおよびブロックの実行状態302などの情報)の表示位置を決める。
[変形例2]
作業者の頭部に搭載される表示装置であるヘッドマウント型のディスプレイを用いるようにしてもよい。
上述した透明ディスプレイを用いる場合、仮想視点550は1つである。そのため、一方の目から見た場合に、表示画像340と実際の製品や部品の位置が正しく重なって見えるが、他方の目から見た場合には、ぼやけて見えたり、画像位置がずれて見えたりする。ヘッドマウント型のディスプレイでは、左右の目に対して別々に視点を設定した画像を映すことができる。ヘッドマウント型のディスプレイは、右目の表示部と左目の表示部を有する。変形例2では、左右の目の位置に合わせて、仮想視点550を2つ設ける。表示処理部156は、右目の仮想視点550で作成した表示画像340を右目の表示部に表示させ、左目の仮想視点550で作成した表示画像340を左目の表示部に表示させる。このようにすれば、左右の目とも、画像位置のずれが生じないので、両目を使って正確に観察することができる。
たとえば実施形態と同様に、右目の仮想視点550と左目の仮想視点550を所定の機械座標として、表示処理部156は、右目の仮想視点550を用いて仮想表示面540に写像した右目用の表示画像340を右目の表示部に表示させる。また、表示処理部156は、左目の仮想視点550を用いて仮想表示面540に写像した左目用の表示画像340を左目の表示部に表示させる。
あるいは変形例1と同様に、目位置検出部158が作業者の右目の位置(機械座標)を検出し、同じく左目の位置(機械座標)を検出してもよい。その場合、表示処理部156は、検出された右目の位置を右目の仮想視点550として用いて右目用の表示画像340を生成して、右目の表示部に表示させる。また、表示処理部156は、検出された左目の位置を左目の仮想視点550として用いて左目用の表示画像340を生成して、左目の表示部に表示させる。
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。