Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Historical Survey of Modeling and Control of Quadruped Robot

Legged robot offers many advantages over wheeled robots including greater adaptability to terrain irregularities and superior off-road mobility [30, 41]. Legged systems require only a series of discrete footholds along the pathway for off-road locomotion. This property enables legged robots to traverse surfaces inaccessible to wheeled mobile robots. Compliance in the leg improves locomotion of legged robot [40]. Variable compliance in the legs [16] overcomes the size, weight, fragility, and efficiency problem. Basically, legged robots are discrete systems in which joints of each leg have to operate in particular fashion. So, dynamics plays an important role in the operation and control of a walking robot. Recently, there has been a noteworthy increase in the use of computational dynamics for design, analysis, simulation, and control of various robotic systems. This is due to availability of various multi-body dynamic analysis tools and faster computational resources. To this end, various researchers used different dynamic analysis methods for multi-body systems, such as the methods based on Lagrangian equation [23], Newton–Euler equation [3, 43], Kane’s equation [2, 5, 33], variational methods [4], and bond graph method [26].

Benani and Giri [6] presented a dynamic model approach of quadruped considering open and/or closed kinematic chain mechanisms. It is based on Newton–Euler approach and the explicit formulation of kinematic holonomic constraints for the closed loop mechanism. Mahapatra and Roy [27] developed a dynamic model of six legged in CATIA solid modeler, SimDesigner, and ADAMS multi-body dynamic solver and kinematic and dynamic simulation is performed based on virtual prototyping technology. Krishnan et al. [26] presented a bond graph model of compliant legged quadruped robot in a sagittal plane. The sagittal plane dynamics have been tested through experimental set-up. Soyguder and Ali [39] solved the stance and flight phase dynamic structures in a sequential closed loop for quadruped and obtained the equation of motion for pronking gait. Shah et al. [36] presented a concept of kinematic modules for the development of the dynamic model of the four legged robots where each module is considered as a set of serially connected links. Module-level Decoupled Natural Orthogonal Complement (DeNOC) matrices were introduced which help to analyze the large number of links as a system with a smaller number of modules. Recursive kinematic relationships were obtained between two adjoining modules. Ganesh and Pathak [17] developed a dynamic model of four legged in a sagittal plane by formulating kinetic and potential energy equation of body and leg. These were used to derive Lagrangian function and then equation of motion. A locomotion control strategy for quadruped robot has been presented in [20]. Dynamic modeling and analysis of quadruped robot through bond graph technique has been presented in [19].

Many of the quadruped robots developed worldwide are biologically inspired. Process of natural selection governing evolution of species forces animals adapt to their specific physical features and environment by optimizing their locomotion. Some animals are better at doing certain things in comparison to others. Thus, keeping the required task or operation features in the view, more and more specialized biologically inspired quadrupeds are being developed now-a-days. Some of them are Baby Elephant [11], BigDog [31], Cheetah-cub [40], HyQ [35], LittleDog [10, 37], and Tekken [14, 25]. Hydraulically actuated Baby Elephant [11] was designed to work as mechanical carrier. It has 12 DOFs and compliant legs. Multi-body dynamic simulation was used in [11] for its design and the results were experimentally validated. BigDog [31] was developed with the goal to move in rough terrain without human assistance. It has 20 DOFs and about 50 sensors. Four joints of each leg are operated by hydraulic actuator. It uses a two-stroke internal combustion engine that delivers up to 15 hp power. Electrically actuated Cheetah-cub [40] was designed for high-speed locomotion. Cheetah-cub’s legs are spring loaded and pantograph mechanism with multiple segments is used for shock absorption during running. This robot’s self-stabilizing properties were demonstrated in hardware model and in simulation carried out in Webots software. HyQ [35] developed at IIT Genova was designed to perform highly dynamic tasks like jumping and running. It has 12 DOFs and both hydraulic and electrical actuation systems. During running and jumping, generated impact forces were absorbed by hydraulic actuation mounted on hip and knee joints in the flexion/extension plane of the leg. The hip abduction/adduction joint was actuated by brushless electric motor which provides constant output torque. LittleDog [10, 37] has 12 DOFs and each joint is operated by a high-gain servo motor. Sensors mounted on the robot measure body orientation, joint angles, and ground-foot contact. Sensing, communication, and actuators are controlled by onboard PC-level computer. Tekken [14, 25] is a light weight (4.3 kg) manually operated power autonomous compliant legged quadruped robot. It has 16 DOFs, three joints around pitch axis (ankle, knee, and hip), and one hip joint around yaw axis at each leg. At ETH Zurich, two quadrupeds have been developed having similar structure, size, and morphology, but different concept of actuation [32]. The first, ALoF, is a classically stiff actuated robot that is controlled kinematically; whereas the second, StarlETH, uses a soft actuation scheme based on highly compliant series elastic actuators.

In this chapter, three dimensional dynamic model of compliant legged quadruped robot using bond graph has been developed. A quadruped robot configuration used for analysis is two links legged robot in which upper link is rigid and a lower link is compliant. Lower link is considered similar to a prismatic link in which, piston and piston rod is sliding inside the cylinder and movement is restricted by the spring which generates compliance in the leg. The strategy for locomotion control in joint space as well as workspace is discussed. To validate the same, simulation and animation of the trot gait performed by the quadruped is carried out which is further verified by experiment results. Since trot gait is dynamically stable gait thus successful validation of model in trot gait ensures the model validity in other gaits also. To prove the versatility of the three dimensional model generated a turning motion of the robot is demonstrated by varying the leg speed in amble gait . Influence of compliance on quadruped locomotion and posture disturbance is studied. Performance analysis is carried out considering energy efficiency as deciding criteria. Performance analysis on rigid and compliant legged robots, static and dynamic gaits, and foot trajectory is carried out. Nomenclature used throughout this chapter is listed below.

Nomenclature

{A}

Inertial frame

{B}

Robot body frame

c i , s i

cos(θ i ), sin(θ i )

D

Width of a piston of a prismatic link

F

Force

F xc , F yc , F zc

External force acting at the cylinder body fixed x, y, and z axes

H

Angular momentum

I

Link number, frame number

I rot

Rotor inertia

I xb , I yb , I zb

Moment of inertia of the robot body about x, y, and z axes

I xx1 , I yy1 , I zz1

Moment of inertia of the upper link of robot leg about x, y, and z axes

I xxc , I yyc , I zzc

Moment of inertia of the cylinder part of a prismatic link about x, y, and z axes

I xxp , I yyp , I zzp

Moment of inertia of the piston part of a prismatic link about x, y, and z axes

k b

Contact point stiffness at the piston cylinder of prismatic link

k f

Flexibility due to hydraulic pressure inside the cylinder of prismatic link

K gx , K gy , K gz

Ground contact stiffness in x, y, and z direction

K P , K I, K D

Proportional, integral, and derivative gain of controller

K pb , K ib , K db

Proportional, integral, and derivative gain of controller for body forward

l c

Contemporary length of prismatic link

l cg

Distance of cylinder CG from a cylinder end frame of prismatic link

l i

Length of link i

l p

Length of a piston and piston rod of prismatic link

l pg

Distance of piston CG from a piston end frame of prismatic link

L m

Motor inductance

m b

Mass of the body

m c

Mass of cylinder part of the prismatic link

m li

Mass of link i

m p

Mass of a piston and piston rod of a prismatic link

M xc , M yc , M zc

External moment acting at the cylinder body fixed x, y, and z axes

n

Gear ratio

p

Translational momentum

A B R

Transformation from body frame {B} to inertial frame {A}

R b

Contact point resistance at the piston cylinder of prismatic link

R f

Damping between piston and cylinder of prismatic link

R gx , R gy , R gz

Ground contact resistance in x, y, and z direction

r ix , r iy , r iz

Position of the frame {0} of ith leg with respect to the body CG

R m

Motor resistance

t

Time

v x , v y , v z

Translational velocities of the body

θ i

Angular displacement of frame i

τ

Torque

ψ, θ, ϕ

Euler angles representing a robot body rotation about x, y, z axis of the body fixed frame

ψ c , θ c , ϕ c ,

Cardan angles about x, y, z axis of the moving fixed frame

ω

Angular velocity

ω xc , ω yc , ω zc

Angular velocities of the mass center of the cylinder in the body fixed frame

2 Modeling of a Quadruped Robot

Modeling of a quadruped robot consists of modeling of angular and translational dynamics of robot body and legs. Figure 14.1a shows physical model of quadruped robot, while Fig. 14.1b shows the schematic diagram of a quadruped robot model in which {A} is an inertial frame and {B} is the body frame attached to body center of gravity (CG).

Fig. 14.1
figure 1

(a) Physical model of quadruped robot [21]. (b) Schematic representation of quadruped robot with compliant legs [19, 21]

Frame {0} is fixed at the hip joint of each leg which is fixed on the robot body. Each leg of the quadruped robot has two degree of freedom (DOF) with two revolute joints per leg. The joint between links i and i + 1 is numbered as i + 1. A coordinate frame {i + 1} is attached to (i + 1) joint. Frame {1} is attached to joint 1 of each leg. Frame {0} is coinciding with frame {1}. Frame {2} is attached to joint {2}, while frame {3} is attached to leg tip. The rotational inertias are defined about frames fixed at the CG of the link. The CG frame is fixed along the principal directions in the link or body. The surface on which the robot is walking is assumed as a hard surface.

2.1 Dynamics of a Robot Body

For a given instant, any rigid body has absolute translational velocity \( \overrightarrow{v} \) and absolute angular velocity \( \overrightarrow{\omega} \). The translational velocity and angular velocity vectors have been resolved into three mutually perpendicular components v x , v y , v z and ω x , ω y , ω z . The net force \( \overrightarrow{F} \) acting on the body and the linear momentum \( \overrightarrow{p} \) can be related with respect to rotating frame as [24],

$$ \overrightarrow{F}={\left(\frac{\mathrm{d}\overrightarrow{p}}{\mathrm{d}t}\right)}_{\mathrm{rel}}+\overrightarrow{\omega}\times \overrightarrow{p} $$
(14.1)

