lanced Humanoid Robot Walk Synthesized by Motion ... - IEEE Xplore

5 downloads 0 Views 646KB Size Report
Abstract—This paper deals with the problem of synthesis of bipedal walking and motion control of the robot having in mind requirements for the motion in ...
SISY 2013 • IEEE 11th International Symposium on Intelligent Systems and Informatics • September 26-28, 2013, Subotica, Serbia

Robust Nonlinear Control of Dynamically Balanced Humanoid Robot Walk Synthesized by Motion Primitives Mirko Raković*, Srđan Savić*, Milutin Nikolić*, Branislav Borovac* *

University of Novi Sad/Faculty of Technical Sciences, Novi Sad, Serbia e-mail: [email protected], [email protected], [email protected], [email protected] based on the preset feet position, it is required to prescribe reference trajectory of ZMP (ZMP trajectory must always be inside support area), and the motion of the rest of the system (joints of the trunk and arms) is calculated to follow the reference ZMP trajectory. In [13-15], for synthesis of dynamically balanced walk, the locomotion mechanism is approximated as 3D Linear Inverted Pendulum Model (3D-LIPM), which is the simplification of the dynamic model of a humanoid robot. Mass and center of mass of 3D-LIPM correspond to the mass and position of center of mass of the robot, whereas the joint of inverted pendulum corresponds to the ankle of the robot. In this way the computational cost is significantly reduced. In [15] the authors further improved the walk generation in real-time based on 3D-LIPM by introducing a ZMP preview controller. Especially important and interesting is the problem of disturbance rejection during walk. It is well known that disturbances can be compensated in many ways depending on the type of disturbance, complexity of the humanoid mechanical structure (number and disposition of degrees of freedom (DOFs)) and of course on the disturbance intensity. Corrective actions may be planned and realized with the aim of preserving dynamic balance or bringing internal synergy near the referent. Considering that it is senseless to realize perfectly internal synergy while the humanoid is falling it is obvious that the priority must be given to the prevention of falling i.e. compensation of ZMP position deviation. In case when the dynamic balance is not explicitly jeopardized (there is no threat of direct humanoid overturn) compensation can be distributed on keeping the internal synergy and minimizing the ZMP position deviation from its referent value. It is clear that the ZMP position deviation can be compensated with single joint or simultaneous multiple joints motion. When the desired motion is defined (i.e. desired angular positions, angular velocities and angular accelerations in joints) it is necessary to determine an adequate control law which would be able to realize such motion. Bearing in mind that humanoid robot is nonlinear system, nonlinear control law seems as logical choice. In this paper nonlinear control law is synthesized as a combination of feedback linearization and sliding mode control. Experiments have shown that synthesized control law is robust to external disturbances. This has been verified and shown on example of walk realization with the presence of external force acting on robot torso. This simulation corresponds to the situation when someone pushes the robot in the back during walking.

Abstract—This paper deals with the problem of synthesis of bipedal walking and motion control of the robot having in mind requirements for the motion in unstructured environment such as living and working environment of man. The walk is synthesized by combining and tying basic parameterized movements, called motion primitives. To enable on-line modification of synthesized walk the relationship is established between the overall parameters of walk and parameters of the motion primitives. Besides the need for online modifiable walk, it is also inevitable for robot to deal with ever present external disturbances. Therefore, in this paper robust nonlinear control law is proposed which consists of feedback linearization and sliding mode.

I. INTRODUCTION Although the bipedal gait is in the focus of researchers for nearly five decades, yet not all aspects of the synthesis of walking and motion control are satisfactorily resolved. In addition, because of the tendency of involving humanoid robots in everyday human activities, their quality of movement is gaining in importance. It is widely accepted that the future home or personal robots will become more and more human-like regarding motion, intelligence, and communication [1]. The motion of the robots, their "behavior" when affected by external disturbance and success in compensating them will be an important element in assessing their quality. For the synthesis of artificial walking , an approach that has been in use for a long time, and still is in use, is the approach based on the computation of the reference trajectories of the robot joints, which are later to be realized as accurately as possible. The first systematic method for the synthesis of dynamically balanced walking robot i.e. semi-inverse method, was introduced by prof. Vukobratović [2, 3]. In semi-inverse method, motion for one part of the system (feet) is prescribed, and the motion of the rest of the system is calculated so to ensure a dynamically balanced walk. Synthesis of walk for the majority of modern humanoid robots is based on prescribing a desired position of the feet on the ground [4-12] along the path through which the robot should walk. To generate walk with this method first it is necessary to choose the desired positions of the feet on the ground and the time instances when the robot should reach them. Based on these data it is possible to calculate the trajectories of both feet, and then, using the inverse kinematics, to calculate the motion of legs’ joints to ensure the desired movement of the feet. Afterwards,

