Control method of robot apparatus and robot apparatus
09579791 ยท 2017-02-28
Assignee
Inventors
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/41387
PHYSICS
International classification
Abstract
A control method of a robot apparatus, the robot apparatus including a link and a pair of actuators, obtaining each driving force command value of each of the actuators, and controlling each of the actuators, the control method including: a torque command value computation step; a change computation step of computing a difference between the joint stiffness command value and a value and performing a computation of subtracting a value from the joint stiffness command value; an iterative step of iterating the computations of the torque command value computation step and the change computation step until the difference converges to a value equal to or smaller than a predetermined value; and a driving force command value computation step to compute each of the driving force command values when the difference is converged to a value equal to or smaller than the predetermined value.
Claims
1. A robot apparatus comprising: a link pivotally connected to a base body via a joint and having an arm; a pair of actuators that generate driving forces for pulling the link in mutually opposite directions relative to the base body; and a control unit configured to control the driving forces of the pair of actuators in accordance with a stiffness command value representing a target stiffness of the link and a torque command value representing a target torque value of the link, wherein the control unit determines, through iterative calculations, a stiffness command value and a torque command value that satisfy a relationship where the stiffness command value is greater than the absolute value of the torque command value divided by a length of the arm.
2. The robot apparatus according to claim 1, wherein the iterative calculations include iterating computations of a torque command value computation process and a change computation process until the difference between the two converges to a value equal to or smaller than a predetermined value, wherein the torque command value computation process includes using a target trajectory, an angular velocity of the target trajectory, an angular acceleration of the target trajectory, and a joint stiffness command value to calculate the torque command value, and wherein the change computation process includes computing a difference between the joint stiffness command value and a first value, which is obtained by dividing an absolute value of the torque command value by a moment arm radius of the link, and performing a computation of subtracting a second value, which is obtained by multiplying the difference between the joint stiffness value and the first value by a coefficient greater than 0 and equal to or smaller than 1, from the joint stiffness command value to change the joint stiffness command value.
3. The robot apparatus according to claim 2, wherein the control unit computes a corrected torque command value for compensating a difference between the angle of the joint and a target trajectory, and in computing a driving force command value for controlling the target driving force, uses a result obtained by adding the corrected torque command value obtained in the corrected torque command value computation process to the torque command value obtained in the torque command value computation process as the torque command value used for the computation of each of the driving force command values.
4. The robot apparatus according to claim 1, wherein the driving forces determined by the control unit in accordance with the stiffness command value and the target stiffness command value are possible minimum values.
5. The robot apparatus according to claim 1, wherein the base body is a pivotable link.
6. The robot apparatus according to claim 5, further comprising two pairs of actuators configured to effect contraction forces on the link and the pivotable link such that they rotate in opposite directions.
7. A method for controlling a robot apparatus comprising a link pivotally connected to a base body via a joint and having an arm, and a pair of actuators that generate driving forces for pulling the link in mutually opposite directions relative to the base body, the method comprising a determining step of determining, through iterative computations, a stiffness command value and a torque command value that satisfy a relationship where the stiffness command value is greater than the absolute value of the torque command value divided by a length of the arm; and a controlling step of controlling the driving forces of the pair of actuators in accordance with the stiffness command value representing a target stiffness of the link and the torque command value representing a target torque value of the link.
8. The method according to claim 7 wherein the iterative calculations include iterating computations of a torque command value computation process and a change computation process until the difference between the two converges to a value equal to or smaller than a predetermined value, wherein the torque command value computation process includes using a target trajectory, an angular velocity of the target trajectory, an angular acceleration of the target trajectory, and a joint stiffness command value to calculate the torque command value, and wherein the change computation process includes computing a difference between the joint stiffness command value and a first value, which is obtained by dividing an absolute value of the torque command value by a moment arm radius of the link, and performing a computation of subtracting a second value, which is obtained by multiplying the difference between the joint stiffness command value and the first value by a coefficient greater than 0 and equal to or smaller than 1, from the joint stiffness command value to change the joint stiffness command value.
9. The method according to claim 8, wherein the controlling step further comprises computing a corrected torque command value for compensating a difference between the angle of the joint and a target trajectory, and in computing a driving force command value for controlling the target driving force, uses a result obtained by adding the corrected torque command value obtained in the corrected torque command value computation process to the torque command value obtained in the torque command value computation process as the torque command value used for the computation of each of the driving force command values.
10. The method according to claim 7, wherein the driving forces determined in accordance with the stiffness command value and the target stiffness command value are possible minimum values.
11. The method according to claim 7, wherein the base body is a pivotable link.
12. The method according to claim 11, wherein said robot apparatus further comprises two pairs of actuators configured to effect contraction forces on the link and the pivotable link such that they rotate in opposite directions.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
DESCRIPTION OF THE EMBODIMENTS
(27) Preferred embodiments of the present invention will now be described in detail in accordance with the accompanying drawings.
First Embodiment
(28)
(29) (1) Modeling
(30) The artificial muscle actuator is an actuator with characteristics similar to characteristics called viscoelasticity of muscle. As illustrated in
{dot over (x)}
(31) An elastic force constant is defined as k, a viscous force constant is defined as b, and muscle contractile force is defined as F. In this case, viscoelasticity characteristics of muscle are modeled as follows.
F=ukuxbu{dot over (x)}(1)
This provides a non-linear element in which elastic force and viscous force of muscle contractile force are proportional to the contractile force u of the force generation element.
(32)
(33) Although the base body includes the base member 103 and the arm member 104 as illustrated in
(34) The actuators e.sub.1 and f.sub.1 are mono-articular muscle actuators. One end is connected to the base member 103 as the base body, and the other end is connected to a base end 101a of the link 101. The actuators e.sub.1 and f.sub.1 are antagonistically arranged to swing the link 101 based on a difference in driving force (contractile force). Therefore, the actuators e.sub.1 and f.sub.1 are symmetrically arranged on both sides of the link 101 across the link 101.
(35) The robot apparatus 100 includes a control unit 150 that sets the driving force of the actuators e.sub.1 and f.sub.1 based on driving force command values to control operation of the link 101.
(36) The actuators e.sub.1 and f.sub.1 are pneumatic artificial muscle actuators illustrated in
(37) The driving force (contractile force) of force generation elements of the antagonistically arranged actuators e.sub.1 and f.sub.1 are defined as u.sub.e1 and u.sub.f1, respectively. An angle of the link 101 relative to the arm member 104, i.e. an angle of the joint 105 is defined as , and inertia moment of the link 101 is defined as I. A moment arm diameter of the link 101, i.e. a length between a pivot center point of the link 101 and a connection point of the actuators e.sub.1 and f.sub.1 at the link 101, is defined as r. The following Formula (2) denotes an equation of motion.
I{umlaut over ()}=(u.sub.f1u.sub.e1)r(u.sub.f1+u.sub.e1)kr.sup.2(u.sub.f1+u.sub.e1)br.sup.2{dot over ()}(2)
(38) It can be recognized that a difference between the contractile force u.sub.e1 and u.sub.f1 in the first term on the right side of Formula (2) provides rotation torque to the joint 105, and a sum of the contractile force u.sub.e1 and u.sub.f1 in the second and third terms on the right side changes the stiffness and the viscosity relative to the joint 105. Therefore, the actuators e.sub.1 and f.sub.1 provide torque to the joint 105 based on the difference in the driving force and provides stiffness to the joint 105 based on the sum of the driving force.
(39) (2) Control System Design
(40) The control unit 150 executes a torque command value computation step 151, a change computation step 152, an iterative process 153 and a driving force command value computation step 155. An object of the present first embodiment is to provide feedforward control input for the execution of the driving force command value computation step 155 of calculating the driving force command values u.sub.e1 and u.sub.f1 to thereby cause the angle of the joint 105 to follow a target trajectory. In this case, feedforward input that minimizes the contractile force (driving force) is calculated. The target trajectory of the joint 105 is defined as r.sub.a. That is, the control unit 150 calculates the driving force command values u.sub.e1 and u.sub.f1 of the actuators e.sub.1 and f.sub.1 necessary to cause the angle of the joint 105 to follow the target trajectory r.sub.a. The control unit 150 controls the actuators e.sub.1 and f.sub.1 to cause the driving force generated in the actuators e.sub.1 and f.sub.1 to be equal to the driving force command values u.sub.e1 and u.sub.f1.
(41) (2.1) Feedforward Control System Design
(42) In this section, a derivation method of the feedforward input provided to the actuators e.sub.1 and f.sub.1 will be described. As described below, the difference between the driving force command values u.sub.e1 and u.sub.f1 multiplied by the moment arm diameter r is defined as T.sub.1, and the joint stiffness command value indicating the sum (total value) of the driving force command values u.sub.e1 and u.sub.f1 is defined as U.sub.1.
(U.sub.f1u.sub.e1)r=T.sub.1(3)
u.sub.f1+u.sub.e1=U.sub.1(4)
(43) Since the artificial muscle actuators e.sub.1 and f.sub.1 generate force only in the contraction direction, the following conditions need to be satisfied at the same time.
u.sub.f1>0,u.sub.e1>0(5)
(44) When Formulas (3) and (4) are assigned to Formula (2), the following can be expressed.
I{umlaut over ()}=T.sub.1U.sub.1kr.sup.2U.sub.1br.sup.2{dot over ()}(6)
(45) It can be recognized that T.sub.1 provides torque to the joint 105 and that U.sub.1 increases or decreases the stiffness and the viscosity relative to the joint 105.
(46) Therefore, to calculate driving force command values that simultaneously satisfy the torque command value T1 and the joint stiffness command value U.sub.1, Formulas (3) and (4) are solved for u.sub.e1 and u.sub.f1 to determine as follows.
(47)
It can be recognized from Formula (7) that the joint stiffness command value U.sub.1 can be minimized to minimize the driving force command values u.sub.f1 and u.sub.e1 to provide an arbitrary torque command value T.sub.1. However, the following conditions can be obtained from Formulas (5) and (7).
T.sub.1/r<U.sub.1,T.sub.1/r>U.sub.1(8)
It can be recognized that the joint stiffness command value U.sub.1 needs to satisfy the following condition using the torque command value T.sub.1 to provide the artificial muscle actuators e.sub.1 and f.sub.1 with the driving force command values u.sub.f1 and U.sub.e1 only in the contraction direction.
|T.sub.1|/r<U1(9)
(48) As for the torque command value T.sub.1 for causing the angle of the joint 105 to follow an arbitrary target trajectory r.sub.a, angular velocity and angular acceleration of the target trajectory r.sub.a can be expressed by
{dot over (r)}.sub.a,{umlaut over (r)}.sub.a
or r.sub.a and r.sub.a, respectively. The torque command value T.sub.1 can be expressed by the following Formula (10) based on inverse dynamics of the link 101.
T.sub.1=I{umlaut over (r)}.sub.a+U.sub.1kr.sup.2r.sub.a+U.sub.1br.sup.2{dot over (r)}.sub.a(10)
(49) Formula (10) includes the joint stiffness command value U.sub.1, and as can be recognized from Formula (9), the joint stiffness command value U.sub.1 is a command value restricted by the torque command value T. In the present first embodiment, an iterative computation algorithm is used to obtain the torque command value T.sub.1 and the joint stiffness command value U.sub.1 that simultaneously satisfy Formulas (9) and (10).
(50)
(51) In the present first embodiment, the number of iterations is defined as i, and the torque command value T.sub.1 and the joint stiffness command value U.sub.1 based on iterative computations of i times are written as follows.
T.sub.1[i],U.sub.1[i](11)
(52) In the torque command value computation step 151, the control unit 150 uses the target trajectory r.sub.a, the angular velocity r.sub.a of the target trajectory, the angular acceleration r.sub.a of the target trajectory, and the joint stiffness command value U.sub.1[i] to compute the torque command value T.sub.1[i] indicating the torque necessary for the joint, based on inverse dynamics of the link 101. More specifically, the control unit 150 uses formula (12) to compute the torque command value T.sub.1[i] of an i-th iteration (torque command value computation step).
T.sub.1[i]=I {umlaut over (r)}.sub.a+U.sub.1[i]kr.sup.2r.sub.a+U.sub.1[i]br.sup.2{dot over (r)}.sub.a(12)
(53) In the change computation step 152, the control unit 150 computes a difference between the joint stiffness command value U.sub.1[i] and a value |T.sub.1[i]|/r obtained by dividing an absolute value of the torque command value T.sub.1[i] by the moment arm radius r of the link 101. The difference is defined as E.sub.1[i], and the control unit 150 computes the difference E.sub.1[i] by the following Formula (13).
E.sub.1[i]=U.sub.1[i]|T.sub.1[i]|/r(13)
(54) In the change computation step 152, the control unit 150 performs a computation of subtracting a value, which is obtained by multiplying the difference E.sub.1[i] by a convergence factor greater than 0 and equal to or smaller than 1, from the joint stiffness command value U.sub.1[i] to change the joint stiffness command value U.sub.1[i] (change computation step). More specifically, the control unit 150 sets the convergence factor of the iterative computation algorithm to 0<1 to calculate an i+1-th joint stiffness command value U.sub.1[i|1] based on the following Formula (14).
U.sub.1[i+1]=U.sub.1[i]E.sub.1[i](14)
(55) In the iterative step 153, the control unit 150 iterates the computations of Formulas (12) to (14) for a predetermined number of times m until the difference E.sub.1[i] converges to equal to or smaller than a predetermined value (for example, 0) (iterative step).
(56) Since the difference E.sub.1[i] is converged to 0, the joint stiffness command value U.sub.1[m] is a minimum value satisfying Formula (9), and the torque command value T.sub.1[m] using this is a minimum value. Based on this, the feedforward input with the minimum driving force command values u.sub.e1 and u.sub.f1 is delivered from Formula (7) as follows.
(57)
(58) Therefore, in the driving force command value computation step 155, after the iterative process 153, the control unit 150 uses the joint stiffness command value U.sub.1[m] and the torque command value T.sub.1[m] to compute the driving force command values u.sub.f1 and u.sub.e1 (driving force command value computation step).
(59) To set a lower limit for the joint stiffness command value, the following formula can be used in place of Formula (13), wherein a stiffness lower limit is defined as V.sub.1.
E.sub.1[i]=U.sub.1[i]|T.sub.1[i]|/rV.sub.1(16)
(60) Based on Formula (16), the joint stiffness of the manipulator at an arrival angle can be controlled by, for example, adjusting V.sub.1 of the target trajectory at arrival time.
(61) When the arrival angle of the target trajectory r.sub.a is defined as .sub.d, a torque command value T.sub.1d necessary to set the link is as follows.
U.sub.1kr.sup.2.sub.dT.sub.1d(17)
(62) However, Formula (9) also needs to be satisfied at the same time. Therefore, the elastic force constant k and the pulley radius r need to satisfy the following condition.
kr.sub.d<1(18)
(63) In the derivation described above, it is assumed that the elastic force of muscle is generated in proportion to the angle from =0 deg. To generate the feedforward control input with an arbitrary angle as a reference angle (hereinafter, neutral angle) of the generation of the elastic force of muscle, the following formula (19) can be used in place of Formula (12), wherein .sub.c denotes the neutral angle.
T.sub.1[i]=I {umlaut over (r)}.sub.a+U.sub.1[i]kr.sup.2(r.sub.a0.sub.c)+U.sub.1[i]br.sup.2{dot over (r)}.sub.a(19)
(64) (2.2) Trajectory Design
(65) A design method of the target trajectory r.sub.a of the joint 105 will be illustrated. In the present embodiment, a trajectory including an acceleration section, a constant velocity section, and a deceleration section as illustrated in
(66) (3) Simulation
(67) A simulation using the control system of the previous section is performed. The inertia moment of the link is defined by I=8.310.sup.2 kgm.sup.2, and the moment arm diameter is defined by r=0.1 m. The elastic force and viscous force constants are defined by k=25 and b=3. As for the target trajectory r.sub.a, the initial angle is defined by r.sub.aS=20 deg, the target angle is defined by r.sub.aF=20 deg, the start time of the constant velocity section is defined by t.sub.a=0.4 sec, the end time of the constant velocity section is defined by t.sub.b=0.6 sec, and the positioning end time is defined by t.sub.fin=1 sec. The joint stiffness command value U.sub.1 is delivered to satisfy the restriction illustrated in Formula (9) based on the iterative computation algorithm illustrated in 2.1. The lower limit of the joint stiffness command is set to V.sub.1=0.02, and =1 is set to perform the iterative computations.
(68)
(69) It can be recognized from
Second Embodiment
(70) A robot apparatus according to a second embodiment of the present invention will be described. In the present second embodiment, control operation by a control unit is different from the control operation by the control unit of the first embodiment. In the configuration of the main body of the robot apparatus, components with similar configurations as those of the main body of the robot apparatus of
(71) The present second embodiment delivers a two-degree-of-freedom control system merging the feedforward control system illustrated in the first embodiment and a feedback control system. The feedback control system is delivered to allow simultaneously following the target trajectory and the joint stiffness command values obtained by the iterative computation algorithm. With only the feedforward control system, the control performance deteriorates if there is an identification error in a parameter such as the inertia moment of the link 101. However, it will be illustrated that the configuration of the two-degree-of-freedom control system with the feedback control system allows simultaneous control of the target trajectory and the joint stiffness command values, even if there is a model error.
(72) (1) Modeling
(73) A model used in the present second embodiment is the same as that of the first embodiment.
(74) (2) Control System Design
(75) The delivery of the feedforward control system is similar to that of the first embodiment. The joint torque command T.sub.FF[m] delivered by the iterative computation algorithm of the first embodiment is described as T.sub.FF in the present second embodiment.
(76)
(77) Other than the feedforward control system K.sub.FFW, the control unit 150A has a function of executing a PID control step K.sub.PID1 as a corrected torque command value computation step 154.
(78) In the PID control step K.sub.PID1, the control unit 150A computes control input torque T.sub.FB as a corrected torque command value for compensating the difference between the angle and the target trajectory r.sub.a of the joint 105 (corrected torque command value computation step).
(79) Based on Formula (2), if u.sub.e1 and u.sub.f1 are determined to satisfy
(u.sub.f1u.sub.e1)r=T.sub.FF+T.sub.FB=T.sub.1(20),
T.sub.1 as a sum of the feedforward control torque T.sub.FF and the feedback control torque T.sub.FB can be provided to the joint 105. The torque command value T.sub.1 denotes a computation result obtained by adding the control input torque T.sub.FB calculated in the PID control step K.sub.PID1 to the torque command value T.sub.FF calculated in the torque command value computation step 151 (see
(80) Therefore, in the present second embodiment, the torque command value T.sub.1 is used as a torque command value used to calculate the driving force command values in the execution of the driving force command value calculation step 155.
(81) As in the first embodiment, the driving force command values u.sub.e1 and u.sub.f1 need to be determined to simultaneously satisfy the following conditions related to the stiffness of the joint 105.
U.sub.1=u.sub.f1+u.sub.e1=U.sub.1[m](21)
(82) To simultaneously satisfy the torque command value T.sub.1 and the joint stiffness command value U.sub.1, Formulas (20) and (4) can be solved for the driving force command values u.sub.e1 and u.sub.f1 to determine as follows.
(83)
(84) However, the artificial muscle actuators e.sub.1 and f.sub.1 generate force only in the contraction direction. Therefore, as in the first embodiment, T.sub.1 needs to satisfy the following condition.
U.sub.1r<T.sub.1<U.sub.1r(23)
As a result, the stiffness of the joint 105 coincides with the joint stiffness command value U.sub.1, and at the same time, the joint 105 is followed and controlled at the target angle r.sub.a based on the torque command value T.sub.1. As illustrated in the block diagram of
|T.sub.1|<U.sub.1r(24)
Alternatively, there is a method of changing the gain of the PID control step K.sub.PID1 to set the size of the control input within the range of Formula (23).
(85) The first embodiment has illustrated that the stiffness lower limit V.sub.1 can be set to control the joint stiffness. However, if the gain of the feedback control system is high, the stiffness of the joint 105 becomes dominant.
(86) Therefore, as illustrated in
(87) In the present second embodiment, a transfer function used in the PID control step K.sub.PID1 is as follows.
(88)
(89) (3) Simulation
(90) The control system delivered in the previous section is used to perform a simulation. It is assumed that the parameters of the link 101 and the target trajectory r.sub.a are similar to those of the first embodiment. In the present second embodiment, to verify the control performance for the identification error of the model, the inertia moment of the link 101 is set to I=1.05I, and a model with an error relative to the model at the generation of the feedforward control input is used for the simulation. In the present second embodiment, if the lower limit of the joint stiffness command is small as in the first embodiment, the range of the restriction of the feedback control system is reduced. As a result, a wind-up phenomenon easily occurs. Therefore, V.sub.1=0.1 is set to deliver the feedforward input.
(91)
(92) It can be recognized from
Third Embodiment
(93) A robot apparatus according to a third embodiment of the present invention will be described in detail.
(94) (1) Modeling
(95) The robot apparatus 200 illustrated in
(96) The first link 201 is made of a longitudinal member, and a base end 201a of the first link 201 is pivotally supported by the pulley 203 in a plane of an x-y rectangular coordinate system (hereinafter, called work plane). The second link 202 is made of a longitudinal member, and a base end 202a of the second link 202 is pivotally supported by a tip 201b of the first link 201 in the work plane.
(97) A tip (hereinafter, called link tip) 202b of the second link 202 includes an end effector (for example, hand) not illustrated. More specifically, the first link 201 is arranged between the first joint 211 and the second joint 212 and is pivotally supported by the first joint 211. The second link 202 is pivotally supported by the second joint 212.
(98) In the present second embodiment, the pulley 203 serves as the base body of the first link 201, and the first link 201 serves as the base body of the second link 202. The pulley 203 is arranged on, for example, the robot body.
(99) The robot apparatus 200 includes a pair of first actuators e.sub.1 and f.sub.1, a pair of second actuators e.sub.2 and f.sub.2, and a pair of third actuators e.sub.3 and f.sub.3. One end of each of the first actuators e.sub.1 and f.sub.1 is connected to the pulley 203, and the other end is connected to a center section in the longitudinal direction of the first link 201. The first actuators e.sub.1 and f.sub.1 are antagonistically arranged so that the first link 201 pivots based on the difference in the driving force.
(100) One end of each of the second actuators e.sub.2 and f.sub.2 is connected to the center section in the longitudinal direction of the first link 201, and the other end is connected to the base end 202a of the second link 202. The second actuators e.sub.2 and f.sub.2 are antagonistically arranged so that the second link 202 pivots based on the difference in the driving force. One end of each of the third actuators e.sub.3 and f.sub.3 is connected to the pulley 203, and the other end is connected to the base end 202a of the second link 202. The third actuators e.sub.3 and f.sub.3 are antagonistically arranged so that the first link 201 and the second link 202 pivot based on the difference in the driving force. More specifically, the first actuators e.sub.1 and f.sub.1 are symmetrically arranged on both sides of the first link 201 across the first link 201. The second actuators e.sub.2 and f.sub.2 are symmetrically arranged on both sides of the first link 201 across the first link 201. The third actuators e.sub.3 and f.sub.3 are symmetrically arranged on both sides of the first link 201 across the first link 201.
(101) The robot apparatus 200 further includes a control unit 250 that sets the driving force of the actuators e.sub.1, f.sub.1, e.sub.2, f.sub.2, e.sub.3 and f.sub.3 based on driving force command values to control the operations of the links 201 and 202.
(102) The first actuators e.sub.1 and f.sub.1 are first mono-articular drive actuators that drive the first link 201. The second actuators e.sub.2 and f.sub.2 are second mono-articular drive actuators that drive the second link 202. The third actuators e.sub.3 and f.sub.3 are bi-articular simultaneous drive actuators that simultaneously drive the first link 201 and the second link 202. Upper arms and thighs of humans are known to include bi-articular simultaneous drive actuators called bi-articular muscles. The muscle arrangement of the extremities of humans is complicated. An effective muscle concept is introduced, and a two-link model with six muscles (three pairs) is presented.
(103) The actuators e.sub.1, f.sub.1, e.sub.2, f.sub.2, e.sub.3 and f.sub.3 are artificial muscle actuators with viscoelasticity characteristics of muscle illustrated in
(104) For the actuators e.sub.1, f.sub.1, e.sub.2, f.sub.2, e.sub.3 and f.sub.3 of
(105) A length of the moment arm diameter, i.e. a length between the pivot center point of the first link 201 and the connection point of the actuators e.sub.1 and f.sub.1 at the pulley 203 and a length between the pivot center point of the second link 202 and the connection point of the actuators e.sub.2 and f.sub.2 at the second link 202, is defined as r.
(106) When the elastic force constants and the viscous force constants of the muscles are defined as k and b in the present third embodiment, equations of motion are as in the following Formulas (26) and (27).
(m.sub.1l.sub.1.sup.2+.sub.1+4m.sub.2l.sub.1.sup.2+4m.sub.2l.sub.1l.sub.2 cos .sub.2+m.sub.2l.sub.2.sup.2+I.sub.2){umlaut over ()}.sub.1+(m.sub.2l.sub.2.sup.2+I.sub.2+2m.sub.2l.sub.1l.sub.2 cos .sub.2){umlaut over ()}.sub.22m.sub.2l.sub.2l.sub.2(2{dot over ()}.sub.1+{dot over ()}.sub.2)sin .sub.2{dot over ()}.sub.2=(u.sub.f1u.sub.e1)r(u.sub.f1+u.sub.e1)kr.sup.2.sub.1(u.sub.f1+u.sub.e1)br.sup.2.sub.1+(u.sub.f3u.sub.e3)r(u.sub.f3+u.sub.e3)kr.sup.2(.sub.1+.sub.2)(u.sub.f3+u.sub.e3)br.sup.2({dot over ()}.sub.1+{dot over ()}.sub.2)(26)
(m.sub.2l.sub.2.sup.2+I.sub.2+2m.sub.2l.sub.1l.sub.2 cos .sub.2){umlaut over ()}.sub.2+2m.sub.2l.sub.1l.sub.2 sin 0.sub.2{dot over ()}.sub.1.sup.2=(u.sub.f2u.sub.e2)r(u.sub.f2+u.sub.e2)kr.sup.2.sub.2(u.sub.f2+u.sub.e2)br.sup.2.sub.2+(u.sub.f3u.sub.e3)r(u.sub.f3+u.sub.e3)kr.sup.2(.sub.1+.sub.2)(u.sub.f3+u.sub.e3)br.sup.2({dot over ()}.sub.1{dot over ()}.sub.2)(27)
(107) (2) Control System Design
(108) The trajectory control of the joint that minimizes the contractile force (driving force) are performed in the first and second embodiments, and a two-degree-of-freedom control system is designed in the present third embodiment.
(109)
(110) (2.1) Feedforward Control System
(111) When the difference in the driving force command values is defined as T.sub.n and the sum is defined as U.sub.n as in the first embodiment, the following can be formed.
(u.sub.fnu.sub.en)r=T.sub.FFn+T.sub.FBn=T.sub.n,n=1,2,3(28)
u.sub.fn+u.sub.en=U.sub.n,n=1,2,3(29)
Here, T.sub.FFn and T.sub.FBn denote torque command values provided by the feedforward control system and the feedback control system, respectively. In this section, T.sub.FBn=0 is set to illustrate a delivery method of the feedforward control input.
(112) When Formulas (26) and (27) are defined by .sub.v=[.sub.1 .sub.2].sup.T and T.sub.v=[T.sub.1+T.sub.3 T.sub.2+T.sub.3].sup.T to write matrices, the following is formed.
M.sub.m(.sub.v){umlaut over ()}.sub.v+C.sub.m(.sub.v,{dot over ()}.sub.v){dot over ()}.sub.v=K.sub.v(.sub.v.sub.cv)C.sub.v{dot over ()}.sub.v+T.sub.v(30)
(113) Here, K.sub.v and C.sub.v denote a stiffness matrix and a damping matrix based on the viscoelasticity of muscle, respectively, and are expressed as follows.
(114)
Furthermore, .sub.cv denotes a vector including neutral posture angles .sub.c1 and .sub.c2 based on the elastic force of muscle when the joint torque T.sub.1 and T.sub.2 do not act and is expressed as follows.
.sub.cv=[.sub.c1.sub.c2].sup.T(32)
The target trajectory relative to the joint angle .sub.n (n=1, 2) is defined as r.sub.an (n=1, 2) to define as follows.
r.sub.av=[r.sub.a1r.sub.a2].sup.T(33)
The angular velocity and the angular acceleration of the target trajectory are expressed as follows, respectively.
(115) A feedforward torque command value necessary for the joint angle to follow the target trajectory is expressed by T.sub.FFv=[T.sub.FF1+T.sub.FF3 T.sub.FF2+T.sub.FF3].sup.T. The torque command value T.sub.FFv can be expressed as follows based on inverse dynamics of the link.
T.sub.FFv=M.sub.m(r.sub.av){umlaut over (r)}.sub.av+C.sub.m(r.sub.av,{dot over (r)}.sub.av){dot over (r)}.sub.av+K.sub.v(r.sub.av.sub.cv)+C.sub.v{dot over (r)}.sub.av(34)
(116) However, the number of control inputs of the manipulator with the bi-articular simultaneous drive actuators is redundant relative to the controlled degree of freedom. Therefore, although torque command values relative to each joint 211 and 212 (hereinafter, abbreviated each joint torque) can be obtained based on inverse dynamics, commands T.sub.FFn (n=1, 2, 3) including the torque by the bi-articular drive actuators cannot be uniquely determined. Thus, the joint torque command obtained from the right side of Formula (34) is defined as T.sub.MF=[T.sub.MF1 T.sub.MF2].sup.T, and each joint torque command T.sub.MF is distributed to minimize the following maximum values of the absolute values of T.sub.FFn (n=1, 2, 3).
max(|T.sub.FFn|,n=1,2,3)(35)
(117) The relationship between T.sub.MF and T.sub.FFn (n=1, 2, 3) is as in the following Formulas (36) and (37).
T.sub.FF1+T.sub.FF3=T.sub.MF1(36)
T.sub.FF2+T.sub.FF3=T.sub.MF2(37)
(118) If T.sub.MF1 and T.sub.MF2 have the same signs, T.sub.FF3 can be increased or decreased to increase or decrease T.sub.FF1 and T.sub.FF2 by the amount of change in T.sub.FF3 based on Formulas (36) and (37). If T.sub.MF1T.sub.MF2, T.sub.FF3 can be gradually increased or decreased from 0 to set T.sub.FF1=T.sub.FF3. In this case T.sub.FFn (n=1, 2, 3) can be calculated as follows.
(119)
On the other hand, if T.sub.MF2>T.sub.MF1, T.sub.FF2=T.sub.FF3 can be set, and T.sub.FFn (n=1, 2, 3) can be calculated as follows.
(120)
(121) If T.sub.MF1 and T.sub.MF2 have different signs, for example, although an increase in T.sub.FF3 reduces the absolute value of T.sub.FF1, the absolute value of T.sub.FF2 increases. Therefore, T.sub.FF1 and T.sub.FF2 can be set as follows.
|T.sub.FF1|=|T.sub.FF2|(40)
If T.sub.MF1 and T.sub.MF2 have different signs, and Formula (40) is satisfied, T.sub.FF1 and T.sub.FF2 have different signals. Therefore, the following can be obtained based on Formulas (36), (37) and (40).
(122)
(123) This can be used to obtain, based on the iterative computation algorithm, the torque command value T.sub.FFn and the joint stiffness command value U.sub.n that satisfy the following condition of generating the force only in the contraction direction, as in the first embodiment.
|T.sub.FFn|<U.sub.nr,n=1,2,3(42)
(124) As in the first embodiment, the number of iterations is defined as i in the present third embodiment, and the torque command values T.sub.FFn and the joint stiffness command values U.sub.n based on iterative computations of i times are written as follows.
T.sub.FFn[i],U.sub.n[i],n=1,2,3(43)
(125) A stiffness matrix and a damping matrix based on the viscoelasticity of muscle including U.sub.n[i] as elements will be written as K.sub.v[i] and C.sub.v[i]
(126) In the torque command value computation step 251, the control unit 250 uses the target trajectory, the angular velocity of the target trajectory, the angular acceleration of the target trajectory, and the joint stiffness command value to compute the torque command values T.sub.FFn[F] indicating the torque necessary for the joints 211 and 212, based on inverse dynamics of the links 201 and 202. More specifically, the control unit 250 computes the torque command value T.sub.FFn[i] of an i-th iteration based on Formula (44) (torque command value computation step).
T.sub.MFn[i]M.sub.m(r.sub.av){umlaut over (r)}.sub.av+C.sub.m(r.sub.av,{dot over (r)}.sub.av){dot over (r)}.sub.av+K.sub.v[i](r.sub.av.sub.cv)+C.sub.v[i]{dot over (r)}.sub.av(44)
(127) The control unit 250 distributes Formula (44) based on the method illustrated in Formulas (38) to (41) to calculate T.sub.FFn[i] (n=1, 2, 3)
(128) In the change computation step 252, the control unit 250 computes a difference between the joint stiffness command value U.sub.n[i] and a value |T.sub.FFn[i]/r obtained by dividing the absolute value of the torque command value T.sub.FFn[i] by the moment arm radius r of the link. The difference is defined as E.sub.n[i], and the control unit 250 computes the difference E.sub.1[i] based on the following Formula (45).
(129) In the present third embodiment, the stiffness lower limit relative to the joint stiffness command value U.sub.n is defined as V.sub.n, and the difference E.sub.n[i] relative to the condition of Formula (42) is defined as follows.
E.sub.n[i]=U.sub.n[i]|T.sub.FFn[i]|/rV.sub.n,n=1,2,3(45).
(130) In the change computation step 252, the control unit 250 performs a computation of subtracting a value, which is obtained by multiplying the difference E.sub.n[i] by a convergence factor greater than 0 and equal to or smaller than 1, from the joint stiffness command value U.sub.n[i] to change the joint stiffness command value U.sub.n[i] (change computation step). More specifically, the control unit 250 sets the convergence factor of the iterative computation algorithm to 0<1 to calculate an i+1-th joint stiffness command value U.sub.n[i|1] based on the following Formula (46)
U.sub.n[i+1]=U.sub.n[i]E.sub.n[i],n=1,2,3(46)
(131) In the iterative step 253, the control unit 250 iterates the computations of Formulas (44) to (46) for a predetermined number of times m until the difference E.sub.n[i] converges to equal to or smaller than a predetermined value (for example, 0) (iterative step).
(132) In a block of Distribution Algorithm illustrated in
(133) The driving force command value computation step 255 (
(134) In the driving force command value computation step 255 after the end of the iterative step 253, the control unit 250 uses the joint stiffness command value U.sub.n[m] and the torque command value T.sub.n[m] to compute the driving force command values u.sub.en and u.sub.fn for computing the driving force command values (driving force command value computation step). As a result, the torque corresponding to the torque command values T.sub.n is applied to the joints 211 and 212, and the angles .sub.1 and .sub.2 of the joints 211 and 212 follow the target trajectory.
(135) (2.2) Two-Degree-of-Freedom Control System
(136) When the feedback control is also performed along with the feedforward control, the control unit 250 executes PID control steps K.sub.PID1 to K.sub.PID3 illustrated in
(137) The control unit 250 uses, as the torque command value T.sub.n, a result obtained by adding the control input torque T.sub.FBn to the feedforward input T.sub.FFn. In this case, the control unit 250 applies a restriction based on Formula (30) in the restriction step 256 as in the second embodiment and calculates the contractile force u.sub.fn and u.sub.en.
(138) Specifically, the control unit 250 computes the control input torque T.sub.FB1 and T.sub.FB2 for compensating the difference between the joint angles .sub.1, .sub.2, and the target trajectories r.sub.a1, r.sub.a2 in the PID control steps K.sub.PID1 and K.sub.PID2 as the feedback control system illustrated in
(139) As in the second embodiment, the control input T.sub.n (n=1, 2, 3) is restricted as follows.
|T.sub.n|<U.sub.nr,n=1,2,3(47)
The driving force command value u.sub.fn and u.sub.en (n=1, 2, 3) is expressed as follows.
(140)
(141) (2.3) Hand Stiffness Control
(142) Since the hand directly touches the outside world in the two-link manipulator, the control of the stiffness of the hand is important. The stiffness of the hand is expressed by a stiffness ellipse as illustrated in
U.sub.1=U.sub.2=U.sub.3(49),
it is known that the major axis of the stiffness ellipse faces the direction connecting the first joint and the hand. Since the computation of the stiffness is iterated to minimize the contractile force in the present third embodiment, the stiffness during the drive cannot be arbitrarily designated. However, the hand stiffness can be controlled at the target position of the hand. In the present third embodiment, the lower limit of the joint stiffness command value is changed as illustrated in
(143) (2.4) Trajectory Design
(144) In the present third embodiment, the target trajectory is set to drive the hand forward on the y axis of
(145) (3) Simulation
(146) A simulation using the control system of the previous section is performed. The physical parameters of the first link 201 and the second link 202 are the same. The link length is 0.2 m, the inertia moment of the link is I.sub.1=I.sub.2=1.310.sup.3 kgm.sup.2, the moment arm diameter is 0.05 m, and the elastic force and viscous force constants are k=12 and b=0.003. For the target trajectory, the start time of the constant velocity section is t.sub.a=0.2747 sec, the end time of the constant velocity section is t.sub.b=0.4746 sec, and the positioning end time is t.sub.f=0.75 sec. The neutral posture angles .sub.c1 and .sub.c2 based on the elastic force when the joint torque does not act are joint angles at the halfway point of the hand trajectory, which are .sub.c1=29.7 deg and .sub.c22=120.7 deg. As in the second embodiment, verification for the identification error of the model in the two-degree-of-freedom control system is performed in the present first embodiment. Therefore, the inertia moments are defined as I.sub.1 and I.sub.2 in the generation of the feedforward input. In the simulation, the inertial moments of the links are I.sub.1=1.1I.sub.1 and I2=1.05I.sub.2.
(147)
(148) It can be recognized from
(149) In
(150) The present invention is not limited to the embodiments described above, and a person with an ordinary skill in the field can make many modifications within the technical scope of the present invention.
(151) While the present invention has been described with reference to exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. The scope of the following claims is to be accorded the broadest interpretation so as to encompass all such modifications and equivalent structures and functions.
(152) This application claims the benefit of Japanese Patent Application No. 2012-028614, filed Feb. 13, 2012, which is hereby incorporated by reference herein in its entirety.