where \( {\left(\frac{\mathrm{d}\overrightarrow{p}}{\mathrm{d}t}\right)}_{\mathrm{rel}} \) is the rate of change of momentum relative to the moving frame. Similarly, the relationship between the net torque \( \overrightarrow{\tau} \) acting on the body and the angular momentum \( \overrightarrow{h} \) can be written as,

$$ \overrightarrow{\tau}={\left(\frac{\mathrm{d}\overrightarrow{h}}{\mathrm{d}t}\right)}_{\mathrm{rel}}+\overrightarrow{\omega}\times \overrightarrow{h} $$
(14.2)

Using the right-hand rule for Eqs. (14.1) and (14.2), the component equations can be written as,

$$ {F}_x={m}_b{\overset{.}{v}}_x+{m}_b{\omega}_y{v}_z-{m}_b{\omega}_z{v}_y\vspace*{-24pt} $$
(14.3)
$$ {F}_y={m}_b{\overset{.}{v}}_y+{m}_b{\omega}_z{v}_x-{m}_b{\omega}_x{v}_z\vspace*{-24pt} $$
(14.4)
$$ {F}_z={m}_b{\overset{.}{v}}_z+{m}_b{\omega}_x{v}_y-{m}_b{\omega}_y{v}_x $$
(14.5)

and

$$ {\tau}_x={I}_{xx}{\overset{.}{\omega}}_x+\left({I}_{zz}-{I}_{yy}\right){\omega}_y{\omega}_z$$
(14.6)
$$ {\tau}_y={I}_{yy}{\overset{.}{\omega}}_Y+\left({I}_{xx}-{I}_{zz}\right){\omega}_z{\omega}_x $$
(14.7)
$$ {\tau}_z={I}_{zz}{\overset{.}{\omega}}_z+\left({I}_{yy}-{I}_{xx}\right){\omega}_x{\omega}_y $$
(14.8)

These nonlinear differential equations are known as Newton–Euler ‘s equations [28]. The cross product terms can be treated as forces in a set of Eqs. (14.3), (14.4), and (14.5) and as torques in a set of Eqs. (14.6), (14.7), and (14.8). The forces and torques can be added at the respective 1-junctions and using gyrator-ring structures bond graph is generated as presented in [28]. Generated structure is known as Euler Junction Structures (EJS).

2.2 Dynamics of an Upper Link of Leg

Translational velocity of frame {0} of each leg with reference to frame {A} and expressed in term of frame {A} is given by [12],

$$ {}^A\left({}^A\overrightarrow{V}_0\right)={}^A\left({}^A\overrightarrow{V}_B\right)+{}_B{}^AR\;\left[-{}^B\left({}^B\overrightarrow{P}_0\right)\times {}^B\left({}^A\overrightarrow{\omega}_B\right)\right] $$
(14.9)

where \( {}^A\left({}^A\overrightarrow{V}_B\right) \) represents the translational velocity of body frame {B} with respect to an inertial frame {A} and expressed in frame {A}; \( {}^B\left({}^A\overrightarrow{\omega}_B\right) \) represents the angular velocity of body frame {B} with respect to inertial frame {A} and expressed in frame {B}; \( {}^B\left({}^B\overrightarrow{P}_0\right)_i \) represents the position vector of frame {0} of ith leg with respect to the body CG frame {B} and expressed in frame {B}. It can be expressed as \( {}^B\left({}^B\overrightarrow{P}_0\right)_i={\left[\begin{array}{ccc}\hfill {r}_{ix}\hfill & \hfill {r}_{iy}\hfill & \hfill {r}_{iz}\hfill \end{array}\right]}^T \) where i denotes legs 1–4. Here r denotes position of frame {0} with respect to body CG frame. In Eq. (14.9), A B R represent the transformation from body frame {B} to inertial frame {A} and can be expressed as,

$$ {}_B^AR=\left(\begin{array}{ccc}\hfill c\theta \kern0.22em c\phi \hfill & \hfill s\psi \kern0.22em s\theta \kern0.22em c\phi -c\psi \kern0.22em s\phi \hfill & \hfill c\psi \kern0.22em s\theta \kern0.22em c\phi +s\psi \kern0.22em s\phi \hfill \\ {}\hfill c\theta \kern0.22em s\phi \hfill & \hfill s\psi \kern0.22em s\theta \kern0.22em s\phi +c\psi \kern0.22em c\phi \hfill & \hfill c\psi \kern0.22em s\theta \kern0.22em s\phi -s\psi \kern0.22em c\phi \hfill \\ {}\hfill -s\theta \hfill & \hfill s\psi \kern0.22em c\theta \hfill & \hfill c\psi \kern0.22em c\theta \hfill \end{array}\right) $$
(14.10)

where is shorthand for cosθ, for sinθ, and so on. ϕ, θ and ψ are the Z-Y-X Euler angles. Governing equation for an angular velocity propagation (AVP) of links of a leg can be given as [12],

$$ {}^{i+1}\left({}^A\overrightarrow{\omega}_{i+1}\right){=}_i^{i+1}R{}^i\left({}^A\overrightarrow{\omega}_i\right)+{}^{i+1}\left({}^i\overrightarrow{\omega}_{i+1}\right) $$
(14.11)

where \( {}^{i+1}\left({}^A\overrightarrow{\omega}_{i+1}\right) \) is the angular velocity of (i + 1) link with respect to inertial frame {A} and expressed in (i + 1)th frame, \( {}^i\left({}^A\overrightarrow{\omega}_i\right) \) is the angular velocity of the ith link with respect to the inertial frame {A} and expressed in ith frame, and \( {}^{i+1}\left({}^i\overrightarrow{\omega}_{i+1}\right) \) is the angular velocity of (i + 1) link as observed from ith link and expressed in (i + 1)th frame. The term can be expressed for link 1 and 2, respectively as, \( {}^1\left({}^0\overrightarrow{\omega}_1\right)={\left[\begin{array}{ccc}\hfill {\overset{.}{\theta}}_1\hfill & \hfill 0\hfill & \hfill 0\hfill \end{array}\right]}^T \), \( {}^2\left({}^1\overrightarrow{\omega}_2\right)={\left[\begin{array}{ccc}\hfill {\overset{.}{\theta}}_2\hfill & \hfill 0\hfill & \hfill 0\hfill \end{array}\right]}^T \) where \( {\overset{.}{\theta}}_1 \) represents angular velocity of frame {1} with respect to frame {0} expressed in frame {1} and similarly \( {\overset{.}{\theta}}_2 \) represents the angular velocity of frame {2} with respect to frame {1} expressed in frame {2}.

For translational velocity propagation (TVP), governing equation for the link tip velocity and link CG velocity are given as,

$$ {}^A\left({}^A\overrightarrow{V}_{i+1}\right)={}^A\left({}^A\overrightarrow{V}_i\right) +_i^AR\left[{}^i\left({}^A\overrightarrow{\omega}_i\right)\times {}^i\left({}^i\overrightarrow{P}_{i+1}\right)\right] $$
(14.12)

where \( {}^A\left({}^A\overrightarrow{V}_{i+1}\right) \) represents the translational velocity of body frame {i + 1} with respect to an inertial frame {A} and expressed in frame {A}, \( {}^A\left({}^A\overrightarrow{V}_i\right) \) represents the translational velocity of body frame {i} with respect to an inertial frame {A} and expressed in frame {A}, \( {}^i\left({}^i\overrightarrow{P}_{i+1}\right) \) represents position of frame {i + 1} with respect to frame {i} and expressed in frame {i}. Link lengths l 1 and l 2 are taken along the principal Y-axis of the links and hence represented in vector form as, \( {}^0\overrightarrow{P}_1={\left[\begin{array}{ccc}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \end{array}\right]}^T \), \( {}^1\overrightarrow{P}_2={\left[\begin{array}{ccc}\hfill 0\hfill & \hfill {l}_1\hfill & \hfill 0\hfill \end{array}\right]}^T \), \( {}^2\overrightarrow{P}_3={\left[\begin{array}{ccc}\hfill 0\hfill & \hfill {l}_2\hfill & \hfill 0\hfill \end{array}\right]}^T \)

Equation (14.12) can be simplified as,

$$ {}^A\left({}^A\overrightarrow{V}_{i+1}\right)={}^A\left({}^A\overrightarrow{V}_i\right) +_i^AR\left[-{}^i\left({}^i\overrightarrow{P}_{i+1}\right)\times \right]\left[{}^i\left({}^A\overrightarrow{\omega_i}\right)\right] $$
(14.13)

For position of a link CG, \( {}^i\left({}^i\overrightarrow{P}_{Gi}\right)={\left[\begin{array}{ccc}\hfill 0\hfill & \hfill {l}_{Gi}\hfill & \hfill 0\hfill \end{array}\right]}^T \)

$$ {}^A\left({}^A\overrightarrow{V}_{Gi}\right)={}^A\left({}^A\overrightarrow{V}_i\right) +_i^AR\left[-{}^i\left({}^i\overrightarrow{P}_{Gi}\right)\times \right]\left[{}^i\left({}^A\overrightarrow{\omega_i}\right)\right] $$
(14.14)

Equations (14.12), (14.13), and (14.14) represent the TVP of link in each leg of the robot. The CG velocity of links depends on link inertia. In the bond graph model “I elements (representing mass of a link) are attached at flow junctions. They yield the CG velocities of links. The starting point of the current link is same as the previous link tip. Hence, the tip velocity of the previous link and the angular velocity of the current link are used to find the tip velocity and the CG velocity of the current link. \( {}^i\left({}^A\overrightarrow{\omega_i}\right) \) in above equations can be obtained from the AVP for the current link.

The EJS to represent angular dynamics of the link can be constructed similarly as discussed in Sect. 14.2.1. In case of link, torque is provided in x direction only.

2.3 Dynamics of the Prismatic Link

Lower link of the quadruped leg can be considered as a prismatic link , in which piston and piston rod is sliding inside cylinder. The movement is restricted by the internal hydraulic pressure of the cylinder and helical compression spring attached at the piston rod. This arrangement generates compliance in the leg. The sliding of piston is one of the most difficult multi-body components which give rise to nonlinear equations of motion. It is important to develop bond graph model of prismatic link with proper mass distribution. Incorrect modeling of entire prismatic link generates improper inertial forces. Thus, utmost care should be taken at the time of generating bond graph model of the three dimensional prismatic link. Bond graph modeling of prismatic link is developed from the concept presented in [79, 13, 28]. The schematic drawing of prismatic link is shown in Fig. 14.2.

