(57)【特許請求の範囲】
【請求項１】
接線方向のピッチ角及びヨー角のそれぞれが曲線長または曲線長変数の二次式で与えられる３次元曲線（３次元クロソイド曲線という）を用いて工具軌跡またはワークの輪郭形状を表現し、
前記３次元曲線に沿って移動する工具の運動を指定し、
指定された運動に従って単位時間毎に工具の移動位置を算出する数値制御方法。
ここで、運動とは、時間の関数として変化する位置情報をいう。
前記３次元クロソイド曲線を以下の式で定義する。
【数１】
0004667794.tif 000077
ここで、
【数２】
0004667794.tif 000078
はそれぞれ、３次元クロソイド曲線上の点の位置ベクトル、及びその初期値を示す。
始点からの曲線の長さをsとし、その全長（始点から終点までの長さ）をhとする。sをhで割った値をSで表わす。Sは無次元の値であり、これを曲線長変数と呼ぶ。
ｉ，ｊ，ｋはそれぞれ、x軸、y軸、及びz軸方向の単位ベクトルである。
uは点Pにおける曲線の接線方向を示す単位ベクトルであり、式(2)によって与えられる。Eｋβ及びEｊαは回転マトリクスであり、それぞれ、ｋ軸まわりの角度βの回転及びｊ軸まわりの角度αの回転を表わしている。前者をヨー(yaw)回転、後者をピッチ(pitch)回転という。式(2)は、ｉ軸方向の単位ベクトルを、まずｊ軸まわりにαだけ回し、しかるのちにｋ軸まわりにβだけ回すことによって、接線ベクトルｕが得られることを示している。ａ０，ａ１，ａ２，ｂ０，ｂ１，ｂ２は定数。
【請求項２】
接線方向のピッチ角及びヨー角のそれぞれが曲線長または曲線長変数の二次式で与えられる３次元曲線（３次元クロソイド曲線という）を用いて工具軌跡またはワークの輪郭形状を表現し、
前記３次元曲線に沿って移動する工具の運動を指定し、
指定された運動に従って単位時間毎に工具の移動位置を算出する数値制御装置。
ここで、運動とは、時間の関数として変化する位置情報をいう。
前記３次元クロソイド曲線を以下の式で定義する。
【数１】
0004667794.tif 000079
ここで、
【数２】
0004667794.tif 000080
はそれぞれ、３次元クロソイド曲線上の点の位置ベクトル、及びその初期値を示す。
始点からの曲線の長さをsとし、その全長（始点から終点までの長さ）をhとする。sをhで割った値をSで表わす。Sは無次元の値であり、これを曲線長変数と呼ぶ。
ｉ，ｊ，ｋはそれぞれ、x軸、y軸、及びz軸方向の単位ベクトルである。
uは点Pにおける曲線の接線方向を示す単位ベクトルであり、式(2)によって与えられる。Eｋβ及びEｊαは回転マトリクスであり、それぞれ、ｋ軸まわりの角度βの回転及びｊ軸まわりの角度αの回転を表わしている。前者をヨー(yaw)回転、後者をピッチ(pitch)回転という。式(2)は、ｉ軸方向の単位ベクトルを、まずｊ軸まわりにαだけ回し、しかるのちにｋ軸まわりにβだけ回すことによって、接線ベクトルｕが得られることを示している。ａ０，ａ１，ａ２，ｂ０，ｂ１，ｂ２は定数。
【請求項３】
工具の運動を数値制御するために、
コンピュータを、
接線方向のピッチ角及びヨー角のそれぞれが曲線長または曲線長変数の二次式で与えられる３次元曲線（３次元クロソイド曲線という）を用いて工具軌跡またはワークの輪郭形状を表現する手段と、
前記３次元曲線に沿って移動する工具の運動を指定する手段と、
指定された運動に従って単位時間毎に工具の移動位置を算出する手段、として機能させるためのプログラム。
ここで、運動とは、時間の関数として変化する位置情報をいう。
前記３次元クロソイド曲線を以下の式で定義する。
【数１】
0004667794.tif 000081
ここで、
【数２】
0004667794.tif 000082
はそれぞれ、３次元クロソイド曲線上の点の位置ベクトル、及びその初期値を示す。
始点からの曲線の長さをsとし、その全長（始点から終点までの長さ）をhとする。sをhで割った値をSで表わす。Sは無次元の値であり、これを曲線長変数と呼ぶ。
ｉ，ｊ，ｋはそれぞれ、x軸、y軸、及びz軸方向の単位ベクトルである。
uは点Pにおける曲線の接線方向を示す単位ベクトルであり、式(2)によって与えられる。Eｋβ及びEｊαは回転マトリクスであり、それぞれ、ｋ軸まわりの角度βの回転及びｊ軸まわりの角度αの回転を表わしている。前者をヨー(yaw)回転、後者をピッチ(pitch)回転という。式(2)は、ｉ軸方向の単位ベクトルを、まずｊ軸まわりにαだけ回し、しかるのちにｋ軸まわりにβだけ回すことによって、接線ベクトルｕが得られることを示している。ａ０，ａ１，ａ２，ｂ０，ｂ１，ｂ２は定数。
【請求項４】
工具の運動を数値制御するために、
コンピュータを、
接線方向のピッチ角及びヨー角のそれぞれが曲線長または曲線長変数の二次式で与えられる３次元曲線（３次元クロソイド曲線という）を用いて工具軌跡またはワークの輪郭形状を表現する手段と、
前記３次元曲線に沿って移動する工具の運動を指定する手段と、
指定された運動に従って単位時間毎に工具の移動位置を算出する手段、として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
ここで、運動とは、時間の関数として変化する位置情報をいう。
前記３次元クロソイド曲線を以下の式で定義する。
【数１】
0004667794.tif 000083
ここで、
【数２】
0004667794.tif 000084
はそれぞれ、３次元クロソイド曲線上の点の位置ベクトル、及びその初期値を示す。
始点からの曲線の長さをsとし、その全長（始点から終点までの長さ）をhとする。sをhで割った値をSで表わす。Sは無次元の値であり、これを曲線長変数と呼ぶ。
ｉ，ｊ，ｋはそれぞれ、x軸、y軸、及びz軸方向の単位ベクトルである。
uは点Pにおける曲線の接線方向を示す単位ベクトルであり、式(2)によって与えられる。Eｋβ及びEｊαは回転マトリクスであり、それぞれ、ｋ軸まわりの角度βの回転及びｊ軸まわりの角度αの回転を表わしている。前者をヨー(yaw)回転、後者をピッチ(pitch)回転という。式(2)は、ｉ軸方向の単位ベクトルを、まずｊ軸まわりにαだけ回し、しかるのちにｋ軸まわりにβだけ回すことによって、接線ベクトルｕが得られることを示している。ａ０，ａ１，ａ２，ｂ０，ｂ１，ｂ２は定数。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット、工作機械、組立機械、検査機械などの作業機械（ロボット等という）における工具（ハンド等の把持部や各種のツールを含む）の運動を制御する数値制御方法及び装置に関し、特に工具の３次元的な運動を制御する数値制御方法及び装置に関する。
【背景技術】
【０００２】
溶接、塗装、接着剤塗布などの数値制御を行うロボットにおいては、一般に入力図形は離散的な点列データとして入力される。したがって、連続的な図形を生成するには、なんらかの方法を用いて点列を補間する必要がある。
【０００３】
任意に与えられた点列間を補間する方法としては、折れ線の角部を丸める方法やＢスプライン補間、３次式スプライン補間などが知られているが、与えられた各点を厳密に通りうる補間法としては、３次式スプライン補間が知られている（非特許文献１参照）。
【０００４】
しかし、３次式スプライン補間は、幾何学的意味を持たない独立変数を媒介変数として表現されているため、独立変数と曲線の幾何学的諸量との関係が不定である、という大きな欠点を持っている。この３次式スプライン補間は、始点からの移動距離と曲率の関係が複雑であり、線速度を一定に保つような制御には不向きである。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
２次元においては与えられた各点を通る補間方法として、クロソイド補間法が発明者らによって提案され、滑らかに補間できることが知られている（非特許文献２参照）。そこでクロソイド曲線を３次元に拡張し、自由点列の補間に用いれば、曲線の長さの関数として表されるクロソイド曲線の特徴より、線速度を一定に保ったり、線長に応じて変化させたりするような制御を容易に実現できると思われる。また、曲線長をパラメータとしているため、他の方法と違い、線長を後から求める必要もない利点もあり、クロソイド補間を３次元に拡張することは数値制御などの分野において有益であることが期待される。これまでにクロソイド曲線を３次元に拡張したものとしては、Liらの”3D Discrete Clothoid Splines”（非特許文献３参照）などが知られているが、式の形でクロソイド曲線を３次元に拡張したものは知られていない。式の形での拡張は、各値を容易に算出できる点で優位である。
【０００６】
そこで本発明は、工具の運動を数値制御するために、独立変数に対する曲率変化パターンが単純な２次元クロソイド曲線の特性をできるだけ引き継いだ新たな３次元クロソイド曲線の定義式を提供することを目的とする。
【０００７】
【非特許文献１】穂坂衛・佐田登志夫著,”統合化ＣＡＤ/ＣＡＭシステム”オーム社、1997
【非特許文献２】仇時雨,牧野洋,須田大春,横山恭男,”クロソイドによる自由曲線補間法”(日本ロボット学会誌８巻６号,pp40-47)
【非特許文献３】Li Guiqing, Li Xianmin, Li Hua ”3D Discrete Clothoid Splines”,(CGI’01,pp321-324)
【課題を解決するための手段】
【０００８】
以下、本発明について説明する。
請求項１の発明は、接線方向のピッチ角及びヨー角のそれぞれが曲線長または曲線長変数の二次式で与えられる３次元曲線（３次元クロソイド曲線という）を用いて工具軌跡またはワークの輪郭形状を表現し、前記３次元曲線に沿って移動する工具の運動を指定し、指定された運動に従って単位時間毎に工具の移動位置を算出する数値制御方法により、上述した課題を解決する。ここで、運動とは、時間の関数として変化する位置情報をいう。  前記３次元クロソイド曲線を以下の式で定義する。
【００１０】
【数１】
0004667794.tif 000002
【００１１】
ここで、
【数２】
0004667794.tif 000003
はそれぞれ、３次元クロソイド曲線上の点の位置ベクトル、及びその初期値を示す。
【００１２】
始点からの曲線の長さをsとし、その全長（始点から終点までの長さ）をhとする。sをhで割った値をSで表わす。Sは無次元の値であり、これを曲線長変数と呼ぶ。
ｉ，ｊ，ｋはそれぞれ、x軸、y軸、及びz軸方向の単位ベクトルである。
uは点Pにおける曲線の接線方向を示す単位ベクトルであり、式(2)によって与えられる。Eｋβ及びEｊαは回転マトリクスであり、それぞれ、ｋ軸まわりの角度βの回転及びｊ軸まわりの角度αの回転を表わしている。前者をヨー(yaw)回転、後者をピッチ(pitch)回転という。式(2)は、ｉ軸方向の単位ベクトルを、まずｊ軸まわりにαだけ回し、しかるのちにｋ軸まわりにβだけ回すことによって、接線ベクトルｕが得られることを示している。ａ0，ａ1，ａ2，ｂ0，ｂ1，ｂ2は定数。
【００１３】
請求項２の発明は、接線方向のピッチ角及びヨー角のそれぞれが曲線長または曲線長変数の二次式で与えられる３次元曲線（３次元クロソイド曲線という）を用いて工具軌跡またはワークの輪郭形状を表現し、前記３次元曲線に沿って移動する工具の運動を指定し、指定された運動に従って単位時間毎に工具の移動位置を算出する数値制御装置である。ここで、運動とは、時間の関数として変化する位置情報をいう。  前記３次元クロソイド曲線を以下の式で定義する。
【数１】
0004667794.tif 000004
ここで、
【数２】
0004667794.tif 000005
はそれぞれ、３次元クロソイド曲線上の点の位置ベクトル、及びその初期値を示す。
始点からの曲線の長さをsとし、その全長（始点から終点までの長さ）をhとする。sをhで割った値をSで表わす。Sは無次元の値であり、これを曲線長変数と呼ぶ。
ｉ，ｊ，ｋはそれぞれ、x軸、y軸、及びz軸方向の単位ベクトルである。
uは点Pにおける曲線の接線方向を示す単位ベクトルであり、式(2)によって与えられる。Eｋβ及びEｊαは回転マトリクスであり、それぞれ、ｋ軸まわりの角度βの回転及びｊ軸まわりの角度αの回転を表わしている。前者をヨー(yaw)回転、後者をピッチ(pitch)回転という。式(2)は、ｉ軸方向の単位ベクトルを、まずｊ軸まわりにαだけ回し、しかるのちにｋ軸まわりにβだけ回すことによって、接線ベクトルｕが得られることを示している。ａ０，ａ１，ａ２，ｂ０，ｂ１，ｂ２は定数。
【００１４】
請求項３の発明は、工具の運動を数値制御するために、コンピュータを、接線方向のピッチ角及びヨー角のそれぞれが曲線長または曲線長変数の二次式で与えられる３次元曲線（３次元クロソイド曲線という）を用いて工具軌跡またはワークの輪郭形状を表現する手段と、前記３次元曲線に沿って移動する工具の運動を指定する手段と、指定された運動に従って単位時間毎に工具の移動位置を算出する手段、として機能させるためのプログラムである。ここで、運動とは、時間の関数として変化する位置情報をいう。  前記３次元クロソイド曲線を以下の式で定義する。
【数１】
0004667794.tif 000006
ここで、
【数２】
0004667794.tif 000007
はそれぞれ、３次元クロソイド曲線上の点の位置ベクトル、及びその初期値を示す。
始点からの曲線の長さをsとし、その全長（始点から終点までの長さ）をhとする。sをhで割った値をSで表わす。Sは無次元の値であり、これを曲線長変数と呼ぶ。
ｉ，ｊ，ｋはそれぞれ、x軸、y軸、及びz軸方向の単位ベクトルである。
uは点Pにおける曲線の接線方向を示す単位ベクトルであり、式(2)によって与えられる。Eｋβ及びEｊαは回転マトリクスであり、それぞれ、ｋ軸まわりの角度βの回転及びｊ軸まわりの角度αの回転を表わしている。前者をヨー(yaw)回転、後者をピッチ(pitch)回転という。式(2)は、ｉ軸方向の単位ベクトルを、まずｊ軸まわりにαだけ回し、しかるのちにｋ軸まわりにβだけ回すことによって、接線ベクトルｕが得られることを示している。ａ０，ａ１，ａ２，ｂ０，ｂ１，ｂ２は定数。
【００１５】
請求項４の発明は、工具の運動を数値制御するために、コンピュータを、接線方向のピッチ角及びヨー角のそれぞれが曲線長または曲線長変数の二次式で与えられる３次元曲線（３次元クロソイド曲線という）を用いて工具軌跡またはワークの輪郭形状を表現する手段と、前記３次元曲線に沿って移動する工具の運動を指定する手段と、指定された運動に従って単位時間毎に工具の移動位置を算出する手段、として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。ここで、運動とは、時間の関数として変化する位置情報をいう。  前記３次元クロソイド曲線を以下の式で定義する。
【数１】
0004667794.tif 000008
ここで、
【数２】
0004667794.tif 000009
はそれぞれ、３次元クロソイド曲線上の点の位置ベクトル、及びその初期値を示す。
始点からの曲線の長さをsとし、その全長（始点から終点までの長さ）をhとする。sをhで割った値をSで表わす。Sは無次元の値であり、これを曲線長変数と呼ぶ。
ｉ，ｊ，ｋはそれぞれ、x軸、y軸、及びz軸方向の単位ベクトルである。
uは点Pにおける曲線の接線方向を示す単位ベクトルであり、式(2)によって与えられる。Eｋβ及びEｊαは回転マトリクスであり、それぞれ、ｋ軸まわりの角度βの回転及びｊ軸まわりの角度αの回転を表わしている。前者をヨー(yaw)回転、後者をピッチ(pitch)回転という。式(2)は、ｉ軸方向の単位ベクトルを、まずｊ軸まわりにαだけ回し、しかるのちにｋ軸まわりにβだけ回すことによって、接線ベクトルｕが得られることを示している。ａ０，ａ１，ａ２，ｂ０，ｂ１，ｂ２は定数。
【発明の効果】
【００１６】
本発明によれば、３次元クロソイド曲線の主変数が曲線長または曲線長変数であり、その接線方向のピッチ角及びヨー角がそれぞれ曲線長または曲線長変数の二次式で与えられるので、これを１回微分して得られる法線方向、及び２回微分して得られる曲率が曲線長または曲線長変数に関して連続であることが保証される。言い換えれば、一つのクロソイド曲線の中では法線方向及び曲率が連続である。したがって、滑らかで性質の良い曲線が得られ、力学的に無理のない速度変化を実現する数値制御方式が可能となる。
【発明を実施するための最良の形態】
【００１７】
以下本発明について、３次元クロソイド曲線の定義と特徴、３次元クロソイド曲線による補間法、３次元クロソイド補間を用いた数値制御方法に分けて順次説明する。
【００１８】
１．  ３次元クロソイド曲線の定義と特徴
（１）３次元クロソイドの基本式
クロソイド曲線(Clothoid curve)は、別名コルニューの螺旋(Cornu’s spiral)とも呼
ばれ、曲線の長さに比例して曲率が変化する曲線である。
従来知られている２次元のクロソイド曲線は、平面曲線（２次元曲線）の一種であり、図１に示されるｘｙ座標上において、次式で表される。
【００１９】
【数３】
0004667794.tif 000010
【００２０】
ここで、
【００２１】
【数４】
0004667794.tif 000011
【００２２】
は曲線上の点を表わす位置ベクトル、
【００２３】
【数５】
0004667794.tif 000012
【００２４】
は、その初期値（始点の位置ベクトル）である。
【００２５】
【数６】
0004667794.tif 000013
【００２６】
は、曲線の接線方向を表わす単位ベクトル（長さが１のベクトル）であり、その方向φは原線（ｘ軸方向）から反時計まわりに測られる。この単位ベクトルに微小長さdsをかけて積分すると曲線上の点Pが求められる。
【００２７】
曲線に沿って測った曲線の始点からの長さをｓとし、その全長（始点から終点までの長さ）をｈとする。ｓをｈで割った値をＳで表わす。Ｓは無次元の値であり、これを曲線長変数と呼ぶ。
【００２８】
クロソイド曲線の特徴は、式(2)で示したように、接線方向角φが曲線長ｓまたは曲線
長変数Ｓの二次式で表わされることにある。ｃ０，ｃ１，ｃ２またはφ０，φｖ，φｕは二次式の係数であり、これら及び曲線の全長ｈをクロソイドのパラメータと呼ぶ。図２は一般的なクロソイド曲線の形状を示す。
【００２９】
以上の関係を３次元に拡張して、３次元クロソイド曲線の式を作る。従来３次元クロソイド曲線を与える式は知られていなかったが、発明者らは初めてこれを導いた。
【００３０】
３次元クロソイド曲線を以下の式で定義する。
【００３１】
【数７】
0004667794.tif 000014
【００３２】
ここで、
【００３３】
【数８】
0004667794.tif 000015
【００３４】
はそれぞれ、３次元クロソイド上の点の位置ベクトル、及びその初期値を示す。ｉ，ｊ，ｋはそれぞれ、x軸、y軸、及びz軸方向の単位ベクトルである。
【００３５】
uは点Pにおける曲線の接線方向を示す単位ベクトルであり、式(7)によって与えられる
。式(7)において、Eｋβ及びEｊαは回転マトリクスであり、図３に示されるように、そ
れぞれ、ｋ軸（ｚ軸）まわりの角度βの回転及びｊ軸（ｙ軸）まわりの角度αの回転を表わしている。前者をヨー(yaw)回転、後者をピッチ(pitch)回転という。式(7)は、ｉ軸（
ｘ軸）方向の単位ベクトルを、まずｊ軸（ｙ軸）まわりにαだけ回し、しかるのちにｋ軸（ｚ軸）まわりにβだけ回すことによって、接線ベクトルｕが得られることを示している。
【００３６】
すなわち、２次元の場合は、曲線の接線方向を表す単位ベクトルｅjφは、ｘ軸からの
傾き角度φから得られる。３次元の場合は、曲線の接線ベクトルｕは、ピッチ角α及びヨー角βから得ることができる。ピッチ角αが０だと、ｘｙ平面で巻いた２次元クロソイド曲線が得られ、ヨー角βが０だと、ｘｚ平面で巻いた２次元クロソイド曲線が得られる。接線方向ベクトルｕに微小長ｄｓをかけて積分すると３次元クロソイド曲線が得られる。
【００３７】
３次元クロソイド曲線においては、接線ベクトルのピッチ角α及びヨー角βはそれぞれ式(8)及び式(9)に示すように、曲線長変数Ｓの２次式で与えられる。このことによって接線方向の変化を自由に選びながら、なおかつ、その変化に連続性を持たせることが可能になる。
【００３８】
以上の式によって示したごとく、３次元クロソイド曲線は「接線方向のピッチ角及びヨー角が、それぞれ曲線長変数の二次式で表わされる曲線である」と定義される。
【００３９】
Ｐ０から始まる一つの３次元クロソイドセグメントは、
【００４０】
【数９】
0004667794.tif 000016
【００４１】
の7個のパラメータによって決定される。ａ０ないしｂ２の6つの変数は角度の単位を持ち、クロソイドセグメントの形状を表わしている。これに対しｈは長さの単位を持ち、クロソイドセグメントの大きさを表わしている。
【００４２】
３次元クロソイド曲線の典型的な例としては、図４に示されるような螺旋状の曲線がある。
【００４３】
（２）動標構
式(7)において、基本接線方向ベクトルｉの代りに基本座標系[ｉ，ｊ，ｋ]を代入する
と、次の動標構（moving frame）Ｅを得る。
【００４４】
【数１０】
0004667794.tif 000017
【００４５】
ここで、ｖ及びｗは曲線の接線に垂直な面に含まれる単位ベクトルであり、互いに直交
するとともに、接線方向単位ベクトルｕと直交する。この3つの単位ベクトルの組（トラ
イアド）は動点Ｐとともに動くフレーム（座標系、標構）であり、これを動標構という。
【００４６】
動標構が上式で求められるため、主法線、副法線の計算が容易になり、曲線の形状解析が容易にできる。
【００４７】
また、Ｅを用いて、ロボットの工具点の姿勢を求めることができ、ロボットハンドによって把持された物体の位置姿勢を求めることが可能になる。
【００４８】
Ｅの初値及び終値をそれぞれＥ０，Ｅ１とすると、
【００４９】
【数１１】
0004667794.tif 000018
【００５０】
となる。
【００５１】
（３）ローリング
動標構を考慮することによって、3つ目の回転「ロール(roll)」を扱うことができる。
ロールは接線方向まわりの回転である。ロールの存在は３次元クロソイド自身の形状には影響を与えないが、３次元クロソイドに誘導される動標構には影響する。曲がりくねった針金に通した算盤玉は、針金のまわりで自由に回転することができるが、そのことによって針金の形を変えるわけではない。
【００５２】
ロール回転を考慮するとき、動標構は下式となる。
【００５３】
【数１２】
0004667794.tif 000019
【００５４】
ロール角γについても、これをSの関数として表現することができる。
【００５５】
【数１３】
0004667794.tif 000020
【００５６】
（４）３次元クロソイド曲線の幾何学的性質
(a)３次元クロソイド曲線の法線
3次元曲線の法線ベクトルは、接線方向ベクトルuを用いて次の式で表されることが知られている。
【００５７】
【数１４】
0004667794.tif 000021
【００５８】
ここで、(7)式より３次元クロソイド曲線の接線ベクトルの1次微分は下記となる。
【００５９】
【数１５】
0004667794.tif 000022
【００６０】
すなわち、３次元クロソイド曲線の法線ベクトルは、Sを用いて下記の形で表される。
【００６１】
【数１６】
0004667794.tif 000023
【００６２】
(b)回転を用いた3次元クロソイド曲線の法線
ここで（7）の接線uの決定と同様に法線nについても考えてみる。初期接線方向（1,0,0）に対して、初期法線方向を定数γを用いて（0,cosγ,−sinγ）で表わすとする。これを
接線と同じように回転させると、法線nは下記のように表される。
【００６３】
【数１７】
0004667794.tif 000024
【００６４】
（20）（21）の式を比較すると、sinγ, cosγは下記に対応していることがわかる。
【００６５】
【数１８】
0004667794.tif 000025
【００６６】
(c)３次元クロソイド補間における接続点での法線連続
３次元クロソイド補間における接続点での法線連続を達成するには式（22）より、
【００６７】
【数１９】
0004667794.tif 000026
【００６８】
が、連続であればよいことがわかる。
【００６９】
（ｄ）３次元クロソイド曲線の曲率
3次元クロソイド曲線の曲率は、下記の式で表される。
【００７０】
【数２０】
0004667794.tif 000027
【００７１】
(19)式より、曲率は、
【００７２】
【数２１】
0004667794.tif 000028
【００７３】
と表される。
【００７４】
（５）３次元クロソイド曲線の特徴
(a)曲線の連続性
一つのクロソイドセグメント（同一のパラメータで表わされるクロソイド）においては、その接線方向のピッチ角及びヨー角がそれぞれ曲線長変数Ｓの２次式で与えられるので、これを１回微分して得られる法線方向、及び、２回微分して得られる曲率が曲線長変数Ｓに関して連続であることが保証される。言い換えれば、一つのクロソイドセグメントの中では法線方向及び曲率が連続である。したがって、滑らかで性質の良い曲線が得られる。また、二つのクロソイド曲線を連結する場合にも、そのつなぎ目において接線、法線、曲率が連続になるようにパラメータを選択することによって、滑らかなひとつなぎの曲線を作ることができる。これをクロソイドスプラインという。
【００７５】
(b)適用性
曲線の接線方向を二つの角度（ピッチ角及びヨー角）で振ることができるので、さまざまな条件に合わせた３次元曲線を任意に作ることができ、いろいろな用途に用いることができる。
【００７６】
(c)幾何曲線との整合性
直線・円弧・ねじ曲線などの幾何曲線は、クロソイドパラメータのいくつかを０にし、あるいは、いくつかのパラメータ間に特定の関数関係を与えることによって作ることができる。これらの曲線はクロソイド曲線の一種であり、クロソイドのフォーマットを用いて表現できる。したがって、従来のＮＣのように、直線・円弧・自由曲線等によって記述するフォーマットを変えて取り扱う必要はなく、同じフォーマットを用いて計算したり、制御したりできる。
【００７７】
また、αまたはβのいずれかを常に０と置くことによって、２次元クロソイドを作るこ
とができるので、これまで２次元クロソイドについてすでに得られている資源を活用することができる。
【００７８】
すなわち、既に知られている２次元クロソイドを含めて、円弧や直線などの個別の曲線も、αやβを適切に設定することで表現できる。このような個別の曲線について同一の形式３次元クロソイド曲線式を用いることができるので、計算手順を単純化できる。
【００７９】
(d)見通しの良さ
スプライン補間などの従来の補間法では、自由曲線を数式化した際に、その全体の形、あるいは局部的な形が分かりにくいことが多いが、３次元クロソイドにおいては、ピッチ角及びヨー角のそれぞれを想定することによって、比較的容易に全体像を把握することができる。
【００８０】
また、クロソイド曲線として表現した途端に線長・接線方向・曲率等の値は既知となっており、従来の補間法のように、あらためて計算する必要がない。すなわち、曲線のパラメータＳに対応して、(7),(20)及び(26)式に示すように、曲線の接線や、法線、曲率が直接的に求められる。このことは、後述する数値制御方式にきわめて有効な特徴である。このことによって、大幅に計算時間を短縮し、メモリーなどの資源を節約することができ、また、リアルタイムでの補間演算を可能にする。
【００８１】
ＮＣ加工において、工具軌跡の最小曲率半径は重要な問題であり、スプライン補間などではこれを求めるのに面倒な計算を要するが、クロソイドでは一般にセグメントごとに最小曲率半径の値が既知であるため、カッター径の選定などにおいて有利である。
【００８２】
(ｅ)運動制御のやりやすさ
曲線の主変数が長さ
または正規化された長さSであり、曲線の方程式はこの長さに対する自然方程式で与えら
れている。このため、長さｓを時間ｔの関数として定めることによって、加減速などの運動特性を任意に与えることができ、従来カムなどに用いられてきた特性の良い運動曲線を採用することによって、加工作業の高速化を図ることができる。長さｓは実在のカルテシアン空間における値として与えられ、速度・加速度は接線方向に対して求められるので、従来の補間法のように各軸ごとに与えられた値を合成する必要がない。また、曲率の計算が容易なため、運動時の遠心加速度も容易に求められ、運動軌跡に応じた制御を行うことができる。
（６）曲線の生成と各パラメータの性質
定義によれば３次元クロソイド曲線の各パラメータが曲線に及ぼす影響は以下のとおりである。各パラメータを与えることによって図４のように３次元クロソイド曲線を生成することができる。
表１は、３次元クロソイド曲線の各パラメータの性質をまとめたものである。
【００８３】
【表１】
0004667794.tif 000029
【００８４】
２．  ３次元クロソイド曲線による補間法
（１）滑らかな接続の数学的条件
１本の３次元クロソイド曲線では、曲線の形状表現に限界がある。ここでは、数値制御による工具の運動制御を主な目的として、３次元クロソイド曲線（３次元クロソイドセグメント）を複数本接続し、この複数本の３次元クロソイドセグメントによって工具の運動を制御する。
【００８５】
２本の３次元クロソイド曲線がその端点で滑らかに接続されていることは、端点位置、接線および曲率が連続に接続されていることであると定義される。上述の定義式を用いて、この条件は、以下のように記述される。最初の３式は位置の連続性、次の２式は接線の連続性、次の1式は法線の一致、最後の式は曲率の連続性を示している。
【００８６】
【数２２】
0004667794.tif 000030
【００８７】
これは、接続点で接線ベクトルと法線ベクトル、曲率とα、β連続であるための十分条件であり、条件がきつすぎる場合がある。そこで純粋に条件を満たすように下記のように条件を変えることもできる。
【００８８】
【数２３】
0004667794.tif 000031
【００８９】
ここでさらに、
【００９０】
【数２４】
0004667794.tif 000032
【００９１】
であることを考慮にいれると
【００９２】
【数２５】
0004667794.tif 000033
【００９３】
は、下記の条件で置き換えられる。
【００９４】
【数２６】
0004667794.tif 000034
【００９５】
結局下記の条件を満たせば目的を達成することが出来ることがわかる。
【００９６】
【数２７】
0004667794.tif 000035
【００９７】
(28)式において、最初の３式は位置の連続性、次の２式は接線方向の連続性、次の1式
は法線方向の一致、最後の式は曲率の連続性を示している。Ｇ２連続な補間を行うには、２本の３次元クロソイド曲線がその端点で（２８）式の７つの条件式を満たす必要がある。
【００９８】
Ｇ２連続（ＧはGeometryの頭文字）について補足する。図５はＧ２連続な補間の条件を示す。
【００９９】
Ｇ０連続とは２本の３次元クロソイド曲線がその端点で位置が一致することをいい、Ｇ１連続とは接線方向が一致することをいい、Ｇ２連続とは接触平面（法線）及び曲率が一致することをいう。以下の表にスプライン曲線で用いられるＣ０〜Ｃ２連続と本発明のクロソイド曲線で用いられるＧ０〜Ｇ２連続とを対比する。
【０１００】
【表２】
0004667794.tif 000036
【０１０１】
２本の３次元クロソイド曲線の連続性を考えたときに、Ｃ０→Ｃ１→Ｃ２、Ｇ０→Ｇ１→Ｇ２になるにしたがって補間条件が厳しくなる。Ｃ１連続では接線の大きさも方向も一致する必要があるが、Ｇ１連続では接線方向だけが一致すればよい。２本の３次元クロソイド曲線で接線を滑らかに接続する場合は、Ｇ１連続で条件式を作成するほうがよい。スプライン曲線のようにＣ１連続で条件式を作成すると、幾何学的には関係のない接線の大きさが一致するという条件が入るので、条件が厳しくなりすぎる。Ｇ１連続で条件式を作成すると、一次微分係数の大きさを自由にとれるという利点がある。
【０１０２】
Ｇ２連続では接触平面（法線）を一致させる。接触平面とは図６に示されるように曲線
Ｃが局所的に含まれる平面Ｓ１，Ｓ２をいう。この図６では点Ｐにおいて接線方向が連続であるが接触平面Ｓ１，Ｓ２が不連続の例を示している。３次元曲線の連続性を考えたときに、接線方向の一致の次に考えなければいけないことは接触平面の一致である。曲率を議論するときには接触平面が一致していないと意味がなく、接触平面を一致させた上で曲率を一致させる必要がある。２本の３次元曲線で、座標、接線方向、接触平面（法線方向）及び曲率を一致させることがＧ２連続を満たす条件になる。
【０１０３】
（２）具体的な計算手順
次の２種類の計算手順がある。
【０１０４】
(a)曲線のパラメータh,α,βを与えて、1本の３次元クロソイド曲線を発生させ、その
端点で、(28)式を満たすように次の3次元クロソイド曲線のパラメータを定める。このよ
うにして、次々と滑らかに接続する３次元クロソイド曲線を発生させることができる。この計算手順によれば、曲線パラメータの算出は容易であり、これを順解と呼ぶ。この方式によれば、様々な形状の曲線を容易に発生できるが、曲線が通過する接続点を明示的に指定することはできない。
【０１０５】
(b)予め指定された点群が曲線の接続点となるように、３次元クロソイド曲線を接続す
ることが出来る。ここでは、離散的に任意に与えられた点列の各区間毎に短いクロソイド曲線（クロソイドセグメント）を作成する。この場合には、(28)式を満たすように曲線パラメータを決定する計算手順は(a)より複雑であり、繰り返し収束計算となる。この計算
手順を、接続条件から逆に曲線パラメータを決定する、ということから、逆解と呼ぶ。
【０１０６】
上記(b)の逆解について、計算手法を詳細に記述する。解くべき計算問題は、次のよう
に定式化される。
【０１０７】
未知パラメータ：曲線パラメータ
拘束条件：(28)式、あるいはその一部
要求される問題に応じて、拘束条件の数は変化し、それに見合う数の曲線パラメータを未知パラメータとして設定すればよい。例えば、曲率の連続性が要求されない場合には、一部の曲線パラメータを自由に動かすことが出来る。あるいは、曲率連続でかつ接線方向が指定されている場合には、補間に用いる３次元クロソイド曲線の数を分割により増やして、対応する未知曲線パラメータを増やす必要がある。
【０１０８】
上記の繰り返し収束計算を安定に収束させるためには、計算上の工夫が必要である。計算の発散を避け、収束を速めるために、未知パラメータについてより良い初期値を設定することは有効である。そのために、与えられた接続点などの拘束条件を満たす、より単純な補間曲線、例えば線形スプライン曲線などを発生させ、その曲線形状から、３次元クロソイド曲線の曲線パラメータを推算して、繰り返し収束計算の初期値とすることは有効である。
【０１０９】
あるいは、満たすべき拘束条件を一気に満たすのではなく、順次条件式を増やしていく方式も、安定に解を得る手法として有効である。例えば、曲線発生の手順を次のような三つのＳＴＥＰに分けて、順次実行する。第１ＳＴＥＰとして位置情報と接線方向が一致するように補間した後で、第２ＳＴＥＰとして法線方向を一致するように補間を行い、第３ＳＴＥＰで曲率も一致するように補間する。この手法の流れの概要を図７に記す。必要な３次元クロソイド曲線式及びその接線、法線や曲率の定義式は既に示した。
【０１１０】
（３）3次元クロソイド曲線を用いた補間法の実施例
(a)補間法の流れ
３次元クロソイド曲線を用いて与えられた点列の間を滑らかに補間していく手法の実施例について詳しく述べる。３次元クロソイド曲線を用いた補間法を以降、３次元クロソイド補間と呼ぶ。補間によって生成される曲線群全体を３次元クロソイド曲線と呼び、それを構成する単位曲線を３次元クロソイドセグメントと呼ぶ。
【０１１１】
３次元クロソイド補間の基本の流れとしては、補間対象の点間を結ぶ３次元クロソイドセグメントの各パラメータを未知数とし、厳密に補間対象の点を通り、かつＧ2連続とな
るような条件を満たす解をニュートン・ラプソン法で求めて曲線を生成する。この流れの概要をまとめたものが図８である。ここでＧ2連続とは、２本の３次元クロソイド曲線が
その端点で位置、接線方向、法線方向及び曲率が一致することをいう。
【０１１２】
（ｂ）Ｇ２連続な補間の条件
3次元クロソイド補間において、厳密に補間対象の点を通り、かつG2連続となるような
条件について具体的な条件を考える。
【０１１３】
今、簡単に3つの点P1={ Px1, Py1, Pz1}, P2={ Px2, Py2, Pz2},  P3={ Px3, Py3, Pz3}があり、その点を3次元クロソイドセグメントで補間することを考える。図９は点P1, P2, P3の3次元クロソイド補間を示す。点P1, P2間を結ぶ曲線を曲線C1、点P2, P3間を結ぶ
曲線を曲線C2とすると、この場合未知数は、曲線C1のパラメータa01, a11, a21, b01,b11, b21, h1、曲線C2のパラメータa02, a12, a22, b02, b12, b22, h2の14個となる。また
、以後説明にでてくる文字のサブスクリプトは各曲線のサブスクリプトに対応している。
【０１１４】
ここで厳密に補間対象の点を通り、かつG2連続となるような条件を考える。まず、始点においては厳密に補間対象の点を通るという条件は3次元クロソイド曲線の定義から考え
ると、始点を与えた時点で必然的に達成されるので補間条件はない。次に接続点P1では位置について３つ、接線ベクトルについて２つ、曲率連続の条件の式が大きさと方向について２つの合計７個成り立つ。また終点については、点P2では位置について3つの3個である。以上より条件式は合計で１０個ある。しかし、これでは未知数１４個に対して、条件式が１０個しか存在しないので未知数の解を求めることができない。そこで、本研究においては、両端点の接線ベクトルを与え、両端点について２つづつの条件を増やし条件式と未知数の数を等しくした。また、始点における接線方向を決定すればa01, b01は、その定義式より求めることができるので未知数として扱わないことにした。以下、各条件について考えていく。
【０１１５】
まず、位置の条件について考えると、（1-1）(1-2)（1-3）式より、下記の3つのが成り立つ。(以下自然数i<3とする。)
【０１１６】
【数２８】
0004667794.tif 000037
【０１１７】
次に、接線方向について考えると（1-4）（1-5）の２つの式が成り立つ。
【０１１８】
【数２９】
0004667794.tif 000038
【０１１９】
曲率κの大きさについては、次の式(1-6)が成り立つ。
【０１２０】
【数３０】
0004667794.tif 000039
【０１２１】
最後に法線方向ベクトルnについて考える。3次元クロソイド曲線の法線ベクトルnは、 (21)式で表される。
【０１２２】
ここで3次元クロソイド曲線の接線ベクトルuの決定と同様に回転を用いて、法線ベクトルnを考えてみる。初期接線方向（1,0,0）に対して、初期法線方向を定数γを用いて（0,cosγ,−sinγ）で表すとする。これを接線と同じように回転させると、法線nは式(1-7)
のように表される。
【０１２３】
【数３１】
0004667794.tif 000040
【０１２４】
（21）（1-7）式を比較すると、sinγ, cosγは (1-8) 式に対応していることがわかる。
【０１２５】
【数３２】
0004667794.tif 000041
【０１２６】
つまり、式(1-8)より、3次元クロソイド補間における接続点での法線連続を達成するにはtanγが、連続であればよいことがわかる。
【０１２７】
【数３３】
0004667794.tif 000042
【０１２８】
つまり法線連続である条件は、式(1-10)であることがわかる。
【０１２９】
【数３４】
0004667794.tif 000043
【０１３０】
ここでさらに、
【０１３１】
【数３５】
0004667794.tif 000044
【０１３２】
であることを考慮にいれると条件式(1-10)は、下記の条件式(1-12)で置き換えられる。つまり、法線連続である条件は(1-12)式である。
【０１３３】
【数３６】
0004667794.tif 000045
【０１３４】
以上をまとめると厳密に補間対象の点を通り、かつG2連続となるような条件は接続点では式(1-13)のようになることがわかる。また、始点・終点においてもこれらのうちのいくつかの条件が選択される。
【０１３５】
【数３７】
0004667794.tif 000046
【０１３６】
以上より、未知数a11, a21, b11, b21, h1, a02, a12, a22, b02, b12, b22, h2の12個
に対して、条件式は下記の12個が成り立つことがわかる。（点P3における接線方向回転角をα3、β3とする。）
【０１３７】
【数３８】
0004667794.tif 000047
【０１３８】
これで未知数１２個について１２個の式が成り立つので解を求めることができる。これをニュートン・ラプソン法によって解き、解を求める。
【０１３９】
また、一般的にn個の点列を補間するときを考えるときも、条件式は今述べてきた自然
数iをi＜nと拡張すればよい。後は未知数と条件式の数の問題である。
【０１４０】
例えばn-1個の点列があるとき、N個の未知数とＮ個の関係式が成り立つとする。ここでさらに1点増えたとすると、未知数は３次元クロソイドセグメントPn-1,Pnのクロソイドパラメータa0n, a1n, a2n, b0n, b1n, b2n,  h nの7つが増える。一方で、条件式は、接続
点がひとつ増えるので点Pn-1で位置について３つ、接線ベクトルについて２つ、点Pn-1の曲率連続の条件の式が大きさと方向について２つの合計７つ増える。
【０１４１】
ｎ＝３では未知数、関係式ともに12個であることがわかっているから、ｎ≧３では、未知数は７（ｎ−２）＋５個、これに対して成り立つ式も７（ｎ−２）＋５個ある。これで未知数とそれに関する条件の数が等しくなるので、n個の自由点列の場合も3点の場合と同様の方法で解を求めることが可能である。解法としては、未知数と条件式の間には (1-15)  (1-16) 式の関係が成り立つことを利用したニュートン・ラプソン法を用いて解いた。（条件をF未知数をu、誤差ヤコビアン行列Jとする。）
【０１４２】
【数３９】
0004667794.tif 000048
【０１４３】
以上より、n個の点列に対しても厳密に補間対象の点を通り、かつG2連続となるような3次元クロソイド補間が行えることがわかる。
【０１４４】
(ｃ)初期値の決定
ニュートン・ラプソン法においては、解の探索を始める際に適当な初期値を与える必要
がある。初期値はどのように与えられてもいいが、ここではその初期値の与え方の一例について述べる。
【０１４５】
先行研究である3D Discrete Clothoid Splinesは、厳密に補間対象点を通り、曲率が始点からの移動距離に対して滑らかに変化するような性質を持っている。そこで、本研究では3次元クロソイド補間のための初期値を、図１０のようなr=4の3D Discrete Clothoid SplinesのポリゴンQを作り、そこから計算で決定した。
【０１４６】
ここで3D Discrete Clothoid Splinesについて補足説明する。図１１に示されるようにまず、補間対象の点列を頂点とする多角形Pを作り、Pの各頂点間に同じ数r個づつ新たな
頂点を挿入し、P⊂Qとなるような多角形Qを作る。ここでPの頂点がn個あるとすると、ポ
リゴンQは閉じている場合でrn個、開いている場合でr(n-1)+1個の頂点を持つことになる
。以後サブスクリプトを始点からの通し番号として、各頂点をqiで表すことにする。また、各頂点において、方向として従法線ベクトルbを、大きさとして曲率κを持つようなベ
クトルkを定める。
【０１４７】
このとき、下記の頂点同士が等距離になるような式( 1 -17)を満たし、曲率が始点からの移動距離に比例するような条件に最も近くなるときの（式( 1 -18)の関数を最小化するときの）ポリゴンQを 3D Discrete Clothoid Splinesと言う。
【０１４８】
【数４０】
0004667794.tif 000049
【０１４９】
3D Discrete Clothoid Splinesでは各頂点のフレネ標構がすでに求まっている。そこで、その単位接線方向ベクトルｔよりパラメータa0,  b0を求める。この接線方向ベクトル
ｔはポリゴンQを求めたときにすでに既知となっており、このｔと3次元クロソイド曲線の接線の式とにより、ポリゴンQの頂点の接線方向回転角α,βが求まる。これにより各曲線のa0,  b0の初期値が求まる。また、始点から始まる3次元クロソイド線分においては、その値を与える。
【０１５０】
【数４１】
0004667794.tif 000050
【０１５１】
ここで、3D Discrete Clothoid Splinesは、頂点が等距離に並んでいることを考えると、図１０の点q4i+1では、曲線長変数Sが1/4であると近似することができる。同様に点q4(i+1)-1では、曲線長変数Sが3/4であると近似することができる。これらを3次元クロソイ
ド曲線のαの式とをあわせて考慮すると下記の式(1-20)が成り立つ。
【０１５２】
【数４２】
0004667794.tif 000051
【０１５３】
この式は未知数がa14iとa24iの2次元連立方程式になっており、これを解いてパラメー
タa1,  a2の初期値とする。同様にパラメータb1,  b2の初期値も決定できる。
【０１５４】
残る未知数は曲線長hであるが、この初期値ついては3次元クロソイド曲線の曲率の式より算出する。3次元クロソイド曲線の曲率は、式(1-21)で表される。
【０１５５】
【数４３】
0004667794.tif 000052
【０１５６】
この式を変形すると式(1-22)になり、hの初期値が決定される。
【０１５７】
【数４４】
0004667794.tif 000053
【０１５８】
以上の方法で7つの3次元クロソイドパラメータについて初期値を決定することができる。この決定した初期値を用い(b)で述べたようなG2連続となるような条件下で各曲線のパ
ラメータの近似値をニュートン・ラプソン法によって求めた。これによって得られたパラメータから3次元クロソイド線分を生成し、点列間を3次元クロソイド曲線で補間することを行った。
【０１５９】
(d)補間例
実際に以上に述べた手法で点列を補間した例として(0.0, 0.0, 0.0), (2.0, 2.0, 2.0), (4.0, 0.0, 1.0), (5.0, 0.0, 2.0)の4点を3次元クロソイド補間した例を挙げる。補間により生成された3次元クロソイド曲線の透視図を図１２に載せた。図１２は実線が3次元クロソイド曲線であり、破線、一点鎖線、二点鎖線は曲線上の各点における、大きさをlog(曲率半径+自然対数e)に、方向を法線ベクトルにとった曲率半径変化パターンである。
【０１６０】
さらに表３に各曲線のパラメータを、また表４に、各接続点での座標・接線・法線・曲率のずれを載せた。これらより各接続点でG2連続となるような3次元クロソイド曲線が生
成されていることがわかる。また、図１３は横軸に始点からの移動距離、縦軸に曲率を取った曲率変化グラフである。
【０１６１】
【表３】
0004667794.tif 000054
【０１６２】
【表４】
0004667794.tif 000055
【０１６３】
（４）両端における各値の制御を考慮したＧ2連続な３次元クロソイド補間
(a)補間条件と未知数
（3）で述べたように、曲線が開いている場合で補間対象の点がn個あるとき、点列はn-1個の曲線で3次元クロソイド補間される。厳密に各点を通るなら各3次元クロソイド線分
について未知数はa0, a1, a2, b0, b1, b2, hの7つあるので、未知数は全体で7(n-1)個あることになる。一方、条件式については、n-2個ある接続点ごとに座標、接線、法線、曲
率の7個づつと終点における座標の3個が存在するので、全部で7(n-2)+3個である。2-3の
手法ではこれに始点・終点における接線ベクトルを与え、条件を4個増やすことによって
、条件式と未知数の数を合わせていた。
【０１６４】
ここで、始点・終点における接線・法線・曲率を制御し、かつG2連続となるように補間するなら、条件は両端における接線を制御したときと比べて、さらに始点・終点で法線・曲率について2個づつの合計4個増えることになる。すると、条件式は全部で7n-3個ということになる。この場合、未知数の数が条件より少なくなるため、ニュートン・ラプソン法で解を求めることはできない。そのため、なんらかの方法で未知数を増やす必要がある。
【０１６５】
そこで、ここでは、補間対象点を新たに挿入することによって未知数と条件式の数とを等しくすることにした。例えば、4つ未知数の方が多いのであれば、新たな点を2つ挿入し、各点の座標のうち2つを未知数として扱う。
【０１６６】
この場合接続点が2つ増えるので、各接続点につい条件が座標、接線、法線、曲率の7個づつの14個増える。一方で、未知数は3次元クロソイド線分が2つ増えるので、a0, a1, a2, b0, b1, b2, hの7つづつの合計14個の未知数が増えることになる。このとき点列に含まれる点の数はn+2個であるから、全体で考えると未知数は7(n+1)個、条件式は7(n+1)+4個
ということになる。ここでさらに、新たに挿入した点の座標のうち2つを未知数として扱
うとすると、未知数は4つ増えることになる。すると、未知数も条件式も7(n+2)-3個とな
り、未知数の解を求めることができるようになる。このように新たな点を挿入することによって、与えられた各点を厳密に通りG2連続かつ、両端点の接線・法線・曲率を制御した補間を行うことが可能になる。
【０１６７】
さらに一般的な場合について考える。n個の点列を補間するとき、両端点でm個の項目を制御する場合についての挿入する点の数とその点において未知数として扱う座標の数について考える。先にも書いたが、曲線が開いている場合、点列はn-1個の曲線で補間される
。もし、厳密に各点を通るなら各3次元クロソイド線分について未知数はa0, a1, a2, b0,
b1, b2, hの7つあるので、未知数は全体で7(n-1)個あることになる。一方、条件式につ
いては、n-2個ある接続点ごとに座標、接線、法線、曲率の7個づつと終点における座標の3個が存在するので、全部で7(n-2)+3個であり、条件式の方が4つ少ない。つまり、両端点おいて制御されるべき項目は4つ以上ということになる。以下、説明中でmは4以上の自然
数、kは2以上自然数であるとして、新たに点を挿入したときに条件式と未知数の数を等しくする方法について述べる。
【０１６８】
(i)  m=2kのとき
両端であわせてm=2k個の項目を制御するとき、未知数は全体で7(n-1)個、条件式は全体で7(n-1)-4+2k個である。このとき過剰な条件式は2k-4個である。今、k-2個の点を新たに挿入することを考えると、3次元クロソイド線分がk-2本、接続点がk-2個増えるので、未
知数は全体で7(n+k-3)個、条件式は全体で7(n+k-3)-4+2k個となる。ここでさらに新たに
挿入した各点の座標の値のうち2つ（例えばx,y）を未知数として扱うとすると、未知数は全体で7(n+k-3)+2(k-2)個、条件式は全体で7(n+k-3)+2(k-2)個となり未知数と条件式の数が等しくなる。
【０１６９】
(ii)  m=2k+1のとき
両端であわせてm=2k+1個の項目を制御するとき、未知数は全体で7(n-1)個、条件式は全体で7(n-1)+2k-3個である。このとき過剰な条件式は2k-3個である。今、k-1個の点を新たに挿入することを考えると、3次元クロソイド線分がk-1本、接続点がk-1個増えるので、
未知数は全体で7(n+k-2)個、条件式は全体で7(n+k-2)-3+2k個となる。ここでさらに新た
に挿入した各点の座標の値のうち2つ（例えばx,y）を未知数として扱うとすると、未知数は全体で7(n+k-2)+2(k-2)個、条件式は全体で7(n+k-2)+2k-3個となり条件式の数が1つ多
くなる。そこで、m=2k+1の場合には挿入した点のうちひとつの点においては座標の値のうち1つだけを未知数として扱うとする。そうすることで、未知数は全体で7(n+k-2)+2(k-2)個、条件式は全体で7(n+k-2)+2(k-2)個となり未知数と条件式の数が等しくなる。
【０１７０】
以上に述べた方法のように、追加される条件の数に合わせて、挿入した点の座標のうち未知数にする数を調整することで接線、法線、曲率以外の例えば接線回転角αを制御する場合などの種々の場合でも未知数と条件式の数をあわせることができ、理論上両端点の各値を制御することができる。また、制御項目と未知数、条件式の数についてまとめたものを表５に記す。
【０１７１】
【表５】
0004667794.tif 000056
【０１７２】
(b)手法
始点・終点で各値を制御する3次元クロソイドを用いた補間法は、図１４及び図１５に
示されるように以下の流れで行われる。
【０１７３】
Step1)制御する条件のうち4つだけを用いて厳密に補間対象点を通り、かつG2連続な補
間を行い曲線を生成する。
【０１７４】
Step2)生成された曲線上に新たな点を挿入し、条件式と未知数の数を調整する。
【０１７５】
Step3）の曲線パラメータを初期値として、目的の条件を満たすような各曲線のパラメ
ータの近似値をニュートン・ラプソン法によって求める。
【０１７６】
以下、各Stepについて説明を補足する。まずStep1においては、接線方向を制御するの
であれば、(3)の手法を用いて曲線を生成する。また、接線方向を制御しない場合につい
ても、その曲線のパラメータを求める際の初期値としては、(3)の手法と同じ初期値を用
いる。
【０１７７】
次にStep2において新たな点を挿入し、条件と未知数の数の調整を行うことになる。こ
の際、新たに挿入する点は、各補間対象点間において可能な限り1つ以下になるようにす
る。また、挿入される点としては補間対象点同士を結ぶStep1で生成された3次元クロソイド線分の中間の点を挿入した。さらに、挿入される点は両端から順々に挿入していくものとする。つまり、最初に挿入されるのは始点とその隣の点の間と終点とその隣の点の間である。
【０１７８】
最後にStep3についてであるが、Step3で行うニュートン・ラプソン法のための初期値を新たに決定する必要がある。そのため、新たな点が挿入された曲線については、１-4で述べた3次元クロソイド曲線を分割する手法を用いて曲線を分割し、生成された曲線の各値
から決定した。点が挿入されていない曲線については、Step1で生成した曲線の値をその
まま用いる。以上で、Step3における曲線の各パラメータの初期値を決定した。この初期
値を用いて、ニュートン・ラプソン法によって得られたパラメータから3次元クロソイド
曲線を生成し、点列間を目的の条件を満たすような3次元クロソイド曲線で補間を行った
。
【０１７９】
(C)補間例
実際に両端での接線、法線、曲率を表６の条件で制御するように3次元クロソイド補間
した例を示す。厳密に通るべき補間対象の点に通し番号を振り、P1, P2, P3とした。
【０１８０】
【表６】
0004667794.tif 000057
【０１８１】
この条件で、実際に補間を行った結果を図１６に示す。実線が3次元クロソイド曲線、
破線・一点鎖線・二点鎖線・三点鎖線は各曲線の曲率半径変化パターンを示している。また、図１７に図１６の曲線の種類を対応させた各曲線の始点からの移動距離と曲率の関係のグラフを記す。生成された曲線は、表７からわかるように与えた条件を満たしていることがわかる。
【０１８２】
【表７】
0004667794.tif 000058
【０１８３】
(d)中間点での値の制御
(b)の手法により、両端点における各値を制御しつつ、G2連続な補間が行えるようにな
った。ここで、両端点でなく中間点において値を制御する場合について考える。
【０１８４】
例えば図１８のような点列を補間する場合において、中間点Pcで接線、法線を制
御することを考える。しかし、今まで述べてきた手法では中間点における値を制御することはできない。そこで、ここではこの点列を２つに分けることによって中間点での値を制御した。
【０１８５】
すなわち、点列に対して一挙に補間を行うのではなく、中間点Pcを挟んで曲線C1とC2とに分けて補間を行う。その場合点Pcは、端点にあたることになるので(b)の手法を用いれ
ば値を制御することができるようになる。
【０１８６】
このように制御したい値のある点で区分を分け、その両端における値を制御して補間した結果生成される曲線を繋いでいけば、理論上、各点において接線・法線・曲率の制御可能な3次元クロソイド補間を行うことができる。
【０１８７】
（５）両端点での接線、法線、曲率を制御した３次元クロソイド補間
(a)手法の流れ
始点・終点で各値を制御する3次元クロソイドを用いた補間法は、図１９に示される以
下の流れで行われる。以後、この流れに沿って説明する。
（b-1）補間対象の点を与える
この例では3次元空間の3点{0.0, 0.0, 0.0},{5.0, 5.0, 10.0},{10.0, 10.0, 5.0}を与えた。その他各点に与えた接線、法線、曲率などの条件をまとめて表８に記した。
【０１８８】
【表８】
0004667794.tif 000059
【０１８９】
(b-2) r=4の3DDCSの生成
ニュートン・ラプソン法においては、解の探索を始める際に適当な初期値を与える必要がある。ここではその初期値を得るための準備をする。先行研究である3D Discrete Clothoid Splinesは、厳密に補間対象点を通り、曲率が始点からの移動距離に対して滑らかに変化するような性質を持っている。そこで、本研究では3次元クロソイド補間のための初
期値を、図２０のようなr =4の3D Discrete Clothoid SplinesのポリゴンQを作り、そこ
から計算で決定した。また、実際にこの点列より生成されたポリゴンを図２１に、頂点の座標を表９に載せた。
【０１９０】
【表９】
0004667794.tif 000060
【０１９１】
(b-3)  初期値の決定
ニュートン・ラプソン法で解を求めるには、各未知数の初期値を決定する必要がある。本手法ではその値をb-2で生成したポリゴンQを使って、各未知数の近似値を求めて決定する。3D Discrete Clothoid Splinesでは各頂点のフレネ標構がすでに求まっている。そこで、ｂ-2で生成したポリゴンQの単位接線方向ベクトルtよりパラメータa0,  b0を求める
。この接線方向ベクトルtはポリゴンQを求めたときにすでに既知となっており、このtと3次元クロソイド曲線の接線の式とにより、ポリゴンQの頂点の接線方向回転角α,βが求まる。これにより各曲線のa0,  b0の初期値が求まる。また、始点から始まる3次元クロソイドセグメントにおいては、その値を与える。
【０１９２】
【数４５】
0004667794.tif 000061
【０１９３】
ここで、3D Discrete Clothoid Splinesは、頂点が等距離に並んでいることを考えると、図２０の点q4i+1では、曲線長変数Sが1/4であると近似することができる。同様に点q4(i+1)-1では、曲線長変数Sが3/4であると近似することができる。これらを3次元クロソイ
ド曲線のαの式とをあわせて考慮すると下記の式が成り立つ。
【０１９４】
【数４６】
0004667794.tif 000062
【０１９５】
この式は未知数がa14iとa24iの2次元連立方程式になっており、これを解いてパラメー
タa1,  a2の初期値とする。同様にパラメータb1,  b2の初期値も決定できる。
【０１９６】
残る未知数は曲線長hであるが、この初期値ついては3次元クロソイド曲線の曲率の式より算出する。3次元クロソイド曲線の曲率は、下記で表される。
【０１９７】
【数４７】
0004667794.tif 000063
【０１９８】
この式を変形すると以下の式になり、hの初期値が決定される。
【０１９９】
【数４８】
0004667794.tif 000064
【０２００】
以上の方法で7つの3次元クロソイドパラメータについて初期値を決定することができる。
【０２０１】
実際にこの手法により求めた初期値を表１０に記す。
【０２０２】
【表１０】
0004667794.tif 000065
【０２０３】
(b-4) 厳密に各点を通り、G2連続な3次元クロソイド補間
(b-3)で決定した初期値を用いてG2連続となるような条件下で各曲線のパラメータの近
似値をニュートン・ラプソン法によって求める。これによって得られたパラメータから3
次元クロソイドセグメントを生成し、点列間を3次元クロソイド曲線で補間することを行
った。
【０２０４】
ここで、3点の3次元クロソイド補間において、厳密に補間対象の点を通り、かつG2連続となるような条件について具体的な条件を考える。図２２は点P1, P2, P3の3次元クロソ
イド補間を示す。点P1, P2間を結ぶ曲線を曲線C1、点P2, P3間を結ぶ曲線を曲線C2とすると、a01とb01は既に既知であるから、未知数は、曲線C1のパラメータa11, a21, b11, b21, h1、曲線C2のパラメータa02, a12, a22, b02, b12, b22, h2の12個となる。以後説明にでてくる文字のサブスクリプトは各曲線のサブスクリプトに対応しており、各曲線における座標、接線回転角α、β、法線、曲率を曲線長変数Sの関数としてPxi, Pyi, Pzi, αi,βi, ni, κiのように表す。
【０２０５】
まず、点P1においては厳密に補間対象の点を通るという条件は3次元クロソイド曲線の
定義から考えると、始点を与えた時点で必然的に達成される。また接線方向についても既に既知な値として与えるので点P1における条件は特に指定しない。
【０２０６】
次に点P2について考える。点P2は曲線同士の接続点であり、G2連続になるには位置、接線、法線、曲率が連続する必要がある。つまり点P2において成り立つべき条件は下記のようになる。
【０２０７】
【数４９】
0004667794.tif 000066
【０２０８】
最後に点P3について考える。点P3は終点であり、満たすべき条件は位置、接線のみであるので以下の5つの条件が成り立つ。ここでα3、β3は、与える終点における接線ベクト
ルを決める接線方向回転角α、βであるとする。
【０２０９】
【数５０】
0004667794.tif 000067
【０２１０】
以上より、未知数a11, a21, b11, b21, h1 , a02, a12, a22, b02, b12, b22, h2の12
個に対して、条件式は下記の12個が成り立つことがわかる。まとめると成り立つ条件式は下記のようになる。
【０２１１】
【数５１】
0004667794.tif 000068
【０２１２】
これで未知数12個について12個の式が成り立つので解を求めることができる。この式をニュートン・ラプソン法によって解き、解を求めた。表１１に初期値と解を記す。
【０２１３】
【表１１】
0004667794.tif 000069
【０２１４】
(b-5) 曲線の生成
図２３は(b-4)で求めたパラメータを元に生成した曲線とb-2で生成したポリゴンとを同時に表示したものである。実線の曲線が曲線C1、破線の曲線が曲線C2である。この段階では始点・終点で接線方向を制御したG2連続な3次元クロソイド曲線になっている。
【０２１５】
(b-6）条件式と未知数
ここで、さらに始点P1と終点P3における法線と曲率も表８で与えた値にすることを考える。始点・終点でさらに法線と曲率を制御するには、始点と終点における条件をそれぞれ2つ増やす必要がある。しかし、条件が4つ増えた状態では未知数の数との関係からその条件を満たす解を求めることが出来ない。そこで、未知数と条件式の数を合わせるために、図２４に示されるように曲線C1の曲線長変数S =0.5の位置に点DP1を新たに挿入した。ま
た、曲線C2についても曲線長変数S =0.5の位置に点DP2を新たに挿入した。
【０２１６】
このとき、点P1と点DP1を結ぶ曲線を曲線C’1、点DP1と点P2を結ぶ曲線を曲線C’2、点P2と点DP2を結ぶ曲線を曲線C’3、点DP2と点P3を結ぶ曲線を曲線C’4とする。以後説明にでてくる文字のサブスクリプトは各曲線名に対応しており、例えば曲線Cにおける座標、
接線回転角α、β、法線、曲率を曲線長変数Sの関数としてPxc, Pyc, Pzc, αc,βc, nc,
κcのように表す。また、始点・終点においては、座標、接線回転角α、β、法線、曲率を始点ではPxs, Pys, Pzs, αs,βs, ns, κs、終点ではPxe, Pye, Pze, αe,βe, ne, 
κeのように表す。
【０２１７】
以下に各点において成り立つ条件を記す。
【０２１８】
【数５２】
0004667794.tif 000070
【０２１９】
以上より、全体で成り立つべき条件式は32個である。ここで、各曲線が持つクロソイドパラメータはa0, a1, a2, b0, b1, b2, hの７つづつであり、かつ、曲線が4本なので未知数は28個となる。しかし、これでは未知数と条件式の数が等しくないので、解を求めることが出来ない。そこで新たに挿入した2つの点DP1,DP2のy,z座標を未知数として扱い、未
知数を4つ増やした。こうすることで未知数も条件式も32個となり、解を求めることがで
きる。
【０２２０】
(b-7）初期値の決定2
(b-6)で立てた条件式を満たす解を求めるためにニュートン・ラプソン法を用いるが、
その収束率を上げるために未知数の初期値を決定する。方法としては、図２５のように(b-5)で生成した3次元クロソイド曲線を新しく挿入した点の前後で分割することにより、3
次元クロソイド曲線を4本作り、そのクロソイドパラメータを与えた。
【０２２１】
曲線の分割法については、曲線C1を曲線C’1と曲線C’2とに分割する方法を説明すると、曲線C’1のクロソイドパラメータh’, a’0, a’1, a’2, b’0, b’1, b’2は、曲線C1のパラメータを用いて、下記の式で表せる。ここでSdは分割点における曲線長変数でこ
こでは0.5である。
【０２２２】
【数５３】
0004667794.tif 000071
【０２２３】
次に分割点DP1を始点とする曲線C’2について考える。まず、曲線C1と大きさ、形状が
同じで向きが逆な曲線を曲線C’’ 1とすると、その曲線はのクロソイドパラメータh’’, a’’0, a’’1, a’’2, b’’0, b’’1, b’’2は、曲線C1の曲線のパラメータを用いて、下記の式で表せる。
【０２２４】
【数５４】
0004667794.tif 000072
【０２２５】
この曲線上において分割点DP1は、DP1=C’’1(1- Sd)で表される。ここで曲線C’’1を点DP1で分割することを考えると、その分割された曲線のうち点P2を始点とする曲線C’’
2は、曲線C’ 2と大きさ、形状が同じで向きが逆な曲線になっている。曲線C‘1を生成
した方法により曲線C’’2は、生成することができる。ここで、さらに曲線C’’2に対して大きさ、形状が同じで向きが逆な曲線を生成すれば、曲線C2は生成することができる。
【０２２６】
この曲線C2のクロソイドパラメータh’’, a’’0, a’’1, a’’2, b’’0, b’’1,
b’’2は、曲線C0のパラメータを用いて下記の式で表される。
【０２２７】
【数５５】
0004667794.tif 000073
【０２２８】
以上の方法で、３次元クロソイド曲線C1上の曲線長変数がS =0.5である点DP1で曲線C1
を曲線C’1とC’2とに分割することができる。同様の手法で、曲線C2上の曲線長変数がS =0.5である点DP2で曲線C2を曲線C’3とC’4とに分割することができる。
【０２２９】
この方法で分割した4つの曲線のパラメータを表１２に載せた。この曲線のパラメータ
をb-6で立てた条件式を満たす解を求める際のニュートン・ラプソン法の初期値に用いた
。
【０２３０】
【表１２】
0004667794.tif 000074
【０２３１】
（b-8）条件を満たすクロソイドパラメータを求める
(b-7)で決定した初期値を元に、(b-6)で立てた条件式を満たす解をニュートン・ラプソン法で求めた。表１３は算出された各曲線のパラメータである。また、表１４は与えた値と生成された曲線の始点・終点の接線、法線、曲率の差を示したものである。
【０２３２】
【表１３】
0004667794.tif 000075
【０２３３】
【表１４】
0004667794.tif 000076
【０２３４】
(b-9）曲線の生成
(b-8)で求めたパラメータにより生成された曲線を図２６に示す。実線が3次元クロソイド曲線、破線・一点鎖線・二点鎖線・三点鎖線は各曲線の方向を主法線方向に、大きさを曲率半径に自然対数を足して対数を取った曲率半径変化パターンを示している。また、図２７に図２６の線の種類に対応させた各曲線の始点からの移動距離sと曲率κの関係のグ
ラフを記す。生成された曲線は、表１２からわかるように与えた条件を満たしていることがわかる。
【０２３５】
以上で、両端で接線、法線、曲率を制御した3次元クロソイド補間法による曲線生成の
例を記した。
【０２３６】
３．  ３次元クロソイド補間を用いた数値制御方式
上記の3次元クロソイド補間曲線は、工作機械の工具やその他の運動対象物の運動制御
のための数値制御情報の発生に有効に用いられる。その特徴は、速度制御が容易なこと、及び、速度変化を滑らかにすることが可能なことである。
【０２３７】
（１）３次元クロソイド補間を用いた数値制御方式
３次元クロソイド補間曲線を用いた数値制御方式は、図２8に示される次の手順からな
る。
【０２３８】
(a)工具運動軌跡の設計（図２８、Ｓ１）
前節に述べた手法により、条件を満たす3次元クロソイド補間曲線を決定する。ロボッ
ト等の工具が動くとき、その工具の代表点（工具点、tool center point）は平面的ある
いは空間的に描かれた連続な軌跡曲線（直線を含む）の上を時間的に移動すると考えることができる。工具点の位置は、座標（ｘ、ｙ、ｚ）で表され、工具点の姿勢は、例えばｘ、ｙ、ｚ軸に対する回転角度で表される。どのような複雑な動きでも、工具点の軌跡は途切れ途切れになることなく、連続的に繋がっている。運動制御の第１段階は、この軌跡の形状を、３次元クロソイド曲線に設計することにある。
【０２３９】
(b)運動曲線の当てはめ（図２８、Ｓ２）
数値制御からの要求により、3次元クロソイド補間曲線に沿って、曲線上の制御対象点
の移動速度の分布を指定する。すなわち、運動制御の第２段階は、設計された軌跡上を動く工具点の速度・加速度を決定することである。軌跡上を工具点がどのような時間の関数として動くかは、工具点の速度・加速度を決定することで定められる。工具点の速度・加速度は、時間に対して決定される場合と、軌跡の形状に付随して決定される場合がある。一般的には時間に対して決定される場合が多いが、例えば曲面加工をする場合、平らな部
分では高速で移動させ、曲がっている部分では低速で移動させたいという要請から、軌跡の形状に付随して速度が決定される。
【０２４０】
本実施形態においては、例えばカム機構に採用されている特性の良い曲線を採用する。カルテシアン空間（実在空間）で定義された位置・姿勢は連続した曲線群を構成しているが、その一つ一つの曲線に運動曲線を当てはめ、加減速を指定する。カルテシアン空間とは、原点で互いに直交するｘ、ｙ、ｚの３軸を用いてつくられる３次元座標系であり、工具点の位置のみならず姿勢も表すことができる。
【０２４１】
(c)時分割（図２８、Ｓ３）及びカルテシアン座標系による工具の位置・姿勢の計算（
図８、Ｓ４）
ここでは、数値制御情報を計算する単位時間ごとに、制御対象の指定された移動速度に従って、工具点の移動位置及び姿勢を算出する。軌跡と運動が確定したので、工具点の位置・姿勢が時間ｔの関数として与えられたことになる。これにより、時間ｔを微小時間間隔で与えたとき、それぞれの時刻に対する工具点の変位を求めることができる。(c)の計
算は、具体的には以下のように行なわれる。現在点においては、位置情報や接線、曲率などの値がわかっている。指定された移動速度に単位時間を乗ずれば、単位時間中の移動曲線長がわかり、これにより移動後の曲線長パラメータが計算できる。この移動後の曲線長パラメータにより、移動後の点における位置情報や接線、曲率などの値を計算することが出来る。
【０２４２】
以上の手続きによって、カルテシアン座標系（実在空間）における時間ｔに対する工具点の位置と姿勢が計算される。変数としては、３次元では（ｘ、ｙ、ｚ、λ、μ、ν、θ）となる。ただし、（λ、μ、ν、θ）は姿勢Eを等価回転で表したもので（λ、μ、ν
）は等価回転の軸を、θは回転角を示す。
【０２４３】
また、数値制御からの要求により、３次元クロソイド補間曲線に沿って、法線方向へ指定寸法だけオフセットしたオフセット点を求めて、これをカッターパス（工具中心の軌跡）とする。この計算も、法線方向が求まっているので、容易である。
【０２４４】
(d)逆機構解（図２８、Ｓ５）
次に、上記の工具点の位置・姿勢を与えるために必要な各軸の回転角を求める。この過程は一般に逆機構解（inverse kinematics）と呼ばれている。例えば６軸のロボットがあるとすると、関節が６つあるので、肩の関節、腕の関節、ひじの関節、手首の関節等が何度回転したかで工具点の位置・姿勢が決まる。これが順機構解と呼ばれる。逆機構解は、これとは反対に実在の空間の位置・姿勢から軸空間の回転角θ１〜θ６を求めるものである。各軸のアクチュエータは回転モータであるとは限らず、リニアモータ等の直動アクチュエータである場合もあるが、その場合でも最低限度実変位をリニアモータの入力パルス数に変換する電子ギアの計算が必要となる。逆機構解は、ロボット等の機構の型ごとに固有なので、種々のロボット等について個別に解を用意しておく。
【０２４５】
(e)軸座標系による各軸モータ変位の計算（図２８、Ｓ６）
時分割された各工具点につき逆機構解を求め、これを各軸モータ（直動アクチュエータを含む）の変位パルスとして整数化する。パルス制御でない場合には、各軸変位の最少分解単位（分解能）を用いて、パルス数相当の整数化されたデータとして求める。
【０２４６】
上記、(a)及び(b)は準備的な手順であり、一度だけ行なわれる。(c)〜(e)は、指定された単位時間ごとに実行され、目的時間あるいは目的の条件を満たすまで続行される。
【０２４７】
上記の全ての計算を、数値制御装置の中で行うことも可能であり、あるいは、(a)及び(b)を別のコンピュータ（計算機）により計算及び設定しておき、その曲線パラメータなどを数値制御装置に送り込み、(c)〜(e)の計算を数値制御装置内で行うこともできる。
【０２４８】
（２）ＮＣ装置とＣＮＣ装置
以下、独立の数値制御装置（ＮＣ装置）を使用する場合と、プログラマの役割を持ったコンピュータとＮＣ装置とが一体化されたＣＮＣ装置を使用する場合について説明する。
（ａ）独立のＮＣ装置を用いる場合
従来の通常のＮＣ機械では、プログラミングを行ってＮＣデータを作成するプログラマと、このＮＣデータを用いて機械装置を動かすＮＣ装置との二つの装置にハードウェアが分離されている。それに対して、最近のＣＮＣ機械では、プログラミングを行うコンピュータはＮＣ装置に内蔵されて、一体化されたものとなっている。
【０２４９】
まず、前者の、独立のＮＣ装置を用いる場合について、３次元クロソイドによる数値制御方式を提案する。この場合、クロソイドデータの受け渡しにはクロソイドパラメータを用いるものとし、Ｇコードの中にクロソイドのフォーマットを定義する。これは例えば、次のようなものである。
【０２５０】
Ｇ＊＊＊
A0, A1, A2, B0, B1, B2, H
ここで、Ｇ＊＊＊はＧコードの番号を示す。A0〜Hは３次元クロソイドセグメントの７
つのパラメータを示す。このコードを実行する前に、工具はＰ０の位置に来ている。ＮＣ装置ではこのパラメータを用いて、瞬時の工具位置または工具位置の差分を計算して実行する。この操作を「順解」という。順解をＮＣ装置側で行う理由はデータの大量化を防ぐ目的からであるが、そのためにＮＣ装置では、ある種の演算を必要とする。Gコードでク
ロソイドを表現することによって、既設のNC装置にクロソイド曲線を組み込むことが可能となる。
【０２５１】
(b)ＣＮＣ方式
プログラマの役割を持ったコンピュータとＮＣ装置との一体化されたＣＮＣ装置の場合について述べる。この場合、クロソイドに関する計算がどの部分のハードで行われるかは問題にならない。また、データの量や転送のスピードも解決されつつある。
【０２５２】
一般に、このプログラマには、それぞれの条件に適したクロソイドのパラメータを決定する過程が含まれる。これを「逆解」という。逆解の中には、例えば、いくつかの離散的な点列を与えて、これらの点を厳密に通る滑らかな曲線を計算するプログラム（自由点列補間）も含まれる。また、加工上必要となる工具軌跡の決定プログラム（いわゆるＣＡＭ）も含まれることが多い。
【０２５３】
（３）  ３次元クロソイド補間を用いた数値制御方式の特徴
３次元クロソイド補間を用いた数値制御方式には、次のような利点がある。
【０２５４】
(a)上記のように、曲線が基準点からの曲線長を独立パラメータとして表現されている
ので、指定された移動速度に対応する数値制御情報を生成することが出来る。曲線長とは無関係な独立パラメータにより表現されているスプライン曲線などの他の曲線では、移動後の点が算出できても、その点に対応する独立パラメータの値を算出することが困難であり、指定された移動速度に対応する数値制御情報を生成することが容易ではない。
【０２５５】
これを詳述するに、図２９に示されるように、スプライン曲線Ｒ(t)で表現される軌跡
上の点Ｒ０から工具をある線速度で運動させる場合を考える。一定時間間隔毎に工具の目標点を算出するとき、単位時間経過後の工具の移動量ΔＳはわかるが、独立変数ｔは時間とか曲線長とかに関係するものではないので、独立変数の変化量Δｔは直ちには求めることはできない。Ｒ０＋ΔＳ＝Ｒ（ｔ０＋Δｔ）の式を解いてΔｔを求めなければ、目標点を算出することができないので、一定時間間隔毎にこの計算を繰り返さなければならないことになる。
【０２５６】
(b)3次元クロソイド曲線では、曲線長に対する曲率の変化の仕方が、近似的に一定であることが期待され、これに対応する数値制御情報は、運動制御の観点から、力学的に無理の少ない制御情報となることが期待される。一般のスプライン補間などでは、曲率変化を予測・制御することは困難である。
【０２５７】
(c)３次元クロソイド曲線は、その特殊な場合として、直線、円弧、螺旋曲線などを含
んでおり、個別の曲線式を組み込むことなく、多様な曲線に対する数値制御情報を厳密に表現することが出来る。
【０２５８】
(d)3次元クロソイド曲線は座標軸のとり方によらない自然方程式である。x,y,z軸で曲
線が表される従来のＮＣ装置では、例えばワークを斜めに傾けて加工するときに、ワークの取り付け方によっては、斜めの面を加工しやすかったり、加工しにくかったりすることがある。３次元クロソイド曲線では、曲線が線長によって与えられるので、斜めの面を加工する場合でも、斜めの面上に軌跡を作成すれば、水平面を加工するのと同様に加工できる。
【０２５９】
なお本発明の、接線方向のピッチ角およびヨー角のそれぞれが曲線長または曲線長変数の二次式で与えられる３次元曲線（３次元クロソイド曲線という）を用いて工具軌跡またはワークの輪郭形状を表現するプログラムをコンピュータで実行する際には、コンピュータのハードディスク装置等の補助記憶装置にプログラムを格納しておき、メインメモリーにロードして実行する。また、そのようなプログラムは、ＣＤ−ＲＯＭ等の可搬型記録媒体にプログラムを格納して売買したり、ネットワークを介して接続されたコンピュータの記録装置に格納しておき、ネットワークを通じて他のコンピュータに転送することもできる。また、そのようなプログラムによる計算結果(３次元クロソイド曲線のの曲線パラメ
ータ、各軸モータの変位パルス等)をＣＤ−ＲＯＭ等の可搬型記録媒体に格納して売買す
ることもできる。
【産業上の利用可能性】
【０２６０】
本発明の３次元クロソイド曲線によれば、工業製品の設計生産に必要となる空間曲線の汎用的な発生方法を提供することができる。空間曲線に沿って物体が加減速を伴って運動する場合に、拘束力変化が滑らかな設計を可能とする。この特徴は、数値制御装置に広く応用される。数値制御装置以外にも、曲線長に対して曲率の変化を適切に設計できることにより、審美的な意匠曲線設計など、様々な産業分野に有効に適用される。
【図面の簡単な説明】
【０２６１】
【図１】ｘ、ｙ座標上の２次元クロソイド曲線を示す図。
【図２】２次元クロソイド曲線を示す図。
【図３】３次元クロソイド曲線のα、βの定義を示す図。
【図４】典型的な３次元クロソイド曲線の形状を示す図。
【図５】Ｇ２連続な補間の条件を示す図。
【図６】接触平面の概念を示す図。
【図７】クロソイド補間の手法の流れの概要を示す図。
【図８】Ｇ２連続となるような条件を満たすクロソイド補間の手法の流れの概要を示す図。
【図９】点P1, P2, P3の3次元クロソイド補間を示す図。
【図１０】r =4の3D Discrete Clothoid Splinesを示す図。
【図１１】3D Discrete Clothoid Splinesを説明する図。
【図１２】補間により生成された3次元クロソイド曲線の透視図。
【図１３】横軸に始点からの移動距離、縦軸に曲率を取った曲率変化グラフ。
【図１４】両端点で各値を制御する3次元クロソイド補間の流れの概要を示す図。
【図１５】両端点で各値を制御する3次元クロソイド補間の概略図。
【図１６】実際に補間を行った結果を示す図。
【図１７】各曲線の始点からの移動距離と曲率の関係のグラフ。
【図１８】中間点における値の制御を示す図。
【図１９】始点・終点で各値を制御する3次元クロソイドを用いた補間法の流れの概要を示す図。
【図２０】r =4の3D Discrete Clothoid Splinesを示す図。
【図２１】生成されたポリゴンを示す図。
【図２２】点P1, P2, P3の3次元クロソイド補間を示す図。
【図２３】生成された曲線とポリゴンとを示す図。
【図２４】点を挿入した図。
【図２５】分割された3次元クロソイド曲線を示す図。
【図２６】生成された曲線を示す図。
【図２７】各曲線の始点からの移動距離sと曲率κの関係を示すグラフ。
【図２８】数値制御方法を示す工程図。
【図２９】従来のスプライン曲線を示す比較図。
【図１】
0004667794.tif 000085
【図２】
0004667794.tif 000086
【図３】
0004667794.tif 000087
【図４】
0004667794.tif 000088
【図５】
0004667794.tif 000089
【図６】
0004667794.tif 000090
【図７】
0004667794.tif 000091
【図８】
0004667794.tif 000092
【図９】
0004667794.tif 000093
【図１０】
0004667794.tif 000094
【図１１】
0004667794.tif 000095
【図１２】
0004667794.tif 000096
【図１３】
0004667794.tif 000097
【図１４】
0004667794.tif 000098
【図１５】
0004667794.tif 000099
【図１６】
0004667794.tif 000100
【図１７】
0004667794.tif 000101
【図１８】
0004667794.tif 000102
【図１９】
0004667794.tif 000103
【図２０】
0004667794.tif 000104
【図２１】
0004667794.tif 000105
【図２２】
0004667794.tif 000106
【図２３】
0004667794.tif 000107
【図２４】
0004667794.tif 000108
【図２５】
0004667794.tif 000109
【図２６】
0004667794.tif 000110
【図２７】
0004667794.tif 000111
【図２８】
0004667794.tif 000112
【図２９】
0004667794.tif 000113