Beruflich Dokumente
Kultur Dokumente
Project Report
Mobile Robotics
supervised by
Dr. Philippe Martinet
0.1
Introduction
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:
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
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
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=
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
3c
"
#
1f
D(
).
v
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
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 .
0.2
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
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.
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
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:
[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
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.
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
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
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
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
Figure 15: Simulink Model for Lyapunov control of (2,0) Mobile robot
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.
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