Fig. 14.2
figure 2

Schematic diagram of prismatic link [7, 9]

Local coordinate frame is attached at the center of mass of piston (x p , y p , z p ) and cylinder (x c , y c , z c ) and they are assumed to be aligned with the inertial principal axes. Piston and cylinder motions are described with reference to this body fixed coordinate system which rotate and translate with the respective rigid bodies. The end of the cylinder part will be fixed with the link 1 of quadruped robot and piston end will touch the ground. X 2, Y 2, Z 2 and X 3, Y 3, Z 3 are the inertial coordinate system while x 2 , y 2 , z 2 and x 3 , y 3 , z 3 are body fixed or non-inertial coordinate system of the cylinder and piston end, respectively. The contemporary length l c is the distance between the two end points. The center of gravity of the cylinder is located at a distance of l cg from the fixed end. The combined center of gravity of the piston and the rod is located at a distance of l pg from the rod end. The length of the piston is d. The center of the piston is located at a distance l p from the rod end.

The velocity vector of the cylinder in the inertial frame is represented as \( {\overrightarrow{v}}_{Xc,Yc,Zc} \) and in the body fixed frame as \( {\overrightarrow{v}}_{xc,yc,zc} \). The angular velocity vector in the body fixed frame is \( {\overrightarrow{\omega}}_{xc,yc,zc} \). Then, Euler equation for translatory motion of the cylinder can be given as,

$$ {F}_{xc}={M}_c{\ddot{x}}_c+{M}_c\left({\overset{.}{z}}_c{\omega}_{yc}-{\overset{.}{y}}_c{\omega}_{zc}\right) $$
(14.15)
$$ {F}_{yc}={M}_c{\ddot{y}}_c+{M}_c\left({\overset{.}{x}}_c{\omega}_{zc}-{\overset{.}{z}}_c{\omega}_{xc}\right)\vspace*{-24pt} $$
(14.16)
$$ {F}_{zc}={M}_c{\ddot{z}}_c+{M}_c\left({\overset{.}{y}}_c{\omega}_{xc}-{\overset{.}{x}}_c{\omega}_{yc}\right) $$
(14.17)

where F xc , F yc , F zc are external forces acting in body fixed x c , y c , and z c directions, respectively, ω xc , ω yc , and ω zc are angular velocities of the mass center of the cylinder in the body fixed frame. \( {\overset{.}{x}}_c,{\overset{.}{y}}_c\ \mathrm{and}\ {\overset{.}{z}}_c \) are velocities of the mass center in the body fixed frame, \( {\ddot{x}}_c,{\ddot{y}}_c\ \mathrm{and}\ {\ddot{z}}_c \) are accelerations of the mass center in the body fixed frame. Similarly, Euler equations for rotary motion of the cylinder can be given as,

$$ {M}_{xc}={I}_{xc}{\overset{.}{\omega}}_{xc}-\left({I}_{yc}-{I}_{zc}\right){\omega}_{yc}{\omega}_{zc}\vspace*{-24pt} $$
(14.18)
$$ {M}_{yc}={I}_{yc}{\overset{.}{\omega}}_{yc}-\left({I}_{zc}-{I}_{xc}\right){\omega}_{zc}{\omega}_{xc}\vspace*{-24pt} $$
(14.19)
$$ {M}_{zc}={I}_{zc}{\overset{.}{\omega}}_{zc}-\left({I}_{xc}-{I}_{yc}\right){\omega}_{xc}{\omega}_{yc} $$
(14.20)

where I xc , I yc , and I zc are second moment of inertia about the principal axes, M xc , M yc , and M zc are components of resultant moment due to external forces and couples about the non-rotating coordinate frame whose axes are momentarily aligned with the principal axes of the body.

Above Euler equations can be represented by the double gyrator rings where the gyrators are modulated by the angular velocities in the body fixed frame. Similarly, Euler equations can be generated for the piston also and it can be represented by the double gyrator rings. Generated bond graph model of above equations are shown in Fig. 14.3 in which G1–G12 are the gyrator moduli taken from above equations.

Fig. 14.3
figure 3

Bond graph model sub-model of prismatic link (PL)

The position of the fixed point in the body fixed frame is x 2 , y 2 , z 2. The velocity of the cylinder in the body fixed frame is

$$ {\overset{.}{x}}_2={\overset{.}{x}}_c+{z}_2{\omega}_{yc}-{y}_2{\omega}_{zc} $$
(14.21)
$$ {\overset{.}{y}}_2={\overset{.}{y}}_c+{x}_2{\omega}_{zc}-{z}_2{\omega}_{xc} $$
(14.22)
$$ {\overset{.}{z}}_2={\overset{.}{z}}_c+{y}_2{\omega}_{xc}-{x}_2{\omega}_{yc} $$
(14.23)

Equations (14.21), (14.22), and (14.23) are body fixed velocities. So, it is necessary to convert it into the inertial frame by coordinate transformation block (CTF). CTF block is generated using successive multiplication of rotation matrices as follows:

$$ \left\{\begin{array}{c}\hfill {\overset{.}{X}}_2\hfill \\ {}\hfill {\overset{.}{Y}}_2\hfill \\ {}\hfill {\overset{.}{Z}}_2\hfill \end{array}\right\}={T}_{\phi c,\theta c,\psi c}\left\{\begin{array}{c}\hfill {\overset{.}{x}}_2\hfill \\ {}\hfill {\overset{.}{y}}_2\hfill \\ {}\hfill {\overset{.}{z}}_2\hfill \end{array}\right\} $$
(14.24)

where

$$ {T}_{\phi c,\theta c,\psi c}=\left[\begin{array}{ccc}\hfill c{\phi}_c\hfill & \hfill -s{\phi}_c\hfill & \hfill 0\hfill \\ {}\hfill s{\phi}_c\hfill & \hfill c{\phi}_c\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill 1\hfill \end{array}\right]\left[\begin{array}{ccc}\hfill c{\theta}_c\hfill & \hfill 0\hfill & \hfill s{\theta}_c\hfill \\ {}\hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill \\ {}\hfill -s{\theta}_c\hfill & \hfill 0\hfill & \hfill c{\theta}_c\hfill \end{array}\right]\left[\begin{array}{ccc}\hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill c{\psi}_c\hfill & \hfill -s{\psi}_c\hfill \\ {}\hfill 0\hfill & \hfill s{\psi}_c\hfill & \hfill c{\psi}_c\hfill \end{array}\right] $$
(14.25)

c is shorthand for cosθ c , c for sinθ c , and so on and ϕ c , θ c  and ψ c are the Z-Y-X Cardan angles. Components of T ϕc,θc,ψc are used to construct CTF block. Similarly, the velocity of the piston in the body fixed frame can be written and it can be converted into an inertial frame. It is to be noted that the required angle for CTF block is derived from the inverse transformation from body fixed angular velocities to Euler angle rates [28].

The normal fixed velocities at the contact point 4 and 5 on the cylinder and piston along x and z directions by assuming a thin but long piston can be given as [7]

$$ {\overset{.}{x}}_{4c}={\overset{.}{x}}_c+\left(l-{l}_p-{l}_{cg}-\frac{d}{2}\right){\omega}_{zc}\vspace*{-18pt} $$
(14.26)
$$ {\overset{.}{z}}_{4c}={\overset{.}{z}}_c+\left(l-{l}_p-{l}_{cg}-\frac{d}{2}\right){\omega}_{xc}\vspace*{-18pt} $$
(14.27)
$$ {\overset{.}{x}}_{4p}={\overset{.}{x}}_p-\left({l}_p-{l}_{pg}+\frac{d}{2}\right){\omega}_{zp}\vspace*{-18pt} $$
(14.28)
$$ {\overset{.}{z}}_{4p}={\overset{.}{z}}_p-\left({l}_p-{l}_{pg}+\frac{d}{2}\right){\omega}_{xp}\vspace*{-18pt} $$
(14.29)
$$ {\overset{.}{x}}_{5c}={\overset{.}{x}}_c+\left(l-{l}_p-{l}_{cg}+\frac{d}{2}\right){\omega}_{zc}\vspace*{-18pt} $$
(14.30)
$$ {\overset{.}{z}}_{5c}={\overset{.}{z}}_c+\left(l-{l}_p-{l}_{cg}+\frac{d}{2}\right){\omega}_{xc}\vspace*{-18pt} $$
(14.31)
$$ {\overset{.}{x}}_{5p}={\overset{.}{x}}_p-\left({l}_p-{l}_{pg}-\frac{d}{2}\right){\omega}_{zp\vspace*{-18pt}} $$
(14.32)
$$ {\overset{.}{z}}_{5p}={\overset{.}{z}}_p-\left({l}_p-{l}_{pg}-\frac{d}{2}\right){\omega}_{xp} $$
(14.33)

where \( \overrightarrow{\omega} \) indicates the body fixed angular velocity about the axis indicated in subscript. Subscript c has been used for cylinder while p has been used for the piston. Above discussed contact point mechanism is model as shown in Fig. 14.4.

Fig. 14.4
figure 4

Bond graph sub-model of contact of point mechanism (CPM) for prismatic link

The rate of change of contemporary length between two end points of prismatic link can be expressed as

$$ {\overset{.}{l}}_c={\mu}_x\left({\overset{.}{X}}_2^{\prime }-{\overset{.}{X}}_3^{\prime}\right)+{\mu}_y\left({\overset{.}{Y}}_2^{\prime }-{\overset{.}{Y}}_3^{\prime}\right)+{\mu}_z\left({\overset{.}{Z}}_2^{\prime }-{\overset{.}{Z}}_3^{\prime}\right) $$
(14.34)