978-1-4799-0305-4/13/$31.00 ©2013 IEEE

153

M. Raković et al. • Robust Nonlinear Control of Dynamically Balanced Humanoid Robot Walk Synthesized by Motion Primitives

and moments due to gravitational forces, T is the vector of generalized driving torques, S stands for the indices of the points on the feet that are in contact with the ground, Fi and δi represent the force that appears at the i-th contact point and the deformation of the viscoelastic layer while J i represents the Jacobian calculated for the i-th contact point. Actuators in powered DOFs have been modeled as DC motors with permanent magnets. In order to simplify the model, without loss of generality, it was assumed that all motors are the same. Driving torques in robot joints are calculated based on the mathematical model of DC motor given by the following expression:

II. MODEL OF HUMANOID ROBOT Robot model can be described as branched system which consists of four open kinematic chains, whose segments are connected to each other with one DOF rotational joints [16]. In Fig. 1 robot kinematic structure, used for simulations in this paper, is shown which consists of 4 kinematic chains with 46 segments in total.

uk = R r ⋅ ir k + Ce ⋅ qk + L r ⋅ irk

τ k = Cm ⋅ ir k + B ⋅ qk + J r ⋅ qk

where uk represents the rotor voltage of the k-th motor, τ k is the driving torque at the joint k, ir k is the rotor current of the k-th motor, qk and qk are the angular velocity and acceleration at the k-th joint, whereas terminal resistance ( R r ), terminal inductance ( L r ), speed constant ( Ce ), torque constant ( Cm ), torque/speed gradient ( B ) and rotor inertia J r represent the motor parameters. Thus, the model of the overall system is given by (1) together with 45 second order differential equations represented by (2).

Figure 1. Kinematic structure of robot model; a) whole robot; b) kinematic structure of legs; c) kinematic structure of upper-body

The foot has been modeled as a two-segment structure. Contact between the foot and the ground is described with 6 characteristic points. Four contact points are at the corners of foot body, while two other points are at the corners of toes link. Observing these six points it is possible to describe all essential configurations of the foot-ground contact. If the number of points that are in contact with the ground is higher than or equal to three than there will exist a support area (surface contact) between the foot and the ground. In case that only one or two points are in contact with the ground there will be no surface contact between the ground and that foot. Since there are two feet, the overall number of points that should be taken into account is 12. Therefore, for the existence of the support area it is necessary that at least three noncollinear points, of the overall 12 available, are in contact with the ground. During the simulation of robot motion multiple establishing and braking of contacts between the feet and the ground occurs. Time instant when each contact establishes or breaks is calculated using slack variable [17]. In order to include the effects arising at the moment of establishing/breaking the foot-ground contact, the foot has been modeled as a rigid body with a viscoelastic layer on the sole. The rigid body with a viscoelastic layer has been modeled as a nondeformable body with a thin deformable layer of negligible mass. The viscoelastic layer is modelled as an isotropic Kelvin-Voigt material [18-19]. Dynamic model of a humanoid robot is represented by the following set of differential equations:

⎡ F ⎤  + h 0 = T + ∑ J i T ⋅ ⎢ i ⎥ H ⋅q i∈S ⎣δi × Fi ⎦

(2)

III. SYNTHESIS OF WALK BY MOTION PRIMITIVES For the walk synthesis the method which uses motion primitives has been applied. The primitives are parameterized and can be realized with different values of their parameters. Motion primitives represent simple movements which are easily combined with other primitives and can generate different kinds of complex movements. Every primitive has to be parameterized. There are no limitations in the defining of new primitives, either in the number of parameters or in the number of joints that will be activated in its realization. In this paper primitive parameters determine the velocity of movement realization as well as the target point to which the coordinate frame, attached to the desired robot segment, should be brought. During the realization of a primitive, parameters can be modified on-line, depending on the current situation. This is very convenient because it is not necessary to know the exact dynamic model of the robot and smooth continuation of primitives is provided [20,21].

(1)

 is the vector of where H is the system inertia matrix, q generalized accelerations, h 0 is the vector which includes the moments arising from the velocity effects at the joints

