JP5486524B2 - Skeletal angle control method, apparatus, and program - Google Patents
Skeletal angle control method, apparatus, and program Download PDFInfo
- Publication number
- JP5486524B2 JP5486524B2 JP2011024449A JP2011024449A JP5486524B2 JP 5486524 B2 JP5486524 B2 JP 5486524B2 JP 2011024449 A JP2011024449 A JP 2011024449A JP 2011024449 A JP2011024449 A JP 2011024449A JP 5486524 B2 JP5486524 B2 JP 5486524B2
- Authority
- JP
- Japan
- Prior art keywords
- angle
- skeleton
- circle
- determination
- angle range
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
Description
本発明は,骨格モデルにおける各々の骨の角度すなわち回転(曲げ,捻り等)の制御に関する。 The present invention relates to control of the angle, that is, rotation (bending, twisting, etc.) of each bone in a skeleton model.
CGキャラクタ等を動かしてポーズやアニメーションを作る際に,複数の骨を関節で繋いだ骨格モデル(スケルトンモデル)(図1(a))が使われる場合がある。このような骨格モデルは,仮想空間ばかりでなく,ロボット制御等の実空間における対象物を制御する場合にも用いられ得る。 When creating a pose or animation by moving a CG character or the like, a skeleton model (skeleton model) (FIG. 1A) in which a plurality of bones are connected by joints may be used. Such a skeleton model can be used not only in the virtual space but also in the case of controlling an object in a real space such as robot control.
本願明細書では,図1(b)のように関節の両側の骨のうち一方を親骨,他方を子骨と呼ぶことにする。関節の回転(曲げ,捻り)の状態は,親骨を基準とした子骨の向きで表すことができる。骨の向きを表すために,各々の骨に対して図1(b)のように座標系が定められる。図1(b)の座標系では,x軸回転が捻り,y軸回転とz軸回転が曲げとなる。 In the present specification, as shown in FIG. 1B, one of the bones on both sides of the joint is called a parent bone and the other is called a child bone. The state of rotation (bending, twisting) of the joint can be expressed by the orientation of the child bone relative to the parent bone. In order to express the direction of the bone, a coordinate system is defined for each bone as shown in FIG. In the coordinate system of FIG. 1B, the x-axis rotation is twisted, and the y-axis rotation and the z-axis rotation are bending.
三次元(3D)仮想空間又は実空間上で人体モデル,動物,構造物等の姿勢(ポーズ,動き等)を制御する際に用いられるこのような骨格モデルにおいては,図1(a)に示す各々の骨および関節の位置,角度,回転(曲げ,捻り)等を意図したとおりに制御することが必要となる。図1(a)に示される骨格モデルでは,各々の骨は関節で結合されており,各々の骨の動きが他の骨の動きに影響を与える。従来から,骨格をモデル化し,骨格モデルを制御するする手法として,種々のものが提案されている。 In such a skeleton model used for controlling the posture (pose, movement, etc.) of a human body model, animal, structure, etc. in a three-dimensional (3D) virtual space or real space, it is shown in FIG. It is necessary to control the position, angle, rotation (bending, twisting), etc. of each bone and joint as intended. In the skeletal model shown in FIG. 1A, each bone is connected by a joint, and the movement of each bone affects the movement of other bones. Conventionally, various methods for modeling a skeleton and controlling the skeleton model have been proposed.
例示として,図1(a)の骨格モデルを用いた場合を想定する。この骨格モデルは,人間の骨格をモデル化したものである。したがって,例えば,肘から先の腕の可動範囲には,一定の制限がある。この制限を超えた角度(曲げ,捻り)に腕を曲げるポーズを取らせることは,現実の人間に対するモデルからかけ離れたものになる。人間として自然なポーズを取る骨格モデルを形成するためには,たとえば肘の関節から先の骨の可動範囲に対して,一定の制限を課すことが必要となる。 As an example, assume that the skeleton model of FIG. This skeleton model is a model of the human skeleton. Therefore, for example, the movable range of the arm beyond the elbow has a certain limitation. Making the arm bend at an angle beyond this limit (bending, twisting) is far from the model for real humans. In order to form a skeletal model that takes a natural pose as a human being, it is necessary to impose certain restrictions on the range of movement of the bone from the elbow joint, for example.
従来では,特許文献1に開示されるように,たとえば親骨に対する子骨の向きを親骨の座標系を基準とした3軸(x,y,z)の各軸回りの回転角度で表現するものがある。 Conventionally, as disclosed in Patent Document 1, for example, the orientation of a child bone relative to a parent bone is expressed by rotation angles around three axes (x, y, z) with respect to the parent bone coordinate system. is there.
特許文献2には,関節を中心点とする球面上の所与の点を焦点とし,関節に対応する中心点と焦点とを結ぶ軸に直交する平面を射影面とし,関節の可動範囲を,射影面上において設定する技術が開示されている。 In Patent Document 2, a given point on a sphere centered on a joint is a focal point, a plane perpendicular to an axis connecting the central point corresponding to the joint and the focal point is a projection plane, and the movable range of the joint is A technique for setting on a projection surface is disclosed.
特許文献3及び特許文献4には,子骨の向きが,予め定められた可動範囲内に収まっていない場合には,可動範囲の形状に応じた条件を満たすように,前記親骨に対する前記子骨の向きを補正する発明が開示されている。 In Patent Document 3 and Patent Document 4, when the orientation of the skeleton is not within the predetermined movable range, the skeleton with respect to the parent bone is satisfied so as to satisfy the condition according to the shape of the movable range. An invention for correcting the orientation of the above is disclosed.
上述のような従来の骨格の制御方法では,設計者の意図とはかけ離れた可動範囲となってしまうという問題が指摘されていた。また,この問題をある程度解決する手法として,特許文献2,特許文献3及び特許文献4に開示された技術が提案されている。しかしながら,これらの技術においては,必要な計算量は比較的少ないものの,多関節のモデルをリアルタイムに動かす等の場合には,計算量の更なる軽減が求められる。 In the conventional skeleton control method as described above, a problem has been pointed out that the movable range is far from the intention of the designer. Further, as a technique for solving this problem to some extent, techniques disclosed in Patent Document 2, Patent Document 3 and Patent Document 4 have been proposed. However, although these techniques require a relatively small amount of calculation, when the articulated model is moved in real time, further reduction of the calculation amount is required.
したがって,より多様な骨格モデルに柔軟に対応でき,より簡便な処理で,骨格モデルを制御する手法の実現が望まれている。本発明は,上述のような,従来技術の欠点を解決することを目的としている。なお,ここで取り上げた課題及び本願発明の目的は,例示的なものである。したがって,本願発明の目的が,上述の記載に限定されるものではない点に留意すべきである。 Therefore, it is desired to realize a technique that can flexibly cope with various skeleton models and controls the skeleton model with simpler processing. The object of the present invention is to solve the drawbacks of the prior art as described above. It should be noted that the problems taken up here and the object of the present invention are exemplary. Therefore, it should be noted that the object of the present invention is not limited to the above description.
本願明細書では,便宜上,実施例として仮想空間上に形成され得る骨格モデルの制御を取り上げて説明を行う。しかしながら,本発明の適用範囲は,仮想空間に限られるものではない。たとえば,ロボットの制御等の物理的構造物の位置や角度(曲げ,捻り等を含む)の制御に利用することも当然に意図されている。すなわち,本発明は,仮想空間及び実空間の双方の骨格モデルを対象とするものであることに特に留意すべきである。また,本発明は,本願明細書で取り扱う特定の骨格モデルに限定されるものでもない。 In this specification, for the sake of convenience, control of a skeleton model that can be formed in a virtual space will be described as an example. However, the application range of the present invention is not limited to the virtual space. For example, it is naturally intended to be used for controlling the position and angle (including bending, twisting, etc.) of a physical structure such as robot control. That is, it should be particularly noted that the present invention is intended for both virtual space and real space skeleton models. Further, the present invention is not limited to a specific skeleton model handled in this specification.
本願発明は,親骨と子骨とが関節によって連結された骨格モデルにおいて,前記親骨に対する前記子骨の前記関節における角度範囲を制限することによって前記子骨の動作を制御するための方法であって,前記関節を中心とする球の球面上に,前記子骨の角度範囲の境界を定義する角度範囲境界円を設定する角度範囲境界円設定ステップであって,前記角度範囲境界円は前記関節を中心とする球面と親骨または親骨の延長線との交点1を通るものであり,前記子骨又は前記子骨の延長線と前記球面の交点2の位置が前記角度範囲境界円によって二分される前記球面の何れに存在すべきかによって前記子骨の角度範囲が定められ,前記球の中心と前記角度範囲境界円とで形成される円錐の軸単位ベクトルu及び前記円錐の半頂角α,または,前記軸単位ベクトルu及び前記半頂角αを導くことができる数値をメモリに格納することによって前記角度範囲境界円を設定する,角度範囲境界円設定ステップと,前記メモリに格納された数値を読み出すことによって前記軸単位ベクトルuと前記半頂角αとを得て,前記子骨の向きを表す単位ベクトルvを用いて,u・v−cosαの値を検査値として算出し,前記検査値に基づいて,前記子骨の角度が前記角度範囲の中にあるか否かを判定する,角度範囲判定ステップと,を有する,方法を提供する。なお,上記の式(v・u)の演算は,ベクトルvとベクトルuの内積を意味する。 The present invention is a method for controlling the operation of the skeleton in a skeletal model in which the skeleton is connected to the skeleton by limiting the angular range of the skeleton relative to the parent bone in the joint. , An angle range boundary circle setting step for setting an angle range boundary circle defining a boundary of the angle range of the skeleton on a spherical surface of a sphere centered on the joint, wherein the angle range boundary circle includes the joint Passing through the intersection point 1 between the spherical surface as a center and the extension line of the parent bone or the parent bone, and the position of the intersection point 2 of the spherical surface and the extension line of the child bone and the spherical surface is bisected by the angle range boundary circle The angle range of the skeleton is determined depending on which of the spheres should be present, the cone unit vector u formed by the center of the sphere and the angle range boundary circle and the half apex angle α of the cone, or Previous An angle range boundary circle setting step for setting the angle range boundary circle by storing a numerical value capable of deriving the axis unit vector u and the half apex angle α in a memory, and reading the numerical value stored in the memory To obtain the axis unit vector u and the half apex angle α, calculate the value of u · v-cos α as a test value using the unit vector v representing the orientation of the skeleton, and based on the test value And an angle range determination step of determining whether or not the angle of the skeleton is within the angle range. The calculation of the above equation (v · u) means the inner product of the vector v and the vector u.
また,本願発明は,更に 前記関節を原点とし,前記交点1から前記原点に向かう方向をx軸の正方向とする,三次元直交座標系(x,y,z)から,
μ=2tan−1(−z/(x+1))
ν=2tan−1(y/(x+1))
の関係を有する,モノポーラ球面座標系(μ,ν)を用いて,前記角度範囲境界円が,少なくともμ=μe及びν=νeのうち何れか一方を満たす(ここにおいて,μe及びνeは定数)ようにしてもよい。
The present invention further includes a three-dimensional orthogonal coordinate system (x, y, z) in which the joint is the origin, and the direction from the intersection 1 to the origin is the positive direction of the x axis.
μ = 2 tan −1 (−z / (x + 1))
ν = 2 tan −1 (y / (x + 1))
The angular range boundary circle satisfies at least one of μ = μ e and ν = ν e using the monopolar spherical coordinate system (μ, ν) having the following relationship (where μ e and ν e may be a constant).
本願発明は,更に,前記交点2の前記モノポーラ球面座標を(μ,ν)とし,μの下限及び上限をそれぞれμ0,μ1とし,νの下限及び上限をそれぞれν0,ν1とした場合に,前記角度範囲が,μ0<μ<μ1及びν0<ν<ν1を満たすよう前記角度範囲境界円を設定してもよい。 In the present invention, the monopolar spherical coordinates of the intersection point 2 are (μ, ν), the lower and upper limits of μ are μ 0 and μ 1, and the lower and upper limits of ν are ν 0 and ν 1 , respectively. In this case, the angle range boundary circle may be set so that the angle range satisfies μ 0 <μ <μ 1 and ν 0 <ν <ν 1 .
本願発明は,更に,前記角度範囲境界円が,前記交点1を通らない補助角度範囲境界円を更に用いるようにしてもよい。すなわち,この補助角度範囲境界円を角度範囲判定ステップで用いてもよい。 The present invention may further use an auxiliary angle range boundary circle in which the angle range boundary circle does not pass through the intersection point 1. That is, this auxiliary angle range boundary circle may be used in the angle range determination step.
本願発明は,前記角度範囲判定ステップにおいて,前記子骨の角度が前記角度範囲の中に無いと判定された場合,前記交点2から前記角度範囲の中にあることを満たす球面上の点まで前記球面上に沿って測定した距離が最短となる前記球面上の点に,前記交点2を移動させことにより,前記子骨の角度を修正する,角度修正ステップ,を更に有してもよい。 In the present invention, in the angle range determination step, when it is determined that the angle of the skeleton is not within the angle range, the point from the intersection point 2 to a point on the spherical surface that satisfies the angle range. An angle correction step of correcting the angle of the child bone by moving the intersection point 2 to a point on the spherical surface where the distance measured along the spherical surface is the shortest may be further included.
また,本願発明は,上記方法を実行する命令を有するプログラムとして実現されてもよい。あるいは,本願発明は,上記方法を実現する手段を有する装置として実現されてもよい。 Further, the present invention may be realized as a program having instructions for executing the above method. Or this invention may be implement | achieved as an apparatus which has a means to implement | achieve the said method.
本願発明により,骨格の角度を簡便な手法で制御することができる。なお,本願発明の効果は,この点に限定されるものではない。 According to the present invention, the angle of the skeleton can be controlled by a simple method. The effect of the present invention is not limited to this point.
[1.モノポーラ球面座標]
上述のように,スケルトンモデル(図1(a))の骨の向きを表すために,各骨に対して図1(b)のように座標系を定める。
[1. Monopolar spherical coordinates]
As described above, in order to represent the bone direction of the skeleton model (FIG. 1 (a)), a coordinate system is defined for each bone as shown in FIG. 1 (b).
関節を中心とする単位球面(半径1の球面)を作り,子骨のx軸(x>0の部分)と球面との交点をPとすると,関節の曲げ状態は,球面上の点Pの位置で表すことができる。関節の回転(曲げ,捻り)を表現する方法の一つに,3軸の回転角(オイラー角)を使う方法がある。例として,親骨の座標系を基準にx軸回転,z軸回転,y軸回転の順に回転を掛けた場合,各軸の回転角と点Pの位置との関係に注目すると,y軸回転角が経度に,z軸回転角が緯度に相当する。そこで,y軸回転角,z軸回転角を等間隔にとって球面上にグリッドを作ると,地球儀の経線・緯線と同様の形状になる。北極と南極に相当する2点が角度表現上の特異点となるため,扱いにくいという問題がある。 If a unit spherical surface (spherical surface with a radius of 1) centering on the joint is made and the intersection point between the x-axis of the skeleton (x> 0 part) and the spherical surface is P, the bending state of the joint is the point P on the spherical surface. It can be expressed by position. One method of expressing joint rotation (bending, twisting) is to use a triaxial rotation angle (Euler angle). As an example, when the rotation is performed in the order of x-axis rotation, z-axis rotation, and y-axis rotation with reference to the coordinate system of the parent bone, paying attention to the relationship between the rotation angle of each axis and the position of the point P, the y-axis rotation angle Is equivalent to longitude, and the z-axis rotation angle is equivalent to latitude. Therefore, if a grid is formed on a spherical surface with the y-axis rotation angle and the z-axis rotation angle set at equal intervals, the shape is similar to the meridian / parallel of the globe. Since the two points corresponding to the North Pole and the South Pole are singular points in the angle expression, there is a problem that it is difficult to handle.
これに対して,特異点を1個に減らす手法として,射影を用いる方法(特許文献2,特許文献3,特許文献4)が知られている。この手法の特性を球面上のグリッドで表すと図2のようになる。このグリッドは,球面上に作られた座標系と捉えることができる。極(特異点)が1個であることから,本願明細書では,この座標系を「モノポーラ球面座標」と呼ぶことにする。 On the other hand, as a technique for reducing the number of singular points to one, a method using a projection (Patent Document 2, Patent Document 3, and Patent Document 4) is known. The characteristics of this method are represented by a grid on a spherical surface as shown in FIG. This grid can be regarded as a coordinate system created on a spherical surface. Since there is one pole (singular point), in the present specification, this coordinate system is referred to as “monopolar spherical coordinate”.
以下,このモノポーラ球面座標に関して,次の項目について述べる。
・射影を使わずに球面上にモノポーラ球面座標系を構成する手法
・モノポーラ球面座標を使って関節の角度制限を行なう手法
[2.モノポーラ球面座標系の構成]
一般に2次元の座標系に目盛りをつけるとグリッド(格子)となる。以下の説明では,便宜上「グリッド」という用語を用いる場合があるが,その表すものは,単なる格子ではなく座標系の意味を含むものとする。
The following items regarding the monopolar spherical coordinates are described below.
-Method of constructing a monopolar spherical coordinate system on a spherical surface without using projection-Method of limiting joint angles using monopolar spherical coordinates [2. Configuration of monopolar spherical coordinate system]
Generally, when a scale is added to a two-dimensional coordinate system, a grid is formed. In the following description, the term “grid” may be used for convenience, but the representation represents the meaning of a coordinate system, not a simple grid.
座標(−1,0,0)の点をP*とし,「極」と呼ぶことにする。極P*を通りy軸に平行な直線をlyとし,図3のように,lyを含む等角度間隔の平面群を用意する。この平面群と単位球面との交線をグリッドの縦線とする。 The point of coordinates (-1, 0, 0) is P * and is called “pole”. Pole P * a straight line parallel to the street y-axis and l y, as shown in FIG. 3, to prepare a group of planes of equal angular interval containing a l y. An intersection line between the plane group and the unit spherical surface is defined as a vertical line of the grid.
同様に,極P*を通りz軸に平行な直線をlzとし,図4のように,lzを含む等角度間隔の平面群を用意する。この平面群と単位球面との交線をグリッドの横線とする。 Similarly, let l z be a straight line passing through the pole P * and parallel to the z-axis, and a plane group having equiangular intervals including l z is prepared as shown in FIG. The intersecting line between the plane group and the unit sphere is defined as a horizontal line of the grid.
図5のように,直線lyを含む平面の向きを角度φで表し,直線lzを含む平面の向きを角度θで表す。φ,θの符号は,図中に示す方向を正とする。球面上の点Pの位置は,φによって決まる平面,θによって決まる平面,および単位球面の3つの面の交点として決まる。μ≡2φ,ν≡2θとし,μ,νを使って球面上の位置を表す。 As in Figure 5, represents the orientation of the plane containing the straight line l y at an angle phi, it represents the orientation of the plane containing the straight line l z at an angle theta. The signs of φ and θ are positive in the direction shown in the figure. The position of the point P on the spherical surface is determined as an intersection of the three surfaces of the plane determined by φ, the plane determined by θ, and the unit spherical surface. Let μ≡2φ and ν≡2θ, and use μ and ν to represent the position on the sphere.
φ,θをそのまま使わずにμ,νを使うことにより,次のようなメリットがある。図6のように,点Pがxz平面上にある(即ちν=0である)場合を考える。子骨の向きはOPである。座標(1,0,0)の点をQとする。 By using μ and ν without using φ and θ as they are, there are the following advantages. Consider the case where the point P is on the xz plane (ie, ν = 0) as shown in FIG. The orientation of the skeleton is OP. Let Q be the point at coordinates (1, 0, 0).
∠OP*P=∠OPP*=φ
∠OP*P+∠OPP*=∠QOP
∴∠QOP=2φ=μ
したがって,ν=0の場合には,μは子骨のy軸回りの回転角となる。同様に,図7のように,点Pがxy平面上にある(即ちμ=0である)場合には,νは子骨のz軸回りの回転角となる。
∠OP * P = ∠OPP * = φ
∠OP * P + ∠OPP * = ∠QOP
∴∠QOP = 2φ = μ
Therefore, when ν = 0, μ is the rotation angle around the y axis of the skeleton. Similarly, as shown in FIG. 7, when the point P is on the xy plane (that is, μ = 0), ν is the rotation angle around the z axis of the skeleton.
このように,μ,νを使うと回転の状態(子骨の向き)を感覚的に把握しやすい。例えば図2は,μ,νの値を10°間隔にとって作ったグリッドであるが,xy平面上およびxz平面上ではグリッドが円周上で10°ずつの等間隔になっていることが分かる。 In this way, if μ and ν are used, the state of rotation (the orientation of the skeleton) can be easily grasped sensuously. For example, FIG. 2 shows a grid formed with μ and ν values set at 10 ° intervals, but it can be seen that the grids are equally spaced by 10 ° on the circumference on the xy plane and the xz plane.
[3.モノポーラ球面座標と子骨の向き]
子骨の向きを表す単位ベクトルをv≡(x,y,z)とし,これをモノポーラ球面座標で表したものを(μ,ν)とする。両者の関係は次式で表される(本明細書においてvはベクトルを表す)。
[3. Monopolar spherical coordinates and orientation of the skeleton]
A unit vector representing the orientation of the skeleton is represented by v≡ (x, y, z), and the unit vector represented by monopolar spherical coordinates is represented by (μ, ν). The relationship between the two is represented by the following equation (in the present specification, v represents a vector).
以下,具体的な角度(曲げ,捻り)の制御について詳細に述べる。 The specific angle (bending and twisting) control is described in detail below.
[4.可動領域の設定]
[4.1 矩形領域による角度制限]
μ,νの値に上限,下限を設定することで,図8のように可動領域を設定できる。このような可動領域制限を矩形制限と呼ぶことにする。μの上下限値をそれぞれμ1,μ0とし,νの上下限値をそれぞれν1,ν0とする。
[4. Setting of movable area]
[4.1 Angle limitation by rectangular area]
By setting the upper and lower limits for the values of μ and ν, the movable region can be set as shown in FIG. Such a movable area restriction is called a rectangular restriction. Let μ 1 and μ 0 be the upper and lower limits of μ, and let ν 1 and ν 0 be the upper and lower limits of ν, respectively.
式μ=μ0は単位球面上で1つの円を表す。この円をC0とする。円C0によって球の表面は2つの領域に分けられるが,このうち可動領域側(μ>=μ0の領域)を,円C0の「内側」と呼ぶことにする。球面上の円に対する内外判定の際に,後述のように円錐を使って判定を行なう。そこで,以下のように円錐パラメータを求めておく。 The expression μ = μ 0 represents one circle on the unit sphere. This circle and C 0. The surface of the sphere is divided into two regions by the circle C 0 , and the movable region side (region where μ> = μ 0 ) is called the “inside” of the circle C 0 . When determining inside / outside of a circle on a spherical surface, the determination is performed using a cone as described later. Therefore, the cone parameter is obtained as follows.
円C0と球の中心Oとを結んで作られる円錐をOC0とし,円錐OC0の軸方向の単位ベクトルをu0≡(a0,b0,c0)とする(本明細書においてuはベクトルを表す)。u0の方向は可動領域側とする。また,円錐OC0の半頂角(軸u0と円錐面のなす角)をα0とする。これらの値は次式により得られる。 A cone formed by connecting the circle C 0 and the center O of the sphere is OC 0, and an axial unit vector of the cone OC 0 is u 0 ≡ (a 0 , b 0 , c 0 ) (in this specification) u represents a vector). The direction of u 0 is the movable region side. Further, the half apex angle (angle formed between the axis u 0 and the conical surface) of the cone OC 0 is α 0 . These values are obtained by the following equation.
[4.2 小判型領域による角度制限]
矩形制限を用いて骨格モデルを動かすと,可動領域の角部に引っ掛かり,滑らかでない動きになることがある。この挙動を改善するために,以下のように小判型の可動領域を設定する。
[4.2 Angle limitation by oval area]
Moving the skeletal model using the rectangle restriction may get caught in the corner of the movable area, resulting in non-smooth movement. In order to improve this behavior, an oval movable area is set as follows.
[4.2.1 隅円の作成]
図9,図10のように,矩形領域の3辺に接する隅円を作り,角部を取り除く。元の矩形領域の形状によって,図9のようにC2,C3の一部が残る場合と,図10のようにC0,C1の一部が残る場合とがある。前者の形状を「横長」,後者の形状を「縦長」と呼ぶことにする。
[4.2.1 Creation of corner circles]
As shown in FIGS. 9 and 10, corner circles in contact with the three sides of the rectangular area are created, and the corners are removed. Depending on the shape of the original rectangular area, a part of C 2 and C 3 remains as shown in FIG. 9 and a part of C 0 and C 1 remains as shown in FIG. The former shape is called “horizontally long” and the latter shape is called “vertically long”.
横長形状の場合,図9のように,μ0側の隅円(C0,C2,C3に接する円)をCt0とし,μ1側の隅円(C1,C2,C3に接する円)をCt1とする。 In the case of the horizontally long shape, as shown in FIG. 9, the corner circle on the μ 0 side (circle contacting C 0 , C 2 , C 3 ) is C t0, and the corner circle on the μ 1 side (C 1 , C 2 , C 3). C t1 is a circle in contact with.
縦長形状の場合,図10のように,ν0側の隅円(C0,C1,C2に接する円)をCt2とし,ν1側の隅円(C0,C1,C3に接する円)をCt3とする。 In the case of the vertically long shape, as shown in FIG. 10, the corner circle on the ν 0 side (circle contacting the C 0 , C 1 , C 2 ) is C t2, and the corner circle on the ν 1 side (C 0 , C 1 , C 3). C t3 is a circle in contact with
[4.2.2 隅円の円錐パラメータ]
隅円の円錐パラメータは,以下の計算によって得られる。まず,次のようにk0,k1,k2,k3を定義する。
[4.2.2 Conic parameters of corner circles]
The cone parameter of the corner circle is obtained by the following calculation. First, k 0 , k 1 , k 2 , and k 3 are defined as follows.
[Da<=0の場合(横長または円形状)]
円錐OCt0の軸方向の単位ベクトルをut0≡(at0,bt0,ct0)とし,半頂角をαt0とする。これらの値は,以下の計算によって得られる。
[When D a ≦ = 0 (Landscape or Circular)]
The unit vector in the axial direction of the cone OC t0 is set to u t0 ≡ (a t0 , b t0 , c t0 ), and the half apex angle is set to α t0 . These values are obtained by the following calculation.
円錐OCt2の軸単位ベクトルut2≡(at2,bt2,ct2)および半頂角αt2は,以下の計算によって得
られる。
The axial unit vector u t2 ≡ (a t2 , b t2 , c t2 ) and the half apex angle α t2 of the cone OC t2 are obtained by the following calculation.
[5.可動領域に対する内外判定]
「5.1 円錐を使った内外判定」
矩形制限,小判型制限のいずれも,可動領域の形状は複数の円を組み合わせたものになっている。そのため,可動領域に対する内外判定は,円領域に対する内外判定の組み合わせとなる。円領域に対する内外判定は,以下のように円錐を使って実現できる。
[5. Inside / outside judgment for movable area]
"5.1 Internal / external judgment using a cone"
The shape of the movable area is a combination of multiple circles for both rectangular and oval restrictions. Therefore, the inside / outside determination for the movable region is a combination of the inside / outside determination for the circular region. The inside / outside judgment for a circular region can be realized using a cone as follows.
子骨の向き(x軸の向き)を表す単位ベクトルをv≡(x,y,z)とする。球面上の円Cが与えられ,円錐OCの軸単位ベクトルがu≡(a,b,c)で,半頂角がαであるとする。ベクトルvの円錐OCに対する内外判定は,以下のように実現できる。 A unit vector representing the orientation of the skeleton (direction of the x axis) is represented by v≡ (x, y, z). It is assumed that a circle C on the spherical surface is given, the axial unit vector of the cone OC is u≡ (a, b, c), and the half apex angle is α. The inside / outside determination with respect to the cone OC of the vector v can be realized as follows.
vとuのなす角がα以下であることが,vが円錐OCの内側にあることの必要十分条件である。この条件を式で表すと,次のようになる。 It is a necessary and sufficient condition for v to be inside the cone OC that the angle formed by v and u is less than α. This condition is expressed as follows.
この判定式は,平面を使った判定と見ることもできる。法線ベクトルが(a,b,c)で原点からの距離がcosαの平面を,平面κとする。判定式Dの値は,点(x,y,z)の平面κからの符号付きの距離(u方向が正)を意味する。したがって,Dの正負による判定は,点(x,y,z)が平面κの表裏どちら側にあるかを判定していることになる。 This judgment formula can also be viewed as judgment using a plane. A plane whose normal vector is (a, b, c) and whose distance from the origin is cos α is defined as a plane κ. The value of the determination formula D means a signed distance (the u direction is positive) from the plane κ of the point (x, y, z). Therefore, the determination based on whether D is positive or negative means whether the point (x, y, z) is on the front or back side of the plane κ.
判定式Dの平面式としての解釈は,次のように理解できる。一般に,球面上の円は,球と「その円を含む平面」との交線として捉えられる。そのため,球面上の円領域に対する内外判定は,平面による判定を使って実現できる。式D=0が表す平面は,円Cを含む平面になっている。 The interpretation of the judgment formula D as a plane formula can be understood as follows. In general, a circle on a sphere is regarded as a line of intersection between a sphere and a “plane containing the circle”. Therefore, the inside / outside judgment for the circular area on the spherical surface can be realized by using the judgment by plane. The plane represented by the formula D = 0 is a plane including the circle C.
[5.2 矩形領域の内外判定]
図11のように,子骨の向きvが円C0,C1,C2,C3全てに対して内側にある場合のみ,矩形領域内となる。図18に示すように,以下の手順によって,領域に対する内外判定を行なう。
[5.2 Determination of inside / outside of rectangular area]
As shown in FIG. 11, the skeleton is within the rectangular region only when the orientation v is inside the circles C 0 , C 1 , C 2 , and C 3 . As shown in FIG. 18, the inside / outside determination for the region is performed according to the following procedure.
S1801において,円C0による内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1811)。この判定が「はい」であれば,S103に次に進む。 In S1801, and out the determination by the circle C 0, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1811). If this determination is “Yes”, the process proceeds to S103.
S1803において,円C1による内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1811)。この判定が「はい」であれば,S105に次に進む。 In S1803, and out the determination by the circle C 1, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1811). If this determination is “Yes”, the process proceeds to S105.
S1805において,円C2による内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1811)。この判定が「はい」であれば,S107に次に進む。 In S1805, and out the determination by the circle C 2, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1811). If this determination is “Yes”, the process proceeds to S107.
S1807において,円C3による内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1811)。この判定が「はい」であれば,領域内と判定される(S1809)。 In S1807, and out the determination by the circle C 3, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1811). If this determination is “Yes”, it is determined to be within the area (S1809).
[5.3 小判型領域の内外判定]
[5.3.1 補助円の作成]
小判型領域の内外判定には,領域形状を構成する円(C0〜C3,Ct0,〜Ct3)だけでなく,以下に述べる補助円を使う。
[5.3 Determination of inside / outside of oval area]
[5.3.1 Creating auxiliary circles]
For the inside / outside determination of the oval area, not only the circles (C 0 to C 3 , C t0 , to C t3 ) constituting the area shape, but also the following auxiliary circles are used.
[横長形状の場合]
領域形状が横長の場合,図12のように補助円を作る。円Ct0とC2の接点をP02とし,円Ct0とC3の接点をP03とする。点P*,P02,P03の3点を通る円を,補助円Cs0とする。円Cs0の「内側」は,小判型領域の中央の側とする。
[Landscape]
When the area shape is horizontally long, an auxiliary circle is created as shown in FIG. The contact of the circle C t0 and C 2 and P 02, the contact point of the circle C t0 and C 3 and P 03. A circle passing through the three points P * , P 02 and P 03 is defined as an auxiliary circle C s0 . The “inside” of the circle C s0 is the center side of the oval area.
円錐OCs0の軸単位ベクトルを(as0,bs0,cs0)とし,半頂角をαs0とする。これらの値は,以下の計算によって得られる。 The axial unit vector of the cone OC s0 is (a s0 , b s0 , c s0 ), and the half apex angle is α s0 . These values are obtained by the following calculation.
領域形状が縦長の場合は,図13のように補助円を作る。円Ct2とC0の接点をP20とし,円Ct2とC1の接点をP21とする。点P*,P20,P21の3点を通る補助円をCs2とする。円錐OCs2の軸単位ベクトル(as2,bs2,cs2)と半頂角αs2は,以下の計算によって得られる。
If the area shape is vertically long, an auxiliary circle is created as shown in FIG. The contact of the circle C t2 and C 0 and P 20, the contact point of the circle C t2 and C 1 to P 21. An auxiliary circle passing through the three points P * , P 20 and P 21 is defined as C s2 . The axis unit vector (a s2 , b s2 , c s2 ) and the half apex angle α s2 of the cone OC s2 are obtained by the following calculation.
[5.3.2 補助円を使った内外判定]
[横長形状の場合]
横長の小判型領域の内外判定には,Ct0,Ct1,C2,C3,Cs0,Cs1の6つの円を使う。図19に示すように以下の手順によって,領域に対する内外判定を行なう。
[5.3.2 Internal / external determination using an auxiliary circle]
[Landscape]
Six circles of C t0 , C t1 , C 2 , C 3 , C s0 , and C s1 are used for the inside / outside determination of the horizontally long oval area. As shown in FIG. 19, the inside / outside determination for a region is performed according to the following procedure.
S1901において,円C2による内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1913)。この判定が「はい」であれば,S1903に次に進む。 In S1901, and out the determination by the circle C 2, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1913). If this determination is “Yes”, the process proceeds to S1903.
S1903において,円C3による内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S1913)。この判定が「はい」であれば,S1905に次に進む。 In S1903, and out the determination by the circle C 3, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out (S1913). If this determination is “Yes”, the process proceeds to S1905.
S1905において,円Cs0,Cs1による内外判定で,ともに内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S1911)。この判定が「いいえ」であれば,S1907に進む。 In S1905, the inside / outside determination using the circles Cs0 and Cs1 determines whether both are inside. If this determination is “Yes”, it is determined that the area is present (S1911). If this determination is "No", the process proceeds to S1907.
S1907において,円Ct0による内外判定で,内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S1911)。この判定が「いいえ」であれば,S1909に進む。 In S1907, and out the determination by the circle C t0, it performs one of determination whether the inside. If this determination is “Yes”, it is determined that the area is present (S1911). If this determination is "No", the process proceeds to S1909.
S1909において,円Ct1による内外判定で,内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S1911)。この判定が「いいえ」であれば,領域外と判定する(S1913)。
[縦長形状の場合]
縦長の小判型領域の内外判定には,Ct2,Ct3,C0,C1,Cs2,Cs3の6つの円を使う。図20に示すように以下の手順によって,領域に対する内外判定を行なう。
In S1909, and out the determination by the circle C t1, it performs one of determination whether the inside. If this determination is “Yes”, it is determined that the area is present (S1911). If this determination is “No”, it is determined that the area is out (S1913).
[For vertically long shape]
Six circles of C t2 , C t3 , C 0 , C 1 , C s2 , and C s3 are used for the inside / outside determination of the vertically long oval area. As shown in FIG. 20, the inside / outside determination for the region is performed according to the following procedure.
S2001において,円C0による内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S2013)。この判定が「はい」であれば,S2003に次に進む。 In S2001, and out the determination by the circle C 0, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out of the area (S2013). If this determination is “Yes”, the process proceeds to S2003.
S2003において,円C1による内外判定で,内側か否かの判定を行う。この判定が「いいえ」であれば,領域外と判定される(S2013)。この判定が「はい」であれば,S2005に次に進む。 In S2003, and out the determination by the circle C 1, it performs one of determination whether the inside. If this determination is “No”, it is determined that the region is out of the area (S2013). If this determination is “Yes”, the process proceeds to S2005.
S2005において,円Cs2,Cs3による内外判定で,ともに内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S2011)。この判定が「いいえ」であれば,S2007に進む。 In S2005, the inside / outside determination by the circles C s2 and C s3 determines whether both are inside. If this determination is “Yes”, it is determined that the area is inside (S2011). If this determination is “No”, the process proceeds to S2007.
S2007において,円Ct2による内外判定で,内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S2011)。この判定が「いいえ」であれば,S2009に進む。 In S2007, and out the determination by the circle C t2, it performs one of determination whether the inside. If this determination is “Yes”, it is determined that the area is inside (S2011). If this determination is “No”, the process proceeds to S2009.
S2009において,円Ct3による内外判定で,内側か否かの判定を行う。この判定が「はい」であれば,領域内と判定する(S2011)。この判定が「いいえ」であれば,領域外と判定する(S2013)。 In S2009, and out the determination by the circle C t3, it performs one of determination whether the inside. If this determination is “Yes”, it is determined that the area is inside (S2011). If this determination is “No”, it is determined that the area is out (S2013).
[6.捻り角]
[6.1 曲げと捻りの順序]
子骨の捻り角をλとし,捻りを含めたモノポーラ球面座標をλ,μ,νで表す。曲げと捻りの順序は,次の2とおりが考えられる。
・曲げた後に,子骨のx軸回りに捻る。
・x軸回りに捻り,その後に曲げる。
前者を「元曲げ」,後者を「元捻り」と呼ぶことにする。
[6. Twist angle]
[6.1 Order of bending and twisting]
The torsion angle of the skeleton is λ, and the monopolar spherical coordinates including the torsion are expressed by λ, μ, and ν. The order of bending and twisting can be considered as follows.
・ After bending, twist around the x-axis of the skeleton.
-Twist around the x axis and then bend.
The former is called “original bending” and the latter is called “original twist”.
[6.2 捻り角の定義]
捻り角を扱うには,捻り角λ=0の状態を定義する必要がある。まず,元曲げ方式について説明する。関節の曲げ状態は,球面上の点P(子骨のx軸と単位球面との交点)の位置で表すことができる。これに対して捻りは,軸OP回りの回転として表される。子骨のy軸,z軸がグリッドの向き(それぞれ+ν方向,−μ方向)と合っている状態を,捻り角が0であると定義する。
[6.2 Definition of torsion angle]
In order to handle the twist angle, it is necessary to define a state where the twist angle λ = 0. First, the original bending method will be described. The bending state of the joint can be represented by the position of a point P on the spherical surface (intersection of the x-axis of the skeleton and the unit spherical surface). On the other hand, twist is expressed as rotation around the axis OP. A state in which the y-axis and z-axis of the skeleton are aligned with the grid directions (+ ν direction and −μ direction, respectively) is defined as a twist angle of zero.
元捻り方式の場合は,捻りによってグリッド自体がx軸(親骨のx軸)回りにλだけ回転する。捻りの後に曲げを掛けても,子骨のy軸,z軸は,回転後のグリッドの向き(それぞれ+ν方向,−μ方向)と常に一致するものとする。 In the case of the original twist method, the grid itself is rotated by λ around the x axis (the x axis of the parent bone) by twisting. Even if bending is applied after twisting, the y-axis and z-axis of the skeleton will always coincide with the orientation of the rotated grid (+ ν direction and −μ direction, respectively).
[6.3マトリクスとモノポーラ球面座標の関係]
子骨の向きを表すマトリクスを,次式のようにMとする。マトリクスの要素の並びは,列ベクトルに対して左からマトリクスを掛ける方式とする(本明細書でMはマトリクスを表す)。
[Relationship between 6.3 matrix and monopolar spherical coordinates]
Let M be a matrix that represents the orientation of the skeleton. The matrix elements are arranged in such a way that the matrix is multiplied from the left to the column vector (M represents a matrix in this specification).
[6.3.1 元曲げ方式]
Mからλ,μ,νを求める手順は,以下のようになる。m00≒−1の場合に別の式を使うのは,桁落ちによる精度の低下を避けるためである。
[6.3.1 Original bending method]
The procedure for obtaining λ, μ, ν from M is as follows. The reason why another formula is used in the case of m 00 ≈−1 is to avoid a decrease in accuracy due to a digit loss.
[6.3.2 元捻り方式]
Mからλ,μ,νを求める手順は,以下のようになる。
[6.3.2 Original twist method]
The procedure for obtaining λ, μ, ν from M is as follows.
計算式の導出方法については,後述する([式の導出方法E]を参照)。 The method for deriving the calculation formula will be described later (see [Formula derivation method E]).
[6.4 四元数とモノポーラ球面座標の関係]
子骨の向きを表す四元数(クォータニオン)を,次式のようにqとする。
[6.4 Relationship between quaternion and monopolar spherical coordinates]
A quaternion representing the orientation of the skeleton is assumed to be q as shown in the following equation.
[6.4.1 元曲げ方式]
qからλ,μ,νを求める式は,以下のようになる。
[6.4.1 Original bending method]
The equation for obtaining λ, μ, ν from q is as follows.
[6.4.2 元捻り方式]
qからλ,μ,νを求める式は,以下のようになる。
[6.4.2 Original twist method]
The equation for obtaining λ, μ, ν from q is as follows.
[7.可動領域外の場合の修正方法]
関節の曲げが可動領域外となった場合に,これを可動領域内に修正する方法について説明する。関節の曲げ状態は,単位球面上の点Pの位置で表される。Pの位置を可動領域内(境界を含む)に修正した点をPmとする。
[7. Correction method outside the movable area]
A description will be given of a method for correcting the bending of the joint outside the movable region into the movable region. The bending state of the joint is represented by the position of the point P on the unit sphere. Let P m be the point where the position of P is corrected within the movable region (including the boundary).
球面上の領域Aと,領域A外の球面上の点Pとが与えられたとき,領域境界上の点のうち,Pからの距離(球面上での距離)が最小となる点を,「領域Aに対するPの最近点」と呼ぶことにする。可動領域と点Pのみが与えられた場合,可動領域に対するPの最近点をPmとするのが最良であると考えられる。そこで,最近点を用いた修正方法について述べる。 Given a region A on the sphere and a point P on the sphere outside the region A, the point on the region boundary that has the smallest distance from P (the distance on the sphere) is It will be referred to as “P's closest point for region A”. If only a movable region and a point P are given, it is considered best to set P m as the closest point of P with respect to the movable region. Then, the correction method using the latest point is described.
[7.1 円領域に対する最近点]
矩形制限,小判型制限のいずれも,可動領域の形状は複数の円を組み合わせたものになっている。そのため,可動領域に対する最近点を得るには,円領域に対する最近点を求める必要がある。
[7.1 Nearest point to circle area]
The shape of the movable area is a combination of multiple circles for both rectangular and oval restrictions. Therefore, in order to obtain the nearest point for the movable region, it is necessary to obtain the nearest point for the circular region.
図14のように,子骨の向き(x軸の向き)を表す単位ベクトルをv≡(x,y,z)とし,点Pの座標を(x,y,z)とする。球面上の円Cが与えられ,円錐OCの軸単位ベクトルがu≡(a,b,c)で,半頂角がαであるとする。円領域Cに対するPの最近点をPnとし,ベクトルOPnをwとする。wは次式により求められる。 As shown in FIG. 14, the unit vector representing the orientation of the skeleton (direction of the x axis) is v≡ (x, y, z), and the coordinates of the point P are (x, y, z). It is assumed that a circle C on the spherical surface is given, the axial unit vector of the cone OC is u≡ (a, b, c), and the half apex angle is α. Let P n be the closest point of P with respect to the circle region C, and let w be the vector OP n . w is obtained by the following equation.
[7.2円領域までの距離]
単位球面上において,点Pが円領域Cの外にあるとする。Pから円Cまでの距離(単位球面上での距離)をγとする。前述(7.1節)の記号を使うと,γ=∠POPn=β−αなので,次式のようになる。
[Distance to 7.2 circle area]
It is assumed that the point P is outside the circular area C on the unit spherical surface. Let γ be the distance from P to circle C (distance on the unit sphere). Using the symbols described above (Section 7.1), γ = ∠POP n = β−α, so the following equation is obtained.
[7.3 矩形領域に対する最近点]
矩形領域に対する点Pの最近点Pmは,図21に示すように,以下の手順によって得られる。Pは矩形領域の外にあるものとする。また,図15のように,矩形領域の角の4頂点を,それぞれPa,Pb,Pc,Pdとする。
[7.3 Nearest point for rectangular area]
Nearest point P m of the point P with respect to the rectangular region, as shown in FIG. 21, is obtained by the following procedure. Let P be outside the rectangular area. Further, as shown in FIG. 15, the four vertices of the corners of the rectangular area are denoted as P a , P b , P c , and P d , respectively.
S2101において,円C0によるPの内外判定で,内側か否かの判定を行う。判定が「はい」であればS2107に進む。判定が「いいえ」であれば,S2103に進む。 In S2101, in and out determination of P with a circle C 0, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2107. If the determination is “No”, the process proceeds to S2103.
S2103において,円C0に対するPの最近点を求め,PnとしS2105に進む。 In S2103, obtains the nearest point P with respect to the circle C 0, the process proceeds to S2105 and P n.
S2105において,円C2,C3によるPnの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PnをPmとして(S2127),終了する。判定が「いいえ」であれば,S2113に進む。 In S2105, whether or not both are inside is determined by the inside / outside determination of Pn using the circles C 2 and C 3 . If the determination is “yes”, P n is set to P m (S2127), and the process ends. If the determination is “No”, the process proceeds to S2113.
S2107において,円C1によるPの内外判定で,内側か否かの判定を行う。判定が「はい」であれば,S2113に進む。判定が「いいえ」であれば,S2109に進む。 In S2107, in and out determination of P with a circle C 1, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2113. If the determination is “No”, the process proceeds to S2109.
S2109において,円C1に対するPの最近点を求め,PnとしS2111に進む。 In S2109, obtains the nearest point P with respect to the circle C 1, the process proceeds to S2111 and P n.
S2111において,円C2,C3によるPnの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PnをPmとして(S2127)終了する。判定が「いいえ」であれば,S3113に進む。 In S2111, it is determined whether or not both are inside by the inside / outside determination of Pn by the circles C 2 and C 3 . If the determination is “Yes”, P n is set to P m (S2127), and the process ends. If the determination is “No”, the process proceeds to S3113.
S2113において,円C2によるPの内外判定で,内側か否かの判定を行う。判定が「はい」であれば,S2119に進む。判定が「いいえ」であればS2115に進む。 In S2113, in and out determination of P with a circle C 2, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2119. If the determination is “No”, the process proceeds to S2115.
S2115において,円C2に対するPの最近点を求め,PnとしS2117に進む。 In S2115, obtains the nearest point P with respect to the circle C 2, the flow proceeds to S2117 and P n.
S2117において,円C0,C1によるPnの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PnをPmとして(S2127)終了する。判定が「いいえ」であればS2125に進む。 In S2117, it is determined whether or not both are inside by the inside / outside determination of P n by the circles C 0 and C 1 . If the determination is “Yes”, P n is set to P m (S2127), and the process ends. If the determination is “No”, the process proceeds to S2125.
S2119において,Pが円C3の外であることが確定する。S2121に進む。 In S2119, it is determined P is outside the circle C 3. The process proceeds to S2121.
S2121において,円C3に対するPの最近点を求め,PnとしS2123に進む。 In S2121, obtains the nearest point P with respect to the circle C 3, the process proceeds to S2123 and P n.
S2123において,円C0,C1によるPnの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PnをPmとして(S2127)終了する。判定が「いいえ」であれば,S2125に進む。 In S2123, it is determined whether or not both are inside by the inside / outside determination of P n by the circles C 0 and C 1 . If the determination is “Yes”, P n is set to P m (S2127), and the process ends. If the determination is “No”, the process proceeds to S2125.
S2125において,Pa,Pb,Pc,Pdの4点のうちPから最も近い(球面上での距離が最小)のものをPmとし,終了する。 In S2125, among the four points P a , P b , P c , and P d , the one closest to P (the minimum distance on the spherical surface) is set as P m , and the process ends.
[7.4小判型領域に対する最近点]
[横長形状の場合]
横長の小判型領域に対する点Pの最近点Pmは,図22に示すように,以下の手順によって得られる。Pは小判型領域の外にあるものとする。
[7.4 Recent points for the oval area]
[Landscape]
Nearest point P m of the point P with respect to a horizontally long oval region, as shown in FIG. 22, is obtained by the following procedure. Let P be outside the oval area.
S2201において,円C2によるPの内外判定で,内側か否かの判定を行う。判定が「はい」であれば,S2207に進む。判定が「いいえ」であればS2203に進む。 In S2201, in and out determination of P with a circle C 2, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2207. If the determination is “No”, the process proceeds to S2203.
S2203において,円C2に対するPの最近点を求めPnとしS2205に進む。 In S2203, the process proceeds to S2205 and P n seek the nearest point P with respect to the circle C 2.
S2205において,円Cs0,Cs1によるPnの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PnをPmとして(S2215)として終了する。判定が「いいえ」であればS2213に進む。 In S2205, in and out determination of P n with a circle C s0, C s1, it performs both of determining whether it is inside. If the determination is “Yes”, P n is set as P m (S2215), and the process ends. If the determination is “No”, the process proceeds to S2213.
S2207において,円C3によるPの内外判定で,内側か否かの判定を行う。判定が「はい」であればS2213に進む。判定が「いいえ」であればS2209に進む。 In S2207, in and out determination of P with a circle C 3, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2213. If the determination is “No”, the process proceeds to S2209.
S2209において,円C3に対するPの最近点を求めPnとしS2211に進む。 In S2209, the process proceeds to S2211 and P n seek the nearest point P with respect to the circle C 3.
S2211において,円Cs0,Cs1によるPnの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PnをPmとして(S2215)終了する。判定が「いいえ」であればS2213に進む。 In S2211, it is determined whether or not both are inside by the inside / outside determination of P n by the circles C s0 and C s1 . If the determination is “Yes”, P n is set to P m (S2215) and the process ends. If the determination is “No”, the process proceeds to S2213.
S2213において,円Ct0,Ct1のうち,Pからの距離が小さい方に対するPの最近点をPmとし,終了する。 In S2213, the closest point of P with respect to the one of the circles C t0 and C t1 having the smaller distance from P is set as P m , and the process ends.
[縦長形状の場合]
縦長の小判型領域に対する点Pの最近点は,図23に示すように,以下の手順によって得られる。Pは小判型領域の外にあるものとする。
[For vertically long shape]
As shown in FIG. 23, the closest point of the point P with respect to the vertically long oval area is obtained by the following procedure. Let P be outside the oval area.
S2301において,円C0によるPの内外判定で,内側か否かの判定を行う。判定が「はい」であればS2307に進む。判定が「いいえ」であればS2303に進む。 In S2301, in and out determination of P with a circle C 0, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2307. If the determination is “No”, the process proceeds to S2303.
S2303において,円C0に対するPの最近点を求めPnとし,S2205に進む。 In S2303, the P n seek the nearest point P with respect to the circle C 0, the process proceeds to S2205.
S2305において,円Cs2,Cs3によるPnの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であればPnをPmとして(S2315)終了する。判定が「いいえ」であれば,S2313に進む。 In S2305, it is determined whether or not both are inside by the inside / outside determination of Pn by the circles Cs2 and Cs3 . If the determination is “Yes”, P n is set to P m (S2315), and the process ends. If the determination is “No”, the process proceeds to S2313.
S2307において,円C1によるPの内外判定で,内側か否かの判定を行う。判定が「はい」であれば,S2313に進む。判定が「いいえ」であればS2309に進む。 In S2307, in and out determination of P with a circle C 1, it performs one of determination whether the inside. If the determination is “Yes”, the process proceeds to S2313. If the determination is “No”, the process proceeds to S2309.
S2309において,円C1に対するPの最近点を求めPnとする。 In S2309, the P n seek the nearest point P with respect to the circle C 1.
S2311において,円Cs2,Cs3によるPnの内外判定で,ともに内側であるか否かの判定を行う。判定が「はい」であれば,PnをPmとして(S2315)終了する。判定が「いいえ」であればS2313に進む。 In S2311, in and out determination of P n with a circle C s2, C s3, it performs both of determining whether it is inside. If the determination is “Yes”, P n is set to P m (S2315) and the process ends. If the determination is “No”, the process proceeds to S2313.
S2313において,円Ct2,Ct3のうち,Pからの距離が小さい方に対するPの最近点をPmとし,終了する。 In S2313, among the circle C t2, C t3, the nearest point P and P m for better distance from P is small, it ends.
[7.5 曲げと捻りの修正方法]
関節の回転(曲げ捻り)の状態がマトリクス(または四元数)で与えられ,これを角度制限範囲内に修正する手順は,図29に示すように以下のようになる。
[7.5 How to correct bending and twisting]
The state of joint rotation (bending and twisting) is given by a matrix (or quaternion), and the procedure for correcting this within the angle limit range is as follows, as shown in FIG.
S2901で,マトリクス(または四元数)からλ,vbを求める(6.3節,6.4節参照)。 In S2901, λ and v b are obtained from the matrix (or quaternion) (see sections 6.3 and 6.4).
S2903で,vbが可動領域内かどうかを調べる(5.2節,5.3節参照)。可動領域外であればvbを修正する(7.3節,7.4節参照)(S2905)。 In S2903, v b investigate whether the movable region (Section 5.2, see section 5.3). If outside the movable region to correct v b (Section 7.3, see Section 7.4) (S2905).
S2907で,λに上下限が設定されていれば,この範囲内にあるかどうかを調べる。この範囲外であればλが上下限の範囲内になるようλを修正する(S2909)。 In S2907, if an upper and lower limit is set for λ, it is checked whether the value is within this range. If it is out of this range, λ is corrected so that λ is within the upper and lower limits (S2909).
S2911で,λ,vbからマトリクス(または四元数)を求める(6.3節,6.4節参照)。 In S2911, a matrix (or quaternion) is obtained from λ and v b (see Sections 6.3 and 6.4).
[式の導出方法A]方向ベクトルとモノポーラ球面座標との関係式の導出
子骨の向きを表す単位ベクトルを(x,y,z)とし,これをモノポーラ球面座標で表したものを(μ,ν)とする。モノポーラ球面座標系の構成方法より,座標(x,y,z)の点は,次の2平面上にある。
[Expression Derivation Method A] Derivation of Relational Expression between Direction Vector and Monopolar Spherical Coordinates The unit vector representing the orientation of the skeleton is (x, y, z), and this is expressed in monopolar spherical coordinates (μ, v). According to the construction method of the monopolar spherical coordinate system, the point of coordinates (x, y, z) is on the following two planes.
cos(ν/2)≠0なので,式(101)より次式が得られる。ただし,N≡tan(ν/2)である。 Since cos (ν / 2) ≠ 0, the following equation is obtained from equation (101). However, N≡tan (ν / 2).
円C0,C2,C3に接する円Ct0を求める。円錐OCt0の軸方向単位ベクトルを未知ベクトルw≡(x,y,z)とし,半頂角を未知数τとする(本明細書において,wはベクトルを表す)。
円錐OC0の軸単位ベクトルはu0≡(a0,b0,c0),半頂角はα0である。円Ct0は円C0の内側(可動領域側)に接するので,u0とwのなす角はα0−τとなる。したがって, The axis unit vector of the cone OC 0 is u 0 ≡ (a 0 , b 0 , c 0 ), and the half apex angle is α 0 . Since the circle C t0 is in contact with the inner side (movable region side) of the circle C 0, the angle formed by u 0 and w is α 0 −τ. Therefore,
残りの3つの隅円Ct1,Ct2,Ct3についても,同様の方法で円錐パラメータを求めることができる。 For the remaining three corner circles C t1 , C t2 , C t3 , the cone parameter can be obtained by the same method.
[式の導出方法C]補助円の円錐パラメータの導出
図16のように,球面上の3つの円C2,C3,Ct0は互いに接しており,円C2,C3,の接点は極P*,円C2,Ct0の接点はP02,円C3,Ct0の接点はP03である。3点P*,P02,P03を通る円をCs0とする。円錐OCs0の軸方向単位ベクトルを未知ベクトルw≡(x,y,z)とし,半頂角を未知数τとする。
[Expression Derivation Method C] Derivation of Conical Parameters of Auxiliary Circle As shown in FIG. 16, the three circles C 2 , C 3 , C t0 on the spherical surface are in contact with each other, and the contact points of the circles C 2 , C 3 are The contact point between the pole P * and the circles C 2 and C t0 is P 02 , and the contact point between the circles C 3 and C t0 is P 03 . A circle passing through the three points P * , P 02 and P 03 is defined as C s0 . An axial unit vector of the cone OC s0 is an unknown vector w≡ (x, y, z), and a half apex angle is an unknown τ.
座標−u2≡(−a2,−b2,−c2)の点をO2とする。同様に,座標−u3,ut0の点をそれぞれO3,Ot0とする。O2,O3,Ot0は,それぞれ円C2,C3,Ct0の球面上での中心となる。 A point with coordinates −u 2 ≡ (−a 2 , −b 2 , −c 2 ) is defined as O 2 . Similarly, the points at coordinates −u 3 and u t0 are O 3 and O t0 , respectively. O 2 , O 3 , and O t0 are the centers on the spherical surfaces of the circles C 2 , C 3 , and C t0 , respectively.
図17のように,球面3角形O2O3Ot0を作る。点P*,P02,P03は,それぞれ辺O2O3,辺O2Ot0,辺O3Ot0の上にある。座標−w≡(−x,−y,−z)の点をOs0とする。Os0は,図のように球面上における円Cs0の中心となる。 As shown in FIG. 17, a spherical triangle O 2 O 3 O t0 is created. The points P * , P 02 and P 03 are on the side O 2 O 3 , the side O 2 O t0 and the side O 3 O t0 , respectively. Coordinates -w≡ (-x, -y, -z) points to O s0. O s0 is the center of a circle C s0 on the spherical surface as shown in the figure.
円Cs0は,3点P*,P02,P03を通る円であるが,それと同時に球面3角形O2O3Ot0の内接円でもある。 The circle C s0 is a circle that passes through the three points P * , P 02 , and P 03 , and at the same time is an inscribed circle of the spherical triangle O 2 O 3 O t0 .
上述のように内接円であることは以下の点から明らかである。
・3辺相等により,△Os0P*O3≡△Os0P03O3,ゆえに∠Os0P*O3=∠Os0P03O3である。同様に,∠Os0P03Ot0=∠Os0P02Ot0,∠Os0P02O2=∠Os0P*O2となる。
・また,∠Os0P03O3=π−∠Os0P03Ot0,∠Os0P02Ot0=π−∠Os0P02O2,∠Os0P*O2=π−∠Os0P*O3である。
・∠Os0P03O3=ρとして,これを以上の関係に当てはめると,ρ=π−ρとなりρ=π/2が得られる。したがって,Os0P*⊥O2O3,Os0P02⊥O2Ot0,Os0P03⊥O3Ot0である。
・よって,円Cs0は球面3角形O2O3Ot0に接する。
As described above, the inscribed circle is apparent from the following points.
· The three sides phases like, △ O s0 P * O 3 ≡ △ O s0 P 03 O 3, thus a ∠O s0 P * O 3 = ∠O s0 P 03 O 3. Similarly, ∠O s0 P 03 O t0 = ∠O s0 P 02 O t0, the ∠O s0 P 02 O 2 = ∠O s0 P * O 2.
· In addition, ∠O s0 P 03 O 3 = π-∠O s0 P 03 O t0, ∠O s0 P 02 O t0 = π-∠O s0 P 02 O 2, ∠O s0 P * O 2 = π-∠ O is a s0 P * O 3.
When ∠O s0 P 03 O 3 = ρ and applying this to the above relationship, ρ = π−ρ is obtained, and ρ = π / 2 is obtained. Therefore, it is O s0 P * ⊥O 2 O 3 , O s0 P 02 ⊥O 2 O t0, O s0 P 03 ⊥O 3 O t0.
Therefore, the circle C s0 is in contact with the spherical triangle O 2 O 3 O t0 .
したがって,円錐OCs0は,平面OO2O3と平面OO2Ot0に接する。そのため,ベクトル−wと平面OO2O3がなす角は,ベクトル−wと平面OO2Ot0がなす角に等しい(ともにπ−τである)。 Therefore, the conical OC s0 is in contact with the plane OO 2 O 3 and the plane OO 2 O t0. Therefore, the angle formed by the vector −w and the plane OO 2 O 3 is equal to the angle formed by the vector −w and the plane OO 2 O t0 (both are π−τ).
平面OO2O3はxy平面である。よって,ベクトル−wとz軸のなす角は,ベクトル−wと平面OO2Ot0の法線がなす角に等しい(ともにτ−π/2である)。これを式で表すと次のようになる。ただしez≡(0,0,1)である(本明細書において,eはベクトルを表す)。 The plane OO 2 O 3 is an xy plane. Therefore, the angle formed by the vector −w and the z-axis is equal to the angle formed by the normal line of the vector −w and the plane OO 2 O t0 (both are τ−π / 2). This is expressed as follows. However, e z ≡ (0, 0, 1) (in the present specification, e represents a vector).
[式の導出方法D]小判型形状の縦長・横長判定式の導出
小判型形状の形状を変化させて,横長から縦長へと切り替わる瞬間を考える。この状態では,円Ct0とCt1が一致するので,ut0=ut1かつαt0=αt1である。
・ut0=ut1であればbt0=bt1であり,式(19),(25)よりl4=l5となり,更に式(17),(23)よりk4=k5となる。
・逆に,k4=k5であれば,式(17),(23)よりl4=l5となり,ut0=ut1かつαt0=αt1となる。
[Formula Derivation Method D] Derivation of Oval Shape Vertical / Horizontal Judgment Formula Consider the moment when the shape of the oval shape is changed to switch from landscape to portrait. In this state, since the circles C t0 and C t1 coincide, u t0 = u t1 and α t0 = α t1 .
If u t0 = u t1 , then b t0 = b t1 , l 4 = l 5 from equations (19) and (25), and k 4 = k 5 from equations (17) and (23). .
On the contrary, if k 4 = k 5 , l 4 = l 5 from equations (17) and (23), u t0 = u t1 and α t0 = α t1 .
よって,円Ct0とCt1が一致することの必要十分条件はk4=k5である。これに式(16),(22)を代入し整理すると,次式が得られる。この式を判定式Daとする。 Therefore, the necessary and sufficient condition for the circles C t0 and C t1 to coincide is k 4 = k 5 . Substituting the formulas (16) and (22) into this, the following formula is obtained. This equation is a determination formula D a.
同様に,式(14)よりk2,k3はそれぞれν0,ν1に対して単調減少である。そのため,可動領域を縦に広げると(ν0減少,またはν1増加),Daの値は増加する。 Similarly, k 2 and k 3 are monotonically decreasing with respect to ν 0 and ν 1 from the equation (14). Therefore, when extending the movable range in the vertical ([nu 0 reduction, or [nu 1 increases), the value of D a is increased.
したがって,Daの値を使って,図24に示すように,次のように小判型領域形状の縦長・横長を判定できる。 Thus, using the value of D a, as shown in FIG. 24, can determine portrait-landscape oval area shape as follows.
S2401において,Da<0が成り立てば,横長であると判断される(S2405)。 If D a <0 holds in S2401, it is determined to be horizontally long (S2405).
S2403において,Da>0が成り立てば,縦長であると判断される(S2407)。 If D a > 0 holds in S2403, it is determined to be vertically long (S2407).
S2403において,「いいえ」であれば,連続した1つの円であると判断される(S2409)。 If “NO” in S2403, it is determined to be one continuous circle (S2409).
[式の導出方法E]マトリクスとモノポーラ球面座標の関係式の導出
捻りが0の状態における子骨のy軸およびz軸の方向の単位ベクトルを,それぞれvy,vzとする。vy,vzは,それぞれモノポーラグリッドの+ν方向および−μ方向である。
子骨の向きを表す単位ベクトルをv≡(x,y,z)とする。vの偏微分を次のようにvμ,vνとする。
[Expression Derivation Method E] Derivation of the relational expression between the matrix and the monopolar spherical coordinate The unit vectors in the y-axis and z-axis directions of the skeleton in the state where the torsion is 0 are respectively v y and v z . v y and v z are the + ν direction and −μ direction of the monopolar grid, respectively.
A unit vector representing the orientation of the skeleton is assumed to be v≡ (x, y, z). Let v μ and v ν be partial derivatives of v as follows.
曲げマトリクスMbの要素は,式(3),(4),(5),(150),(151)より次のようになる。 Elements of the bending matrix M b has the formula (3), (4), (5), (150), as follows from (151).
曲げの後に捻りを掛けるので,Mは次のようになる。この式を使えばλ,μ,νからMを求めることができる。
Since a twist is applied after bending, M is as follows. If this equation is used, M can be obtained from λ, μ, and ν.
捻りの後に曲げを掛けるので,Mは次のようになる。この式を使えばλ,μ,νからMを求めることができる。
Since bending is applied after twisting, M is as follows. If this equation is used, M can be obtained from λ, μ, and ν.
[本発明の実施例の処理および構成例]
図25は,本願発明の実施例の装置構成を示す図である。コンピュータ2500には,キーボード2505,マウス2506,ペン2508を含むタブレット2507,ディスプレイ2501が接続されている。ディスプレイ2501上には,キャンバス2502が表示され,キャンバス2502上に図形が描画されている(2503)。
[Processing and Configuration Example of the Embodiment of the Present Invention]
FIG. 25 is a diagram showing a device configuration of the embodiment of the present invention. To the computer 2500, a keyboard 2505, a mouse 2506, a tablet 2507 including a pen 2508, and a display 2501 are connected. A canvas 2502 is displayed on the display 2501, and a figure is drawn on the canvas 2502 (2503).
図26は,本願発明の実施例のハードウエア構成を示す図である。CPU2601にバス2607が接続されている。バス2607には,メモリ2602,種々の入力装置2603,ディスプレイ等の表示装置2604及びプリンタ2605が接続されている。 FIG. 26 is a diagram showing a hardware configuration of the embodiment of the present invention. A bus 2607 is connected to the CPU 2601. A memory 2602, various input devices 2603, a display device 2604 such as a display, and a printer 2605 are connected to the bus 2607.
図27に本願発明の実施例を示す。図27を参照すると,まず,モノポーラ球面座標系によって,子骨の角度範囲を構成する境界円を設定する(S2701)。具体的には,例えばμ,νの上下限,形状(矩形か小判型か)等を指定する。そして,子骨の角度が,角度範囲の中(すなわち内側)にあるか否かを判定する(S2703)。子骨の角度が角度範囲の外にあると判定された場合には,上述の最近点を求める手法を用いて,子骨の角度を修正する(S2705)。そして,骨格モデルを画面に表示する。なお,ロボット等の実空間の対象物の制御を行う場合は,所望の角度に子骨を向ける制御を行う(S2707)。 FIG. 27 shows an embodiment of the present invention. Referring to FIG. 27, first, a boundary circle constituting the angle range of the skeleton is set by the monopolar spherical coordinate system (S2701). Specifically, for example, upper and lower limits of μ, ν, shape (rectangular or oval type), etc. are designated. Then, it is determined whether or not the angle of the skeleton is within the angle range (that is, inside) (S2703). When it is determined that the angle of the skeleton is out of the angle range, the angle of the skeleton is corrected using the above-described method for obtaining the nearest point (S2705). Then, the skeleton model is displayed on the screen. Note that when controlling an object in real space such as a robot, control is performed to direct the skeleton to a desired angle (S2707).
図28は,子骨の制御を行う制御装置の実施例を示す。まず,モノポーラ球面座標系によって,子骨の角度範囲を構成する境界円を設定する(2801)。そして,子骨の角度が,角度範囲の中(すなわち内側)にあるか否かを判定する(2803)。子骨の角度が角度範囲の外にあると判定された場合には,上述の最近点を求める手法を用いて,子骨の角度を修正する(2805)。そして,骨格モデルを画面に表示する(2807)。なお,ロボット等の実空間の対象物の制御を行う場合は,所望の角度に子骨を向ける制御を行う(2808)。また,各種の数値を設定するための入力手段(2806)を設けてもよい。 FIG. 28 shows an embodiment of a control device for controlling the skeleton. First, a boundary circle constituting the angle range of the skeleton is set by the monopolar spherical coordinate system (2801). Then, it is determined whether or not the angle of the skeleton is within the angle range (that is, inside) (2803). If it is determined that the angle of the skeleton is outside the angle range, the angle of the skeleton is corrected using the above-described method for obtaining the nearest point (2805). Then, the skeleton model is displayed on the screen (2807). Note that when controlling an object in real space such as a robot, control is performed to direct the skeleton to a desired angle (2808). Further, input means (2806) for setting various numerical values may be provided.
本願明細書では,親骨に対する子骨の角度の制御を例示して,説明を行った。なお,本願発明は,3つ以上の骨が関節によって連結された骨格モデルに拡張して適用できることは言うまでもない。 In the specification of the present application, the control of the angle of the phalanx relative to the parent bone has been described as an example. Needless to say, the present invention can be applied to a skeleton model in which three or more bones are connected by joints.
以上,本願発明について説明したが,本願発明の範囲は,本願明細書における上記実施例に限定されるものではない。当業者は,本願明細書の説明から,本願発明の変形態様を理解することができる。そして,これらの変形態様及びその均等物も,特許請求の範囲に係る技術的範囲に属することは言うまでもない。 Although the present invention has been described above, the scope of the present invention is not limited to the above-described embodiments in the present specification. Those skilled in the art can understand variations of the present invention from the description of the present specification. Needless to say, these modifications and equivalents also belong to the technical scope according to the claims.
また,請求項に定義された各々のステップは,記載された順序通りに実行される必要はなく,矛盾の生じない範囲で,請求項に定義されたステップは,順番を変更して実行できる。そして,請求項のステップの順番を変更したものも,当該請求項の技術的範囲に包含されることは言うまでもない。 Further, the steps defined in the claims do not have to be executed in the order described, and the steps defined in the claims can be executed in a different order as long as no contradiction arises. Needless to say, changes in the order of the steps of the claims are also included in the technical scope of the claims.
P* モノポーラ球面座標系の極
v 子骨の向きを表す単位ベクトル
Pm 最近点
P * Unit vector P m nearest point of pole v of monopolar spherical coordinate system
Claims (7)
前記関節を中心とする球の球面上に,前記子骨の角度範囲の境界を定義する角度範囲境界円を設定する角度範囲境界円設定ステップであって,前記角度範囲境界円は前記関節を中心とする球面と親骨または親骨の延長線との交点1を通るものであり,前記子骨又は前記子骨の延長線と前記球面の交点2の位置が前記角度範囲境界円によって二分される前記球面の何れに存在すべきかによって前記子骨の角度範囲が定められ,前記球の中心と前記角度範囲境界円とで形成される円錐の軸単位ベクトルu及び前記円錐の半頂角α,または,前記軸単位ベクトルu及び前記半頂角αを導くことができる数値をメモリに格納することによって前記角度範囲境界円を設定する,角度範囲境界円設定ステップと,
前記メモリに格納された数値を読み出すことによって前記軸単位ベクトルuと前記半頂角αとを得て,前記子骨の向きを表す単位ベクトルvを用いて,u・v−cosαの値を検査値として算出し,前記検査値に基づいて,前記子骨の角度が前記角度範囲の中にあるか否かを判定する,角度範囲判定ステップと,
を有する,方法。 In a skeletal model in which a parent bone and a skeleton are connected by a joint, a method for controlling the movement of the skeleton by limiting an angle range in the joint of the skeleton relative to the parent bone,
An angular range boundary circle setting step for setting an angular range boundary circle defining a boundary of the angular range of the skeleton on a spherical surface of a sphere centered on the joint, the angular range boundary circle being centered on the joint; The spherical surface, which passes through the intersection point 1 of the spherical surface and the parent bone or the extension line of the parent bone, and the position of the intersection point 2 of the spherical surface and the extension line of the child bone and the spherical surface is bisected by the angular range boundary circle The angle range of the skeleton is determined depending on which of the cones, and the cone unit vector u formed by the center of the sphere and the angle range boundary circle and the half apex angle α of the cone, or the An angular range boundary circle setting step for setting the angular range boundary circle by storing in a memory numerical values from which an axis unit vector u and the half apex angle α can be derived;
The axis unit vector u and the half apex angle α are obtained by reading the numerical values stored in the memory, and the value of u · v-cos α is inspected using the unit vector v representing the orientation of the skeleton. Calculating an angle range, and determining whether or not the angle of the skeleton is within the angle range based on the inspection value; and
Having a method.
μ=2tan−1(−z/(x+1))
ν=2tan−1(y/(x+1))
の関係を有する,モノポーラ球面座標系(μ,ν)を用いて,
前記角度範囲境界円が,少なくともμ=μe及びν=νeのうち何れか一方を満たす,
(ここにおいて,μe及びνeは定数である),
請求項1記載の方法。 From the three-dimensional orthogonal coordinate system (x, y, z), where the joint is the origin, and the direction from the intersection 1 to the origin is the positive direction of the x axis,
μ = 2 tan −1 (−z / (x + 1))
ν = 2 tan −1 (y / (x + 1))
Using a monopolar spherical coordinate system (μ, ν) having the relationship
The angular range boundary circle satisfies at least one of μ = μ e and ν = ν e ,
(Where μ e and ν e are constants),
The method of claim 1.
μ0<μ<μ1及びν0<ν<ν1
を満たすよう前記角度範囲境界円を設定する,
請求項2記載の方法。 When the monopolar spherical coordinates of the intersection 2 are (μ, ν), the lower and upper limits of μ are μ 0 and μ 1, and the lower and upper limits of ν are ν 0 and ν 1 , respectively, the angular range But,
μ 0 <μ <μ 1 and ν 0 <ν <ν 1
Set the angle range boundary circle to satisfy
The method of claim 2.
請求項1乃至3のうちいずれか1項記載の方法。 The angle range boundary circle further uses an auxiliary angle range boundary circle that does not pass through the intersection point 1;
4. A method according to any one of claims 1 to 3.
前記子骨の角度が前記角度範囲の中に無いと判定された場合,
前記交点2から前記角度範囲の中にあることを満たす球面上の点まで前記球面上に沿って測定した距離が最短となる前記球面上の点に,前記交点2を移動させることにより,前記子骨の角度を修正する,角度修正ステップ,
を更に有する請求項1乃至4のうちいずれか1項記載の方法。 In the angle range determination step,
If it is determined that the angle of the bone is not within the angular range,
By moving the intersection point 2 from the intersection point 2 to a point on the sphere that satisfies the angle range, the point measured on the sphere has the shortest distance on the sphere. An angle correction step to correct the angle of the bone,
The method according to any one of claims 1 to 4, further comprising:
前記関節を中心とする球の球面上に,前記子骨の角度範囲の境界を定義する角度範囲境界円を設定する角度範囲境界円設定手段であって,前記角度範囲境界円は前記関節を中心とする球面と親骨または親骨の延長線との交点1を通るものであり,前記子骨又は前記子骨の延長線と前記球面の交点2の位置が前記角度範囲境界円によって二分される前記球面の何れに存在すべきかによって前記子骨の角度範囲が定められ,前記球の中心と前記角度範囲境界円とで形成される円錐の軸単位ベクトルu及び前記円錐の半頂角α,または,前記軸単位ベクトルu及び前記半頂角αを導くことができる数値をメモリに格納することによって前記角度範囲境界円を設定する,角度範囲境界円設定手段と,
前記メモリに格納された数値を読み出すことによって前記軸単位ベクトルuと前記半頂角αとを得て,前記子骨の向きを表す単位ベクトルvを用いて,u・v−cosαの値を検査値として算出し,前記検査値に基づいて,前記子骨の角度が前記角度範囲の中にあるか否かを判定する,角度範囲判定手段と,
を有する,装置。 In a skeletal model in which a master bone and a skeleton are connected by a joint, an apparatus for controlling the operation of the skeleton by limiting an angle range of the joint to the parent bone in the joint,
Angle range boundary circle setting means for setting an angle range boundary circle defining a boundary of the angle range of the skeleton on a spherical surface of a sphere centered on the joint, wherein the angle range boundary circle is centered on the joint The spherical surface, which passes through the intersection point 1 of the spherical surface and the parent bone or the extension line of the parent bone, and the position of the intersection point 2 of the spherical surface and the extension line of the child bone and the spherical surface is bisected by the angular range boundary circle The angle range of the skeleton is determined depending on which of the cones, and the cone unit vector u formed by the center of the sphere and the angle range boundary circle and the half apex angle α of the cone, or the An angle range boundary circle setting means for setting the angle range boundary circle by storing in a memory a numerical value capable of deriving the axis unit vector u and the half apex angle α;
The axis unit vector u and the half apex angle α are obtained by reading the numerical values stored in the memory, and the value of u · v-cos α is inspected using the unit vector v representing the orientation of the skeleton. An angle range determination means for calculating as a value and determining whether the angle of the skeleton is within the angle range based on the inspection value;
Having a device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011024449A JP5486524B2 (en) | 2011-02-07 | 2011-02-07 | Skeletal angle control method, apparatus, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011024449A JP5486524B2 (en) | 2011-02-07 | 2011-02-07 | Skeletal angle control method, apparatus, and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012164162A JP2012164162A (en) | 2012-08-30 |
JP5486524B2 true JP5486524B2 (en) | 2014-05-07 |
Family
ID=46843488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011024449A Expired - Fee Related JP5486524B2 (en) | 2011-02-07 | 2011-02-07 | Skeletal angle control method, apparatus, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5486524B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5490080B2 (en) | 2011-12-06 | 2014-05-14 | 株式会社セルシス | Skeleton model attitude control method and program |
JP7475618B1 (en) | 2023-12-04 | 2024-04-30 | 株式会社セルシス | Method and program for determining posture of skeletal model |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4162798B2 (en) * | 1999-04-20 | 2008-10-08 | 株式会社バンダイナムコゲームス | Method for deriving continuous rotation angle from continuous rotation matrix, and storage medium storing program related to the method |
JP2009070340A (en) * | 2007-09-18 | 2009-04-02 | Namco Bandai Games Inc | Skeleton operation control system, program, and information storage medium |
JP2010170279A (en) * | 2009-01-21 | 2010-08-05 | Namco Bandai Games Inc | Skeleton motion control system, program, and information storage medium |
-
2011
- 2011-02-07 JP JP2011024449A patent/JP5486524B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012164162A (en) | 2012-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6137155B2 (en) | Interference avoidance method, control device, and program | |
CN109676606B (en) | Method for calculating arm angle range of mechanical arm, mechanical arm and robot | |
Pappalardo et al. | Use of independent volume parameters in the development of new large displacement ANCF triangular plate/shell elements | |
US9311745B2 (en) | Systems and methods of analysis of granular elements | |
US7499050B2 (en) | Method and system for mesh-free analysis of general three-dimensional shell structures | |
Hyatt et al. | Developable mechanisms on right conical surfaces | |
US20120232848A1 (en) | Method for creating finite element model of rubber composite | |
CN104866722A (en) | Inverse kinematics solution method for seven-shaft industrial robot arm | |
KR20150073859A (en) | Cad-based initial surface geometry correction | |
Gonçalves et al. | A benchmark study on accuracy-controlled distance calculation between superellipsoid and superovoid contact geometries | |
Liu | Lindquist-Wheeler formulation of lattice universes | |
CN104933225A (en) | Method for realizing computational fluid dynamics large-scale real-time simulation | |
JP5486524B2 (en) | Skeletal angle control method, apparatus, and program | |
Schwarz | The overlapping grid technique for the time accurate simulation of rotorcraft flows | |
US8990057B1 (en) | Representing geometry of a system in a modeling environment | |
CN113119102B (en) | Humanoid robot modeling method and device based on floating-base flywheel inverted pendulum | |
Xiong et al. | Geometric isotropy indices for workspace analysis of parallel manipulators | |
JP2017131990A (en) | Interference avoidance method | |
US20220083702A1 (en) | Techniques for designing structures using torsion-deformable spatial beam elements | |
Chen et al. | Kernel modeling for molecular surfaces using a uniform solution | |
Pereira | Generalized finite element methods for three-dimensional crack growth simulations | |
Willis et al. | A quadratic basis function, quadratic geometry, high order panel method | |
CN118171547B (en) | Automatic grid generation method, device, equipment and storage medium | |
Misztal | Deformable simplicial complexes | |
Anitescu | Modeling rigid multibody dynamics with contact and friction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130301 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140129 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20140212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140221 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5486524 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |