System for controlling locomotion of legged walking robot

Abstract: A servo system for controlling locomotion of a biped walking robot, made up of a body link (24) and two leg linkages (27L,R) each connected to the body link by a first drive joint (10) and each including knee (16L,R) and ankle joints (18,20), to follow up a target angle for each drive joint predetermined in series with respect to time such that the robot walks. In order to stabilize robot posture when it could turn over, the drive speed of the joints are feedback controlled in response to the robot turnover probability. Moreover, the predetermined robot gait is modified at such instance, for example, in such a manner that robot leg lands at one of additionally preestablished candidate positions for robot leg landing.

Description: This invention relates to a system for controlling the locomotion of a legged walking robot and, more particularly, to a system for controlling the locomotion of a biped walking robot or the like which is able to walk stably over rough terrain. Two methods have been developed for achieving walking of a legged walking robot. One is the method disclosed, for example, in Japanese Laid-open Patent Publication No. 62-97006 in which data for driving the robot's leg joints is calculated in advance using a large off-board computer and stored in the memory of a computer mounted on the robot for output by the computer during robot locomotion. The other is the method described in, for example, "Legged Robots on Rough Terrain: Experiments in Adjusting Step Length: IEEE 1988, by Jessica Hodgins" in which the robot is equipped with a high-performance on-board computer which calculates the optimum joint angles in real time during robot locomotion and controls the joint drive motors to obtain the calculated angles. While the first method has the advantage of not requiring a sophisticated on-board computer, the fact that the locomotion data is calculated in advance makes it workable only if the conditions encountered during actual walking are completely identical to those envisioned in advance. The method is thus not capable of coping with unforeseen conditions arising in the course of actual walking and, in particular, cannot effectively deal with unexpected undulations and irregularities in the terrain being traversed. Having a high center of gravity and feet with small ground contact areas, a biped robot is physically unstable. For such a robot to walk stably, it is necessary to ensure that the resultant of the weight acting on the robot's center of gravity and the inertial force falls within the ground contact area of the supporting leg. While the weight does not change, the robot's locomotion causes the inertial force to vary constantly in a pattern which repeats in time and space at regular periods insofar as the conditions external to the robot remain constant. The conditions external of the robot are, however, not constant and there are moment-to-moment changes in the terrain in the form of varying inclination, undulations, bumps and the like, as well as changes in the terrain hardness and other physical factors. Since these variations cause changes in the reactive force the robot receives at the time of free leg footfall, they destabilize the robot's locomotion. While of less important than the external condition changes, changes in the internal conditions of the robot can also have a destabilizing effect. For example, friction at the joints varies with the state of shock absorption, and the flexing of mechanical components due to insufficient stiffness can also have an effect. It is impossible to cope with such changes using pre-calculated data. In stabilizing locomotion in the second method, once the state of the robot has been ascertained, it is then necessary to conduct a series of real-time processing operations which include solving highly complex determinants for deciding the gait, calculating optimum location for the next foot placement and driving the free leg for actually placing the foot at the calculated location. In the case of the biped walking robot whose legs each have six degrees of freedom therefore, the large determinants that have to be solved for conducting the control make it necessary to use a very large, high-performance computer. Thus the second method requires the robot to be equipped with a high-speed, high-performance computer, its power consumption is high and the computer itself is large, heavy and expensive. These are disadvantages that are hard to tolerate in a walking robot. There is no difference in the likelihood of changes arising in the terrain conditions between the first method of controlling locomotion on the basis of data calculated offline in advance and the second method of deciding the optimum gait in real time. Moreover, even the second method is not necessarily able to cope quickly enough with changes in the locomotion conditions that arise suddenly, and in this sense, therefore, the problems of the first method are also problems of the second method. The offline setting of a target gait in advance may involve not only the determination of detailed settings such as the aforesaid joint angles but also the setting of such higher level data such as the foot placement position and the position of the center of gravity. Moreover, even in a method which determines the gait in real time during walking, it is not possible to avoid being forced to modify the gait upon encountering sudden, unexpected changes in the walking conditions. Moreover, recent years have seen extensive research into stabilization methods for robots (including legged walking robots) in which the robot's linkages are subjected to kinematic analysis, the robot's behavior is reduced to mathematical equations using various control theories falling in the realm of modern control system theory, and the equations are solved for obtaining control values. However, although the use of modern control system theory makes it possible to obtain very precise control values, the large number of determinants that have to be solved for implementing this type of control require the robot to be equipped with a high-performance computer. Moreover, since it is impossible to fully ascertain the rigidity etc. of the linkages, the results obtained through the application of the theory have been small in proportion to the amount of effort made. According to the present invention there is provided a system for controlling locomotion of a biped walking robot having a body and two leg linkages each connected to the body by a hip drive joint and each having a foot portion and a leg portion connected by an ankle drive joint, including first means for detecting at least an actual angle of each drive joint; and servo control means for driving each drive joint such that at least an error between the detected actual angle and a target angle decreases, wherein: second means is provided for determining a differential value of n-th order of acutal inclination angle of the robot body with respect to the direction of gravity; third means is provided for calculating a deviation between the determined value and a reference value to determine a drive speed of the ankle drive joint of the leg linkage which supports the robot weight by multiplying the deviation by a gain; and said servo control means drives the ankle drive joint at the determined speed. According to the present invention there is further provided a system for controlling locomotion of a biped walking robot having a body and two leg linkages each connected to the body by a hip drive joint and each having a foot portion and a leg portion connected by an ankle drive joint, including servo control means for determining a control value for each of the hip drive joints and the ankle drive joints to follow up a target value such that the robot walks in accordance with a predetermined gait; wherein: first means is provided for determining a differential of n-th order of an actual inclination angle of the robot body with respect to the ground; and second means is provided for calculating a deviation between the determined value and a reference value to determine a modification of the predetermined gait in response to the calculated deviation. By means of this arrangement, at least in preferred forms there is provided a system for controlling the locomotion of a legged walking robot which overcomes the aforesaid drawbacks of the prior art by retaining the advantages that the first method realizes by controlling walking on the basis of data calculated offline in advance while, at the same time, enabling the flexible response to unforeseen changes in locomotion conditions that is required for achieving stable walking; which is able to stabilize the attitude of the robot by quickly coping with sudden changes in terrain conditions, irrespective of which of the aforesaid two mehtods is employed; which overcomes the aforesaid drawbacks by combining the advantages of the aforesaid two methods and, more specifically, to provide such a system wherein the gait is set offline in advance and the set gait can be readily modified for restoring walking stability when unexpected walking conditions are encountered during actual walking, which enables the gait to be readily modified in response to unexpected changes in the walking conditions irrespective of whether or not locomotion data has been set offline in advance; which is capable quickly responding to unexpected changes in the locomotion conditions for restoring the postural stability of the robot in a simple manner and which can be implemented using a relatively low-performance on-board computer. Some embodiments of the invention will now be described by way of example and with reference to the accompanying drawings, in which: Figure 1 is an overall skeleton view of a biped walking robot according to an embodiment of the present invention; Figure 2 is a side view and shows the concrete arrangement from the knee on down of the robot illustrated schematically in Figure 1; Figure 3 is a sectional view taken along line III-III of Figure 2; Figure 4 is a detailed block diagram of the control unit shown in Figure 1; Figure 5 is a flowchart showing the operation of the control unit of Figure 4; Figure 6 is a block diagram showing a control algorithm on drive joints other than ankle joints carried out in procedures in the flowchart of Figure 5; Figure 7 is a block diagram similar to Figure 6, but shows a control algorithm on the ankle joints; Figure 8 is an explanatory view viewed from the front of the robot and showing a manner of stability control according to the first embodiment of the invention carried out in the Figure 5 flowchart in a two-leg support phase; Figure 9 is an explanatory view similar to Figure 8, but viewed from the side of the robot; Figure 10 is an explanatory view similar to Figure 8, but viewed from the front of the robot and shows a manner of the stability control carried out in an one-leg support phase; Figure 11 is an explanatory view similar to Figure 10, but viewed from the side of the robot; Figure 12 is a graph showing characteristics of a feedback gain used in the stability control; Figure 13 is a graph showing other characteristics of the feedback gain used in the stability control; Figure 14 is a timing chart showing characteristics of a feedback gain used in a virtual compliance control carried out in the Figure 5 flowchart; Figure 15 is an explanatory view similar to Figure 9, but shows a manner of the stability control according to the second embodiment of the present invention; Figure 16 is an explanatory view similar to Figure 9, but shows a manner of the stability control according to the third embodiment of the present invention; Figure 17 is an explanatory view similar to Figure 11, but also shows a manner of the stability control according to the third embodiment of the present invention; Figure 18 is a flowchart similar to Figure 5, but shows the fourth embodiment of the present invention; Figure 19 is data showing a predetermined gait established by an offline computer in the terms of joint angles; Figure 20 is a timing chart showing a repetition cycle of gait and specifically illustrating a period for detecting robot overturn and a period for outputting a modified gait; Figure 21 is an explanatory view showing candidate footfall positions at any of which the robot could land its leg; Figure 22 is a graph showing characteristics of a function for selecting one of the candidate footfall positions illustrated in Figure 21; Figure 23 is data showing a modified gait of the Figure 19 gait for realizing changing footfall positions shown in Figure 21; Figure 24 is a side view of the robot showing a standard or reference posture which the robot has to pass before carrying out the gait modification; Figure 25 is an explanatory view showing the fifth embodiment of the present invention in which a modified gait is realized by adjusting some of the robot joint angles; Figure 26 is a graph showing characteristics of a function for adjusting the robot joint angles in the fifth embodiment; Figure 27 is data showing a modified gait of the Figure 19 gait carried out in the fifth embodiment; Figure 28 is a timing chart showing characteristics of the function with respect to time; Figure 29 is a graph showing characteristics of the function according to the sixth embodiment of the present invention; Figure 30 is data showing a modified gait of the Figure 19 gait according to the sixth embodiment; and Figure 31 is a timing chart showing characteristics of the function with respect to time. Some embodiments will now be explained with reference to a biped walking robot as a specific embodiment of a legged walking robot. An overall skeleton view of the biped walking robot is shown in Fig. 1. The robot, designated by reference numeral 1, is provided with six joints (axes) on each of its right (R) and left (L) legs. From the top down, these joints (axes) are hip turning joints (axes) 10R, 10L, hip pitch direction joints (axes) 12R, 12L, hip roll direction joints (axes) 14R, 14L, knee pitch direction joints (axes) 16R, 16L, ankle pitch direction joints (axes) 18R, 18L, and ankle roll direction joints (axes) 20R, 20L. The pitch direction is the direction indicated by "x" and the roll direction is the direction indicated by "y" as shown in the right bottom of the figure. Feet 22R, 22L are attached below and a body (main unit) 24 is disposed at the uppermost position. The body 24 houses a control unit 26. In this arrangement, joints (axes) 10R (L), 12R (L) and 14R (L) together constitute a right (left) hip joint. The three axes meet at a single point. The joints (axes) 18R (L) and 20R (L) together form a right (left) ankle, wherein these two axes also intersect perpendicularly. The three pitch direction joints (axes) 12R (L), 16R (L) and 18R (L) are mutually parallel and the positional relationship thereamong remains unchanged irrespective of the behavior of the other joints (axes). As illustrated, each leg has six degrees of freedom and each foot 22R (L) can be placed at the desired position in the desired direction irrespective of the fact that it is attached to the body 24. Specifically, during walking the legs as a whole can be moved as desired by appropriately driving the 12 (6 x 2) joints (axes) for varying their individual angles, thus enabling desired walking in three-dimensional space. The hip joints and the knee joints are connected by thigh linkages 27R, 27L and the knee joints and ankle joints are connected by crus linkages 28R, 28L. The joints are constituted mainly of motors and reduction gear mechanisms. The arrangement of the knee will now be explained in detail with reference to Figs. 2 and 3. Although a detailed description of the hip joints will not be given, it should be understood that they are of a similar structure to the knees. As the left and right legs are laterally symmetrical, only the right leg will be explained in the following. Referring to Figs. 2 and 3 the output of a motor (not shown) mounted at an intermediate portion of the thigh linkage 27R is transmitted via a belt 82 to the input shaft of a harmonic reduction gear 84 installed at the knee joint (axis) 16R. The upper end of the crus linkage 28R is formed with a recess 87 which accommodates a motor 88, the output of which is input through a belt 90 to a harmonic reduction gear 92 provided at the ankle, whereby the right foot member 22R is driven in the pitch direction about the axis 18R. The foot 22R is further arranged to swing freely in the roll direction about the axis 20R perpendicularly intersecting the axis 18R. For this purpose, there is provided a harmonic reduction gear 94 and a motor 96 for supplying power directly thereto. Each of the motors is provided with a rotary encoder. (Only the rotary encoder 89 for the motor 88 is shown in the drawings.) The ankle is further provided with a six-dimensional force and torque sensor 98 for measuring the x , y and z components transmitted to the robot through the foot and also separately measuring the three directional components of the moment, so as to detect whether or not the foot has landed and the force acting on the supporting leg. The bottom of the foot is approximately flat and is provided with elastic members 220 made of rubber or the like for absorbing the impact received at time the foot touches down. The four corners of the foot bottom are further provided with ground contact switches 99 (not shown in Figs. 2 and 3) of conventional design for detecting contact between the foot and ground. Further, as shown in Fig. 1, a pair of inclination angle sensors 100, 102 are provided at an appropriate location on the body 24 for detecting (a) the amount of angle and angular velocity of the inclination relative to the z-axis in the x-z plane and (b) the amount of angle and angular velocity of the inclination relative to the z-axis in the y-z plane. The outputs of the inclination angle sensors 100, 102 are sent to the control unit 26 housed in the body 24. As shown in the detailed block diagram of Fig. 4, the control unit 26 is constituted as a microcomputer. Here the outputs of the inclination angle sensors 100, 102 etc. are converted to digital values in an A/D converter 104, the output of which is forwarded to a RAM (random access memory) 108 via a bus 106. The outputs of the encoder 89 etc. are sent to the RAM 108 through a counter 110 and the outputs of the ground contact switches 99 etc. are passed through a wave forming circuit 112 and stored in the RAM 108. The control unit has a CPU (central processing unit) 114 which, in the manner to be explained later, reads in the stored locomotion data, calculates speed control commands on the basis of the deviation between the stored locomotion data and measured values received from the counter 110, and forwards the calculated speed control commands through a D/A converter 118 to a servo amplifier 120 for respective motor. The encoder output is further sent through an F/V converter 122 to the servo amplifier 120, whereby a minor loop for speed feedback control is established in each motor. Reference numeral 128 designates a joy stick, 130 a zero reference switch for determining the origin (upright) posture, and 132 a limit switch for preventing overrun. The operation of the control system will now be explained with reference to the flowchart of Fig. 5. The control shown in this figure assumes offline setting of the target joint angles in advance and the use of a virtual compliance control technique, referred to in "Virtual compliance control of multi-degree-of-freedom robots " in the collected papers of the Measurement and Automatic Control Society, Vol.22. No.3, March 1986. The operation commences with step S10 in which the various sections of the system are initialized and then moves to step S12 where a locomotion pattern it is retrieved. This pattern indicates the joint angle target values for walking of the robot over an ideal flat surface of uniform hardness. The prefix "i" indicates the joint number and the suffix "t" indicates the joint angle at time "t". The joints are numbered from the bottom up as 20R = 1, 20L = 2, ..... These time series data are calculated in advance using a large computer and stored in a ROM 116 of the microcomputer. The procedure then advances to step S14 in which the parameters kp, kv ... are read in. These are feedback gains which will be explained in detail later. In the following step S16 the timer value t , the counter value COUNT and the joint number (counter) value i are reset to zero, whereafter walking is started in step S18 and the value of the counter for counting the joint numbers is set to 1 at step S20. The operation then advances to step S22 in which the parameters for the joint angle it ( i = 1) etc. corresponding to the currently set joint number are retrieved from memory. The notation it+1 appearing in the flowchart indicates the target joint angle for the time t+1 following the current time t , namely for time at which the next program cycle begins. A value omega Dt indicates the target angular velocity (to be explained later). And Ft(omega w) is a flag which indicates the two-leg support period, Ft(omega s) a flag indicating the one-leg support period, and Ft(C) a flag indicating the impact absorption control period. The microcomputer determines when the procedure is in this period on the basis of the outputs from the respective six-dimensional force and torque sensor 98 and the like and sets the flag bit to 1 at this time. Next, in step S24, the outputs of the inclination sensors etc. are read in. Here a value iR indicates the actual angle of i-th joint, omega R the actual inclination angular velocity, and M the actual moment acting on the foot. The operation then advances to step S26 in which the position feedback control value iV1 is calculated and to step S28 in which the speed feedback (forward) control value iV2 is calculated. In other words, as shown in Fig. 6, in the control system according to this embodiment there is output to the servo amplifier 120 concerned a speed control value equal to the sum of a feedback value obtained by multiplying the deviation delta  between the joint angle command value it and the actual joint angle iR by a proportional gain kp and a feedback value obtained by multiplying the deviation between the joint angle command value it at time t and the joint angle command value it+1 at time t+1 by a gain kv. It should be noted, however, that the block diagram of Fig. 6 relates to the joints other than the ankle joints and that, as shown in the block diagram of Fig. 7, in the case of the ankle joints there are also fed back control values based on compliance control and the like. This will be explained in more detail later. The operation then advances to step S30 in which discrimination is made as to whether or not the joint number has become 5 or greater, namely as to whether or not the control value of other than the ankle joints is in the process of being calculated, and since the result is of course negative, the procedure moves onto step S32 and the ensuing steps in which, first, inclination angular velocity feedback and the like are carried out. Specifically, in steps S32 to S34 it is discriminated whether the flag Ft(omega w) or flag Ft(omega s) is on (whether the robot is in a two-leg support state or a one-leg support state) and, based on the result of this discrimination, the procedure advances to step S36 or S38 in which a third speed feedback control value iV3 is calculated, as shown in Fig. 7, by multiplying the deviation delta omega between the target inclination angular velocity omega Dt and the actual inclination angular velocity omega R by gain k omega. This will now be explained in more detail. In this control, when it is detected that the inclination angular velocity deviates from the target value, it is judged that there is a probability of the robot overturning. In response, the ankle joints of the supporting leg are driven by an amount equal to the product of the inclination angular velocity deviation and a prescribed coefficient (gain k omega) so as to develop a reactive force against the ground that is proportional to the predicted probability of overturn and thus correct the postural instability of the robot. The gain k omega is defined as shown in Figs. 8 and 9 for the two-leg support periods and as shown in Figs. 10 and 11 for the one-leg support periods. Fig. 8 illustrates inclination angular velocity deviations delta omega acting on the robot as viewed from the front. The directions of the velocity command values to be fed back in these cases are defined as shown in these figures. Specifically, the gain k omega is set at zero for whichever of the roll direction ankle joints 20R, 20L tends to rise off the ground owing to the action of the inclination deviation delta omega and the gain for the other ankle joint which is under heavier load is set in the direction indicated in the drawings. Fig. 9 is a side view of the robot. When an inclination angular velocity acts on the robot in the direction tending to cause it to topple forward as indicated in Fig. 9 (in the left-hand view), the gain for the pitch direction ankle joint 18R (L) of the forward leg is set in the direction for causing the heel of the forward foot to kick the ground and, at the same time, the gain for the joint 18L (R) of the rearward leg is set in the direction for causing the toe of the rearward foot to rise. On the other hand, in response to an inclination angular velocity tending to cause the robot to topple backwards, the gain for the ankle joint 18L (R) is set for causing the toe of the rearward foot to kick the ground and that for the ankle joint 18R (L) of the forward leg is simultaneously set for causing the heel of the rearward foot to rise, as shown in Fig. 9 (in the right-hand view). Fig. 10 is a front view of the robot during a one-leg support period. At this time the sign of the gain k omega is set so as to drive the ankle joint 20L of the supporting leg in the indicated direction. Adjustment of the ankle joints on the free leg side at this time is optional. Fig. 11 is a side view of the robot during a one-leg support period. At this time the gain k omega is set for the ankle joint 18L (R) of the supporting leg in the indicated direction. Adjustment on the free leg side is again optional. Fig. 12 is a graph showing an example of the characteristics of the gain k omega. In this example, the absolute value of the gain k omega is constant and only the sign is changed in the manner described in the foregoing. Alternatively, the absolute value can also be varied among the different states discussed above. The same gain is used for all joints, however. In the case of Fig. 12, the sign of the gain is reversed at the time of passing either way between the two-leg and one-leg support periods. As from the point of realizing smooth walking it is not desirable for the direction of the gain to reverse instantaneously, and a smoother transition is obtained by, as shown in Fig. 12, establishing a short intermediate period during which the gain is set at zero or by smoothly connecting the gains on opposite sides of the transition as shown in Fig. 13. In the case of applying a velocity proportional to the inclination angular velocity deviation delta omega, k omega is in principle set at zero during the leg's free period and then set to a prescribed value at an appropriate time prior to ground contact so as to enable adequate following of transient conditions. (In the flowchart of Fig. 5, the control value is set at zero in step S40 when the robot is in neither a one-leg support period nor a two-leg support period.) The operation then moves to step S42 in which the virtual compliance control value is determined. Specifically, as shown in Fig. 14 a prescribed period TCOMP between footlift (the event of lifting a foot) and footfall of the robot's free leg is defined as the impact absorption control period, and when it is judged in step S42 that the operation has entered this period, the procedure advances to step S44 in which the gain kc is calculated as kc = kCOMP x f(COUNT) , to step S46 in which a fourth speed feedback value iV4 is calculated by multiplying kc by the detected moment M (as shown in Fig. 7), and then, after detection of footfall in step S48, to step 50 in which the counter value is incremented. In other words, the impact absorption gain is established as a function of the count value COUNT and, as shown in Fig. 14, beginning from the time of footfall this gain is progressively diminished to zero over the course of time. When it is found in step S42 that the operation is not in the impact absorption period, the procedure goes to step S52 in which the control value iV4 is set to zero and then to step S54 in which the counter value is reset to zero. Next, in step S56, all of the calculated control values are added together to obtain a sum iVCOMM which is output to the servo amplifiers for the motor concerned 120, whereafter the joint number counter is incremented in step S58, discrimination is conducted in step S60 as to whether this is the last joint and, if it is, the timer value t is incremented for retrieval of the next target joint angle in step S62 and, so long as it is not found in step 64 that walking is to be discontinued, control values are continuously determined for the respective joints. As will be understood from the foregoing description, in this embodiment when the robot tilts to an angle beyond that of the preset normal walking state, a ground kicking action in the direction for uprighting the robot into the proper posture is produced in the ankle joints of the supporting leg in proportion to the amount of the inclination angular velocity deviation. The robot is thus able to walk stably at all times irrespective of changes that may arise in the external or internal conditions. As the computations required for this are based mainly on simple geometric equations and, unlike modern control system theory computations, do not involve numerous complex determinants, they can be conducted using a relatively small, low-speed, on-board computer. This is particularly true when the basic walking pattern is computed offline in advance. The invention thus makes a major contribution to the realization of a practicable legged walking robot. Specifically, the fact that the processing required following the selection of an appropriate gain is extremely simple makes it possible to implement the invention using a low-performance computer with low power consumption. A second embodiment of the invention is illustrated in Fig. 15. In this embodiment, steps S32 - S40 of the flowchart of Fig. 5 involve adjustment of only one of the ankle joints 18R and 18L. In contrast to the first embodiment which, as illustrated in Fig. 9, sends feedback control values to the ankle joints of both legs, this second embodiment sends a feedback control value to the ankle joint of only one leg. The effect obtained is essentially the same as that in the first embodiment. A third embodiment of the invention is shown in Figs. 16 and 17. In this embodiment, adjustment of the type described above is carried out not only in respect of the ankle joints 18R (L) but also in respect of the knee joints. In this case, the direction of the gains are reversed between the knee and the ankle, as indicated in Fig. 16 (in the left-hand view) and Fig. 17 (in the left-hand view). Moreover, in this embodiment i ≥ 5 in step S30 of the flowchart of Fig. 5 is changed to i ≥ 7 (the joint number of the knee joint 16L). (It is also possible to carry out adjustment with respect to only the knee joint.) In the three embodiments described in the foregoing, the deviation between the target and actual values of the inclination angular velocity is used for detecting postural instability of the robot. The invention is not limited to this arrangement, however, and postural instability can alternatively be detected from the angular velocity obtained by differentiating or integrating this deviation. Otherwise the time required for the entire area of the bottom of the foot to come in contact with the ground after landing of the heel can be clocked and compared with an appropriately predetermined value for determining whether the robot is likely to topple forward (when the clocked time is shorter than the prescribed time) or backward (when it is longer). In other words, the point at which the foot receives the reactive force from the ground is calculated and if this point moves from the heel region to the toe region faster than under normal circumstances, it is determined that forward overturn is likely, whereas if it moves slower than under normal conditions, it is determined that backward overturn is likely. The general control principle involved is thus to obtain an indicator of the degree of robot postural instability and, based on the magnitude of this indicator, to produce a reactive force against the ground on the supporting leg side. The gain can either be the same for all of the joints as in the foregoing embodiments or be appropriately varied among the joints. Although the embodiments set out above carry out the virtual compliance control in addition to the control according to this invention, the control according to this invention can if desired be independently implemented. Since both types of control contribute to the postural stability of the robot, however, a greater degree of locomotion stability can be achieved when they are used together. The above embodiments were described with reference to examples in which the target joint angles (and target angular velocities) are calculated offline in advance. The invention is, however, not limited to this arrangement and it is alternatively possible to include such higher level factors as the footfall positions and the center of gravity in the gait data calculated offline and, insofar as sudden changes in terrain and other such conditions permit, to determine the gait data in real time. Next, a fourth embodiment of the invention will be explained with reference to Fig. 18 flowchart. The flowchart is very similar to that illustrated in Fig. 5. Likewise tracing similar steps from S100 and S102, similar locomotive patterns are retrieved at step S112 as in the first embodiment. It should be noted here, however, that in this embodiment the time is expressed by "n", not "t". More specifically, the value ni indicates the target angle of i-th joint at time n . And as shown in Fig. 19, the time is predetermined in series as "0,1,2,..t0,..u0,..v0,..". Again tracing similar steps from S104 to S112 as the Fig.5 flowchart, next in step S114, the outputs of the inclination sensors etc. are read in. The operation then advances to step S116 in which it is judged from a flag Ft(S) whether or not the procedure is in the probable overturn detection period. This will be explained with reference to Fig. 20. "HC" at the lower part of this figure means "heel contact" (i.e. footfall) and "TO" means "toe off" (i.e. footlift). For either leg, therefore, the periods indicated by solid lines are the "support periods" and those indicated by dashed lines are the "support free periods." The periods during which the solid lines for the two legs overlap are thus the "two-leg support periods." As indicated, in this embodiment gait switchover is conducted during the support free periods and the period immediately preceding such a period is used as a probable overturn detection period during which the risk of overturn is detected and the modified gait is decided, while the period immediately thereafter is used for implementing the modification. The gait modification according to this embodiment will now be explained. As shown in Fig. 21, in this embodiment a plurality of contingent footfall positions are established in addition to the standard footfall position. More specifically, the solid circle in Fig. 21 indicates the footfall position predetermined by the walking pattern calculated offline in advance by a large computer and the other 24 blank circles to the left and right, front and rear indicate contingent footfall positions. When the robot's attitude comes to involve a high risk of overturn, a footfall position appropriate for restoring the robot to the proper posture is selected from among the contingent footfall positions and the gait is modified for achieving footfall at the selected position. Specifically, the target joint angles are modified for restoring postural stability. The actual method used for detecting probable overturn is shown in Fig. 22. Namely, the deviation between the target angular velocity omega DT and the actual angular velocity omega R is integrated and summed in both the x and y directions to obtain x and y, on the basis of which the gait is selected. More specifically, if the sum in Fig. 22 should be xa, the value a at the intersection between this value and a function for selection is selected as the gait. Thus, in Fig. 21, a gait a (more precisely, a footfall position according to the gait a ) slightly forward of the footfall position according to the standard gait is selected and the target joint angles are adjusted for realizing this gait. Details are shown in Fig. 23. Specifically, if the ankle joint 20L (i = 01) is driven to t001, t102 ... t5i at left leg TO and then, at the time that gait switchover is decided, the gait is modified and the target values are adjusted to ti01a, tj01a, ... as shown in the data marked as "Output modified gait" in the figure. At this time, the adjustment is carried out not only with respect to the ankle joint 20L, but also with respect to all or some of the remaining 11 joints (with respect to 20L, 16L, 10L, 20R, 12R and 10R in the illustrated example). A particularly important point here is that a rule is established that a prescribed standard (reference) attitude is to be output at the start of the gait switchover. That is to say, switchover to the modified attitude is carried out only after an attitude such as that shown in Fig. 24 has once been assumed. This arrangement is used in order to prevent the number of gaits that have to be calculated and stored in the computer memory in advance from increasing in proportion to the square of the number of footfall positions. This will be explained with reference to the example in Fig. 21. In this example, the 25 defined footfall positions are for use in making the first gait modification, i.e. the modification of the standard gait. After the standard gait has been modified to gait a , it may become necessary to modify the gait a to the gait b and then, at the next step, to modify the gait b to the gait c . If 25 candidate footfall positions are defined for each footfall, the number of combinations between the 25 possible footfall positions at which a foot may currently be located and the 25 possible positions at which the foot of the free leg may next fall comes to 25 x 25 = 625. This is the number of gaits that would have to be calculated and stored. For avoiding this rapid increase in the number of gaits, therefore, the invention stipulates that the prescribed standard attitude is to be once restored before carrying out gait switchover. Simply stated, this means that the gait modification is conducted after the joint angles have been reset to the prescribed standard angles. This expedient holds down the number of gaits that have to be calculated and stored to memory in advance. Returning to the flowchart of Fig. 18, when it is found in step S116 that the procedure is in the probable overturn detection period, the inclination angular velocities are integrated in the aforesaid manner. Namely, the inclination angle sums x and y are obtained. Otherwise the procedure moves to step S120 in which the sums are set to zero. Then, in step 122, it is judged whether or not the procedure is in the gait switchover period indicated by a flag Ft(T). If the result is affirmative, the operation advances to step S124 in which the gait is selected on the basis of the sums x and y and then to step S126 in which the adjusted target joint angles for the selected gait are read. Then, in the same way as the first embodiment, the values iV1 to iv4 are calculated through steps S128 to S156 and at step S158 the sum iVCOMM is determined. The procedures are repeated until walking is judged to be discontinued at step S166. As will be understood from the embodiment just described, the invention defines not only the standard gait but also a plurality of other gaits in which the foot of the free leg lands at different footfall positions. When it is judged that the robot is likely to overturn, the most appropriate gait is selected from among the defined gaits. As the standard gait is calculated in advance, the load on the on-board computer is reduced during walking at the standard gait. Further, since data relating to other precalculated gaits having different footfall positions is stored in the memory of the on-board computer, it suffices to select the optimum one of these gaits through programmed procedures. As a result, a high degree of real time operation and stable locomotion of a robot having a large number of degrees of freedom can be realized even with an unsophisticated computer. Gait calculation of the foregoing type has ordinarily been carried out separately for the left-right plane and the fore-aft plane and the results thereafter synthesized. When this method is used, it is adequate to define only 9 candidate footfall positions instead of the aforesaid 25. It should be noted, however, that in this case the gait precision declines and the amount of error increases proportionally as the footfall positions depart from those of the standard gait in the right front direction, left rear direction, etc. Since ability to cope with large state changes increases with increasing number of candidate footfall positions, it holds as a general principle that where m candidate positions are defined fore-aft of the standard position and n positions are defined left-right thereof, the total number of gaits that have to be stored to memory for precise locomotion becomes (2m) x (2n) = 4mn . However, if small errors can be tolerated, ( 2m + 2n - 1 ) gaits will suffice. In this latter case, a considerable saving of computer memory space can be realized even if the number of candidate positions is increased. Memory space can also be saved by interrelating and calculating the candidate positions by linear interpolation or the like or by calculating gaits corresponding to desired footfall positions by interpolating or extrapolating as required among gaits corresponding to a finite number of footfall positions stored in memory beforehand. This invention also saves memory space by causing the robot to pass through the standard attitude shown in Fig. 24 at the time of switching between gaits. While the standard attitude was expressed in terms of angles in the embodiments just described, the invention is not limited to this and the standard attitude may further include angular velocities and/or angular accelerations, with gait switchover being conducted after the robot has passed through the so defined standard attitude. A fifth embodiment of the invention is illustrated in Fig. 25. The fourth embodiment defines a plurality of footfall positions and adjusts all of the joints so as to achieve footfall at a selected one of the defined positions. In contrast, the fifth embodiment restores postural stability when it has been detected that overturn is likely by, as shown in Fig. 25, adjusting only the hip and ankle joints. Specifically, at step 124 of the flowchart shown in Fig. 18 a function for decision shown in Fig. 26 is used for determining an adjustment angle δ on the basis of the sums x, y of the integrated inclination angles and the so-determined adjustment angle δ is used for adjusting the set joint angles of the hip and ankle joints. If the sum is for the x direction, i.e. if it is x, the joints (12L(R), 18L(R)) are adjusted. δ is added to or subtracted from the set joint angle depending on whether the value determined according to Fig. 26 is positive or negative. The adjustment data is shown in Fig. 27. (Only in this figure and in Fig. 30 explained later, the joints are numbered as "20L = 1, 18L = 2,.. 10L = 5, 12L = 6, 12R = 7, 10R = 8,.. 18R = 11, 20R = 12.") Although this figure shows only the adjustment in the pitch direction, that in the roll direction is similar. δ is obtained from y using a function that is the same as or similar to the decision function of Fig. 26 and the result is used for adjusting the joints concerned (14L(R), 20L(R)). Since the locomotion smoothness will be impaired if the switchover from the standard gait to the modified gait is carried out all at one time, the adjustment is implemented gradually in the manner shown in Fig. 28. In the example according to this figure and Fig. 27, the adjustment is carried out in five steps. The same principle is applied during return to the standard gait after the attitude has stabilized. Since the fifth embodiment does not require the definition of a plurality of footfall positions and not all of the joints have to be adjusted, correction for postural instability and restoration to a stable posture at the time of encountering a change in conditions not envisioned by the preset locomotion data can be realized even more readily. It should be understood that this fifth embodiment also requires that the robot be once returned to the standard attitude before changing the gait. Because of this, each of the gaits to be stored in memory can be in the form of independent time series joint angle data. Since no special joint angle data for attitude transition is required, therefore, the amount of memory space required is reduced. A sixth embodiment will now be explained with reference to Fig. 29. This embodiment differs from the fourth one in that angular adjustment is conducted not by addition and subtraction but by multiplication or division. As can be seen in Fig. 29, an adjustment coefficient is determined to be k1, k2 ... if the sum x (y) is positive and to be 1/k1, 1/k2 ... if it is negative, and the angle of the pitch (roll) direction joint is multiplied by the so-determined coefficient. Details regarding this adjustment are shown in Fig. 30. As shown in Fig. 31, the adjustment in this sixth embodiment is also carried out gradually for ensuring smooth modification of the gait. In the sixth and fifth embodiments, the adjustment is effected by multiplication (division) and addition (subtraction), namely by a linear function. This can be expressed in general terms for the pitch direction, for example, as niREV = niSTD x Ax + Bx where niREV is the modified gait joint angle, niSTD is the standard gait joint angle, and A and B are constants. At any rate, both the fifth and sixth embodiments can be modified in various ways. For example, in these two embodiments only the direction of the adjustment is changed depending on the sign of the sum while the magnitude thereof is kept the same. However, it is alternatively possible to determine the magnitudes independently. In the sixth embodiment, moreover, instead of carrying out division it is possible to use a separate adjustment coefficient. Nor is it necessary to use a linear function. For example, the adjustment can be determined using fuzzy reasoning or the like. Furthermore, the invention is not limited to the method of calculating probable overturn from the inclination angle used in the fourth to sixth embodiments and it is alternatively possible to base the calculation on the inclination angular velocity or to calculate the point at which the foot receives the reactive force from the ground, compare the velocity at which this point moves from the heel region to the toe region with that under normal circumstances and judge that overturn is probable when this speed is too fast. While only the joints of the free leg are adjusted in the above-described fourth to sixth embodiments, the invention is not limited to this and it is possible, for example, to divide the adjustments between the joints of the free and supporting legs. Moreover, the invention is not limited by the presumption in the foregoing embodiments that only the target joint angles or target joint angle velocities are calculated offline beforehand. It also encompasses cases where the target data calculated offline further includes such higher level factors as the footfall positions and the center of gravity and, insofar as sudden changes in terrain and other such conditions permit, cases in which the gait is determined in real time. In addition, while the invention was described with respect to a biped walking robot, it is applicable not only to such robots but also to robots having three or more legs. The present invention has thus been shown and described with reference to the specific embodiments. However, it should be noted that the present invention is in no way limited to the details of the described arrangements but changes and modifications may be made without departing from the scope of the appended claims.