where X 2 , Y 2 , Z 2 and X 3 , Y 3 , Z 3 are coordinates of cylinder end and piston end, respectively, in the inertial frame, \( {\mu}_x=\frac{\left({X}_2^{\prime }-{X}_3^{\prime}\right)}{l_c} \), \( {\mu}_y=\frac{\left({Y}_2^{\prime }-{Y}_3^{\prime}\right)}{l_c} \), and \( {\mu}_z=\frac{\left({Z}_2^{\prime }-{Z}_3^{\prime}\right)}{l_c} \) are moduli used to derive the relative sliding velocity between piston and cylinder at “0” junction. Compliance in the link is modeled by “C” and “R” element. For contact point mechanics, to compute contact point velocities in body fixed frame moduli β 1β 4 and β 5β 8 are determined from kinematic analysis of the cylinder and piston, respectively. Through a set of transformer moduli μ 1μ 12 similar to an expanded form of CTF block, body fixed velocities are transformed into inertial velocities and then they are implicitly constrained. The relative normal velocity between the contact point on the cylinder and the normal velocity at the contact point on the piston is implicitly constrained by contact stiffness and damping parameters, k b and R b , respectively. The three external effort inputs are from the motor. Since the motor applies torque about body fixed x-axis on the cylinder, two of these effort inputs are zero.

2.4 Dynamics of Combined Body and Leg Links

The bond graph model is developed using above discussed body and leg dynamics. A compact and a simple presentation of a bond graph model can be carried out in multibond graph form. Here also developed three dimensional model of quadruped robot is presented in multibond graph form as shown in Fig. 14.5. TVP sub-model of the “Body” part is shown in the multibond graph. It takes the angular velocity from a body \( {}^B\left({}^A\overrightarrow{\omega}_B\right) \) (obtained from EJS) and translational velocity \( {}^A\left({}^A\overrightarrow{V}_B\right) \) (decided by body mass) as input and gives out the velocity of {0} frame to the link 1 of each leg. Frames {0} and {1} are coincident for each leg. Hence, the velocity of frame {1} is same as the frame {0}. “Leg” sub-model in the multibond graph represents a two DOF leg. It takes the angular and linear velocity of body and joint torques about x-axis as input. It uses AVP and TVP sub-models of links 1 and 2 and gives out leg tip velocity as output. This sub-model furnishes complete dynamics of a two link leg. The various sub-models shown in Fig. 14.5 for leg 1 can also be used to model legs 2, 3, and 4. The leg tip sub-model in Fig. 14.5 represents the modeling of leg tip-ground interaction. An R element is appended to “1” junction of each leg in the X and Y direction, to model the frictional resistance offered by ground. Similarly, C and R elements are attached in Z direction to model the normal reaction force from the ground. Leg tip position sensors in each direction yield the leg tip position coordinates.

Fig. 14.5
figure 5

Multibond graph of a quadruped robot

A systematic construction of bond graph model yields a dynamics expression that can be written in matrix form as

$$ {\overrightarrow{\tau}}_i={\left[A\left(\theta \right)\ddot{\theta}+B\left(\theta, \overset{.}{\theta}\right)+C\left(\theta \right)\right]}_i-{J}_i^T{\overrightarrow{F}}_i $$
(14.35)

where \( \overrightarrow{\tau} \) is the 2 × 1 matrix of joint torque and \( \overrightarrow{F} \) is the 3 × 1 vector of the ground contact force of leg i, J is the Jacobian matrix, A(θ) is the 3 × 3 mass matrix, B is a 3 × 1 matrix of centrifugal and Coriolis terms, and C(θ) is a 3 × 1 matrix of gravity terms. A pad is used to avoid differential causality. Pads are artificial compliances/lumped flexibilities that can be used in bond graph [18, 29]. Bond graph model of above discussed body and leg dynamics is developed in SYMBOLS software [34].

Compliance in the link improves locomotion of quadruped robot. But over compliance reduces locomotion speed and also affects posture disturbance. So, most suitable value of compliance is must for specific robot configuration. This objective can be achieved by simulating bond graph model of quadruped. Number of simulations can be carried out by varying the compliance (which is discussed in coming section), and its values can be finalized for maximum locomotion speed of robot. This stiffness and load coming on each leg becomes the key parameters for designing the spring used in prismatic link . Number of turns of spring n can be decided as

$$ n=\frac{\delta Gd}{8W{C}^3} $$
(14.36)

where W is load, δ is axial deflection derived from load(W)/stiffness(K), C is spring index derived from coil diameter(D)/wire diameter(d), and G is the Modulus of rigidity of the spring material. Here, W is the dynamic load estimated from simulations and the spring design is valid only when the inertial effects of the spring are neglected, i.e., when the rigid-body acceleration is not very large.

3 Locomotion Control of Quadruped Robot

A quadruped robot can be considered as a multi-arm industrial manipulator with a mobile base. As a consequence, its control is considerably difficult as compared to that of a terrestrial manipulator. Also, each leg has to pass through stand and motion phases depending upon the gait pattern. In such a situation, the locomotion control is a difficult problem which demands accurate kinematic and dynamic analyses. Walk can be classified as “static walk ” and “dynamic walk .” In static walk stability is maintained by keeping at least three feet planted on the ground and maintaining the center of gravity within the support of polygon. In dynamic walk stability is maintained by continuously moving either the feet or the body to maintain balance. Alexander [1] shows various gait patterns followed by four legged animals. Here statically stable gait “Amble” and dynamically stable gait “Trot” are considered. In case of trot gait one pair of diagonal legs moves forward while other pair remains on the ground, which reverses in next phase of locomotion. In case of statically stable amble gait , at a time only one leg moves forward while remaining legs maintain contact with the ground. Here, legs are operated one by one in 1-4-2-3 sequence. Both the gaits are shown in Fig. 14.6, where dark line indicates corresponding leg contact with the ground.

Fig. 14.6
figure 6

Trot and amble gait

Quadruped locomotion can be controlled either in joint space or in workspace. In joint space control commands are directly given for specific joint rotation, while in workspace control , based on the need of feet trajectory joints movements are derived and commands are given to actuators for the same.

3.1 Joint Space Control

In joint space control , commands are directly given to the joint based on the required gait pattern. To simulate the bond graph model in any of the gait, it is necessary to know rotation required at each joint so that a required voltage can be supplied to get the desired rotation of a joint. Thus, to determine a joint rotation, for leg forward and body forward movement, graphical analysis is carried out. Graphical analysis as shown in Fig. 14.7 gives an idea about a joint rotation required for the said movement.

Fig. 14.7
figure 7

Graphical representation of leg and body movement

From Fig. 14.7, joint position with reference to time is listed in Table 14.1 for trot gait . Here, cubic curve is fitted for smooth joint rotation. The required voltage for the said movement is supplied by actuator which is controlled by Proportional-Integral-Derivative (PID) controller and can be represented as,

Table 14.1 Joint position for trot gait
$$ V={K}_P\left({\theta}_d-{\theta}_a\right)+{K}_D\left({\overset{.}{\theta}}_d-{\overset{.}{\theta}}_a\right)+{K}_I{\displaystyle \int \left({\theta}_d-\theta \right)}\mathrm{d}t $$
(14.37)

where V is the input voltage supplied to the joint actuator of leg; K P , K D , and K I are the proportional, derivative, and integral gains, respectively; θ d is the desired position, θ a is the actual measured angular position, \( {\overset{.}{\theta}}_d \) is the desired joint velocity, and \( {\overset{.}{\theta}}_a \) is the actual measured joint velocity.

3.2 Workspace Control

To control the quadruped locomotion in the workspace two distinct control steps are executed in sequence as per the selected gait pattern:

  1. 1.

    Leg forward motion control where the desired leg tip trajectory in the forward direction is obtained by fitting a cubic curve in the path to be followed and the leg vertical motion in Z direction is obtained by fitting two cubic curves. The trajectory error is fed to a PI controller whose output is then transformed through Jacobian to generate the corrective joint torques.

  2. 2.

    Body forward motion control where the leg tips remain fixed on the ground and the joints are actuated in order to align leg segments to their initial positions. Here, the required torque is directly supplied to the joints by the actuators, which are controlled by PID controller .

3.2.1 Reference Tip Velocity Generation

In this control strategy authors assumed joint motions such that leg tip has horizontal and vertical translation. The entire trajectory generation process consisting of various steps has been explained in Fig. 14.8.

Fig. 14.8
figure 8

Leg tip trajectory generation

If the robot joints are powered in the sequence as discussed in Sect. 14.3.1, the leg tip position for leg 1 in Y and Z directions as obtained from a dynamic model turns out to be as shown in Fig. 14.9. However, such actuation of joints is a joint space control and the problem it is that the complicated trajectories with constraints, such as obstacles, cannot be achieved easily due to nonlinear kinematics of the system. If similar kind of motion is required through workspace control , tip trajectory should be taken as input.

Fig. 14.9
figure 9

Leg 1 tip displacement in (a) Y and (b) Z directions; (c) initial position of legs and (d) position of the legs at the end of first phase

Here, cubic curve equation is used for fitting the leg tip movement in Y direction shown in Fig. 14.9.

$$ y(t)={y}_1+\frac{3\left({y}_2-{y}_1\right)}{t{f}^2}{t}^2+\frac{-2\left({y}_2-{y}_1\right)}{t{f}^3}{t}^3 $$
(14.38)

where y 1 is initial position of leg tip, y 2 is final position of leg tip, and t f is trajectory end time. In generation of trajectory given by Eq. (14.38), it is assumed that at \( t=0;y(t)={y}_1,\overset{.}{y}(t)=0 \) and at \( t={t}_f;y(t)={y}_2,\overset{.}{y}(t)=0. \) For Z direction, the trajectory is divided into two segments. For the smooth motion of quadruped, the reference tip velocity and its derivative should be continuous. There are several ways in which desired velocities at via points can be specified [12]. For Z direction, cubic polynomials are fitted with constraints that the accelerations at via points have to be continuous. The first and second cubic interpolation polynomials are

$$ {z}_1(t)={z}_i+\frac{\left(12{z}_v-3{z}_f-9{z}_i\right)}{4{t_{f1}}^2}{t}^2+\frac{\left(-8{z}_v+3{z}_f+5{z}_i\right)}{4{t_{f1}}^3}{t}^3\vspace*{-18pt} $$
(14.39)
$$ {z}_2(t)={z}_v+\frac{\left(3{z}_f-3{z}_i\right)}{4{t}_{f2}}t+\frac{\left(-12{z}_v+6{z}_f+6{z}_i\right)}{4{t_{f2}}^2}{t}^2+\frac{\left(8{z}_v-5{z}_f-3{z}_i\right)}{4{t_{f2}}^3}{t}^3 $$
(14.40)

