Sie sind auf Seite 1von 14

Ecole Centrale de Nantes

Project Report

Mobile Robotics

Ayush Kumar Jain


Pablo Arevalo Siles

supervised by
Dr. Philippe Martinet

April 10, 2016

0.1

Introduction

1. Parameterization and Kinematic Modelling of a (2,0) Robot


Figure 1 shows the schematic representation of the robot, with the robot frame oriented in a way which is consistent with the fixed wheels being arbitrarily considered
as the front of the robot.

Figure 1: Sketch of
(2,0) robot.
Table 1 gives the parameters of the robot following the notations used in the lectures.
Table 1: Table of parameters of the (2,0) robot.
W L

1f L /2 0
0
/2 1f
0
2f L /2
0
0 /2 2f
0
3c a

d 3c
0
3c + 3c

T
The conguration vector is: q = x y 3c 1f 2f 3c
Where x, y and are the coordinates of origin M of the robot frame in the absolute
reference frame. For smooth motion of a robot, we impose Non-slipping and Non
skidding constraint. The generalised constraint equations are:
J1 (s , c ).m 0 (). + J2 . = 0
C1 (s , c ).m 0 (). + C2 (c ) = 0
where, m 0 () is Twist transformation matrix from fixed frame to platform frame,
is Twist in fixed frame and has wheel angular velocity. The expression for
m
0 (), and are:

" cos() sin() 0 #



T

T
0 () = sin() cos() 0 , = x y , = 1f 2f 3c
0
0
1

For the robot in consideration J1, J2, C1, C2 matrixes come out to be:
"
#
"
#
1
0
L
0
1
0
1
0
L
0
1
0
J1 =
, C1 =
cos(3c ) sin(3c ) a.sin(3c )
sin(3c ) cos(3c ) d + a.cos(3c )
J2 = r.I33 , C2 =
1

0 0 d

T

From, course lectures we understand, Degree of mobility and steer-ability of Mobile


Robot (m , s ) can be found out by following equations.
m = 3 rank(C1 (s )), s = rank(C1s )




C1f

Where, For our robot C1 (s ) =


and C1s = 0 0 0 because no steering
C2f
wheel. From C1 matrix we have:
#

 "
C1f
0 1 0

C1 (s ) =
=
C2f
0 1 0
Thus, =

T
Ker(C1 ) iff:
x y




C1f m
C
1f
. 0 (). =
.m = 0 m y = 0
C2f
C2f

Thus for this condition a simple base of Ker(C1 ) is:

1 0
= 0 0
0 1
So, degree of mobility and degree of steer ability of Mobile Robot will be (2, 0) .
Here 2 in (2, 0) represents degree of Mobility (m ), which indicates we can generate
2 velocities (among vx , vy & w) independently while maintaining pure rolling condition and 0 in (2, 0) is degree of Steer-ability (s ) indicates their are no steering
wheels which can be oriented independently for ICR to exist.
Thus for the Configuration kinematic model, D and E matrices are:

1
sin(3c ) cos(3c ) (d + a.cos(3c ))
d
"
#
1
0
L
1
1
0
L
E=
r
cos(3c ) sin(3c ) a.sin(3c )

D=

Therefore, The configuration kinematic model is,


x
cos()
y
sin()





0

sin(
v
3c )

q = S(q).
3c =
d
w
1
1f


r
1
2f
r
1r .cos(3c )
3c

0
0
1
d+a.cos(3c )
d
L
r
L
r
a
.sin(3c )
r




. v

For Motorization, we would choose following set of equations:

3c
"
#


1f
D(
).
v
3c

2f = E(3c ). .um = F (3c ). w


3c

Where, F (3c ) =

sin(3c )
d
1
r
1
r
1r .cos(3c )

d+a.cos(3c )
d
L
r
L
r
a
.sin(
3c )
r

Thus if we choose 2 independent row from matrix F (3c ) corresponding to 1f and


2f fixed wheel velocity, we get F23 (3c ) matrix. And as det(F23 ) is non-zero we can
invert it to get: Kinematic modelling of a robot help us in determining velocity

of robot platform from speed of wheels. Velocity of platform further help us in


determining position coordinates and orientation of robot. For our robot r=0.1m
and L=0.13m.

x
v.cos()
y = v.sin()
w

