Journal of Control Science and Engineering

Volume 2011 (2011), Article ID 402017, 13 pages

http://dx.doi.org/10.1155/2011/402017

## On Motion Planning for Point-to-Point Maneuvers for a Class of Sailing Vehicles

Mads Clausen Institute, University of Southern Denmark (SDU), Alsion 2, 6400 Sønderborg, Denmark

Received 21 April 2011; Revised 5 July 2011; Accepted 18 July 2011

Academic Editor: Onur Toker

Copyright © 2011 Lin Xiao and Jerome Jouffroy. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

#### Abstract

Despite their interesting dynamic and controllability properties, sailing vehicles have not been much studied in the control community. In this paper, we investigate motion planning of such vehicles. Starting from a simple dynamic model of sailing vessels in one dimension, this paper first considers their associated controllability issues, with the so-called no-sailing zone as a starting point, and it links them with a motion planning strategy using two-point boundary value problems as the main mathematical tool. This perspective is then expanded to do point-to-point maneuvers of sailing vehicles in the plane, that is, automatic path generation combined with computation of control input profiles. Simulations are presented to illustrate the potential of the approach.

#### 1. Introduction

Sailing by the wind is in some sense almost as ancient as civilization itself, and humanity has gathered a considerable wealth of knowledge on navigation, naval architecture, and many other aspects of marine transportation using the wind. Despite this, and contrary to vehicles propelled by usual means such as propellers and thrusters, only a few studies were dedicated to automation of what we refer to as sailing vehicles, that is, our well-known sailboats, but also ships equipped with a kite, or landyachts. Many of these studies, for example [1–3], use as their main tool strategies from artificial intelligence that do not allow to use the dynamic models of sailing yachts available in the literature (see, e.g., [4–6]) for the design of control strategies. Other references, such as [7] or [8], consider more traditional control approaches, but use only linear approximations, and thereby neglect fundamental dynamical effects related to maneuvers in sailing (tacking, jibing), which are inherently nonlinear.

In a previous study (see [9, 10]), one of the authors of the present paper introduced a simple and quite general model to represent what is thought to be the essence of the dynamic behaviour of many sailing vehicles, that is, their well-known zigzag-like trajectories whenever these vehicles aim for a destination in the direction of the wind. Roughly speaking, this model combined a well-known kinematic model widely used in robotics and also somewhat connected with traditional guidance systems (see [11, page 153] in this regard), together with a polar dead zone to represent the no-sailing zone familiar to sailors. The nonlinear model was also used to perform basic sailing maneuvers such as tacking and wearing.

In the present paper, starting from the above-mentioned “kinematic sailing vehicle” model, we show how it is possible to do motion planning (i.e., path planning combined with feedforward control) by explicitly taking into account the particular controllability/reachability properties of the nonlinear system, which includes a saturation and a dead zone. More specifically, we check these properties and investigate automatic generation of start/stop maneuvers in the plane using a series of two-point boundary value problems (TPBVPs) that serve here as a common thread throughout this paper. As will be seen, the voluntarily simple strategy is reminiscent of, or equivalent to, a bang-bang control (see [12–14]) strategy, whose interest lies partly in its applicability to more extended models. Preliminary results of the present study were reported in [15, 16].

After this introduction, Section 2 will be dedicated to a short discussion on controllability and motion planning issues of a one-dimensional problem retaining the paramount no-sailing zone effect present in sailing. Then, we will build upon these few remarks in Section 3 to propose a single strategy to automatically generate paths (but also trajectories and reference control inputs) to bring a sailing vehicle from one point to another. In Section 4, we will present a few simulation results to illustrate the approach, while a few concluding remarks end the paper.

#### 2. A One-Dimensional Problem

##### 2.1. A One-Dimensional Model

To begin with, let us consider a system represented by the following scalar nonlinear differential equation: where and are strictly positive constants while function is such that Control input , representing a force applied to the system, is assumed to be limited, that is, it lies within the interval [].

From the way function is defined, it is clear that control input has no effect on system (1) while belongs to the interval [], so that if one wants to steer the system from an initial position to a “target” position , one will have to accumulate enough energy, or use the inertia of the system to regain controllability and to reach the targeted position.

Metaphorically, system (1)-(2) can be seen as a crude analogy of a kid trying to jump over a small river (see Figure 1), hoping to get to the other side. From a starting position, the kid will run as fast as possible to increase her momentum until it is sufficient. If the initial position is at a too short distance from the edge of the dead zone, she will be able to walk back a few steps (see blue path) before running to get the right momentum.