wherez i is initial position, z f is final position, z v is via point, and t = t f1 is trajectory end time for first segment and t = t f2 is trajectory end time for second segment. In generation of trajectories given by (14.39) and (14.40), it is assumed that

$$ \mathrm{at}\;t=0;{z}_1(t)={z}_i,{\overset{.}{z}}_1(t)=0,\vspace*{-12pt} $$
$$ \mathrm{at}\kern0.24em t={t}_{f1};{z}_1(t)={z}_v,{z}_2(t)={z}_v,{\overset{.}{z}}_1(t)={\overset{.}{z}}_2(t),{\ddot{z}}_1(t)={\ddot{z}}_2(t),\vspace*{-12pt} $$
$$ \mathrm{and}\;\mathrm{at}\kern0.24em t={t}_{f2};{z}_2(t)={z}_f,{\overset{.}{z}}_2(t)=0. $$
$$ \overset{.}{y}(t)=\frac{6\left({y}_2-{y}_1\right)}{{t_f}^2}t+\frac{-6\left({y}_2-{y}_1\right)}{{t_f}^3}{t}^2 $$
(14.41)
$$ {\overset{.}{z}}_1(t)=\frac{2\left(12{z}_v-3{z}_f-9{z}_i\right)}{4{t_{f1}}^2}t+\frac{3\left(-8{z}_v+3{z}_f+5{z}_i\right)}{4{t_{f1}}^3}{t}^2 $$
(14.42)
$$ {\overset{.}{z}}_2(t)=\frac{\left(3{z}_f-3{z}_i\right)}{4{t}_{f2}}+\frac{2\left(-12{z}_v+6{z}_f+6{z}_i\right)}{4{t_{f2}}^2}t+\frac{3\left(8{z}_v-5{z}_f-3{z}_i\right)}{4{t_{f2}}^3}{t}^2 $$
(14.43)

Use of Eqs. (14.38), (14.39), (14.40), (14.41), (14.42), and (14.43) with required gait patterns yields the reference profile for leg as shown in Figs. 14.10 and 14.11. Thus, Fig. 14.9a, b has been faithfully mathematically represented by Fig. 14.10a, b. Similarly, reference profile for remaining legs can also be obtained. These reference profiles are used to operate the model in workspace. The velocities are fed in the bond graph model by using SF elements.

Fig. 14.10
figure 10

Displacement profile through cubic polynomial: (a) displacement in Y, (b) displacement in Z directions

Fig. 14.11
figure 11

Trajectory through cubic polynomial: (a) velocity in Y and (b) velocity in Z directions

3.2.2 Proportional Integral Controller

A PI controller is used here to achieve the leg forward movement according to a desired trajectory profile. Here, the joint input torque is controlled by calculating an error value as the difference between the measured and reference velocities at a leg tip. The PI controller gives a control signal gives a control signal

$$ {V}_1={K}_Pe+{K}_I{\displaystyle \int e}\mathrm{d}t $$
(14.44)

where V 1 is the output from the controller when there is an error e which is changing with time t, K P is the proportionality constant, and K I is the integral constant.

3.2.3 Jacobian

Jacobian is a mapping from velocities in joint space to Cartesian space. The inverse problem, where the joint velocities are to be determined for a given tip velocity, requires the inverse of the Jacobian. For quadruped robot working in workspace, one needs to evaluate the Jacobian for joint control through a controller. Considering compliance in the lower links of the leg and velocity propagation, the velocity of the leg tip \( {}^A\left({}^A\overrightarrow{V}_3\right) \) represents the translational velocity of frame {3} with respect to the inertial frame {A} and expressed in frame {A}. \( {}^A\left({}^A\overrightarrow{V}_3\right) \) can be written as,

$$ {}^A\left({}^A\overrightarrow{V}_3\right)={}^A\left({}^A\overrightarrow{V}_2\right)+{}_2{}^AR\left[-{}^2\left({}^2\overrightarrow{P}_3\right)\times \right]\left[{}^2\left({}^A\overrightarrow{\omega}_2\right)\right]+{}_2{}^AR{\overset{.}{d}}_3{}^3\widehat{Z}_3 $$
(14.45)

where \( {}^A\left({}^A\overrightarrow{V}_2\right) \) is the translational velocity of frame {2} with respect to inertial frame {A} and expressed in frame {A}, A2 R is the rotation matrix which describes {2} relative to {A}, \( {}^2\left({}^2\overrightarrow{P}_3\right) \) is the position vector of frame {3} with respect to frame {2} and expressed in frame {2}, and \( {}^2\left({}^A\overrightarrow{\omega}_2\right) \) is the angular velocity of link 2 with respect to the inertial frame {A} and expressed in frame {2}.

Using Eq. (14.45), leg tip velocity of each leg can be derived; the expanded form of this equation is shown in (14.46).