154

A. Motion Primitives For the illustration purpose, two kinds of primitives used for the walk synthesis are shown here. These are the primitives for leg bending (LB) and for leg stretching (LS). Both primitives are executed by a leg in a swing phase. During the walk, first the primitive for leg bending is realized (Fig. 2), which separates the foot from the ground and lifts it to the desired height above the ground. Then the primitive for leg stretching (Fig. 3) takes over and smoothly continuous the motion after the first primitive. The task of the leg stretching primitive is to bring the leg in the position in front of the body which is

SISY 2013 • IEEE 11th International Symposium on Intelligent Systems and Informatics • September 26-28, 2013, Subotica, Serbia

suitable for establishing contact and starting the double support phase. Primitive parameters for leg bending are Height

Turn

Speed

Primitives realized by the legs when the robot is in the single-support phase are: • bending of the swing leg (deployment of the foot from the ground and transfer from back to front), • swing leg stretching, and • inclining the robot forward. Primitives realized by the legs when the robot is in the double-support phase are: • establishing surface contact between the foot and the ground after heel strike, and • leaning the body forward and transferring the weight on the front leg. Primitives that are realized by torso and arms are: • keeping the upright position of the trunk • arms swinging during the walk. Conditions for starting and ending of realization are prescribed for each primitive. Also every primitive has a set of parameters that uniquely define the target position and the speed of primitive execution.

CLB ,

Speed

CLB and CLB . Parameter CLB determines the speed of primitive realization while parameters Height CLB

and TurnCLB determine the height to which the foot should be lifted and the orientation of the foot around z axis of the coordinate frame attached to pelvis. Fig. 2. a) and 2. b) show two examples of primitive realizations for leg bending. They differ in parameters and in the initial pose from which the robot starts the primitive realization. For example, parameter Height CLB is in the first case (Fig. 2. a)) set to the value which lifts the leg higher than in the second case (Fig. 2. b)).

B. Walk Synthesis In order to enable modification of the walk following walk parameters are introduced: walk speed WSpeed , height to which the foot is lifted during the swing phase WF _ Height , step length WS _ Lenght and walking direction

a) b) Figure 2. Stick diagram of the initial and final robot posture and the trajectories of PCM and ZMP during leg bending when the robot in the initial moment is in: a) single-support phase; b) double-support phase

WDir . All walk parameters can be changed within an experimentally determined range (minimal and maximal values). Before that, first it is necessary to synthesize basic walk with the following values of walk parameters: WSpeed = 1 , WF _ Height = 1 , WS _ Lenght = 1 , WDir = 0 . Since the gait is synthesized from primitives the dependence has been established of the primitive parameters on the gait parameters. Therefore, the gait speed ( WSpeed ) has a direct influence on speed of execution of each primitive, height to which the foot should be lifted ( WF _ Height ) influences parameters of leg bending primitive, step length ( WS _ Lenght ) has an influence on parameters of leg stretching primitive, while desired walking direction ( WDir ) has an influence on both leg bending and leg stretching primitives. Synthesis of a single step (which consists of two half steps) is realized through 8 phases which are repeated cyclically. In each phase suitable primitives, realized by legs, are executed. Also, in each phase desired position of the projection of robot center of mass (PCM) is set as well as the desired position of zero moment point (ZMP). At the same time, simultaneously with primitives realized by the legs, regardless of current phase, two other primitives are executed. These two primitives are the primitive for keeping the trunk in upright position and the primitive for arms swinging during walking. It is supposed that motion begins from the pose when robot stands still in double-support phase. Foot of the leg that should become the support leg first (e.g. left leg) is in contact with the ground in at least 3 points. During the first phase robot transfers weight on the left (support) leg. Desired positions of PCM and ZMP are beneath the foot of the leg which is supposed to be the support leg during

Figure 3. Stick diagram of the initial and final robot posture and the trajectories of PCM and ZMP during leg stretching

Primitive parameters for leg stretching are Speed CLS , Stride CLS , Height CLS , AngleCLS and TurnCLS . Parameter Speed

CLS determines the speed of primitive realization,

parameters AngleCLS and TurnCLS determine the angle at which sole of the foot will make contact with the ground and the foot orientation about the z axis with respect to the pelvis, parameter StrideCLS determines how far the foot will stretch in front of the robot, while Height CLS determines the height to which the foot will be lifted from the ground. For the gait synthesis, it is necessary to introduce five different primitives that are realized by the legs, along with one primitive that is realized by the trunk and one by the arms. Primitives realized by the legs can be divided in two groups.