##### 2.2. Controllability Properties

In control theory, controllability properties (or reachability properties depending on contexts and definitions, see [17, 18]) are of course invoked for analysis purposes. However, they can also be used in a more constructive way to synthesize open-loop control laws. For linear systems, this is exemplified by the so-called controllability/reachability Gramian (see [19]) while for nonlinear systems of the form , conditions on the vector fields and allow to perform dynamic inversion that will result in the computation of the control input steering a system on a chosen trajectory of reference (see [20–22]).

However, most cases involving dynamic inversion require the considered system to be small-time controllable, that is, that the states can be reached in an arbitrarily small amount of time. For system (1)-(2), small-time controllability is clearly not verified, mostly due to the combination, even outside the interval [], of the dead zone with the maximum amplitude on the control input. Under some particular conditions, the system is actually simply not controllable as recalled in the following proposition.

Proposition 1. *The state of system (1)-(2) cannot be controlled to the state on the interval if and the following holds:
*

* Proof. *Similarly to [10], start with (1), representing the system in the no-go zone,
Replace with , (4) becomes
The solution of this first-order differential equation with initial condition is then
which gives . Introduce to express the start of the dead zone and to represent the end as depicted in Figure 1. Considering the situation where , integrate on both sides, we obtain
Hence will never go beyond provided we have the following inequality:
which leads to (3).

From the above proposition, it appears that controlling the system from a point to another requires the notion of a time interval or horizon, as opposed to instant inversion as in dynamic inversion. In the linear case, this is reminiscent of the Gramian perspective, where a system can be inverted over a time-horizon, even when it might be singular at a particular instant. Unfortunately, Gramian-based extensions to nonlinear systems (see [23, 24]) do not seem to apply to system (1)-(2).

##### 2.3. TPBVP as a Unifying Tool

However, if, similarly to bang-bang control strategies (see [12]), one assumes constant levels on the control input, that is, on , our problem can be simplified further and system (1)-(2) can straightforwardly be transformed into a collection of systems where can take three values, that is, , , or 0, and is the duration for which each control input level is applied. The initial time for the first system is set to , and, assuming we have a collection of systems, the total horizon of simulation is simply expressed as .

In the following, our goal is to generate start/stop maneuvers (i.e., trajectories such that and ) crossing the dead zone (i.e., and ).

As we have seen in Proposition 1, the system must have a minimum velocity, , to cross the dead zone. Assuming a constant input level and an initial velocity , this in turn implies a minimum distance below which one has to go backwards before accelerating forward (see Figure 1).

Obtaining can be done by examining the following system:
From (10), solving also implies solving , the time it will take to the system to reach the entrance of the dead zone with a velocity . Thus, finding unknowns and —that are related to the controllability property of the system (if while , the system cannot cross the dead zone)—obviously corresponds to solving a *two-point boundary value problem* (TPBVP) as and are given. Additionally, that our first controllability consideration, expressed by Proposition 1, could have also been given a TPBVP flavor, as can also be regarded as the solution of a TPBVP with (4) as the system.

Regarding motion planning issues, the determination of each time-interval during which is applied is yet another TPBVP, while the whole motion planning of a start/stop maneuver can naturally be expressed as a global TPBVP. Hence controllability and motion planning can be both treated with TPBVPs, giving the present approach a unified view.

A standard form for TPBVPs of ODEs is usually given by a first-order form (see [25]) where is a vector of unknown parameters, together with an associated constraint function representing the boundary conditions However, in our problem, time intervals on which input levels are applied are unknown, which, roughly speaking, corresponds to having an unknown in (11)-(12). Proceeding to the change of variable leads to with the constraints Once our motion planning problem is put under form (13)-(14), it can be solved automatically and numerically by a BVP solver (see, e.g., [25]).

In the simplest case where only three successive levels are applied on the control input, we have the following first-order form (with the constraint function): Clearly, depending on where the starting position is, different combinations of input levels , , and 0 are possible, as represented in Figure 2. The other cases (besides case 1) described with input levels , , 0, and , 0, , , respectively, (see Figure 2) can be characterized similarly to (15). For the case where , the system is simply steered backwards with , before applying the first case and solving (15).