$$ \begin{array}{c}\hfill {\overset{.}{X}}_{i\mathrm{tip}}\hfill \\ {}\hfill {\overset{.}{Y}}_{i\mathrm{tip}} \\ {\overset{.}{Z}}_{i\mathrm{tip}} \end{array}=\left[\begin{array}{l}\left\{ \begin{array}{l}{\overset{.}{X}}_{CG}+\Big(\big(- s\psi s\theta c\varnothing {s}_{1i}{l}_1+c\psi s\varnothing {s}_{1i}{l}_1+ c\psi s\theta c\varnothing {c}_{1i}{l}_1+s\psi s\varnothing {c}_{1i}{l}_1 \hspace*{65pt}\\ - s\psi s\theta c\varnothing {c}_{1i}{s}_{2i}{l}_2+c\psi s\varnothing {c}_{1i}{s}_{2i}{l}_2- c\psi s\theta c\varnothing {s}_{1i}{s}_{2i}{l}_2-s\psi s\varnothing {s}_{1i}{s}_{2i}{l}_2\\ - s\psi s\theta c\varnothing {s}_{1i}{c}_{2i}{l}_2+c\psi s\varnothing {s}_{1i}{c}_{2i}{l}_2+ c\psi s\theta c\varnothing {c}_{1i}{c}_{2i}{l}_2+s\psi s\varnothing {c}_{1i}{c}_{2i}{l}_2\big){\overset{.}{\theta}}_1\\ {}+\big(- s\psi s\theta c\varnothing {c}_{1i}{s}_{2i}{l}_2+c\psi s\varnothing {c}_{1i}{s}_{2i}{l}_2- c\psi s\theta c\varnothing {s}_{1i}{s}_{2i}{l}_2\\ -s\psi s\varnothing {s}_{1i}{s}_{2i}{l}_2- s\psi s\theta c\varnothing {s}_{1i}{c}_{2i}{l}_2+c\psi s\varnothing {s}_{1i}{c}_{2i}{l}_2\\ + c\psi s\theta c\varnothing {c}_{1i}{c}_{2i}{l}_2+s\psi s\varnothing {c}_{1i}{c}_{2i}{l}_2\big){\overset{.}{\theta}}_2\\ {}+\big( c\psi s\theta c\varnothing {r}_{yi}+s\psi s\varnothing {r}_{yi}- s\psi s\theta c\varnothing {r}_{zi}+c\psi s\varnothing {r}_{zi}- s\psi s\theta c\varnothing {s}_{1i}{l}_1\\ +c\psi s\varnothing {s}_{1i}{l}_1+ c\psi s\theta c\varnothing {c}_{1i}{l}_1+s\psi s\varnothing {c}_{1i}{l}_1- s\psi s\theta c\varnothing {c}_{1i}{s}_{2i}{l}_2+c\psi s\varnothing {c}_{1i}{s}_{2i}{l}_2\\ - c\psi s\theta c\varnothing {s}_{1i}{s}_{2i}{l}_2-s\psi s\varnothing {s}_{1i}{s}_{2i}{l}_2- s\psi s\theta c\varnothing {s}_{1i}{c}_{2i}{l}_2+c\psi s\varnothing {s}_{1i}{c}_{2i}{l}_2\\ + c\psi s\theta c\varnothing {c}_{1i}{c}_{2i}{l}_2+s\psi s\varnothing {c}_{1i}{c}_{2i}{l}_2\big){\omega}_x\\ {}+\big(- c\psi s\theta c\varnothing {r}_{xi}-s\psi s\varnothing {r}_{xi}+c\theta c\varnothing {r}_{zi}+c\theta c\varnothing {l}_1{s}_{1i}\\ +c\theta c\varnothing {l}_2{s}_{2i}{c}_{1i}+c\theta c\varnothing {l}_2{c}_{2i}{s}_{1i}\big){\omega}_y\\ {}+\big( s\psi s\theta c\varnothing {r}_{xi}-c\psi s\varnothing {r}_{xi}-c\theta c\varnothing {r}_{yi}-c\theta c\varnothing {l}_1{c}_{1i}\\ +c\theta c\varnothing {l}_2{s}_{2i}{s}_{1i}-c\theta c\varnothing {l}_2{c}_{2i}{c}_{1i}\big){\omega}_z\\ {}+\big(\left(\left( s\psi s\theta c\varnothing -c\psi s\varnothing \right){c}_{1i}+\left( c\psi s\theta c\varnothing +s\psi s\varnothing \right){s}_{1i}\right){c}_{2i}\\ +\left(-\left( s\psi s\theta c\varnothing -c\psi s\varnothing \right){s}_{1i}+\left( c\psi s\theta c\varnothing -s\psi s\varnothing \right){c}_{1i}\right){s}_{2i}\big){\overset{.}{l}}_{2i}\Big)\end{array}\right\}\\ {}\left\{ \begin{array}{l}{\overset{.}{Y}}_{CG}+\Big(\big(- s\psi s\theta s\varnothing {s}_{1i}{l}_1-c\psi c\varnothing {s}_{1i}{l}_1+ c\psi s\theta s\varnothing {c}_{1i}{l}_1 \\ -s\psi c\varnothing {c}_{1i}{l}_1- s\psi s\theta s\varnothing {c}_{1i}{s}_{2i}{l}_2-c\psi c\varnothing {c}_{1i}{s}_{2i}{l}_2- c\psi s\theta s\varnothing {s}_{1i}{s}_{2i}{l}_2\\ +s\psi c\varnothing {s}_{1i}{s}_{2i}{l}_2- s\psi s\theta s\varnothing {s}_{1i}{c}_{2i}{l}_2-c\psi c\varnothing {s}_{1i}{c}_{2i}{l}_2+ c\psi s\theta s\varnothing {c}_{1i}{c}_{2i}{l}_2-s\psi c\varnothing {c}_{1i}{c}_{2i}{l}_2\big){\overset{.}{\theta}}_1\\ {}+\big(- s\psi s\theta s\varnothing {c}_{1i}{s}_{2i}{l}_2-c\psi c\varnothing {c}_{1i}{s}_{2i}{l}_2- c\psi s\theta s\varnothing {s}_{1i}{s}_{2i}{l}_2\\ +s\psi c\varnothing {s}_{1i}{s}_{2i}{l}_2- s\psi s\theta s\varnothing {s}_{1i}{c}_{2i}{l}_2-c\psi c\varnothing {s}_{1i}{c}_{2i}{l}_2\\ + c\psi s\theta s\varnothing {c}_{1i}{c}_{2i}{l}_2-s\psi c\varnothing {c}_{1i}{c}_{2i}{l}_2\big){\overset{.}{\theta}}_2\\ {}+\big( c\psi s\theta s\varnothing {r}_{yi}-s\psi c\varnothing {r}_{yi}- s\psi s\theta s\varnothing {r}_{zi}-c\psi c\varnothing {r}_{zi}- s\psi s\theta s\varnothing {s}_{1i}{l}_1+c\psi c\varnothing {s}_{1i}{l}_1\\ + c\psi s\theta s\varnothing {c}_{1i}{l}_1-s\psi c\varnothing {c}_{1i}{l}_1- s\psi s\theta s\varnothing {c}_{1i}{s}_{2i}{l}_2-c\psi c\varnothing {c}_{1i}{s}_{2i}{l}_2\\ - c\psi s\theta s\varnothing {s}_{1i}{s}_{2i}{l}_2+s\psi c\varnothing {s}_{1i}{s}_{2i}{l}_2- s\psi s\theta s\varnothing {s}_{1i}{c}_{2i}{l}_2-c\psi c\varnothing {s}_{1i}{c}_{2i}{l}_2\\ + c\psi s\theta s\varnothing {c}_{1i}{c}_{2i}{l}_2-s\psi c\varnothing {c}_{1i}{c}_{2i}{l}_2\big){\omega}_x\\ {}+\big(- c\psi s\theta s\varnothing {r}_{xi}+s\psi c\varnothing {r}_{xi}+c\theta s\varnothing {r}_{zi}+c\theta s\varnothing {l}_1{s}_{1i}\\ +{s}_{2i}{c}_{1i}c\theta s\varnothing {l}_2+{c}_{2i}{s}_{1i}c\theta s\varnothing {l}_2\big){\omega}_y\\ {}+\big( s\psi s\theta s\varnothing {r}_{xi}+c\psi c\varnothing {r}_{xi}-c\theta s\varnothing {r}_{yi}-c\theta s\varnothing {l}_1{c}_{1i}\\ +{s}_{2i}{s}_{1i}c\theta s\varnothing {l}_2-{c}_{2i}{c}_{1i}c\theta s\varnothing {l}_2\big){\omega}_z\\ {}+\big(\left(\left( s\psi s\theta s\varnothing -c\psi c\varnothing \right){c}_{1i}+\left( c\psi s\theta s\varnothing -s\psi c\varnothing \right){s}_{1i}\right){c}_{2i}\\ +\left(-\left( s\psi s\theta s\varnothing +c\psi c\varnothing \right){s}_{1i}+\left( c\psi s\theta s\varnothing -s\psi c\varnothing \right){c}_{1i}\right){s}_{2i}\big){\overset{.}{l}}_{{}_{2i}}\Big)\end{array}\right\}\\ {}\left\{\begin{array}{l}{\overset{.}{Z}}_{CG}+\Big(\big(- s\psi c\theta {s}_{1i}{l}_1+ c\psi c\theta {c}_{1i}{l}_1- s\psi c\theta {c}_{1i}{s}_{2i}{l}_2\\ - c\psi c\theta {s}_{1i}{s}_{2i}{l}_1- s\psi c\theta {s}_{1i}{c}_{2i}{l}_2+ c\psi c\theta {c}_{1i}{c}_{2i}{l}_2\big){\overset{.}{\theta}}_1\\ {}+\big(- s\psi c\theta {c}_{1i}{s}_{2i}{l}_2- c\psi c\theta {s}_{1i}{s}_{2i}{l}_2- s\psi c\theta {s}_{1i}{c}_{2i}{l}_2\\ + c\psi c\theta {c}_{1i}{c}_{2i}{l}_2\big){\overset{.}{\theta}}_2\\ {}+\big( c\psi c\theta {r}_{yi}- s\psi c\theta {r}_{zi}- s\psi c\theta {s}_{1i}{l}_1+ c\psi c\theta {c}_{1i}{l}_1- s\psi c\theta {c}_{1i}{s}_{2i}{l}_2\\ - c\psi c\theta {s}_{1i}{s}_{2i}{l}_2- s\psi c\theta {s}_{1i}{c}_{2i}{l}_2+ c\psi c\theta {c}_{1i}{c}_{2i}{l}_2\big){\omega}_x \hspace*{130pt}\\ {}+\left(- c\psi c\theta {r}_{xi}-s\theta {r}_{zi}-{s}_{1i}s\theta {l}_1-{s}_{2i}{c}_{1i}s\theta {l}_2-{c}_{2i}{s}_{1i}s\theta {l}_2\right){\omega}_y\\ {}+\left(s\theta {r}_{yi}+ s\psi c\theta {r}_{xi}+{c}_{1i}s\theta {l}_1-{s}_{2i}{s}_{1i}s\theta {l}_2+{c}_{2i}{c}_{1i}s\theta {l}_2\right){\omega}_z\\ {}+\left(\left( s\psi c\theta {c}_{1i}+ c\psi c\theta {s}_{1i}\right){c}_{2i}+\left(- s\psi c\theta {s}_{1i}+ c\psi c\theta {c}_{1i}\right){s}_{2i}\right){i}_{2i}\Big)\end{array}\right\}\end{array}\right]\vspace*{-2pc} $$
(14.46)

Using these equations, a sub-model of the Jacobian is prepared in bond graph form as a conservative transformer junction structure. For the leg tip velocity control, reference velocity is compared with the actual leg tip velocity and error values are sent to PI controller . PI controller sends corrective signals to the Jacobian. Jacobian decides required efforts at the joints for leg forward movement, which is supplied to the motor in terms of voltage. The equations for the voltage supplied to the motor can be given as,

$$ {V}_1={s}_X{\alpha}_{12}+{s}_Y{\alpha}_{11}+{s}_Z{\alpha}_{10} $$
(14.47)
$$ {V}_2={s}_X{\alpha}_{15}+{s}_Y{\alpha}_{14}+{s}_Z{\alpha}_{13} $$
(14.48)

where s X , s Y , and s Z are the corrective signals from PI controllers in X, Y, and Z directions, respectively. The detailed description of coefficients α ij used in Eqs. (14.47) and (14.48) are obtained from leg tip velocity expressions. Figure 14.12 shows signal flow diagram of three dimensional model of Jacobian

Fig. 14.12
figure 12

Signal flow diagram of three dimensional model of Jacobian

3.2.4 Body Forward Motion Control

Body forward motion is achieved by actuating joints 1 and 2 of those legs which are in contact with the ground so that joint angles are restored to their initial positions. The voltage supplied to the joints through a PID controller is given as

$$ {V}_2={K}_{pb}\left({\theta}_d-{\theta}_a\right)+{K}_{db}\left({\overset{.}{\theta}}_d-{\overset{.}{\theta}}_a\right)+{K}_{ib}{\displaystyle \int \left({\theta}_d-{\theta}_a\right)\mathrm{d}t} $$
(14.49)

where V 2 is the input voltage supplied to the joint actuator of leg; K pb , K db , and K ib are the proportional, derivative, and integral gains, respectively; θ d is the desired position, θ a is the actual position, \( {\overset{.}{\theta}}_d \) is the desired joint velocity, and \( {\overset{.}{\theta}}_a \) is the actual joint velocity.

3.2.5 Combined Control Law

Combined form of the two control laws is entered in bond graph and since both the controllers do not work simultaneously for same joint, a switching is used to operate a particular control law. Combined control law can be presented as

$$ V={a}_1{V}_1+{a}_2{V}_2 $$
(14.50)

where

  • a 1 = 1 during leg forward motion and 0 during body forward motion, and

  • a 2 = 1 during body forward motion and 0 during leg forward motion

3.2.6 Three Dimensional Model of Quadruped Robot for Workspace Control

Three dimensional model of quadruped robot presented in Sect. 14.2 is modified to control in workspace. In this model, joint actuation torque is evaluated as per the given reference tip trajectory through Jacobian and PI controller . The word bond graph of quadruped robot control in workspace is shown in Fig. 14.13. While multibond graph presentation of the model is shown in Fig. 14.14.

Fig. 14.13
figure 13

Word bond graph of quadruped robot control in workspace

Fig. 14.14
figure 14

Multibond graph of quadruped robot for locomotion control in workspace

4 Results and Discussions

Above discussed bond graph model can be used for various research aspects pertaining to quadruped robot. Discussed joint space control and workspace control strategies are simulated using developed bond graph model, and its results are verified through animation and experimental results. Gait pattern considered for locomotion control is trot gait . In trot gait, diagonally opposite pairs of legs are actuated together to move forward. This is inspired from the way a horse moves. This two-beat diagonal gait minimizes the shift in body centroid and ensures good dynamic stability. Therefore, the quadruped can achieve higher locomotion speed with this gait. The usefulness of a dynamic model comes when dynamic forces are significant. Therefore, trot gait has been considered in this chapter for model validation. Influence of compliance is studied on locomotion parameter. The performance measure is evaluated based on energy efficiency .