155

M. Raković et al. • Robust Nonlinear Control of Dynamically Balanced Humanoid Robot Walk Synthesized by Motion Primitives

f(x) and g(x) are nonlinear state functions, Ji is Jacobian calculated in i-th point and I is unit matrix. Vector of the ground reaction forces acting on feet is given with:

the single-support phase (left). During the second phase right leg detaches from the ground and the whole robot is leaning forward. Therefore, primitives for leg bending and forward inclination are executed in parallel. Desired positions of PCM and ZMP during the second phase are in the middle between the center of gravity of the foot body and the center of gravity of toes link. In the third phase leg is stretched during the swing phase and brought in front of the body, with a constant leaning of the body forward in order to prepare the system for the forthcoming doublesupport phase. Thus primitives for leg stretching and forward inclination are executed simultaneously. Hence in the third phase system continues with forward inclination of the body, but with changed parameters. During the third phase desired positions of PCM and ZMP are beneath the toes link. During the fourth phase the robot returns to the double-support phase and the foot descends to the ground in order to establish surface contact. In this phase the primitive for ensuring foot surface contact is executed. Desired positions of PCM and ZMP are in the middle between the center of gravity of toes link and the center of gravity of other’s leg foot body. The end of the fourth phase is followed by phases 5-8 which are the same as phases 1-4. Only difference is that in phases 5-8 primitives are realized with the opposite leg compared to phases 1-4. These 8 phases (during which the primitives performed by the legs follow in a sequence) are repeated cyclically as long as it is needed (and possible) for the robot to walk. IV.

⎡ Ffooti ⎤ F foot = ∑ J iT ⋅ ⎢ ⎥, i∈S1 ⎢⎣δi × Ffooti ⎥⎦ and it is considered to be known based on the measurement realized with sensors embedded in six characteristic points on each foot. Therefore, this vector is included in nonlinear function f(x), whose influence should be cancelled by using feedback linearization. Vector of external forces acting on system (external disturbances) is given with the following expression:

⎡ Fexti ⎤ Fext = ∑ J iT ⋅ ⎢ ⎥, i∈S2 ⎣⎢M exti ⎦⎥ where S2 is the set of indices of points in which external forces act, Fexti is the vector of force acting in the i-th point and M exti is the vector of torque acting in the i-th point. With a suitable choice of control u:

u = g(x) −1 ( v − f (x))

NONLINEAR CONTROL ALGORITHM

,

system nonlinearities are cancelled and linearized system is obtained in the following form:

A. State-Space Model and Feedback Linearization After determining reference angular velocities in the joints q ref ( t i ) it is necessary to calculate control voltages needed for joint actuation. Reference angular accelerations  ref ( t i ) are obtained by differentiating angular velocities. q For the realization of the reference motion nonlinear control has been used, which is a combination of feedback linearization and sliding mode control. Since humanoid robot, is multivariable, coupled and highly nonlinear system feedback linearization was used in order to cancel system nonlinearities. For the implementation of feedback linearization it is convenient to represent the system in state space in controllability canonical form [22]. In order to be able to represent the system in this form, terminal inductance in (2) was neglected on purpose. Using the equation of robot dynamics (1) and actuators mathematical model (2) the model of the whole system can be represented in state space in the following form:

 = v + d . q

It is necessary to define position and velocity error as Δq = q − ref q Δq = q − ref q and , respectively. If the system model were fully accurate, in the absence of external disturbances, by using the linear regulator:

v=

ref

 − K D Δq − K P Δq q

,

(3)

desired values of poles could be obtained which would provide desired dynamic behavior of the system. Gain KD matrices of differential and proportional term and KP have to be of Hurwitz type to provide system stability. Values of gain matrices elements for each joint are calculated as KDi=ω02 and KPi=2ξω0, where ω0=10π and ξ=1 are desired values of natural undamped frequency and relative damping factor.