Similarly to the decision to go backwards or not that is dictated by , the distinction between case 1, case 2, and case 3 (see Figure 2) is driven by controllability issues that are linked with the saturation levels on the input with the dead zone, that is, (see Algorithm 1) decelerating before the dead zone to avoid overshooting the target (case 2), or accelerating at the exit of the dead zone to avoid “undershooting” (case 3).

As seen earlier in this paper, studying controllability is linked to a TPBVP (e.g., the one giving ), followed by another TPBVP for motion planning. Hence the controllability verification, at the origin of the determination of the input level sequence can, in a sense, be seen as a preliminary step to a bang-bang control strategy (see [12]).

#### 3. Motion Planning for Surface Sailing Vehicles

##### 3.1. A Phenomenological Model

Instead of using a full model describing the forces and moments acting on a sailing vehicle, we use a simpler one, originally introduced in [9, 10], representing the basic dynamic behaviour of such vehicles, and which is useful for trajectory and path generation purposes. As will be seen the interest of the model lies in its simplicity, combined with the representation of a trait common to all sailing vehicles: the no-go zone, also called no-sailing zone.

As will be seen, start/stop maneuvers of this simplified sailing vehicle model share some similarities with what was just discussed before, so that results of Section 2 could be used with only minor adjustments.

The model is described by the following set of four differential equations: where , represent the position of the vehicle, is its longitudinal velocity, and is the heading of the vehicle. Function is such that Variable is the control input representing the steering action coming from, for example, a rudder, and takes values on the interval []. Similarly, is assumed to be the other control input accounting for the propulsion of the vehicle, which is limited to lie within the set [] (For simplicity, we assume this interval to be symmetric around the origin, which implies a braking action for the sailing vehicle. This is possible for some vehicles if the boom angle can be directly controlled or with the presence of brakes, as on a landyacht. However, our discussion is also valid for interval [] with minor changes). Parameter accounts (together with ) for the bounded curvature in the plane of the trajectories followed by system (16). From the way the function is defined, it is clear that the control input has no effect on system (16) when belongs to interval , thus representing the loss of propulsion when the vehicle is in the no-sailing zone, which is depicted in Figure 3.

System (16)-(17) can then be directly put into a state-space form , where the state vector is , together with the control input .

The controllability properties of system (16)-(17) are in a sense identical to what we saw in Section 2. Thus, the following proposition, whose proof we omit here, mirrors Proposition 1, and expresses the fact that the surface sailing vessels have to accumulate enough energy before entering the no-sailing zone.

Proposition 2. *The state of system (16)-(17) cannot be controlled to the state on the time interval [0, ] if the following holds:
*

##### 3.2. Reachability Analysis

The main objective of this paper being to generate a feasible point-to-point path in the plane with any initial heading angle, we need to determine whether or not the sailing vehicle can go from one point to the other. In other words, it is necessary to check whether there exists at least one feasible path for every possible couple of vehicle configurations.

In sailing, tacking and wearing are two main maneuvers when going upwind. As shown in Figure 4, there is, roughly speaking, a short crossing of the no-go zone when the vehicle performs a tack (see Figure 4(a)), while a wearing trajectory avoids the dead zone entirely.

As we have seen in Proposition 2, and by noting of the vehicle when entering the dead zone (see Figure 4(a)), the system (16)-(17) cannot be steered across the dead zone when . Nevertheless, if the path is chosen so that it always avoids the no-go zone, then there is no such a velocity restriction. Hence, we can prove that, in a kind of worst-case scenario perspective, it is always possible to steer a system from any point to another using only wearing trajectories. Our strategy mostly relies on the construction of paths using sequences of straight line segments (s) and arcs (s) of a circle with radius , much in the same way as it is one in the field of mobile robotics.

This is summarized in the following proposition.

Proposition 3. *A feasible continuous wearing path always exists between two prescribed points and in the plane provided that the initial heading is outside the dead zone.*

*Proof. *The complete proof of the proposition is based on the explicit construction of the path where, depending on the value of initial heading angle , a particular sequence of s and s is constructed. The proof is given in the appendix.

Note that the above proposition can give us an interesting outlook on uncertainties considerations. Indeed, assuming that both parameters and are not exactly known, this would imply that the minimum velocity that guarantees that the vehicle will be able to cross the dead zone is not exactly known either. In this case, choosing a feasible continuous path as suggested by Proposition 3 allows to cope with such uncertainties, since it avoids the dead zone altogether.