4.1 Simulation, Animation, and Experiment Results of Locomotion Control in Joint Space

In this section, locomotion control strategy discussed in Sect. 14.3.1 is validated using simulation and animation of bond graph dynamic model and also through experiment result.

4.1.1 Simulation Results for Locomotion Control in Joint Space

Bond graph model is simulated for trot gait , for which controlled efforts are supplied to the actuators, to reach to required joint position as shown in Table 14.1. Input parameters considered for the simulation are listed in Table 14.2.

Table 14.2 Input parameters

PositiveY direction is considered as forward direction. Time duration for each cycle is 1.7 s. Simulation is carried out for five cycles. Figure 14.15 shows leg tip displacement in Y direction, while Fig. 14.16 shows body CG movement in X, Y, and Z directions. It shows robot moves in a forward Y direction. Legs joint rotations for the said motion are shown in Fig. 14.17a, b for joint 1 and 2, respectively. Figure 14.18 shows leg tip displacement in Z direction. Similar way, simulation can be carried out for other gait also.

Fig. 14.15
figure 15

Legs tip movement in Y direction

Fig. 14.16
figure 16

Body CG movement; (a) X and Z direction, (b) Y direction

Fig. 14.17
figure 17

Joints rotation: (a) Joint 1 and (b) Joint 2

Fig. 14.18
figure 18

Legs tip Z displacement; (a) leg 1, (b) leg 2, (c) leg 3, (d) leg 4

4.1.2 Animation Results for Locomotion Control in Joint Space

Animation of above discussed locomotion strategy of quadruped robot is carried out in SYMBOLS Shakti Animator [34]. The physical characteristics of certain selected aspects of bond graph model can be directly visualized in this animator, for a better understanding of intrinsic behavior of quadruped robot. Animation of quadruped robot is created from the simulation results. Figure 14.19 shows animation frames of quadruped robot walking.

Fig. 14.19
figure 19

Animation frames of quadruped robot locomotion control in joint space

To maintain neatness of the figure only two frames of animations are shown. First frame indicates starting position and second frame indicates final position of quadruped robot at the end of five cycles. Path traced by tip of leg 1 is also shown in this figure.

4.1.3 Experiment Result for Locomotion Control in Joint Space

Above presented simulation and animation results show that quadruped robot travels 0.61 m in five cycles with the help of the developed locomotion strategy. The same strategy is implemented in the physical model. As shown in Fig. 14.1a, the physical model of quadruped robot contains total eight number of Maxon brushless DC motors. To control these motors, eight Maxon (EPOS) controllers are used. One of those acts as master and the remaining seven act as slave controllers. This robot has approximately 15 kg weight and its body length and width are 0.5 m and 0.42 m, respectively. Its height is 0.479 m. Above discussed locomotion strategy is applied on physical model and it is observed that it travels 0.55 m in five cycles. Figure 14.19 shows few snaps taken during locomotion of quadruped robot. Figure 14.20a shows beginning of a cycle, Fig. 14.20b, c shows leg motion in intermediate stages, and Fig. 14.20d shows end of a cycle. For the movements detailed above, the joint rotations performed by all legs are shown in Fig. 14.21.

Fig. 14.20
figure 20

Experiment on physical model, (a) initial position, (b) and (c) intermediate positions, (d) end of cycle

Fig. 14.21
figure 21

Joints rotations during experiment and simulation, (a) leg 1 joint 1, (b) leg 1 joint 2, (c) leg 2 joint 1, (d) leg 2 joint 2, (e) leg 3 joint 1, (f) leg 3 joint 2, (g) leg 4 joint 1, and (h) leg 4 joint 2

The pattern of joint rotations during the experiments is almost the same as simulation. There are always some assumptions made for numerical modeling of any system. Here, the assumptions for quadruped modeling are mass center of link is located at the mid of its length, center of gravity of top body is located at the center of body, top body and upper links are rigid, joint rotation allows rotation of link about one axis only, robot is walking on hard surface and on even terrain, and external force and moment effects are negligible. Condition of the surface, on which physical robot walks, affects robot locomotion. It seems from our simulation, animation, and experimental results that little deviations observed in experiments are because of the assumptions considered during modeling and uncertain surface conditions like its roughness, friction, and elevation. These experimental results support the correctness of the dynamic model generated in bond graph.

4.2 Simulation, Animation, and Experiment Results of Locomotion Control in Workspace

In this section, the control strategy developed in Sect. 14.3.2 is validated. Simulation error 5 × 10−6 and the step size 10 are considered for numerical integration in bond graph simulation environment. Input parameters used for simulation are same as shown in Table 14.2.

4.2.1 Simulation and Animation Results for Locomotion Control in Workspace

This dynamic model is simulated for trot gait . Simulations and animations have been carried out for six cycles. In case of trot gait, each cycle takes 1.7 s time. Figure 14.22 shows few animation frames of quadruped motion in trot gait. To maintain neatness of the figure only a few animation frames are shown from the entire simulation results. It shows that quadruped locomotion is achieved in the position Y direction.

Fig. 14.22
figure 22

Animation frames of quadruped locomotion control in workspace

Figure 14.23a shows the reference tip displacement (as per the prescribed reference velocity) and the actual tip displacement of legs 1 and 4, while Fig. 14.23b shows those of legs 2 and 3. These results show that the leg tips follow the corresponding reference trajectories. Error in legs displacement in Y direction of legs 1–4 are shown in Fig. 14.24a–d, respectively. The robot body movement in Y direction is shown in Fig. 14.25a while that in Z direction is shown in Fig. 14.25b. For the executed locomotion, the joint rotations in joints 1 and 2 of all legs are shown in Fig. 14.26a, b, respectively.

Fig. 14.23
figure 23

Actual and reference leg tip displacements in forward direction for trot gait (a) legs 1 and 4, (b) legs 2 and 3

Fig. 14.24
figure 24

Error in legs forward movement for trot gait : (a) leg 1, (b) leg 2, (c) leg 3 and (d) leg 4

Fig. 14.25
figure 25

Body CG displacement for trot gait : (a) Y and (b) Z direction

Fig. 14.26
figure 26

Joints rotation for trot gait : (a) joint 1 and (b) joint 2

Thetrot gait in quadruped robot is a dynamic gait where the robot is supported by either of the diagonally opposite pairs of legs during which the body moves forward. In order to prevent robot falling down, the resultant of gravitational and inertial forces passes through a point on the line joining the tips of the supporting legs. This ensures dynamic stability. Here, Zero Moment Point (ZMP) introduced in [42] is evaluated to ensure the dynamic stability. By having the ZMP on the diagonal line which connects tips of two legs in contact with the ground, stability can be assured. The ZMP can be calculated as in [44]

$$ {X}_{\mathrm{zmp}}=\frac{{\displaystyle \sum_{i=1}^n{m}_i\left({\ddot{Z}}_i+g\right){X}_i}-{\displaystyle \sum_{i=1}^n{m}_i{\ddot{X}}_i{Z}_i}-{\displaystyle \sum_{i=1}^n{I}_{iy}{\ddot{\theta}}_{iy}}}{{\displaystyle \sum_{i=1}^n{m}_i\left({\ddot{Z}}_i+g\right)}} $$
(14.51)
$$ {Y}_{\mathrm{zmp}}=\frac{{\displaystyle \sum_{i=1}^n{m}_i\left({\ddot{Z}}_i+g\right){Y}_i}-{\displaystyle \sum_{i=1}^n{m}_i{\ddot{Y}}_i{Z}_i}-{\displaystyle \sum_{i=1}^n{I}_{ix}{\ddot{\theta}}_{ix}}}{{\displaystyle \sum_{i=1}^n{m}_i\left({\ddot{Z}}_i+g\right)}} $$
(14.52)

where (X zmp, Y zmp) are coordinates of the ZMP, n is the number of links, i is an enumerator, m i is mass of i-th link, g is gravitational acceleration, I i is rotary inertia of i-th link, (X i , Y i , Z i ) are coordinates of the mass center of link i, and \( {\ddot{\theta}}_i \) is the angular acceleration of link i. Figure 14.27a presents the change in the location of the ZMP as the locomotion is executed. For maintaining the clarity of presentation, only the steps followed by the legs during the first two cycles are shown. During the first cycle, legs 2 and 3 are in contact with the ground and the ZMP lies on the line connecting the tips of legs 2 and 3, while during the second cycle, legs 1 and 4 are in contact with the ground and the ZMP lies on the line connecting the tips of legs1 and 4. For six numbers of cycles, the shift of the ZMP in X direction is found to be in the range −0.020 m to +0.001 m. Figure 14.27b shows the ZMP drift in Y direction due to robot locomotion.

Fig. 14.27
figure 27

ZMP movement for trot gait : (a) X-Y plane for two cycles and (b) in Y direction

4.2.2 Experiment Results for Locomotion Control in Workspace

4.2.2.1 Input to the Physical Model

According to the proposed locomotion control strategy, reference leg tip velocity should be given as input which is continuously compared with actual velocity. The error should be used to send correcting signal to the actuators. To know leg tip velocity/position, sensors (motion trackers) are required. These sensors were not available with the author at the time of experiment. So, data obtained through simulation results are used to perform experiment. Here, joint positions obtained during simulation are fed to the physical model. Maxon controllers operate all the actuators as per the data fed.

4.2.2.2 Experiment Results

As per the simulation results when quadruped walk with trot gait (control in workspace), it travels 0.79 m distance. When same data are used to operate the physical model it travels around 0.75 m distance for six cycles. Few snaps are taken during these movements which are shown in Fig. 14.28. Figure 14.29 shows joints position of physical model while walking with trot gait along with simulation results which shows that both are matching with each other. To perform this experiment, required code is prepared in OPEN-PCS using the joint angles obtained through simulation results. Then, it is fed to Maxon controller. While executing this code, it is found that physical model travels perfectly.

Fig. 14.28
figure 28

Snaps taken during quadruped walk with trot gait control in workspace: (a) initial position, (b) and (c) intermediate position, (d) final position

Fig. 14.29
figure 29