Based on above model we developed SIMULINK block, which took input as velocities of the fixed wheels and as output given us [x, y, ]T and [v, w]T . Inside the
simulation block, we took initial values of x0 , y0 and 0 as zero for integrating x,
y

and

Figure 2:
Simulink
block
for
Kinematic
Model
of
Robot .

Figure 3: Simulink Model for Kinematic Model of Robot .

0.2

Static decoupling control for (2,0) Robot

The purpose of control is to either make our robot follow a given Trajectory or to have
Position regulation i.e to reach a fixed final position. In our case, desired trajectory is
given by:


R.cos(wd .t)
hd =
, R = 2m, wd = 0.5rad/s
R.sin(wd .t)
We have derived in previous section Posture kinematic model. Let us consider here only
linear velocities along x, y axis of global frame, then
  
 

x
cos() 0
v
=
.
y
sin() 0
w
Here, relation matrix is non-invertible, because determinant of matrix is zero. Thus,
Static decoupling control strategy cannot be applied. To have a invertible matrix, we
need some other control point. That is why, we consider a point on the x axis of robot
frame, it makes relation matrix invertible.
Figure 4: P
at = 0
is
control point
for
Static
control law.
Thus, considering this point for Kinematic model h = K().u, we have h andK() as:



 

x + d.cos()
cos() d.sin()
v

h=
,h =
.
y + d.sin()
sin() d.cos()
w
As we can see from above equation, K() is invertible but not for d = 0. Thus using
control law u = K()1 .W , where W is auxiliary control command, static decoupling
control strategy can be implemented. Here we are choosing:
W = hd + Kp .(hd h), h = W
4

The motivation behind choosing such control is that: if e = hd h and e = hd h, we


get e = Kp .e, which ensures when time goes to infinity error goes to zero (Asymptotic
Stability). Here, KP value can be decided based on transient response of error required.
We developed a simulink model for implementing above strategy. For it we choose at
t=0, posture of robot as x0 = 2.3m, y0 = 0m, 0 = rad and Kp = 0.1, 5. The simulink
block diagram and responses are as below.

Figure 5: Simulink Model for static decoupling control of (2,0) Mobile robot

Figure 6: Posture tracking response with Kp = 0.1 and Kp = 5 for static control
Table 2: Response for static control error in x.
Kp Rise Time Settling Time
5
0.441 sec
2.54 sec
0.1
NA
NA
From above figure we can clearly see, when Kp = 0.1 transient error( tracking error) for x
is large compared to error when Kp = 5. Also we could see steady state error(remaining
error) for Kp = 0.1 is their but in case of Kp = 5 it ceases to zero with in seconds.

We can notice that we are not controlling the


orientation of the robot. Thus, if we plot
v/s t, we should get that first decrease from
value to make robot move towards the desired trajectory, then when it has reached on
the desired trajectory, should continuously
increase.

Figure 7: v/s t when Kp = 5 for posture


tracking control

For the case of Position regulation, the robot


has to move till a fixed desired point. In our
simulation we tested it for hd = [4, 4]T ,
with initial position at [2.3, 0]T . We noticed
in control law that hd is 0 at every instant.
The auxiliary control is decided only by error
in position i.e hd h. Thus, as robot reaches
end point W tends to 0, thus stopping robot
at it. Below are the simulink diagram and
results achieved.
Figure 8: Position regulation with Kp = 5

We always want to have robust controllers.


By robust we mean, if their is slight change in
system parameters, a controller should still
be able to converge our variables to desired
trajectory. In this segment, we would check
what happens, when radius of wheel r and
distance between wheel L change. We reduced values of r 0.9r and L 0.9L in
u = K()1 .W calculation.
Figure 9: Posture Tracking response with parameter variation and Kp = 5

From Figure 9, we can observe that, despite steady state (remaining error) in x and y
position are too small, they donot converge to zero. Also, tracking error (transient error)
fluctates during motion of the robot. Thus, we conclude, robust control strategies are
compulsory needed to cater these problems.
We should also note while performing simulation that simulation results highly depend
on Modelling Configuration Parameters. For our simulation purpose, we used fixed step
Bogacki-Shampine solver with a fixed step size of 0.01sec

0.3

Dynamic decoupling control for (2,0) robot

In the case of Dynamic decoupling control we try to control origin of mobile robot frame
as shown in figure 9. Thus,
 


