plume avoidance maneuver planning using mixed integer ...hohmann.mit.edu/papers/gnc01_milp.pdf4 6 8...
TRANSCRIPT
AIAA-2001-4091
Plume Avoidance Maneuver Planning Using Mixed
Integer Linear Programming
Arthur Richards ∗ Jonathan How † Tom Schouwenaars ‡ Eric Feron §
ABSTRACT
This paper extends a recently-developed path plan-
ning method to account for plume impingement, which
is a key concern for on-orbit rendezvous and forma-
tion flying spacecraft. The approach designs fuel-
optimal trajectories for multiple vehicles using a com-
bination of linear and integer programming. The ve-
hicles are required to move from an initial dynamic
state to a final state without colliding with each
other or firing the thrusters in a way that would hit
another vehicle. This problem is written as a lin-
ear program with mixed integer/linear constraints
that prohibit collisions and plume impingements. A
key benefit of this approach is that the problem
can be readily solved using the AMPL language and
CPLEX optimization software with a Matlab inter-
face. Examples are given of this method applied to
satellite cluster reconfiguration, ISS remote camera
maneuvering and ground vehicle guidance. 1
INTRODUCTION
This paper presents the formulation of a mathemati-
cal program to design the optimal path between two
states for a group of vehicles. The trajectories are
optimized with respect to the amount of fuel used
for a given arrival time. The vehicles are constrained
not to collide with each other or fire their thrusters
toward another vehicle. This latter constraint avoids
plume impingement, a key concern for applications
in which spacecraft work in close proximity. The
plume of gas particles emitted by a thruster may
cause contamination, degradation or damage to sur-
faces. This issue is discussed in Ref. [3] concerning
∗ Space Systems Laboratory, Massachusetts Institute ofTechnology, Cambridge MA 02139, [email protected]
† [email protected]‡ [email protected]§ [email protected] Copyright c° 2001 by the American Institute of
Aeronautics and Astronautics, Inc. All rights reserved.
Mir docking. Ref. [4] discusses the impingement of
shuttle thrusters upon the solar arrays of the In-
ternational Space Station during docking. In this
case, the solar arrays must be designed to withstand
the structural loading caused by the plume. Im-
pingement is also a concern for formation flying of
satellites, which is being investigated for future space
science missions such as separated spacecraft inter-
ferometers and distributed radar systems [19, 18,
10]. In these scenarios, spacecraft separations are
of the order of 100 m and frequent thruster firings
are needed to precisely align the various vehicles.
A classical approach to collision avoidance, es-
pecially in the field of robot motion planning [14],
is the use of potential functions [17, 13]. Other re-
cently developed techniques include approaches such
as randomized algorithms [5, 16]. Path planning
techniques using graph searching and surface cover-
ing [15] were developed earlier. The alternative ap-
proach in this paper uses integer programming. Pre-
vious work [1] has shown that collision avoidance can
be expressed as integer constraints upon the fuel op-
timization, forming a mixed integer/linear program
(MILP). The objective of this paper is to extend that
work to include plume impingement constraints. An
advantage of this approach is that, for a scenario
in which impingement would not normally be ex-
pected, the new constraints will be inactive and the
unconstrained, fuel-optimal design will be returned.
This may not be the case with a more conservative
approach, such as potential functions.
PROBLEM FORMULATION
Because fuel consumption is critical for space mis-
sions, the primary objective of this work is to design
fuel-optimal trajectories. In this case, the arrival
time is fixed and the mathematical program is solved
over that entire time range. The desired final state
(at time step T ) is given, so the cost function for one
1
American Institute of Aeronautics and Astronautics
vehicle is
J =
T−1Xi=0
nuXj=1
|uij | (1)
where uij denotes the jth component of the nu × 1
input vector at the ith time step. Thus the calcu-
lated path is designed to minimize the fuel used for
that specific time range. The extension to the mul-
tiple (K) vehicle case is straightforward. In the case
that the arrival times of all vehicles are the same,
the cost function becomes
J =
KXp=1
T−1Xi=0
nuXj=1
|up ij | (2)
where up ij denotes the jth component of the input
vector of the pth vehicle at the ith time step. This
piecewise linear function can be converted to a linear
function using slack variables and linear inequality
constraints [1]. Note that it is also possible to op-
timize the trajectories using different arrival times
for each vehicle. The discretized dynamics of the
system of vehicles are assumed to be given by
xp i+1 = Axp i +Bup i (3)
where xp i is the state vector for the pth vehicle at
the ith time step. This relation and the initial and
final state requirements are constraints on the basic
problem. Ref. [11] investigates including disturbance
models as part of the system dynamics. Without any
form of avoidance, the problem statement is:
minu,x
J = minu,x
KXp=1
T−1Xi=0
nuXj=1
|up ij | (4)
subject to (∀p ∈ [1 . . .K] and ∀i ∈ [1 . . . T ])xp i+1 = Axp i + Bup i
with xp 0 = xp0 and xpT = xpf(5)
where xp0 and xpf are the starting and finishing
states respectively for the pth vehicle.
ADDITIONAL CONSTRAINTS
Multiple Vehicles: Collision Avoidance
To safely avoid collision, every pair of vehicles is re-
quired to have a minimum separation in at least one
direction at each time step. This is equivalent to
enforcing a square exclusion region around each ve-
hicle. Considering planar motion for simplicity of
exposition, denote the positions of vehicles p and q
at time step i as (xip , yip ) and ( xiq , yiq ) respec-
tively. Let the safety distance be denoted by d. The
necessary constraints can then be written as follows:
∀i ∈ [1 . . . T ] : ∀p, q | q > p :|xip − xiq| ≥ d or |yip − yiq| ≥ d (6)
The condition q > p avoids duplication of the con-
straints on the positions. Eliminating the absolute
values transforms the constraints into
∀i ∈ [1 . . . T ] : ∀p, q | q > p :xip − xiq ≥ d or xiq − xip ≥ d
or yip − yiq ≥ d or yiq − yip ≥ d(7)
These constraints are more usefully expressed in “AND”
form by introducing binary variables [6, 7], forming
the following mixed integer/linear constraints
∀i ∈ [1 . . . T ] : ∀ p, q | q > p :xip − xiq ≥ d−Mbipq1
and xiq − xip ≥ d−Mbipq2and yip − yiq ≥ d−Mbipq3and yiq − yip ≥ d−Mbipq4and
4Xk=1
bipqk ≤ 3
(8)
whereM is a large arbitrary positive number, greater
than any separation that might occur in the prob-
lem, and bipqk are a set of binary variables (0 or 1)
that are used to relax each constraint. In particular,
if the corresponding binary variable bipqk = 1, then
the kth original constraint in Eqn. 7 is relaxed at the
ith time step. The last and-constraint ensures that
at least one of the original or -constraints is satisfied,
which implies that the vehicles are a safe distance
apart. Eq. 8 becomes an additional constraint on
the existing problem, Eqs. 4 and 5. The binaries
bipqk become additional variables for the optimiza-
tion.
Multiple Vehicles: Plume Impingement
This formulation can be extended to account for
plume impingement. In this case, the thruster fir-
ings for the vehicle maneuvers are restricted to avoid
impinging on the other vehicles in the fleet. The cur-
rent approach uses a simple model of a plume which
extends in a discrete direction from the vehicle and
fills a rectangle (for the 2D case). As a result, there
is an additional exclusion box that must be enforced
2
American Institute of Aeronautics and Astronautics
−1 −0.5 0 0.5 1 1.5 2 2.5 3
0
2
4
6
8
10
12
Vehicle #1
Plume box for +y thrust
Vehicle #2 Hit
Vehicle #3 Clear
Vehicle # 4 Clear
X direction
Y d
irect
ion
Fig. 1: Plume associated with a thruster firing in
+y-direction (−y thrust). Rectangle extends length5 (PL) in direction of the thruster firing, and ±0.3in the cross direction (PW)
for all other vehicles in the fleet whenever a thruster
firing occurs. Figure 1 shows the modeled impinge-
ment region for a thruster firing in the +y-direction
from vehicle #1.
For the plume direction shown in Figure 1 and a
typical pair of vehicles p and q as described in the
previous section, the constraints to avoid plume im-
pingement by vehicle p on vehicle q (in “OR” form)
are:
∀i ∈ [0 . . . T ] : ∀p, q | q 6= p : uypi ≥ 0
or xip − xiq ≥ PWor xiq − xip ≥ PWor yip − yiq ≥ 0
or yiq − yip ≥ PL
(9)
where PW is the plume half-width and PL is the
plume length, as shown in Figure 1.
These conditions represent the five ways to avoid
plume impingement. The thrust uypi from the pth
vehicle in the y-direction must be negative for the
plume in Figure 1 to occur. So, one way to avoid
this plume is for the y-direction thrust to be pos-
itive or zero, hence the first condition. The other
four represent the four sides of the exclusion box.
Relating the equations to Figure 1, p is 1, the firing
vehicle, and q may be 2, 3 or 4. Vehicle #3 is to one
side of the box, thus satisfying the third of the five
conditions. Vehicle #4 is beyond the plume length,
satisfying the final condition. Of course, similar con-
straints can be written for the other three directions.
These constraints can also be converted to the
more convenient “AND” form using binary variables:
∀i ∈ [0 . . . T ] : ∀p, q | q 6= p : uyqi ≥ −Mb+yipq1and xip − xiq ≥ PW −Mb+yipq2and xiq − xip ≥ PW −Mb+yipq3and yip − yiq ≥ −Mb+yipq4and yiq − yip ≥ PL−Mb+yipq5and
5Xk=1
b+yipqk ≤ 4
(10)
The binary variables b+yipqk perform the avoidance
logic for the plume from the pth vehicle in the +y-
direction impinging on the qth vehicle at time step
i. These constraints can be written to account for
each thruster direction (±x and ±y for the 2D case)on each vehicle at each time step. Note that the ap-
proach also easily extends to three-dimensions. The
resulting form is then similar to the set of linear con-
straints in Eqs. 8. The new constraints, Eq. 10, are
appended to the problem so far (Eqs. 4, 5 and 8).
The new binary variables b+yipqk become additional
variables for the optimization.
SOFTWARE
The global optimization problem is readily solved by
a mixed integer program solver implemented in the
CPLEX software package [2]. Suitable input formats
for CPLEX are awkward to work with, but a con-
venient and intuitive interface is available through
the AMPL modeling language. We have therefore
used the AMPL-language [8] to formulate the path
planning problem.
Implementing the constraints in AMPL is straight-
forward, requiring minimal translation from the form
shown here. The variables, cost function and con-
straints are defined in a model file, while the pa-
rameter values are in a separate data file. There-
fore, changes to the problem may be made with-
out rebuilding the constraint expressions. AMPL
combines the model and data to generate a suitable
problem file and invokes CPLEX to find the solution.
In our implementation, the complete process of
forming and solving a problem is invoked by a Mat-
lab script. System matrices and other parameters
are generated within Matlab and written to an AMPL
data file. AMPL is then called from Matlab to pro-
cess another script, selecting the appropriate model
3
American Institute of Aeronautics and Astronautics
and data files, calling CPLEX and then writing the
resulting solution to an output data file. Finally, the
solution data is read back into Matlab for plotting.
The Matlab interface offers more flexible generation
of parameters and allows us to embed MILP opti-
mization into a flexible programming environment.
COMPUTATION ISSUES
This formulation can generate problems with very
high numbers of binary variables. This in turn can
lead to long computation times for some problems.
This section discusses some strategies for reducing
the computation time. The first and simplest of
these methods is to terminate the optimization search
prematurely, returning an acceptable, feasible but
possibly sub-optimal trajectory. CPLEX provides
several options for this purpose. The search can
be stopped when the best integer solution found is
within a specified tolerance of the corresponding re-
laxed LP solution, which is a lower bound on the
optimal solution. Also, a time limit for computation
can be specified, and if no other stopping criterion
is met within that time, the best result found will
be returned.
Other strategies make use of our knowledge of
the solution. For multiple free-flying vehicles, we
expect the optimal control to be a “bang-off-bang”
trajectory. During the coasting phase, when there is
no firing, the plume impingement constraints will be
inactive. Therefore, when designing the trajectory,
we might apply the plume constraints only at the
beginning and end of the maneuver. It is then nec-
essary to post-analyze the design to ensure that no
impingements occur where the constraints are not
applied.
For closely-packed formations or vehicles moving
around large obstacles, the collision and plume con-
straints are always active and the “bang-off-bang”
assumption is no longer valid. In this case, we re-
duce the number of binary variables by using the
same binary variables for small groups of adjacent
time steps. In Eq. 8, the binary variables force the
vehicle to obey one of the or -constraints in Eq. 7
at each point. In the final design, it is likely that
successive time steps will obey the same one of the
or -conditions and therefore have the same binary
variable settings. We therefore group the time steps
such that small groups of adjacent steps ‘share’ the
same binary variables. With this modification, ev-
ery member of a group must obey the same sub-
condition from Eq. 7. The original constraints are
still enforced at every step. There may be a cost
penalty due to the reduced decision space but the
computational complexity will be greatly reduced.
EXAMPLES
2-D Vehicle Motion
The first example considers a simple two dimensional
system with three vehicles, each modeled as a mass
(m = 5) with thrusters that act in the ±x- and ±y-directions. The configuration was chosen to lead to
significant impingement and demonstrate the effect
of adding the new constraints. The following move-
ments are required:
1. Vehicle #1 from (0,−8) to (1, 8)2. Vehicle #2 from (0,−6) to (1.5, 8)3. Vehicle #3 from (0,−4) to (1.5, 8.5)
Initially, the vehicles are positioned along a line in
the y-direction. Therefore, for vehicles #2 and #3
to apply thrust upwards would lead to impingement
on the vehicle below. The dynamics were discretized
using a time step of 1 second and the thruster limits
were set at 1. The collision avoidance was included
in both optimizations, with the minimum separation
equal to 0.1. The maneuvers were designed to last
31 seconds. The plume was assumed to be 5 units
in length (PL = 5) and 0.6 units wide (PW = 0.3).
Figure 2 shows the optimized trajectories with-
out the plume impingement constraints. The sym-
bols mark the vehicle locations at each time step,
and the corresponding thruster firings are shown by
lines (line length scales with thrust size). When
a plume impingement occurs, the position of the
vehicle firing the thruster is marked with •. Fig-ure 4 gives more detail on the first and last two
time points, showing the plumes associated with the
thruster firings.
As expected from the initial alignment, there is
a significant number of impingements. Apart from
slight deviations to avoid collision, the vehicles fol-
low straight line trajectories using “bang-off-bang”
control inputs. All three vehicles apply upward thrust
at the start of the maneuver. This causes vehicle #2
to impinge upon vehicle #1 and vehicle #3 to im-
pinge upon both of the other two, seen in both the
4
American Institute of Aeronautics and Astronautics
Table 1: Fuel summary for 2D example.
Plume
constraint
3Xj=1
30Xk=0
|uxkj |3Xj=1
30Xk=0
|uykj |
No 1.38 15.56
Yes 3.00 17.64
first two time steps. At the penultimate time step,
the y-direction braking thrust from vehicle #2 im-
pinges on vehicle #3. Then on the final step, the
x-direction firing plume from vehicle #1 hits vehi-
cle #2.
The optimization was repeated using the addi-
tional impingement constraints. In this case, a sig-
nificantly different set of trajectories were designed
to avoid the impingement problems at the beginning
and end of the maneuvers. The overall maneuver is
shown in Figure 3, with the details in Figure 5.
To avoid the impingements caused by the initial
y-direction firing, the vehicles first fire to move apart
in the x-direction, seen on the first time step. Vehi-
cle #1 initially moves in the −x-direction, which isopposite to the desired maneuver but has the bene-
fit of moving vehicle #1 out from below vehicles #2
and #3. By the third step, vehicle #2 can fire in the
+y-direction without hitting #1. At the fifth step,
vehicle #3 is also able to fire clear of #1. Note that
vehicle #1 is then moving along the very edge of the
exclusion region from the plume of vehicle #3.
The situation is also very interesting at the end
of the maneuver. Vehicle #2 arrives first so that it
can fire (in the +y-direction) to stop without hitting
vehicle #3 (t=28). Vehicle #1 then fires early in
the +x-direction to avoid hitting vehicle #2 (t=29).
Similarly, vehicle #3 does not fire in the +x-direction
until after it has passed vehicle #2 (t=30).
Table 1 gives the fuel used for the two maneu-
vers, totaled for all vehicles but divided into x- and
y-directions of firing. As would be expected, the fuel
use increases for the maneuver designed with the
plume impingement. In the y-direction, the increase
is only 13%, but in the x-direction, the increase is
by more than a factor of two. Thus for this diffi-
cult combination of initial and final configurations,
the fuel used increases by approximately 21% when
the vehicles maneuver in a way that avoids plume
impingement.
Table 2: Computation for 2-D Example
Time (secs)
No plume 10
constraint
With plume 350
constraint
Plume constraint 225
at start and end only
Table 2 gives typical computation times for this
example. The times quoted are for the solution to
the optimization part only, running on a SUN Ultra5
workstation. These demonstrate the additional com-
plexity added by the plume impingement constraints
and the large number of associated binary variables.
Since the trajectories designed here have “bang-
off-bang” controls, we can use the technique described
in the ‘Computation Issues’ section of applying the
plume constraints at the start and end of the ma-
neuver only. The third row of results in Table 2
shows the results when these constraints were en-
forced only on the first twelve and last eight of the
31 total time steps in the maneuver. It designed the
same trajectory as the fully-constrained version but
in less time, due to the reduced number of binary
variables in the problem.
Orbital Maneuver
In this example, three identical spacecraft of mass
30kg are initially separated along a line in-track.
They are required to reconfigure into a triangle in
the plane of the orbit in 9 minutes, one tenth of
a 90 minute orbit. The dynamics are the three-
dimensional linearized Hill’s Equations [12] for space-
craft in nearly circular orbits
x = 2ny + 3n2x+ fxy = −2nx+ fyz = −n2z + fz
(11)
The x-coordinate is in the radial direction, the y-
coordinate is in the in-track direction and the z-
component is in the out-of-track direction. These
equations of relative motion can be written in the
5
American Institute of Aeronautics and Astronautics
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12Without Plume Constraints
Fig. 2: Full 3-vehicle planar reconfiguration maneu-
ver optimized without including the plume impinge-
ment constraints. Location of Vehicle #1 is given by
◦, vehicle #2 by 2, and vehicle #3 by 3.
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12With Plume Constraints
Fig. 3: Full 3-vehicle planar reconfiguration maneu-
ver optimized including the plume impingement con-
straints. Location of Vehicle #1 is given by ◦, vehicle#2 by 2, and vehicle #3 by 3.
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
1
X direction
Y d
irect
ion
Without Plume Constraints
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
29
X direction
Y d
irect
ion
Without Plume Constraints
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
2
X direction
Y d
irect
ion
Without Plume Constraints
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
30
X direction
Y d
irect
ion
Without Plume Constraints
Figure 4: Time-steps from the 3-vehicle planar reconfiguration maneuver optimized without theplume impingement constraints. Location of Vehicle #1 is given by ◦, vehicle #2 by 2,and vehicle #3 by 3.
6
American Institute of Aeronautics and Astronautics
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
1
X direction
Y d
irect
ion
With Plume Constraints
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
3
X direction
Y d
irect
ion
With Plume Constraints (t=3)
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
5
X direction
Y d
irect
ion
With Plume Constraints
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
28
X direction
Y d
irect
ion
With Plume Constraints (t=28)
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
29
X direction
Y d
irect
ion
With Plume Constraints
−1 −0.5 0 0.5 1 1.5 2 2.5−10
−8
−6
−4
−2
0
2
4
6
8
10
12
30
X direction
Y d
irect
ion
With Plume Constraints
Figure 5: Six time-steps from the three-vehicle planar reconfiguration maneuver optimized includ-ing the plume impingement constraints. The location of Vehicle #1 is given by the ◦,vehicle #2 by the 2, and vehicle #3 by the 3.
7
American Institute of Aeronautics and Astronautics
−50 0 50−300
−250
−200
−150
−100
−50
0
50
100
150
radial
intr
ack
With PI Constraints
−50 0 50−300
−250
−200
−150
−100
−50
0
50
100
150
radial
intr
ack
No PI Constraints
Fig. 6: Reconfiguration Maneuver Without Plume
Constraints (Left) and With Plume Constraints
(Right). The location of Vehicle #1 is given by the
4, vehicle #2 by the 2, and vehicle #3 by the ◦.state space form
x
y
z
x
y
z
=
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
3n2 0 0 0 2n 0
0 0 0 −2n 0 0
0 0 −n2 0 0 0
x
y
z
x
y
z
+
0 0 0
0 0 0
0 0 0
1 0 0
0 1 0
0 0 1
fxfyfz
(12)
This can then be discretized into the form of Eq. 3
and used as the system constraint for the optimiza-
tion.
Each spacecraft has thrusters providing up to
0.2N in each direction. The plume avoidance regions
for the thrusters are 50m wide and extend 120m from
the spacecraft. Collision avoidance is also enforced
with a safety distance of 10m. The problem was
discretized into 20 time steps.
The left hand plot in Fig. 6 shows the trajectory
design ignoring plume impingement. Note that the
designed trajectories lie entirely within the orbital
plane, even though the full 3-D model was included
in the problem. The time available for the maneu-
ver is relatively short, so substantial in-track firing is
required. This leads to considerable plume impinge-
ment at the beginning and end of the maneuver, as
seen in the previous example.
The right hand plot shows the redesigned trajec-
tories to prevent plume impingement. Considerable
deviations from the previous case are evident. Ve-
hicle #1 moves slowly at first, to allow the vehicles
beneath to escape its firing region, before firing in-
track to move toward its target. Vehicle #2 moves
in the opposite direction, to avoid firing on #3 and
being fired upon by #1, before turning towards its
destination. Vehicle 3 is the only one free to fire
in-track from the beginning. It moves quickly away,
but has to approach its target point in the radial di-
rection so its braking thrust does not impinge upon
the other vehicles. The fuel required for the maneu-
ver avoiding impingement is equivalent to a ∆V of
7.097 m/s, compared with 5.033 m/s for the design
not considering impingement.
International Space Station Remote Camera
This problem involves a microsatellite being used
for external inspection of the ISS. The satellite is
required to move between specified start and end
points on opposite sides of the station without col-
liding with the structure or firing its thrusters at the
station. The collision avoidance part of this problem
was tackled in [20] using potential functions.
The dynamics are the Hill’s equations for a 90
minute orbit. The camera satellite is modeled as a
mass of 5kg with thrusters giving up to 1mN in each
direction. The ISS is modeled as a collection of fixed
obstacles as seen in Fig. 7. The plume constraints in
this problem are a modified form of Eq. 10 that pre-
vents impingement upon fixed obstacles instead of
other vehicles. The maneuver lasts for 4000 seconds
and is discretized into 40 time steps.
This problem was first solved with collision avoid-
ance constraints but ignoring plume impingement.
The designed trajectory can be seen in Fig. 7. The
final few steps show a braking thrust causing a plume
impingement. The total fuel use as ∆V is 0.236 m/s.
This result was found in 8.0 seconds of computation
time using a 1GHz PC with 256MB RAM.
Fig. 8 shows a close up of the trajectory redesigned
to prevent plume impingement showing just the fi-
nal stages. Since the final position is in a corner
formed by two adjacent modules, the camera satel-
8
American Institute of Aeronautics and Astronautics
Fig. 7: ISS Camera Maneuver without Plume Con-
straints
Fig. 8: Final Stages of ISS Camera Maneuver with
Plume Constraints
lite must approach from the side to prevent its brak-
ing thrust from impinging on the station. The figure
shows the satellite making the necessary adjustment
to its course by firing while still clear of the station,
and its final approach leaves it requiring a braking
thrust in the only available direction. The total fuel
use as ∆V for this maneuver is 0.492 m/s. This
is over twice the amount needed for collision avoid-
ance only, but the extra firing is needed to achieve
the final motion direction.
The complexity of this example makes it imprac-
tical to find the true optimal solution. We have
used the search termination techniques described in
the ‘Computation Issues’ section, limiting compu-
tation time to half an hour and specifying a toler-
ance for sub-optimal trajectory design. The result
shown in Fig. 8 was returned after the time limit was
Time step Computation Fuel cost
grouping time (s) ∆V (m/s)
No PI 8 0.236
No grouping 1800 0.492
Groups of 2 1800 0.396
Groups of 3 587 0.324
Groups of 4 682 0.344
reached. It is not possible to simply reduce the num-
ber of time steps: too long a step, and the satellite
may be able to ‘jump through’ some of the thin-
ner panel obstacles. Using 40 time steps avoids this
problem, but leads to very high numbers of binary
variables. To solve for collision avoidance alone in-
volves roughly 1200 binary variables, while adding
plume constraints gives a total of some 9600 binary
variables in the problem.
Table 2 shows the results of the time step group-
ing technique discussed earlier. With groups of two
steps, the solver is still stopped by the time limit af-
ter half an hour. However, with the same computa-
tion time on a reduced search space, a lower fuel cost
is returned. With groups of three steps, a solution is
found to meet the sub-optimality criterion after just
under ten minutes. Again, the conservatism in the
result is offset by the more complete coverage of the
now-reduced search space. Increasing the grouping
to four adjacent steps causes an increase in both fuel
and solution time. The effect of the longer groups
is now apparent: there is a fuel penalty and it takes
longer to find feasible solutions. We conclude that
using groups of three adjacent time steps is the best
strategy for this problem.
CONCLUSIONS
This paper presents a new approach to trajectory
planning for multiple vehicles that avoids collisions
and plume impingement. A mathematical program-
ming formulation has been proposed to express collision-
and plume-avoidance as mixed integer/linear con-
straints upon a fuel optimization problem. The po-
tential of the method has been shown in three ex-
amples. A ground vehicle guidance problem demon-
strated the effect of the constraints and the efficiency
of the designed trajectories. The example of recon-
figuring a satellite cluster involved more complicated
dynamics. Finally, the method was applied to ma-
9
American Institute of Aeronautics and Astronautics
neuvering a remote camera around the ISS. Future
work will involve more complex systems and ren-
dezvous applications. The possibility of allowing a
limited occurrence of impingement will be investi-
gated. Finally, we will consider more complex plume
models for the three-dimensional cases.
ACKNOWLEDGMENTS
The research was funded in part under Air Force
grant # F49620-99-1-0095 and NASA GSFC grant
#NAG5-6233-0005.
References
[1] T. Schouwenaars, B. DeMoor, E. Feron and
J. How, “Mixed integer programming for safe
multi-vehicle cooperative path planning,” to
appear at the 2001 ECC.
[2] ILOG CPLEX User’s guide. ILOG, 1999.
[3] http://www.mcs.net/˜rusaerog/pc/9-18-
97PC.html
[4] P. T. Spehar and T. Q. Le “Automating an Or-
biter Approach to Space Station Freedom to
Minimize Plume Impingement” NASA Auto-
mated Rendezvous and Capture Review 1991.
[5] J. Barraquand, L.E. Kavraki, J.C. Latombe,
T.Y. Li, R. Motwani, and P. Raghavan, “A
random sampling scheme for path planning”
International Journal of Robotics Research,
16(6):759-774, 1997.
[6] C. A. Floudas, “Nonlinear and Mixed-Integer
Programming — Fundamentals and Applica-
tions,” Oxford University Press, 1995.
[7] H. P. Williams and S. C. Brailsford, “Compu-
tational Logic and Integer Programming,” in
Advances in Linear and Integer Programming,
Editor J. E. Beasley, Clarendon Press, Oxford,
1996, pp. 249—281.
[8] R. Fourer, D. M. Gay, and B. W. Kernighar,
AMPL, A modeling language for mathematical
programming, The Scientific Press, 1993.
[9] D. Hsu, J.-C. Latombe, and R. Motwani, “Path
planning in expansive configuration spaces,” In-
ternational J. of Comp. Geom. and Applica-
tions, 1996.
[10] G. Inalhan, F. D. Busse, and J. P. How. “Precise
formation flying control of multiple spacecraft
using carrier-phase differential GPS,” AAS 00-
109, 2000.
[11] M. Tillerson, G. Inalhan, and J. How, “Coor-
dination and Control of Distributed Spacecraft
Systems Using Convex Optimization Tech-
niques,” submitted to the International Journal
of Robust and Nonlinear Control, Nov. 2000.
[12] M. H. Kaplan, Modern Spacecraft Dynamics
and Control Wiley, 1976.
[13] O. Khatib “Real-time obstacle avoidance for
manipulators and mobile robots,” International
Journal of Robotics Research, 1(5):90—98, 1986.
[14] J.-C. Latombe, Robot Motion Planning. Kluwer
Academic Publishers, 1991.
[15] T. Lozano-Perez, Spatial planning with poly-
hedral models. MIT Ph.D. Thesis (E.E.) 1980,
June 1980.
[16] K. Marti and S. Qu. “Path planning for robots
by stochastic optimization methods.” Int. Jour-
nal of Intelligent and Robotic Systems, Septem-
ber 1997.
[17] C. R. McInnes, “Potential function methods for
autonomous spacecraft guidance and control.”
AAS 95-447, 1995.
[18] A. Robertson, G. Inalhan, and J. P. How,
“Formation Control Strategies for a Separated
Spacecraft Interferometer,” in Proc. of 1999
ACC, (San Diego, CA), June 1999.
[19] A. Robertson, G. Inalhan, and J. P. How,
“Spacecraft Formation Flying Control Design
for the Orion Mission,” in Proceedings of
AIAA/GNC, August 1999.
[20] A. B. Roger and C. R. McInnes, “Safety Con-
strained Free-Flyer Path Planning at the Inter-
national Space Station”, Journal of Guidance
Control and Dynamics, Vol. 23, No. 6, pp971-
979, Dec. 2000
10
American Institute of Aeronautics and Astronautics