Joints rotation of quadruped walk with trot gait control in workspace: (a) leg 1 joint 1, (b) leg 1 joint 2, (c) leg 2 joint 1, (d) leg 2 joint 2, (e) leg 3 joint 1, (f) leg 3 joint 2, (g) leg 4 joint 1, and (h) leg 4 joint 2

4.3 Simulation of Turning Motion

It is understood that if robot leg has more than one degree of freedom with joint rotation about different axis, then only other than straight line motion is possible. The discussed robot configuration has two DOF per leg but both axes of rotation are same, i.e., about X. Thus each leg tip travels same distance while in motion during one cycle and robot has straight line motion. If one side of both the leg tips travels same distance but different from opposite side of leg tips (i.e., legs 1 and 3 tip travels same distance but they are different from legs 2 and 4 tip travels), then this motion gives a turn instead of moving in straight line. This concept has been demonstrated using amble gait . Simulation and animation is carried out for 20 cycles. Each cycle takes 0.9 s. Figure 14.30 shows animation frames of quadruped locomotion which moves straight for initial five cycles (A) then it takes turn for next ten cycles (B) and finally moves straight for remaining five cycles (C). In this figure path traced by hip joints and body CG are shown. Joint position corresponding to time interval is shown in Table 14.3.

Fig. 14.30
figure 30

Animation frames in top view of quadruped robot in turning motion

Table 14.3 Joint position of amble gait for turning motion

Figure 14.31 shows body CG X motion while Figs. 14.32 and 14.33 show body CG Y and Z motions, respectively. Leg tip motion in X and Y directions are shown in Figs. 14.34 and 14.35, respectively. As discussed above, it is necessary to have different joint rotations for this kind of locomotion. Joints 1 and 2 rotations carried out of all legs for the said motions are shown in Figs. 14.36 and 14.37, respectively. Thus, by having combination of different joint angles, motion other than straight line is possible.

Fig. 14.31
figure 31

Body CG movement in X direction

Fig. 14.32
figure 32

Body CG movement in Y direction

Fig. 14.33
figure 33

Body CG movement in Z direction

Fig. 14.34
figure 34

Leg tip movement in X direction

Fig. 14.35
figure 35

Leg tip movement in Y direction

Fig. 14.36
figure 36

Joint 1 rotation of legs

Fig. 14.37
figure 37

Joint 2 rotation of legs

4.4 Influence of Compliance on locomotion Parameter

Compliance affects locomotion speed and posture disturbance. In this section, attempt is made to study influence of compliance on both these locomotion parameters. Developed bond graph model is simulated for various compliance and damping value of the same damping ratio. The body CG travels (indicating motion of robot in forward direction) and posture disturbance are analyzed. Figure 14.38a shows body CG travels by quadruped robot and Fig. 14.38b shows range of posture disturbance in roll and pitch during the locomotion.

Fig. 14.38
figure 38

Influence of compliance on (a) body CG travels and (b) posture disturbance

It is concluded from the results that as the stiffness decreases, the body CG travel reduces. Body CG travel does not increase noticeably after increasing the stiffness further than about 7000 N/m. It is also seen from the results that the posture disturbance range at roll and pitch becomes higher at higher stiffness. It is always desirable to have minimum posture disturbance with maximum body CG travel. Thus, for our robot configuration we have chosen 5000 N/m stiffness as a trade-off, which gives good locomotion with relatively low range of posture disturbances in roll and pitch.

4.5 Performance Measures Through Energy Efficiency

Robot walk may be evaluated by stability, maximum speed, and energy consumption. Parameters like a type of gait, stride length, duty factor, length of leg, joint angle, and rotation are deciding the above-mentioned performance criteria. To discuss advantage and disadvantage of different designs and control strategies, it is necessary to evaluate and compare robot performance and abilities with respect to common criteria. A common measure to evaluate and compare the energy efficiency of vehicles is the energy consumption per unit distance. To justify the comparison, mass moved, and velocity obtained should also be considered with the cost of locomotion. We are comparing here quadruped walk with specific resistance (ε). The specific resistance [15, 22] is a dimensionless number describing the energy efficiency of a mobile system. The specific resistance is defined as

$$ \varepsilon =\frac{P(v)}{mgv}=\frac{E}{mgd} $$
(14.53)

where P(v) is the power needed to move the body with velocity v, m is the mass of the system, g is the acceleration due to gravity, d is the distance travelled, and E is the energy spent. Since velocity is not constant in a cycle, energy spent to move unit weight by unit distance is preferred as the performance measure. Sufficient number of cycles of motion till steady-state is reached should be considered for evaluation of specific resistance. Lower specific resistance implies higher energy efficient.

4.5.1 Energy Efficient Structure of Quadruped Robot

In this section, energy efficiency of rigid legged and compliant legged robots are evaluated and compared. Locomotion gait is considered as trot for both the cases. The above developed bond graph model for compliant legged robot was modified to generate the model of rigid legged robot. This is done by locking the sliding motion of the piston within the prismatic link ; thereby retaining the same mass parameters in both the models. The locking is performed through a high-stiffness virtual spring which is called a pad in bond graph terminology. Both rigid legged and compliant legged models are simulated for same speed which is fixed at 0.42 m distance travelled in 4.5 s., i.e., with an average locomotion speed of 0.093 m/s. The same speed requirement is satisfied by manually tuning the controller parameters and the cycle time durations. Figure 14.39a shows body CG travels by rigid legged quadruped robot in trot gait . Figure 14.39b shows body CG travels by compliant legged robot in trot gait. Sensors are placed at the actuators in bond graph models to extract the power consumption data. The specific resistance defined in Eq. (14.53) is evaluated for both these cases considering robot mass as 15 kg and gravitational acceleration as 9.81 m/s2. It was found that the specific resistance for the compliance legged model is 0.925 while it is 1.10 for rigid legged model. It is known that smaller the specific resistance, higher the energy efficiency [15, 22, 38]. So from the above results, smaller specific resistance of compliant legged robot implies that it is energy efficient than rigid legged robot. Leg compliance reduces impact induced bounce and allows for better grip; thereby improving the locomotion efficiency. However, it may be noted that too low or too high-stiffness reduce grip and increase losses due to sliding between the piston and cylinder of the prismatic pairs. Thus, there is an optimum value of compliance where lowest specific resistance is possible. That optimum value has not been obtained here. We have merely compared the performance of the compliant legged robot with design parameters chosen from Fig. 14.38 with a rigid legged robot.

Fig. 14.39
figure 39

Body CG Y displacement in various conditions: (a) rigid legged model with trot gait , (b) compliant legged model with trot gait, (c) compliant legged model with amble gait

4.5.2 Energy Efficient Locomotion Gait

In this section, energy efficient locomotion gait is evaluated from the static and dynamic gaits. The trot gait is considered as a dynamically stable gait, while the amble gait is considered as a statically stable gait. Specific resistance of trot gait of compliant legged structure is just evaluated. Thus, it is only need to evaluate specific resistance of quadruped walking with amble gait for comparison. Model is simulated for amble gait. Here also results are compared for the same speed which is obtained by tuning controller parameters and cycle duty times. Body CG displacement obtained in Y direction (along the longitudinal axis) for amble gait is shown in Fig. 14.39c. Results obtained are used to evaluate Eq. (14.53) which gives the specific resistance of the amble gait as 6.71. From this result it seems that specific resistance of the trot gait is smaller. Thus the trot gait is energy efficient than the amble gait.

4.5.3 Energy Efficient Foot Trajectory

Foot trajectory in case of walking robot has two main parameters: leg lift (LL) and step length (SL), which almost decides the foot trajectory of leg tip. However, the way leg tip reach to LL decides exact curve. Here, numbers of simulations are carried out to analyze the effect of LL and SL. For this analysis dynamic model should be controlled in workspace mode. Assumptions considered for the analysis are robot walks in straight line and on even terrain with trot gait .

First, simulations are carried out for different SL by keeping LL fixed as 0.033 m. Figure 14.40 shows given leg tip motion in Y and Z directions. Specific resistance for this run is plotted in Fig. 14.41 which indicates that for fixed LL as SL increases the specific energy decreases thus walk becomes more and more energy efficient.

Fig. 14.40
figure 40

Leg tip motion in YZ plane for different step length with same leg lift

Fig. 14.41
figure 41

Specific resistance for different step length with same leg lift

Next, simulations are carried out for different LL by keeping SL fixed. Here, two sets of simulations are performed for SL as 0.099 and 0.132 m. Figure 14.42 shows given leg tip trajectory while Fig. 14.43 shows specific resistance. In both the cases it is observed that as LL increases specific resistance increases thus walk becomes less energy efficient. At the same time too much low LL also reports less energy efficient as its specific resistance goes high.

Fig. 14.42
figure 42

Leg tip motion in YZ plane for different foot height with same step length

Fig. 14.43
figure 43

Specific resistance for different leg lift with same step length

Thus from all these analysis it can be concluded that for energy efficient walk, SL should be as high as possible and LL should be low if it walks on even terrain. For 0.033 m LL, 0.200 m SL gives most energy efficient walks as its specific resistance is lowest. However, for different size of robot best combination will be differing.

5 Conclusions

A three dimensional model of compliant legged quadruped robot using bond graph has been developed. The legs contain telescopic tubes with axial compliance and the model considers its detailed dynamics. The developed model is simulated for locomotion control in joint space as well as in workspace, and the obtained simulation and animation results are compared with the experimental results for validation. The developed model is useful for the various research activities pertaining to quadruped control. Its versatility is demonstrated by performance analysis, which shows that the compliant legged robot (specific resistance 0.925) is more energy efficient than rigid legged robot (specific resistance 1.10), a dynamically stable trot gait (specific resistance 0.925) is more energy efficient than a statically stable amble gait (specific resistance 6.71), and a foot trajectory consisting of maximum possible step length with minimum leg lift gives energy efficient performance. Influence of compliance on locomotion parameters is studied and best suitable compliance value, i.e., 5000 N/m for the robot is obtained. Turning motion of the robot is demonstrated by differential leg tip velocity of robot. In future, it is envisaged to use this model for workspace control , posture control, and fault accommodation of the quadruped robot.