Formal verification method for dexterous hand inverse kinematics of three-finger robot and electronic equipment
1. A formal verification method for dexterous hand inverse kinematics of a three-finger robot is characterized by comprising the following steps:
formally describing the content of the rotation theory; the formalized described momentum theory content at least comprises an operator for defining the momentum, a homogeneous matrix and a general matrix evolved by the homogeneous matrix;
inputting the content of the formally described rotation quantity theory into a theorem prover for proving to obtain theorem 1, theorem 2 and theorem 3; wherein theorem 1 is a matrix expression of motion vector, and theorem 2 is an exponential expression of motion vector when the dexterous hand of the three-finger robot only translates; theorem 3 is an exponential expression of the motion momentum of the dexterous hand of the three-finger robot during translation and rotation;
formalized description of the Paden-Kahan subproblem 1, the Paden-Kahan subproblem 2, and the Paden-Kahan subproblem 3;
inputting formally described Pasen-Kahan subproblem 1, Pasen-Kahan subproblem 2 and Pasen-Kahan subproblem 3 into the theorem prover for proving to obtain theorem 4, theorem 5 and theorem 6; wherein, theorem 4, theorem 5 and theorem 6 are respectively the solutions of the Pasen-Kahan subproblem 1, the Pasen-Kahan subproblem 2 and the Pasen-Kahan subproblem 3;
verifying the kinematics solution problem of the dexterous hand of the three-finger robot using the theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, Pasen-Kahan subproblem 1, Pasen-Kahan subproblem 2, and Pasen-Kahan subproblem 3 described formally.
2. The method of claim 1, wherein formally describing the content of the momentum theory comprises:
formally describing an operator of the motion vector, a homogeneous matrix and a general matrix of homogeneous matrix evolution as definition 1, definition 2 and definition 3; wherein the content of the first and second substances,
definition 1: operator of motion vector:
the mathematical formula for the amount of spin of movement is as follows:
ξ=(ω;υ)
in the formula, xi is the momentum of movementIs the linear velocity of translation, ω is the angular velocity of rotation,is an antisymmetric matrix corresponding to ω;
wherein the operator of the motion vector is used for converting the coordinate representation xi into the motion vectorThe theorem proves that the formalization of the formula (1) in the formula prover is described as follows:
val screw_2_matrix s=lambda i j.if i<=3∧j<=3then(vec3_2_ssm(FST s))$i$j else if i<=3∧j=4then(SND s)$i else&0;
in the theorem proving device, the motion vector is expressed by s, FST s is the rotation angular velocity omega, and is the first component of the motion vector s; SND s represents the linear velocity upsilon of translation and is the second component of the motion rotation quantity s; the input variable of the function screen _2_ matrix is a motion vector s, i, j represents the reference number of elements in the matrix, i represents a row, j represents a column, and the output is a 3+ 1-dimensional matrix; vec3_2_ ssm represents an inverse symmetric matrix transformation function;
wherein the content of the first and second substances,is a3 x3 matrix, when i is less than or equal to 3 and j is less than or equal to 3, the elements in the momentum s areWhen j is 4, the value is upsilon, and other elements are 0;
definition 2: homogeneous matrix
For the pose of a three-fingered robotic dexterous hand, { S } and { T } are assumed to be an inertial coordinate system and a tool coordinate system, respectively, where { T } is attached to the three-fingered robotic dexterous hand, then the set of pose mappings for the three-fingered robotic dexterous hand with respect to the inertial coordinate system { S } can be represented by the set of mappings for the tool coordinate system { T } with respect to the inertial coordinate system { S } as follows:
wherein SE (3) is a special Euclidean group, i.e. a plum group, R is a rotation matrix of 3 x3, P is a position vector, and SO (3) is a special orthogonal group;
wherein, the homogeneous matrix T belongs to SE (3) and meets the property of the lie group, and the formalization of the formula (2) in the theorem prover is described as follows:
val homo_trans x R=lambda i j.
if i=(dimindex(:N)+1)∧∧~(j=dimindex(:N)+1)then&0 else if(i=dimindex(:N)+1)∧(j=dimindex(:N)+1)then&1 else if~(i=dimindex(:N)+1)∧(j=dimindex(:N)+1)then x$i else R$i$j;
in the theorem prover, the input of the homo _ trans is the variable of an N-dimensional vector x and an N-dimensional rotation matrix R, and the output is an N + 1-dimensional matrix; dimindex represents the dimension of a matrix in a theorem prover; x $ i represents the ith component of vector x; r $ i $ j represents the element in the ith row and jth column of the rotation matrix R; symbol & represents converting a natural number type to a real number type;
a homogeneous matrix T ofThat is, when i is equal to N +1, the element in the homogeneous matrix T is 0, when i is equal to N +1 and j is equal to N +1, the element in the homogeneous matrix T is 1, and when i is equal to N +1 and j is equal to N +1, the element in the homogeneous matrix T is x and the other elements are R;
definition 3: the formalization of a generic matrix of homogeneous matrix evolution in a theorem prover is described as follows:
val homo_trans_tangent x R=lambda i j.
if i=(dimindex(:N)+1)then&0 else if~(i=dimindex(:N)+1)∧(j=dimindex(:N)+1)then x$i else R$i$j
in the theorem prover, the input variables of the homo _ trans _ tangent are an N-dimensional vector x and an N-dimensional rotation matrix R, and the output is an N + 1-dimensional matrix;
the general matrix isThat is, when i ≠ N +1, the element in the universal matrix is 0, and when i ≠ N +1 and j ≠ N +1, the element in the universal matrix is x, and the other elements are R.
3. The method of claim 1 or 2, wherein inputting the formally described contents of the momentum theory into a theorem prover for proving, obtaining theorem 1, theorem 2 and theorem 3, comprises:
theorem 1 is obtained by proving that the mathematical form of the motion vector is the same as the mathematical form of the universal matrix evolved by the homogeneous matrix based on definition 1 and definition 3 in a theorem prover;
the exponential expression of the motion rotation when the dexterous hand of the three-finger robot only translates is formally described in a theorem prover as follows:
a.FST s=vec 0==>matrix_exp(a%%screw_2_matrix s)=homo_trans(a%(SND s))(mat 1)
wherein a is a real number, represents a rotation angle theta, and has a value range of [0, 2 pi ]; the function matrix _ exp represents an exponential function matrix _ exp on a matrix domain, an input variable a%% screen _2_ matrix s of the function matrix _ exp is a 3+ 1-order matrix, an output result of the function matrix _ exp is the exponential mapping of the matrix, and the type is a 3-order matrix; the mat is a high-order logic function defined in a theorem prover, an input variable of the high-order logic function is a natural number, a return type is an n-order real matrix, a return value of the mat is a matrix with diagonal angles as real numbers corresponding to the input variable, and an identity matrix can be represented by mat 1; the symbol ═ represents a deduction; the symbol "%" represents a scalar product symbol of a vector; the symbol "%" represents a scalar product symbol of the matrix;
based on the formalized description of definition 3, proving a process of equality of both sides of the equation of the above formalized description in a theorem prover to obtain theorem 2;
the exponential expression of the motion rotation of the dexterous hand of the three-finger robot during translation and rotation is formally described in a theorem prover as follows:
a.norm(FST s)=&1==>matrix_exp(a%%screw_2_matrix s)=homo_trans((mat 1-matrix_exp(a%%vec3_2_ssm(FST s)))**((FST s)cross(SND s))+a%(vec3_vtrans(FST s)**(SND s)))(matrix_exp(a%%vec3_2_ssm(FST s)))
wherein vec3_ vtrans represents a transpose of a matrix; norm is a high-order logic function defined in a theorem prover, the input variable of the high-order logic function is an N-dimensional vector, the return type is a real number, and the output result is the norm of the N-dimensional vector, namely the length value of the vector; symbol & represents converting a natural number type to a real number type; the symbol "+" represents a vector-by-symbol that multiplies a vector;
based on the formalized description of definition 3, a process of proving equality relationships on both sides of the equation of the above formalized description in a theorem prover to obtain theorem 3.
4. The method according to claim 1 or 2, characterized in that formally described Paden-Kahan subproblem 1, Paden-Kahan subproblem 2 and Paden-Kahan subproblem 3 are input into the theorem prover for proof, obtaining theorems 4, 5 and 6, including:
the theorem prover formally describes the Pasen-Kahan subproblem 1 and proves the solution of the Pasen-Kahan subproblem 1 to obtain theorem 4; among them, the Paden-Kahan subproblem 1 is formally described in theorem provers as follows:
w r u u′v v′p q s a.
(--(pi/&2)<a∧a<pi/&2)∧s=(w,r cross w)∧norm w=&1∧u=p-r∧v=q-r∧u′=u-(vec3_vtrans(FST s)**u)∧v′=v-(vec3_vtrans(FST s)**v)∧matrix_exp(a%%screw_2_matrix s)**(homo_point(mk_point r))=(homo_point(mk_point r))
∧matrix_exp(a%%screw_2_matrix s)**(homo_point(mk_point p))=(homo_point(mk_point q))∧~(u′=vec 0)
wherein w, r, u, u ', v, v', p, q are vectors, w represents the rotation axis, u ', v' are projections of the vectors u, v, respectively; s is the number of revolutions of movement; a is a real number and represents a rotation angle theta in the range of [ -pi/2, pi/2 ]; r is a point on the rotating shaft and satisfies the principle of position invariance; homo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the curl; vec 0 represents a0 vector; dot represents a dot product of the vector; cross represents cross multiplication of the vector;
the process of inputting the formal description of the Pasen-Kahan subproblem 1 into the theorem prover and proving to obtain the solution of the Pasen-Kahan subproblem 1 comprises the following steps:
import sub-targetAnd proving the establishment of the sub-targets in a theorem prover;
and adding the sub-targets after the verification is established into a hypothesis list, and verifying the solution of the Pasen-Kahan subproblem 1 by using a theorem prover to obtain theorem 4.
5. The method according to claim 1 or 2, characterized in that formally described Paden-Kahan subproblem 1, Paden-Kahan subproblem 2 and Paden-Kahan subproblem 3 are input into the theorem prover for proof, obtaining theorems 4, 5 and 6, including:
the theorem prover formally describes the Pasen-Kahan subproblem 2 and proves the solution of the Pasen-Kahan subproblem 1 to obtain theorem 5;
among them, the Paden-Kahan subproblem 2 is formally described in theorem provers as follows:
w1w2 r u u'v v'p q c z a a1 a2 x1 x2 x3 s1 s2.
(--(pi/&2)<a∧a<pi/&2)∧
(--(pi/&2)<a1∧a1<pi/&2)∧
(--(pi/&2)<a2∧a2<pi/&2)∧
s1=(w1,r cross(w1))∧s2=(w2,r cross(w2))∧
norm w1=&1∧norm w2=&1∧u=p-r∧v=q-r∧z=c-r∧
u'=u-(vec3_vtrans(FST s2)**u)∧
v'=v-(vec3_vtrans(FST s1)**v)∧
z=x1%w1+x2%w2+x3%(w1 cross w2)∧
(norm z)pow 2=x1 pow 2+x2 pow 2+(&2*x1*x2)*(w1 dot w2)+(x3 pow 2)*(norm(w1 cross w2))pow 2∧
~((norm(w1 cross w2))pow 2=&0)∧
~((w1 dot w2)pow 2-&1=&0)∧
matrix_exp(a1%%screw_2_matrix s1)**(homo_point(mk_point r))=(homo_point(mk_point r))∧
matrix_exp((--a1)%%screw_2_matrix s1)**(homo_point(mk_point r))=(homo_point(mk_point r))∧
matrix_exp(a2%%screw_2_matrix s2)**(homo_point(mk_point r))=(homo_point(mk_point r))∧
matrix_exp(a2%%screw_2_matrix s2)**(homo_point(mk_point p))=(homo_point(mk_point c))∧
matrix_exp((--a1)%%screw_2_matrix s1)**(homo_point(mk_point q))=(homo_point(mk_point c))∧
matrix_exp(a1%%screw_2_matrix s1)**matrix_exp(a2%%screw_2_matrix s2)**(homo_point(mk_point p))=(homo_point(mk_point q))∧
a=a1+a2∧~(u'=vec 0)∧~(v'=vec 0)==>
((&0<=x3)==>(a=--atn((w1 dot(v'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(v'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))+atn((w2 dot(u'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(u'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))))∧
((x3<&0)==>(a=--atn((w1 dot(v'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(v'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))+atn((w2 dot(u'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(u'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))))
wherein w1, w2, r, u, u ', v, v', p, q, c, z are vectors, w1 and w2 represent the first and second axes of rotation about which the three-finger robotic dexterous hand rotates, respectively, and u ', v' are projections of the vectors u, v, respectively; s1 and s2 are the rotation amount of the first rotation axis and the rotation amount of the second rotation axis, respectively; a. a1 and a2 are real numbers and indicate rotation angles theta and theta1And theta2In the range of [ - π/2, π/2](ii) a x1, x2, and x3 are real numbers, are custom variables; r is a point on the rotating shaft and satisfies the principle of position invariance; homo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the curl; vec 0 represents a0 vector. dot represents a dot product of the vector; cross represents the cross product of the vector.
6. The method according to claim 1 or 2, characterized in that formally described Paden-Kahan subproblem 1, Paden-Kahan subproblem 2 and Paden-Kahan subproblem 3 are input into the theorem prover for proof, obtaining theorems 4, 5 and 6, including:
the theorem prover formally describes the Pasen-Kahan subproblem 3 and proves the solution of the Pasen-Kahan subproblem 3 to obtain theorem 6;
among them, the Paden-Kahan subproblem 3 is formally described in theorem provers as follows:
w r u u′v v′p q s d a a0 c d′.
((--(pi/&2)<a0∧a0<pi/&2)∧(--(pi/&2)<a∧a<pi/&2)∧
&0<=(abs c)∧(abs c)<=pi∧s=(w,r cross w)∧norm w=&1∧u=p-r∧v=q-r∧c=a0-a∧u′=u-(vec3_vtrans(FST s)**u)∧
v′=v-(vec3_vtrans(FST s)**v)∧
matrix_exp(a0%%screw_2_matrix s)**(homo_point(mk_point r))=(homo_point(mk_point r))∧
matrix_exp(a0%%screw_2_matrix s)**(homo_point(mk_point p))=(homo_point(mk_point q))∧~(u′=vec 0)∧~(v′=vec 0))∧
(d)pow 2=(norm(v-matrix_exp(a%%vec3_2_ssm w)**u))pow 2∧
(d′)pow 2=(d)pow 2-(abs(w dot(p-q)))pow 2==>
(&0<=c==>a=a0-acs(((norm(u′))pow 2+(norm(v′))pow 2-(d′pow 2))/
(&2*(norm(u′))*(norm(v′)))))∧
(c<&0==>a=a0+acs(((norm(u′))pow 2+(norm(v′))pow 2-(d′pow 2))/
(&2*(norm(u′))*(norm(v′)))))
wherein w, r, u, u ', v, v', p, q are vectors, w represents the rotation axis, u ', v' are projections of the vectors u, v, respectively; r is a point on the rotating shaft and meets the principle of position invariance; s is the number of revolutions of movement; a and a0 are real numbers representing angles of rotation in the range [ - π/2, π/2 ]; d is a real number representing the distance from point p to point q after rotation about the axis of rotation; d' is the projection of d on a plane; c is the difference of a real number representing a 0-a; homo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the motion vector; vec 0 represents a0 vector. dot represents a dot product of the vector; cross represents the cross product of the vector.
7. The method according to claim 1 or 2, wherein verifying the kinematic solution problem of the three-finger robot dexterous hand using the theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, Paden-Kahan subproblem 1, Paden-Kahan subproblem 2, and Paden-Kahan subproblem 3 formally described comprises:
the forward kinematics of the index finger of the dexterous three-finger robot hand is formally described in a theorem prover as follows:
gst_a a1 s1 a2 s2 a3 s3 a4 s4 x=matrix_exp(a1%%screw_2_matrix s1)**matrix_exp(a2%%screw_2_matrix s2)**matrix_exp(a3%%screw_2_matrix s3)**matrix_exp(a4%%screw_2_matrix s4)**(gst_initial x)
wherein s1, s2, s3 and s4 are respectively the motion rotation amounts of the first to the fourth joints of the index finger of the dexterous three-finger robot handAnda1, a2, a3 and a4 represent rotation angles theta of the first to fourth joints of the index finger of the dexterous three-finger robot hand, respectively1、θ2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; the input variable of gst _ initial x is vector x, x represents the three-dimensional coordinate of the initial pose, and the output is homogeneous matrix representing the initial pose gst(0) (ii) a gst _ a represents the position of the index finger of the dexterous hand of the three-finger robot after movement;
the motion process of the rigid body transformation of the index finger of the dexterous three-finger robot hand from the second joint to the end effector is formally described in a theorem prover as follows:
g_1 a2 s2 a3 s3 a4 s4=matrix_exp(a2%%screw_2_matrix s2)**matrix_exp(a3%%screw_2_matrix s3)**matrix_exp(a4%%screw_2_matrix s4)
wherein s2, s3 and s4 are respectively the motion rotation amounts of the second to the fourth joints of the index finger of the dexterous hand of the three-finger robotAnda2, a3 and a4 represent the rotation angles theta of the second to fourth joints in the index finger motion of the dexterous three-finger robot hand respectively2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl;
verifying algebraic operations of a course of motion of a rigid body transformation of an index finger of the dexterous three-finger robot hand from a first joint to an end effector in a theorem prover, the verification being formally described in the theorem prover as follows:
a1 a2 a3 a4 s1 s2 s3 s4 x gd.
gst_a a1 s1 a2 s2 a3 s3 a4 s4 x=gd==>matrix_exp(--(a1)%%screw_2_matrix s1)**gd**(matrix_inv(gst_initial x))=(g_1 a2 s2 a3 s3 a4 s4)
wherein s1, s2, s3 and s4 are respectively the motion rotation amounts of the first joint to the fourth joint of the index finger of the dexterous hand with three fingersAnda1、a2、a3 and a4 represent rotation angles theta of the first to fourth joints of the index finger in the motion of the three-finger robot dexterous hand, respectively1、θ2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the motion vector; gd is defined as the course of motion of the rigid body transformation of the index finger of the dexterous three-finger robot hand from the first joint to the end effector; matrix _ inv represents the inverse of the matrix; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing the initial pose g of the index finger of the dexterous hand of the three-finger robotst(0)。
8. The method of claim 7, wherein verifying the kinematics of the three-finger robotic dexterous hand using the theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, Paden-Kahan subproblem 1, Paden-Kahan subproblem 2, and Paden-Kahan subproblem 3 formally described further comprises:
verifying algebraic operations of a motion process of rigid body transformation of the index finger of the dexterous three-finger robot hand from the second joint to the end effector in a theorem prover, the verification process being formally described as follows:
θ2 θ3 θ4 s2 s3 s4.
matrix_exp(θ2%%screw_2_matrix s2)=(g_1 a2 s2 a3 s3 a4 s4)**matrix_exp(--θ4%%screw_2_matrix s4)**matrix_exp(--θ3%%screw_2_matrix s3)
wherein s2, s3 and s4 are respectively the motion rotation amounts of the second to the fourth joints of the index finger of the dexterous hand of the three-finger robotAnda2, a3 and a4 respectively representIs the rotation angle theta of the second to the fourth joints of the index finger in the motion of the dexterous hand with three fingers2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; and/or the presence of a gas in the gas,
verifying the rotation angle theta of the first joint of the index finger of the dexterous three-finger robot hand in a theorem prover1The verification process is described formally as follows:
a1 a2 a3 a4 h1 h2 h3 h4 px py.
px=cos(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4))∧
py=sin(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4))∧
a1=atn((cos(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4)))/
(sin(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4))))==>
a1=atn(px/py)
wherein px and py are real numbers and respectively represent x-axis components and y-axis components of a three-dimensional vector of a first joint position of an index finger of the dexterous three-finger robot hand; a1, a2, a3 and a4 are real numbers representing the rotation angles theta of the first to fourth joints of the index finger in the motion of the dexterous hand with three fingers1、θ2、θ3And theta4(ii) a h1, h2, h3 and h4 are real numbers representing distances between second to fourth joint angles of the index finger of the three-finger robot dexterous hand, respectively; and/or the presence of a gas in the gas,
verifying the rotation angle theta of the third joint of the index finger of the dexterous three-finger robot hand in a theorem prover3The verification process is described formally as follows:
p q s2 s3 s4 a2 a3 a4.
(matrix_exp((a2)%%screw_2_matrix s2)**(homo_point(mk_point p))=(homo_point(mk_point p))∧matrix_exp(a2%%screw_2_matrix s2)**
(matrix_exp(a3%%screw_2_matrix s3)**(homo_point(mk_point q))-(homo_point(mk_point p)))=matrix_exp(a3%%screw_2_matrix s3)**(homo_point(mk_point q))-(homo_point(mk_point p))∧
matrix_exp((a4)%%screw_2_matrix s4)**(homo_point(mk_point q))=(homo_point(mk_point q)))==>
norm(matrix_exp(a3%%screw_2_matrix s3)**(homo_point(mk_point q))-(homo_point(mk_point p)))=norm(g_1a2 s2 a3 s3 a4 s4**(homo_point(mk_point q))–(homo_point(mk_point p)))
wherein p and q are vectors respectively representing one point on a second joint axis of an index finger of the dexterous hand of the three-finger robot and one point on a fourth joint axis; a2, a3 and a4 are real numbers representing the rotation angle theta of the second to fourth joints of the index finger of the dexterous three-finger robot hand2、θ3And theta4(ii) a s2, s3 and s4 are respectively the motion rotation amounts of the second to the fourth joints of the index finger of the dexterous three-finger robot handAndhomo _ point represents a homogeneous point; and/or the presence of a gas in the gas,
verifying the rotation angle theta of the second joint of the index finger of the dexterous three-finger robot hand in a theorem prover2The verification process is described formally as follows:
a2 a3 a4 s2 s3 s4 p'g2.
g2=(g_1 a2 s2 a3 s3 a4 s4)**matrix_exp(--(a4)%%screw_2_matrix s4)**matrix_exp(--(a3)%%screw_2_matrix s3)==>matrix_exp(a2%%screw_2_matrix s2)**homo_point(mk_point p')=g2**homo_point(mk_point p')
wherein p' isA vector representing a point outside a second joint axis of an index finger of the dexterous three-finger robot hand; a2, a3 and a4 are real numbers representing the rotation angle theta of the second to fourth joints of the index finger of the dexterous three-finger robot hand2、θ3And theta4(ii) a s2, s3 and s4 are respectively the motion rotation amounts of the second to the fourth joints of the index finger of the dexterous three-finger robot handAndhomo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the motion vector.
9. The method according to claim 1 or 2, wherein verifying the kinematics of the three-finger robot dexterous hand using the theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, Paden-Kahan subproblem 1, Paden-Kahan subproblem 2, and Paden-Kahan subproblem 3 formally described comprises:
defining the forward kinematics of the thumb of the dexterous three-finger robot hand in a theorem prover, the formalization of the definition being described as follows:
ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x=matrix_exp(a1%%screw_2_matrix s1)**matrix_exp(a2%%screw_2_matrix s2)**matrix_exp(a3%%screw_2_matrix s3)**matrix_exp(a4%%screw_2_matrix s4)**matrix_exp(a5%%screw_2_matrix s5)**(gst_initial x)
wherein s1, s2, s3, s4 and s5 are respectively the motion rotation amounts of the first joint to the fifth joint of the thumb of the dexterous hand with three fingersAndθ1、θ2、θ3、θ4and theta5Is the thumb of the dexterous hand of the three-finger robotThe rotation angles of the first to fifth joints in motion; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the motion vector; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing initial pose gst(0);
Verifying the fifth joint angle theta of the thumb of the dexterous three-finger robot hand in a theorem prover5The formalization of the verification process in the theorem prover is described as follows:
h2 a1 a2 a3 a4 a5 s1 s2 s3 s4 s5 g_d pw q.
((matrix_exp((a1)%%screw_2_matrix s1)**matrix_exp((a2)%%screw_2_matrix s2))**((homo_point(mk_point pw))-(homo_point(mk_point q)))=(homo_point(mk_point pw))-(homo_point(mk_point q))∧matrix_exp((a3)%%screw_2_matrix s3)**matrix_exp((a4)%%screw_2_matrix s4)**(homo_point(mk_point pw))=(homo_point(mk_point pw))∧matrix_exp((a1)%%screw_2_matrix s1)**matrix_exp((a2)%%screw_2_matrix s2)**(homo_point(mk_point q))=(homo_point(mk_point q))∧
g_d=ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x)==>norm((homo_point(mk_point pw))-(homo_point(mk_point q)))=norm(g_d**(matrix_inv(gst_initial x))**matrix_exp(--a5%%screw_2_matrix s5)**(homo_point(mk_point pw))-(homo_point(mk_point q)))
wherein pw and q are vectors and represent the intersection point of the third joint axis and the fourth joint axis and the intersection point of the first joint axis and the second joint axis of the thumb of the dexterous three-finger robot hand; h2 is a real number; s1, s2, s3, s4 and s5 are respectively the motion rotation amounts of the first joint to the fifth joint of the thumb of the dexterous three-finger robot handAndθ1、θ2、θ3、θ4and theta5The rotation angles of the first joint to the fifth joint of the thumb in the motion of the dexterous hand of the three-finger robot; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the motion vector; homo _ point represents a homogeneous point; g _ d is defined as the course of motion of the rigid body transformation of the thumb of the dexterous three-finger robot hand from the first joint to the end effector; the input variable of the gst _ initial x is a vector x, the output is a homogeneous matrix, and the matrix represents the initial pose g of the thumb of the dexterous hand of the three-finger robotst(0) (ii) a And/or the presence of a gas in the gas,
verifying the first and second joint angles θ of the thumb of the dexterous three-finger robot hand in a theorem prover1And theta2The formalization of the verification process in the theorem prover is described as follows:
s1 s2 s3 s4 s5 a1 a2 a3 a4 a5 pw x g_d.
(g_d=ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x∧
matrix_exp((a3)%%screw_2_matrix s3)**
matrix_exp((a4)%%screw_2_matrix s4)**(homo_point(mk_point pw))=(homo_point(mk_point pw))∧
ga_2=g_d**(matrix_inv(gst_initial x))**
matrix_exp(--(a5)%%screw_2_matrix s5)**(homo_point(mk_point pw)))==>
matrix_exp((a1)%%screw_2_matrix s1)**
matrix_exp((a2)%%screw_2_matrix s2)**(homo_point(mk_point pw))=ga_2
wherein pw is a vector and represents the intersection point of the third joint axis and the fourth joint axis of the thumb of the dexterous three-finger robot hand; s1, s2, s3, s4 and s5 are respectively the motion rotation amounts of the first joint to the fifth joint of the thumb of the dexterous three-finger robot handAndθ1、θ2、θ3、θ4and theta5The rotation angles of the first joint to the fifth joint of the thumb in the motion of the dexterous hand of the three-finger robot; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; homo _ point represents a homogeneous point; g _ d is defined as the course of motion of the rigid body transformation of the thumb of the dexterous three-finger robot hand from the first joint to the end effector; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing initial pose gst(0) (ii) a And/or the presence of a gas in the gas,
verifying the third and fourth joint angles theta of the thumbs of the three-finger robot dexterous hand in a theorem prover3And theta4The formalization of the verification process in the theorem prover is described as follows:
s1 s2 s3 s4 s5 a1 a2 a3 a4 a5 p q x g_d.
(g_d=ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x∧
q=matrix_exp(--(a2)%%screw_2_matrix s2)**matrix_exp(--(a1)%%screw_2_matrix s1)**g_d**(matrix_inv(gst_initial x))**matrix_exp(--(a5)%%screw_2_matrix s5)**(homo_point(mk_point p)))==>matrix_exp(a3%%screw_2_matrix s3)**matrix_exp(a4)%%screw_2_matrix s4)**(homo_point(mk_point p))=q
wherein p and q are vectors and represent the intersection points of the third joint axis and the outer point of the fourth joint axis of the thumb of the dexterous three-finger robot hand and the first joint axis and the second joint axis; s1, s2, s3, s4 and s5 are respectively the motion rotation amounts of the first joint to the fifth joint of the thumb of the dexterous three-finger robot handAndθ1、θ2、θ3、θ4and theta5The rotation angles of the first joint to the fifth joint of the thumb in the motion of the dexterous hand of the three-finger robot; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the motion vector; homo _ point represents a homogeneous point; g _ d is defined as the course of motion of the rigid body transformation of the thumb of the dexterous three-finger robot hand from the first joint to the end effector; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing initial pose gst(0)。
10. An electronic device comprising a memory and a processor; wherein the content of the first and second substances,
the memory is to store one or more computer instructions, wherein the one or more computer instructions are to be executed by the processor to implement the method of any of claims 1-9.
Background
With the rapid development of artificial intelligence and computers, robots are widely used in various fields of production and life. Brings convenience to human beings and brings obvious danger. Therefore, the safety problem of the robot is of great concern, and the inverse kinematics problem is a determining factor of the safety of the robot.
Traditional testing and simulation are basic methods for ensuring safe operation of the robot. With the increasing complexity of the robot system and the increasing size of the test case, complete testing of the system is almost impossible; the simulation method is established on computer software platforms such as Maple, Mathematica and the like, which is not only limited by the operation speed and the memory of computer hardware, but also influenced by the hidden Bug in a computer software system. Therefore, the safety requirements of safety-critical robot systems have not been met by only relying on these traditional non-complete verification means.
Disclosure of Invention
The embodiment of the disclosure provides a formal verification method for dexterous hand inverse kinematics of a three-finger robot and electronic equipment.
In a first aspect, the disclosed embodiment provides 1 a formal verification method for inverse kinematics of a dexterous hand of a three-finger robot, including:
formally describing the content of the rotation theory; the formalized described momentum theory content at least comprises an operator for defining the momentum, a homogeneous matrix and a general matrix evolved by the homogeneous matrix;
inputting the content of the formally described rotation quantity theory into a theorem prover for proving to obtain theorem 1, theorem 2 and theorem 3; wherein theorem 1 is a matrix expression of motion vector, and theorem 2 is an exponential expression of motion vector when the dexterous hand of the three-finger robot only translates; theorem 3 is an exponential expression of the motion momentum of the dexterous hand of the three-finger robot during translation and rotation;
formalized description of the Paden-Kahan subproblem 1, the Paden-Kahan subproblem 2, and the Paden-Kahan subproblem 3;
inputting formally described Pasen-Kahan subproblem 1, Pasen-Kahan subproblem 2 and Pasen-Kahan subproblem 3 into the theorem prover for proving to obtain theorem 4, theorem 5 and theorem 6; wherein, theorem 4, theorem 5 and theorem 6 are respectively the solutions of the Pasen-Kahan subproblem 1, the Pasen-Kahan subproblem 2 and the Pasen-Kahan subproblem 3;
verifying the kinematics solution problem of the dexterous hand of the three-finger robot using the theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, Pasen-Kahan subproblem 1, Pasen-Kahan subproblem 2, and Pasen-Kahan subproblem 3 described formally.
Further, formally describing the contents of the momentum theory, including:
formally describing an operator of the motion vector, a homogeneous matrix and a general matrix of homogeneous matrix evolution as definition 1, definition 2 and definition 3; wherein the content of the first and second substances,
definition 1: operator of motion vector:
the mathematical formula for the amount of spin of movement is as follows:
ξ=(ω;υ)
in the formula, xi is the momentum of movementIs the linear velocity of translation, ω is the angular velocity of rotation,is an antisymmetric matrix corresponding to ω;
wherein the operator of the motion vector is used for converting the coordinate representation xi into the motion vectorThe theorem proves that the formalization of the formula (1) in the formula prover is described as follows:
val screw_2_matrix s=lambda i j.if i<=3/\j<=3then(vec3_2_ssm(FST s))$i$j else if i<=3/\j=4then(SND s)$i else&0;
in the theorem proving device, the motion vector is expressed by s, FST s is the rotation angular velocity omega, and is the first component of the motion vector s; SND s represents the linear velocity upsilon of translation and is the second component of the motion rotation quantity s; the input variable of the function screen _2_ matrix is a motion vector s, i, j represents the reference number of elements in the matrix, i represents a row, j represents a column, and the output is a 3+ 1-dimensional matrix; vec3_2_ ssm represents an inverse symmetric matrix transformation function;
wherein the content of the first and second substances,is a3 x3 matrix, when i is less than or equal to 3 and j is less than or equal to 3, the elements in the momentum s areWhen j is 4, the value is upsilon, and other elements are 0;
definition 2: homogeneous matrix
For the pose of a three-fingered robotic dexterous hand, { S } and { T } are assumed to be an inertial coordinate system and a tool coordinate system, respectively, where { T } is attached to the three-fingered robotic dexterous hand, then the set of pose mappings for the three-fingered robotic dexterous hand with respect to the inertial coordinate system { S } can be represented by the set of mappings for the tool coordinate system { T } with respect to the inertial coordinate system { S } as follows:
wherein SE (3) is a special Euclidean group, i.e. a plum group, R is a rotation matrix of 3 x3, P is a position vector, and SO (3) is a special orthogonal group;
wherein, the homogeneous matrix T belongs to SE (3) and meets the property of the lie group, and the formalization of the formula (2) in the theorem prover is described as follows:
val homo_trans x R=lambda i j.
if i=(dimindex(:N)+1)/\∧~(j=dimindex(:N)+1)then&0
else if(i=dimindex(:N)+1)/\(j=dimindex(:N)+1)then&1
else if~(i=dimindex(:N)+1)/\(j=dimindex(:N)+1)then x$i
else R$i$j;
in the theorem prover, the input of the homo _ trans is the variable of an N-dimensional vector x and an N-dimensional rotation matrix R, and the output is an N + 1-dimensional matrix; dimindex represents the dimension of a matrix in a theorem prover; x $ i represents the ith component of vector x; r $ i $ j represents the element in the ith row and jth column of the rotation matrix R; symbol & represents converting a natural number type to a real number type;
a homogeneous matrix T ofThat is, when i is equal to N +1, the element in the homogeneous matrix T is 0, when i is equal to N +1 and j is equal to N +1, the element in the homogeneous matrix T is 1, and when i is equal to N +1 and j is equal to N +1, the element in the homogeneous matrix T is x and the other elements are R;
definition 3: the formalization of a generic matrix of homogeneous matrix evolution in a theorem prover is described as follows:
val homo_trans_tangent x R=lambda i j.
if i=(dimindex(:N)+1)then&0
else if~(i=dimindex(:N)+1)/\(j=dimindex(:N)+1)then x$i
else R$i$j
in the theorem prover, the input variables of the homo _ trans _ tangent are an N-dimensional vector x and an N-dimensional rotation matrix R, and the output is an N + 1-dimensional matrix;
the general matrix isThat is, when i ≠ N +1, the element in the universal matrix is 0, and when i ≠ N +1 and j ≠ N +1, the element in the universal matrix is x, and the other elements are R.
Further, inputting the content of the formally described rotation quantity theory into a theorem prover for proving to obtain theorems 1, 2 and 3, wherein the theorem comprises the following steps:
theorem 1 is obtained by proving that the mathematical form of the motion vector is the same as the mathematical form of the universal matrix evolved by the homogeneous matrix based on definition 1 and definition 3 in a theorem prover;
the exponential expression of the motion rotation when the dexterous hand of the three-finger robot only translates is formally described in a theorem prover as follows:
a.FST s=vec 0==>matrix_exp(a%%screw_2_matrix s)=homo_trans(a%(SND s))(mat 1)
wherein a is a real number, represents a rotation angle theta, and has a value range of [0, 2 pi ]; the function matrix _ exp represents an exponential function matrix _ exp on a matrix domain, an input variable a%% screen _2_ matrix s of the function matrix _ exp is a 3+ 1-order matrix, an output result of the function matrix _ exp is the exponential mapping of the matrix, and the type is a 3-order matrix; the mat is a high-order logic function defined in a theorem prover, an input variable of the high-order logic function is a natural number, a return type is an n-order real matrix, a return value of the mat is a matrix with diagonal angles as real numbers corresponding to the input variable, and an identity matrix can be represented by mat 1; the symbol ═ represents a deduction; the symbol "%" represents a scalar product symbol of a vector; the symbol "%" represents a scalar product symbol of the matrix;
based on the formalized description of definition 3, proving a process of equality of both sides of the equation of the above formalized description in a theorem prover to obtain theorem 2;
the exponential expression of the motion rotation of the dexterous hand of the three-finger robot during translation and rotation is formally described in a theorem prover as follows:
a.norm(FST s)=&1==>matrix_exp(a%%screw_2_matrix s)=homo_trans((mat 1-matrix_exp(a%%vec3_2_ssm(FST s)))**((FST s)cross(SND s))+a%(vec3_vtrans(FST s)**(SND s)))(matrix_exp(a%%vec3_2_ssm(FST s)))
wherein vec3_ vtrans represents a transpose of a matrix; norm is a high-order logic function defined in a theorem prover, the input variable of the high-order logic function is an N-dimensional vector, the return type is a real number, and the output result is the norm of the N-dimensional vector, namely the length value of the vector; symbol & represents converting a natural number type to a real number type; the symbol "+" represents a vector-by-symbol that multiplies a vector;
based on the formalized description of definition 3, a process of proving equality relationships on both sides of the equation of the above formalized description in a theorem prover to obtain theorem 3.
Further, inputting formally described caden-Kahan subproblem 1, caden-Kahan subproblem 2 and caden-Kahan subproblem 3 into the theorem prover for proving, theorem 4, theorem 5 and theorem 6 are obtained, including:
the theorem prover formally describes the Pasen-Kahan subproblem 1 and proves the solution of the Pasen-Kahan subproblem 1 to obtain theorem 4; among them, the Paden-Kahan subproblem 1 is formally described in theorem provers as follows:
w r u u′v v′p q s a.
(--(pi/&2)<a∧a<pi/&2)/\s=(w,r cross w)/\norm w=&1/\u=p-r∧v=q-r/\u′=u-(vec3_vtrans(FST s)**u)/\v′=v-(vec3_vtrans(FST s)**v)/\matrix_exp(a%%screw_2_matrix s)**(homo_point(mk_point r))=(homo_point(mk_point r))/\matrix_exp(a%%screw_2_matrix s)**(homo_point(mk_point p))=(homo_point(mk_point q))/\~(u′=vec 0)norm(u′)=norm(v′)/\w dot u=w dot va=atn((w dot(u’cross v′))/(u′dot v′))
wherein w, r, u, u ', v, v', p, q are vectors, w represents the rotation axis, u ', v' are projections of the vectors u, v, respectively; s is the number of revolutions of movement; a is a real number and represents a rotation angle theta in the range of [ -pi/2, pi/2 ]; r is a point on the rotating shaft and satisfies the principle of position invariance; homo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the curl; vec 0 represents a0 vector; dot represents a dot product of the vector; cross represents cross multiplication of the vector;
the process of inputting the formal description of the Pasen-Kahan subproblem 1 into the theorem prover and proving to obtain the solution of the Pasen-Kahan subproblem 1 comprises the following steps:
import sub-targetAnd proving the establishment of the sub-targets in a theorem prover;
and adding the sub-targets after the verification is established into a hypothesis list, and verifying the solution of the Pasen-Kahan subproblem 1 by using a theorem prover to obtain theorem 4.
Further, inputting formally described caden-Kahan subproblem 1, caden-Kahan subproblem 2 and caden-Kahan subproblem 3 into the theorem prover for proving, theorem 4, theorem 5 and theorem 6 are obtained, including:
the theorem prover formally describes the Pasen-Kahan subproblem 2 and proves the solution of the Pasen-Kahan subproblem 1 to obtain theorem 5;
among them, the Paden-Kahan subproblem 2 is formally described in theorem provers as follows:
w1 w2 r u u'v v'p q c z a a1 a2 x1 x2 x3 s1 s2.
(--(pi/&2)<a/\a<pi/&2)/\
(--(pi/&2)<a1/\a1<pi/&2)/\
(--(pi/&2)<a2/\a2<pi/&2)/\
s1=(w1,r cross(w1))/\s2=(w2,r cross(w2))/\
norm w1=&1/\norm w2=&1/\u=p-r/\v=q-r/\z=c-r/\
u'=u-(vec3_vtrans(FST s2)**u)/\
v'=v-(vec3_vtrans(FST s1)**v)/\
z=x1%w1+x2%w2+x3%(w1 cross w2)/\(norm z)pow 2=x1 pow 2+x2 pow 2+(&2*x1*x2)*(w1 dot w2)+(x3pow 2)*(norm(w1 cross w2))pow 2/\~((norm(w1 cross w2))pow 2=&0)/\~((w1 dot w2)pow 2-&1=&0)/\
matrix_exp(a1%%screw_2_matrix s1)**(homo_point(mk_point r))=(homo_point(mk_point r))/\
matrix_exp((--a1)%%screw_2_matrix s1)**(homo_point(mk_point r))=(homo_point(mk_point r))/\
matrix_exp(a2%%screw_2_matrix s2)**(homo_point(mk_point r))=(homo_point(mk_point r))/\
matrix_exp(a2%%screw_2_matrix s2)**(homo_point(mk_point p))=(homo_point(mk_point c))/\
matrix_exp((--a1)%%screw_2_matrix s1)**(homo_point(mk_point q))=(homo_point(mk_point c))/\
matrix_exp(a1%%screw_2_matrix s1)**matrix_exp(a2%%screw_2_matrix s2)**(homo_point(mk_point p))=(homo_point(mk_point q))/\
a=a1+a2/\~(u'=vec 0)/\~(v'=vec 0)==>((&0<=x3)==>(a=--atn((w1 dot(v'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(v'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))+atn((w2 dot(u'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(u'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))))/\
((x3<&0)==>(a=--atn((w1 dot(v'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(v'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))+atn((w2 dot(u'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(u'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))))
wherein w1, w2, r, u, u ', v, v', p, q, c, z are vectors, w1 and w2 represent the first and second axes of rotation about which the three-finger robotic dexterous hand rotates, respectively, and u ', v' are projections of the vectors u, v, respectively; s1 and s2 are the rotation amount of the first rotation axis and the rotation amount of the second rotation axis, respectively; a. a1 and a2 are real numbers and indicate rotation angles theta and theta1And theta2In the range of [ - π/2, π/2](ii) a x1, x2, and x3 are real numbers, are custom variables; r is a point on the rotating shaft and satisfies the principle of position invariance; homo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the curl; vec 0 represents a0 vector. dot represents a dot product of the vector; cross represents the cross product of the vector.
Further, inputting formally described caden-Kahan subproblem 1, caden-Kahan subproblem 2 and caden-Kahan subproblem 3 into the theorem prover for proving, theorem 4, theorem 5 and theorem 6 are obtained, including:
the theorem prover formally describes the Pasen-Kahan subproblem 3 and proves the solution of the Pasen-Kahan subproblem 3 to obtain theorem 6;
among them, the Paden-Kahan subproblem 3 is formally described in theorem provers as follows:
w r u u′v v′p q s d a a0c d′.
((--(pi/&2)<a0/\a0<pi/&2)/\(--(pi/&2)<a/\a<pi/&2)/\&0<=(abs c)/\(abs c)<=pi/\s=(w,r cross w)/\norm w=&1/\u=p-r/\v=q-r/\c=a0-a/\u′=u-(vec3_vtrans(FST s)**u)/\v′=v-(vec3_vtrans(FST s)**v)/\
matrix_exp(a0%%screw_2_matrix s)**(homo_point(mk_point r))=(homo_point(mk_point r))/\
matrix_exp(a0%%screw_2_matrix s)**(homo_point(mk_point p))=(homo_point(mk_point q))/\~(u′=vec 0)/\~(v′=vec 0))/\
(d)pow 2=(norm(v-matrix_exp(a%%vec3_2_ssm w)**u))pow 2/\
(d′)pow 2=(d)pow 2-(abs(w dot(p-q)))pow 2==>
(&0<=c==>a=a0-acs(((norm(u′))pow 2+(norm(v′))pow 2-(d′pow 2))/
(&2*(norm(u′))*(norm(v′)))))/\
(c<&0==>a=a0+acs(((norm(u′))pow 2+(norm(v′))pow 2-(d′pow 2))/
(&2*(norm(u′))*(norm(v′)))))
wherein w, r, u, u ', v, v', p, q are vectors, w represents the rotation axis, u ', v' are projections of the vectors u, v, respectively; r is a point on the rotating shaft and meets the principle of position invariance; s is the number of revolutions of movement; a and a0 are real numbers representing angles of rotation in the range [ - π/2, π/2 ]; d is a real number representing the distance from point p to point q after rotation about the axis of rotation; d' is the projection of d on a plane; c is the difference of a real number representing a 0-a; homo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the motion vector; vec 0 represents a0 vector. dot represents a dot product of the vector; cross represents the cross product of the vector.
Further, verifying the kinematic solution problem of the three-finger robot dexterous hand using the theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, Paden-Kahan subproblem 1, Paden-Kahan subproblem 2, and Paden-Kahan subproblem 3 formally described, comprises:
the forward kinematics of the index finger of the dexterous three-finger robot hand is formally described in a theorem prover as follows:
gst_a a1 s1 a2 s2 a3 s3 a4 s4 x=
matrix_exp(a1%%screw_2_matrix s1)**
matrix_exp(a2%%screw_2_matrix s2)**
matrix_exp(a3%%screw_2_matrix s3)**
matrix_exp(a4%%screw_2_matrix s4)**(gst_initial x)
wherein s1, s2, s3 and s4 are respectively the motion rotation amounts of the first to the fourth joints of the index finger of the dexterous three-finger robot handAnda1, a2, a3 and a4 represent rotation angles theta of the first to fourth joints of the index finger of the dexterous three-finger robot hand, respectively1、θ2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; the input variable of gst _ initial x is vector x, x represents the three-dimensional coordinate of the initial pose, and the output is homogeneous matrix representing the initial pose gst(0) (ii) a gst _ a represents the position of the index finger of the dexterous hand of the three-finger robot after movement;
the motion process of the rigid body transformation of the index finger of the dexterous three-finger robot hand from the second joint to the end effector is formally described in a theorem prover as follows:
g_1 a2 s2 a3 s3 a4 s4=matrix_exp(a2%%screw_2_matrix s2)**
matrix_exp(a3%%screw_2_matrix s3)**
matrix_exp(a4%%screw_2_matrix s4)
wherein s2, s3 and s4 are respectively the motion rotation amounts of the second to the fourth joints of the index finger of the dexterous hand of the three-finger robotAnda2, a3 and a4 represent the rotation angles theta of the second to fourth joints in the index finger motion of the dexterous three-finger robot hand respectively2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl;
verifying algebraic operations of a course of motion of a rigid body transformation of an index finger of the dexterous three-finger robot hand from a first joint to an end effector in a theorem prover, the verification being formally described in the theorem prover as follows:
a1a2 a3 a4 s1 s2 s3 s4 x gd.
gst_a a1 s1 a2 s2 a3 s3 a4 s4 x=gd==>
matrix_exp(--(a1)%%screw_2_matrix s1)**gd**(matrix_inv(gst_initial x))=(g_1a2 s2 a3 s3 a4 s4)
wherein s1, s2, s3 and s4 are respectively the motion rotation amounts of the first joint to the fourth joint of the index finger of the dexterous hand with three fingersAnda1, a2, a3 and a4 represent rotation angles θ of the first to fourth joints of the index finger in the motion of the dexterous three-finger robot hand, respectively1、θ2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the motion vector; gd is defined as the course of motion of the rigid body transformation of the index finger of the dexterous three-finger robot hand from the first joint to the end effector; matrix _ inv represents the inverse of the matrix; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing the initial pose g of the index finger of the dexterous hand of the three-finger robotst(0)。
Further, verifying the kinematics of the three-finger robot dexterous hand using the theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, caden-Kahan subproblem 1, caden-Kahan subproblem 2, and caden-Kahan subproblem 3 formally described, further comprises:
verifying algebraic operations of a motion process of rigid body transformation of the index finger of the dexterous three-finger robot hand from the second joint to the end effector in a theorem prover, the verification process being formally described as follows:
θ2θ3θ4s2s3 s4.
matrix_exp(θ2%%screw_2_matrix s2)=
(g_1a2 s2 a3 s3 a4 s4)**matrix_exp(--θ4%%screw_2_matrix s4)**
matrix_exp(--θ3%%screw_2_matrix s3)
wherein s2, s3 and s4 are respectively the motion rotation amounts of the second to the fourth joints of the index finger of the dexterous hand of the three-finger robotAnda2, a3 and a4 represent the rotation angles theta of the second to fourth joints of the index finger in the motion of the dexterous three-finger robot hand respectively2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; and/or the presence of a gas in the gas,
verifying the rotation angle theta of the first joint of the index finger of the dexterous three-finger robot hand in a theorem prover1The verification process is described formally as follows:
a1a2 a3 a4 h1 h2 h3 h4 px py.
px=cos(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4))/\
py=sin(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4))/\
a1=atn((cos(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4)))/
(sin(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4))))==>
a1=atn(px/py)
wherein px and py are real numbers and respectively represent x-axis components and y-axis components of a three-dimensional vector of a first joint position of an index finger of the dexterous three-finger robot hand; a1, a2, a3 and a4 are real numbers representing the rotation angles theta of the first to fourth joints of the index finger in the motion of the dexterous hand with three fingers1、θ2、θ3And theta4(ii) a h1, h2, h3 and h4 are real numbers representing distances between second to fourth joint angles of the index finger of the three-finger robot dexterous hand, respectively; and/or the presence of a gas in the gas,
verifying the rotation angle theta of the third joint of the index finger of the dexterous three-finger robot hand in a theorem prover3The verification process is described formally as follows:
p q s2s3 s4 a2 a3 a4.
(matrix_exp((a2)%%screw_2_matrix s2)**(homo_point(mk_point p))=(homo_point(mk_point p))/\matrix_exp(a2%%screw_2_matrix s2)**(matrix_exp(a3%%screw_2_matrix s3)**(homo_point(mk_point q))-(homo_point(mk_point p)))=matrix_exp(a3%%screw_2_matrix s3)**(homo_point(mk_point q))-(homo_point(mk_point p))/\
matrix_exp((a4)%%screw_2_matrix s4)**(homo_point(mk_point q))=(homo_point(mk_point q)))==>
norm(matrix_exp(a3%%screw_2_matrix s3)**
(homo_point(mk_point q))-(homo_point(mk_point p)))=
norm(g_1a2 s2 a3 s3 a4 s4**(homo_point(mk_point q))–
(homo_point(mk_point p)))
wherein p and q areVectors respectively representing one point on a second joint axis of an index finger of the dexterous hand of the three-finger robot and one point on a fourth joint axis; a2, a3 and a4 are real numbers representing the rotation angle theta of the second to fourth joints of the index finger of the dexterous three-finger robot hand2、θ3And theta4(ii) a s2, s3 and s4 are respectively the motion rotation amounts of the second to the fourth joints of the index finger of the dexterous three-finger robot handAndhomo _ point represents a homogeneous point; and/or the presence of a gas in the gas,
verifying the rotation angle theta of the second joint of the index finger of the dexterous three-finger robot hand in a theorem prover2The verification process is described formally as follows:
a2a3 a4 s2 s3 s4 p'g2.
g2=(g_1a2 s2 a3 s3 a4 s4)**matrix_exp(--(a4)%%screw_2_matrix s4)**matrix_exp(--(a3)%%screw_2_matrix s3)==>
matrix_exp(a2%%screw_2_matrix s2)**homo_point(mk_point p')=g2**homo_point(mk_point p')
wherein p' is a vector and represents a point outside a second joint axis of the index finger of the dexterous three-finger robot hand; a2, a3 and a4 are real numbers representing the rotation angle theta of the second to fourth joints of the index finger of the dexterous three-finger robot hand2、θ3And theta4(ii) a s2, s3 and s4 are respectively the motion rotation amounts of the second to the fourth joints of the index finger of the dexterous three-finger robot handAndhomo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the motion vector.
Further, verifying the kinematics of the three-finger robot dexterous hand using the theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, caden-Kahan subproblem 1, caden-Kahan subproblem 2, and caden-Kahan subproblem 3 formally described comprises:
defining the forward kinematics of the thumb of the dexterous three-finger robot hand in a theorem prover, the formalization of the definition being described as follows:
ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x=
matrix_exp(a1%%screw_2_matrix s1)**
matrix_exp(a2%%screw_2_matrix s2)**
matrix_exp(a3%%screw_2_matrix s3)**
matrix_exp(a4%%screw_2_matrix s4)**
matrix_exp(a5%%screw_2_matrix s5)**(gst_initial x)
wherein s1, s2, s3, s4 and s5 are respectively the motion rotation amounts of the first joint to the fifth joint of the thumb of the dexterous hand with three fingersAndθ1、θ2、θ3、θ4and theta5Is the rotation angle of the first to fifth joints in the thumb movement of the dexterous hand of the three-finger robot; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the motion vector; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing initial pose gst(0);
Verifying the fifth joint angle theta of the thumb of the dexterous three-finger robot hand in a theorem prover5The formalization of the verification process in the theorem prover is described as follows:
h2a1 a2 a3 a4 a5 s1 s2 s3 s4 s5 g_d pw q.
((matrix_exp((a1)%%screw_2_matrix s1)**
matrix_exp((a2)%%screw_2_matrix s2))**((homo_point(mk_point pw))-(homo_point(mk_point q)))=(homo_point(mk_point pw))-(homo_point(mk_point q))/\matrix_exp((a3)%%screw_2_matrix s3)**matrix_exp((a4)%%screw_2_matrix s4)**(homo_point(mk_point pw))=(homo_point(mk_point pw))/\matrix_exp((a1)%%screw_2_matrix s1)**matrix_exp((a2)%%screw_2_matrix s2)**(homo_point(mk_point q))=(homo_point(mk_point q))/\g_d=ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x)==>norm((homo_point(mk_point pw))-(homo_point(mk_point q)))=norm(g_d**(matrix_inv(gst_initial x))**matrix_exp(--a5%%screw_2_matrix s5)**(homo_point(mk_point pw))-(homo_point(mk_point q)))
wherein pw and q are vectors and represent the intersection point of the third joint axis and the fourth joint axis and the intersection point of the first joint axis and the second joint axis of the thumb of the dexterous three-finger robot hand; h2 is a real number; s1, s2, s3, s4 and s5 are respectively the motion rotation amounts of the first joint to the fifth joint of the thumb of the dexterous three-finger robot handAndθ1、θ2、θ3、θ4and theta5The rotation angles of the first joint to the fifth joint of the thumb in the motion of the dexterous hand of the three-finger robot; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the motion vector; homo _ point represents a homogeneous point; g _ d is defined as the course of motion of the rigid body transformation of the thumb of the dexterous three-finger robot hand from the first joint to the end effector; the input variable of the gst _ initial x is a vector x, the output is a homogeneous matrix, and the matrix represents the initial pose g of the thumb of the dexterous hand of the three-finger robotst(0) (ii) a And/or the presence of a gas in the gas,
verifying thumb first of the dexterous three-finger robot hand in a theorem proverAnd a second joint angle theta1And theta2The formalization of the verification process in the theorem prover is described as follows:s1s2 s3 s4 s5 a1 a2 a3 a4 a5 pw x g_d.
(g_d=ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x/\
matrix_exp((a3)%%screw_2_matrix s3)**
matrix_exp((a4)%%screw_2_matrix s4)**
(homo_point(mk_point pw))=(homo_point(mk_point pw))/\
ga_2=g_d**(matrix_inv(gst_initial x))**
matrix_exp(--(a5)%%screw_2_matrix s5)**
(homo_point(mk_point pw)))==>
matrix_exp((a1)%%screw_2_matrix s1)**
matrix_exp((a2)%%screw_2_matrix s2)**
(homo_point(mk_point pw))=ga_2
wherein pw is a vector and represents the intersection point of the third joint axis and the fourth joint axis of the thumb of the dexterous three-finger robot hand; s1, s2, s3, s4 and s5 are respectively the motion rotation amounts of the first joint to the fifth joint of the thumb of the dexterous three-finger robot handAndθ1、θ2、θ3、θ4and theta5The rotation angles of the first joint to the fifth joint of the thumb in the motion of the dexterous hand of the three-finger robot; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; homo _ point represents a homogeneous point; g _ d is defined as the course of motion of the rigid body transformation of the thumb of the dexterous three-finger robot hand from the first joint to the end effector; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, generationInitial pose g of watchst(0) (ii) a And/or the presence of a gas in the gas,
verifying the third and fourth joint angles theta of the thumbs of the three-finger robot dexterous hand in a theorem prover3And theta4The formalization of the verification process in the theorem prover is described as follows:
s1 s2 s3 s4 s5 a1 a2 a3 a4 a5 p q x g_d.
(g_d=ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x/\
q=matrix_exp(--(a2)%%screw_2_matrix s2)**
matrix_exp(--(a1)%%screw_2_matrix s1)**g_d**
(matrix_inv(gst_initial x))**matrix_exp(--(a5)%%screw_2_matrix s5)**(homo_point(mk_point p)))==>
matrix_exp(a3%%screw_2_matrix s3)**
matrix_exp(a4)%%screw_2_matrix s4)**(homo_point(mk_point p))=q
wherein p and q are vectors and represent the intersection points of the third joint axis and the outer point of the fourth joint axis of the thumb of the dexterous three-finger robot hand and the first joint axis and the second joint axis; s1, s2, s3, s4 and s5 are respectively the motion rotation amounts of the first joint to the fifth joint of the thumb of the dexterous three-finger robot handAndθ1、θ2、θ3、θ4and theta5The rotation angles of the first joint to the fifth joint of the thumb in the motion of the dexterous hand of the three-finger robot; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the motion vector; homo _ point represents a homogeneous point; g _ d is defined as the course of motion of the rigid body transformation of the thumb of the dexterous three-finger robot hand from the first joint to the end effector; input of gst _ initial xThe input variable is vector x, the output is homogeneous matrix and represents initial pose gst(0)。
In a second aspect, embodiments of the present disclosure provide an electronic device, including a memory and a processor; wherein the memory is configured to store one or more computer instructions, wherein the one or more computer instructions are executed by the processor to implement the method of the first aspect.
In a third aspect, the disclosed embodiments provide a computer-readable storage medium for storing computer instructions for a secure authentication apparatus for an enterprise account, which includes computer instructions for performing the method of the first aspect.
The technical scheme provided by the embodiment of the disclosure can have the following beneficial effects:
according to the embodiment of the disclosure, the kinematics of the three-finger robot dexterous hand is modeled in the theorem demonstrator, and then the relevant definitions and theorems are verified in the theorem demonstrator, so that the problem is solved by using the proven definitions and theorems to verify the kinematics of the three-finger robot dexterous hand, the completeness verification means of the three-finger robot dexterous hand can be realized, and the requirement of the robot system on safety can be met.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure.
Drawings
Other features, objects, and advantages of the present disclosure will become more apparent from the following detailed description of non-limiting embodiments when taken in conjunction with the accompanying drawings. In the drawings:
FIG. 1 shows a flow diagram of a formal verification method of inverse kinematics of a three-finger robotic dexterous hand according to an embodiment of the present disclosure;
FIG. 2 shows a schematic diagram of the Pasen-Kahan subproblem 1 in accordance with one embodiment of the present disclosure;
FIG. 3 shows a schematic projection diagram of the Pasen-Kahan subproblem 1 in accordance with one embodiment of the present disclosure;
FIG. 4 shows a schematic diagram of the Pasen-Kahan subproblem 2 in accordance with one embodiment of the present disclosure;
FIG. 5 shows a schematic diagram of the Pasen-Kahan subproblem 3 in accordance with one embodiment of the present disclosure;
FIG. 6 shows a schematic projection diagram of the Pasen-Kahan subproblem 3 in accordance with one embodiment of the present disclosure;
FIG. 7 shows a schematic structural diagram of a three-finger robotic dexterous hand according to an embodiment of the present disclosure;
FIG. 8 illustrates a schematic diagram of a kinematic model of an index finger of a dexterous three-finger robot hand according to an embodiment of the present disclosure;
FIG. 9 illustrates a schematic diagram of a kinematic model of a thumb of a dexterous three-finger robot hand according to an embodiment of the present disclosure;
fig. 10 is a schematic structural diagram of an electronic device suitable for implementing a formal verification method for dexterous hand inverse kinematics of a three-finger robot according to an embodiment of the present disclosure.
Detailed Description
Hereinafter, exemplary embodiments of the present disclosure will be described in detail with reference to the accompanying drawings so that those skilled in the art can easily implement them. Also, for the sake of clarity, parts not relevant to the description of the exemplary embodiments are omitted in the drawings.
In the present disclosure, it is to be understood that terms such as "including" or "having," etc., are intended to indicate the presence of the disclosed features, numbers, steps, behaviors, components, parts, or combinations thereof, and are not intended to preclude the possibility that one or more other features, numbers, steps, behaviors, components, parts, or combinations thereof may be present or added.
It should be further noted that the embodiments and features of the embodiments in the present disclosure may be combined with each other without conflict. The present disclosure will be described in detail below with reference to the accompanying drawings in conjunction with embodiments.
Fig. 1 shows a flow diagram of a formal verification method for the inverse kinematics of a three-finger robotic dexterous hand according to an embodiment of the present disclosure. As shown in fig. 1, the formal verification method for the dexterous hand inverse kinematics of the three-finger robot comprises the following steps:
in step S101, the content of the description momentum theory is formalized; the formalized described momentum theory content at least comprises an operator for defining the momentum, a homogeneous matrix and a general matrix evolved by the homogeneous matrix;
in step S102, inputting the content of the formally described rotation theory into a theorem prover for proving, and obtaining theorem 1, theorem 2 and theorem 3; wherein theorem 1 is a matrix expression of motion vector, and theorem 2 is an exponential expression of motion vector when the dexterous hand of the three-finger robot only translates; theorem 3 is an exponential expression of the motion momentum of the dexterous hand of the three-finger robot during translation and rotation;
in step S103, the Pasen-Kahan subproblem 1, the Pasen-Kahan subproblem 2, and the Pasen-Kahan subproblem 3 are formally described;
in step S104, inputting formally described caden-Kahan subproblem 1, caden-Kahan subproblem 2 and caden-Kahan subproblem 3 into the theorem prover for proving, and obtaining theorem 4, theorem 5 and theorem 6; wherein, theorem 4, theorem 5 and theorem 6 are respectively the solutions of the Pasen-Kahan subproblem 1, the Pasen-Kahan subproblem 2 and the Pasen-Kahan subproblem 3;
in step S105, the kinematic solution problem of the dexterous hand of the three-finger robot is verified using the formally described theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, Paden-Kahan subproblem 1, Paden-Kahan subproblem 2, and Paden-Kahan subproblem 3.
In this embodiment, in order to verify the dexterous hand inverse kinematics of the three-finger robot, firstly, the content of the robot rotation theory is described formally, and specifically, the description includes an operator defining the rotation, a secondary matrix and a universal matrix for homogeneous matrix evolution.
Definition 1: operator of motion vector
The spin of motion, the livingi element, describes the infinitesimal amount of spiral motion, expressed as follows:
ξ=(ω;υ)
in the formula, xi is the momentum of movementIs the linear velocity of translation, ω is the angular velocity of rotation,is an antisymmetric matrix corresponding to ω.
Wherein the operator of the rotation is used for converting the coordinate representation xi into the motion rotationThe formalization in the theorem prover is described as follows:
val screw_2_matrix s=lambda i j.if i<=3/\j<=3then(vec3_2_ssm(FST s))$i$j else if i<=3/\j=4then(SND s)$i else&0
in the theorem proving device, the motion rotation quantity is expressed by s, FST s is expressed by the rotation angular speed omega, and the rotation angular speed is the first component of the rotation quantity s; SND s represents the linear velocity upsilon of the translation and is the second component of the rotation quantity s; the input variables of the function screen _2_ matrix are the motion vectors s, i, j denote the labels of the elements in the matrix, i denotes the rows, j denotes the columns, and the output is a 3+1 dimensional matrix. vec3_2_ ssm represents an inverse symmetric matrix transformation function.
Definition 1 above formally describes equation (1),is a3 x3 matrix, when i is less than or equal to 3 and j is less than or equal to 3, the elements in the momentum s areWhen j is 4, it is denoted by ν, and the other elements are 0.
Definition 2: homogeneous matrix
To describe the pose of the spatial rigid body, assuming { S } and { T } are an inertial coordinate system and a tool coordinate system, respectively, where { T } is fixed to the rigid body, the set of pose mappings for the rigid body relative to the inertial coordinate system { S } can be represented by a set of mappings for the tool coordinate system { T } relative to the inertial coordinate system { S }:
in the formula, SE (3) is a special Euclidean group, i.e., a plum group, R is a rotation matrix of 3 × 3, P is a position vector, and SO (3) is a special orthogonal group. In the embodiment of the present disclosure, the rigid body refers to one or more of the three-finger robot dexterous hand, the index finger of the three-finger robot dexterous hand, and the thumb of the three-finger robot dexterous hand.
Wherein, the homogeneous matrix T epsilon SE (3) meets the property of the lie group, and the formalization in the theorem prover is described as follows:
val homo_trans x R=lambda i j.
if i=(dimindex(:N)+1)/\∧~(j=dimindex(:N)+1)then&0
else if(i=dimindex(:N)+1)/\∧(j=dimindex(:N)+1)then&1
else if~(i=dimindex(:N)+1)/\(j=dimindex(:N)+1)then x$i
else R$i$j
in the theorem prover, the input of the homo _ trans is the variable of an N-dimensional vector x and an N-dimensional rotation matrix R, and the output is an N + 1-dimensional matrix; dimindex in theorem prover HOL-Light represents the dimension of the matrix; x $ i represents the ith component of vector x; r $ i $ j represents the element in the ith row and jth column of the rotation matrix R; the sign & denote converts a natural number type into a real number type.
Definition 2 above formally describes equation (2) with a homogeneous matrix T ofThat is, when i is equal to N +1, the element in the homogeneous matrix T is 0, when i is equal to N +1 and j is equal to N +1, the element in the homogeneous matrix T is 1, and when i is equal to N +1 and j is equal to N +1, the element in the homogeneous matrix T is x and the other elements are R;
definition 3: the formalization of a generic matrix of homogeneous matrix evolution in a theorem prover is described as follows:
val homo_trans_tangent x R=lambda i j.
if i=(dimindex(:N)+1)then&0
else if~(i=dimindex(:N)+1)/\(j=dimindex(:N)+1)then x$i
else R$i$j
in the theorem prover, the input variables of the homo _ trans _ tangent are an N-dimensional vector x and an N-dimensional rotation matrix R, and the output is an N + 1-dimensional matrix;
the general matrix isThat is, when i ≠ N +1, the element in the generic matrix is 0, when i ≠ N +1, and j ≠ N +1, the element in the generic matrix is x, and the other elements are R; unlike definition 2, in definition 3, when i ═ N +1 and j ═ N +1, the elements in the universal matrix are 0 instead of 1.
After formalizing the contents of the rotation theory in the theorem prover, proving the contents of the rotation theory in the theorem prover.
Theorem 1: the matrix expression of the kinematic momentum is formally described in a theorem prover as follows:
screw_2_matrix s=homo_trans_tangent(SND s)(vec3_2_ssm(FST s))
the proposition described above indicates that the motion vector s can be converted into a matrix expression. During certification, definition 1 and definition 2 need to be written in, and then the existing theorems in the theorem prover library are used, such as: CART _ EQ, LAMBDA _ BETA, etc. to demonstrate that the two sides of the equation are equal.
Based on the momentum theory, rigid body motion can be expressed in an exponential form by the momentum of motion as:
the above formula shows that: the exponential form of the rigid body motion can have two cases, one is the case that the rotating shaft ω is 0, and the other is the case that the rotating shaft ω is not 0, and the two cases are formally described in theorem provers respectively as follows:
theorem 2: exponential expression of motion vector when rigid body only moves horizontally
The formalization in the theorem prover is described as follows:
a.FST s=vec 0==>matrix_exp(a%%screw_2_matrix s)=homo_trans(a%(SND s))(mat 1)
wherein a is a real number, represents a rotation angle theta, and has a value range of [0, 2 pi ]; the function matrix _ exp represents an exponential function on a matrix domain, an input variable a%% screen _2_ matrix s is a 3+1 order matrix, an output result of the matrix _ exp is the exponential mapping of the matrix, and the type is a3 order matrix; the mat is a high-order logic function defined in the HOL Light, the input variable of the function is a natural number, the return type is an n-order real matrix, the return value of the mat is a matrix with diagonal angles as real numbers corresponding to the input variable, and the unit matrix can be represented by mat 1; the symbol ═ represents a deduction; the symbol "%" represents a scalar product symbol of a vector; the symbol "%" represents a scalar product symbol of the matrix. The condition for this proposition is that if the first component FST s of the rotation s is 0, which corresponds to ω being 0, then the rigid body motion is not rotated at this time, and only translation is performed. When theorem 2 is proved, definition 3 needs to be written in advance, and then the existing theorem in the theorem prover library is used for proving that two sides of the equation of theorem 2 are in an equal relationship.
Theorem 3: exponential expression of motion vector when rigid body is translated and rotated
The formalization in the theorem prover is described as follows:
a.norm(FST s)=&1==>matrix_exp(a%%screw_2_matrix s)=homo_trans((mat 1-matrix_exp(a%%vec3_2_ssm(FST s)))**((FST s)cross(SND s))+a%(vec3_vtrans(FST s)**(SND s)))(matrix_exp(a%%vec3_2_ssm(FST s)))
wherein vec3_ vtrans represents a transpose of a matrix; norm is a high-order logic function defined in HOL Light, the input variable of the function is an N-dimensional vector, the return type is a real number, and the output result is a norm of the N-dimensional vector, namely a length value of the vector; symbol & represents converting a natural number type to a real number type; the symbol "×" represents the vector by symbol of the multiplied vector. The condition for this proposition is that when the first component FST s of the rotation s is not 0, corresponding to ω ≠ 0, the motion of the rigid body includes both translational and rotational motions.
The Paden-Kahan subproblem 1, the Paden-Kahan subproblem 2 and the Paden-Kahan subproblem 3 describe the solving process of the rotation angle of the robot respectively, and the subproblems can be described formally in a theorem prover.
Fig. 2 shows a schematic diagram of the Paden-Kahan subproblem 1 in accordance with an embodiment of the present disclosure. As shown in fig. 2, the Paden-Kahan subproblem 1 describes that a point p is rotated by an angle θ around a fixed axis ξ to a point q, and the problem of the angle θ is solved.
Formally describing the Pasen-Kahan subproblem 1, and inputting the Pasen-Kahan subproblem 1 into a theorem prover to prove that the solution of the Pasen-Kahan subproblem 1 is used as theorem 4;
theorem proves that in the theorem prover, the process of formally modeling the Pasen-Kahan subproblem 1 and obtaining the solution of the Pasen-Kahan subproblem 1 is theorem 4.
The Paden-Kahan subproblem 1 is first explained, and referring to fig. 2, the Paden-Kahan subproblem 1 is described as follows:
a point is rotated about a fixed axis xi by an angle theta. And (3) setting p and q as two spatial points, rotating the point p to the point q around the axis xi, and solving the rotated angle theta. Let r be a point on the axis xi, and define u ═ (p-r) as a vector between r and p, and v ═ q-r as a vector between r and q.
Fig. 3 shows a schematic projection diagram of Paden-Kahan subproblem 1 in accordance with an embodiment of the present disclosure. As shown in fig. 3, u 'and v' are the projections of u and v, respectively, onto a plane perpendicular to the axis of rotation ξ, then
θ=arctan(ωT(u′×v′)/u′Tv′)。
Theorem 4: problem 1 of Paden-Kahan
The formalization in the theorem prover is described as follows:
w r u u′v v′p q s a.
(--(pi/&2)<a∧a<pi/&2)/\s=(w,r cross w)/\norm w=&1/\u=p-r∧v=q-r/\u′=u-(vec3_vtrans(FST s)**u)/\v′=v-(vec3_vtrans(FST s)**v)/\matrix_exp(a%%screw_2_matrix s)**(homo_point(mk_point r))=(homo_point(mk_point r))/\matrix_exp(a%%screw_2_matrix s)**(homo_point(mk_point p))=(homo_point(mk_point q))/\~(u′=vec 0)norm(u′)=norm(v′)/\w dot u=w dot va=atn((w dot(u’cross v′))/(u′dot v′))
wherein w, r, u, u ', v, v', p, q are vectors, w represents the rotation axis, u ', v' are projections of the vectors u, v, respectively; s is the number of revolutions of movement; a is a real number and represents a rotation angle theta in the range of [ -pi/2, pi/2 ]; r is a point on the rotating shaft and meets the principle of position invariance; homo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the curl; vec 0 represents a0 vector. dot represents a dot product of the vector; cross represents the cross product of the vector.
The proposition above shows that when r satisfies the principle of invariant position, and a space point q is obtained from a space point p around an axis rotation angle a, the rotation angle can be obtained by cross multiplication and point multiplication formulas of u 'and v'. The proposition is satisfied under the condition that u 'is not 0, and if u' is 0, infinite points exist, where point p is equal to point r, and both points are on the rotation axis.
According to an embodiment of the present disclosure, the formalization describes the Paden-Kahan subproblem 1 and inputs into a theorem prover to prove that a solution of the Paden-Kahan subproblem 1 is obtained as theorem 4, including:
import sub-targetAnd proving;
and adding the sub-targets into a hypothesis list, and proving by using a theorem prover to obtain a solution of the Pasen-Kahan subproblem 1 as theorem 4.
The proof process of theorem 4 is to introduce necessary preconditions and then deduce the establishment of propositions through logic. The difficulty here is how to formally express the axis of rotation w. In the present disclosure, by introducing sub-targetsAfter proving that theorem 4 is established, the data is added into a hypothesis list for direct use. The establishment of theorem 4 is proved by the rotation axis w implied in the formula, thereby avoiding directly describing the rotation axis w.
Fig. 4 shows a schematic diagram of the Paden-Kahan subproblem 2 in accordance with an embodiment of the present disclosure. As shown in fig. 4, Paden-Kahan subproblem 2 describes a problem of solving the problem of the angle of rotation about the two axes by coinciding a point p rotated by an angle a2 about a given axis s2 and then rotated by an angle a1 about an axis s1 to a point q.
Theorem 5: problem 2 of Paden-Kahan
The formalization in the theorem prover is described as follows:
w1w2 r u u'v v'p q c z a a1 a2 x1 x2 x3 s1 s2.
(--(pi/&2)<a/\a<pi/&2)/\
(--(pi/&2)<a1/\a1<pi/&2)/\
(--(pi/&2)<a2/\a2<pi/&2)/\
s1=(w1,r cross(w1))/\s2=(w2,r cross(w2))/\
norm w1=&1/\norm w2=&1/\u=p-r/\v=q-r/\z=c-r/\
u'=u-(vec3_vtrans(FST s2)**u)/\
v'=v-(vec3_vtrans(FST s1)**v)/\
z=x1%w1+x2%w2+x3%(w1 cross w2)/\
(norm z)pow 2=x1 pow 2+x2 pow 2+(&2*x1*x2)*(w1 dot w2)+(x3 pow 2)*(norm(w1 cross w2))pow 2/\
~((norm(w1 cross w2))pow 2=&0)/\
~((w1 dot w2)pow 2-&1=&0)/\
matrix_exp(a1%%screw_2_matrix s1)**(homo_point(mk_point r))=(homo_point(mk_point r))/\
matrix_exp((--a1)%%screw_2_matrix s1)**(homo_point(mk_point r))=(homo_point(mk_point r))/\
matrix_exp(a2%%screw_2_matrix s2)**(homo_point(mk_point r))=(homo_point(mk_point r))/\
matrix_exp(a2%%screw_2_matrix s2)**(homo_point(mk_point p))=(homo_point(mk_point c))/\
matrix_exp((--a1)%%screw_2_matrix s1)**(homo_point(mk_point q))=(homo_point(mk_point c))/\
matrix_exp(a1%%screw_2_matrix s1)**matrix_exp(a2%%screw_2_matrix s2)**(homo_point(mk_point p))=(homo_point(mk_point q))/\
a=a1+a2/\~(u'=vec 0)/\~(v'=vec 0)==>
((&0<=x3)==>(a=--atn((w1 dot(v'cross
((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(v'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))+atn((w2 dot(u'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(u'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2+sqrt((norm u pow 2-x1 pow 2-x2 pow 2-(&2*x1*x2)*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))))/\
((x3<&0)==>(a=--atn((w1 dot(v'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(v'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w1**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))+atn((w2 dot(u'cross((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))/(u'dot((((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2))-vec3_vtrans w2**(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)%w1+((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1)%w2-sqrt((norm u pow 2-(((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1))pow 2-(((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))pow 2-(&2*((w1 dot w2)*(w2 dot u)-w1 dot v)/((w1 dot w2)pow 2-&1)*((w1 dot w2)*(w1 dot v)-w2 dot u)/((w1 dot w2)pow 2-&1))*(w1 dot w2))/norm(w1 cross w2)pow 2)%(w1 cross w2)))))))
wherein the ratio of w1,w2, r, u, u ', v, v', p, q, c, z are vectors, w1 and w2 represent unit vectors of the first rotation axis s1 and the second rotation axis s2, u ', v' are projections of the vectors u, v, respectively; s1 and s2 are the rotation amount of the first rotating shaft and the rotation amount of the second rotating shaft, respectively; a. a1 and a2 are real numbers and indicate rotation angles theta and theta1And theta2And theta represents theta1And theta2Sum of [ - π/2, π/2](ii) a x1, x2, and x3 are real numbers, are custom variables; r is a point on the rotating shaft and meets the principle of position invariance; homo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the curl; vec 0 represents a0 vector. dot represents a dot product of the vector; cross represents the cross product of the vector.
The formal description of the Paden-Kahan subproblem 2 is entered in the theorem prover and proved to represent movements of a rigid body rotating by a certain angle about two intersecting axes of rotation (s1 and s2), respectively. The problem is essentially to rotate point p about a given axis s2 through angle a2 and then about axis s1 through angle a1 to coincide with point q.
Fig. 5 shows a schematic diagram of the Paden-Kahan subproblem 3 in accordance with an embodiment of the present disclosure. As shown in fig. 5, the Paden-Kahan subproblem 3 describes that the distance from a point q is d after a point p rotates around a rotation axis by a certain angle, and the problem of the rotation angle is solved.
Formally describing the Pasen-Kahan subproblem 3, and inputting the Pasen-Kahan subproblem into a theorem prover to prove that the solution of the Pasen-Kahan subproblem 3 is used as theorem 6;
the Paden-Kahan subproblem 3 is first explained, and referring to fig. 5, the Paden-Kahan subproblem 3 is described as follows:
a point is rotated about a fixed axis xi by an angle theta. And (3) setting p and q as two spatial points, rotating the point p by an angle theta around the shaft xi, then moving delta to the point q to enable the distance between the point p and the point q to be d all the time, and solving the rotated angle theta. Let r be a point on the axis xi, and define u ═ (p-r) as a vector between r and p, and v ═ q-r as a vector between r and q.
Fig. 6 shows a schematic projection diagram of the Paden-Kahan subproblem 3 in accordance with an embodiment of the present disclosure. As shown in FIG. 6, u ', v ', δ ' are the projections of the vectors u, v, δ, respectively, onto a plane perpendicular to the axis of rotation ξ0Is the rotation angle between the point p, the point q and the center of the projection plane of the rotating shaft,is the projection of the point p after a rotation of the point p by an angle theta around the rotation axis xi.
Theorem 6: problem 3 of Paden-Kahan
The formalization in the theorem prover is described as follows:
w r u u′v v′p q s d a a0c d′.
((--(pi/&2)<a0/\a0<pi/&2)/\(--(pi/&2)<a/\a<pi/&2)/\&0<=(abs c)/\(abs c)<=pi/\s=(w,r cross w)/\norm w=&1/\u=p-r/\v=q-r/\c=a0-a/\u′=u-(vec3_vtrans(FST s)**u)/\v′=v-(vec3_vtrans(FST s)**v)/\
matrix_exp(a0%%screw_2_matrix s)**(homo_point(mk_point r))=(homo_point(mk_point r))/\
matrix_exp(a0%%screw_2_matrix s)**(homo_point(mk_point p))=(homo_point(mk_point q))/\~(u′=vec 0)/\~(v′=vec 0))/\(d)pow 2=(norm(v-matrix_exp(a%%vec3_2_ssm w)**u))pow 2/\(d′)pow 2=(d)pow 2-(abs(w dot(p-q)))pow 2==>(&0<=c==>a=a0-acs(((norm(u′))pow 2+(norm(v′))pow 2-(d′pow2))/(&2*(norm(u′))*(norm(v′)))))/\(c<&0==>a=a0+acs(((norm(u′))pow 2+(norm(v′))pow 2-(d′pow2))/(&2*(norm(u′))*(norm(v′)))))
wherein w, r, u, u ', v, v', p, q are vectors, w represents the rotation axis, u ', v' are projections of the vectors u, v, respectively; r is a point on the rotating shaft and meets the principle of position invariance; s is the rotation; a and a0 are real numbers representing angles of rotation in the range [ - π/2, π/2 ]; d is a real number and represents the distance from the point p to the point q after the point p rotates around the axis; d' is the projection of d on a plane; c is the difference of a real number representing a 0-a; homo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the curl; vec 0 represents a0 vector. dot represents a dot product of the vector; cross represents the cross product of the vector.
In step S105, the kinematics of the three-finger robotic dexterous hand may be verified using the above-described formalized description and verified theorem in a theorem prover. The following is a detailed description:
fig. 7 shows a schematic structural diagram of a three-finger robot dexterous hand according to an embodiment of the present disclosure. As shown in fig. 7, the three-fingered robot dexterous hand includes a palm, an index finger, a thumb, and a ring finger. Wherein the thumb comprises a first joint (located at the palm), a second joint and a third joint from the palm to the tip. The index finger includes a first joint (located at the palm), a second joint, a third joint, and a fourth joint from the palm to the tip. In the disclosed embodiments, the kinematics of a three-fingered robotic dexterous hand may include, but are not limited to, index finger inverse kinematics and thumb inverse kinematics.
The following is presented separately for the index finger inverse kinematics and thumb inverse kinematics:
first forefinger inverse kinematics of Shadow dexterous hand
Fig. 8 illustrates a schematic diagram of a kinematic model of an index finger of a dexterous three-finger robot hand according to an embodiment of the present disclosure. As shown in FIG. 8, (x0, y0, z0) represents the values on the x, y and z axes of the index finger's initial coordinate system, (x4, y4) represents the values on the x and y axes of the index finger's end effector, i.e., the fourth joint, θ1、θ2、θ3And theta4The first to fourth joints of the index finger are respectively the rotation angles relative to the initial pose under the current pose. a1, a2, a3 and a4 are the lengths of the links between the adjacent joints of the index finger of the dexterous three-finger robot hand respectively.
According to an embodiment of the present disclosure, the index product formula of the index finger forward kinematics, i.e.
Wherein, gst(0) To an initial pose, gstAnd (theta) is the final pose of the rigid body after rotation or translation under the initial pose.Andthe motion rotation amounts of the first joint to the fourth joint are respectively; theta1、θ2、θ3And theta4The rotation angles of the first joint to the fourth joint of the index finger to be solved relative to the initial pose under the current pose are respectively.
Definition 4 forward kinematics of the index finger
The formalization in the theorem prover is described as follows:
gst_a a1 s1 a2 s2 a3 s3 a4 s4 x=
matrix_exp(a1%%screw_2_matrix s1)**
matrix_exp(a2%%screw_2_matrix s2)**
matrix_exp(a3%%screw_2_matrix s3)**
matrix_exp(a4%%screw_2_matrix s4)**(gst_initial x)
wherein s1, s2, s3 and s4 are respectively the motion rotation amounts of the first to the fourth joints of the index finger of the dexterous three-finger robot handAnda1, a2, a3 and a4 represent rotation angles theta of the first to fourth joints of the index finger of the dexterous three-finger robot hand, respectively1、θ2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; the input variable of gst _ initial x is vector x, x represents the three-dimensional coordinate of the initial pose, and the output is homogeneous matrix representing the initial pose gst(0) (ii) a gst _ a represents the position of the index finger of the dexterous hand of the three-finger robot after movement;
definition 5: motion process of rigid body transformation of index finger from second joint to end effector
The formalization in the theorem prover is described as follows:
g_1a2 s2 a3 s3 a4 s4=matrix_exp(a2%%screw_2_matrix s2)**
matrix_exp(a3%%screw_2_matrix s3)**
matrix_exp(a4%%screw_2_matrix s4)
wherein s2, s3, s4 are the motion rotation amounts of the second to fourth joints respectivelyAnda2, a3, and a4 represent rotation angles θ of the second to fourth joints in robot motion, respectively2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl. Definition 5 describes the motion process of the rigid body transformation of the index finger from the second joint to the end effector.
After the formal description of the definition 4 and the definition 5, the motion process of the index finger can be verified, and theorems 7-11 can be obtained.
Theorem 7: algebraic operation of the course of motion of the rigid body transformation of the index finger from the first joint to the end-effector
The formalization in the theorem prover is described as follows:
a1a2 a3 a4 s1 s2 s3 s4 x gd.
gst_a a1 s1 a2 s2 a3 s3 a4 s4 x=gd==>matrix_exp(--(a1)%%screw_2_matrix s1)**gd**(matrix_inv(gst_initial x))=(g_1a2 s2 a3 s3 a4 s4)
wherein s1, s2, s3 and s4 are respectively the motion rotation amounts of the first joint to the fourth joint of the index fingerAnda1, a2, a3 and a4 represent rotation angles θ of the first to fourth joints, respectively, which are the index finger in the robot motion1、θ2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; gd is defined as the course of motion of the rigid body transformation of the index finger from the first joint to the end effector; matrix _ inv represents the inverse of the matrix; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing the initial pose g of index fingerst(0)。
Theorem 8: algebraic operation of the course of motion of the rigid body transformation of the index finger from the second joint to the end-effector
The formalization in the theorem prover is described as follows:
θ2θ3θ4s2s3 s4.
matrix_exp(θ2%%screw_2_matrix s2)=(g_1a2 s2 a3 s3 a4 s4)**matrix_exp(--θ4%%screw_2_matrix s4)**matrix_exp(--θ3%%screw_2_matrix s3)
wherein s2, s3, s4 are the motion rotation amounts of the second to fourth joints of the index finger respectivelyAnda2, a3 and a4 represent rotation angles theta of the second to fourth joints of the index finger in the robot motion, respectively2、θ3And theta4(ii) a matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl.
According to the formula of forward kinematics of the index finger, the index finger can be obtained
Wherein, ci=cosθi,si=sinθi,i=1,2,3,4,c23=cos(θ2+θ3),s23=sin(θ2+θ3),c234=cos(θ2+θ3+θ4),s234=sin(θ2+θ3+θ4)。
Theorem 9: verifying the rotation angle theta of the first joint of the index finger1
The formalization in the theorem prover is described as follows:
a1a2 a3 a4 h1 h2 h3 h4 px py.
px=cos(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4))/\
py=sin(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4))/\
a1=atn((cos(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4)))/
(sin(a1)*(h1+h2*cos(a2)+h3*cos(a2+a3)+h4*cos(a2+a3+a4))))==>
a1=atn(px/py)
wherein px and py are real numbers and represent x-axis and y-axis components of the three-dimensional vector of the first joint position of the index finger of the dexterous three-finger robot hand; a1, a2, a3 and a4 are real numbers representing the angle of rotation θ1、θ2、θ3And theta4(ii) a h1, h2, h3 and h4 are real numbers representing the distance between the respective joint angles of the index finger, respectively.
Theorem 10: verifying the third joint angle theta of the index finger3
The formalization in the theorem prover is described as follows:
p q s2s3 s4 a2 a3 a4.
(matrix_exp((a2)%%screw_2_matrix s2)**(homo_point(mk_point p))=(homo_point(mk_point p))/\matrix_exp(a2%%screw_2_matrix s2)**(matrix_exp(a3%%screw_2_matrix s3)**(homo_point(mk_point q))-(homo_point(mk_point p)))=matrix_exp(a3%%screw_2_matrix s3)**(homo_point(mk_point q))-(homo_point(mk_point p))/\matrix_exp((a4)%%screw_2_matrix s4)**(homo_point(mk_point q))=(homo_point(mk_point q)))==>norm(matrix_exp(a3%%screw_2_matrix s3)**(homo_point(mk_point q))-(homo_point(mk_point p)))=norm(g_1a2 s2 a3 s3 a4 s4**(homo_point(mk_point q))–(homo_point(mk_point p)))
wherein p and q are vectors and represent one point of a second joint axis of an index finger of the dexterous hand of the three-finger robot and one point on a fourth joint axis; a2, a3, and a4 are real numbers representing the second through fourth key rotation angles θ of the index finger2、θ3And theta4(ii) a s2, s3, s4 are the motion rotation amounts of the second to fourth joints, respectivelyAndhomo _ point represents a homogeneous point. Theorem 10 verifies theta3The solution condition of the Pasen-Kahan subproblem 3 is met, so that the Pasen-Kahan subproblem 3 can be directly used for solving.
Theorem 11: verifying the second joint angle theta of the index finger2
The formalization in the theorem prover is described as follows:
a2a3 a4 s2 s3 s4 p'g2.
g2=(g_1a2 s2 a3 s3 a4 s4)**matrix_exp(--(a4)%%screw_2_matrix s4)**matrix_exp(--(a3)%%screw_2_matrix s3)==>matrix_exp(a2%%screw_2_matrix s2)**homo_point(mk_point p')=g2**homo_point(mk_point p')
wherein p' is a vector and represents a point outside a second joint axis of the index finger of the dexterous three-finger robot hand; a2, a3, and a4 are real numbers,angle theta representing rotation2、θ3And theta4(ii) a s2, s3, s4 are the motion rotation amounts of the second to fourth joints, respectivelyAndhomo _ point represents a homogeneous point; screen _2_ matrix represents an operator of the curl. Theorem 11 verifies theta2The solution condition of the Pasen-Kahan subproblem 1 is met, so that the Pasen-Kahan subproblem 1 can be directly used for solving.
Inverse kinematics of the thumb
Fig. 9 illustrates a schematic diagram of a kinematic model of a thumb of a dexterous three-finger robot hand according to an embodiment of the present disclosure. As shown in FIG. 9, (x0, y0, z0) represents the values on the x, y and z axes of the thumb's initial coordinate system, (x5, y5) represents the values on the x and y axes of the thumb's end-effector, i.e., the fifth joint, θ1、θ2、θ3、θ4And theta5Rotation angles of the first to fifth joints, which are thumbs, respectively, with respect to the initial pose in the current pose. a1, a2, a3 and a4 are the lengths of the connecting rods between the adjacent joints of the thumb of the dexterous three-finger robot hand respectively.
According to an embodiment of the present disclosure, the formula of the exponential product of thumb forward kinematics, i.e.
Wherein, gst(0) To an initial pose, gstAnd (theta) is the final pose of the rigid body after rotation or translation under the initial pose.Andthe motion rotation amounts of the first joint to the fifth joint respectively; theta1、θ2、θ3、θ4And theta5The rotation angles of the first to fifth joints of the index finger to be solved relative to the initial pose under the current pose are respectively.
Definition 6 forward kinematics of thumb
ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x=
matrix_exp(a1%%screw_2_matrix s1)**
matrix_exp(a2%%screw_2_matrix s2)**
matrix_exp(a3%%screw_2_matrix s3)**
matrix_exp(a4%%screw_2_matrix s4)**
matrix_exp(a5%%screw_2_matrix s5)**(gst_initial x)
Wherein s1, s2, s3, s4 and s5 are the motion rotation amounts of the first joint to the fifth joint of the thumb respectivelyAndθ1、θ2、θ3、θ4and theta5Is the rotation angle of each joint in the robot motion; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing initial pose gst(0)。
After the above formal description of definition 6, the motion process of the thumb can be proved in a theorem prover, obtaining the following theorems 12-14:
theorem 12: verifying the fifth joint angle theta of the thumb5
The formalization in the theorem prover is described as follows:
h2a1 a2 a3 a4 a5 s1 s2 s3 s4 s5 g_d pw q.
((matrix_exp((a1)%%screw_2_matrix s1)**
matrix_exp((a2)%%screw_2_matrix s2))**((homo_point(mk_point pw))-(homo_point(mk_point q)))=(homo_point(mk_point pw))-(homo_point(mk_point q))/\matrix_exp((a3)%%screw_2_matrix s3)**matrix_exp((a4)%%screw_2_matrix s4)**(homo_point(mk_point pw))=(homo_point(mk_point pw))/\matrix_exp((a1)%%screw_2_matrix s1)**matrix_exp((a2)%%screw_2_matrix s2)**(homo_point(mk_point q))=(homo_point(mk_point q))/\g_d=ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x)==>norm((homo_point(mk_point pw))-(homo_point(mk_point q)))=norm(g_d**(matrix_inv(gst_initial x))**matrix_exp(--a5%%screw_2_matrix s5)**(homo_point(mk_point pw))-(homo_point(mk_point q)))
wherein pw and q are vectors and represent the intersection point of the third joint axis and the fourth joint axis and the intersection point of the first joint axis and the second joint axis of the thumb of the dexterous three-finger robot hand; h2 is a real number; s1, s2, s3, s4 and s5 are the motion rotation amounts of the first to fifth joints respectivelyAndθ1、θ2、θ3、θ4and theta5Is the rotation angle of the first to fifth joints of the thumb in the robot motion; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; homo _ point represents a homogeneous point; g _ d is defined as the course of motion of the rigid body transformation of the thumb from the first joint to the end effector; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing the initial pose g of thumbst(0)。
Theorem 13: verifying thumb first and second joint angles θ1And theta2
The formalization in the theorem prover is described as follows:
s1s2 s3 s4 s5 a1 a2 a3 a4 a5 pw x g_d.
(g_d=ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x/\
matrix_exp((a3)%%screw_2_matrix s3)**
matrix_exp((a4)%%screw_2_matrix s4)**
(homo_point(mk_point pw))=(homo_point(mk_point pw))/\
ga_2=g_d**(matrix_inv(gst_initial x))**
matrix_exp(--(a5)%%screw_2_matrix s5)**
(homo_point(mk_point pw)))==>
matrix_exp((a1)%%screw_2_matrix s1)**
matrix_exp((a2)%%screw_2_matrix s2)**
(homo_point(mk_point pw))=ga_2
wherein pw is a vector and represents the intersection point of the third joint axis and the fourth joint axis of the thumb of the dexterous three-finger robot hand; s1, s2, s3, s4 and s5 are the motion rotation amounts of the first to fifth joints respectivelyAndθ1、θ2、θ3、θ4and theta5Is the rotation angle of each joint in the robot motion; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; homo _ point represents a homogeneous point; g _ d is defined as the course of motion of the rigid body transformation of the thumb of the dexterous three-finger robot hand from the first joint to the end effector; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing initial pose gst(0). Theorem 13 verifies theta1And theta2The solution condition of the Pasen-Kahan subproblem 2 is met, so that the Pasen-Kahan subproblem 2 can be directly used for solving.
Theorem 14: verifying thumb third and fourth joint angles θ3And theta4
The formalization in the theorem prover is described as follows:
s1s2 s3 s4 s5 a1 a2 a3 a4 a5 p q x g_d.
(g_d=ga a1 s1 a2 s2 a3 s3 a4 s4 a5 s5 x/\
q=matrix_exp(--(a2)%%screw_2_matrix s2)**
matrix_exp(--(a1)%%screw_2_matrix s1)**g_d**
(matrix_inv(gst_initial x))**matrix_exp(--(a5)%%screw_2_matrix s5)**(homo_point(mk_point p)))==>
matrix_exp(a3%%screw_2_matrix s3)**
matrix_exp(a4)%%screw_2_matrix s4)**(homo_point(mk_point p))=q
wherein p and q are vectors and represent the intersection points of the third joint axis and the outer point of the fourth joint axis of the thumb of the dexterous three-finger robot hand and the first joint axis and the second joint axis; s1, s2, s3, s4 and s5 are the motion rotation amounts of the first to fifth joints respectivelyAndθ1、θ2、θ3、θ4and theta5Is the rotation angle of the first to fifth joints of the thumb in the robot motion; matrix _ exp represents an exponential function with e as the base; screen _2_ matrix represents an operator of the curl; homo _ point represents a homogeneous point; g _ d is defined as the course of motion of the rigid body transformation of the thumb from the first joint to the end effector; the input variable of gst _ initial x is vector x, the output is homogeneous matrix, representing initial pose gst(0). Theorem 20 verifies theta3And theta4The solution condition of the Pasen-Kahan subproblem 2 is met, so that the Pasen-Kahan subproblem 2 can be directly used for solving.
The following are embodiments of the disclosed apparatus that may be used to perform embodiments of the disclosed methods.
The three-finger robot dexterous hand inverse kinematics formal verification device according to an embodiment of the present disclosure may be implemented as part or all of an electronic device through software, hardware or a combination of both. The formal verification device for the dexterous hand inverse kinematics of the three-finger robot comprises:
a first formalization module configured to formally describe content of a quantum theory; the formalized described momentum theory content at least comprises an operator for defining the momentum, a homogeneous matrix and a general matrix evolved by the homogeneous matrix;
the second formalization module is configured to input the formally described contents of the rotation theory into the theorem prover for proving, and theorems 1, 2 and 3 are obtained; wherein theorem 1 is a matrix expression of motion vector, and theorem 2 is an exponential expression of motion vector when the dexterous hand of the three-finger robot only translates; theorem 3 is an exponential expression of the motion momentum of the dexterous hand of the three-finger robot during translation and rotation;
a third formalization module configured to formally describe the Paden-Kahan subproblem 1, the Paden-Kahan subproblem 2, and the Paden-Kahan subproblem 3;
a proof module configured to input formally described Paden-Kahan subproblem 1, Paden-Kahan subproblem 2, and Paden-Kahan subproblem 3 into the theorem prover for proof, obtaining theorem 4, theorem 5, and theorem 6; wherein, theorem 4, theorem 5 and theorem 6 are respectively the solutions of the Pasen-Kahan subproblem 1, the Pasen-Kahan subproblem 2 and the Pasen-Kahan subproblem 3;
a verification module configured to verify a kinematic solution problem of the dexterous hand of the three-finger robot using the theorem 1, theorem 2, theorem 3, theorem 4, theorem 5, theorem 6, Pasen-Kahan subproblem 1, Pasen-Kahan subproblem 2, and Pasen-Kahan subproblem 3 described formally.
Fig. 10 is a schematic structural diagram of an electronic device suitable for implementing a formal verification method for the inverse kinematics of a dexterous hand of a three-finger robot according to an embodiment of the present disclosure.
As shown in fig. 10, the electronic apparatus 1000 includes a Central Processing Unit (CPU)1001 that can execute various processes in the embodiments of the above-described method of the present disclosure according to a program stored in a Read Only Memory (ROM)1002 or a program loaded from a storage section 1008 into a Random Access Memory (RAM) 1003. In the RAM1003, various programs and data necessary for the operation of the electronic apparatus 1000 are also stored. The CPU1001, ROM1002, and RAM1003 are connected to each other via a bus 1004. An input/output (I/O) interface 1005 is also connected to bus 1004.
The following components are connected to the I/O interface 1005: an input section 1006 including a keyboard, a mouse, and the like; an output section 1007 including a display such as a Cathode Ray Tube (CRT), a Liquid Crystal Display (LCD), and the like, and a speaker; a storage portion 1008 including a hard disk and the like; and a communication section 1009 including a network interface card such as a LAN card, a modem, or the like. The communication section 1009 performs communication processing via a network such as the internet. The driver 1010 is also connected to the I/O interface 1005 as necessary. A removable medium 1011 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like is mounted on the drive 1010 as necessary, so that a computer program read out therefrom is mounted into the storage section 1008 as necessary.
In particular, according to embodiments of the present disclosure, the methods in the embodiments above with reference to the present disclosure may be implemented as computer software programs. For example, embodiments of the present disclosure include a computer program product comprising a computer program tangibly embodied on a machine-readable medium, the computer program comprising program code for performing methods in embodiments of the present disclosure. In such embodiments, the computer program may be downloaded and installed from a network through the communication section 1009 and/or installed from the removable medium 1011.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a module, a program segment, or a portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The units or modules described in the embodiments of the present disclosure may be implemented by software or hardware. The units or modules described may also be provided in a processor, and the names of the units or modules do not in some cases constitute a limitation of the units or modules themselves.
As another aspect, the present disclosure also provides a computer-readable storage medium, which may be the computer-readable storage medium included in the apparatus in the above-described embodiment; or it may be a separate computer readable storage medium not incorporated into the device. The computer readable storage medium stores one or more programs for use by one or more processors in performing the methods described in the present disclosure.
The foregoing description is only exemplary of the preferred embodiments of the disclosure and is illustrative of the principles of the technology employed. It will be appreciated by those skilled in the art that the scope of the invention in the present disclosure is not limited to the specific combination of the above-mentioned features, but also encompasses other embodiments in which any combination of the above-mentioned features or their equivalents is possible without departing from the inventive concept. For example, the above features and (but not limited to) the features disclosed in this disclosure having similar functions are replaced with each other to form the technical solution.