Robot system controlling method, robot system, and control apparatus for quadrupedal robot
09925665 ยท 2018-03-27
Assignee
Inventors
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
G05B2219/39452
PHYSICS
B25J9/1641
PERFORMING OPERATIONS; TRANSPORTING
Y10S901/01
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
Y10S901/09
GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
International classification
Abstract
An object of the present invention is to provide a robot system controlling method and robot system which perform link angle control and joint stiffness control through feedback control.
Claims
1. A method of controlling a link system having (i) a first swingable link, and (ii) a first pair of actuators configured to apply a torque to the first swingable link based on a difference of contraction forces of the first pair of actuators and to apply stiffness to the first swingable link based on a sum of the contraction forces of the first pair of actuators, the method comprising: generating a first torque command value based on a deviation between a first target swing angle and a swing angle of the first swingable link; correcting the first torque command value to be less than or equal to a product of a first target stiffness value of the first swingable link and a length of a moment arm from a swing center of the first swingable link, in a case in which an absolute value of the first torque command value exceeds the product; generating first contraction force command values for the first pair of actuators based on the first target stiffness value and the first torque command value after the correcting.
2. The method according to claim 1, further comprising: detecting whether an external force acts on the first swingable link; and setting the first torque command value to 0 in a case in which the external force acting on the first swingable link is detected.
3. The method according to claim 1, wherein the generating of the first torque command value includes a PID control.
4. The method according to claim 1, wherein the first torque command value is corrected according to a hyperbolic tangent function.
5. The method according to claim 1, wherein the link system further has (iii) a second swingable link connected to the first swingable link, and (iv) a second pair of actuators configured to apply a torque to the second swingable link based on a difference of contraction forces of the second pair of actuators, and to apply stiffness to the second swingable link based on a sum of the contraction forces of the second pair of actuators, the method further comprising: generating a second torque command value based on a deviation between a second target swing angle and a swing angle of the second swingable link; correcting the second torque command value to be less than or equal to a product of a second target stiffness value of the second swingable link and a length of a moment arm from a swing center of the second swingable link, in a case in which an absolute value of the second torque command value exceeds the product; and generating second contraction force command values for the second pair of actuators based on the second target stiffness value and the second torque command value after the correcting.
6. The method according to claim 5, further comprising: detecting whether an external force acts on the second swingable link; and setting the second torque command value to 0 in a case in which the external force acting on the second swingable link is detected.
7. The method according to claim 5, wherein the generating of the second torque command value includes a PID control.
8. The method according to claim 5, wherein the second torque command value is corrected according to a hyperbolic tangent function.
9. The method according to claim 5, wherein the link system further has (v) a third pair of actuators configured to apply contraction forces between the first and second swingable links.
10. A link system comprising: a first swingable link; a first pair of actuators configured to apply a torque to the first swingable link based on a difference of contraction forces of the first pair of actuators, and to apply stiffness to the first swingable link based on a sum of the contraction forces of the first pair of actuators; and a controller including: a generator configured to generate a first torque command value based on a deviation between a first target swing angle and a swing angle of the first swingable link; a first corrector configured to correct the first torque command value to be less than or equal to a product of a first target stiffness value of the first swingable link and a length of a moment arm from a swing center of the first swingable link, in a case in which an absolute value of the first torque command value exceeds the product; and a first contraction force command generator configured to generate first contraction force command values for the first pair of actuators based on the first target stiffness value and the first torque command value after the first torque command value is corrected by the first corrector.
11. The link system according to claim 10, further comprising: a detector configured to detect whether an external force acts on the first swingable link; and a first adjuster configured to set the first torque command value to 0 in a case in which the external force acting on the first swingable link is detected.
12. The link system according to claim 10, wherein the first torque command value is corrected according to a hyperbolic tangent function.
13. The link system according to claim 10, further comprising: a second swingable link connected to the first swingable link; and a second pair of actuators configured to apply a torque to the second swingable link based on a difference of contraction forces of the second pair of actuators, and to apply stiffness to the second swingable link based on a sum of the contraction forces of the second pair of actuators, wherein the controller further includes: a second generator configured to generate a second torque command value based on a deviation between a second target swing angle and a swing angle of the second swingable link; a second corrector configured to correct the second torque command value to be less than or equal to a product of a second target stiffness value of the second swingable link and a length of a moment arm from a swing center of the second swingable link, in a case in which an absolute value of the second torque command value exceeds the product; and a second contraction force command generator configured to generate second contraction force command values for the second pair of actuators based on the second target stiffness value and the second torque command value after the second torque command value is corrected by the second corrector.
14. The link system according to claim 13, further comprising: a detector configured to detect whether an external force acts on the second swingable link; and a second adjuster configured to set the second torque command value to 0 in a case in which the external force acting on the second swingable link is detected.
15. The link system according to claim 13, wherein the second torque command value is corrected according to a hyperbolic tangent function.
16. The link system according to claim 13, further comprising a third pair of actuators configured to apply contraction forces between the first and second swingable links.
17. The link system according to claim 16, wherein the third pair of actuators possesses a viscoelastic characteristic.
18. The link system according to claim 13, wherein the second pair of actuators possesses a viscoelastic characteristic.
19. The link system according to claim 10, wherein the first generator performs a PID control to generate the first torque command value.
20. The link system according to claim 10, wherein the second generator performs a PID control to generate the second torque command value.
21. A robot system having the link system according to claim 10.
22. The link system according to claim 10, wherein the first pair of actuators possesses a viscoelastic characteristic.
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)
(27)
(28)
(29)
(30)
(31)
(32)
(33)
(34)
(35)
(36)
(37)
(38)
(39)
(40)
(41)
(42)
(43)
(44)
(45)
(46)
(47)
(48)
(49)
(50)
(51)
(52)
(53)
(54)
(55)
(56)
(57)
(58)
(59)
(60)
(61)
(62)
DESCRIPTION OF THE EMBODIMENTS
(63) Preferred embodiments of the present invention will now be described in detail in accordance with the accompanying drawings.
(64) [First Embodiment]
(65)
(66) (1) Modeling
(67) An artificial muscle actuator has a property similar to a property called muscular viscoelasticity. As illustrated in
{dot over ()}
(68) Also, let k denote an elastic force constant, let b denote a viscous force constant, and let F denote a muscle contraction force, then viscoelastic properties of the muscle are modeled as follows:
F=ukubu{dot over ()}(1)
(69) Thus, the elastic force and viscous force of the muscle contraction force have a nonlinear element which is proportional to the contraction force u of the force generating element.
(70) Next, the robot system according to this first embodiment is illustrated in
(71) The link 101 is a longitudinal member. A base end 101a of the link 101 is swingably supported at a longitudinal tip of the arm member 104 serving as a fixing member. An end effector (such as a hand: not shown) is installed at a tip 101b of the link 101. That is, the link 101 is swingably supported at a joint.
(72) Each of the actuators e.sub.1 and f.sub.1 is connected at one end to the base members 103 which serve as fixing members and connected at the other end to the base end 101a of the link 101, being placed in antagonism to each other so as to swing the link 101 using a difference between contraction forces.
(73) The robot system 100 is equipped with a control apparatus 150 adapted to adjust the contraction forces of the actuators e.sub.1 and f.sub.1 based on respective contraction force command values and thereby control the operation of the link 101.
(74) The actuators e.sub.1 and f.sub.1 are pneumatic artificial muscle actuators illustrated in
(75) Let u.sub.e1 and u.sub.f1 denote the contraction forces of force generating elements of the actuators e.sub.1 and f.sub.1 placed in antagonism to each other, respectively, let denote a swing angle of the link 101 with respect to the arm member 104, and let I denote moment of inertia of the link. Also, let r denote the length of a moment arm, i.e., the distance between a swing center of the link 101 and a connection point of the actuators e.sub.1 and f.sub.1 with the link 101. Then, an equation of motion is given by Eq. (2) below.
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)
(76) It can be seen that the difference between the contraction forces u.sub.e1 and u.sub.f1 in the first term on the right side of Eq. (2) gives rotational torque to the joint and that the sums of the contraction forces u.sub.e1 and u.sub.f1 in the second and third terms on the right side cause the stiffness and viscosity of the link at the joint to vary.
(77) (2) Control System Design
(78) This first embodiment is intended to set the swing angle of the link 101 with respect to the arm member 104 at a target swing angle and, at the same time, control the stiffness of the link 101 at the joint between the arm member 104 and the link 101.
(79) A block diagram of the control apparatus 150 according to this first embodiment is illustrated in
(80) The control apparatus 150 is equipped with a swing angle detection sensor 1 adapted to detect the swing angle .sub.1 of the link 101 with respect to the arm member 104 and a touch sensor 2 adapted to output a detection signal, indicating the external force when any external force acts on the link 101.
(81) Also, the control apparatus 150 is equipped with a subtracter 3 and gain adjuster 4 serving as deviation calculation units, a PID controller 5 serving as a torque command generating unit, and a multiplier 6 serving as a multiplication unit adapted to multiply a stiffness command value U.sub.1 by the moment arm length r from the swing center of the link 101.
(82) Also, the control apparatus 150 is equipped with a saturation circuit 7 serving as a torque command correction unit adapted to correct a torque command value T.sub.1 output from the PID controller 5. Furthermore, the control apparatus 150 is equipped with a contraction force command value calculating unit 8 adapted to determine contraction force command values u.sub.e1 and u.sub.f1 for the actuators e.sub.1 and f.sub.1 by calculation using the torque command value T.sub.1 and stiffness command value U.sub.1.
(83) The components will be described in detail below. To begin with, the swing angle detection sensor 1 is a sensor such as a potentiometer or encoder. Although not illustrated in
(84) The touch sensor 2 is installed on an end effector (such as a hand: not shown) or the link 101 and adapted to output a detection signal when an object touches the end effector or link 101. That is, an external force acting on the link 101 means that an object is in touch with the end effector or link 101.
(85) The subtracter 3 calculates a value (r.sub.a.sub.1) which represents a deviation (difference) between the swing angle .sub.1 and target swing angle r.sub.a.
(86) The gain adjuster 4 multiplies the output of the subtracter 3, i.e., the value (r.sub.a.sub.1) which represents the deviation, by a coefficient value G.sub.t and outputs the product, where the coefficient value G.sub.t represents contact gain. The coefficient value G.sub.t is a value between 0 and 1. When there is no detection signal from the touch sensor 2, the gain adjuster 4 sets the coefficient value at G.sub.t=1 and outputs the value (r.sub.a.sub.1) which represents the received deviation. During a period when a detection signal continues to be output from the touch sensor 2, the gain adjuster 4 multiplies the value (r.sub.a.sub.1) which represents the deviation by the coefficient value G.sub.t=0 and outputs a new value (i.e., r.sub.a.sub.1=0) which represents the deviation.
(87) The PID controller 5 performs PID control calculations on the value (r.sub.a.sub.1) of the deviation and thereby generates the torque command value T.sub.1 used to swing the link 101. That is, the PID controller 5 serving as a feedback control system outputs the torque command value T.sub.1 used to compensate for the deviation between the swing angle .sub.1 and target swing angle r.sub.a of the link 101 (i.e., to bring the swing angle .sub.1 close to the target swing angle r.sub.a).
(88) According to this first embodiment, a transfer function of the PID controller 5 is given by
(89)
(90) Now, from Eq. (2),
(u.sub.f1u.sub.e1)r=T.sub.1 (4)
(91) Thus, if the contraction force command values U.sub.e1 and u.sub.f1 are determined so as to satisfy Eq. (4) above, the link 101 can be swung by torque corresponding to the torque command value T.sub.1.
(92) However, a condition for the stiffness of the link 101 at the joint given by Eq. (5) below has to be satisfied at the same time.
(u.sub.f1+u.sub.e1)kr.sup.2=r.sub.s (5)
(93) The stiffness command value U.sub.1 which represents the sum of the two contraction force command values u.sub.e1 and u.sub.f1 can be defined by Eq. (6) below.
u.sub.f1+u.sub.e1=U.sub.1 (6)
(94) Thus, stiffness command value U.sub.1 can be expressed by Eq. (7) below using the target stiffness r.sub.s. Since the elastic force constant k and the moment arm length r are constants, the target stiffness r.sub.s and stiffness command value U.sub.1 are proportional to, and thus equivalent to, each other.
U.sub.1=r.sub.s/kr.sup.2 (7)
(95) The contraction force command values u.sub.e1 and u.sub.f1 need to be determined so as to satisfy Eq. (7). To satisfy the torque command value T.sub.1 and stiffness command value U.sub.1 at the same time, Eqs. (4) and (6) can be solved for u.sub.e1 and u.sub.f1 to obtain Eq. (8) below.
(96)
(97) However, the artificial muscle actuators generate forces only in the contraction direction. Therefore, the conditions in Eq. (9) below have to be satisfied simultaneously.
u.sub.f10,u.sub.e10 (9)
(98) Eqs. (8) and (9) give the conditions in Eq. (10) below.
T.sub.1/rU.sub.1,T.sub.1/rU (10)
(99) That is, the torque command value T.sub.1 needs to satisfy the conditions in Eq. (11) below.
U.sub.1rT.sub.1U.sub.1r (11)
(100) Thus, once the conditions in Eq. (11) are satisfied, the stiffness of the link 101 at the joint matches the target stiffness r.sub.s and the swing angle of the link 101 is set at the target swing angle r.sub.a based on the torque command value T.sub.1.
(101) Thus, according to this first embodiment, the multiplier 6 finds the product U.sub.1r of the moment arm length r and stiffness command value U.sub.1 and the saturation circuit 7 limits the torque command value T.sub.1 (i.e., feedback control input) to the values specified by Eq. (12) to satisfy Eq. (11).
|T.sub.1|U.sub.1r (12)
(102) That is, if the absolute value of the torque command value T.sub.1 generated by the PID controller 5 is equal to or smaller than the product U.sub.1r, the saturation circuit 7 outputs the torque command value T.sub.1 generated by the PID controller 5, as it is. If the absolute value of the torque command value T.sub.1 generated by the PID controller 5 is larger than the product U.sub.1r, the saturation circuit 7 generates and outputs a new torque command value T.sub.1 whose absolute value is limited to or below the product U.sub.1r.
(103) Incidentally, instead of being the saturation circuit 7 described above, the torque command correction unit may be a circuit which functions to keep the torque command value T.sub.1 (control input) within the range of Eq. (11) by varying the gain of the PID controller 5.
(104) For cases where the touch sensor 2 does not output a detection signal (when the touch sensor 2 is off), operation of the control apparatus 150 will be described below with reference to
(105) Then, the subtracter 3 calculates the value (r.sub.a.sub.1) which represents the deviation between the swing angle and target swing angle r.sub.a of the link 101 (deviation calculation step).
(106) Since the touch sensor 2 is off, the gain adjuster 4 sets the multiplier factor, i.e., the coefficient value G.sub.t, to 1, and outputs the value (r.sub.a.sub.1) of the deviation as it is.
(107) The PID controller 5 performs PID control calculations on the value (r.sub.a.sub.1) of deviation acquired from the gain adjuster 4, and thereby generates the torque command value T.sub.1 used to swing the link 101 (torque command generating step).
(108) The multiplier 6 acquires the stiffness command value U.sub.1 and moment arm length r and calculates the product U.sub.1r thereof (multiplication step).
(109) If the absolute value of the torque command value T.sub.1 generated by the PID controller 5 is equal to or smaller than the product U.sub.1r, the saturation circuit 7 outputs the torque command value T.sub.1 generated by the PID controller 5, as it is. If the absolute value of the torque command value T.sub.1 generated by the PID controller 5 is larger than the product U.sub.1r, the saturation circuit 7 generates and outputs a new torque command value T.sub.1 whose absolute value is limited to or below the product U.sub.1r (torque command correction step).
(110) Specifically, the saturation circuit 7 outputs a new torque command value T.sub.1 whose absolute value is equal to the product U.sub.1r. For example, if the torque command value T.sub.1 generated by the PID controller 5 is larger than U.sub.1r, the new torque command value T.sub.1 is set equal to U.sub.1r. On the other hand, if the torque command value T.sub.1 generated by the PID controller 5 is smaller than U.sub.1r, the new torque command value T.sub.1 is set equal to U.sub.1r. Consequently, the torque command value T.sub.1 is limited to Eq. (11), and thus the final contraction force command values u.sub.e1 and u.sub.f1 do not become negative.
(111) Then, the contraction force command value calculating unit 8 finds the contraction force command values u.sub.e1 and u.sub.f1 using the calculation formulae (U.sub.1+T.sub.1/r)/2, (U.sub.1T.sub.1/r)/2 based on the torque command value T.sub.1 output from the saturation circuit 7 (contraction force command value calculating step). Then, pneumatic pressures of the actuators e.sub.1 and f.sub.1 are adjusted to the respective contraction force command values u.sub.e1 and u.sub.f1, and consequently the contraction forces of the actuators e.sub.1 and f.sub.1 are adjusted to the contraction force command values u.sub.e1 and u.sub.f1.
(112) Through the above operation, the contraction force command values u.sub.e1 and u.sub.f1 are set by feedback control so as to adjust the swing angle .sub.1 of the link 101 to the target swing angle r.sub.a and adjust the stiffness of the link 101 at the joint to the target stiffness r.sub.s (=U.sub.1kr.sup.2).
(113) Consequently, the angle and stiffness of the link 101 can be controlled simultaneously using feedback control simpler than feed forward control. This eliminates the need for iterative calculations required by feed forward control even if the target swing angle r.sub.a and target stiffness r.sub.a (i.e., stiffness command value U.sub.1) of the link 101 are changed, and thereby allows the swing angle and stiffness of the link 101 to be adjusted quickly to the target values.
(114) However, when the feedback control system has high gain, the stiffness of the joint consequently becomes predominant. That is, when an external force acts on the link 101, since the link 101 tends to swing away from the position located at the target swing angle r.sub.a due to the external force, if the coefficient value is set at G.sub.t=1, the value (r.sub.a.sub.1) which represents the deviation between the swing angle .sub.1 and target swing angle r.sub.a becomes non-zero.
(115) Consequently, the contraction forces of the actuators e.sub.1 and f.sub.1 are set so as to return the link 101 to its target position located at the target swing angle r.sub.a, based on the torque command value T.sub.1 output from the PID controller 5. As a result, the link 101 is positioned at its target position. Therefore, when an external force acts on the link 101, the contraction forces of the actuators e.sub.1 and f.sub.1 are set so as to prevent movement of the link 101, causing the stiffness of the link 101 to become higher than the target stiffness r, and thereby impairing the flexibility of the link 101.
(116) Thus, during a period when the touch sensor 2 continues to output a detection signal by sensing an external force acting on the link 101, the gain adjuster 4 multiplies the value (r.sub.a.sub.1) which represents a deviation by the coefficient value G.sub.t=0 and outputs r.sub.a.sub.1=0 which indicates that there is no deviation even if there actually is a deviation. That is, the gain adjuster 4 calculates and outputs a new value (r.sub.a.sub.1=0) which represents the deviation.
(117) Consequently, even if a deviation occurs actually under the action of an external force, the PID controller 5 regards that the deviation is 0 and outputs the same torque command value T.sub.1 as just before the detection of the detection signal, causing the stiffness of the link 101 to be kept at the target stiffness r.sub.s. Thus, even if an external force acts on the link 101, the coefficient value is set quickly to G.sub.t=0, causing the feedback control system to be shut off and thereby maintaining the flexibility of the link 101.
(118) When the touch sensor 2 is switched off, the coefficient value on the gain adjuster 4 is switched to G.sub.t=1, and consequently feedback control is performed based on the actual deviation (r.sub.a.sub.1).
(119) (3) Simulation
(120) A simulation was performed using the control apparatus 150 illustrated in
(121) The target stiffness r.sub.s of the link 101 at the joint was controlled to be r.sub.s=U.sub.1kr.sup.2=0.4kr.sup.2 [Nm/rad]. Since the elastic force constant k and the moment arm length r are constants, the actual stiffness of the joint can be controlled to be 0.4 when the stiffness command value U.sub.1 is U.sub.1=0.4.
(122) In
(123) It can be seen from
(124) Next, a simulation was carried out assuming that the tip of the link 101 was pushed by an external force. A torque disturbance tending to turn the joint angle in the positive direction was applied to the joint of the link 101 between the 10th and 11th seconds. While the touch sensor 2 was being touched (between the 10th and 11th seconds), the coefficient value G.sub.t of the gain adjuster 4 was set to 0. The stiffness command value U.sub.1 was set to 0.3, 1.0 and 10 by varying the target stiffness r.sub.s of the link 101 at the joint, and responses thereto are indicated by a solid line, broken line and dotted line, respectively, in
(125) It can be seen that the stiffness of the joint in response to the stiffness command value U.sub.1=0.3 indicated by the solid line was kept lower than when the stiffness command value U.sub.1 was 1.0 or 10, meaning that the swing angle of the link 101 was displaced greatly by the external force. It can be seen that the joint was displaced in the same direction as the touching force when the link 101 was touched by the object, meaning that flexible control was achieved in response to the touch of the object. With increases in the target stiffness r.sub.s (i.e., stiffness command value U.sub.1), the stiffness of the joint was increased, decreasing the amount of displacement of the link in response to the touch.
(126) It can be seen that this first embodiment allows the stiffness of the link 101 at the joint to be changed arbitrarily while positioning the link 101 at the target swing angle r.sub.a.
(127) For comparison, the contraction force command values u.sub.e1 and u.sub.f1 determined using Eq. (7) without regard for the conditions in Eq. (10) are illustrated in
(128) Consequently, although the link 101 is kept at the target swing angle as illustrated in
(129) [Second Embodiment]
(130) Next, a robot system according to a second embodiment of the present invention will be described in detail.
(131) (1) Modeling
(132) The robot system according to the present embodiment, i.e., the two-link, three-pair six-muscle manipulator is illustrated in
(133) The first link 201 is a longitudinal member. A base end 201a of the first link 201 is swingably supported by the pulley 203 within a plane (hereinafter referred to as a working plane) of an x-y orthogonal coordinate system. The second link 202 is a longitudinal member. A base end 202a of the second link 202 is swingably supported at a tip 201b of the first link 201 within the working plane.
(134) An end effector (such as a hand: not shown) is installed at a tip 202b (hereinafter referred to as a link tip) of the second link 202. That is, the first link 201 is placed between a first joint and second joint and swingably supported by the first joint while the second link 202 is swingably supported by the second joint.
(135) Also, the robot system 200 is equipped with a pair of first actuators .sub.e1 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. The first actuators e.sub.1 and f.sub.1 are connected at one end to the pulley 203 and connected at the other end to the longitudinal center of the first link 201, being placed in antagonism to each other so as to swing the first link 201 using a difference between contraction forces.
(136) Also, the second actuators e.sub.2 and f.sub.2 are connected at one end to the longitudinal center of the first link 201 and connected at the other end to the base end 202a of the second link 202, being placed in antagonism to each other so as to swing the second link 202 using a difference between contraction forces. Also, the third actuators e.sub.3 and f.sub.3 are connected at one end to the pulley 203 and connected at the other end to the base end 202a of the second link 202, being placed in antagonism to each other so as to swing the first link 201 and second link 202 using a difference between contraction forces.
(137) Also, the robot system 200 is equipped with a control apparatus 250 adapted to adjust the contraction forces of the actuators e.sub.1, f.sub.1, e.sub.2, f.sub.2, e.sub.3 and f.sub.3 based on respective contraction force command values and thereby control the operation of the links 201 and 202.
(138) The first actuators e.sub.1 and f.sub.1 are single-joint driving actuators adapted to drive the first link 201. The second actuators e.sub.2 and f.sub.2 are single-joint driving actuators adapted to drive the second link 202. The third actuators e.sub.3 and f.sub.3 are simultaneous two-joint driving actuators adapted to simultaneously drive the first link 201 and second link 202. It is known that the upper arms in the upper limbs and thighs in the lower limbs of humans have simultaneous two-joint driving actuators called bi-articular muscles. The four limbs of humans have complicated muscle arrangements, but a two-link model having three pairs of muscles for a total of six muscles has been presented by introducing the concept of effective muscles.
(139) The actuators e.sub.1, f.sub.1, e.sub.2, f.sub.2, e.sub.3 and f.sub.3 are pneumatic artificial muscle actuators having viscoelastic properties of muscles illustrated in
(140) Let u, and u.sub.en and u.sub.fn (n=1, 2, 3) denote contraction force command values given to the actuators e.sub.1, f.sub.1, e.sub.2, f.sub.2, e.sub.3 and f.sub.3 in
(141) A first swing angle .sub.1 is the swing angle of the first link 201 around an x axis serving as a reference axis and a second swing angle .sub.2 is the swing angle of the second link 202 around an axis extending in the longitudinal direction of the first link 201.
(142) Let r denote the length of the moment arm, i.e., the distance between a swing center of the first link 201 and connection points of the actuators e.sub.1 and f.sub.1 with the pulley 203 as well as the distance between a swing center of the second link 202 and connection points of the actuators e.sub.2 and f.sub.2 with the second link 202.
(143) According to this second embodiment, if k and b are the elastic force constant and viscous force constant of each muscle, an equation of motion of the two-link manipulator is given by Eqs. (13) and (14) below.
(144)
(145) (2) Control System Design
(146) With the robot system 200 which is a two-link manipulator, the hand comes into direct contact with the outside world, and thus it is important to control hand stiffness, i.e., the stiffness of the link tip 202b. The hand stiffness is represented by an ellipse (stiffness ellipse), such as illustrated in
(147) In this second embodiment, the x-y orthogonal coordinate system is defined in the working plane and the stiffness characteristics at the link tip 202b is expressed in the x-y orthogonal coordinate system by the stiffness ellipse having its center at the link tip 202b. The stiffness ellipse represents distribution of stiffness in each direction, indicating that the larger the distance between the link tip 202b and stiffness ellipse, the higher the stiffness.
(148)
(149) The control apparatus 250 is equipped with a first swing angle detection sensor 51 adapted to detect the first swing angle .sub.1 of the first link 201 with respect to the pulley 203 and a second swing angle detection sensor 61 adapted to detect the second swing angle .sub.2 of the second link 202 with respect to the first link 201. Also, the control apparatus 250 is equipped with a touch sensor 52 adapted to output a detection signal, indicating the existence of any external force acting on the second link 202.
(150) Also, the control apparatus 250 is equipped with a subtracter 53 and gain adjuster 54 serving as first deviation calculation units, and a PID controller 55 serving as a first torque command generating unit. Also, the control apparatus 250 is equipped with a multiplier 56 serving as a first multiplication unit adapted to multiply a first stiffness command value U.sub.1 by the moment arm length r.sub.1 from the swing center of the first link 201. Incidentally, in
(151) Also, the control apparatus 250 is equipped with a saturation circuit 57 serving as a first torque command correction unit adapted to correct a torque command value T.sub.1 output from the PID controller 55. Furthermore, the control apparatus 250 is equipped with a first contraction force command value calculating unit 58 adapted to determine contraction force command values u.sub.e1 and u.sub.f1 for the actuators e.sub.1 and f.sub.1 by calculation using the torque command value T.sub.1 and stiffness command value U.sub.1.
(152) Similarly, the control apparatus 250 is equipped with a subtracter 63 and gain adjuster 64 serving as second deviation calculation units, and a PID controller 65 serving as a second torque command generating unit. Also, the control apparatus 250 is equipped with a multiplier 66 serving as a second multiplication unit adapted to multiply a second stiffness command value U.sub.2 by the moment arm length r.sub.2 from the swing center of the second link 202. Incidentally, in
(153) Also, the control apparatus 250 is equipped with a saturation circuit 67 serving as a second torque command correction unit adapted to correct a torque command value T.sub.2 output from the PID controller 65. Furthermore, the control apparatus 250 is equipped with a second contraction force command value calculating unit 68 adapted to determine contraction force command values u.sub.e2 and u.sub.f2 for the actuators e.sub.2 and f.sub.2 by calculation using the torque command value T.sub.2 and stiffness command value U.sub.2.
(154) The components will be described in detail below. To begin with, the swing angle detection sensors 51 and 61 are sensors such as potentiometers or encoders. Although not illustrated in
(155) The touch sensor 52 is installed on an end effector (such as a hand: not shown) or the second link 202 and adapted to output a detection signal when an object touches the end effector or second link 202. That is, an external force acting on the second link 202 means that an object is in touch with the end effector or second link 202.
(156) The subtracter 53 calculates a value (r.sub.a1.sub.1) which represents a first deviation (difference) between the first swing angle .sub.1 and first target swing angle r.sub.a1. Similarly, the subtracter 63 calculates a value (r.sub.a2.sub.2) which represents a second deviation (difference) between the second swing angle .sub.2 and second target swing angle r.sub.a2.
(157) The gain adjuster 54 multiplies the output of the subtracter 53, i.e., the value (r.sub.a174 .sub.1) which represents the first deviation, by a first coefficient value G.sub.t1 and outputs the product, where the coefficient value G.sub.t1 represents contact gain. Similarly, the gain adjuster 64 multiplies the output of the subtracter 63, i.e., the value (r.sub.a2.sub.2) which represents the second deviation, by a second coefficient value G.sub.t2 and outputs the product, where the coefficient value G.sub.t2 represents contact gain. The coefficient values G.sub.t1 and G.sub.t2 are values between 0 and 1. When there is no detection signal from the touch sensor 52, the gain adjusters 54 and 64 set the coefficient values at G.sub.t1=1 and G.sub.t2=1 and output the values (r.sub.a1.sub.1) and (r.sub.a2.sub.2) which represent the received deviations.
(158) During a period when a detection signal continues to be output from the touch sensor 52, the gain adjusters 54 and 64 multiply the values (r.sub.a1.sub.1) and (r.sub.a2.sub.2) which represent deviations by the respective coefficient values G.sub.t1=0 and G.sub.t2=0 and output new values (i.e., r.sub.a1.sub.1=0, r.sub.a2.sub.2=0) which represent the deviations.
(159) The PID controller 55 performs PID control calculations on the value (r.sub.a1.sub.1) which represents the first deviation, and thereby generates the first torque command value T.sub.1 used to swing the first link 201. That is, the PID controller 55 serving as a feedback control system outputs the first torque command value T.sub.1 used to compensate for the first deviation between the first swing angle .sub.1 and first target swing angle r.sub.a1 of the first link 201 (i.e., to bring the swing angle .sub.1 close to the target swing angle r.sub.a1).
(160) Similarly, the PID controller 65 performs PID control calculations on the value (r.sub.a2.sub.2) which represents the second deviation, and thereby generates the second torque command value T.sub.2 used to swing the second link 202. That is, the PID controller 65 serving as a feedback control system outputs the second torque command value T.sub.2 used to compensate for the second deviation between the second swing angle .sub.2 and second target swing angle r.sub.a2 of the second link 202 (i.e., to bring the swing angle .sub.2 close to the target swing angle r.sub.a2).
(161) A controlling method for the first actuators e.sub.1 and f.sub.1 and second actuators e.sub.2 and f.sub.2 is the same as the first embodiment described above. Relationships among the contraction force command values u.sub.en and u.sub.fn, nth torque command value T.sub.n, and nth stiffness command value U.sub.n for the nth actuators e.sub.n and f.sub.n are given by Eqs. (15) and (16) below (where n=1, 2).
(u.sub.fnu.sub.en)r.sub.n=T.sub.n, n=1,2 (15)
u.sub.fn+u.sub.en=U.sub.n, n=1,2 (16)
(162) To satisfy the torque command value T.sub.1 and stiffness command value U.sub.1 simultaneously, the contraction force command value u.sub.f1=(U.sub.1+T.sub.1/r.sub.1)/2 and the contraction force command value u.sub.e1=(U.sub.1T.sub.1/r.sub.1)/2 can be satisfied. Also, to satisfy the torque command value T.sub.2 and stiffness command value U.sub.2 simultaneously, the contraction force command value u.sub.f2=(U.sub.2+T.sub.2/r.sub.2)/2 and the contraction force command value u.sub.e2=(U.sub.2T.sub.2/r.sub.2)/2 can be satisfied.
(163) Besides, each contraction force command value needs to satisfy the conditions in Eq. (17) below.
u.sub.fn0,u.sub.en0, n=1,2 (17)
(164) That is, the torque command value T.sub.n needs to satisfy the conditions in Eq. (18) below.
U.sub.nr.sub.nT.sub.nU.sub.nr.sub.n, n=1,2 (18)
(165) Thus, once the conditions in Eq. (18) are satisfied, the stiffnesses of the links 201 and 202 at the joint become the target stiffnesses r.sub.s1 and r.sub.s2 and the swing angles of the links 201 and 202 are set at the target angles r.sub.a1 and r.sub.a2 based on the torque command values T.sub.1 and T.sub.2.
(166) Thus, according to this second embodiment, the multiplier 56 finds a first product U.sub.1r.sub.1 of the moment arm length r.sub.1 and first stiffness command value U.sub.1 and the saturation circuit 57 limits the torque command value T.sub.1 to the values specified by Eq. (19) below, to satisfy Eq. (18). Similarly, the multiplier 66 finds a second product U.sub.2r.sub.2 of the moment arm length r.sub.2 and second stiffness command value U.sub.2 and the saturation circuit 67 limits the torque command value T.sub.2 to the values specified by Eq. (19) below, to satisfy Eq. (18).
|T.sub.n|U.sub.nr.sub.n, n=1,2 (19)
(167) That is, if the absolute value of the first torque command value T.sub.1 generated by the PID controller 55 is equal to or smaller than the first product U.sub.1r.sub.1, the saturation circuit 57 outputs the first torque command value T.sub.1 generated by the PID controller 55, as it is. If the absolute value of the first torque command value T.sub.1 generated by the PID controller 55 is larger than the first product U.sub.1r.sub.1, the saturation circuit 57 generates and outputs a new first torque command value T.sub.1 whose absolute value is limited to or below the first product U.sub.1r.sub.1.
(168) Similarly, if the absolute value of the second torque command value T.sub.2 generated by the PID controller 65 is equal to or smaller than the second product U.sub.2r.sub.2, the saturation circuit 67 outputs the second torque command value T.sub.2 generated by the PID controller 65, as it is. If the absolute value of the second torque command value T.sub.2 generated by the PID controller 65 is larger than the second product U.sub.2r.sub.2, the saturation circuit 67 generates and outputs a new second torque command value T.sub.2 whose absolute value is limited to or below the second product U.sub.2r.sub.2.
(169) Incidentally, if a difference is created between contraction force command values u.sub.e3 and u.sub.f3 for the third actuators e.sub.3 and f.sub.3, torque can be imparted to the joint as in the case of the first and second actuators. However, it is redundant to control a single joint using multiple position feedback control systems and this will complicate the design of the feedback control systems.
(170) Therefore, in this second embodiment, the third actuators e.sub.3 and f.sub.3 are used to give stiffness to respective joints. Thus, if the difference between the contraction force command values u.sub.e3 and u.sub.f3 is 0 and the third stiffness command value is U.sub.3, Eq. (20) holds.
u.sub.f3u.sub.e3=0
u.sub.f3+u.sub.e3=U.sub.3 (20)
(171) When Eq. (20) is solved, the contraction force command values u.sub.e3 and u.sub.f3 are as follows:
(172)
(173) Thus, according to this second embodiment, the control apparatus 250 is equipped with a third contraction force command value calculating unit 78 adapted to set the contraction force command values u.sub.e3 and u.sub.f3 for the respective third actuators e.sub.3 and f.sub.3 to the third stiffness command value U.sub.3 as illustrated in Eq. (21).
(174) In the case of the single-link manipulator according to the first embodiment described above, the joint stiffness and hand stiffness are identical. In the case of the two-link manipulator according to this second embodiment equipped with three pairs of muscles for a total of six muscles, the hand stiffness can be determined by adjusting the stiffness command values U.sub.1, U.sub.2 and U.sub.3.
(175) For example, if the stiffness command values U.sub.1, U.sub.2 and U.sub.3 are adjusted as follows,
U.sub.1=U.sub.2=U.sub.3 (22)
it is known that the major axis of the stiffness ellipse points in the direction connecting the first joint with the hand.
(176) Now, let us determine stiffness command values U.sub.1, U.sub.2 and U.sub.3 which will cause one of the major axis and minor axis of the stiffness ellipse to be parallel to an x axis which is a reference axis in the x-y orthogonal coordinate system.
(177) Let x.sub.t and y.sub.t denote very small displacements at the link tip 202b caused by very small external forces F.sub.x and F.sub.y parallel to the x axis and y axis, respectively. Also, let .sub.1 and .sub.2 denote very small rotation angles of the links 201 and 202 caused by the very small external forces F.sub.x and F.sub.y, respectively. When very small rotations occur, the actuators having muscular viscoelasticity generate very small torques T.sub.p1 and T.sub.p2 in the links due to the elastic forces of muscles as given by Eqs. (23) and (24) below.
T.sub.p1={U.sub.1.sub.1+U.sub.3(.sub.1+.sub.2)}kr.sup.2 (23)
T.sub.p2={U.sub.2.sub.2+U.sub.3(.sub.1+.sub.2)}kr.sup.2 (24)
(178) When the above relationship is represented by a matrix, the relationship between the very small angles and torques is expressed in a stiffness matrix K.sub.s as shown in Eq. (25) below.
(179)
(180) Here, the Jacobian matrix J which is given by Eq. (26) below will be introduced.
(181)
(182) Consequently, the relationship between the very small hand displacements and very small external forces is expressed in a compliance matrix J.sub.s as shown in Eq. (27) below.
(183)
(184) Since the inverse matrix of the compliance matrix represents stiffness, the condition that the axes of the stiffness ellipse are parallel to the x and y axes is given by
J.sub.S(1.2)=J.sub.S(2, 1)=0 (28)
when the equation is solved for the stiffness command value U.sub.3,
(185)
(186) For cases where the touch sensor 52 does not output a detection signal (when the touch sensor 52 is off), operation of the control apparatus 250 will be described below with reference to
(187) Then, the subtracter 53 calculates the value (r.sub.a1.sub.1) which represents the first deviation between the first swing angle .sub.1 and first target swing angle r.sub.a1 of the first link 201 (first deviation calculation step). Similarly, the subtracter 63 calculates the value (r.sub.a2.sub.2) which represents the second deviation between the second swing angle .sub.2 and second target swing angle r.sub.a2 of the second link 202 (second deviation calculation step).
(188) Since the touch sensor 52 is off, the gain adjusters 54 and 64 set the multiplier factors, i.e., the coefficient values G.sub.t1 and G.sub.t2, to 1, and output the values (r.sub.a1.sub.1) and (r.sub.a2.sub.2) which represent the deviations, as they are.
(189) The PID controller 55 performs PID control calculations on the value (r.sub.a1.sub.1) of deviation acquired from the gain adjuster 54 and thereby generates the first torque command value T.sub.1 used to swing the first link 201 (first torque command generating step). Similarly, the PID controller 65 performs PID control calculations on the value (r.sub.a2.sub.2) of deviation acquired from the gain adjuster 64 and thereby generates the second torque command value T.sub.2 used to swing the second link 202 (second torque command generating step).
(190) The multiplier 56 acquires the first stiffness command value U.sub.1 and the moment arm length r.sub.1 of the first link 201 and calculates the first product U.sub.1r.sub.1 thereof (first multiplication step). Similarly, the multiplier 66 acquires the second stiffness command value U.sub.2 and the moment arm length r.sub.2 of the second link 202 and calculates the second product U.sub.2r.sub.2 thereof (second multiplication step).
(191) If the absolute value of the first torque command value T.sub.1 generated by the PID controller 55 is equal to or smaller than the first product U.sub.1r.sub.1, the saturation circuit 57 outputs the first torque command value T.sub.1 generated by the PID controller 55, as it is. If the absolute value of the first torque command value T.sub.1 generated by the PID controller 55 is larger than the first product U.sub.1r.sub.1, the saturation circuit 57 generates and outputs a new first torque command value T.sub.1 whose absolute value is limited to or below the first product U.sub.1r.sub.1 (first torque command correction step). Incidentally, in
(192) Specifically, the saturation circuit 57 outputs a new first torque command value T.sub.1 whose absolute value is equal to the product U.sub.1r.sub.1. For example, if the first torque command value T.sub.1 generated by the PID controller 55 is larger than U.sub.1r.sub.1, the new first torque command value T.sub.1 is set equal to U.sub.1r.sub.1. On the other hand, if the first torque command value T.sub.1 generated by the PID controller 55 is smaller than U.sub.1r.sub.1, the new torque command value T.sub.1 is set equal to U.sub.1r.sub.1. Consequently, the first torque command value T.sub.1 is limited to Eq. (18), and thus the final contraction force command values u.sub.e1 and u.sub.f1 do not become negative.
(193) Similarly, if the absolute value of the second torque command value T.sub.2 generated by the PID controller 65 is equal to or smaller than the second product U.sub.2r.sub.2, the saturation circuit 67 outputs the second torque command value T.sub.2 generated by the PID controller 65, as it is. If the absolute value of the second torque command value T.sub.2 generated by the PID controller 65 is larger than the second product U.sub.2r.sub.2, the saturation circuit 67 generates and outputs a new second torque command value T.sub.2 whose absolute value is limited to or below the second product U.sub.2r.sub.2 (second torque command correction step). Incidentally, in
(194) Then, the first contraction force command value calculating unit 58 finds the contraction force command values u.sub.e1 and u.sub.f1 using the calculation formulae (U.sub.1+T.sub.1/r.sub.1)/2, (U.sub.1T.sub.1/r.sub.1)/2 based on the first torque command value T.sub.1 output from the saturation circuit 57 (first contraction force command value calculating step).
(195) Similarly, the second contraction force command value calculating unit 68 finds the contraction force command values u.sub.e2 and u.sub.f2 using the calculation formulae (U.sub.2+T.sub.2/r.sub.2)/2, (U.sub.2T.sub.2/r.sub.2)/2 based on the second torque command value T.sub.2 output from the saturation circuit 67 (second contraction force command value calculating step).
(196) Thus, as the contraction force command values u.sub.e1 and u.sub.f1 are set by the feedback control, the swing angle .sub.1 of the link 201 is adjusted to the target swing angle r.sub.a1 and the stiffness of the link 201 at the first joint is adjusted to the target stiffness r.sub.s1 (=U.sub.1kr.sub.1.sup.2). Similarly, as the contraction force command values u.sub.e2 and u.sub.f2 are set by the feedback control, the swing angle .sub.2 of the link 202 is adjusted to the target swing angle r.sub.a2 and the stiffness of the link 202 at the second joint is adjusted to the target stiffness r.sub.s2 (=U.sub.2kr.sub.2.sup.2).
(197) Consequently, the angle and stiffness of the links 201 and 202 can be controlled simultaneously using feedback control simpler than feed forward control. This eliminates the need for iterative calculations required by feed forward control even if the target swing angles and target stiffness (i.e., stiffness command values U.sub.1 and U.sub.2) of the links 201 and 202 are changed, and thereby allows the swing angles and stiffness of the links to be adjusted quickly to the target values.
(198) During a period when the touch sensor 52 continues to output a detection signal by sensing an external force acting on the first link 201, the gain adjuster 54 produces an output by multiplying the value (r.sub.a1.sub.1) which represents the first deviation by the first coefficient value G.sub.t1=0. That is, the gain adjuster 54 calculates and outputs a new value (r.sub.a1.sub.1=0) which indicates that there is no deviation even if there actually is a deviation.
(199) Similarly, during a period when the touch sensor continues to output a detection signal by sensing an external force acting on the second link 202, the gain adjuster 64 produces an output by multiplying the value (r.sub.a2.sub.2) which represents the second deviation by the second coefficient value G.sub.t2=0. That is, the gain adjuster 64 calculates and outputs a new value (r.sub.a2.sub.2=0) which indicates that there is no deviation even if there actually is a deviation.
(200) Consequently, even if a deviation occurs actually under the action of an external force, the PID controllers 55 and 65 regard that the deviation is 0 and output the same torque command values T.sub.1 and T.sub.2 as just before the detection of the detection signal, causing the stiffness of the links 201 and 202 to be kept at the target stiffness. Thus, even if an external force acts on the links 201 and 202, the coefficient values are set quickly to G.sub.t1=0 and G.sub.t2=0, causing the feedback control system to be shut off and thereby maintaining the flexibility of the links 201 and 202.
(201) When the touch sensor 52 is switched off, the coefficient values on the gain adjusters 54 and 64 are switched to G.sub.t1=1 and G.sub.t2=1, respectively, and consequently feedback control is performed based on the actual deviations (r.sub.a1.sub.1) and (r.sub.a2.sub.2).
(202) (3) Simulation
(203) A simulation was performed using the control apparatus 250 illustrated in
(204) The first and second target swing angles were ramped, and the first link 201 was set to reach r.sub.a1=35 [deg] in 2 seconds starting from an initial angle of 45 [deg] while the second link 202 was set to reach r.sub.at=85 [deg] in 2 seconds starting from an initial angle of 90 [deg].
(205) At the target angles at which the links were positioned, the stiffness command values U.sub.1, U.sub.2 and U.sub.3 of the actuators were controlled such that the axes of the stiffness ellipse at the link tip 202b would be parallel to the x and y axes. The stiffness command values U.sub.1 and U.sub.2 for the single-joint driving actuators were set arbitrarily at U.sub.1=10 and U.sub.2=5. The stiffness command value U.sub.3 for the two-joint driving actuators can be controlled to be U.sub.3=1.907 based on Eq. (29).
(206) In
(207) First, it can be seen from
(208) It can be seen from
(209) In
(210) Similarly, in
(211) Furthermore, the u.sub.f3u.sub.e3 response indicated by a solid line in
(212) Next, a simulation was carried out assuming that the link tip 202b was pushed by an external force. When the links 201 and 202 were stabilized at the target angles, an external force in the negative Y direction was applied to the link tip 202b. While there was touch, the coefficient values G.sub.t1 and G.sub.t2 were set to 0.
(213) In
(214) [Third Embodiment]
(215) Next, a robot system according to a third embodiment of the present invention will be described.
(216) The second embodiment described above realizes hand stiffness control using the elasticity of muscles as follows: after the joint reaches the target angles, the coefficient values G.sub.t1 and G.sub.t2 which represent contact gain are set to 0, causing the feedback control system to be shut off. However the second embodiment is not designed to give flexibility to the links while following the target trajectory. Also, the axes of the stiffness ellipse are controlled to be parallel to the x and y axes only at the target angles.
(217) (1) Control System Design
(218) This third embodiment performs stiffness control while simultaneously causing the link tip 202b to follow a target trajectory. Also, this third embodiment keeps the axes of the stiffness ellipse parallel to the x and y axes even while the target trajectory is being followed.
(219) A control apparatus 250A illustrated in
(220)
(221) That is, using the calculation formula, the calculating unit 70 computes the stiffness command value U.sub.3 which will cause one of the major axis and minor axis of the stiffness ellipse at the link tip 202b to be parallel to a reference axis (e.g., the x axis) in the x-y orthogonal coordinate system illustrated in
(222) After accepting input of the parameters U.sub.1, U.sub.2, r.sub.a1 and r.sub.a2, the calculating unit 70 calculates the third stiffness command value U.sub.3 based on the calculation formula given by Eq. (30) (calculation step). Then, the third contraction force command value calculating unit 78 sets the contraction force command values u.sub.e3 and u.sub.f3 to the third stiffness command value U.sub.3 (third contraction force command value calculation step). Consequently, when the links 201 and 202 are caused to swing based on the respective target swing angles r.sub.a1 and r.sub.a2, the axes of the stiffness ellipse are kept to be parallel to the x and y axes.
(223) Furthermore, according to this third embodiment, during a period when a detection signal continues to be output from the touch sensor 52, the coefficient values G.sub.t1 and G.sub.t2 of the gain adjusters 54 and 64 can take any value between 0 and 1 as shown in Eq. (31) below.
0G.sub.tn1, n=1.2 (31)
(224) As long as the coefficient values G.sub.t1 and G.sub.t2 are very small, although the axes of the stiffness ellipse tilt very slightly from the x and y axes, the links 201 and 202 can follow respective target trajectories when being touched by an object.
(225) In particular, desirably the first coefficient value G.sub.t1 and second coefficient value G.sub.t2 are set to increase with time beginning with the start of the period during which a detection signal continues to be output from the touch sensor 52.
(226) Suppose, for example, a detection signal continues to be output from the touch sensor 52 between the 4th second and the 8th second as illustrated in
(227) According to this third embodiment, the coefficient values G.sub.t1 and G.sub.t2 are set not to become 0 even during a period when a detection signal continues to be output from the touch sensor 52, and are set to reach 1 after a predetermined time. Consequently, the instant an object touches the second link 202 or end effector, the coefficient values G.sub.t1 and G.sub.t2 are set smaller than 1 to maintain the flexibility of the links 201 and 202. Since the coefficient values G.sub.t1 and G.sub.t2 are not 0, although the axes of the stiffness ellipse tilt very slightly from the x and y axes, the links 201 and 202 can follow the respective target trajectories when being touched by an object.
(228) After the predetermined time, the coefficient values G.sub.t1 and G.sub.t2 are set to 1 even if there is touch, and the links 201 and 202 are adjusted to the target swing angles and target stiffness. Thus, the links 201 and 202 maintain flexibility at the moment of touch, and are then positioned quickly at target positions. This improves controllability.
(229) (2) Simulation
(230) A simulation was carried out using the control apparatus 250A illustrated in
(231) Then, the target trajectories (target swing angles) r.sub.a1 and r.sub.a2 of the links 201 and 202 were determined by inverse kinematics such that the trajectory of the link tip 202b would be a linear trajectory parallel to the x axis up to the 11th second. The artificial muscle actuators were controlled based on the stiffness command values U.sub.1, U.sub.2 and U.sub.3 so that the axes of the stiffness ellipse at the link tip 202b would always be parallel to the x and y axes. The stiffness of single-joint driving actuators in terms of the stiffness command values were U.sub.1=10 and U.sub.2=5 as in the case of the first embodiment, and the stiffness command value U.sub.3 was determined sequentially using Eq. (30). It was assumed that touch occurred during the period from the 4th second to the 8th second. The coefficient values G.sub.t1 and G.sub.t2 were set to values other than 0 as illustrated in
(232) In
(233) As can be seen from
(234) On the other hand, with the zero contact gain control indicated by a broken line, the feedback control system is shut off until the 8th second after touch occurs. A tendency to return to the target trajectories occur abruptly in response to angular deviations at the 8th second and later, resulting in a large overshoot.
(235) The value u.sub.f3+u.sub.e3=U.sub.3 indicated by a broken line in
(236) In
(237) It can be seen that with the control apparatus 250A according to this third embodiment, the link tip 202b becomes flexible after a touch occurs, but performs trajectory following to follow a trajectory in a direction parallel to the x axis at the same time. It can be seen that with the zero contact gain control, which does not perform trajectory control while there is touch, the link tip 202b has high flexibility, but deviates greatly from the target trajectory.
(238) [Fourth Embodiment]
(239) Next, a robot system according to a fourth embodiment of the present invention will be described.
(240) In the second embodiment described above, an input unit of the feedback control system is shut off. However, if the joint is not completely stabilized, spikes could be produced in the torque command values when the input unit is shut off. In the second and third embodiments described above, the PID controller 55 serves as the first torque command generating unit and the PID controller 65 serves as the second torque command generating unit, but in this fourth embodiment, the first torque command generating unit and second torque command generating unit differ in configuration.
(241) Specifically, a first torque command generating unit 455 includes the PID controller 55 and a gain adjuster 55A installed on the output side of the PID controller 55 and adapted to multiply calculation results output from the PID controller 55 by the first coefficient value G.sub.t1.
(242) Also, the first torque command generating unit 455 includes a gain adjuster 55B adapted to receive a control input of the PID controller 55 as a feed forward input ffw.sub.1 and multiply the input ffw.sub.1 by the value of (1G.sub.t1). Furthermore, the first torque command generating unit 455 includes an adder 55C adapted to add an output value of the gain adjuster 55A and output value of the gain adjuster 55B and output an addition result as the first torque command value T.sub.1.
(243) A second torque command generating unit 465, which is identical in configuration to the first torque command generating unit 455, will be described below with reference to
(244) Also, the second torque command generating unit 465 includes a gain adjuster 65B adapted to receive a control input of the PID controller 65 as a feed forward input ffw.sub.2 and multiply the input ffw.sub.2 by the value of (1G.sub.t2). Furthermore, the second torque command generating unit 465 includes an adder 65C adapted to add an output value of the gain adjuster 65A and output value of the gain adjuster 65B and output an addition result as the second torque command value T.sub.2.
(245) The feed forward inputs ffw.sub.n (n=1, 2) are results of PID control calculations output by the PID controllers 55 and 65 just before the touch sensor 52 outputs a detection signal.
(246) Consequently, during the period when a detection signal continues to be output from the touch sensor 52, the PID controller 55 performs PID control calculations on the value (r.sub.a1.sub.1) which represents the first deviation and the gain adjuster 55A multiplies the calculation results by the first coefficient value G.sub.t1. The gain adjuster 55B receives the feed forward input ffw.sub.1 and multiplies the input ffw.sub.1 by the value of (1G.sub.t1). The adder 55C adds the output value of the gain adjuster 55A and output value of the gain adjuster 55B and outputs the addition result as the first torque command value T.sub.1.
(247) Similarly, during the period when a detection signal continues to be output from the touch sensor 52, the PID controller 65 performs PID control calculations on the value (r.sub.a2.sub.2) which represents the second deviation and the gain adjuster 65A multiplies the calculation results by the second coefficient value G.sub.t2. The gain adjuster 65B receives the feed forward input ffw.sub.2 and multiplies the input ffw.sub.2 by the value of (1G.sub.t2). The adder 65C adds the output value of the gain adjuster 65A and output value of the gain adjuster 65B and outputs the addition result as the second torque command value T.sub.2.
(248) To take a concrete example, when the touch sensor 52 detects a touch and the coefficient values G.sub.tn become 0, then (1G.sub.tn)=1, and the torque command values T.sub.n output by the torque command generating units 455 and 465 become equal to the values just before touch sensor 52 detects the touch.
(249) Thus, if a touch is detected by the touch sensor during operation of the links 201 and 202, feedback control is performed using the torque command values based on the deviations immediately preceding the touch instead of using the torque command values corresponding to zero deviations. Incidentally, the coefficient values G.sub.t1 and G.sub.t2 may be increased with the passage of time after detection of the detection signal as in the case of the third embodiment described above. Besides, G.sub.t1 and G.sub.t2 may be set to a value smaller than 1, but not small enough to become 0 immediately upon touch.
(250) Thus, this fourth embodiment can prevent spikes in the torque command values T.sub.1 and T.sub.2 during operation of the links 201 and 202 without impairing the flexibility of the links 201 and 202, and thereby further improve controllability.
(251) [Fifth Embodiment]
(252) Next, a robot system according to a fifth embodiment of the present invention will be described. The robot systems described above in the first to fourth embodiments are manipulators serving as working robots, but the control apparatus described in the first to fourth embodiments may also be used for leg control of a walking robot.
(253) With the walking robot, stability of walking on an uneven ground surface can be increased if the stiffness of legs is reduced when the legs touch the ground. Also, if the stiffness ellipse is made parallel to the ground when the legs touch the ground, slippage on the ground can be reduced. However, in a stance phase, it is necessary to support the body by increasing the stiffness of the legs.
(254) On the other hand,
(255) [Sixth Embodiment]
(256) Next, a robot system according to a sixth embodiment of the present invention will be described. In the first to fifth embodiments described above, simultaneous control of positioning and stiffness are performed using artificial muscle actuators placed in antagonism to each other. In this sixth embodiment, the control system according to the present invention is applied to a single-link arm which uses a rotating motor for a joint.
(257) In the configuration of the robot system, the actuators e.sub.1 and f.sub.1 illustrated in
I{umlaut over ()}=u.sub.m (32)
(258) where u.sub.m is control torque generated by the rotating motor. Next, let k denote proportional gain, let b denote differential gain, let r denote virtual moment arm length, and let u.sub.e1 and u.sub.f1 denote virtual contraction force command values to generate a contraction force of a muscle, and a proportional-differential feedback control system for the single-link arm is given by Eq. (33) below.
u.sub.m=(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 ()}(33)
(259) In the equation of the proportional-differential feedback control system, the first term is a torque command value and the second and third terms are the contraction force command values u.sub.e1 and u.sub.f1 for virtual muscles which cause the gains to vary.
(260) The motor circuit P.sub.1 illustrated in
(261) Specifically, the motor circuit P.sub.1 illustrated in
(262) Now, the operation of various components of the control apparatus will be described with reference to
(263) The PID controller 5 serving as a torque command generating unit performs PID control calculations on the value which represents a deviation and thereby generates the torque command value T.sub.1 used to swing the link 101 (torque command generating step).
(264) The multiplier 6 serving as a multiplication unit multiplies the length r of a virtual moment arm from the swing center of the link 101 by the stiffness command value U.sub.1 which represents the sum of the contraction force command values U.sub.e1 and u.sub.f1 and thereby calculates the product U.sub.1r (multiplication step).
(265) If the absolute value of the torque command value T.sub.1 generated by the PID controller 5 is equal to or smaller than the product U.sub.1r, the saturation circuit 7 serving as a torque command correction unit outputs the torque command value T.sub.1 generated by the PID controller 5, as it is. If the absolute value of the torque command value T.sub.1 generated by the PID controller 5 is larger than the product U.sub.1r, the saturation circuit 7 generates and outputs a new torque command value T.sub.1 whose absolute value is limited to or below the product U.sub.1r (torque command correction step).
(266) Then, the contraction force command value calculating unit 8 finds the contraction force command values u.sub.e1 and u.sub.f1 using the calculation formula (U.sub.1+T.sub.1/r)/2, (U.sub.1T.sub.1/r)/2 based on the torque command value T.sub.1 output from the saturation circuit 7 (contraction force command value calculating step).
(267) Consequently, the angle of the link 101 and stiffness of the link 101 at the joint can be controlled simultaneously using feedback control simpler than feed forward control. This eliminates the need for iterative calculations even if target values for the swing angle and stiffness of the link 101 are changed, and thereby allows the swing angle and stiffness of the link 101 to be adjusted quickly to the target values.
(268) Also, according to this sixth embodiment, the control apparatus includes the gain adjuster 4. During the period when a detection signal continues to be output from the touch sensor 2, the gain adjuster 4 multiplies the value which represents the deviation by 0 and thereby calculates a new value (r.sub.a.sub.1=0) which represents the deviation. Consequently, even if a deviation occurs actually under the action of an external force, the PID controller 5 regards that the deviation is 0 and outputs the same torque command value T.sub.1 as just before the detection of the detection signal, causing the stiffness of the link 101 to be kept at the target stiffness r.sub.s. Thus, even if an external force acts on the link 101, the coefficient value is set quickly to G.sub.t=0, causing the feedback control system to be shut off and thereby maintaining the flexibility of the link 101.
(269) [Seventh Embodiment]
(270) In the first to sixth embodiments, a saturation function indicated by a broken line in
(271)
(272) Control of a single-link arm has been handled in the first embodiment. In the present embodiment, a simulation is carried out using a hyperbolic tangent function instead of the saturation function used in the first embodiment and illustrated in the block diagram of
(273) Control of a two-link arm has been handled in the second embodiment. As with the control of a single-link arm, in the present embodiment, a simulation is carried out using a hyperbolic tangent function instead of the saturation function used in the second embodiment and illustrated in the block diagram of
(274) [Eighth Embodiment]
(275) In the fifth embodiment, the simultaneous control of stiffness and following according to the third embodiment is used for leg control of a walking robot. However, with the controlling method according to the third embodiment, the contact gain needs to be adjusted on a trial and error basis. In the fourth embodiment, a simulation of a leg touching the ground in a later stage of the swing phase was carried out. However, if a large obstacle exists on the ground, a touch occurs in an early stage of the swing phase. In so doing, with the controlling method according to the fourth embodiment, when a shift to the stance phase occurs with the contact gain set to 1, since the feedback control system is reactivated with a large difference existing between the target trajectory and toe position, the toe returns suddenly to the target trajectory. Consequently, with the controlling method according to the fourth embodiment, the quadrupedal robot can get off balance when getting over a large obstacle. Thus, in the present embodiment, a walking control system is designed which eliminates the need for adjustment of contact gain and enables gentle leg control even when the robot steps on a large obstacle. Furthermore, a simulation is carried out using a model of the quadrupedal robot to demonstrate that the control system proposed by the present invention enables walking on uneven terrain.
(276) (1) Modeling
(277) A link and muscle arrangements of a quadrupedal robot as well as a coordinate system are illustrated in side view in
(278) The quadrupedal robot controlled in the present embodiment uses two-link manipulators in the front legs and three-link manipulators in the hind legs, where the three-link manipulator in each hind leg is used as an equivalent two-link manipulator with the angle of the third link fixed at 90 degrees. Consequently, the control technique for the two-link, three-pair six-muscle manipulator according to the second embodiment can be applied to both the front legs and hind legs. Also a spherical foot is attached to the tip of each leg. Mass is assigned to the tail and neck, but no mass is assigned to the head. The quadrupedal robot is modeled using mechanical analysis software RecurDyn and used in the present embodiment for a simulation of walking on uneven terrain.
(279) Parameters of the nth link (n=1, 2) of the front and hind legs are as follows. Link lengths l.sub.Fn and l.sub.Hn are l.sub.F1=0.070 m, l.sub.F2=0.12 m, l.sub.H1=0.090 m and l.sub.H2=0.1235 m; moments of inertia I.sub.Fn and I.sub.Hn are I.sub.F1=11.7410.sup.6 kg.Math.m.sup.2, I.sub.F2=52.95910.sup.6 kg.Math.m.sup.2, I.sub.H1=22.8110.sup.6 kg.Math.m.sup.2 and I.sub.H2=94.3510.sup.6 kg.Math.m.sup.2; and masses M.sub.Fn and M.sub.Hn are M.sub.F1=2.1610.sup.2 kg, M.sub.F2=3.629810.sup.2 kg, M.sub.H1=2.7110.sup.2 kg and M.sub.H2=5.255810.sup.2 kg. Lengths of the body in the x and z directions are l.sub.bx=0.28 m and l.sub.bz=0.05 m; z-direction spacing in the groin is l.sub.b1=0.15 m; mass M.sub.b is M.sub.b=0.7309 kg; and pulley diameter and spherical-foot diameter are r=0.02 m and r.sub.f=0.008 m. The elastic force constant and viscous force constant of the artificial muscle actuator are k=150.5 N/m and b=0.01 N.Math.s/m. The elastic force constant of the artificial muscle actuator is determined by measuring a 0.25-inch type Mckibben artificial muscle actuator made by KANDA TSUSHIN KOGYO CO., LTD.
(280) (2) Control System Design
(281) First, a toe trajectory and stiffness ellipse are set for each leg. Regarding the trajectory, the toe draws the upper half of an ellipse in the swing phase, and a straight line in the stance phase. A stride is set to 0.06 m. The present invention realizes stable walking by exhibiting stiffness in a direction perpendicular to the body when legs unexpectedly step on an uneven ground surface. Therefore, the stiffness ellipses are set perpendicular to the local coordinate systems of the legs by the method used in the second embodiment.
(282) In
(283) Similarly, in
(284) Next, a gait used in the present embodiment is illustrated in a gait phase diagram of
(285) A method for setting contact gain is illustrated in a block diagram of
(286) (3) Simulation
(287) A simulation of walking on uneven terrain was carried out using the control system described above. A plate-shaped obstacle 14 mm high and 70 mm wide in the x direction was placed to set up the uneven terrain. Outward appearance of a quadrupedal robot and obstacle drawn by RecurDyn is illustrated in
(288) A simulation of 6-second walking was carried out using the control system illustrated in
(289) Next, effectiveness of the leg control for a quadrupedal robot will be verified using the legs' states of touch illustrated in
(290) It can be seen from the responses obtained by the control technique according to the present embodiment in
(291) With the walking control based on simply following the trajectories of joints, as can be seen from
(292) Loci of the centers of the spherical feet in the simulation of walking are illustrated in
(293) Changes in the posture of the robot controlled by the control technique according to the present embodiment is illustrated in
(294) Accelerations of the body center of gravity in the direction of gravity are illustrated in
(295) In this way, since the control technique according to the present embodiment allows the robot to place feet softly on the ground and prevents the robot from running suddenly onto an obstacle, the control technique can realize stable walking even on uneven terrain with obstacles.
(296) 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.
(297) This application claims the benefit of Japanese Patent Applications No. 2010-212314, filed Sep. 22, 2010 and No. 2011-175521, filed Aug. 11, 2011 which are hereby incorporated by reference herein in their entirety.