ecole centrale nantes report

Upload: ayushjain

Post on 07-Jul-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Ecole Centrale Nantes Report

    1/15

    Ecole Centrale de Nantes

    Project Report

    Mobile Robotics

    Ayush Kumar Jain 

    Pablo Arevalo Siles 

    supervised by

    Dr. Philippe  Martinet

    April 10, 2016

  • 8/18/2019 Ecole Centrale Nantes Report

    2/15

    0.1 Introduction

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

    Figure 1 shows the schematic representation of the robot, with the robot frame ori-

    ented in a way which is consistent with the fixed wheels being arbitrarily consideredas the front of the robot.

    Figure 1:Sketch of  (1,1) robot.

    Table 1 gives the parameters of the robot following the notations used in the lec-tures.

    Table 1: Table of parameters of the (2,0) robot.W L   α   D   β γ ϕ ψ1f L   −π/2 0 0   π/2   ϕ1f    02f L   π/2 0 0   −π/2   ϕ2f    03s a 0 d=0   β 3s   0   ϕ3s   π + β 3s

    The conguration vector is:   q  =

      x y θ β  3s   ϕ1f    ϕ2f    ϕ3sT 

    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 Nonskidding constraint. For that, the generalised constraint equations are:

    J 1(β s, β c).mΩ0(θ).ξ̇  + J 2. ϕ̇ = 0

    C 1(β s, β c).mΩ0(θ).ξ̇  + C 2( β̇ c) = 0

    where,   mΩ0(θ) is Twist transformation matrix from fixed frame to platform frame,ξ̇   is Twist in fixed frame and ϕ̇  has wheel angular velocities. The expression formΩ0(θ),  ξ̇   and ϕ̇are:

    mΩ0(θ) =   cos(θ)   sin(θ) 0−sin(θ)   cos(θ) 0

    0 0 1

    ,  ξ̇  =

     ẋ   ẏ   θ̇

    T ,  ϕ̇ =

      ϕ1f    ϕ2f    ϕ3s

    For the robot in consideration J1, J2, C1, C2 matrixes come out to be:

    J 1 =

      1 0   L

    1 0   −Lcos(β 3s)   sin(β 3s)   a.sin(β 3s)

    , C 1 =

      0 1 0

    0 1 0−sin(β 3s)   cos(β 3s)   a.cos(β 3s)

    J 2 = −r.I 3×3, C 2 =   0 0 0 T 

    1

  • 8/18/2019 Ecole Centrale Nantes Report

    3/15

    From, course lectures we understand, Degree of mobility and steer-ability of MobileRobot (δ m, δ s) can be found out by following equations.

    δ m = 3− rank(C ∗

    1(β s)), δ s = rank(C 3s)

    Where, For our robot C ∗1

    (β s) =

    C 1f C 2f C 3s

    and C 3s =   sin(β 3s)   −cos(β 3s)   a.cos(β 3s) because no steering wheel. From C1 matrix we have:

    C ∗1

    (β s) =

    C 1f C 2f 

    C 3s

     =

      0 1 00 1 0

    −sin(β 3s)   cos(β 3s)   a.cos(β 3s)

    Thus,  ξ̇  =

     ẋ   ẏ   θ̇

    T ∈ Ker(C ∗

    1) iff:

    C 1f C 2f 

    C 3s

    .mΩ0(θ).ξ̇  =

    C 1f C 2f 

    C 3s

    .m ξ̇  = 0 ⇔m ẏ = 0

    Thus for this condition a simple base of  Ker(C ∗1

    ) is:

    Σ =

    a.cos(β 3s)0

    sin(β 3s)

    So, degree of mobility and degree of steer ability of Mobile Robot will be (1, 1).Here first 1 in (1, 1) represents degree of Mobility (δ m), which indicates we cangenerate 1 velocities (among   vx, vy   &   w) independently while maintaining purerolling condition and next 1 in (1, 1) is degree of Steer-ability (δ s) indicates their isone steering wheels which can be oriented independently for ICR to exist.

    Thus the posture kinematic model for robot with steerable wheel is:

    ż  = B(z ).u ⇒ z  =

      ξ β s

    , B(z ) =

      0Ωm(θ).Σ(β s) 0

    0   I 

    , u =

      um

    us

    We derived B(z) to be

    a.cos(β 3s).cos(θ) 0a.cos(β 3s).sin(θ) 0

    sin(β 3s) 00 1

    Thus now, the Configuration kinematic model, as their are no castor wheel, D willnot exist but E matrices will be:

    E  = 1

    r

      1 0   L

    1 0   −Lcos(β 3s)   sin(β 3s)   a.sin(β 3s)

    2

  • 8/18/2019 Ecole Centrale Nantes Report

    4/15

    Therefore, The configuration kinematic model is,

    q̇  =  S (q ).

      umus⇒

    ẋẏ

    θ̇

    ˙β 3s˙ϕ1f ˙ϕ2f 

    ϕ̇3s

     =

    a.cos(β 3s).cos(θ) 0a.cos(β 3s).sin(θ) 0

    sin(β 3s) 0

    0 11

    r.[a.cos(β 3s) + L.sin(β 3s)] 0

    1

    r.[a.cos(β 3s)− L.sin(β 3s)] 0

    ar

      0

    .

      umus

    For Motorization, we would choose following set of equations:

    ˙β 3s˙ϕ1f ˙ϕ2f 

    ϕ̇3s

     =

      0 1

    E (β 3s).Σ 0

    .

      um

    us

    . =  F (β 3s).

      um

    us

    Where,  F (β 3s) =

    0 11

    r.[a.cos(β 3s) + L.sin(β 3s)] 0

    1

    r.[a.cos(β 3s)− L.sin(β 3s)] 0

    ar

      0

    Thus if we choose 2 independent row from matrix F (β 3s) corresponding to 3s wheel,we get  F 14(β 3s) matrix. And as  det(F 14) is non-zero we can invert it to get:

      vw  =

      umus  =

      0   r/a1 0 .

      ˙β 3sϕ̇3s

    Kinematic modelling of a robot help us in determining velocity of robot platformfrom speed of wheels. Here, linear and angular velocity of platform is determined bySteering wheel itself. Velocity of platform further help us in determining positioncoordinates and orientation of robot. For our robot r=0.1m and L=0.13m. Thus,we have  

    ẋẏθ̇

     =

    v.a.cos(β 3s).cos(θ)v.a.cos(β 3s).sin(θ)

    v.sin(β 3s)

    Based on above model we developed SIMULINK block, which took input as ve-locities of steerable wheel and as output given us [x,y,θ]T  and [v, w]T . Inside thesimulation block, we took initial values of  x0, y0  and  θ0  as zero for integrating ẋ, ẏand  θ̇.

    3

  • 8/18/2019 Ecole Centrale Nantes Report

    5/15

  • 8/18/2019 Ecole Centrale Nantes Report

    6/15

    Figure 4:P” is con-trol pointfor Staticcontrol law.

    ḣ =

     a.cos(θ + β 3s)− d.sin(θ + β 3s).sin(β 3s)   −d.sin(θ + β 3s)a.sin(θ + β 3s) + d.cos(θ + β 3s).sin(β 3s)   d.cos(θ + β 3s)

    .

      vw

    As we can see from above equation,   K (θ) is invertible but not for  d   = 0. Thus usingcontrol law   u   =   K (θ)−1.W , where W is auxiliary control command, static decouplingcontrol strategy can be implemented. Here we are choosing:

    W   =  ḣd + K  p.(hd− h), ḣ =  W 

    The motivation behind choosing such control is that: if ė  =  ḣd − ḣ  and  e  =  hd − h, weget ė = −K  p.e, which ensures when time goes to infinity error goes to zero (AsymptoticStability). Here,  K P  value can be decided based on transient response of error required.

    We developed a simulink model for implementing above strategy. For it we choose att=0, posture of robot as  x0  = 2.3m, y0  = 0m, θ0  =  πrad  and  K  p  = 1, 20. The simulinkblock diagram and responses are as below.

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

    From figure 6 we can clearly see, when  K  p  = 1 transient error( tracking error) for x islarge compared to error when  K  p  = 20. Also we could observe, in case of  K  p  = 1, steadystate error(remaining error) exist, untill 20 sec of simulation but in case of  K  p  = 20 itreduces to zero after 5sec.

    5

  • 8/18/2019 Ecole Centrale Nantes Report

    7/15

    Figure 6: Posture tracking response with  K  p = 1 and  K  p  = 20 for static control

    Figure 7:   θ  v/s t when  K  p  = 20 for posturetracking control

    We can notice that we are not controllingthe orientation of the robot. Thus, if we plotθ   v/s t, we should get  θ  that first decreasefrom π value to make robot move towards thedesired trajectory, then when it has reachedon the desired trajectory,   θ   should contin-uously increase. But, we can observe fromthe plot, during transient phase, orientationof the robot cannot be controlled by staticdecoupling control law. Our robot would be

    oscillating around the trajectory.But later inthe trajectory following, we see oscillationsare subsided.

    Figure 8: Position regulation with  K  p  = 20

    For the case of Position regulation, the robothas 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 noticedin control law that  ḣd   is 0 at every instant.The auxiliary control is decided only by errorin position i.e hd−h. Thus, as robot reachesend point W tends to 0, thus stopping robotat it. The results thus achieved are as shown.

    6

  • 8/18/2019 Ecole Centrale Nantes Report

    8/15

    Figure 9: Posture Tracking response with pa-rameter variation and  K  p  = 20

    We always want to have robust controllers.By robust we mean, if their is slight change in

    system parameters, a controller should stillbe able to converge our variables to desiredtrajectory. In this segment, we would checkwhat happens, when radius of wheel r anddistance of steerable wheel a change. Wereduced values of r⇒   1.1r   and a⇒   1.1a   inu =  K (θ)−1.W   calculation.

    From Figure 9, we can observe that, despite steady state error(remaining error) in x andy position are too small, they donot converge to zero. Also, tracking error (transienterror) fluctates during motion of the robot. Thus, we conclude, robust control strategiesare compulsory needed to cater these problems.

    We should also note while performing simulation, simulation results highly depend onModelling Configuration Parameters. For our simulation purpose, we used fixed stepBogacki-Shampine solver with a fixed step size of 0.01sec.

    0.3 Dynamic decoupling control for (1,1) robot

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

    h =

      x + a.cos(θ) + d.cos(θ + β 3s)y + a.sin(θ) + d.sin(θ + β 3s)

    , hd =

      R.cos(wd.t)R.sin(wd.t)

    , R = 2m, wd = 0.5rad/s

    As name implies, Dynamic control law helps in controlling robot motion by constantly

    Figure 10:P’ at  d  = 0is controlpoint forDynamiccontrol law.

    updating control input to system, which depends on current orientation and velocity of 

    7

  • 8/18/2019 Ecole Centrale Nantes Report

    9/15

    robot. Thus by double derivating h, we can find:

    ḧ =  K̇.[v, w]T  + K.[v̇,  ẇ]T  ⇒ [v̇,  ẇ]T  = K −1(ḧ−  K̇.[v, w]T )

    K̇  =   K 1   K 2K 3   K 4

    K 1 = (us+um.sin(β 3s)).(−a.sin(β 3s+θ)−d.cos(β 3s+θ).sin(β 3s))−d.us.sin(β 3s+θ).cos(β 3s)

    K 2 = −d.cos(β 3s + θ).(us + sin(β 3s).um)

    K 3 = (us+um.sin(β 3s)).(a.cos(β 3s+θ)−d.sin(β 3s+θ).sin(β 3s))+d.cos(β 3s+θ).cos(β 3s).us

    K 4 = −d.sin(β 3s + θ).(us + sin(β 3s).um)

    For above equation  um ⇒ v  and  us ⇒ w.

    As we can see from above equation,  K  is invertible but not for  d  = 0. We choose d=0.15for our case. Thus using control law  u =  K −1.(W   −  K̇.[v, w]T ), where W is auxiliarycontrol command, dynamic decoupling control strategy can be implemented. Here we arechoosing:

    W   = ḧd + K d.(ḣd− h) + K  p.(h

    d− h), ḧ =  W 

    The motivation behind choosing such control is that: if ë   =   ḧd − ḧ, ė   =  ḣd −  ḣ   ande  =  hd − h, we get ë  = −K d.ė −K  p.e, which gives us a second order equation in error.If we consider this as characteristic equation in e. By taking laplace transform on bothsides we get:

    e(s).s2 − s.e(0)− e(0) = −K d.[e(s).s− e(0)] −K  p.e(s)

    e(s).[s2 + K d.s + K  p] = [s + K d].e(0) + e(0) ⇒ e(s) = [s + K 

    d].e(0) + e(0)[s2 + K d.s + K  p]

    Thus for response of this system to be stable, we need both roots of the characteristicequation in denominator to be in left half of s-plane.Thus, comparing it with generalcharacteristic equation of order 2 i.e   s2 + 2.ξ.wn.s +  w

    2

    n. we find   K d   = 2.ξ.wn   andK  p  = w

    2

    n. Thus, Considering damping coefficient  ξ  to be 1 and  wn.tr = 5 (tr is responsetime). We can find  wn  value from response time we want, with it  K  p  and  K d   values.

    We developed a simulink model for implementing above strategy. For it we choose att=0, posture of robot as   x0   = 2.3m, y0   = 0m, θ0   =   πrad   and tested it with   K d   = 6,K  p  = 32 and K d  = 10,  K  p = 52. The simulink block diagram and responses are as below.

    From above figure we can clearly see, steady state error(remaining error) for both casesdonot ceases. It indicates vulnerability of controller.In case of transient error( trackingerror), when   K d   = 6,   K  p   = 3

    2 then it is larger at every instant than compared toerror when   K d   = 10,   K  p   = 5

    2. This is because when we choose pole farther fromimaginary axis and on real axis, transient response of the system becomes better andalso we avoid oscillations in the response. Thus makes system asymptotically stable(Ast →∞, e(t) → 0).

    8

  • 8/18/2019 Ecole Centrale Nantes Report

    10/15

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

    Figure 12: Posture tracking response with K d  = 6,  K  p  = 32 and  K d  = 10,  K  p  = 5

    2 forDynamic control

    9

  • 8/18/2019 Ecole Centrale Nantes Report

    11/15

    Table 2: Response for Dynamic control error in x.K  p   K d   Rise Time Settling Time9 6 0.27 sec NA25 10 0.26 sec NA

    As we mentioned previously that  F (θ) is invertible but not for  v   = 0. The singularitywill 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 duringmotion. Here, when Limit cycle finds velocity to be zero, it sets the velocity of robot to a minimum assigned value.

    Figure 13:   θ  v/s t when  K  p  = 25 and  K d  =10 for posture tracking control

    We can notice in dynamic control too we arenot controlling the orientation of the robot.Thus, if we plot θ  v/s t, we should get  θ  thatfirst decrease from   π   value to make robotmove towards the desired trajectory, thenwhen it has reached on the desired trajec-tory,   θ   should continuously increase. Con-trary to static control, response of thetain dynamic control donot show oscillations.Our robot would not be oscillating around

    trajectory, while in motion.

    Figure 14: Posture Tracking response withparameter variation and K d = 10,  K  p  = 5

    2

    In this section, we have tried to analyse,what happens when parameters involved incontrol law changes. By analysing it, wewill have an idea of robustness of dynamiccontroller. If their is slight change in sys-

    tem parameters and a controller is able toconverge variables to desired trajectory, itsrobust. For that purpose we experimentedwith radius of wheel r and distance betweenwheel L. We reduced values of r⇒ 0.9r  andL⇒ 0.9L  in u = F (θ)−1.W   calculation.

    From Figure 14, we can observe that tracking error (transient error) reduces as soon asmotion starts. In an ideal situation we want stead state error to be zero. But steady

    10

  • 8/18/2019 Ecole Centrale Nantes Report

    12/15

    state (remaining error) in x and y position donot cease to zero, it oscillates. Thus, weconclude, unlike in static decoupling control, we have less oscillations of steady state errorwith dynamic decoupling control with better transient characteristics.

    0.4 Lyapunov control for (1,1) robot

    A non-linear system can be represented by  Ẋ  = f (X, u) equation. If we want to design alyapunov based controller for this system, we need to choose a Lyapunov function V(x)such that,

    V̇  (X ) =   ∂V  ∂X 

    .  Ẋ  and u satisfying   ∂V  ∂X 

    .f (X, u) <  0

    Here to develop control model we considered posture tracking error defined by,  ξ e = ξ d−ξ .Where,

    ξ  =

    x + a.cos(θ)y + a.sin(θ)

    ψ =  θ  + β 3s

    ,  ξ̇  =

    a.cos(θ + β 3s) 0a.sin(θ + β 3s) 0

    sin(β 3s) 1

    .   v

    w

      where

      vw

     =

     θ̇/sin(β 3s)

    β 3s

    represents the current posture of the mobile robot and  ξ d represents the desired postureof the robot. Considering this error in robot frame, we got:

    mξ e =

    mxemyemψe

     =m R0.(

    0ξ d−0ξ ),   Thus   mξ̇ e =

    mẋemẏe

    m  ψ̇e

     =m Ṙ0.(

    0ξ d−0ξ )+mR0.(0 ξ̇ d−0 ξ̇ )

    Thus,mξ̇ e =

    mẋemẏe

    m  ψ̇e

     =m Ṙ0.0Rm.mξ e+mR0.(0 ξ̇ d−0 ξ̇ ) with   mR0 =

    cos(ψ)   sin(ψ) 0−sin(ψ)   cos(ψ) 0

    0 0 1

    m ξ̇ e =

    0   w + v.sin(β 3s) 0−w − v.sin(β 3s) 0 0

    0 0 0

    .mξ e+

    cos(ψ)   sin(ψ) 0−sin(ψ)   cos(ψ) 0

    0 0 1

    .(

    0ẋd0ẏd

    0  ψ̇d

    0ẋ0ẏ

    0  ψ̇

    )

    where,

    0ẋd0ẏd

    0   ˙ψ

    d

     =

    a.vd.cos(ψd)a.vd.sin(ψd)

    wd + vd.sin(β d)

     and

    0ẋ0ẏ0   ˙ψ

     =

    a.v.cos(ψ)a.v.sin(ψ)

    w + v.sin(β 3s)

    Thus considering  ψe = ψd − ψ, we get  m ξ̇ e equation as:

    m ξ̇ e =

    mye.(w + v.sin(β 3s))mxe(−w − v.sin(β 3s))

    0

    +

    a.vd.cos(ψd − ψ)a.vd.sin(ψd − ψ)

    wd + vd.sin(β d)

    a.v0

    w + v.sin(β 3s)

    m ξ̇ e =

    a.vd.cos(ψe)a.vd.sin(ψe)

    wd + vd.sin(β d)

    +

    mye.sin(β 3s)− a

      mye

    −mxe.sin(β 3s)   −

    mxe

    −sin(β 3s)   −1

    .

      vw

    11

  • 8/18/2019 Ecole Centrale Nantes Report

    13/15

    For our controller, we choose V  (X ) = 1/2[mẋ2e+mẏ2e +

    m  ψ̇2e /K y].where, m  ξ̇ e = [mẋe,

    m ẏe,m  ψ̇e]

    is rate of change of error in posture of robot in robot frame.

    V̇  (mξ e) =   mxe mye mψe/K y .

    mẋemẏe

    m

     ψ̇e

     <  0

    Thus  V̇  (mξ e) =

    a.vd.cos(ψe)−a.v

    .mxe+

    vd.sin(β d) + wd

    K y−

    v.sin(β 3s) + w

    K y+

    a.mye.vd.sin(ψe)

    ψe

    .ψe

    Thus we choose to impose   −K x.(mxe)2 −

    K ψK y

    .(ψe)2 <   0, from it we can find v and w

    values.

    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 bestgain values to be   K x   = 10,   K y   = 10 and  K ψ   = 10. The simulink block diagram andresponses are as below.

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

    Figure 16: Posture tracking response withK x   = 40,   K y   = 40 and   K θ   = 10 for Lya-

    punov control

    From figure 16 we can clearly see, steadystate error(remaining error) donot cease tozero. Even transient error( tracking error)for x and y, when   K x   = 10,   K y   = 10and   K ψ   = 10 is very large. We cannotsay that our system is asymptotically stable(Ast →∞, e(t) → 0).

    12

  • 8/18/2019 Ecole Centrale Nantes Report

    14/15

    Figure 17:   θ  v/s t when  K x  = 10,  K y   = 10

    and  K ψ  = 10 for posture tracking control

    We can notice in lyapunov control strategy,

    we are controlling the   ψ   of the robot, i.eψ =  θ +β 3s. Thus, if we plot error in ψ  v/s t,We can understand about oscillation by ourrobot during motion. As depicted by the fig-ure, transient error gets to a constant valueas soon as robot starts moving indicated ourrobot will not oscillate. Also steady stateerror is zero in this case.

    Figure 18: Posture Tracking response withparameter variation and  K x  = 10,  K y   = 10and  K ψ  = 10

    In this section, we have tried to analyse,what happens when parameters involved incontrol law changes. By analysing it, wewill have an idea of robustness of lyapunovcontroller. If their is slight change in sys-tem parameters and a controller is able toconverge variables to desired trajectory, itsrobust. For that purpose we experimentedwith radius of wheel r and distance betweenwheel L. We reduced values of r⇒ 0.9r  andL⇒ 0.9L. But here we can see the results aresimilar to motion without parameter varia-tion. So our controller is not effected by pa-rameter variations.

    13

  • 8/18/2019 Ecole Centrale Nantes Report

    15/15

    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.

    14