AIAA-2001-4091 Plume Avoidance Maneuver Planning Using Mixed Integer Linear Programming Arthur Richards ∗ Jonathan How † ABSTRACT This paper extends a recently-developed path planning method to account for plume impingement, which is a key concern for on-orbit rendezvous and formation flying spacecraft. The approach designs fueloptimal trajectories for multiple vehicles using a combination of linear and integer programming. The vehicles 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 linear 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 interface. 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 mathematical 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 surfaces. This issue is discussed in Ref. [3] concerning ∗ Space Systems Laboratory, Massachusetts Institute of Technology, Cambridge MA 02139, arthurr@mit.edu † jhow@mit.edu ‡ tschouwe@esat.kuleuven.ac.be § feron@mit.edu 1 Copyright ° c 2001 by the American Institute of Aeronautics and Astronautics, Inc. All rights reserved. Tom Schouwenaars ‡ Eric Feron § Mir docking. Ref. [4] discusses the impingement of shuttle thrusters upon the solar arrays of the International Space Station during docking. In this case, the solar arrays must be designed to withstand the structural loading caused by the plume. Impingement is also a concern for formation flying of satellites, which is being investigated for future space science missions such as separated spacecraft interferometers 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, especially in the field of robot motion planning [14], is the use of potential functions [17, 13]. Other recently developed techniques include approaches such as randomized algorithms [5, 16]. Path planning techniques using graph searching and surface covering [15] were developed earlier. The alternative approach in this paper uses integer programming. Previous work [1] has shown that collision avoidance can be expressed as integer constraints upon the fuel optimization, 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 expected, 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 missions, 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= nu T −1 X X i=0 j=1 |uij | (1) where uij denotes the j th component of the nu × 1 input vector at the ith time step. Thus the calculated path is designed to minimize the fuel used for that specific time range. The extension to the multiple (K) vehicle case is straightforward. In the case that the arrival times of all vehicles are the same, the cost function becomes J= nu K T −1 X X X p=1 i=0 j=1 |up ij | u,x u,x nu K T −1 X X X p=1 i=0 j=1 |up ij | (4) subject to (∀p ∈ [1 . . . K] and ∀i ∈ [1 . . . T ]) with xp 0 xp i+1 = xp0 = Axp i + Bup i and xp T = 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 required 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 vehicle. Considering planar motion for simplicity of (6) The condition q > p avoids duplication of the constraints 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 and and and (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: min J = min ∀i ∈ [1 . . . T ] : ∀p, q | q > p : |xip − xiq | ≥ d or |yip − yiq | ≥ d (2) where up ij denotes the j th 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 optimize 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 exposition, denote the positions of vehicles p and q at time step i as ( xip , yip ) and ( xiq , yiq ) respectively. Let the safety distance be denoted by d. The necessary constraints can then be written as follows: and ∀i ∈ [1 . . . T ] : xip − xiq xiq − xip yip − yiq yiq − yip 4 X bipqk k=1 ∀ ≥ ≥ ≥ ≥ p, q | q > p : d − M bipq1 d − M bipq2 d − M bipq3 d − M bipq4 ≤ 3 (8) where M is a large arbitrary positive number, greater than any separation that might occur in the problem, 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 k th 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 optimization. Multiple Vehicles: Plume Impingement This formulation can be extended to account for plume impingement. In this case, the thruster firings for the vehicle maneuvers are restricted to avoid impinging on the other vehicles in the fleet. The current 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 These constraints can also be converted to the more convenient “AND” form using binary variables: 12 10 Y direction ∀i ∈ [0 . . . T ] : ∀p, q | q 6= p : uy qi ≥ −M b̂+ yipq1 and xip − xiq ≥ PW − M b̂+ yipq2 and xiq − xip ≥ PW − M b̂+ yipq3 and yip − yiq ≥ −M b̂+ (10) yipq4 and yiq − yip ≥ PL − M b̂+ yipq5 5 X + and b̂yipqk ≤ 4 Vehicle # 4 Clear 8 Plume box for +y thrust 6 Vehicle #2 Hit 4 2 k=1 Vehicle #3 Clear Vehicle #1 0 −1 −0.5 0 0.5 1 1.5 2 2.5 3 X direction Fig. 1: Plume associated with a thruster firing in +y-direction (−y thrust). Rectangle extends length 5 (PL) in direction of the thruster firing, and ±0.3 in the cross direction (PW) for all other vehicles in the fleet whenever a thruster firing occurs. Figure 1 shows the modeled impingement 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 impingement by vehicle p on vehicle q (in “OR” form) are: ∀i ∈ [0 . . . T ] : ∀p, q | q 6= p : uy pi ≥ 0 or xip − xiq ≥ PW or xiq − xip ≥ PW or 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 uy pi 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 positive 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 constraints can be written for the other three directions. The binary variables b̂+ yipqk perform the avoidance logic for the plume from the pth vehicle in the +ydirection impinging on the q th 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 approach also easily extends to three-dimensions. The resulting form is then similar to the set of linear constraints 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 convenient 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 straightforward, requiring minimal translation from the form shown here. The variables, cost function and constraints are defined in a model file, while the parameter values are in a separate data file. Therefore, changes to the problem may be made without 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 Matlab script. System matrices and other parameters are generated within Matlab and written to an AMPL data file. AMPL is then called from Matlab to process 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 optimization into a flexible programming environment. same binary variables. With this modification, every member of a group must obey the same subcondition 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. COMPUTATION ISSUES EXAMPLES 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 relaxed 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 necessary 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 constraints are always active and the “bang-off-bang” assumption is no longer valid. In this case, we reduce 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 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 ±ydirections. The configuration was chosen to lead to significant impingement and demonstrate the effect of adding the new constraints. The following movements 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 without the plume impingement constraints. The symbols 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 •. Figure 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 follow 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 impinge 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 No Yes 30 3 X X j=1 k=0 |uxkj | 1.38 3.00 30 3 X X j=1 k=0 |uy kj | 15.56 17.64 first two time steps. At the penultimate time step, the y-direction braking thrust from vehicle #2 impinges on vehicle #3. Then on the final step, the x-direction firing plume from vehicle #1 hits vehicle #2. The optimization was repeated using the additional impingement constraints. In this case, a significantly 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. Vehicle #1 initially moves in the −x-direction, which is opposite to the desired maneuver but has the benefit 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 maneuvers, 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 difficult 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 No plume constraint With plume constraint Plume constraint at start and end only Time (secs) 10 350 225 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 complexity added by the plume impingement constraints and the large number of associated binary variables. Since the trajectories designed here have “bangoff-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 maneuver only. The third row of results in Table 2 shows the results when these constraints were enforced 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 threedimensional linearized Hill’s Equations [12] for spacecraft in nearly circular orbits ẍ ÿ z̈ = 2nẏ + 3n2 x + fx = −2nẋ + fy = −n2 z + fz The x-coordinate is in the radial direction, coordinate is in the in-track direction and component is in the out-of-track direction. equations of relative motion can be written 5 American Institute of Aeronautics and Astronautics (11) the ythe zThese in the Without Plume Constraints With Plume Constraints 12 12 10 10 8 8 6 6 4 4 2 2 0 0 −2 −2 −4 −4 −6 −6 −8 −8 −10 −1 −10 −1 −0.5 0 0.5 1 1.5 2 2.5 Fig. 2: Full 3-vehicle planar reconfiguration maneuver optimized without including the plume impingement constraints. Location of Vehicle #1 is given by ◦, vehicle #2 by 2, and vehicle #3 by 3. −0.5 Without Plume Constraints 1 1.5 2 2.5 Without Plume Constraints 12 1 10 6 6 4 4 Y direction 8 2 0 2 0 −2 −2 −4 −4 −6 −6 −8 −8 −0.5 0 0.5 1 1.5 2 10 8 −10 −1 2 −10 −1 2.5 −0.5 0 X direction 0.5 1 1.5 2 2.5 2 2.5 X direction Without Plume Constraints Without Plume Constraints 12 12 29 10 8 6 6 4 4 2 0 2 0 −2 −2 −4 −4 −6 −6 −8 −8 −10 −1 −0.5 0 0.5 1 X direction 1.5 30 10 8 Y direction Y direction 0.5 Fig. 3: Full 3-vehicle planar reconfiguration maneuver optimized including the plume impingement constraints. Location of Vehicle #1 is given by ◦, vehicle #2 by 2, and vehicle #3 by 3. 12 Y direction 0 2 2.5 −10 −1 −0.5 0 0.5 1 1.5 X direction Figure 4: Time-steps from the 3-vehicle planar reconfiguration maneuver optimized without the plume 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 With Plume Constraints With Plume Constraints (t=3) 12 12 1 8 6 6 4 4 2 0 2 0 −2 −2 −4 −4 −6 −6 −8 −8 −10 −1 −0.5 0 0.5 1 1.5 3 10 8 Y direction Y direction 10 2 −10 −1 2.5 −0.5 0 X direction With Plume Constraints 1.5 2 2.5 2 2.5 12 5 10 8 8 6 6 4 4 2 0 2 0 −2 −2 −4 −4 −6 −6 −8 −8 −10 −1 −0.5 0 0.5 1 1.5 28 10 Y direction Y direction 1 With Plume Constraints (t=28) 12 2 −10 −1 2.5 −0.5 0 X direction 0.5 1 1.5 X direction With Plume Constraints With Plume Constraints 12 12 29 10 8 8 6 6 4 4 2 0 2 0 −2 −2 −4 −4 −6 −6 −8 −8 −10 −1 −0.5 0 0.5 1 X direction 1.5 30 10 Y direction Y direction 0.5 X direction 2 2.5 −10 −1 −0.5 0 0.5 1 1.5 2 X direction 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 2.5 100 100 50 50 0 0 −50 −50 −100 −100 −150 −150 −200 −200 −250 −250 −300 −50 ment at the beginning and end of the maneuver, as seen in the previous example. With PI Constraints 150 intrack intrack No PI Constraints 150 0 radial −300 −50 50 0 radial 50 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 ẋ 0 ẏ 0 ż 0 = ẍ 3n2 ÿ 0 0 z̈ 0 0 0 + 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 −n2 0 0 0 0 0 1 1 0 0 1 0 0 0 2n −2n 0 0 0 fx fy fz 0 0 1 0 0 0 x y z ẋ ẏ ż The right hand plot shows the redesigned trajectories to prevent plume impingement. Considerable deviations from the previous case are evident. Vehicle #1 moves slowly at first, to allow the vehicles beneath to escape its firing region, before firing intrack 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 direction so its braking thrust does not impinge upon the other vehicles. The fuel required for the maneuver 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 colliding with the structure or firing its thrusters at the station. The collision avoidance part of this problem was tackled in [20] using potential functions. (12) 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 prevents impingement upon fixed obstacles instead of other vehicles. The maneuver lasts for 4000 seconds and is discretized into 40 time steps. This can then be discretized into the form of Eq. 3 and used as the system constraint for the optimization. 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 maneuver is relatively short, so substantial in-track firing is required. This leads to considerable plume impinge- This problem was first solved with collision avoidance 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 final stages. Since the final position is in a corner formed by two adjacent modules, the camera satel- 8 American Institute of Aeronautics and Astronautics Time step grouping No PI No grouping Groups of 2 Groups of 3 Groups of 4 Fig. 7: ISS Camera Maneuver without Plume Constraints Fig. 8: Final Stages of ISS Camera Maneuver with Plume Constraints lite must approach from the side to prevent its braking 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 avoidance only, but the extra firing is needed to achieve the final motion direction. The complexity of this example makes it impractical to find the true optimal solution. We have used the search termination techniques described in the ‘Computation Issues’ section, limiting computation time to half an hour and specifying a tolerance for sub-optimal trajectory design. The result shown in Fig. 8 was returned after the time limit was Computation time (s) 8 1800 1800 587 682 Fuel cost ∆V (m/s) 0.236 0.492 0.396 0.324 0.344 reached. It is not possible to simply reduce the number of time steps: too long a step, and the satellite may be able to ‘jump through’ some of the thinner panel obstacles. Using 40 time steps avoids this problem, but leads to very high numbers of binary variables. To solve for collision avoidance alone involves 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 grouping technique discussed earlier. With groups of two steps, the solver is still stopped by the time limit after half an hour. However, with the same computation 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 programming formulation has been proposed to express collisionand plume-avoidance as mixed integer/linear constraints upon a fuel optimization problem. The potential of the method has been shown in three examples. A ground vehicle guidance problem demonstrated the effect of the constraints and the efficiency of the designed trajectories. The example of reconfiguring 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 rendezvous applications. The possibility of allowing a limited occurrence of impingement will be investigated. Finally, we will consider more complex plume models for the three-dimensional cases. using carrier-phase differential GPS,” AAS 00109, 2000. [11] M. Tillerson, G. Inalhan, and J. How, “Coordination and Control of Distributed Spacecraft Systems Using Convex Optimization Techniques,” submitted to the International Journal of Robust and Nonlinear Control, Nov. 2000. ACKNOWLEDGMENTS [12] M. H. Kaplan, Modern Spacecraft Dynamics and Control Wiley, 1976. 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-1897PC.html [4] P. T. Spehar and T. Q. Le “Automating an Orbiter Approach to Space Station Freedom to Minimize Plume Impingement” NASA Automated 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 Applications,” Oxford University Press, 1995. [7] H. P. Williams and S. C. Brailsford, “Computational Logic and Integer Programming,” in Advances in Linear and Integer Programming, Editor J. E. Beasley, Clarendon Press, Oxford, 1996, pp. 249—281. [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 polyhedral 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. Journal of Intelligent and Robotic Systems, September 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 Constrained Free-Flyer Path Planning at the International Space Station”, Journal of Guidance Control and Dynamics, Vol. 23, No. 6, pp971979, Dec. 2000 [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,” International J. of Comp. Geom. and Applications, 1996. [10] G. Inalhan, F. D. Busse, and J. P. How. “Precise formation flying control of multiple spacecraft 10 American Institute of Aeronautics and Astronautics