<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Control for Sailboat Robots</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Joris Tillet ENSTA Bretagne Luc Jaulin Lab-STICC ENSTA Bretagne</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <fpage>87</fpage>
      <lpage>93</lpage>
      <abstract>
        <p>Existing controllers for sailboat robots are usually developed for speed performances and for long straight lines. In this context, the accuracy is not the main concern. In this paper, we consider the tight slalom problem which requires accuracy. We propose a feedback-linearization based method combined with a vector field approach to control the sailboat. Some simulations show that the robot is able to perform the slalom without missing any gate.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        We consider a mobile robot described by the state equations
        <xref ref-type="bibr" rid="ref3">(Jaulin, 2015a)</xref>
        x˙ =
p =
f (x, u)
g(x)
(1)
with an input vector u = (u1, . . . , um), a state vector x = (x1, . . . , xn) and a pose vector p = (p1, . . . , pm+1)
with n ≥ m + 1. The goal of this paper is to show we can follow a chosen vector field in the p space
        <xref ref-type="bibr" rid="ref5">(Khatib,
1986)</xref>
        (
        <xref ref-type="bibr" rid="ref9">Pˆetres et al., 2011</xref>
        )
        <xref ref-type="bibr" rid="ref11">(Schmitt et al., 2016)</xref>
        , using a feedback-linearization based method. It means that we
can control m + 1 state variables and not only m of them, as given by the theory (Isidori, 1995). This is due to
the fact that we perform a path following instead of a trajectory tracking where the time is involved. In practice,
the vector p corresponds to the position of the center of the robot and may be of dimension 2 (if m = 1) or 3 (if
m = 2). This is consistent with the fact that we need one actuator to control the direction of a 2D vehicle such
as a car or a boat and two actuators for a 3D vehicle such as a plane.
      </p>
      <p>
        The approach we propose is to find a controller so that the vector p˙ be collinear (instead of equal) to the
required field. This is illustrated in this paper in the case where the mobile robot is a sailboat
        <xref ref-type="bibr" rid="ref7">(Miller et al.,
2012)</xref>
        <xref ref-type="bibr" rid="ref1">(Cruz and Alves, 2008)</xref>
        <xref ref-type="bibr" rid="ref2">(Holger et al., 2009)</xref>
        . The input u is scalar (i.e., m = 1) and corresponds to the
rudder. Moreover, we will show that this approach is particularly adapted to sailboats where the speed is hardly
controllable
        <xref ref-type="bibr" rid="ref6 ref8">(Neumann and Schlaefer, 2012)</xref>
        <xref ref-type="bibr" rid="ref12">(Stelzer et al., 2007)</xref>
        .
where x3 is the heading of the robot and p = (x1, x2) are the coordinates of its center. The state vector is given
by x = (x1, x2, x3).
      </p>
      <p>
        Let us choose as the control output the variable
and let us find a classical feedback linearization based controller
        <xref ref-type="bibr" rid="ref3">(Jaulin, 2015b)</xref>
        such that the output y (which
can be interpreted as an error) converges to 0. In such a case, we will have
x3 + atan(x2) = 0
and the robot will perform a line following. Differentiating (3) we have
Since u occurs in (4), the relative degree of the system is 1. We may thus choose a first order equation for the
error y, such as
We then choose u to have this error equation satisfied. From (4) and (5), we get:
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Method</title>
      <p>In order to facilitate the understanding of our approach, we will deal with a Dubins car, which is much simpler
than a sailboat. The extension to other type of mobile robots is straightforward.
2.1</p>
      <sec id="sec-2-1">
        <title>Line following for a Dubins car</title>
        <p>To introduce our approach, we consider a robot (here a Dubins car) moving on a plane and described by the
following state equations:
Note that we do not have any singularity. As illustrated by the simulation depicted on Figure 1, the associated
vector field makes the car attracted by the line x2 = 0.
where α is a small positive coefficient, e.g., α = 0.1. In such a case, the robot will go to the line in a finite
time (and not asymptotically, as previously). Moreover, it will remains exactly on the line even if some small
uncertainties occur.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Generalization</title>
        <p>We want our robot to follow the field ψ(p), more precisely, we want that ψ(p) and p˙ point toward the same
