Abstract:
A method for controlling the maneuvering of an autonomous vehicle in a network having a plurality of autonomous vehicles is provided. The method comprises monitoring the state of the autonomous vehicle. The method also comprises periodically receiving data on the states of a subset of the plurality of autonomous vehicles and periodically determining at least one command to a control loop for the autonomous vehicle based on the monitored state and the data from the subset of the plurality of autonomous vehicles.

Description:
BACKGROUND  
       [0001]     Interest in the formation control of autonomous vehicles has grown significantly over the last years. The main motivation for the increased interest is the wide range of military and civilian applications where formations of Unmanned Air Vehicles (UAV) could provide a low cost and efficient alternative to existing technology. Such applications include Synthetic Aperture Radar (SAR) interferometry, surveillance, damage assessment, reconnaissance, and chemical or biological agent monitoring. One area of current research is the development of control systems and techniques to enable large and tight formations of autonomous vehicles.  
         [0002]     Maintaining a formation of vehicles in flight, or otherwise, is essentially a large control problem. In this control problem, the objective is to drive the vehicles along trajectories that maintain specific relative positions as well as safe distances between each pair of vehicles. Many researches have attempted to use optimal control problem formulation to tackle the problem of maintaining relative positions as well as safe distances between each pair of vehicles. In the optimal control framework, formation control is formulated as a minimization of the error between relative distances of vehicles and desired displacements. Collision avoidance requirements are optionally included as additional constraints between each pair of vehicles in the optimal control problem.  
         [0003]     Unfortunately, the use of the optimal control problem approach can be hampered by the complexity of the calculations involved in controlling the vehicles. Further, the optimal control approach traditionally requires specialized knowledge, substantial off-line analysis, and extensive in-flight validation (often accompanied by numerous iterations of large and complex pre-specified linearized local models). As the number of vehicles increase, the solution of the associated big, non-convex optimization problems becomes prohibitive. Also, as the vehicles encounter obstacles, changes to all of the vehicles&#39; trajectories may be required. Therefore, a need exists for a simplified technique for controlling formations of autonomous vehicles.  
       SUMMARY  
       [0004]     In one embodiment a method for controlling the maneuvering of an autonomous vehicle in a network having a plurality of autonomous vehicles is provided. The method comprises monitoring the state of the autonomous vehicle. The method also comprises periodically receiving data on the states of a subset of the plurality of autonomous vehicles and periodically determining at least one command to a control loop for the autonomous vehicle based on the monitored state and the data from the subset of the plurality of autonomous vehicles. 
     
    
     DRAWINGS  
       [0005]     The present invention can be more easily understood and further advantages and uses thereof more readily apparent, when considered in view of the description of the embodiments and the following figures in which:  
         [0006]      FIG. 1  is one embodiment of network of autonomous vehicles each having a decentralized control system.  
         [0007]      FIG. 2  is one embodiment of the guidance and control loops of  FIG. 1 .  
         [0008]      FIG. 3  is one embodiment of the vehicle model of  FIG. 2 .  
         [0009]      FIG. 4  is a perspective view of one embodiment of an autonomous vehicle with a decentralized control system for use in a network of autonomous vehicles.  
         [0010]      FIG. 5  is an exploded view of the vehicle of  FIG. 4 . 
     
    
       [0011]     In accordance with common practice, the various described features are not drawn to scale but are drawn to emphasize specific features relevant to the embodiments of the present invention. Reference characters denote like elements throughout Figures and text.  
       DETAILED DESCRIPTION  
       [0012]     In the following detailed description of the embodiments, reference is made to the accompanying drawings, which form a part hereof, and in which is shown by way of illustration specific embodiments in which the inventions may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical and electrical changes may be made without departing from the spirit and scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined only by the claims and equivalents thereof.  
         [0013]     Embodiments of the present invention provide improvements in the design and operation of controllers that enable maneuvering of vehicles, and in particular unmanned vehicles, in a network. In one embodiment, the controller is “decentralized” in that an autonomous controller is provided in each vehicle. The controller, in this embodiment, makes control decisions based on a limited set of data, e.g., based on monitoring the state of its own operation and the states of a subset of the other vehicles in the formation or network. In this manner, the controller is simplified because it handles problems smaller in nature than it would in a centralized framework. In one embodiment, the control problem is decomposed in a hierarchical manner to include a lower level using guidance and control loops, and, a higher level that uses a decentralized optimization-based framework with a Receding Horizon Control (RHC) scheme that models each vehicle as a multi-input, multi-output (MIMO) linear system with constraints.  
         [0014]      FIG. 1  is one embodiment of a vehicle network shown generally at  100 . Network  100  includes a plurality of autonomous vehicles including vehicle  116 , neighboring vehicles  114 - 1  to  114 -N, and non-neighboring vehicles  115 - 1  to  115 -M. Each vehicle includes a decentralized controller that controls its movements. The control system  102  of vehicle  116  is shown by way of example. It is understood that the other vehicles also include similar control systems.  
         [0015]     In one embodiment, vehicles  116 ,  114 - 1  to  114 -N and  115 - 1  to  115 -N are Unmanned Air Vehicles (UAVs). In one embodiment, these vehicles are Micro Air Vehicles (MAVs). Due to its particular relevance to the emerging field of unmanned aircraft, embodiments of the present invention will be described herein largely with reference to the exemplary applications of UAVs. It will be understood, however, that embodiments of the invention are equally suited to other vehicular applications such as other flight vehicles, seagoing vessels, and road and rail vehicles, for example and non-vehicle applications where multiple spatially distributed entities are required to interact in a cooperative manner to accomplish some common objective.  
         [0016]     Control system  102  is located within vehicle  116  and controls the vehicle  116  so that the vehicle  116  reaches a desired position. In one embodiment, control system  102  comprises an optimization based controller  108 . In one embodiment, optimization based controller  108  is a decentralized RHC controller. Other decentralized controllers are contemplated for optimization based controller  108 , thus, decentralized RHC control is provided by way of example and not by way of limitation. The optimization based controller  108  uses a vehicle model  118  of the vehicle  116  and neighboring vehicles  114 - 1  through  114 -N to predict the future evolution of a subset of the network  100 . Based on this prediction, at each time step, t, a certain performance index is optimized under operating constraints with respect to a sequence of future input moves. One optimal move is the control action applied to the vehicle  116  at time t. At time t+1 a new optimization is solved over a shifted prediction horizon. Each optimization based controller  108  computes local control commands  112  that are sent to guidance and control loops  110  located in control system  102 .  
         [0017]     Guidance and control loops  110  translate the commands  112  from the optimization based controller  108  into control inputs for the vehicle model  118  and allow control system  102  to determine the state of the vehicle  116 . The information generated by guidance and control loops  110 , as well as the state of vehicle  116  as determined by vehicle model  118  is sent back to the optimization based controller  108  so that further predictions can be generated by the optimization based controller  108 . The information generated by guidance and control loops  110 , as well as the state of vehicle  116  as determined by vehicle model  118  is also sent to graph structure  106  in control system  102 . Graph structure  106  receives information from neighboring vehicles  114 - 1  through  114 -N and combines this information with the information received from vehicle model  118  to generate maps of the neighboring vehicles  114 - 1  through  114 -N with respect to the location of vehicle  116 . Likewise, neighboring vehicles  114 - 1  through  114 -N receive information from vehicle  116  and other neighbors of theirs to generate their own maps.  
         [0018]     In one embodiment, network  100  comprises a mission manager  104 . Mission manager  104  sends tasks to the control system  102  of vehicle  116  and directly and indirectly to the other vehicles  114 - 1  to  114 -N and  115 - 1  to  115 -M in order to carry out a desired mission. Types of tasks include but are not limited to formation patterns with neighboring vehicles  114 - 1  through  114 -N and non-neighboring vehicles  115 - 1  to  115 -M, final destination coordinates and other tasks for the vehicles to perform.  
         [0019]     In operation, guidance and control loops  110  generate control inputs to the vehicle model  118  which determines the state of the vehicle  116 . This state information is sent to the optimization based controller  108 , the graph structure  106 , and neighboring vehicles  114 - 1  through  114 -N. Graph structure  106  receives information from neighboring vehicles  114 - 1  through  114 -N and combines this information with the information received from vehicle model  118  to generate maps of the neighboring vehicles  114 - 1  through  114 -N with respect to the location of vehicle  116 . Likewise, neighboring vehicles  114 - 1  through  114 -N receive information from vehicle  116  to generate their own maps. Optimization based controller  108  receives the state of the vehicle  116  from vehicle model as well as the map information from graph structure  106  and generates local control commands  112  to control the vehicle  116 . These local control commands  112  are carried out by the vehicle  116  and are received by the guidance and control loops  110  which change the state of the vehicle  116  information accordingly.  
         [0020]      FIG. 2  is one embodiment of the guidance and control loops  110  of  FIG. 1 . In this embodiment, guidance and control loops  202  comprise a position/velocity control loop  204  otherwise known as “outer loop  204 ” and an attitude/rate control loop  206  otherwise known as “inner loop  206 .” Non-linear control of the inner loop  206  and outer loop  204  is accomplished via non-linear dynamic inversion and robust multivariable control. Non-linear dynamic inversion is further described with respect to D. Enns, D. Bugajski, R. Hendrick, and G. Stein. Dynamic inversion: an evolving methodology for flight control design.  International Journal of Control,  59(1):71-91, January 1994 referenced and incorporated herein. In one embodiment, vehicle model  209  is as described above with respect to vehicle model  118  of  FIG. 1 . Essentially, the nonlinearities of the vehicle model  209  are cancelled (to a certain degree) by inversion and a desired dynamics is imposed on the resulting system so that the behavior from the desired dynamics for each controlled variable to the actual variable resembles a set of integrators. However, this is only true when there is perfect inversion. Since perfect inversion rarely occurs in reality, the response of these state variables tend to be more like a first order transfer function than a pure integrator.  
         [0021]     Guidance and control loops  202  receive commands from, for example, the optimization based controller  108  of  FIG. 1  in the form of position commands  220  and heading commands  218 . In one embodiment, heading and position commands could be replaced by specific way-points. In one embodiment, these way-points are expressed in terms of desired positions/heading and corresponding velocities/heading rate to these coordinates.  
         [0022]     The outer loop  204  takes the position commands  220  as inputs and generates corresponding tilt (pitch, roll)  208  commands. Outer loop  204  also generates throttle commands  214 . The angles of the tilt commands  208  depend on how fast the vehicle  116  is commanded to translate in a given direction. This in turn depends on the position commands  220 . The tilt commands  208  and the heading commands  218  are input into the inner loop  206 . The inner loop  206  outputs the actual operational commands  212  required to accomplish the commanded maneuver. The operational commands  212  are sent to the appropriate control mechanisms to physically carry out the desired operation of the flight vehicle.  
         [0023]     Operational commands  212  as well as throttle commands  214  and wind disturbances  210  are the inputs to the vehicle model  209 . The vehicle model  209  outputs state variables  216 . State feedback is available to generate an error signal used in the tracking control of various state variables  216 . Assuming that actuators do not hit rate or position limits for most of the flight envelope, the dynamics from the position commands  220  and heading commands  218  to the state variables  216  is that of a multivariable linear system. This is because when actuators are not limited, they provide the requisite level of effort needed to position the vehicle as desired. Accordingly, nonlinearities due to effects like saturation will not be evident and the resulting closed loop system exhibits linear behavior. This behavior is multivariable because there are multiple inputs/outputs and coupling between position variables may be present due to non-perfect dynamic inversion and/or the physics of the vehicle itself.  
         [0024]      FIG. 3  is one embodiment of vehicle model  209  of  FIG. 2 . Models  118 ,  209  and  302  are empirical representations of the vehicle  116  that enable the determination of various states of the vehicle  116  based on commands provided to the vehicles operation systems. In this embodiment, model  302  comprises aerodynamic and propulsion tables  304 . Aerodynamic and propulsion tables  304  are typically obtained from wind tunnel experiments. The tables  304  receive as inputs operational commands  212  from inner loop  206 , throttle commands  214  from outer loop  204  and wind disturbances  210 . The table entries are interpolated to recover forces  308  and moments  310  which act as input to the basic equations of motion  312  that describe the state evolution of the vehicle  116 . Measured states  306  are used to compute Direction Cosine Matrix (DCM) elements. The measured states  306  represent the current states of the vehicle  116 . This is input into the equations of motion  312  and combined with the forces  308  and moments  310  to generate the next state variables  216 . In one embodiment, there are thirteen states represented as:  
         [0000]     x 1 =p; where x 1  is the roll rate angular velocity component  
         [0000]     x 2 =q; where x 2  is the pitch angular velocity component  
         [0000]     x 3 =r; where X 3  is the spin angular velocity component  
         [0000]     x 4 =u; where x 4  is the translational velocity component measuring forward movement  
         [0000]     x 5 =v; where x 5  is the translational velocity component measuring sideways movement  
         [0000]     x 6 =w; where x 6  is the translational velocity component measuring up and down movement  
         [0000]     x 7 =N; where x 7  is the difference between current position and the starting position in the North direction  
         [0000]     x 8 =E; where x 8  is the difference between current position and the starting position in the East direction  
         [0000]     x 9 =h; where x 9  is the distance from the ground  
         [0000]     x 10 =e 0    
         [0000]     x 11 =e 1    
         [0000]     x 12 =e 2    
         [0000]     x 13 =e 3 ; where x 10 −x 13  are the quaternions for orientation.  
       Illustrative Embodiment  
       [0025]      FIG. 4  is a perspective view and  FIG. 5  is an exploded view of one embodiment of an autonomous vehicle, indicated generally at  400 , that uses a decentralized controller to control the maneuvering of the vehicle in a network of vehicles. In this illustrative embodiment, vehicle  400  is an Unmanned Air Vehicle (UAV) that comprises a body  416 . Body  416  comprises support structures  402  and  404  (third support structure not visible) that are adapted to contact the ground and keep body  416  at an elevated distance from the ground. Body  416  also comprises first pylon  410  and second pylon  406 . First pylon  410  and second pylon  406  house sensors and payloads (not visible). Body  416  comprises a main pylon  412  that is adapted to support a motor  414 . Main pylon  412  is also adapted to mate with a propeller  408 . Main pylon  412  contains a control system  504 . In one embodiment, control system  504  is as described with respect to control system  102  of  FIG. 1 . Control system  504  may be implemented in digital electronic circuitry, or with a programmable processor (for example, a special-purpose processor or a general-purpose processor such as a computer) firmware, software, or in combinations of them. Motor  414  powers propeller  408  which rotates independently of the main pylon  412  causing a stream of air (propeller wash) towards vanes  502 . Vanes  502  are adapted to deflect and based on the deflection of vanes  502  the rotation, pitch and tilt of vehicle  400  is controlled. Vanes  502  and propeller  408  are embodiments of maneuvering systems. Other types of maneuvering systems include but are not limited to rudders, wheels, and other types of systems used to maneuver a vehicle.  
         [0026]     An example of using vehicle  400  in network  100  of  FIG. 1  will now be described. It is understood that this illustrative embodiment is provided by way of example and not by way of limitation. In this example, vehicle  400  is modeled as a constrained linear MIMO model of second order for each axis, where the inputs to the systems are accelerations along the N, E, h axis and the states of the systems are speeds and positions along the N, E, h axis. The dynamics of vehicle  400  is described using the following linear discrete-time model: 
 
 x   k+1 =ƒ( x   k   ,u   k )  (1) 
 
 where the state update function ƒ:R 6 ×R 3 →R 6  is a linear function of its inputs and x k εR 6  and u k εR 3  are states and inputs of the vehicle  400  at time k, respectively. In particular,  
           x   k     =     [           x     k   ,   pos                 x     k   ,   vel             ]       ,           ⁢     u   =     [           N   ⁢     -     ⁢   axis   ⁢           ⁢   acceleration               E   ⁢     -     ⁢   axis   ⁢           ⁢   acceleration               h   ⁢     -     ⁢   axis   ⁢           ⁢   acceleration           ]           
 
 and x k,pos εR 3  is the vector of N, E, h coordinates and x k,vel εR 3  is the vector of N-axis, E-axis and h-axis velocity components at time k. Speed and acceleration constraints of the vehicle  400  are represented as follows: 
 
 x   vel   εX   v   ={zεR   3 |−10 /ƒt/s≦z   i ≦10 /ƒt/s,i= 1,2,3}
 
 uεX   u   ={zεR   3 |−3 /ƒt/s   2   ≦z   i ≦3 /ƒt/s   2   ,i= 1,2,3}  (2) 
 
         [0027]     Even if at the lower level the acceleration cannot be directly commanded, model (1) has two key advantages. Firstly, it generates position references which take into account constraints in the acceleration and in the speed of the vehicle  400 . Secondly, it allows redesign/modification of the inner loop  206  controllers in order to directly track speed or position references (that is, in fact, already partially possible on the real vehicle  400 ).  
         [0028]     The objective of UAV autonomous formation flight control is therefore to provide position, speed or acceleration commands to a flock of UAVs in order to achieve certain mission objectives (which may have been decided at a higher level from a mission manager  104 ). A way to control formation flight is through the use of an optimization based controller  108  as described above with respect to  FIG. 1  and further described below. Each optimization based controller  108  computes the local control commands  112  that are sent to control loops  110  located in control system  102 . In one embodiment, local control commands  112  comprise heading commands  218  and position commands  220 . Local control commands  112  are based on the vehicle state variables  216  generated by control loops  110  and vehicle model  118  and the state variables of neighboring vehicles  114 - 1  through  114 -N. On each vehicle  400 , the current state and the model of its neighboring vehicles  114 - 1  through  114 -N are used to predict their possible trajectories so that vehicle  400  moves accordingly. This is performed by the graph structure  106  which communicates with the neighboring vehicles  114 - 1  through  114 -N.  
         [0029]     A set of N v  UAVs (1) where the i-th UAV is described by the discrete-time time-invariant state equation: 
 
 x   k+1   i =ƒ i ( x   k   i   ,u   k   i )  (3) 
 
 where x k   i εR n , u k   i εR m , n=6, m=3 are states and inputs of the i-th system, respectively, and ƒ i  is the state update function (1). The speed and acceleration of each UAV is constrained as in equation (2). The set of N v  UAVs will hereinafter be referred to as a team system. This is shown by letting {overscore (x)} k εR N     v     ×n  and {overscore (u)} k εR N     v     ×m  be the vectors which collect the states and inputs of the team system at time k, i.e. {overscore (x)} k =[{overscore (x)} k   1 , . . . , {overscore (x)} k   N     v],{overscore (u)}     k =[{overscore (u)} k   1 , . . . , {overscore (u)} k   N     v   ], with: 
 
 {overscore (x)}   k+1 ={overscore (ƒ)}( {overscore (x)}   k   ,{overscore (u)}   k )  (4) 
 
         [0030]     The equilibrium pair of the i-th system is denoted by (x e   i ,u e   i ) and ({overscore (x)} e ,{overscore (u)} e ) the corresponding equilibrium for the team system. This is essentially saying that if the vehicle is in the equilibrium state, it will stay there. So far the individual systems belonging to the team system are completely decoupled. An optimal control problem is considered for the team system where cost function and constraints couple the dynamic behavior of individual systems. In addition to being prescribed to meet the objective, the cost function is also designed to produce an efficient result. Types of efficiencies that the cost function handles include but are not limited to reducing the amount of fuel used, reducing the amount of distance traveled, and other mission requirements. In this embodiment, a graph topology is used to represent the coupling and is performed by the graph structure  106  in the following way. The i-th system is associated with the i-th node of the graph, and if an edge (i, j) connecting the i-th and j-th node is present, then the cost and the constraints of the optimal control problem will have a component, which is a function of both x i  and x j . The graph has the ability to be either directed or undirected and the edge will be present if the nodes are close enough. Therefore, before defining the optimal control problem, the time-varying graph is defined as: 
 
 G ( t )={ V, A ( t )}  (5) 
 
 where V is the set of nodes V={1, . . . , N v } and A(t) ⊂ V×V the set of time-varying arcs (i, j) (lines connecting the nodes) with iεV,jεV. The time-dependence of the set of arcs is assumed to be a function of the relative distance of the vehicles. The set A(t) is defined as: 
 
 A ( t )={( i,j )ε V×V|∥x   t,pos   i   −x   t,pos   i    ∥≦d   min }  (6) 
 
 that is the set of all the arcs, which connect two nodes whose distance is less than or equal to d min  which is defined by the user. Ranges of values for d min  vary and depend in part on whether vehicle  400  is within a distance in which to communicate with neighboring vehicles  114 - 1  through  114 -N. 
 
         [0031]     The states of all neighbors of the i-th system at time k, is denoted as {tilde over (x)} k   i , i.e. 
 
 {tilde over (x)}   k   i   ={x   k   j   εR   n     j   |( j,i )ε A ( k )},{tilde over (x)} k   i   εR   ñ     k       i    with  ñ   k   i =Σ j dim{ n   k   j |( j,i )ε A ( k )}
 
 Analogously, ũ k    i εR {tilde over (m)}     k       i    denotes the inputs to all the neighbors of the i-th system at time k. One constraint that is used is a safety constraint. This provides protection against the vehicle  400  crashing into the neighboring vehicles  114 - 1  through  114 -N. The safety constraint is defined as: 
 
 g   i,j ( x   pos   i   ,x   pos   j )≦0  (7) 
 
 which is the safety distance constraints between the i-th and the j-th UAV, with g i,j :R 3 ×R 3 →R nc     i,j    a short form of the interconnection constraints defined between the i-th system and all of its neighbors is: 
 
 g   k   i ( x   k   i   ,{tilde over (x)}   k   i )≦0  (8) 
 
 with g k   i :R n     i   ×R ñ     k       i→R     nc     i,k   . One embodiment of a cost function is defined as:  
               l   ⁡     (       x   ~     ,     u   ~       )       =       ∑     i   =   1       N   v       ⁢       l   k   i     ⁡     (       x   i     ,     u   i     ,       x   ~     k   i     ,       u   ~     k   i       )                 (   9   )             
 
 Where l i :R n     i   ×R m     i   ×R ñ     k       l   ×R {tilde over (m)}     k        l   →R is the cost associated with the i-th system and is a function of its states and the states of its neighbor states. In one embodiment, the cost function is implemented in the optimization based controller  108  and is a function of the vehicle state variables  216  generated by control loops  110  and vehicle model  118  and the neighboring vehicles  114 - 1  through  114 -N. Assuming that L is a positive convex function with l({overscore (x)} e ,{overscore (u)} e )=0, the decentralized scheme is considered next. 
 
         [0032]     Considering the i-th system and the following finite time optimal control problem P i (t) at time t:  
                   min       U   ~     t   i       ⁢       ∑     k   =   0       N   -   1       ⁢       l   t   i     ⁡     (       x     k   ,   t     i     ,     u     k   ,   t     i     ,       x   ~       k   ,   t     i     ,       u   ~       k   ,   t     i       )           +       l   N   i     ⁡     (       x     N   ,   t     i     ,       x   ~       N   ,   t     i       )         ⁢     
     ⁢     subj   .           ⁢   to     ⁢          ⁢         x       k   +   1     ,   t     i     =       f   i     ⁡     (       x     k   ,   t     i     ,     u     k   ,   t     i       )         ,     k   ≥   0       ⁢     
     ⁢         x     k   ,   t   ,   vel     i     ∈     X   v       ,       u     k   ,   t     i     ∈     X   u       ,     
     ⁢     k   =   1     ,   …   ⁢           ,     N   -   1       ⁢     
     ⁢         x       k   +   1     ,   t     j     =       f   j     ⁡     (       x     k   ,   t     j     ,     u     k   ,   t     j       )         ,       (     j   ,   i     )     ∈     A   ⁡     (   t   )         ,     
     ⁢     k   =   1     ,   …   ⁢           ,     N   -   1       ⁢     
     ⁢         x     k   ,   t   ,   vel     i     ∈     X   v       ,       u     k   ,   t     j     ∈     X   u       ,       (     j   ,   i     )     ∈     A   ⁡     (   t   )         ,     
     ⁢     k   =   1     ,   …   ⁢           ,     N   -   1       ⁢     
     ⁢           g     i   ,   j       ⁡     (       x     k   ,   t   ,   pos     i     ,     x     k   ,   t   ,   pos     j       )       ≤   0     ,       (     i   ,   j     )     ∈     A   ⁡     (   t   )           ⁢     
     ⁢       k   =   1     ,   …   ⁢           ,     N   -   1       ⁢     
     ⁢           g     q   ,   r       ⁡     (       x     k   ,   t   ,   pos     q     ,     x     k   ,   t   ,   pos     r       )       ≤   0     ,       (     q   ,   i     )     ∈     A   ⁡     (   t   )         ,       (     r   ,   i     )     ∈     A   ⁡     (   t   )         ,     
     ⁢     k   =   1     ,   …   ⁢           ,     N   -   1       ⁢     
     ⁢         x     k   ,   t   ,   vel     i     ∈     Ξ   v       ,     k   ≥   0       ⁢     
     ⁢         x     k   ,   t   ,   vel     j     ∈     Ξ   v       ,       (     j   ,   i     )     ∈     A   ⁡     (   t   )         ,     k   ≥   0       ⁢     
     ⁢         x     N   ,   t     i     ∈     X   f   i       ,       x     N   ,   t     j     ∈     X   f   j       ,       (     i   ,   j     )     ∈     A   ⁡     (   t   )           ⁢     
     ⁢         x     0   ,   t     i     =     x   t   i       ,         x   ~       0   ,   t     i     =       x   ~     t   i                 (   10   )             
 
 where N is the prediction horizon which is shifted to get closer to the goal, and the “subj. to” are the constraints that the cost function abides by. Also, where  
             U   ~     t   i     ⁢     =   Δ     ⁢         [       u     0   ,   t     i     ,       u   ~       0   ,   t     i     ,   …   ,     u       N   -   1     ,   t     i     ,       u   ~         N   -   1     ,   t     i       ]     ′     ∈     R   s         ,     s   ⁢     =   Δ     ⁢       (         m   ~     i     +     m   i       )     ⁢   N           
 
 denotes the optimization vector, x k,t    i  denotes the state vector of the i-th node predicted by the optimization based controller  108  at time t+k obtained by starting from the state X t   i  and applying to system (1) the input sequence u o,t   i , . . . , u k−1,t   i . The tilded vectors denote the prediction vectors associated with the neighboring systems assuming a constant interconnection graph over the prediction horizon. Denote by Ũ t   i *=[u* 0,t   i ,ũ* 0,t   i , . . . , u* N−1,t   i ,ũ* N−1,t   i ] the optimizer of problem P i (t). Problem P i (t) involves only the state and input variables of the i-th node and its neighbors at time t. The optimization based controller  108  at time t is as follows. The graph connection A(t) is computed according to equations (5) and (6) which is performed in graph structure  106 . Each node i solves problem P i (t) using equation (10). Node i implements the first sample of Ũ t   i * to optimize the solution. Each node then repeats the previous calculations at time t+1, based on the new state information x t+1   i ,{tilde over (x)} t+1   i . In order to solve problem P i (t) each node needs to know its current states, its neighbor&#39;s current states, its terminal region, its neighbors&#39; terminal regions and models and constraints of its neighbors. Based on such information each node computes its optimal inputs and its neighbors&#39; optimal inputs assuming a constant set of neighbors over the horizon. The input to the neighbors will only be used to predict their trajectories and then discarded, while the first component of the i-th optimal input of problem P i (t) will be implemented on the i-th node.