A Java implementation was written to verify the theoretical developments, which focuses on the two key scenarios of rendezvous: assignment graph with a single cycle and assignment graph with a cycle plus branches. The program2 was developed adhering to the Java 5 language standard under the Eclipse environment.
Discretization is necessary to implement the continuously evolving system. Sensing needs to be discretized because the Dubins car model allows jumps in angular velocity; therefore, there could be a large number of control switches within a short time interval. In our implementation, we divide the windshield into a left sector and a right sector. The triggering event is simulated by remembering the latest observation of the target agent 's relative position in pursuing agent 's windshield at time step ,
(42) |
(43) |
To verify the cyclic pursuit theorems for the Dubins car model, each agent is assigned a unique integer identifier. For the single cycle case, we initialize the system by positioning the agents randomly and assigning each agent to the one with a preceding identifier; the first agent is assigned to the last one. The behavior of the cyclic pursuit is then observed by watching the agents' trajectories and a simultaneously drawn plot of the Lyapunov function, under different parameter settings. Since we want to observe the behavior of the cyclic pursuit with all agents, the merging radius is set to near zero to inhibit merging. For every attempted set of agents, the simulation indicates that is a tight rendezvous bound. As predicted, randomly positioned agents rendezvous when , but they will eventually diverge if is only above . In the latter case, the agents get closer quickly in the beginning as random arrangements appear to induce more negative . Interestingly, the agents then tend to arrange themselves on a circle and eventually form a regular polygon, making positive. We speculate that the continuous system has the same behavior, which is shown in [28,31] with different motion primitive and/or control law. Fig. 6 a) - d) shows both a converging and a diverging case with . In the rendezvous case, does not go to zero because is set to be very small. The case with cycle plus branches is implemented similarly: we make a random cycle (with less than agents) and then attach the rest of the agents to the cycle in a random way. Its simulation behavior (a converging example is shown in Fig. 6 e) - f)) is very similar to the single cycle case.