direction. This condition can be translated into the form ϕ (ψ(p), p˙ ) = 0, where ϕ is a collinearity function
which satisfies</p>
        <p>ϕ (r, s) = 0 ⇔ ∃λ &gt; 0, λr = s.</p>
        <p>Typically, this function corresponds to one angle (the heading) if m = 1 and two angles (heading, elevation) for
m = 2. Note that the function ϕ cannot be expressed with a determinant since r, s should not point toward
opposite directions. We define the output
y = ϕ (ψ(p), p˙ ) = ϕ ψ(g (x)),
∂g
∂x
(x) · f (x, u) .</p>
        <p>Since y ∈ Rm, we can apply a feedback linearization method and we get y → 0. This means that the robot
will follows the required field. Note that we have no control on the speed, which is not our main concern in this
paper.</p>
        <p>2D case. Consider for instance the case where m = 1. We have</p>
        <p>We take as an output y, the angle between the actual heading vector p˙ = ∂∂xg (x) · f (x, u) and the desired heading
vector given by ψ(p). Denote by θ (x) the argument of the vector p˙ . We have</p>
        <p>The sawtooth function is given by:
y (=8)
= angle ψ(g (x)), ∂∂xg (x) · f (x, u)
= angle ψ(g (x)), scionsθθ
= sawtooth(θ−atan2(ψ2(g (x)), ψ1(g (x))))</p>
        <p>| {bz } | {az }
sawtooth(θe) = 2atan tan θ2e = mod(θe + π, 2π) − π
As illustrated in Figure 2, the function corresponds to an error in heading. The interest in taking an error
θe filtered by the sawtooth function is to avoid the problem of the 2kπ modulus: we would like a 2kπ to be
considered non-zero.</p>
        <sec id="sec-2-2-1">
          <title>We have</title>
          <p>(7)
(8)
(9)
(10)
(11)
(12)
if we assume that the input u corresponds to the desired angular velocity. We propose a feedback linearization
based control based on the required equation y˙ = −y. We have
u
(12)
=
We thus have the guarantee that after some time, the error angle y is 0 and that we follow exactly the vector
field.
Take g (x) = (x1, x2)T which means that we want to build the paths in the (x1, x2)-space. We have
and
Thus
and
where ρ1 = 0.003, ρ2 = 0.2, ρ3 = 3. In this equation u1, u2 correspond to the tuning of the rudder and the sail,
respectively. We would like our robot to follow a path which makes a tight slalom through doors that have to
be passed. We assume that we have a Cartesian equation for our path. For instance, we consider that the path
is described by
e (p) = 10 sin</p>
          <p>− p2 = 0
where e (p) corresponds to an error. This path corresponds to a path that should be possible for a normal
sailboat robot for crosswind conditions. We take a vector field which corresponds to a pole placement strategy.
For instance, we want the error satisfies e˙ = −0.1 e, so that it will converge to zero in about 10 sec. Thus
cos
|
p1
10
{z
e˙(p)</p>
          <p>1
p˙1 − p˙2 = − 10 10 sin
} |
p1
10
{z
e(p)
− p2
}
We take p˙1 = 1, to go to the right. As a consequence, we get the following field:
which is attracted by the curve p2 = 10 sin p101 .</p>
          <p>We have
(20)
(21)
(22)
(23)
(24)
and</p>
        </sec>
        <sec id="sec-2-2-2">
          <title>Thus</title>
          <p>and</p>
          <p>From (13), we get that the desired angular velocity should be
Now, since the true angular velocity is θ˙ = −ρ2v sin 2u1, we take
∂g
∂x
a =
b =</p>
          <p>.