x
R.cos(wd .t)
h=
, hd =
, R = 2m, wd = 0.5rad/s
y
R.sin(wd .t)
As name implies, Dynamic control law helps in controlling robot motion by constantly
Figure 10:
P at = 0
and d = 0
is control
point
for
Dynamic
control law.
updating control input to system, which depends on current orientation and velocity of
robot. Thus by double derivating h, we can find:

 

h = cos() v.sin() . v
sin() v.cos()
w
Thus here control input u0 = [v,
w]T .
As we can see from above equation, F () is invertible but not for v = 0. Thus using
control law u0 = F ()1 .W , where W is auxiliary control command, dynamic decoupling
control strategy can be implemented. Here we are choosing:
d + Kd .(h d h) + Kp .(hd h), h
=W
W =h
d h,
e = hd h and
The motivation behind choosing such control is that: if e = h
e = hd h, we get e = Kd .e Kp .e, which gives us a second order equation in error.
If we consider this as characteristic equation in e. By taking laplace transform on both
sides we get:

e(s).s2 s.e(0) e0 (0) = Kd .[e(s).s e(0)] Kp .e(s)


e(s).[s2 + Kd .s + Kp ] = [s + Kd ].e(0) + e0 (0) e(s) =

[s + Kd ].e(0) + e0 (0)
[s2 + Kd .s + Kp ]

Thus for response of this system to be stable, we need both roots of the characteristic
equation in denominator to be in left half of s-plane.Thus, comparing it with general
characteristic equation of order 2 i.e s2 + 2..wn .s + wn2 . we find Kd = 2..wn and
Kp = wn2 . Thus, Considering damping coefficient to be 1 and wn .tr = 5 (tr is response
time). We can find wn value from response time we want, with it Kp and Kd values.
We developed a simulink model for implementing above strategy. For it we choose at
t=0, posture of robot as x0 = 2.3m, y0 = 0m, 0 = rad and tested it with Kd = 6,
Kp = 32 and Kd = 10, Kp = 52 . The simulink block diagram and responses are as below.

Figure 11: Simulink Model for Dynamic decoupling control of (2,0) Mobile robot

Figure 12: Posture tracking response with Kd = 6, Kp = 32 and Kd = 10, Kp = 52 for


Dynamic control
Table 2: Response for Dynamic control error in x.
Kp Kd Rise Time Settling Time
9
6
1.10 sec
1.94 sec
25 10
0.67 sec
1.17 sec
8

From above figure we can clearly see, steady state error(remaining error) for both cases
ceases to zero with in seconds. But for transient error( tracking error) for x and y, when
Kd = 6, Kp = 32 then it is larger at every instant than compared to error when Kd = 10,
Kp = 52 . This is because when we choose pole farther from imaginary axis and on real
axis, transient response of the system becomes better and also we avoid oscillations in
the response. Thus makes system asymptotically stable (Ast , e(t) 0).
As we mentioned previously that F () is invertible but not for v = 0. The singularity
will arise at the start of our robot as we have initial velocity of robot as zero i.e v=0.
Also, it can arise while in motion. So, we used two methods to remove this singularity.
1. We used delay block in feedback loop of velocity to control block.
2. We used switch block in feedback loop to prevent velocity to go to zero during
motion. Here, when Limit cycle finds velocity to be zero, it sets the velocity of
robot to a minimum assigned value.

We can notice in dynamic control too we are


not controlling the orientation of the robot.
Thus, if we plot v/s t, we should get that
first decrease from value to make robot
move towards the desired trajectory, then
when it has reached on the desired trajectory, should continuously increase.

Figure 13: v/s t when Kp = 25 and Kd =


10 for posture tracking control

In this section, we have tried to analyse,


what happens when parameters involved in
control law changes. By analysing it, we
will have an idea of robustness of dynamic
controller. If their is slight change in system parameters and a controller is able to
converge variables to desired trajectory, its
robust. For that purpose we experimented
with radius of wheel r and distance between
wheel L. We reduced values of r 0.9r and
L 0.9L in u0 = F ()1 .W calculation.
Figure 14: Posture Tracking response with
parameter variation and Kd = 10, Kp = 52
9

