(57)【要約】【課題】  切削量ゼロで被切削物表面を移動させる場合に、ネバリ感を排除する。【解決手段】  切削量演算手段８は前記仮想回転切削工具切削能力データおよびユーザから与えられる前記仮想回転切削工具の単位時間当たりの回転数に基づいて、前記仮想回転切削工具による単位時間あたりの切削量である単位時間切削量を演算する。位置決定手段１０は、被切削対象物に対して、前記仮想回転切削工具の点群データとボクセルデータの衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を二分探索法にて探索し、前記仮想回転切削工具の位置を決定する。その際、前記仮想回転切削工具の進行方向とは逆側の境界点を所定距離だけ、法線方向に戻して二分探索における中点を演算する。【選択図】  図１
2011212223.tif 000002
【特許請求の範囲】
【請求項１】
仮想回転切削工具について、離散的な点群データの集合で定義された形状データ、および基準被切削対象物に対する単位時間回転数当たりの切削能力データを記憶する仮想回転切削工具データ記憶手段、
ボクセルデータの集合で定義された各被切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数を記憶する被切削係数記憶手段、
仮想三次元座標空間における被切削対象物の被切削対象物配置位置データを記憶する配置データ記憶手段、
実三次元空間における力覚デバイスによって特定される仮想回転切削工具の位置データが与えられると、これを前記仮想三次元座標空間における仮想回転切削工具の位置データに変換する変換手段、
前記変換された仮想回転切削工具の位置データおよび前記被切削対象物配置位置データから衝突対象の被切削対象物を決定する決定手段、
前記仮想回転切削工具切削能力データおよびユーザから与えられる前記仮想回転切削工具の単位時間当たりの回転数に基づいて、前記仮想回転切削工具による単位時間あたりの切削量である単位時間切削量を演算する切削量演算手段、
前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想回転切削工具の点群データとボクセルデータの衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を二分探索法にて探索し、前記仮想回転切削工具の位置を決定する位置決定手段、
前記決定した位置に応じて、前記力覚デバイスに抗力を与える抗力付与手段、
を備えた歯科シミュレーション装置であって、
前記位置決定手段は、前記二分探索における中点演算処理にて、前記仮想回転切削工具の進行方向とは逆側の境界点を、前記被切削対象物の表面から離れる方向に所定距離だけ戻して中点を演算すること、
を特徴とする歯科シミュレーション装置。
【請求項２】
仮想切削工具について、離散的な点群データの集合で定義された形状データ、および基準被切削対象物に対する単位時間当たりの切削能力データを記憶する仮想切削工具データ記憶手段、
ボクセルデータの集合で定義された各被切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数を記憶する被切削係数記憶手段、
仮想三次元座標空間における被切削対象物の被切削対象物配置位置データを記憶する配置データ記憶手段、
実三次元空間における力覚デバイスによって特定される仮想切削工具の位置データが与えられると、これを前記仮想三次元座標空間における仮想切削工具の位置データに変換する変換手段、
前記変換された仮想切削工具の位置データおよび前記被切削対象物配置位置データから衝突対象の被切削対象物を決定する決定手段、
前記切削能力データおよびユーザから与えられる前記仮想切削工具の単位時間当たりの切削量決定データに基づいて、前記仮想切削工具による単位時間あたりの切削量である単位時間切削量を演算する切削量演算手段、
前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想切削工具の点群データとボクセルデータの衝突数を演算し、この衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を探索し、前記仮想切削工具の位置として決定する位置決定手段、
を備えた切削シミュレーション処理における位置決定装置。
【請求項３】
請求項２の切削シミュレーション処理における位置決定装置において、
前記位置決定手段は、前記換算衝突量が前記単位時間切削量と合致する位置を探索する際、前記仮想切削工具の進行方向とは逆側の境界点を、前記被切削対象物から離れる方向に所定距離だけ戻した位置との間で、探索を行うこと、
を特徴とする切削シミュレーション処理における位置決定装置。
【請求項４】
請求項３の切削シミュレーション処理における位置決定装置において、
前記位置決定手段は、前記仮想切削工具の進行方向とは逆側の境界点を、前記被切削対象物の表面における法線方向に所定距離だけ戻して、前記探索すること、
を特徴とする切削シミュレーション処理における位置決定装置。
【請求項５】
請求項２〜請求項４のいずれかの切削シミュレーション処理における位置決定装置において、
前記位置決定手段は、前記探索として二分探索を行う場合に、その初期探索範囲として、前回の仮想切削工具の位置から所定距離先間で、前記単位時間切削量を越える衝突があるか否か判断し、かかる衝突がない場合には、力覚デバイスによって特定される仮想切削工具の位置を前記切削工具の進行方向側の二分探索境界点とし、かかる衝突がある場合には、前回の仮想切削工具の位置から所定距離進んだ位置を前記切削工具の進行方向側の二分探索境界点とすること、
を特徴とする切削シミュレーション処理における位置決定装置。
【請求項６】
Ａ）コンピュータに、下記データＡ１）〜Ａ３）を記憶させておき、
Ａ１）仮想切削工具について、離散的な点群データの集合で定義された形状データ、および基準被切削対象物に対する単位時間当たりの切削能力データ、
Ａ２）ボクセルデータの集合で定義された各被切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数データ、
Ａ３）仮想三次元座標空間における被切削対象物の被切削対象物配置位置データ、
Ｂ）前記コンピュータは、下記ステップを実行すること、
実三次元空間における力覚デバイスによって特定される仮想切削工具の位置データが与えられると、これを前記仮想三次元座標空間における仮想切削工具の位置データに変換するステップ、
前記変換された仮想切削工具の位置データおよび前記被切削対象物配置位置データから衝突対象の被切削対象物を決定するステップ、
前記切削能力データおよびユーザから与えられる前記仮想切削工具の単位時間当たりの切削量決定データに基づいて、前記仮想切削工具による単位時間あたりの切削量である単位時間切削量を演算するステップ、
前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想切削工具の点群データとボクセルデータの衝突数を演算し、この衝突数を前記被切削係数データで換算した換算衝突量が、前記単位時間切削量と合致する位置を探索し、前記切削工具の位置を決定するステップ、
を特徴とする切削シミュレーション処理における位置決定方法。
【請求項７】
コンピュータを下記手段として機能させるための切削シミュレーション処理における位置決定プログラム。
仮想切削工具について、離散的な点群データの集合で定義された形状データ、および基準被切削対象物に対する単位時間当たりの切削能力データを記憶する仮想切削工具データ記憶手段、
ボクセルデータの集合で定義された各被切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数を記憶する被切削係数記憶手段、
仮想三次元座標空間における被切削対象物の被切削対象物配置位置データを記憶する配置データ記憶手段、
実三次元空間における力覚デバイスによって特定される仮想切削工具の位置データが与えられると、これを前記仮想三次元座標空間における仮想切削工具の位置データに変換する変換手段、
前記変換された仮想切削工具の位置データおよび前記被切削対象物配置位置データから衝突対象の被切削対象物を決定する決定手段、
前記切削能力データおよびユーザから与えられる前記仮想切削工具の単位時間当たりの切削量決定データに基づいて、前記仮想切削工具による単位時間あたりの切削量である単位時間切削量を演算する切削量演算手段、
前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想切削工具の点群データとボクセルデータの衝突数を演算し、この衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を探索し、前記切削工具の位置を決定する位置決定手段。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、切削シミュレーション処理における位置決定装置に関し、特に接触判断に関する。
【背景技術】
【０００２】
被切削物の切削シミュレーションにおいて、ペナルティ法が知られている。ペナルティ法は接触する物体同士の侵入を許容し、侵入量に応じた力を接触力として物体に課すことで接触を数値的に模擬する方法である。
【０００３】
特許文献１には、物体同士の接触判定の際、格子同士の幾何学計算により接触判定を行うため、処理が煩雑になり、計算コストも増加するというペナルティ法を採用した場合の問題点が指摘されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2007-114866号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
すなわち、従来は、ペナルティ法を採用しつつ、物体の接触判断を簡易に行える方法が待望されているにも拘わらず、解決手法が知られていなかった。
【０００６】
この発明は、上記問題を解決し、簡易に接触判断を行うことができるシミュレーション装置またはその方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
(1)本発明にかかる歯科シミュレーション装置は、Ａ）仮想回転切削工具について、離散的な点群データの集合で定義された形状データ、および基準被切削対象物に対する単位時間回転数当たりの切削能力データを記憶する仮想回転切削工具データ記憶手段、Ｂ）ボクセルデータの集合で定義された各被切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数を記憶する被切削係数記憶手段、Ｃ）仮想三次元座標空間における被切削対象物の被切削対象物配置位置データを記憶する配置データ記憶手段、Ｄ）実三次元空間における力覚デバイスによって特定される仮想回転切削工具の位置データが与えられると、これを前記仮想三次元座標空間における仮想回転切削工具の位置データに変換する変換手段、Ｅ）前記変換された仮想回転切削工具の位置データおよび前記被切削対象物配置位置データから衝突対象の被切削対象物を決定する決定手段、Ｆ）前記仮想回転切削工具切削能力データおよびユーザから与えられる前記仮想回転切削工具の単位時間当たりの回転数に基づいて、前記仮想回転切削工具による単位時間あたりの切削量である単位時間切削量を演算する切削量演算手段、Ｇ）前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想回転切削工具の点群データとボクセルデータの衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を二分探索法にて探索し、前記仮想回転切削工具の位置を決定する位置決定手段、Ｈ）前記決定した位置に応じて、前記力覚デバイスに抗力を与える抗力付与手段を備え、Ｉ）前記位置決定手段は、前記二分探索における中点演算処理にて、前記仮想回転切削工具の進行方向とは逆側の境界点を、前記被切削対象物の表面から離れる方向に所定距離だけ戻して中点を演算する。
【０００８】
このように、前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想回転切削工具の点群データとボクセルデータの衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を二分探索法にて探索し、前記仮想回転切削工具の位置を決定する。したがって、前記演算された単位時間切削量に合致する位置を決定することができる。また、前記二分探索における中点演算処理にて、前記仮想回転切削工具の進行方向とは逆側の境界点を、前記被切削対象物の表面から離れる方向に所定距離だけ戻して中点を演算する。したがって、前記仮想回転切削工具を被切削物表面に沿って移動させる場合のネバリ感を排除することができる。
【０００９】
(2)本発明にかかる切削シミュレーション処理における位置決定装置は、Ａ）仮想切削工具について、離散的な点群データの集合で定義された形状データ、および基準被切削対象物に対する単位時間当たりの切削能力データを記憶する仮想切削工具データ記憶手段、Ｂ）ボクセルデータの集合で定義された各被切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数を記憶する被切削係数記憶手段、Ｃ）仮想三次元座標空間における被切削対象物の被切削対象物配置位置データを記憶する配置データ記憶手段、Ｄ）実三次元空間における力覚デバイスによって特定される仮想切削工具の位置データが与えられると、これを前記仮想三次元座標空間における仮想切削工具の位置データに変換する変換手段、Ｅ）前記変換された仮想切削工具の位置データおよび前記被切削対象物配置位置データから衝突対象の被切削対象物を決定する決定手段、Ｆ）前記切削能力データおよびユーザから与えられる前記仮想切削工具の単位時間当たりの切削量決定データに基づいて、前記仮想切削工具による単位時間あたりの切削量である単位時間切削量を演算する切削量演算手段、Ｇ）前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想切削工具の点群データとボクセルデータの衝突数を演算し、この衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を探索し、前記仮想切削工具の位置として決定する位置決定手段、を備えている。
【００１０】
このように、前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想切削工具の点群データとボクセルデータの衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を探索し、前記仮想切削工具の位置を決定することにより、前記演算された単位時間切削量に合致する位置を決定することができる。したがって、簡易に接触判断が可能となる。
【００１１】
(3)本発明にかかる切削シミュレーション処理における位置決定装置においては、前記位置決定手段は、前記換算衝突量が前記単位時間切削量と合致する位置を探索する際、前記仮想切削工具の進行方向とは逆側の境界点を、前記被切削対象物から離れる方向に所定距離だけ戻した位置との間で、探索を行う。したがって、前記仮想切削工具を被切削物表面に沿って移動させる場合のネバリ感を排除することができる。
【００１２】
(4)本発明にかかる切削シミュレーション処理における位置決定装置においては、前記位置決定手段は、前記仮想切削工具の進行方向とは逆側の境界点を、前記被切削対象物の表面における法線方向に所定距離だけ戻して、前記探索する。したがって、前記仮想切削工具を被切削物表面に沿って移動させる場合のネバリ感を排除することができる。また、前記被切削物表面が凹凸がある場合に現実と同じような引っかかりをシミュレートすることもできる。
【００１３】
(5)本発明にかかる切削シミュレーション処理における位置決定装置においては、前記位置決定手段は、前記二分探索における初期探索範囲として、前回の仮想切削工具の位置から所定距離先間で、前記単位時間切削量を越える衝突があるか否か判断し、かかる衝突がない場合には、力覚デバイスによって特定される仮想切削工具の位置を前記切削工具の進行方向側の二分探索境界点とし、かかる衝突がある場合には、前回の仮想切削工具の位置から所定距離進んだ位置を前記切削工具の進行方向側の二分探索境界点とする。したがって、前回の仮想切削工具の位置から所定距離進んだ位置では、被切削対象物が存在しないような場合でも、二分探索が可能となる。
【００１４】
(6)本発明にかかる切削シミュレーション処理における位置決定方法は、Ａ）コンピュータに、下記データＡ１）〜Ａ３）を記憶させておき、Ａ１）仮想切削工具について、離散的な点群データの集合で定義された形状データ、および基準被切削対象物に対する単位時間当たりの切削能力データ、
Ａ２）ボクセルデータの集合で定義された各被切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数データ、
Ａ３）仮想三次元座標空間における被切削対象物の被切削対象物配置位置データ、
Ｂ）前記コンピュータは、下記ステップを実行する。
【００１５】
実三次元空間における力覚デバイスによって特定される仮想切削工具の位置データが与えられると、これを前記仮想三次元座標空間における仮想切削工具の位置データに変換するステップ、
前記変換された仮想切削工具の位置データおよび前記被切削対象物配置位置データから衝突対象の被切削対象物を決定するステップ、
前記切削能力データおよびユーザから与えられる前記仮想切削工具の単位時間当たりの切削量決定データに基づいて、前記仮想切削工具による単位時間あたりの切削量である単位時間切削量を演算するステップ、
前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想切削工具の点群データとボクセルデータの衝突数を演算し、この衝突数を前記被切削係数データで換算した換算衝突量が、前記単位時間切削量と合致する位置を探索し、前記切削工具の位置を決定するステップ。このように、前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想切削工具の点群データとボクセルデータの衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を探索し、前記仮想切削工具の位置を決定することにより、前記演算された単位時間切削量に合致する位置を決定することができる。
【００１６】
(7)本発明にかかる切削シミュレーション処理における位置決定プログラムは、コンピュータを下記手段として機能させるためのプログラムである。Ａ）仮想切削工具について、離散的な点群データの集合で定義された形状データ、および基準被切削対象物に対する単位時間当たりの切削能力データを記憶する仮想切削工具データ記憶手段、Ｂ）ボクセルデータの集合で定義された各被切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数を記憶する被切削係数記憶手段、Ｃ）仮想三次元座標空間における被切削対象物の被切削対象物配置位置データを記憶する配置データ記憶手段、Ｄ）実三次元空間における力覚デバイスによって特定される仮想切削工具の位置データが与えられると、これを前記仮想三次元座標空間における仮想切削工具の位置データに変換する変換手段、Ｅ）前記変換された仮想切削工具の位置データおよび前記被切削対象物配置位置データから衝突対象の被切削対象物を決定する決定手段、Ｆ）前記切削能力データおよびユーザから与えられる前記仮想切削工具の単位時間当たりの切削量決定データに基づいて、前記仮想切削工具による単位時間あたりの切削量である単位時間切削量を演算する切削量演算手段、Ｇ）前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想切削工具の点群データとボクセルデータの衝突数を演算し、この衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を探索し、前記切削工具の位置を決定する位置決定手段。
【００１７】
このように、前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想切削工具の点群データとボクセルデータの衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を探索し、前記仮想切削工具の位置を決定することにより、前記演算された単位時間切削量に合致する位置を決定することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明にかかる歯科シミュレーション装置１の機能ブロック図である。
【図２】歯科シミュレーション装置１のハードウェア構成を示す図である。
【図３】力覚デバイスの外観概要を示す図である。
【図４】歯科シミュレーション装置１の全体フローチャートである。
【図５】仮想デバイス位置決定処理のフローチャートである。
【図６】二分探索を説明するための図である。
【図７】切削量pxとなる位置の探索処理のフローチャートである。
【図８】突き抜けてしまう状態を示す図である。
【図９】ネバリ回避処理を説明するための図である。
【図１０】仮想デバイス位置決定処理（ネバリ回避）のフローチャートである。
【図１１】ネバリ回避処理を説明するための図である。
【図１２】ネバリ回避処理を説明するための図である。
【発明を実施するための形態】
【００１９】
以下、本発明における実施形態について、図面を参照して説明する。
【００２０】
（１.機能ブロック図について）
歯科シミュレーション装置１は、仮想回転切削工具データ記憶手段３、被切削係数記憶手段４、配置データ記憶手段５、変換手段６，決定手段７、切削量演算手段８、位置決定手段１０、抗力付与手段１２、力覚デバイス１４を備えている。
【００２１】
仮想回転切削工具データ記憶手段３は仮想回転切削工具について、離散的な点群データの集合で定義された形状データ、および基準被切削対象物に対する単位時間回転数当たりの切削能力データを記憶する。被切削係数記憶手段４は、ボクセルデータの集合で定義された各切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数を記憶する。配置データ記憶手段５は、仮想三次元座標空間における被切削対象物の被切削対象物配置位置データを記憶する。
【００２２】
変換手段６は、力覚デバイス１４から仮想回転切削工具の位置データが与えられると、これを前記仮想三次元座標空間における仮想回転切削工具の位置データに変換する。決定手段７は前記変換された仮想回転切削工具の位置データおよび前記被切削対象物配置位置データから衝突対象の被切削対象物を決定する。切削量演算手段８は前記仮想回転切削工具切削能力データおよびユーザから与えられる前記仮想回転切削工具の単位時間当たりの回転数に基づいて、前記仮想回転切削工具による単位時間あたりの切削量である単位時間切削量を演算する。位置決定手段１０は前記被切削対象物配置位置データで特定される被切削対象物に対して、前記仮想回転切削工具の点群データとボクセルデータの衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を二分探索法にて探索し、前記仮想回転切削工具の位置を決定する。また、前記二分探索における中点演算処理にて、前記仮想回転切削工具の進行方向とは逆側の境界点を所定距離だけ、法線方向に戻して中点を演算する。抗力付与手段１２は前記位置に応じて、前記力覚デバイスに抗力を与える。
【００２３】
位置決定手段１０は、前記仮想回転切削工具の点群データとボクセルデータの衝突数を前記被切削係数で換算した換算衝突量が、前記単位時間切削量と合致する位置を二分探索法にて探索し、前記仮想回転切削工具の位置を決定する。したがって、前記演算された単位時間切削量に合致する位置を決定することができる。また、前記二分探索における中点演算処理にて、前記仮想回転切削工具の進行方向とは逆側の境界点を所定距離だけ、法線方向に戻して中点を演算する。したがって、切削量ゼロで被切削物表面を移動させる場合に、ネバリ感を排除することができる。
【００２４】
（２.ハードウェア構成）
図１に示す歯科シミュレーション装置１のハードウェア構成について、図２を用いて説明する。同図は、歯科シミュレーション装置１を、ＣＰＵを用いて構成したハードウェア構成の一例である。
【００２５】
歯科シミュレーション装置１は、ＣＰＵ２３、メモリ２７、ハードディスク２６、モニタ３０、光学式ドライブ２５、入力デバイス２８（マウス２８ａ，キーボード２８ｂ）、フットペダル３２，力覚デバイス３３およびバスライン２９を備えている。ＣＰＵ２３は、ハードディスク２６に記憶された各プログラムにしたがいバスライン２９を介して、各部を制御する。
【００２６】
ハードディスク２６には、オペレーティングシステムプログラム２６ｏ（以下ＯＳと略す）、シミュレーションプログラム２６ｐ、フットペダル用プログラム２６f、力覚デバイス用プログラム２６r、切削量決定データ記憶部２６ｋが記憶される。本実施形態においては、オペレーティングシステムプログラム（ＯＳ）２６ｏとして、WindowsXP（登録商標または商標）を採用したが、これに限定されるものではない。
【００２７】
なお、上記各プログラムは、光学式ドライブ２５を介して、プログラムが記憶されたＣＤ−ＲＯＭ２５ａから読み出されてハードディスク２６にインストールされたものである。なお、ＣＤ−ＲＯＭ以外に、フレキシブルディスク（ＦＤ）、ＩＣカード等のプログラムをコンピュータ可読の記録媒体から、ハードディスクにインストールさせるようにしてもよい。さらに、通信回線を用いてダウンロードするようにしてもよい。
【００２８】
本実施形態においては、プログラムをＣＤ−ＲＯＭからハードディスク２６にインストールさせることにより、ＣＤ−ＲＯＭに記憶させたプログラムを間接的にコンピュータに実行させるようにしている。しかし、これに限定されることなく、ＣＤ−ＲＯＭに記憶させたプログラムを光学式ドライブ２５から直接的に実行するようにしてもよい。なお、コンピュータによって、実行可能なプログラムとしては、そのままインストールするだけで直接実行可能なものはもちろん、一旦他の形態等に変換が必要なもの（例えば、データ圧縮されているものを、解凍する等）、さらには、他のモジュール部分と組合して実行可能なものも含む。
【００２９】
力覚デバイス３３について説明する。本実施形態においては、力覚デバイス（接触フィードバックデバイス）として、日本バイナリー株式会社が販売している「PHANToM Omni」を採用した。この力覚デバイスは図３に示すように、矢印４１，４３，４５、５１，５３，５５方向に回転自在に構成されており、操作者は把持部５７を持って任意の位置に移動させることができる。
【００３０】
矢印４１，４３，４５、５１，５３，５５方向に回転する回転軸には角度センサーが設けられている（図示せず）。これらの角度センサーからデータを受けて、力覚デバイス用プログラム２６rは、X、Y、Zの三次元座標に加えて、ヨーデータ、ピッチデータ、ロールデータを取得する。すなわち、位置についての３自由度、姿勢についての３自由度が得られる。また、力覚デバイス用プログラム２６rは、矢印４１，４３，４５方向に、内蔵されているモータにより、力覚デバイス３３の操作者に対して反力を与える。反力は３つのモータにより操作者に与えられるので、力の３自由度である。
【００３１】
図２に示すフットペダル３２から踏み込み量が与えられると、フットペダル用プログラム２６fは、これを切削回転工具の角速度に変換する。
【００３２】
切削量決定データ記憶部２６ｋには、1)仮想回転切削工具である各種の歯科切削具についての形状データ、2)基準被切削対象物に対する単位時間回転数当たりの切削能力データ、3)各被切削対象物である歯の仮想三次元座標空間における形状および配置位置データ、4)各被切削対象物に対して、前記基準被切削対象物に対する相対的な切削しやすさを表す被切削係数が記憶されている。
【００３３】
歯科切削具についての形状データは、離散的な点群データの集合で定義される。歯の形状はボクセルデータの集合で定義されている。
【００３４】
（３.シミュレーションプログラムの処理 ）
図４を用いて、シミュレーションプログラム26P（図２参照）による制御について説明する。図４Ａに示すように、ＣＰＵ２３は、仮想デバイス位置決定処理（ステップＳ１）および反力ベクトル出力処理(ステップＳ３)を終了命令があるまで（ステップＳ４）、繰り返す。また、ＣＰＵ２３は、かかる処理と並行して、図４Ｂに示す表示処理を実行する。具体的には、所定時間経過毎に（ステップＳ５）、仮想デバイス位置を読み出して表示位置を変更する(ステップＳ６）。これを終了命令あるまで繰り返す(ステップＳ７）。
【００３５】
図４Ａに示す仮想デバイス位置決定処理ステップＳ１の詳細を図５に示す。ＣＰＵ２３は、力覚デバイスプログラム２６rから、最新のデータ（X、Y、Zの三次元座標、ヨーデータ、ピッチデータ、ロールデータについて、回転移動行列と平行移動行列の合わさったもの）を取得する（図５ステップＳ３０）。これにより、仮想空間における現在の位置および与えられている力の方向を得ることができる。
【００３６】
ＣＰＵ２３は、最新データから演算対象となる被切削物を決定する（ステップＳ３１）。具体的な処理としては、ＣＰＵ２３が、実デバイスの位置に仮想デバイスを移動させた場合に接触する被切削物を特定する。ＣＰＵ２３は、ハードディスク２６の切削量決定データ記憶部２６kから、歯科切削具であるドリルの削りやすさ係数を読み出す(ステップＳ３３)。ＣＰＵ２３は、ドリルの削りやすさ係数、および現在の角加速度から切削量pxを計算する(ステップＳ３４)。現在の角速度は、フットペダル用プログラムから受け取ればよい。また、切削量pxは、下記式（１）で与えられる。
【００３７】
px＝（ドリルの削りやすさ係数）＊（現在の角加速度）・・・（１)
ここで、ドリルの削りやすさ係数は下記（２）式で与えられる。
【００３８】
（ドリルの削りやすさ係数）＝（ドリルの最大角速度の時の削りやすさ係数）＊(ドリルの角速度/ドリルの最大角速度)・・・（２）
以下では、仮想デバイス６０が歯７０に対して、歯から１０ミリ程度離れた位置から角速度ηで歯の表面に削り、これにより、図６Ａに示すように、被切削対象物である歯７０に対して、離れた位置に存在する仮想デバイス６０が、歯７０に対して、一部がめり込むように表示されることとなる場合を例として説明する。
【００３９】
この場合、操作者は、フットペダル２２および実デバイス８０を操作して、点P0まで移動させる。角速度ηで歯の表面に削る場合を例として説明する。
【００４０】
ＣＰＵ２３は、前回の仮想デバイス位置から所定先までの間に切削量pxを越える衝突があるか否か判断する(図５ステップＳ３５)。その際、ＣＰＵ２３は、衝突する被切削物の削りやすさ係数を考慮して、切削量pxと合致するか否かを判断する。本実施形態においては、ドリルの形状は離散的な点群データで定義されており、歯はボクセルデータで定義されており、ドリルと歯との衝突する点群の数によって判断するようにした。いま、px=10が得られたものとする。
【００４１】
本実施形態においては、ステップＳ３５の所定値を、通常の切削処理では単位時間当たりの切削量よりも大きな値となる２ミリとした。ステップＳ３５の意義については後述する。
【００４２】
この場合、切削回転工具の角速度はηであり、切削量px=10が得られている。ＣＰＵ２３は、仮想デバイス６０の位置（この場合、１０ミリ離れた位置）から所定先である２ミリ進んだ位置までの間には、切削量pxをこえる衝突があるか否か判断する(ステップＳ３５）。既に説明したように、切削量pxは、ドリルの削りやすさ係数、および現在の角加速度から計算されている(ステップＳ３４参照)。しかしながら、現実にどの程度削れるかについては、被切削物の削りやすさも影響する。したがって、本実施形態においては、被切削物の材質毎に、削りやすさ係数を記憶しておき、かかる被切削物の削りやすさ係数を考慮した換算衝突数が切削量pxを越えるか否かを判断するようにした。
【００４３】
この場合、もともと歯の表面から１０ミリ程度離れた位置が前回位置であり、２ミリ進んでも、まだ歯７０には衝突しない。すなわち、前回の仮想デバイス位置から所定先までの間に切削量px（=10）を越える衝突がないので、ＣＰＵ２３は、実デバイス位置を内側位置する(ステップＳ３７)。具体的には図６Ａの点P0の位置が内側位置となる。
【００４４】
ＣＰＵ２３は、内側位置で切削量pxをこえる衝突があるか否か判断する(ステップＳ３８)。例えば、点P0の位置で、仮に、歯７０のエナメル質のボクセルが８０個、仮想デバイス６０と衝突しているとする。この場合、歯７０のエナメル質の削りやすさ係数が、「２」である場合、８０／２＝４０が、仮想デバイス位置が当該位置における衝突量となる。また、点P0の位置で、仮に歯７０のエナメル質のボクセルが６０個、象牙質が１０個、仮想デバイス６０と衝突しているとする。この場合、歯７０のエナメル質の削りやすさ係数が、「２」で、象牙質の削りやすさ係数が「１」である場合、６０／２＋１０／１＝４０が、仮想デバイス位置が当該位置における衝突量となる。
【００４５】
このように、ＣＰＵ２３は、衝突しているボクセル毎に、削りやすさ係数を考慮して、切削量pxとの比較をおこなう。ここでは、点p2における衝突量が「４０」であったものとする。したがって、内側位置では切削量pxをこえる衝突がある。したがって、衝突する点群が所定数pxとなる位置を探索する(ステップＳ４１)。ステップＳ４１の詳細フローチャートを図７に示す。
【００４６】
ＣＰＵ２３は仮想デバイス位置を外側位置とする(図７ステップＳ６１)。この場合、図６Ａの点P1が外側位置となる。ＣＰＵ２３は、外側位置と内側位置の距離が閾値以下か否か判断する(図７ステップＳ６３)。これは、かかる所定値以下になった場合に二分探索を中止するためである。本実施形態においては、ステップＳ６３における閾値を０．５ミリとした。
【００４７】
この場合、かかる閾値以上は離れているので、ＣＰＵ２３は、外側位置と内側位置から中点位置を求め(ステップＳ６４）、中点位置で切削量pxを越えているか否か判断する(ステップＳ６５）。以下では、中点位置P２が図６Ａに示す位置であり、かつ、切削量pxを越える衝突が発生する場合とする。したがって、ＣＰＵ２３は、この中点位置P2を内側位置とする(図７ステップＳ６７)。
【００４８】
ＣＰＵ２３は、外側位置と内側位置の距離が閾値以下か否か判断する(ステップＳ６３)。この場合、両者は、かかる閾値以上は離れているので、ＣＰＵ２３は、外側位置と内側位置から中点位置を求め(ステップＳ６４）中点位置で切削量pxを越えているか否か判断する(ステップＳ６５）。ここで、中点位置P3が図６Ａに示す位置である場合、切削量pxを越える衝突が発生していないとすると、ＣＰＵ２３は、この中点位置P3を外側位置とする(ステップＳ６９)。
【００４９】
ＣＰＵ２３は、外側位置と内側位置の距離が閾値以下か否か判断する(ステップＳ６３)。この場合、両者は、かかる閾値以上は離れているので、ＣＰＵ２３は、外側位置と内側位置から中点位置を求め(ステップＳ６４）中点位置で切削量pxを越えているか否か判断する(ステップＳ６５）。ここで、中点位置P4が図６Ａに示す位置である場合、切削量pxを越える衝突が発生しているとすると、ＣＰＵ２３は、この中点位置P4を内側位置とする(ステップＳ６７)。
【００５０】
このような処理を繰り返し、外側位置pnと内側位置pn-1の距離が閾値以下になる点pnの位置が探索位置となる（ステップＳ７０）。
【００５１】
ＣＰＵ２３は、図５に示すステップＳ４１で求めた位置を仮想デバイス位置とする（ステップＳ４２）。
【００５２】
ＣＰＵ２３は、仮想デバイス位置決定処理（図４ステップＳ１）が終了すると、反力ベクトル出力処理(ステップＳ３)を実行する。反力ベクトルの演算手法は、一般的なペナルティ法における演算と同様である。すなわち、力覚デバイスへ与える反力ベクトルを、式（３）で求めればよい。
【００５３】
力覚デバイスへ与える反力ベクトル[N] ＝バネ反力ベクトル[N] +ダンパ反力ベクトル[N] ・・・（３）
ここで、バネ反力ベクトルは、式（４）で求められる。
【００５４】
バネ反力ベクトル[N] = めり込みベクトル[mm] * 平均バネ係数[N/mm] *(-1）・・・（４）
めり込みベクトルは、実デバイス位置と、ステップＳ４２で求めた仮想デバイス位置との差分をベクトルとして求めればよい。なお、平均バネ係数[N/mm] は被切削対象物毎に設定されているバネ係数[N/mm]を個数分だけ総計して、平均を求めればよい。式（４）において、（−１）を乗算しているのは逆方向のベクトルを求めるためである。
【００５５】
また、ダンパ反力ベクトル[N]は式（５）で求めればよい。
【００５６】
ダンパ反力ベクトル[N] = 相対速度[mm/s] * ダンパ係数[N/(mm/s)] *（-1）・・・式（５）
ここで、相対速度とは、デバイスの移動速度であり、力覚デバイス用プログラム２６rから与えられる。
【００５７】
なお、ダンパ係数についても、バネ係数と同様に演算すればよい。
【００５８】
図６Ｂに示すように、切削回転工具の角速度がゼロであり、歯７０の表面に仮想デバイス６０が位置する場合についても、衝突量が図５ステップＳ３４で決定された切削量と一致する位置を見つける処理としては全く同じである。すなわち、ステップＳ３５−ステップＳ３７−ステップＳ３８−ステップＳ４１−ステップＳ４２の処理によって、仮想デバイス６０の位置が決定される。
【００５９】
また、実デバイスの移動量が少なく、実デバイスの位置まで仮想デバイスを移動させても、まだ、被切削物には衝突しない場合もある。この場合も、上記と同じく、ステップＳ３５からステップＳ３７に進む。そして、ＣＰＵ２３は、ステップＳ３８にて、内側デバイス位置で切削量pxをこえる衝突がないと判断する。これにより、ＣＰＵ２３は、内側位置を仮想デバイスの位置とする(ステップＳ４３)。
【００６０】
ところで、被切削物を切削する場合において、単純に二分探索処理をすると、図８Ａ、Ｂ、Ｃに示すように、回転切削工具の進行方向における被切削対象物の厚みdが薄い場合、突き抜けてしまうような形状である場合には、二分探索を行うことができない場合が生ずる。なぜなら、二分探索は、内側位置と外側位置の間で衝突量の値が順に並んでいる（ソートされている）場合でなければ不可能だからである。そこで、本実施形態においては、ステップＳ３５に示す初期値を設定し、かかる初期値離れた位置で切削量pxを越える衝突がある場合には、前記初期値離れた位置を仮想デバイスの位置とし、その範囲で二分探索するようにした。
【００６１】
具体的には、図８に示すような場合には、所定値先では切削量pxをこえる衝突があるので、ＣＰＵ２３は、初回発見位置を内側位置とする(ステップＳ３６)。その後、ステップＳ３８からステップＳ４１に進んで、二分探索する処理については、同様であるので説明は省略する。
【００６２】
なお、ステップＳ３５における初期値だけ進んだ位置における衝突数が、切削量pxとして考えられる値の上限よりも大きな値となるように、前記初期値を設定すればよい。これにより、図６Ａのように離れた位置からではなく、歯８０を切削中である場合にも、ステップＳ３５からステップＳ３６に進み、上記所定値離れた位置内で二分探索が行われる。現在切削中の場合、削れる量との関係で実デバイス位置まで探索するような場合は存在しないであろうと推測されるからである。
【００６３】
本実施形態においては、薄皮であるような場合だけでなく、切削中でかつ所定値離れた位置でも被切削対象物が存在する場合には、初期値離れた位置で切削量pxを越える衝突があるとして、初回発見位置を内側位置とするようにした。しかし、これに限定されない。
【００６４】
（４．粘り対策処理について)
ペナルティ法においては、前回の仮想デバイスの位置から実デバイスの位置を結んだ線分上で、切削量pxに合致する位置を探索する。したがって、図９Ａに示すように、歯の表面をスムーズに移動させるという動きをした場合に、以下のようなネバリ処理問題が生ずる。本実施形態においては、かかる問題を解決するために、二分探索する際に、一度、前回の仮想デバイス位置を法線方向に所定距離戻す処理を行うようにした。これにより、上記粘り感を解消することができる。以下、説明する。
【００６５】
図９Ａは、歯１００に仮想デバイス９０を押し当てて、歯１００の表面を滑るように移動するようなシミュレーションをした場合を示す。この場合、仮想デバイス９０を押し当たるためには、実デバイス８０は図９Ａに示すように歯１００の内側方向（α方向）に位置する。このように内側に位置する状態で、実デバイス８０を矢印β方向に移動させて、点P11から点P12に移動させたとする。二分探索法では、実デバイスの位置が内側位置となり（図５ステップＳ３７）、前回の仮想デバイスの位置が外側位置となり（図７ステップＳ６１）、かかる内側位置と外側位置の間で、矢印γ方向における中点を求めて、かかる中点が図５ステップＳ３４で求めた切削量と一致する衝突量となる位置を探索する。
【００６６】
しかし、このように表面に押しつけて滑らす場合、切削量pxはゼロであり、かつ、もともと、仮想デバイス９０は歯の表面に接している状態であれば、かかる条件を満たす中点は存在しないこととなる。したがって、仮想デバイス９０の位置は図９Ａに示すように、矢印β方向には止まったままとなる。本実施形態においては、図５ステップＳ３８とステップＳ４１の間に、図１０に示すように、法線方向を決定し（ステップＳ３９）、仮想デバイス位置を所定量浮かした位置とする（ステップＳ４０）の２つのステップを追加している。これにより、図９Ａに示すような押しつけて滑らすようなシミュレーションでも、図９Ｂに示すように、所定量法線方向に浮かす（点p20からp22へ移動させている）ことにより、中点を探索した際に、浮かした分だけ、矢印β方向に仮想デバイス９０を移動させることができる。これにより、仮想デバイス９０を点p23の位置まで移動させることができる。
【００６７】
本実施形態においては、上記浮かす量を2ミリとしたが、これに限定されるわけではない。
【００６８】
なお、かかる粘り対策において法線方向に戻す処理をする（浮かす）ことにより、表面が図１１Ａに示すようになだらかな場合はもちろん、図１１Ｂに示すように凹凸がある場合でも、表面に押しつけたまま滑らすことができる。さらに、図１１Ｃに示すように、凹凸の形状が急峻になった場合には、その位置でそれ以上移動しないように制御可能である。以下詳述する。図１１Ａは実デバイス８０を点p100〜点101に移動させた場合である。この場合、仮想デバイス９０は、点p111から点p121に所定量、浮かされ、点p112に移動し・・・・というように点p117まで移動する。
【００６９】
図１１Ｂについても同様である。図１１Ｃに示すように法線方向に戻した場合に、矢印β方向とは逆方向に位置する場合には、その位置で止まろうとする。かかる処理について図１２を用いて説明する。図１２Ａは仮想デバイス９０はP151から法線方向である矢印１３１方向に移動し、その後、矢印１３２方向、１３３方向・・・矢印１３６方向と進み、点１６１の辺りで法線方向に戻す方向と進める方向が一致して、止まることとなる。また、図１２Ｂに示すように、段差に乗り上げる場合、点P171と，から法線方向である矢印１４１方向に移動し、その後、矢印１４２方向、１４３方向、矢印１４４方向と進み、点１７１の辺りで止まることとなる。
【００７０】
このように、粘り対策として所定量浮かすことにより、表面における法線方向がある閾値を超えると、それ以上進まないという制御が自動的に行われる。この場合、ドリルを歯７０に当てる角度を変更することにより、表面の凹凸にあわせて実際と同じような動きとなるシミュレーションが可能となる。
【００７１】
また、本実施形態においては、ネバリ処理のために、二分探索の外側位置を所定距離だけ法線方向に戻すようにしたが、これに限定されず、前回の仮想デバイス位置から実デバイスの方向よりも移動方向側の範囲内において被切削対象物の表面から離す方向（表面離反進行方向）に戻すようにすればよい。
【００７２】
戻す方向が法線方向であれば、図１１のような現実にマッチしたシミュレーションが可能となる。また、移動方向側に進めることにより、実デバイスの位置により早く移動するので、ネバリ感をより少なくすることができる。また、図11のような突部に引っかかってそれ以上進まないという減少を回避することもできる。一方、実デバイスを被切削対象物に押しつける方向に近づけるほど、ネバリ感が大きくなる。
【００７３】
また、本実施形態においては、被切削対象物をボクセルデータとして定義しているので、法線の求め方についてはマーチングキューブズ法で面を定義して、面に対する法線を求めるようにした。しかし、法線の求め方については、これに限定されない。
【００７４】
なお、本実施形態においては、全ての場合について、かかる粘り対策をするようにしたが、粘り処理が必要な場合を条件文として記憶させておき、かかる条件を満足する場合に、このような法線方向へ浮かす処理をするようにしてもよい。
【００７５】
また、切削量がゼロである場合について説明したが、軽く切削させる場合も同様である。
【００７６】
（５．他の実施形態)
本実施形態においては、歯の切削シミュレーターについて適用した場合について説明したが、歯以外の、たとえば、臓器等の切削シミュレーションについても同様に適用することができる。
【００７７】
本実施形態においては、換算衝突量と切削量pxが一致する場合に、両者が合致すると判断したが、これらの差分が所定の閾値以下になる場合に、合致すると判断するようにしてもよい。
【００７８】
本実施形態においては、二分探索法を用いたがこれに限定されない。例えば連続するサンプリングタイム（時刻）における衝突数を、ニュートン法、ニュートンラプソン法等の方法で探索するようにしてもよい。これにより、より高速位置を求めることができる。
【００７９】
上記実施形態においては、バネ係数およびダンパ係数について、あるサンプリングタイム（時刻）における静的な平均を求めるようにしたが、前後の複数のサンプリングタイム（時刻）で移動平均を求めてもよい。また、粘性係数は速度と比例するので、速度に応じて荷重平均等を採用することもできる。
【００８０】
また、力覚デバイスへ返す反力については、最大値に制限があったり(たとえば、最大値は５N等)が、その精度が粗い場合（０．１N単位でしか扱えない等）もある。このような場合には、閾値を設定しておき、上限値となるよう値を変換したり、値を量子化するようにしてもよい。
【００８１】
上記実施形態においては、仮想切削工具の形状と被切削対象物である歯との衝突量について、衝突数と材質特性の積和に基づいて、換算衝突量を求めるようにした。しかし、これに限定されず、仮想切削工具の形状を簡易形状とするようにしてもよい。具体的には、歯の切削に用いるドリルは形状表面から所定距離しか現実には切削できない。したがって、その部分の形状とするようにしてもよい。その際、その形状を球であると擬製することより、簡易演算が可能とある。かかる形状については、任意であり、たとえば、惰球、直方体、立方体、面の集合などを採用するようにしてもよい。
【００８２】
上記実施形態においては、切削工具が回転数が変動することにより、切削能力が変動する場合を例に説明した。しかしこれに限定されず、レーザメスのようにシミュレーション装置の使用者が強弱を変更することにより、切削工具の切削エネルギーが変わる場合についても同様に適用することができる。
【００８３】
また、上記実施形態においては、仮想切削工具を用いる場合について説明したが、マッサージシミュレーションや触診シミュレーション等にも適用することもできる。この場合、指に嵌めるような力覚デバイスを採用すればよい。この場合、下記のような発明として把握することができる。
【００８４】
仮想力覚デバイスについて、離散的な点群データの集合で定義された形状データ、および基準被押圧対象物に対する単位時間当たりの基準押圧能力データを記憶する仮想力覚デバイスデータ記憶手段、
ボクセルデータの集合で定義された各被押圧対象物に対して、前記基準被押圧対象物に対する相対的な被押圧しやすさを表す被押圧係数を記憶する被押圧係数記憶手段、
仮想三次元座標空間における被押圧対象物の被押圧対象物配置位置データを記憶する配置データ記憶手段、
実三次元空間における力覚デバイスによって特定される仮想力覚デバイスの位置データが与えられると、これを前記仮想三次元座標空間における仮想力覚デバイスの位置データに変換する変換手段、
前記変換された仮想力覚デバイスの位置データおよび前記被押圧対象物配置位置データから衝突対象の被切削対象物を決定する決定手段、
前記基準押圧能力データおよびユーザから与えられる前記仮想力覚デバイスの単位時間当たりの押圧力決定データに基づいて、前記仮想切削工具による単位時間あたりの押圧量である単位時間押圧量を演算する押圧量演算手段、
前記被切削対象物配置位置データで特定される被押圧対象物に対して、前記仮想力覚デバイスの点群データとボクセルデータの衝突数を演算し、この衝突数を前記被押圧係数で換算した換算衝突量が、前記単位時間押圧量と合致する位置を探索し、前記仮想力覚デバイスの位置として決定する位置決定手段、
を備えた押圧シミュレーション処理における位置決定装置。
【００８５】
上記実施形態においては、図１に示す機能を実現するために、ＣＰＵ２３を用い、ソフトウェアによってこれを実現している。しかし、その一部もしくは全てを、ロジック回路などのハードウェアによって実現してもよい。なお、プログラムの一部の処理を、オペレーティングシステム（ＯＳ）にさせるようにしてもよい。
【図１】
2011212223.tif 000003
【図２】
2011212223.tif 000004
【図３】
2011212223.tif 000005
【図４】
2011212223.tif 000006
【図５】
2011212223.tif 000007
【図６】
2011212223.tif 000008
【図７】
2011212223.tif 000009
【図８】
2011212223.tif 000010
【図９】
2011212223.tif 000011
【図１０】
2011212223.tif 000012
【図１１】
2011212223.tif 000013
【図１２】
2011212223.tif 000014