The saturation function tanh is needed since the rudder cannot respond to any required ωˆ. Indeed, if our
ωˆ
controller ask to turn too fast for the boat, ρ2v will be more than 1, and the rudder can only do its best. The
behavior of our controller is illustrated by Figure 4, where the sailboat has to slalom tightly between doors. We
can see that the trajectory follows exactly the sine path (magenta).</p>
          <p>The Python source codes associated to the simulation can be found at:</p>
          <p>https://www.ensta-bretagne.fr/jaulin/slalompy.zip</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Cruz</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Alves</surname>
            ,
            <given-names>J. C.</given-names>
          </string-name>
          (
          <year>2008</year>
          ).
          <article-title>Ocean sampling and surveillance using autonomous sailboats</article-title>
          .
          <source>In Proceedings of the 1st International Robotic Sailing Conference.</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>Holger</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roland</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karim</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Mellinger</surname>
            ,
            <given-names>D. K.</given-names>
          </string-name>
          (
          <year>2009</year>
          ).
          <article-title>AAS endurance: An autonomous acoustic sailboat for marine mammal research</article-title>
          .
          <source>In 2nd International Robotic Sailing Conference.</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Jaulin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          (
          <year>2015b</year>
          ).
          <article-title>Mobile robotics</article-title>
          . Elsevier.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Jaulin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Le Bars</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>An interval approach for stability analysis: Application to sailboat robotics</article-title>
          .
          <source>IEEE Transactions on Robotics</source>
          ,
          <volume>29</volume>
          (
          <issue>1</issue>
          ):
          <fpage>282</fpage>
          -
          <lpage>287</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <string-name>
            <surname>Khatib</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          (
          <year>1986</year>
          ).
          <article-title>Real-time obstacle avoidance for manipulators and mobile robots</article-title>
          . In Autonomous robot vehicles, pages
          <fpage>396</fpage>
          -
          <lpage>404</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <string-name>
            <given-names>Le</given-names>
            <surname>Bars</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            and
            <surname>Jaulin</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          (
          <year>2013</year>
          ).
          <article-title>An experimental validation of a robust controller with the vaimos autonomous sailboat</article-title>
          .
          <source>In Robotic Sailing</source>
          <year>2012</year>
          , pages
          <fpage>73</fpage>
          -
          <lpage>84</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>P. H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamlet</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Rossman</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>Continuous improvements to usna sailbots for inshore racing and offshore voyaging</article-title>
          .
          <source>In 5th International Robotic Sailing Conference</source>
          , pages
          <fpage>49</fpage>
          -
          <lpage>60</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          <string-name>
            <surname>Neumann</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Schlaefer</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>Feasibility of basic visual navigation for small sailboats</article-title>
          .
          <source>In 5th International Robotic Sailing Conference</source>
          , pages
          <fpage>13</fpage>
          -
          <lpage>22</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <string-name>
            <surname>Pˆetres</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Romero-Ramirez</surname>
          </string-name>
          , M.-A., and
          <string-name>
            <surname>Plumet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          (
          <year>2011</year>
          ).
          <article-title>Reactive path planning for autonomous sailboat</article-title>
          .
          <source>In 15th International Conference on Advanced Robotics (ICAR)</source>
          , pages
          <fpage>112</fpage>
          -
          <lpage>117</lpage>
          . IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          <string-name>
            <surname>Plumet</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Briere</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Le Bars</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          (
          <year>2018</year>
          ).
          <article-title>Les voiliers robotis´es. (ref. article : s7815)</article-title>
          .
          <source>fre.</source>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>Schmitt</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Le Bars</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jaulin</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Latzel</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          (
          <year>2016</year>
          ).
          <article-title>Obstacle avoidance for an autonomous marine robot-a vector field approach</article-title>
          .
          <source>In Quantitative monitoring of the underwater environment</source>
          , pages
          <fpage>119</fpage>
          -
          <lpage>131</lpage>
          . Springer.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          <string-name>
            <surname>Stelzer</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Proll</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>and John</surname>
            ,
            <given-names>R. I.</given-names>
          </string-name>
          (
          <year>2007</year>
          ).
          <article-title>Fuzzy logic control system for autonomous sailboats</article-title>
          .
          <source>In Fuzzy Systems Conference</source>
          ,
          <year>2007</year>
          . FUZZ-IEEE
          <year>2007</year>
          . IEEE International, pages
          <fpage>1</fpage>
          -
          <lpage>6</lpage>
          . IEEE.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>