##### 3.3. Path Generation

As a preliminary to any path generation for a sailing vehicle, it is clear that if the initial heading lies within the interval , the vehicle cannot move because it fails to capture energy from the environment. Therefore, the sailing vessel should start with headings outside the no-go zone.

In some cases, the vehicle is able to go straight to reach the target. For this simple case, consider we are given and as in Figure 3, then the angle of the line-of-sight is ( is a four-quadrant inverse tangent (arctangent) of the real parts of and , and . If is equal to the initial heading , the trajectory is a simple straight line connecting and . The length of the corresponding path is obviously .

Nevertheless, the end points usually cannot be simply reached by only one straight line motion. The vehicle can still reach the destination, but with paths in which turns are obviously necessary. Furthermore, if the general direction towards destination lies within a sector defined by the no-sailing zone, the vehicle should go by either tacking or wearing, which are the two main maneuvers to go upwind in sailing (see details in [9, 10]). The paths for these two maneuvers are constructed by sequences of straight lines and circles. Since the maximum steering angles or are applied during the turn, the radius of the circles followed by vehicle is . Figure 4 lays out routes for tacking (a) and wearing (b) maneuvers.

As alluded to in the previous section, and as a direct consequence of Proposition 3, a single wearing maneuver/loop entirely avoids the dead zone, and the path is, in this case, separated into three pieces, which are straight line [], arc [], and straight line [] (see Figure 4(b)). A tacking maneuver is easily constructed similarly to a wearing one (points linking the straight lines and the circles are obtained directly from a method identical to the one detailed in the appendix). However, this maneuver has to be divided into five different segments, accounting for the presence of the dead zone: straight line [], arc [], arc in the dead zone [], arc [], and straight line [] (see Figure 4(a)).

Here, the idea is that tacking is always preferred because it is usually faster, as wearing around means losing way. Geometrically, selection of the right maneuver (i.e., tacking or wearing) must, however, take into account the distance between two established points, that is, if they are too close from each other for a tack, there might be not enough space for turning with radius , hence the vehicle can only go wearing about.

Whether we are tacking or wearing, both these maneuvers can be considered as two examples of the same *geometric* task, while crossing the no-sailing zone is specific to tacking, hence more of a dynamic flavor. Hence, for the geometric task, each segment (straight line or arc) of the path is represented by the following differential equation in :
where is the path variable. Since and (or ) are known, together with the final headings which are supposed to be decided upon, obtaining the length of each segment can be done by solving yet another TPBVP. Taking for instance the path of a tacking maneuver, as seen in Figure 4(a), proceed similarly to Section 2 and formulate ODEs and appropriate boundary conditions as follows:
Consequently, the length for each segment (i.e., ) on the path can be solved automatically and numerically by a BVP solver.

##### 3.4. Feedforward Controller Computation

Once a path is defined, the objective is to generate appropriate control signals that will steer the vehicle along this path. Obviously, a feedforward strategy similar to the one in Section 2 can be applied here, as we only need to determine switching times for the constant control levels , , and 0, the steering angle levels , , and 0.

In order to get these switching times for , and as represented in Figure 5, the basic path/length dynamics of system (16) can be simply described as follows: where . Comparing Figure 5(a) with Figure 1, it is obvious our one-dimensional problem of Section 2 is similar to the tacking maneuver, the wearing maneuver being even simple due to the absence of dead zone crossing. Hence, we use the same method for motion planning of the 1D case, which is shown in Figure 2, where corresponds to 0 and corresponds to .

In this context, the only difference is that if while entering the dead zone, the vehicle velocity is not sufficient, instead of going backwards, a tacking maneuver is changed into a wearing one. This implies reshaping the path, as described in the previous Section 3.3.

Finally, using function obtained from solving (21), together with segment length , it is straight-forward to get the switching times for steering function .

##### 3.5. On-Line Path Planning

In sailing, the environment is inherently unstable and changes in wind speed and direction might occur. In the important case of a change in wind direction, the path should obviously be recomputed, and the control input profiles applied immediately under the new conditions.

Using only minor changes, our strategy can swiftly adapt to a new wind direction (see also [26] on replanning issues). First, for on-line planning purposes, instead of our vehicle starting at , we now naturally have , with being the vehicle velocity when the wind direction changes. Regarding wind direction, and assuming first that the wind is coming from the north (i.e., the wind angle is ), once the wind shifts (i.e., the new wind angle is ), the Cartesian coordinates with respect to the wind changes as well, and the position of the vehicle in the new coordinate system can then be redefined as . The rotation matrix induced by the wind shift is in which is the difference between the wind angles. Similarly, the specified target is also transformed in the new coordinate system as well as the initial heading. Consequently, according to terminal conditions and , the path is replanned by using our path generation strategy. Then the control input profiles and are computed as before.

Note that more replanning can occur for other changes as well, like, for example, if the considered vehicle is a landyacht and the friction with respect to the ground changes, thereby changing parameter . Obviously, updating our motion plans in realtime somewhat transforms our initial feedforward control structure into a hybrid feedback controller. Although the stability of such controller is definitely of interest, it is outside the scope of the present paper (see also [27] for interesting results of stability of hybrid systems).

#### 4. Simulation Results

In this section, we illustrate our feedforward control strategies with a few simulation results, and for which the system parameters were taken as kg, Ns/m, , , , , and . To solve the different TPBVPs present in our algorithms, we use the function from MATLAB.

In Figure 6 two examples of possible maneuvers of the vehicle in the plane are represented, starting with initial position and heading . The wind is assumed to be coming from the north. The red curve represents a wearing maneuver going to position while the tacking maneuver going to is pictured in blue.

Figure 7 shows the control input signals and corresponding to the two maneuvers of Figure 6. As can be seen from Figure 7(a), has either constant level , or , the latter level meaning the vehicle is crossing the no-go zone. On the other hand, and as pictured on the red curve, the external force will never be 0 if the sailing vessel is wearing or going straight. In Figure 7(b) the variations of the steering angle are represented.

Figure 8 represents the variations of the longitudinal velocity and the heading angle, respectively. Note for the blue curve the decrease in velocity while entering the dead zone, followed by a reacceleration as soon as the vehicle gets out of it (between time s and s).

Figure 9 shows another simulation result illustrating the implementation of the on-line replanning scenario. The wind is initially coming from the north (blue arrow) and the vehicle is set to go upwind from position to with initial heading and starting velocity . Following our motion planning strategy, the trajectory is supposed to follow the blue path represented in Figure 9. However, at time s, that is, as the vehicle travels through position , the wind suddenly changes direction, so that the vehicle cannot follow the initially planned path, because in this case, the latter part of the blue path is directly facing the wind. Hence, using the current velocity as the new initial velocity, replanning is computed at s and new control levels are applied to steer the vehicle on the new path (in red) towards destination.

#### 5. Concluding Remarks

For motion planning issues, the essence of the dynamical properties of sailing systems lies in the no-go zone that prevents sailors from sailing directly into the wind. In this paper, we have shown, through simplifying further our already simple kinematic sailing model, that several problems, that is, controllability, path generation, and control input generation can all be formulated as two-point boundary value problems, for which many solvers are available. Note that, in our view, it is the simplicity of the method that allows to solve elegantly a problem for a nonlinear system involving both a saturation and a dead zone at the same time, and that might have been difficult to solve with other available techniques.

On the methodological point-of-view, this can be somewhat related to some dynamic inversion strategies where controllability considerations are directly used to construct feedforward control strategies (see, e.g., [21]). On a more technical perspective, our ideas can of course be seen as being close in spirit to techniques used in bang-bang control (see [28] among others), and additional results might be gained by pushing investigations further in this direction, notably with regard to time optimization and/or consideration of models with increasing complexity.

#### Appendix

We give here a detailed proof of Proposition 3. As mentioned in Section 3, for each initial heading angle , we construct a path from initial configuration to final configuration , where , and are predefined while can be decided upon (all angles are defined on the interval ). The proof consists of a set of lemmas, each one constructing a path from belonging to subintervals of .

For the simplest case ( i.e., when a straight line motion is feasible) the trajectory is the line connecting and . We then state without proof the following obvious geometric fact.

Lemma 1. *One straight line path is sufficient if and only if is outside the dead zone and .*

Otherwise, we need a sequence of s and s to create the path.

Lemma 2. *A feasible continuous wearing trajectory constituted by , , and (as described in Figure 10(a)) always exists between and if is outside the dead zone and , and if the following inequalities are verified:
*

*Proof. *Recall that the wind is assumed to be coming from the north. Let be the straight line motion starting from with heading angle . Then there always exists a horizontal line (i.e., ) intersecting with for any point () satisfying in the plane. By construction, a clockwise oriented circle of radius is tangent to and to , and being the points of tangency. As can be seen from Figure 10(a), is located in the plane at (), where can be derived geometrically by . Defining the final heading (which is also the slope of ) as so that the heading is decreasing from to , a wearing path can be constructed if the end point is located on the left hand side of , which leads to inequality (A.1).

Lemma 3. *A feasible continuous wearing trajectory constituted by , , and (as described in Figure 10(b)) always exists between and if is outside the dead zone and , and if the following inequalities are verified:
*

*Proof. *Under condition (A.2), introduce and let be the straight line going through the point (), with heading angle . intersects with while is built in the same way as in Figure 10(a). Similarly to the proof of Lemma 2, a circle of radius intersects and at points and , respectively.

Lemma 4. *A feasible continuous wearing trajectory constituted by (as described in Figure 11(a)) always exists between and if , and the following inequalities are verified:
*

Lemma 5. *A feasible continuous wearing trajectory constituted by (as described in Figure 11(b)) always exists between and if , and the following inequalities are verified:
*

*Proof. *We will prove both Lemmas 4 and 5 here. To begin with, we need to define coordinate of inequalities (A.3) and (A.4). To do so, and as can be seen in Figure 11, draw a clockwise circle of radius starting from (). Defining the final heading as (), a tangent line with intersects the horizontal line at (), where . For the case where (see Figure 11(a)), is on the line going through , with orientation . The circle with radius intersects and at points and , respectively. is then naturally formed by going forward from to . For the case where (see Figure 11(b)), it is possible to change the initial heading from 0 to by turning around, so that two arcs and three lines are used to create the path. Additionally, the length of is decided upon, which in turn influences the length of .

By symmetry, it is straightforward to derive similar lemmas when and and , with only minor adjustments for expressions of and in equations (A.1)–(A.4). Figures 12 and 13 illustrate how these paths can be constructed for specific initial and final configurations.

It is of course also possible for a sailing vehicle to start with a heading angle to go upwind afterwards. In this case, we can just change the initial configuration to reach an intermediate configuration , where and . Figure 14 shows how to make a path between and intermediate configuration so that previously used techniques represented in Figures 10 and 12 can be used directly with as an initial configuration.

Similarly, for vehicles with a destination point situated downwind (i.e., ), the above lemmas can still be applied to construct paths according to the new initial configuration , provided we first construct a first path from to as shown in Figure 15.

Finally, and similarly again for a destination point situated downwind, going from a heading angle to , as shown in Figure 16 in turns allows to use previous intermediate paths of Figure 15 or Figure 14.

To summarize the above path construction, Table 1 resumes the different conditions and their associated path sequence.

#### References

- E. Yeh and J. Bin, “Fuzzy control for self-steering of a sailboat,” in
*Proceedings of the Singapore International Conference on Intelligent Control and Instrumentation*, vol. 2, pp. 1339–1344, February 1992. - R. Van Aartrijk, C. Tagliola, and P. Adriaans, “Ai on the ocean: the robosail project,” in
*Proceedings of the 15th European Conference on Artificial Intelligence*, 1999. - R. Stelzer, T. Proll, and R. John, “Fuzzy logic control system for autonomous sailboats,” in
*Proceedings of the IEEE International Fuzzy Systems Conference (FUZZY-IEEE '07)*, pp. 1–6, July 2007. View at Publisher · View at Google Scholar - Y. Masuyama, T. Fukasawa, and H. Sasagawa, “Tacking simulation of sailing yachts—numerical integration of equations of motion
and application of neural network technique,” in
*Proceedings of the 12th Chesapeake Sailing Yacht Symposium*, 1995. - K. Nomoto, Y. Masuyama, and A. Sakurai, “Sailing performance of “naniwa-maru,” a full-scale reconstruction of sailing trader of Japanese heritage,” in
*Proceedings of the 15th Chesapeake Sailing Yacht Symposium*, 2001. - J. Keuning, K. Vermeulen, and E. de Ridder, “A generic mathematical model for the maneuvering and tacking of a sailing yacht,” in
*Proceedings of the 17th Chesapeake Sailing Yacht Symposium*, pp. 143–163, March 2005. - C. Xiao and P. Austin, “Yacht modelling and adaptive control,” in
*Proceedings of the IFAC Conference on Manoeuvering and Control of Marine Craft*, 2000. - G. Elkaim and R. Kelbley, “Station keeping and segmented trajectory control of a wind-propelled autonomous catamaran,” in
*Proceedings of the 45th IEEE Conference on Decision and Control*, pp. 2424–2429, December 2006. - J. Jouffroy, “A control strategy for steering an autonomous surface sailing vehicle in a tacking maneuver,” in
*Proceedings of the IEEE International Conference on Systems, Man and Cybernetics (SMC '09)*, pp. 2391–2396, October 2009. View at Publisher · View at Google Scholar - J. Jouffroy, “On steering a sailing ship in a wearing maneuver,” in
*Proceedings of the 8th IFAC International Conference on Manoeuvring and Control of Marine Craft*, 2009. - T. Fossen,
*Marine Control Systems: Guidance, Navigation and Control of Ships, Rigs and Underwater Vehicles*, Marine Cybernetics, 2002. - S. Simakov, C. Kaya, and S. Lucas, “Computations for time-optimal bang-bang control using a lagrangian formulation,” in
*Proceedings of the 15th World Congress of IFAC*, 2002. - G. Lastman, “A shooting method for solving two-point boundary-value problems arising from non-singular bang-bang optimal control problems,”
*International Journal of Control*, vol. 27, no. 4, pp. 513–524, 1978. View at Google Scholar · View at Scopus - S. Belghith, F. Lamnabhi-Lagarrigue, and M.-M. Rosset, “Bang-bang solutions for a class of problems arising in thermal control,” in
*Nonlinear Control and Systems Theory*, M. Fliess and M. Hazewinkel, Eds., Algebraic and Geometric Methods, pp. 623–632, Reidel, Dordrecht, The Netherlands, 1986. View at Google Scholar - L. Xiao and J. Jouffroy, “Reflexions on feedforward control strategies for a class of sailing vehicles,” in
*Proceedings of the 8th IFAC Conference on Control Applications in Marine Systems (CAMS '10)*, September 2010. - L. Xiao and J. Jouffroy, “On path generation and feedforward control for a class of surface sailing vessels,” in
*Proceedings of the 55th International Scientific Colloquium (IWK '10)*, September 2010. - E. Sontag,
*Mathematical Control Theory: Deterministic Finite Dimensional Systems*, Texts in Applied Mathematics, Springer, New York, NY, USA, 2008. - K. Astrom and R. Murray,
*Feedback Systems*, Princeton University Press, Princeton, NJ, USA, 2008. - W. Rugh,
*Linear System Theory*, Prentice-Hall, Englewood Cliffs, NJ, USA, 2nd edition, 1996. - S. Sastry,
*Nonlinear Systems: Analysis, Stability, and Control*, Springer, New York, NY, USA, 1999. - H. Ramirez and S. Agrawal,
*Differentially Flat Systems*, Control Engineering, Marcel Dekker, New York, NY, USA, 2004. - H. Sussmann,
*Nonlinear Controllability and Optimal Control*, Pure and Applied Mathematics, Marcel Dekker, New York, NY, USA, 1990. - A. Singh and J. Hahn, “On the use of empirical gramians for controllability and observability analysis,” in
*Proceedings of the American Control Conference*, pp. 140–146, June 2005. View at Publisher · View at Google Scholar - T. Ionescu and J. Scherpen, “Nonlinear cross gramians and gradient systems,” in
*Proceedings of the 46th IEEE Conference on Decision and Control*, pp. 3745–3750, December 2007. View at Publisher · View at Google Scholar - U. Ascher and R. Russell, “Reformulation of boundary value problems into “standard” form,”
*Society for Industrial and Applied Mathematics Review*, vol. 23, no. 2, pp. 238–254, 1981. View at Google Scholar - R. Stelzer and T. Proll, “Autonomous sailboat navigation for short course racing,”
*Robotics and Autonomous Systems*, vol. 56, no. 7, pp. 604–614, 2008. View at Publisher · View at Google Scholar · View at Scopus - R. Goebel, R. Sanfelice, and A. Teel, “Hybrid dynamical systems,”
*IEEE Control Systems Magazine*, vol. 29, no. 2, pp. 28–93, 2009. View at Publisher · View at Google Scholar · View at Scopus - S. K. Lucas and C. Y. Kaya, “Switching-time computation for bang-bang control laws,” in
*Proceedings of the American Control Conference*, vol. 1, pp. 176–181, June 2001.