Method and program for determining posture of skeleton model
Patent Information
- Application Number
- HK62026125686
- Authority / Receiving Office
- HK · HK
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-04
- Filing Date
- 2026-07-03
- Publication Date
- 2026-09-25
- Estimated Expiration
- 2044-08-18
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
(19) State Intellectual Property Office (12) Invention Patent Application (10) Application Publication Number (43) Application Publication Date (21) Application Number 202480076559.4 (22) Application Date 2024.08.19 (30) Priority Data 2023-204925 2023.12.04 JP (85) PCT International Application Entering National Phase Date 2026.06.03 (86) PCT International Application Application Data PCT / JP2024 / 029343 2024.08.19 (87) PCT International Application Publication Data WO2025 / 120925 JA 2025.06.12 (71) Applicant: CELSYS Co., Ltd. Address: Tokyo, Japan (72) Inventor: Ge Jiancong (74) Patent Agency: Beijing Tianda Gonghe Law Firm 11798 Patent Attorney Liu Dewang (51) Int.Cl. G06T 13 / 40 (2006.01) (54) Invention Title: Method and Procedure for Determining the Posture of Skeletal Models (57) Abstract: This invention provides a technique for more easily and accurately determining the posture of bones of characters such as humans in virtual space or robots that exist in real space. A posture determination method, in a skeletal model in which a primary bone and a secondary bone are connected by joints, determines the posture of a secondary bone based on multiple parameters defining the rotation of the secondary bone relative to the primary bone. The posture determination method comprises the following steps: determining at least one of the multiple parameters; correcting the multiple parameters based on the determination; and determining the posture of the secondary bone using the corrected multiple parameters. The determination step includes performing a first determination, which determines whether any one of the multiple parameters exceeds the first limit, the first limit being represented by a limit that at least one parameter would affect a limit related to two or more other parameters. The correction step of the multiple parameters includes: if the first determination is that the first limit is exceeded, correcting the multiple parameters using the first limit such that the multiple parameters fall within the range of the first limit.Claims 2 pages, Description 11 pages, Drawings 19 pages, CN 122319466 A 2026.06.30 CN 1 22 31 94 66 A 1. A posture determination method, which determines the posture of a sub-bone in a skeletal model in which a primary bone and a secondary bone are connected by a joint, based on a plurality of parameters defining the rotation of the secondary bone relative to the primary bone; the posture determination method comprises the following steps: determining at least one of the plurality of parameters; correcting the plurality of parameters based on the determination; and determining the posture of the secondary bone using the corrected plurality of parameters, wherein the determination step comprises performing a first determination to determine whether any one of the plurality of parameters exceeds a first limit, the first limit being expressed as a limitation on at least one parameter affecting limitations related to two or more other parameters; the correction step comprising: if the first determination determines that the parameter exceeds the first limit, correcting the plurality of parameters using the first limit such that the plurality of parameters fall within the range of the first limit. 2. The attitude determination method of claim 1, wherein the first restriction comprises: a restriction that the ranges of two or more other parameters monotonically decrease relative to an increase or decrease of at least one parameter. 3. The attitude determination method of claim 1, wherein the plurality of parameters are three parameters, and in a three-dimensional space where each of the three parameters is a coordinate axis orthogonal to the others, the first restriction is imposed by a shape comprising a solid shape whose cross-sectional area monotonically decreases along one direction. 4. The attitude determination method of claim 3, wherein the solid shape is a cone. 5. The attitude determination method of claim 3, wherein the solid shape is a portion of a cone. 6. The attitude determination method of claim 3, wherein the solid shape is a solid shape whose base has an area and whose upper shape comprises a line segment or curve existing at a position at a predetermined distance from the base along the one direction. 7. The posture determination method of claim 3, wherein the solid shape is a solid shape whose base has an area, and whose upper shape is a solid shape part of a line segment or curve existing at a position away from the base along the one direction at a predetermined distance. 8. The posture determination method of claim 3, wherein the change in posture of the skeletal model caused by the change of parameters along the one direction is a change in posture away from a pre-set initial posture of the skeletal model. 9. The posture determination method of claim 3, wherein the first limitation includes a shape obtained by combining solid shapes whose cross-sectional area decreases monotonically.10. The posture determination method of claim 1, wherein, before making the determination, it further comprises a step of detecting whether inverse kinematics is applicable to the deformation of the skeletal model; the step of making the determination further comprises a step of making a second determination, in the case that the detection indicates that inverse kinematics is not applicable, determining whether any one of the plurality of parameters exceeds a second limit, the second limit including the range of the first limit; the step of correcting the plurality of parameters further comprises: when the detection indicates that inverse kinematics is not applicable, and the second determination determines that the second limit is exceeded, correcting the plurality of parameters with the second limit such that the plurality of parameters fall within the range of the second limit. 11. A program that causes a computer to execute the posture determination method of any one of claims 1 to 10. Background Art
[0002] There is a technique for creating poses and animations of characters in virtual space, such as computer screens. Sometimes, a skeletal model (skeleton model) is used, where multiple bones are connected by joints. Such skeletal models can be used not only in virtual space but also for controlling objects in real space, such as in robot control.
[0003] For example, there is a technique where a given point on a sphere centered on a joint is used as a focal point, and a plane orthogonal to the axis connecting the central point and the focal point is used as a projection plane. The range of motion of the joints is set on the projection plane to control the posture of a skeletal model in which the main bone and sub-bones are connected by joints (see, for example, Patent Document 1).
[0004] Furthermore, on the sphere centered on the joint, an angle range boundary circle is set to define the boundary of the angle range of the sub-bones, so that the movement of the sub-bones can be controlled by limiting the angle range of the sub-bones relative to the main bone joints. Furthermore, there exists a technique that uses a single-level spherical coordinate system (μ, ν) based on a three-dimensional orthogonal coordinate system (x, y, z). The boundary circle of the angular range of this three-dimensional orthogonal coordinate system (x, y, z) passes through the intersection point 1 of the sphere centered on the joint and the main bone or the extension line of the main bone. Taking the joint as the origin, the direction from the intersection point 1 towards the origin is taken as the positive direction of the x-axis. This spherical coordinate system (μ, ν) has the relationship μ = 2tan⁻¹(-z / (x+1)) and ν = 2tan⁻¹(y / (x+1)) (for example, see Patent Document 2).
[0005] However, in the prior art, for example, including characters such as humans, it is not easy to determine the bending or twisting posture of the bones of many kinds of characters.
[0006] Prior Art Documents
[0007] Patent Documents
[0008] Patent Document 1: Japanese Patent Application Publication No. 2009-70340
[0009] Patent Document 2: Japanese Patent Application Publication No. 2012-164162 Summary of the Invention
[0010] The purpose of the disclosed technology is to provide a technology that can more easily and accurately determine the posture of the bones of the like, such as a human being virtually represented in a virtual space or a robot that actually exists in a real space.
[0011] Technical Means for Solving Technical Problems
[0012] The disclosed technology can provide a posture determination method, which, in a skeletal model in which a primary bone and a secondary bone are connected by joints, determines the posture of the secondary bone according to a plurality of parameters defining the rotation of the secondary bone relative to the primary bone. The posture determination method has the following steps:
[0013] Determining at least one of the plurality of parameters;
[0014] Correcting the plurality of parameters based on the determination; and
[0015] Determining the posture of the secondary bone using the corrected plurality of parameters.
[0016] The step of determining includes performing a first determination, which determines whether any one of the plurality of parameters exceeds a first limit, the first limit being expressed as a limitation that at least one parameter would affect a limitation related to two or more other parameters. Instruction manual 1 / 11 page 4 CN 122319466 A
[0017] The step of correcting the plurality of parameters includes: in the case of a determination that the first determination exceeds the first limit, correcting the plurality of parameters with the first limit so that the plurality of parameters fall within the range of the first limit.
[0018] Alternatively, the first limit may be a limit that includes a limitation in which the range of two or more other parameters decreases monotonically with respect to an increase or decrease of at least one parameter.
[0019] Alternatively, the plurality of parameters may be three parameters.
[0020] In a three-dimensional space in which the parameters of the three parameters are each orthogonal to each other, the first limit is a limitation based on the shape of a solid shape that includes a cross-sectional area that decreases monotonically along one direction.
[0021] Alternatively, the solid shape may be a cone.
[0022] Alternatively, the solid shape may be a part of a cone.
[0023] Alternatively, the three-dimensional shape may be a shape with an area on its base, and a line segment or curve existing at a predetermined distance from the base along the one direction as part of the shape of the upper end.
[0024] Alternatively, the three-dimensional shape may be a shape with an area on its base, and a line segment or curve existing at a predetermined distance from the base along the one direction as part of the shape of the upper end.
[0025] Alternatively, the change in the posture of the skeletal model caused by the change of parameters along the one direction may be a change in posture away from the preset initial posture of the skeletal model.
[0026] Alternatively, the first limitation may include a shape obtained by combining three-dimensional shapes with monotonically reduced cross-sectional areas.
[0027] Alternatively, before making the determination, there may be a step of detecting whether inverse kinematics is applicable to the deformation of the skeletal model.
[0028] The step of making the determination includes, in the case that the detection indicates that inverse kinematics is not applicable, a step of making a second determination, the second determination determining whether any one of the plurality of parameters exceeds a second limitation, the second limitation including the range of the first limitation.
[0029] The step of correcting the plurality of parameters further includes, in the case that the second determination exceeds the second limitation when the detection indicates that inverse kinematics is not applicable, correcting the plurality of parameters with the second limitation so that the plurality of parameters are within the range of the second limitation.
[0030] Alternatively, it may be a program for the computer to execute the above-described posture determination method. Alternatively, the program may be stored in a non-temporary storage medium.
[0031] Effects of the Invention
[0032] According to the disclosed technology, it is possible to provide a technique that makes it easier and more accurate to determine the posture of the bones of characters such as humans virtually represented in virtual space, or robots that actually exist in real space. Brief Description of the Drawings
[0033] Figures 1A and 1B are diagrams showing a character, a skeletal model, a main bone, sub-bones, and a coordinate system.
[0034] Figures 2A and 2B are diagrams showing unipolar spherical coordinates (Figure 2B is a diagram obtained by viewing Figure 2A from the opposite side).
[0035] Figures 3A to 3C are diagrams showing that the intersection of a group of planes and a unit sphere forms a vertical grid.
[0036] Figures 4A to 4C are diagrams showing that the intersection of a group of planes and a unit sphere forms a grid.
[0037] Figures 5A and 5B are diagrams showing the relationship between the orientation of the plane and φ and θ. Specification 2 / 11 page 5 CN 122319466 A
[0038] Figure 6A is a diagram showing φ and μ of point P on the xz plane. Figure 6B is a diagram showing θ and ν of point P on the xy plane.
[0039] Figure 7 is a diagram showing the movable area formed by setting upper and lower limits for the values of μ and ν.
[0040] Figures 8A to 8D are diagrams showing the change in the overall posture of the arm including the upper arm (upper arm 800a to upper arm 800d) of character 102.
[0041] Figure 9 is a diagram showing an example of the coordinate axes of the upper arm 124 and clavicle 122.
[0042] Figures 10A to 10C are diagrams showing the coordinate axes X0, Y0, Z0, coordinate axes X1, Y1, Z1, and the torsion λ890d of the upper arm.
[0043] Figures 11A and 11B are diagrams showing an example of limiting the range of parameters in a three-dimensional space where parameters s, t, and u are orthogonal to each other, using the method of the present invention.
[0044] Figure 12A is a diagram showing the state where the parameter at point 1202 becomes a value outside the limit range during inverse kinematics calculations or during joint operations performed by the operator. Figure 12B is a diagram schematically showing an example of how the parameter transformation changes with the correction of the present invention when the parameter transforms from point 1251 to point 1255 without correction.
[0045] Figures 13A and 13B are three-dimensional, deformable examples of a movable region where the range of parameters is limited in a three-dimensional space where parameters s, t, and u are orthogonal to each other.
[0046] Figures 14A to 14H are examples of the shape of the movable region solid.
[0047] Figures 15A to 15C are diagrams obtained by viewing the movable region solid in the stu space from a direction parallel to the bottom surface.
[0048] Figures 16A and 16B are diagrams showing the cross-sectional profile shape of an oblong shape.
[0049] Figure 17 is a diagram showing the cross-sectional profile shape of an ellipse.
[0050] Figure 18 is a flowchart showing the method of the embodiment.
[0051] Figure 19 is a flowchart showing the posture control method with and without inverse kinematics.
[0052] Figure 20 is a hardware configuration diagram of the embodiment. Detailed Embodiments
[0053] Before describing in detail the embodiments of the disclosed technology, a unipolar coordinate system that can be used in the technology of this disclosure for determining the posture of a skeletal model that combines bones and joints will be described. When using this unipolar coordinate system, examples of how posture determination can be performed are shown. Furthermore, the unipolar coordinate system is only one example, and the present disclosure does not preclude the use of coordinate systems other than the unipolar coordinate system.
[0054] [1. Unipolar spherical coordinates]
[0055] As an example, consider the case where the skeletal model of FIG1A is used. This skeletal model models the skeleton of a human. In character 102, there is a skeletal model including clavicle 122, shoulder joint 123, and upper arm bone 124. And, for example, there is a certain limitation in the range of motion of the arm at the shoulder joint. When the arm is bent to an angle (bending, twisting) beyond this limitation, it will deviate from the model corresponding to a real human. In order to form a skeletal model that adopts a natural posture as a human, for example, it is necessary to impose certain limitations on the range of motion of the bones at the shoulder joint.
[0056] As described above, in order to represent the orientation of the bones of the skeletal model (FIG1A), a coordinate system is determined for each bone, as shown in FIG1B.
[0057] A unit sphere (a sphere with radius 1) centered on the joint is constructed. When the intersection point of the x-axis (the part where x > 0) of the sub-bone and the sphere is denoted as P, the bending state of the joint can be represented by the position of point P on the sphere. One method for representing the rotation (bending, torsion) of the joint is to use the rotation angles (Eulerian angles) of three axes. As an example, when rotation is applied in the order of x-axis rotation, y-axis rotation, and z-axis rotation based on the coordinate system of the main bone, when considering the relationship between the rotation angles of each axis and the position of point P, the z-axis rotation angle corresponds to longitude, and the y-axis rotation angle corresponds to latitude. Therefore, when the y-axis rotation angle and z-axis rotation angle are taken at equal intervals to create a grid on the sphere, it will become the same shape as the meridians and parallels of a globe. The two points corresponding to the North and South Poles will become outliers in the angular representation, which are difficult to handle. Therefore, it is preferable to have fewer outliers.
[0058] In this regard, as a method to reduce the singularity to one, the method shown in Patent Document 2 is known. If the characteristics of this method are represented by a grid on a sphere, it will be as shown in Figures 2A and 2B. This grid can be understood as a coordinate system made on a sphere. Since there is one pole (singularity), this coordinate system is referred to as "unipolar spherical coordinates" in this application specification.
[0059] Hereinafter, the unipolar spherical coordinates will be described in the next item.
[0060] ・Method for limiting the angle of a joint using unipolar spherical coordinates
[0061] 〔2. Construction of a unipolar spherical coordinate system〕
[0062] Generally, when a scale is set in a 2-dimensional coordinate system, it becomes a grid (lattice). In the following description, for convenience, the term "grid" will sometimes be used, but it does not simply mean a grid, but rather includes the meaning of a coordinate system.
[0063] Figures 3A to 3C illustrate the vertical lines of the grid on the unit sphere.
[0064] The point with coordinates (-1, 0, 0) is denoted as P* and called the "pole". A straight line passing through pole P* and parallel to the y-axis is denoted as ly. As shown in Figure 3A, a group of planes with equal angular intervals containing ly is prepared. As shown in Figure 3B, this group of planes is overlapped with the unit sphere. As shown in Figure 3C, the intersection of this group of planes and the unit sphere is used as the vertical line of the grid on the unit sphere.
[0065] Figures 4A to 4C illustrate the horizontal lines of the grid on the unit sphere.
[0066] Similarly, as shown in Figure 4A, a group of planes with equal angular intervals containing lz is prepared, a straight line passing through pole P* and parallel to the z-axis is denoted as lz. As shown in Figure 4B, this group of planes is overlapped with the unit sphere. As shown in Figure 4C, the intersection of this group of planes and the unit sphere is used as the horizontal line of the grid.
[0067] As shown in Figures 5A and 5B, the orientation of the plane containing the line ly is represented by the angle φ, and the orientation of the plane containing the line lz is represented by the angle θ. The reference numerals for φ and θ are positive in the directions shown in Figures 5A and 5B. The position of point P on the sphere is determined by the intersection of the plane determined by φ, the plane determined by θ, and the unit sphere. μ ≡ 2φ, ν ≡ 2θ, and μ and ν are used to represent the position on the sphere.
[0068] Since μ and ν are used instead of φ and θ directly, the following advantages exist. As shown in Figure 6A, consider the case where point P is on the xz plane (i.e., ν = 0). The orientation of the sub-bone is OP. The point with coordinates (1, 0, 0) is denoted as Q.
[0069] ∠OP*P=∠OPP*= φ
[0070] ∠OP*P+∠OPP*=∠QOP
[0071] ∴∠QOP=2 φ=μ
[0072] Therefore, when ν=0, μ will become the rotation angle around the y-axis of the sub-bone. Similarly, as shown in Figure 6B, when point P is on the xy plane (i.e., μ=0), ν will become the rotation angle around the z-axis of the sub-bone.
[0073] Thus, when using μ and ν, it is easy to intuitively grasp the state of rotation (the orientation of the sub-bone). For example, Figure 2 is a grid made by taking the values of μ and ν at 10° intervals, but it can be seen that on the xy plane and the xz plane, the grid becomes 10°, 10° equally spaced on the circumference.
[0074] [3]
[0075] The unit vector representing the orientation of the sub-bone is denoted as v≡(x, y, z), and the result expressed in unipolar spherical coordinates is denoted as (μ, ν). The relationship between the two is expressed by the following formula (in this specification, v represents a vector).
[0076] [Formula 1] Specification 4 / 11 page 7 CN 122319466 A
[0077]
[0078] Wherein, M, N, T are as follows.
[0079] [Formula 2]
[0080]
[0081] Hereinafter, the control of specific angles (bending, twisting) will be described in detail.
[0082] [4. Setting of movable area]
[0083] [Angle restriction based on rectangular area]
[0084] By setting upper and lower limits for the values of μ and ν, the movable area can be set as shown in Figure 7.
[0085] [Embodiment]
[0086] The above method defines the orientation of the sub-bone using a unipolar coordinate system (μ, ν). Furthermore, the torsion angle of the sub-bone, that is, the rotation angle around the length direction (x-axis) of the sub-bone, is denoted as λ. In addition, the bending and torsion of the joint are collectively referred to as the rotation of the joint.
[0087] In the following description, the left upper arm, left hand, etc., are simply referred to as upper arm, hand, etc., and the descriptions of left and right are omitted.
[0088] Figures 8A to 8D are diagrams showing changes in the overall posture of the arm including the upper arm (upper arm 800a to upper arm 800d) of character 102. For character 102, a skeletal model as shown in Figure 1A is set.
[0089] It is envisioned that the position and posture of the clavicle are fixed, and that it moves forward of the shoulder joint. Furthermore, it is set that the wrist rotation (the rotation of the hand relative to the forearm) will not change. In Figure 8A, the wrist, which is set to be forward of the upper arm 800a of character 102, is grasped by the pointer of a mouse or the like operated by the operator, and is swung in the direction of arrow 890a.
[0090] In Figure 8B, the entire arm including the upper arm 800b is extended to a state of approximately horizontal extension using methods such as inverse kinematics. In addition, inverse kinematics is a well-known technique for determining the posture of each bone in the skeletal model, so an explanation of its movement method is omitted. Furthermore, the wrist, which is located further forward than the upper arm 800b, is continuously gripped by the pointer of a mouse or similar device operated by the operator, and is swung in the direction of arrow 890b.
[0091] In Figure 8C, the wrist is continuously gripped and moved in the direction of arrow 890c by the pointer of a mouse or similar device operated by the operator, and as a result, the entire arm, including the upper arm 800c, is extended approximately upwards by inverse kinematics or other methods.
[0092] From Figure 8A to Figure 8C, the torsion (hereinafter referred to as torsion) of the upper arm 800a to upper arm 800c about the length axis hardly occurs, so the palm of the hand in Figure 8C faces outwards from the body.
[0093] Figure 8D shows the state in which the upper arm 800d, connected to the shoulder joint, is torsionally applied in the direction of arrow 890d according to the operator's instructions.
[0094] When comparing the posture of the upper arm 800c in FIG8C with the posture of the upper arm 800d in FIG8D, the posture of the upper arm 800d in FIG8D is more suitable for the posture when a person naturally raises their hand upwards compared to the posture of the upper arm 800c in FIG8C.
[0095] Therefore, it is preferable that, regarding the state from the state of character 102 in FIG8A, when the wrist is grasped and the arm is swung upwards by means of inverse kinematics or the like, the state of character 102 in FIG8D is compared to the state of character 102 in FIG8C.
[0096] However, the posture in FIG8C is a posture that is attainable by a person, so it is difficult to avoid becoming the posture in FIG8C simply by limiting the joint angle. Therefore, in this invention, for example, by linking the upper arm to the upward swing (i.e., the change in the rotation angle in the vertical direction), the range of motion of the upper arm's torsional rotation and forward and backward rotation is intentionally reduced, thereby changing the posture in a manner that results in the posture of FIG8D rather than the posture of FIG8C.
[0097] FIG9 is a diagram showing an example of the coordinate axes of the upper arm 124 and the clavicle 122.The clavicle 122, as the main bone, and the upper arm 124, as its child bone, are connected by the shoulder joint 123. The clavicle's root is the origin relative to the coordinate axes X0, Y0, Z0. The shoulder joint 123 is the origin relative to the coordinate axes X1, Y1, Z1 of the upper arm. The origin of the upper arm lies on the clavicle's coordinate axis X0. The upper arm's coordinate axis X1 is in the direction from the shoulder towards the elbow. To facilitate understanding of the rotation, the clavicle's coordinate axes are superimposed on the shoulder joint 123 for illustration. The bending of the upper arm 124 relative to the clavicle is represented by the aforementioned unipolar coordinate system (μ, ν). The twisting of the upper arm 124 relative to the clavicle is represented by the rotation angle λ about axis X1.
[0098] Therefore, the posture of the upper arm 124 can be defined by three parameters (λ, μ, ν).
[0099] The posture of the upper arm 124 described above is defined in three-dimensional space using a unipolar coordinate system. However, other parameters (Euler angles, quaternions) that define the posture of the bone can be used. Generally, the posture of the bone in three-dimensional space can be defined by three parameters.
[0100] In the following description, these three parameters are explained using (s, t, u). For example, when using the unipolar coordinate system described above, the parameters (s, t, u) correspond as follows.
[0101] s = λ
[0102] t = μ
[0103] u = ν
[0104] Figures 10A to 10C are diagrams showing the coordinate system XYZ, axis X1, and the torsion λ890d of the upper arm.
[0105] In the embodiment shown below, a method is described in which the wrist is raised from the posture of the character in Figure 10A according to the instructions of the operator or the like to achieve the posture of the character in Figure 10C.
[0106] Figures 11A and 11B are diagrams illustrating an example of limiting the range of parameters in a three-dimensional space with parameters s, t, and u as mutually orthogonal coordinate axes, using the method of the present invention.
[0107] The solid of motion range 1102 is a solid representing the movable range (permissible range) of the parameters, and the movable range is the area of the surface and interior of the solid of motion range 1102.
[0108] An example of the solid of motion range 1102 is shown, which has a bottom surface 1102c and an upper end 1102a, and the area of the cross section 1102b parallel to the bottom surface of the solid of motion range 1102 decreases from the bottom surface 1102c to the upper end 1102a. In this case, it is shown that the larger the parameter u is, the smaller the range of the other two parameters s and t that satisfy the limitation becomes.
[0109] For example, when u is set to parameter ν (i.e., the parameter representing the bending of the upper arm 124 around the Z0 axis), when parameter u increases in the order of FIG8A, FIG8B, and FIG8D, corresponding to the raising of the hand, the range of parameter μ (i.e., the rotation of the upper arm 124 around the Y0 axis) corresponding to the value of parameter t is limited to a predetermined range, and the range of parameter λ (i.e., the torsion of the upper arm 124 around the X1 axis) corresponding to the value of parameter s is limited to a predetermined range.
[0110] Thus, in order to make the palm face forward when the arm is raised, the shape of the movable area solid 1102 is preset in such a way that the value of parameter s of the torsion of the upper arm 124 is limited, thereby making the state of raising the arm more natural.
[0111] In FIG11A, the inner side of section 1102b shows the limiting range of parameters in the state where the upper arm 124 is swung upwards. In this case, the value of parameter u is u1. The range of possible parameters s at this time is between s1a and s1b. In addition, the range of possible parameters t at this time is between t1a and t1b.
[0112] The upper end 1102a shows the limiting range of parameters in the state where the upper arm 124 is swung upwards to the bottom. In this case, the value of parameter u is u2. The possible value of parameter s at this time is s2. In addition, the possible value of parameter t at this time is t2. In this case, s2 becomes the value of the twist of the upper arm with the palm facing forward in the state of swaying the hand.
[0113] In addition, when the posture of lowering the arm as shown in FIG8A is taken as the initial posture, the direction in which parameter u increases is the change in posture such as raising the arm upwards, which can be said to be a change in posture away from the initial posture.
[0114] Figures 12A and 12B are diagrams illustrating examples of parameter correction when the parameter is outside the limit range.
[0115] In Figure 12A, point 1202 is shown, where the parameter becomes a value outside the limit range during inverse kinematics calculations or joint operations performed by the operator. In this case, point 1202 can be moved in the direction of arrow 1212 or arrow 1214 to correct the parameter so that it becomes the surface or interior of the movable region solid 1104.
[0116] The movement caused by arrow 1214 is a movement towards a point on the surface of the movable region solid 1104 that is closest to point 1202. The movement caused by arrow 1212 is a movement towards a point on the contour line obtained by the intersection of the plane containing point 1202 and parallel to the bottom surface 1220 with the movable region solid 1104 that is closest to point 1202. Details of this correction method will be described later.
[0117] FIG12B is a diagram schematically illustrating an example of how the parameter transformation changes with the correction of the present invention when the parameter changes from point 1251 to point 1255 without correction.
[0118] The transformation curve from point 1251 to point 1255 intersects the surface of the movable region solid 1104 at point 1253. Curve 1252, representing the transformation from point 1251 to point 1253, is located inside the movable region solid 1104. Curve 1254, representing the transformation from point 1253 to point 1255, is located outside the movable region solid 1104.
[0119] Since curve 1252 is located inside the movable region solid 1104, it is within a limited range and therefore will not be corrected. Parameter u changes from u1 to u2, parameter s remains at s1, and parameter t changes from t1 to t2. In this case, s remains at the value of s1, so the torsion of the upper arm does not change.
[0120] Curve 1254 is located outside the movable area solid 1104, and therefore is outside the restricted range and will be corrected. Through correction, curve 1254 will become curve 1264 on the surface of movable area solid 1104.
[0121] Before and after correction, parameter u changes from u2 to u3. In the transformation before correction (curve 1254), parameter s remains at s1, and parameter t changes from t2 to t3a. In the transformation after correction (curve 1264), parameter s changes from s1 to s2, and parameter t changes from t2 to t3b. Thus, through correction, the transformation of parameters s and t will change. Because parameter s changes from s1 to s2, the upper arm 124 will twist, and the palm will face forward.
[0122] By doing so, when the posture of the skeletal model is changed using the method of the present invention, the skeletal model will change to a more natural posture.
[0123] Figures 14A to 14H are examples of the shape of the movable area solid. The shape of the movable region solid is shown using contour lines, with the direction perpendicular to the bottom surface of the movable region solid as the height direction.
[0124] The movable region solid shown in FIG14A is a cone. The upper end of the movable region solid is a point, and the bottom surface is a circle. All contour lines are circles.
[0125] The upper end of the movable region solid shown in FIG14B is a line segment, and the bottom surface is a circle. The contour lines outside the upper end and the bottom surface are oblong. As in this example, the shape of the movable region solid can also be a shape other than a cone. Specification 7 / 11 pages 10 CN 122319466 A
[0126] The upper end of the movable region solid shown in FIG14C is a point, and the bottom surface is an oblong. The contour lines outside the upper end are oblong.
[0127] The upper end of the movable region solid shown in FIG14D is a line segment, and the bottom surface is an oblong. The contour lines outside the upper end are oblong.
[0128] The upper end of the movable area solid shown in Figure 14E is a line segment, and the bottom surface is an oblong shape. The contour lines outside the upper end are oblong shapes.As in this example, the positions of the upper end and the bottom surface can also be offset. In other words, the shape obtained by projecting the upper end shape vertically onto the bottom surface may not be located in the center of the bottom surface.
[0129] The upper end of the movable region solid shown in FIG14F is a line segment, and the bottom surface is a circle. The contour lines outside the upper end and the bottom surface are ellipses.
[0130] The upper end of the movable region solid shown in FIG14G is a point, and the bottom surface is an ellipse. The contour lines outside the upper end are ellipses.
[0131] The upper end of the movable region solid shown in FIG14H is a line segment, and the bottom surface is an ellipse. The contour lines outside the upper end are ellipses.
[0132] In addition, the shape of the upper end may be a curve segment.
[0133] In addition, for example, the shape obtained by removing the part above a certain height from the shape shown in FIG14A to FIG14H may be used as the shape of the movable region solid. For example, the shape obtained by removing the part above a certain height from the shape shown in FIG14A may become a frustum of a cone. Alternatively, a frustum of a cone can be used as the shape of the movable region solid.
[0134] [Correction Method]
[0135] Figures 15A to 15C are obtained by observing the movable region solid in the stu space from a direction parallel to the bottom surface. As shown in Figure 15B, the space outside the movable region solid is divided into three regions: region A, region B, and region C. The boundary between region A and region C is a plane that includes the bottom surface. The boundary between region A and region B is a plane that includes the top and is parallel to the bottom surface. The parameters (s, t, u) representing the joint angle are equivalent to the coordinates of a point in the stu space. When the position of the point corresponding to the joint angle is outside the movable region solid, the joint angle is corrected by moving the position of the point to the surface of the movable region solid. Depending on whether the position of the point before correction is located in any of regions A, B, or C, as shown in Figure 15C, the correction method is different.
[0136] If the point before correction is located in region A, such as point P1a, the point is moved on a plane containing point P1a and parallel to the bottom surface until it reaches the nearest point P1b on the surface of the movable region solid. Point P1b is taken as the corrected position. Details of the movement of the point on the plane will be described later.
[0137] If the point before correction is located in region B, firstly, the point is vertically projected onto the boundary plane between regions A and B (i.e., a plane containing the upper end of the movable region solid and parallel to the bottom surface). When the position of the projected point is on the surface of the movable region solid, its position is taken as the corrected position (for example, moving point P2a to point P2b). When the position of the projected point is outside the movable region solid, the point is moved on the projected plane until it reaches the nearest point on the surface of the movable region solid, and this is taken as the corrected position (for example, moving point P3a to point P3c).
[0138] When the point before correction is located in region C, firstly, the point is vertically projected onto a plane containing the bottom surface of the movable region solid. When the position of the projected point is on the surface of the movable region solid, its position is taken as the corrected position (for example, moving point P4a to point P4b). When the position of the projected point is outside the movable region solid, the point is moved on the projected plane and moved to the nearest point on the surface of the movable region solid, which is taken as the corrected position (for example, moving point P5a to point P5c).
[0139] The movement of the point on the plane parallel to the bottom surface (or the plane containing the bottom surface) is performed by the following method. As an example, the case where the profile shape of the cross section of the movable region solid formed by this plane is an oblong or elliptical is described in the specification on page 8 / 11 of CN 122319466 A. In addition, this profile shape is the same as one of the contour lines of the movable region solid.
[0140] [Case where the profile shape of the cross section is an oblong]
[0141] Figures 16A and 16B are diagrams showing the profile shape of an oblong cross section. The outer region of the profile is divided into four regions, D to G. The boundary of each region is a perpendicular line drawn from the endpoint of the straight section of the oblong. An example of moving a point located on the outer side of the oblong to the nearest point on the profile is shown in Figure 16B.
[0142] When the point before correction is located in region D, such as point Q1a, the nearest point on the profile, Q1b, is located on the arc portion of the profile. When the center of the arc is denoted as O1, point Q1b is the intersection of the straight line Q1aO1 and the arc. Point Q1b is taken as the corrected position.
[0143] When the point before correction is located in region E, such as point Q2a, the nearest point on the profile, Q2b, is located on the straight section of the profile. Point Q2b is the foot of the perpendicular line drawn from point Q2a to the straight line. Point Q2b is taken as the corrected position.
[0144] If the point before correction, such as point Q3a, is located in region F, then point Q3b is taken as the corrected position using the same method as the case where it is located in region D.
[0145] If the point before correction, such as point Q4a, is located in region G, then point Q4b is taken as the corrected position using the same method as the case where it is located in region E.
[0146] [In the case where the profile shape of the cross section is elliptical]
[0147] The profile shape of the elliptical cross section is shown in FIG17. The point before correction is denoted as Q5a. The nearest point on the profile, Q5b, is taken as the corrected position. Compared with the case where the profile shape is oblong, it has the advantage of not needing to distinguish between cases. In addition, the nearest point Q5b can be obtained from the solution of the quartic equation.
[0148] In the above description, for ease of understanding and simplification, only the torsion of the upper arm has been described.However, generally, for example, when grasping the wrist and changing the posture of the skeletal model using inverse kinematics, appropriate restrictions are also imposed on the torsion of bones other than the upper arm, corresponding to the bending of each bone, so that the character 102 changes to a more natural posture.
[0149] Furthermore, the method of the present invention can of course also be applied to the bending and torsion of other bones besides the upper arm.
[0150] Furthermore, the application of the above-described joint angle limiting method may be limited to the case of using inverse kinematics. In the case of not using inverse kinematics, that is, in the case of manipulating the rotation angle of the joint with a robotic arm, etc., angle restrictions different from the above-described joint angle limiting method may be applied.
[0151] Furthermore, the restriction imposed by the above-described joint angle limiting method may be taken as the first restriction, and a second restriction including the first restriction may be prepared in advance. In the case of using inverse kinematics, the first restriction is applied, and in the case of not using inverse kinematics, the second restriction is applied.
[0152] FIG11B is a diagram showing an example in which the movable region solid 1104 is oriented in an inclined direction in a three-dimensional space with parameters s, t, and u as mutually orthogonal coordinate axes, and the range of the movable region solid is defined by this movable region solid. The bottom surface 1104c is not parallel to the coordinate axes, and the direction of the height (the direction perpendicular to the bottom surface) is not parallel to the coordinate axes.
[0153] Thus, the range of parameters can also be limited by a movable region solid oriented in an inclined direction. In this case, for example, the correction made by 1212 in FIG12A is made in the plane of section 1104b parallel to the bottom surface 1104c. For example, if the coordinate axis of the clavicle is set at an inclination, and the parameters t and u change due to the rotation of raising the arm upward, such a movable region solid oriented in an inclined direction can be used.
[0154] FIG13A and FIG13B are diagrams showing a modified example of a movable region solid that limits the range of parameters in a three-dimensional space with parameters s, t, and u as mutually orthogonal coordinate axes.
[0155] FIG13A is a diagram showing a movable region three-dimensional 1300 in which cones 1302 and 1304 are joined together with a common base. Thus, the movable region three-dimensional is not limited to the cone. For example, the limitation of such a diagram 1300 can be applied to the rotation of the femur, which corresponds to the action of swinging the foot back and forth on the ground, as described on page 9 / 11 of the instruction manual CN 122319466 A.
[0156] FIG13B is a diagram showing the relationship between the cone 1312 as a movable region three-dimensional when using inverse kinematics and the cuboid 1314 as a movable region three-dimensional when not using inverse kinematics. Generally, regarding the bending and twisting of human bones, the former tends to have smaller limitations when multiple joints are moved simultaneously versus when only one specific joint is moved. When inverse kinematics is applied, there are more cases corresponding to the former.Therefore, compared with the first restriction applicable when using inverse kinematics, the second restriction applicable when not using inverse kinematics will naturally become larger. That is, the second restriction will naturally become a restriction that includes the first restriction. Figure 13B is a diagram illustrating this relationship.
[0157] For example, it is also possible that, in the case of a structure in which multiple objects are connected by joints, such as a robot, the object itself is set as the bone of the present invention to apply the method of the present invention.
[0158] Quaternions can also be used as parameters representing the rotation of the joint. The real part of the quaternion is denoted as qr, and the imaginary part is denoted as qx, qy, qz. Quaternions representing rotation have the following properties.
[0159] 1) qr2 + qx2 + qy2 + qz2 = 1
[0160] 2) (qr, qx, qy, qz) and (-qr, -qx, -qy, -qz) represent the same posture.
[0161] If it is set that the real part of the two representations in 2) above is always non-negative, then qr can be calculated based on qx, qy, and qz using the calculation
[0162] qr = (qx2 + qy2 + qz2)1 / 2
[0163] . Therefore, rotation can be represented by these three parameters qx, qy, and qz. Alternatively, qx, qy, and qz can be used as parameters to represent rotation, and the method of the present invention can be applied.
[0164] FIG18 is a flowchart showing the method of the embodiment.
[0165] [S1802] Check whether any one of the plurality of parameters exceeds the first limit (the limit that at least one parameter will affect the limit related to two or more other parameters). If the check is affirmative (Yes), proceed to step S1804. If the check is negative (No), proceed to step S1806.
[0166] [S1804] The multiple parameters are corrected using the first constraint so that the multiple parameters fall within the range of the first constraint.
[0167] [S1806] The pose of the sub-bone is determined using the multiple parameters.
[0168] As described above, a more natural pose of the skeletal model is obtained.
[0169] FIG19 is a flowchart showing the pose control method with and without inverse kinematics.
[0170] [S1902] Check whether inverse kinematics has been applied. If the check is positive (Yes), proceed to S1908. If the check is negative (No), proceed to S1904.
[0171] [S1904] Check whether any one of the multiple parameters exceeds the second constraint (a constraint that includes the range of the first constraint). If the check is positive (Yes), proceed to S1906. If the check is negative (No), proceed to S1912.
[0172] [S1906] The multiple parameters are corrected using the second constraint so that the multiple parameters fall within the range of the second constraint.
[0173] [S1908] It is checked whether any one of the multiple parameters exceeds the first constraint (the constraint that at least one parameter will affect the constraints related to two or more other parameters). If the check is positive (Yes), the process proceeds to S1910. If the check is negative (No), the process proceeds to S1912.
[0174] [S1910] The multiple parameters are corrected using the first constraint so that the multiple parameters fall within the range of the first constraint.
[0175] [S1912] The pose of the sub-bone is determined using the multiple parameters.
[0176] By doing so, the constraints are different depending on whether inverse kinematics is applied or not, and the pose of the skeletal model can be set appropriately. Instruction manual, pages 10 / 11, 13 CN 122319466 A
[0177] Figure 20 is a hardware configuration diagram of the embodiment.
[0178] The hardware configuration of the embodiment includes a CPU 2001, a ROM 2002 for storing the program and data of this embodiment, a RAM 2003, a network interface 2005, an input interface 2006, a display interface 2007, and an external memory interface 2008. These hardware components are interconnected by a bus 2004.
[0179] The network interface 2005 is connected to a network 2015. In the network 2015, there are wired LANs, wireless LANs, the Internet, telephone networks, etc. An input unit 2016 is connected to the input interface 2006. A display unit 2017 is connected to the display interface 2007. The display unit 2017 may also be implemented by multiple display devices. A storage medium 2018 is connected to the external memory interface 2008. The storage medium 2018 can also be RAM, ROM, CD-ROM, DVD-ROM, hard disk, memory card, USB memory, etc.
[0180] Regarding the steps of the method or program of the illustrated implementation, the order can be changed as long as there is no contradiction. In addition, as long as there is no contradiction, the illustrated step can be executed multiple times at different times. In addition, as long as there is no contradiction, multiple steps can be executed simultaneously. In addition, not all steps are necessary, and some steps may be omitted or not executed as long as there is no contradiction.
[0181] The above points also apply to the constituent elements of the method specified in the technical solution. That is, the order of the constituent elements can be changed as long as there is no contradiction. In addition, multiple constituent elements can be implemented simultaneously as long as there is no contradiction. Furthermore, the implementation of these constituent elements also falls within the technical scope specified in the technical solution.
[0182] In addition, each step can also be executed using an operating system or hardware. In addition, the program can be distributed in a state where it is stored on a non-transitory medium.
[0183] The program and method for implementing the above embodiments can be executed by a computer having the hardware configuration shown in FIG20. That is, the program of the embodiments can also be implemented as a method for executing a computer.
[0184] Alternatively, the program may be stored in storage medium 2018, ROM 2002, or RAM 2003.
[0185] Each embodiment can be implemented as a device with hardware on which the program is installed.
[0186] Explanation of reference numerals
[0187] 2001 CPU
[0188] 2002 ROM
[0189] 2003 RAM
[0190] 2004 Bus
[0191] 2005 Network interface
[0192] 2006 Input interface
[0193] 2007 Display interface
[0194] 2008 External memory interface
[0195] 2015 Network
[0196] 2016 Input unit
[0197] 2017 Display unit
[0198] 2018 Storage medium specification 11 / 11 page 14 CN 122319466 A Figure 1 Specification drawing 1 / 19 page 15 CN 122319466 A Figure 2 Specification drawing 2 / 19 page 16 CN 122319466 A Figure 3 Figure 4 of the instruction manual, Figure 5 of the instruction manual, Figure 6 of the instruction manual, Figure 7 of the instruction manual, Figure 8 of the instruction manual, Figure 9 of the instruction manual, Figure 10 of the instruction manual, Figure 11 of the instruction manual, Figure 12 of the instruction manual, Figure 12 of the instruction manual, Figure 12 of the instruction manual, Figure 13 of the instruction manual, Figure 14 of the instruction manual, Figure 15 of the instruction manual, Figure 16 of the instruction manual, Figure 17 of the instruction manual, Figure 18 of the instruction manual, Figure 19 ... Figure 13 Appendix to the Instruction Manual, Page 13 / 19, 27 CN 122319466 A Figure 14 Appendix to the Instruction Manual, Page 14 / 19, 28 CN 122319466 A Figure 15 Appendix to the Instruction Manual, Page 15 / 19, 29 CN 122319466 A Figure 16 Appendix to the Instruction Manual, Page 16 / 19, 30 CN 122319466 A Figure 17 Figure 18 Appendix to the Instruction Manual, Page 17 / 19, 31 CN 122319466 A Figure 19 Appendix to the Instruction Manual, Page 18 / 19, 32 CN 122319466 A Figure 20 Appendix to the Instruction Manual, Page 19 / 19, 33 CN 122319466 A
Claims
1. A posture determination method, wherein in a skeletal model in which a primary bone and a secondary bone are connected by joints, the posture of the secondary bone is determined according to multiple parameters defining the rotation of the secondary bone relative to the primary bone. The attitude determination method has the following steps: A determination is made for at least one of the plurality of parameters; Based on the determination, the plurality of parameters are corrected; as well as The orientation of the sub-bone is determined using the modified plurality of parameters. The step of making the determination includes performing a first determination, which determines whether any one of the plurality of parameters exceeds a first limit, wherein the first limit is represented by a limit on at least one parameter affecting the limits of two or more other parameters. The step of correcting the plurality of parameters includes: if the first determination determines that the first limit is exceeded, correcting the plurality of parameters using the first limit so that the plurality of parameters fall within the range of the first limit.
2. The attitude determination method as described in claim 1, wherein, The first limitation includes the limitation that, relative to the increase or decrease of at least one parameter, the ranges of the other two or more parameters all decrease monotonically.
3. The attitude determination method as described in claim 1, wherein, The multiple parameters are three parameters. In a three-dimensional space where the parameters of the three parameters are each orthogonal to each other, the first constraint is imposed by a shape comprising a solid shape whose cross-sectional area decreases monotonically along one direction.
4. The attitude determination method as described in claim 3, wherein, The three-dimensional shape is a cone.
5. The attitude determination method as described in claim 3, wherein, The three-dimensional shape is part of a cone.
6. The attitude determination method as described in claim 3, wherein, The three-dimensional shape is a three-dimensional shape in which the shape of the bottom surface has an area, and the shape of the top surface is a three-dimensional shape with a line segment or curve existing at a position at a predetermined distance away from the bottom surface along the one direction.
7. The attitude determination method as described in claim 3, wherein, The three-dimensional shape is a three-dimensional shape in which the shape of the bottom surface has an area, and a line segment or curve existing at a position at a predetermined distance away from the bottom surface along the one direction is taken as part of the three-dimensional shape of the upper end.
8. The attitude determination method as described in claim 3, wherein, The change in the posture of the skeletal model caused by the change of parameters along the one direction is the change in posture from the preset initial posture of the skeletal model.
9. The attitude determination method as described in claim 3, wherein, The first limitation includes the shape obtained by combining three-dimensional shapes whose cross-sectional area is monotonically reduced.
10. The attitude determination method as described in claim 1, wherein, Before making the determination, there is also a step of detecting whether inverse kinematics is applicable to the deformation of the skeleton model; The step of making the determination further includes a second determination step, in which, if the detection indicates that inverse kinematics is not applied, it is determined whether any one of the plurality of parameters exceeds a second limit, the second limit encompassing the range of the first limit. The step of correcting the plurality of parameters further includes: when the detection indicates that inverse kinematics is not applicable, and the second determination determines that the second limit is exceeded, correcting the plurality of parameters with the second limit so that the plurality of parameters fall within the range of the second limit.
11. A program that causes a computer to perform the attitude determination method as described in any one of claims 1 to 10.