Claims: A system for controlling locomotion of a biped walking robot having a body (24) and two leg linkages each connected to the body (24) by a hip drive joint (10,12,14R,L) and each having a foot portion (22R,L) and a leg portion (27,28R,L) connected by an ankle drive joint (18,20R,L), including first means (89,..) for detecting at least an actual angle (iR) of each drive joint (10,12,14,18,20R,L); and servo control means (120) for driving each drive joint (10,12,14,18,20R,L) such that at least an error between the detected actual angle (iR) and a target angle (it) decreases, characterised in that: second means is provided for determining a differential value (omega R) of n-th order of acutal inclination angle of the robot body (24) with respect to the direction of gravity; third means is provided for calculating a deviation between the determined value (omega R) and a reference value (omega Dt) to determine a drive speed (iV3) of the ankle drive joint (18,20R,L) of the leg linkage which supports the robot weight by multiplying the deviation by a gain (k omega); and said servo control means (120) drives the ankle drive joint (18,20R,L) at the determined speed (iV3). A system according to claim 1, wherein said third means determines the drive speed of the ankle drive joint (18,20R,L) such that the foot portion (22R,L) kicks the ground in a direction for uprighting the robot. A system according to claim 1 or 2, wherein said third means determines the drive speed of the ankle drive joint (18,20R,L) of at least one of the leg linkages which support the robot weight. A system according to any of preceding claims 1 to 3, wherein the gain (k omega) is made zero between a phase within which the supporting leg linkage supports the robot weight and a phase within which that leg linkage is free. A system according to any of preceding claims 1 to 4, wherein the robot has a knee drive joint (16R,L) in each leg linkage, said third means determines a drive speed of the knee drive joint (16R,L), and said servo control means (120) drives the knee drive joint (16R,L) at the determined speed (iV3). A system for controlling locomotion of a biped walking robot having a body (24) and two leg linkages each connected to the body by a hip drive joint (10,12,14R,L) and each having a foot portion (22R,L) and a leg portion (27,28R,L) connected by an ankle drive joint, including servo control means (120) for determining a control value for each of the hip drive joints and the ankle drive joints to follow up a target value (it) such that the robot walks in accordance with a predetermined gait; characterised in that: first means is provided for determining a differential (omega R) of n-th order of an actual inclination angle of the robot body with respect to the ground; and second means is provided for calculating a deviation (x,y) between the determined value (omega R) and a reference value (omega Dt) to determine a modification of the predetermined gait in response to the calculated deviation. A system according to claim 6, wherein said third means establishes a plurality of candidate robot foot portion landing positions including those for the predetermined gait and adjusts the control value so that the robot walks in accordance with a modified gait and the foot portion lands at a selected landing position. A system according to claim 6, wherein robot motion is divided into one for a fore-aft plane and another for left-and-right plane and the results are synthesized thereafter in such a manner that when the number of the candidate robot foot portion landing positions are m in the fore-aft plane and n in the left-and-right plane, the total number of the positions is m+n-1 . A system according to any of preceding claims 6 to 8, wherein said third means establishes a plurality of candidate landing positions and adjusts the control value in such a manner that the foot portion lands at a position calculated from the candidate landing positions by interpolation or extrapolation. A system according to claim 6, wherein fourth means is provided for adjusting the control value of at least one of the hip drive joint and the ankle drive joint to realize the modified gait. A system according to any of preceding claims 6 to 10, wherein at least one of said third means and fourth means adjusts the control value in such a manner that a predetermined portion of the leg linkages passes through a prescribed spatial point. A system according to any of preceding claims 6 to 11, wherein at least one of said third means and fourth means adjusts the control value in such a manner that the predetermined gait is modified in smooth succession with respect to time. A system according to any of preceding claims 6 to 12, wherein at least one of said third means and fourth means adjusts the control value in a period within one repetition cycle of a leg support phase and a leg support free phase of the predetermined gait. A system according to any of preceding claims 6 to 13, wherein said second means accumulates the deviation and modifies the predetermined gait using the function of n-th order of the accumulated value.

Inventors: NISHIKAWA MASAO, OZAWA NOBUAKI, TAKENAKA TORU, NISHIKAWA, MASAO, OZAWA, NOBUAKI, TAKENAKA, TORU, Nishikawa, Masao, c/o KK Honda Gijyutsu Kenkyusho, Ozawa, Nobuaki, c/o KK Honda Gijyutsu Kenkyusho, Takenaka, Toru, c/o KK Honda Gijyutsu Kenkyusho
Applicants: HONDA MOTOR CO LTD, HONDA GIKEN KOGYO KABUSHIKI KAISHA
Application year: 1991
Main classification: B62D57
IPC codes: B62D57