def calculateSwarmDrones(self, newParameters): SPFParameter = newParameters[0:4] TPFParameter = newParameters[4:6] # Setup min_allowable_dist = self.targetOutput Drones = [] position_drone1 = [(0, 0, 5)] Drone1 = Agent(0, position_drone1[0], 1) Drones.append(Drone1) position_drone2 = [(10, 0, 5)] Drone2 = Agent(1, position_drone2[0], 1) Drones.append(Drone2) SPF = SwarmPotentialField(min_allowable_dist) SPF.setup(SPFParameter) Ship = Target([5, 10, 5]) TPF = TargetPotentialField(TPFParameter[0], TPFParameter[1], 1) Ships = [Ship] responseValue = [] for iteration in self.simulationTime: Drone1.SwarmPotentialForce = SPF.calculate_total_swarm_field_force( Drone1.index, Drones) Drone2.SwarmPotentialForce = SPF.calculate_total_swarm_field_force( Drone2.index, Drones) Drone1.TargetPotentialForce = TPF.calculate_target_force( Drone1.index, 0, Drones, Ships) Drone2.TargetPotentialForce = TPF.calculate_target_force( Drone2.index, 0, Drones, Ships) self.swarmForces.append( calculateLength(Drone1.calculate_total_force())) Drone1.calculateVelocity(Drone1.calculate_total_force()) Drone1.move() Drone2.calculateVelocity(Drone2.calculate_total_force()) Drone2.move() [distance_tuple, distance] = SPF.getDistance(0, 1, Drones) responseValue.append(distance) return responseValue, True
position_ship1 = [(0, 0, 0)] Ship1 = Target(position_ship1[0]) Ship1.setVelocity((2, 2, 0)) Ships.append(Ship1) OPF = ObstaclePotentialField(1, 1, 10) TPF = TargetPotentialField(1, 1, 1) for i in range(0, 100): print('------- ITERATION ', i, '-----------') obstacle1_forces = OPF.calculate_obstacle_forces(Drones, Coral) obstacle2_forces = OPF.calculate_obstacle_forces(Drones, Coral2) Drone1.ObstaclePotentialForce = obstacle1_forces[Drone1.index] Drone2.ObstaclePotentialForce = obstacle1_forces[Drone2.index] Drone1.TargetPotentialForce = TPF.calculate_target_force( Drone1.index, 0, Drones, Ships) Drone2.TargetPotentialForce = TPF.calculate_target_force( Drone2.index, 0, Drones, Ships) print('Drone1 TPF = ', Drone1.TargetPotentialForce, '\n') print('Drone1 OPF = ', Drone1.ObstaclePotentialForce, '\n') print('Drone1 Total Force = ', Drone1.calculate_total_force(), '\n') print(Drone1.calculateVelocity(Drone1.calculate_total_force())) print('Drone1 Velocity', Drone1.velocity) Drone1.move() print('Drone1 Position', Drone1.position) print('\n') print('Drone2 TPF = ', Drone2.TargetPotentialForce, '\n') print('Drone2 OPF = ', Drone2.ObstaclePotentialForce, '\n')
Drones = [] Drone1 = Agent(0, (0, 5, 4), 1) Drones.append(Drone1) Drone2 = Agent(1, (0, 0, 9), 1) Drones.append(Drone2) Targets = [] Ship = Target((9, 9, 0)) Targets.append(Ship) TPF = TargetPotentialField(1, 1, 1) for i in range(0, 20): print('------- ITERATION ', i, '-----------') Drone1.TargetPotentialForce = TPF.calculate_target_force( 0, 0, Drones, Targets) Drone2.TargetPotentialForce = TPF.calculate_target_force( 1, 0, Drones, Targets) print('Drone1 TPF = ', Drone1.TargetPotentialForce, '\n') print(Drone1.calculateVelocity(Drone1.TargetPotentialForce)) print('Drone1 Velocity', Drone1.velocity) Drone1.move() print('Drone1 Position', Drone1.position) print('\n') print('Drone2 TPF = ', Drone2.TargetPotentialForce, '\n') print(Drone2.calculateVelocity(Drone2.TargetPotentialForce)) print('Drone2 Velocity', Drone2.velocity) Drone2.move()