1. Field of the Invention
The present invention relates to the generation of gaits for a legged mobile robot.
2. Description of the Related Art
There has been proposed a technical method whereby to cause a legged mobile robot to act in a pattern that is appropriate in light of a behavior objective of the robot in response to a disturbance of an arbitrary form (refer to Japanese Patent Application Laid-Open No. 2011-031349 and Japanese Patent Application Laid-Open No. 2011-031350).
Specifically, each of a plurality of modules, which are hierarchized according to the frequency band levels, searches for behavior candidates that are the candidates for the behavior patterns of the robot compatible with a main objective and a sub objective while prioritizing the main objective for which a self-module is responsible over the sub objectives for which other modules are responsible. The behavior of the robot is controlled such that a robot behavior candidate searched for by a high-frequency (j)th module is preferentially reflected over a behavior candidate of a robot R searched for by a low-frequency (j+1)th module.
However, according to the method, calculation time of an order of 100 ms is required for searching for a behavior candidate of a robot, so that the generation of a target gait and the control for following the target gait on a real-time basis may become difficult.
Therefore, an object of the present invention is to provide a robot capable of achieving more efficient and faster calculation for generating a gait.
The present invention relates to a robot provided with a body, a plurality of legs extended from the body, and a control unit configured to control motions of the plurality of legs so as to follow a target gait that includes a target ZMP trajectory and target landing positions of the plurality of legs.
In the robot according to the present invention, the control unit includes: a first arithmetic processing element configured to determine an amount of an influence exerted by a target ZMP trajectory on a divergent component of a behavior of the body based on the target ZMP trajectory defined by a linear function of target landing positions of the plurality of legs, which uses, as a coefficient, a time function that permits specified function transformation related to time, according to a dynamics model which represents a relationship between motions of the body and the plurality of legs and a ground reaction force acting on the robot and which is defined by the specified function transformation related to time; and a second arithmetic processing element configured to determine, based on the amount of the influence determined by the first arithmetic processing element, a ZMP modification amount and the target landing positions based thereon such that a first specified requirement is satisfied that the target ZMP trajectory obtained as a result of adding the ZMP modification amount, which is defined as a linear function of the target landing positions, to the target ZMP trajectory falls within a permissible existence area, a placement configuration of which is determined according to a placement configuration of a contact surface between the plurality of legs and a floor.
According to the robot in accordance with the present invention, a target ZMP trajectory is defined by the linear function of a target landing position that uses a time function as a coefficient, so that the amount of the influence exerted by the target ZMP trajectory on a divergent component of the behavior of the body is defined as the linear function of a target landing position that uses, as a coefficient, an arithmetic processing result of a time function according to a dynamics model. The time function is defined by a function that permits specified function transformation related to time and the dynamics model is defined by the specified function transformation related to time, thus permitting analytical calculation of the arithmetic processing result of the time function according to the dynamics model.
Thus, a ZMP modification amount is determined on the basis of the amount of the influence on the divergent component, and consequently a target ZMP trajectory, which is a result of combining the target ZMP trajectory and the ZMP modification amount, is linearly approximated by the linear function of a target landing position, which uses a constant based on the result of the analytical calculation as a coefficient and an intercept. Thus, the problem of determining a target landing position is formulated as a problem accompanied by a linear constraint in which a first specified requirement (a target ZMP trajectory linearly approximated by the linear function of a target landing position falls within a permissible existence range) is satisfied. This achieves faster and more efficient generation of a target gait including a target landing position of each leg.
The second arithmetic processing element is preferably configured to determine the target landing position such that a second specified requirement that an assessment function based on a specified assessment standard of the target landing position indicates a maximum value or a minimum value is also satisfied.
According to the robot having the aforesaid configuration, the problem of determining the target landing position is formulated as a linearly constrained problem of optimization in light of a specified assessment standard, thus achieving faster and more efficient generation of a target gait including the target landing position of each leg.
The second arithmetic processing element is preferably configured to determine the target landing position by using, as the assessment function, an increasing function or a decreasing function, which uses an interval between the target landing position and a desired landing position or a boundary of a permissible landing range as a variable. The second arithmetic processing element is preferably configured to determine the target landing position by using a quadratic function as the assessment function.
According to the robot configured as described above, the problem of determining a target landing position is formulated as an optimization problem with a linear constraint in which a target landing position coincides with a desired landing position or landing that would cause a robot to deviate from a permissible landing range is avoided. This achieves faster and more efficient generation of a target gait including a target landing position of each leg.
A robot 1, which is an embodiment of the mobile device in accordance with the present invention illustrated in
Each of the arms 12 is provided with a first arm link, which is connected to the body 10 through a shoulder joint mechanism, and a second arm link, one end of which is connected to an end portion of the first arm link through the elbow joint mechanism and the other end of which is connected to the proximal end portion of the hand 13 through the wrist joint. The shoulder joint mechanism has two degrees of freedom of rotation about a yaw axis and a pitch axis. The elbow joint mechanism has one degree of freedom of rotation about the pitch axis. The wrist joint mechanism has two degrees of freedom of rotation about a roll axis and the pitch axis.
Each of the legs 14 is provided with a first leg link connected to the body 10 through the hip joint mechanism, and a second leg link, one end of which is connected to an end portion of the first leg link through the knee joint mechanism and the other end of which is connected to the foot 15 through the ankle joint. The hip joint mechanism has three degrees of freedom of rotation about the yaw axis, the pitch axis and the roll axis. The knee joint mechanism has one degree of freedom of rotation about the pitch axis. The ankle joint mechanism has two degrees of freedom of rotation about the pitch axis and the roll axis. The robot 1 is capable of autonomously traveling by the motion of each of the left and right legs 14 repeatedly leaving a ground and landing on the ground.
A control unit 2 illustrated in
The internal state sensor group S1 mainly includes a gyro sensor, which measures the posture of the body 10, and rotary encoders, which measure the bending angles or the like of each joint mechanisms, in addition to a GPS measuring device, which measures the position (the position of the gravity center) of the robot 1, or an acceleration sensor.
The external state sensor group S2 mainly includes a stereo image sensor installed to the head 11 to measure the positional trajectory of an object, such as a ball, related to a task to be carried out, and an active sensor, which is installed to the body 10 and which uses infrared light, in addition to an independent motion capture system (not illustrated), which is separate from the robot 1.
The control unit 2 includes a first arithmetic processing element 21 and a second arithmetic processing element 22. The first arithmetic processing element 21 is configured to determine the amount of influence exerted by a target ZMP trajectory on a divergent component of the behavior of the body 10 according to a dynamics model on the basis of a target ZMP trajectory. The second arithmetic processing element 22 is configured to determine a ZMP modification amount and a target landing position based on the ZMP modification amount on the basis of the amount of influence determined by the first arithmetic processing element 21 such that a specified requirement is satisfied.
A single processor (arithmetic processing unit) may function as the two arithmetic processing elements 21 and 22 or a plurality of processors may work together by intercommunication to function as the two arithmetic processing elements 21 and 22.
Each of the arithmetic processing elements being configured to carry out arithmetic processing for which each of the arithmetic processing elements is responsible means that an arithmetic processing unit, such as a CPU, constituting each of the arithmetic processing elements is programmed or designed to read out necessary information and software from a memory, such as a ROM or RAM, or a recording medium and carry out arithmetic processing on the information according to the software.
In response to a travel instruction, the target landing positions of a current gait and a cyclic gait following the current gait and a walking cycle are determined (STEP01 of
Thus, the end time of the first current gait t=tcur1 (=Tcur1), the end time of the second current gait t=tcur2 (=Tcur1+Tcur2), the end time of the first cyclic gait tcyc1 (=Tcur1+Tcur2+Tcyc1), the end time of the second cyclic gait tcyc2 (=Tcur1+Tcur2+Tcyc1+Tcyc2), and a landing position xswg (t) at each time are set.
As illustrated in
The target ZMP trajectory parameters of the cyclic gait and the current gait are set (STEP02 of
X
zmp(t)=α(t)xswg (02)
The linear approximation is the approximation for assessing the stability of the landing position xswg and does not have to coincide with an actual ZMP trajectory of the robot 1. The time function α(t) is defined by a function that can be subjected to Laplace transformation.
For example, as illustrated by the solid line in
Specifically, the target ZMP is defined such that the target ZMP is displaced in the order of: xzmp [0]=xswg [0]→xzmp [1]=xswg [tcur1]→xzmp [2]=xzmp [1]→xzmp [3]=xswg [tcur2]→xzmp [4]=xzmp [3]→xzmp [5]=xswg [tcyc1]→xzmp [6]=xsmp[5]→xzmp [7]=xswg [tcyc2]→xzmp [8]=xzmp [7].
As indicated by the dashed line in
The first arithmetic processing element 21 determines the amount of influence exerted by the target ZMP trajectory xzmp (t) on a divergent component q according to the dynamics model of the robot 1 (STEP03 of
The dynamics model indicates the relationship between the motions of the body 10 and the legs 14 and the ground reaction forces acting on the robot 1. For example, an inverted pendulum model as illustrated in
d
2
x
pend
/dt
2=(g/h)(xpend−xzmp) (04)
According to the linear inverted pendulum model, the divergent component q (and a convergent component p) of the robot 1 are represented by relational expression (06) by using a natural frequency ω=(g/h)1/2 of the inverted pendulum.
The divergent component qu (t0, te) at time te based on reference time t0 is calculated according to relational expression (08).
Here, a function qu (t0, te) constituting the second term of the right side of relational expression (08) is represented by using Laplace transformation according to relational expression (10).
If the definition of xzmp (t)=tn is applied, then n ! s−(n+1) is obtained as the Laplace transformation result of tn, and the function qu (t0, te) is represented by relational expression (11) from binomial theorem.
(Determining the Target Divergent Component qaim)
An initial divergent component q (tcur2, tcur2) of a cyclic gait is determined as a target divergent component qaim such that the initial divergent component q (tcur2, tcur2) and a terminal divergent component q (tcur2, tcyc2) of the cyclic gait coincide with each other. The initial divergent component q (tcur2, tcor2) of the cyclic gait is represented by relational expression (14) by using coordinate transformation Ξcur2→cyc2 (••) from the support leg coordinate system of a current gait to the support leg coordinate system of a second cyclic gait.
q
(cur2)(tcur2,tcur2)=Ξcur2→cyc2(q(cur2)(tcur2,tcyc2)) (14)
The coordinate transformation Ξcur2→cyc2 (••) is defined by relational expression (16) by using a rotation matrix Rz denoting the direction (yaw angle) of the support leg coordinate system of the second cyclic gait based on the support leg coordinate of the current gait, and a position Pcyc2(cur2) of the support leg coordinate system of the second cyclic gait based on the support leg coordinate of the current gait. The suffix (cyc2) means the support leg coordinate system of the second cyclic gait.
Ξcyc2→cyc2(x(cyc2))≡Rz(x(cyc2)+Pcyc2(cur2)) (16)
Based on relational expressions (08), (14) and (16), the target divergent component qaim is represented by relational expression (18).
In the case where the rotation matrix Rz is approximated to a unit matrix I, the target divergent component qaim is represented by relational expression (20).
(Determining a Divergent Component Difference qdiff)
A difference qdiff between the divergent component q(cur2) (t0, tcur2) at the current gait end time tcur2 and the target divergent component qaim is calculated according to relational expression (22).
q
diff
=q
aim
−q
(cur2)(t0,tcur2) (22)
The second arithmetic processing element 22 determines a ZMP modification amount xzmp
In order to modify the target ZMP trajectory, a trapezoidal trajectory xzmp
As described above, the time function α(t) is a function that can be subjected to the Laplace transformation, so that qα permits analytical calculation. Thus, the ZMP modification amount xzmp
The ZMP trajectory xzmp (t) is approximated according to relational expression (28) by using a coefficient function αi (t) for each section [ti-1, ti] (i=1, 2, . . . N) (refer to relational expression (2)).
x
zmp(t)=αi(t)xswg(t) (28)
Based on approximate expression (28), relational expression (10) is approximated as indicated by relational expression (30).
Relational expression (30) is represented by relational expression (32) by using a coefficient matrix A.
q
u(t0,tN)=Axswg,xswg≡(xswg(t0), . . . ,xswg(tN-1))′ (32)
The target divergent component qaim and the divergent component q(cur2) (t0, tcur2) at the current gait end time tcur2 and the difference qdiff between these two are linear with respect to qu ( ). Hence, the ZMP modification amount xzmp
x
zmp
add
=A
add
x
swg
+b
add (34)
In the case where the ZMP trajectory xzmp (t) is formed of a line graph, as illustrated in
θcyc2, θcyc1 Direction of support leg coordinate system observed from current gait support leg coordinate system
x
swg=(xswg(tcur1),xswg(tcur2),xswg(tcyc1),yswg(tcur1),yswg(tcur2),yswg(tcyc1)) (36)
The divergent component q(cur2) (t0, tcur2) at the current gait end time tcur2 is represented by relational expression (38).
Therefore, the ZMP modification amount xzmp
The ZMP modification amount xzmp
A first specified requirement as a specified requirement is a condition that the target ZMP trajectory xzmp falls within a permissible existence range (e.g. a supporting polygon), the placement configuration of which is determined according to the placement configuration of the contact surface between the plurality of legs and a floor. The first specified requirement is defined by relational expression (42) by using a lower limit value xzmp
x
zmp
add
min
≦A
zmp
add
x
avg
+b
zmp
add
≦x
zmp
add
max (42)
A second specified requirement as another specified requirement is a condition that an assessment function f (xswg) based on a specified standard of the target landing position xswg indicates a maximum value or a minimum value. In the present embodiment, the specified standard is the agreement with a reference landing position xswg
min(xswg−xswg
H denotes a weighting matrix for adjusting the degree of following xswg
The assessment function f (xswg) may be defined as an increasing function or a decreasing function of the interval (norm), such as a linear function or an exponent function, rather than the quadratic function.
The target landing position xswg that satisfies the first specified requirement and the second specified requirement is searched for as a solution to a quadratic program problem with linear constraint. The term “linear constraint” in this case is a constraint that the first specified requirement related to the ZMP modification amount xzmp
Based on the amount of influence on the divergent component determined by the first arithmetic processing element 21, the second arithmetic processing element 22 determines the target landing position xswg according to the ZMP modification amount xzmp
Based on the foot trajectory parameters of the current gait including the target landing position xswg determined as described above and the target ZMP trajectory parameters, the position and the velocity of the inverted pendulum mass point are calculated according to relational expression (04), and the position of the body corresponding thereto is calculated. Further, based on the position of the body 10 and the position and the posture of the foot 15, the joint angle of the leg 14 is calculated according to an inverted dynamics model.
As illustrated in FIG. 8(1), a gait in the case where, during a phase in which the robot 1 is about to take a second step, a trapezoidal external force is applied to the robot 1 in a lateral direction (a Y-direction) from a side opposite from the foot that is about to take the step was calculated. FIG. 8(2) to FIG. 8(7) illustrate the calculation results of the gait.
FIG. 8(2) to FIG. 8(4) illustrate the x-coordinate components xcur1, xcur2, and xcyc1 of the landing positions in a first current gait, a second current gait, and a first cyclic gait, respectively. FIG. 8(5) to FIG. 8(7) illustrate y-coordinate components ycur1, ycur2, and ycyc1 of the landing positions in the first current gait, the second current gait, and the first cyclic gait, respectively. The target landing positions xswg are denoted by the solid lines, while the reference landing positions xswg
As illustrated in FIG. 8(5) to FIG. 8(7), the y-coordinate components of the target landing positions of the second step are set to be shifted by approximately 200 mm from the y-coordinate components of the reference landing positions xswg
In the case where a landable range is restricted, the gait of the robot 1 may be controlled in the same manner. A case will be discussed, where a plurality of obstacles is present in the direction in which the robot 1 is expected to proceed, and a landable range will be approximately represented by relational expression (46) to avoid interference with the plurality of obstacles.
a
1
x
swg
+a
2
y
swg
+b
1<0,a3xswg+a4yswg+b2>0 (46)
Number | Date | Country | Kind |
---|---|---|---|
2014-019122 | Feb 2014 | JP | national |