From Figure 14, we can observe that steady state (remaining error) in x and y position
is zero. But, tracking error (transient error) is oscillatory during beginning of motion of
robot. Thus, we conclude, unlike in static decoupling control, we could get steady state
error zero with dynamic decoupling control but with worse transient characteristics.
Table 2: Response for Dynamic control error in x in parameter variation.
Kp Kd Rise Time Settling Time
25 10
0.67 sec
1.17 sec

0.4

Lyapunov control for (2,0) robot

A non-linear system can be represented by X = f (X, u) equation. If we want to design a


lyapunov based controller for this system, we need to choose a Lyapunov function V(x)
such that,
V (X) =

V
.X
X

and u satisfying

V
.f (X, u)
X

<0

For our controller, we choose V (X) = 1/2[x 2e + y e2 + e2 /Ky ].where, e = [xe , ye , e ]T is rate
of change of error in posture of robot in robot frame.
Here to develop control model we considered posture tracking error defined by, e = d .
Where, d represents the desired posture of the robot and represents the current posture
of the mobile robot. Considering this error in robot frame, we got:
m e
x
m e
= m y e =m R0 .(0 d 0 )
m e

Also, we considered control error as ue = ud u, where ud = (v d , wd )T represents the


desired control velocities of the mobile robot and u = (v, w)T represents the current
control velocities of the mobile robot.
To find expression of m e , we derived above expression for m e . Thus we found:

m e m e

m
m e
x wd vd (cos(m ee )1)
x
x
0 m y e

m e
m e
vd .sin(m e )
y
= m y e = wd 0
+ 0 m xe .ue
.
m
e
m e
m e

0
1

0
0
0
where, ue =

ve we

T

.Thus to find control vector ue , we impose below condition:

V (m e ) =

m e

m e

m e

/Ky

m e

x
. m y e < 0
m e

Thus we get:

ue =

vd .(cos(m e ) 1) Kx .m xe
m )m y e
e
Ky .vd .sin(
K .m e
m
e
10

But to use it as control input, we found u = ud ue . We developed a simulink model for


implementing this strategy. For it we choose at t=0, posture of robot as x0 = 2.3m, y0 =
0m, 0 = rad. After lot of tunning we found best gain values to be Kx = 40, Ky = 40
and K = 10. The simulink block diagram and responses are as below.

Figure 15: Simulink Model for Lyapunov control of (2,0) Mobile robot

From figure 16 we can clearly see, steady


state error(remaining error) ceases to zero
with in seconds. But for transient error(
tracking error) for x and y, when Kx = 40,
Ky = 40 and K = 10 is much smaller than
compared to error in case of static or dynamic control. We can also observe that
our system is asymptotically stable (Ast
, e(t) 0).
Figure 16: Posture tracking response with
Kx = 40, Ky = 40 and K = 10 for Lyapunov control
Table 3: Response for Lyapunov control error in x.
Kx Ky K Rise Time Settling Time
40 40 10 0.055 sec
0.69 sec

11

We can notice in lyapunov control strategy, we are controlling the orientation of the
robot. Thus, if we plot v/s t, we should get
that first decrease from value to make
robot move towards the desired trajectory,
then when it has reached on the desired trajectory, should continuously increase.

Figure 17: v/s t when Kx = 40, Ky = 40


and K = 10 for posture tracking control

In this section, we have tried to analyse,


what happens when parameters involved in
control law changes. By analysing it, we
will have an idea of robustness of dynamic
controller. If their is slight change in system parameters and a controller is able to
converge variables to desired trajectory, its
robust. For that purpose we experimented
with radius of wheel r and distance between
wheel L. We reduced values of r 0.9r and
L 0.9L.
Figure 18: Posture Tracking response with
parameter variation and Kx = 40, Ky = 40
and K = 10
Table 4: Response for Lyapunov control error in x in case of parameter variation .
Kx Ky K Rise Time Settling Time
40 40 10 0.049 sec
0.699 sec

12

Bibliography
[1] Philippe Martinet: Lecture slides on Control of mobile robots in MOBRO course.
Nantes: IRCCYN Lab.
[2] Philippe Martinet: Lab-1 document of MOBRO course. Nantes: IRCCYN Lab.
[3] Gaetan Garcia: Document on Kinematic modelling and Motorisation of (2,0) robot .
Nantes: IRCCYN Lab.

13

Das könnte Ihnen auch gefallen