q ⎡ ⎤ x = ⎢ , y = x , ⎥ ⎣f (x) + g(x)u + d ⎦ T T  ] , x = [q q ] , x = [q q

B. Sliding Mode Control Since every model is only an approximation of a real system, due to parameter inaccuracies and presence of external disturbances, it is necessary to make the control law more robust. Therefore, time-varying surface S(t,x)=0 in state-space is defined:

q ⎡ ⎤ ⎢ ⎥  ⎡q ⎤ ⎢ ⎛ ⎞ CM CM Ce T T Fext , =   q − Bq ⎟ + ξ u ⎥ + ξJ ⎢q ⎥ ⎢ξ ⎜ −h 0 + J F foot − 

⎥  R R ⎣ ⎦ r r ⎝ ⎠ d

N ⎥ ⎢  g(x) f (x) ⎣ ⎦

s = Δq + λΔq = 0 ,

where ξ = (J R I + H ) −1 , x is the state vector, y is the output vector (angular positions), q is the vector of generalized coordinates, u is the vector of motor voltages in each joint,

156

SISY 2013 • IEEE 11th International Symposium on Intelligent Systems and Informatics • September 26-28, 2013, Subotica, Serbia

K s ≥ β ( F + η + D ) + ( β − 1) u eq ,

where λ is diagonal matrix of Hurwitz type. When the system trajectory in state-space glides over the S surface then position and velocity errors are zero. Thus the problem of trajectory tracking can be also considered as the problem of keeping the zero value of vector s. In order to achieve exponentially convergent tracking, control law has to satisfy the sliding condition:

1 d T s s = sTs ≤ − η s , 2 dt

satisfies the sliding condition (4). In order to eliminate chattering effect, nonsmooth function sgn(s) is approximated in a thin boundary layer around S surface with a continuous proportional-integral function ρ ( σ ) :

(4)

σi =

where η is strictly positive constant. While the system is in sliding regime its dynamics is described with equation:

where Φi is the thickness of boundary layer; K Ii >0 is integral gain, and ti0 is the initial time when system state enters the boundary layer [23]. Finally an integral action is added to the control law in order to eliminate steady-state error. The final expression for the control law used in simulations is given by:

s = Δq + λΔq =q − refq + λΔq = = f (x) + g(x)u + d − refq + λΔq = = f (x) + g(x)u + d − refq + λΔq + γ (Δq + λΔq ) =



s=0

= f (x) + g(x)u + d − refq + (λ + γ ) Δq + N γλ Δq = 0



KD

KP

t

 − KD Δq − KP Δq − KS ρ ( σ ) − KIN ∫ Δq dt − fˆ(x)) , u = gˆ (x)−1 ( ref q

Equivalent continuous control which would provide exponentially convergent trajectory tracking if the model were fully accurate is given with the expression:

ueq = v − fˆ ( x ) =

ref

si , i = 1,..., N; Φi

1, σι ≤ 1 ⎧ ⎪ ti ⎪ ρ ( σi ) = ⎨σi + K Ii ∫ σi dt , −1 ≤σi ≤ 1 ti 0 ⎪ ⎪ − 1, σι ≤ 1 ⎩

0

where KIN is the gain matrix of integral term. V. SIMULATION EXPERIMENT AND RESULTS In Section III-B the procedure for walk synthesis has been described, while Section IV presents the control law for realization of the desired robot motion, i.e. motion obtained by combining primitives. In Fig. 4. stick diagram of the robot is shown as well as spatial disposition of the feet and positions of ZMP and PCM during realization of basic motion by the previously described procedure. To make the diagram more legible a robot posture is shown on every 0.667s and every subsequent posture is given in different color.

 − K D Δq − K P Δq − fˆ ( x ) , q

where fˆ ( x ) is calculated based on a known dynamic model. Relation can be noticed between aforementioned equivalent control and linear regulator given by (3). From the expressions for K D and K P quadratic equation on λ can be formed:

λ2 − KDλ + KP = 0 . Solving this equation gives the value of parameter 1 λ = (K D ± K D 2 − 4K P ) and defines system dynamics 2 in sliding regime. Smaller value has been taken λ = 31, 4 . Nonlinear state functions f ( x ) and g ( x ) are not known bat can be estimated with fˆ (x) and gˆ (x) based on a known dynamic model. It is supposed that estimation errors as well as the value of external disturbance are bounded with known functions F, β and D:

ˆ −1 ≤ β , d ≤ D . f − ˆf ≤ F ( x , x ) , gg Figure 4. Stick diagram of the robot, feet disposition and trajectories of ZMP and PCM during motion generated by using primitives

In [23], it is shown that control: u = gˆ −1 ( u eq − K s sgn ( s ) ) ,

During the basic motion robot made altogether 8 halfsteps and passed a distance of about 3.5m. It needed around 23.33s for these 8 half-steps, which means that the average walk speed was 0.54km/h. Trajectories of ZMP

with gain Ks, satisfying:

157

M. Raković et al. • Robust Nonlinear Control of Dynamically Balanced Humanoid Robot Walk Synthesized by Motion Primitives

and PCM were all the time inside the support area, which means that dynamic balance was constantly preserved. As already mentioned, primitive parameters depend on walk parameters, which provides that change of walk parameters automatically produces change of parameters of primitives involved. Therefore change of any walk parameter in any time instant (i.e. on-line) instantly changes primitive parameters, i.e. the joint motion, corresponding to given walk parameters, is modified online. In Fig. 5. an example is shown where the robot is adjusting walk speed and walking direction in order to avoid the table set in front of it. Walking direction WDir during the first two steps changes for -15o in each step, and then in next two steps for +15o so at the end it returns to the initial direction. During the first four half-steps walk speed is WSpeed = 0.7 . After returning to the initial direction, walk speed is WSpeed = 1 . This way the robot has successfully avoided the obstacle. Figure 6. Stick diagram of the robot, feet disposition and the trajectories of ZMP and PCM during the walk exposed to external disturbance

VI. CONCLUSION In this paper the problem of synthesis and realization of bipedal walk of humanoid robots in unstructured environment has been examined. Since the human environment is dynamic and highly unstructured, on-line modification of walk is necessary for the robots to move efficiently in the human environment. Therefore, this study presents the solution for realization of walk using primitives, which enables the on-line modification of walk. During the motion in an unstructured environment robot is often exposed to the influence of external disturbances. Therefore, bearing in mind high nonlinearity of humanoid robots, robust nonlinear control law has been proposed. Presented control law is a combination of feedback linearization and sliding mode control, whereas anti-chattering technique based on the constant thickness boundary layer has been also implemented. Efficiency of the proposed control law has been verified through the simulation on an example of walk realization, where robot is being pushed in one moment from behind. The results have shown that synthesized control compensates well the applied external disturbance and that robot continues walking successfully after the disturbance disappears.

Figure 5. Stick diagram of the robot, feet disposition and the positions of ZMP and PCM in the case of on-line change of direction and walk speed in the aim of the obstacle avoidance

After the successful realization of the basic motion and the motion with on-line parameter modification it was necessary to check whether the synthesized control law is robust to external disturbances. In order to check that, an external disturbance has been applied to the system in the form of force acting on the last segment of the trunk in the direction of walking. Maximal value of the disturbance force is 100N and it lasts for 0.15s. At the time when external force starts to act on the system robot is in the single-support phase. Walk synthesized in the presence of the disturbance is shown in Fig. 6. It can be seen that the robot successfully compensated external disturbance and continued walking.

ACKNOWLEDGMENT This work was funded by the Ministry of education and science of the Republic of Serbia under contract III44008 and by Provincial secretariat for science and technological development under contract 114-451-2116/2011. REFERENCES [1]

[2]

158

T. Fukuda, R. Michelini, V. Potkonjak, S. Tzafestas, K. Valavanis, M. Vukobratović, “How Far Away is “Artificial Man”?,” IEEE Robot. Autom. Mag., vol. 8, pp. 66-73, March 2001. D. Juricic, M. Vukobratovic, “Mathematical modeling of a bipedal walking system,” in Proc. ASME Winter Annual Meeting, November 1972, pp. 26-30.

SISY 2013 • IEEE 11th International Symposium on Intelligent Systems and Informatics • September 26-28, 2013, Subotica, Serbia

[3] [4]

[5]

[6]

[7]

[8]

[9] [10]

[11]

[12]

[13]

[14] S. Kajita et al., “A realtime pattern generator for biped walking,” in Proc. IEEE Int.Conf. Rob. Autom., May 2002, Vol. 1, pp. 3137. [15] S. Kajita et al., “Biped walking pattern generation by using preview control of zero-moment point,” in Proc. IEEE Int.Conf. Rob. Autom., September 2003, vol. 2, pp. 1620-1626. [16] V. Potkonjak, M. Vukobratović, K. Babković, B. Borovac, “General model of dynamics of human and humanoid motion: feasibility, potentials and verification,” Int. J. Hum. Robot., vol. 3, issue. 1, pp. 21-47. March 2006. [17] P. Song, P. Kraus, V. Kumar, P. Dupont, “Analysis of rigid-body dynamic models for simulation of systems with frictional contacts,” ASME J. Appl. Mech., vol. 68, issue 1, pp. 118-128, June 2000. [18] S. Goyal, E. N. Pinson, F. W. Sinden, “Simulation of dynamics of interacting rigid bodies including friction I: General problem and contact model,” Engineering with computers, vol. 10, issue 3, pp. 162-174, 1994. [19] S. Goyal, E. N. Pinson, F. W. Sinden, “Simulation of dynamics of interacting rigid bodies including friction II: Software system design and implementation,” Engineering with computers, vol. 10, issue 3, pp. 175-195, 1994. [20] B. Borovac, M. Raković, M. Nikolić, “Online Generation of Biped Robot Motion in an Unstructured Environment,” in Intelligent Systems: Models and Applications, E. Pap, Ed. Springer Berlin Heidelberg, 2013, pp. 93-114. [21] B. Borovac, M. Raković, M. Nikolić, “Biologicaly inspired online generation of complex movements using primitives,” in IEEE Workshop on Robotic Intelligence In Informationally Structured Space (RiiSS), , Paris France, 2011, pp. 99-106. [22] J. E. Slotine, W. Li, Applied nonlinear control, 1st ed., Englewood Cliffs, New Jersey, Prentice Hall, 1991. [23] T. V. M. Nguyen, Q. P. Ha, H. T. Nguyen, “A Chattering-Free Variable Structure Controller for Tracking of Robotic Manipulators,” in Proc. of The Australasian Conference on Robotics and Automation (ACRA 2003), Brisbane, Australia, December 2003, pp. 1-6.

M. Vukobratovic, “How to control artificial anthropomorphic systems,” IEEE Trans. Syst., Man, Cybern., Syst., vol. 3, Issue 5, pp. 497-507, September 1973. H. Hirukawa et al., “A pattern generator of humanoid robots walking on a rough terrain,” in Proc. IEEE Int.Conf. Rob. Autom., April 2007, pp. 2181-2187. N. Perrin, O. Stasse, L. Baudouin, F. Lamiraux, E. Yoshida, “Fast Humanoid Robot Collision-Free Footstep Planning Using Swept Volume Approximations,” IEEE Trans. Robot., vol. 28, no. 2, pp.427-439, April 2012. M. Morisawa et al. “Experimentation of humanoid walking allowing immediate modification of foot place based on analytical solution,” in Proc. IEEE Int.Conf. Rob. Autom., April 2007, pp. 3989-3994. J. Chestnutt et al., “Footstep planning for the Honda ASIMO humanoid,” in Proc. IEEE Int.Conf. Rob. Autom., April 2005, pp. 629-634. J. Kuffner, S. Kagami, K. Nishiwaki, M. Inaba, H. Inoue, “Online footstep planning for humanoid robots,” in Proc. IEEE Int.Conf. Rob. Autom., September 2003, Vol. 1, pp. 932-937. H. O. Lim, Y. Kaneshima, A. Takanishi, “Online walking pattern generation for biped humanoid robot with trunk,” in Proc. IEEE Int.Conf. Rob. Autom., May 2002, Vol. 3, pp. 3111-3116. O. Kanoun, J. P. Laumond, E. Yoshida, “Planning foot placements for a humanoid robot: A problem of inverse kinematics,” Int. J. Rob. Res., vol 30, no. 4, pp. 476-485, April 2011. N. Perrin, O. Stasse, L. Baudouin, F. Lamiraux, E. Yoshida, “Fast humanoid robot collision-free footstep planning using swept volume approximations,” IEEE Trans. Robot., vol. 28, no. 2, pp. 427-439, April 2012. N. Perrin, O. Stasse, F. Lamiraux, Y. J. Kim, D. Manocha, “Realtime footstep planning for humanoid robots among 3D obstacles using a hybrid bounding box,” in Proc. IEEE Int.Conf. Rob. Autom., May 2012, pp. 977-982. S. Kajita, F. Kanehiro, K. Kaneko, K. Yokoi, H. Hirukawa, “The 3D Linear Inverted Pendulum Mode: A simple modeling for a biped walking pattern generation,” in Proc. IEEE/RSJ Int. Conf. Intell. Rob. Syst., 29 Oct-03 Nov 2001, Vol. 1, pp. 239-246.

159