def reset(self): ### #self.generate_routefile_two_intersections() self.generate_routefile() traci.load([ "-c", "one_lane/one_lane4.sumocfg", "--collision.check-junctions", "1", "--start", '--no-step-log', 'true' ]) ### #traci.load(["-c", "one_intersection_w_priority/one_intersection_w_priority.sumocfg", "--collision.check-junctions", "1", "--start"]) run = Assembler(self.carID) terminate = False while terminate == False: num_vec = traci.vehicle.getIDList() for i in range(len(num_vec)): if num_vec[i] != 'ego': traci.vehicle.setLaneChangeMode(num_vec[i], 512) self.output = run.getTensor() if self.output is not None: terminate = True traci.simulationStep() return self.getObservation()
def execute(self, action): #traci.vehicle.setSpeedMode('ego', 0) #print(action) run = Assembler(self.carID) # self.output = tensor.executeTensor() self.output = run.getTensor() # print(self.output) if self.output is None: term = True return self.getObservation(), term, 0 # rew = Reward('ego', self.output) rew = Reward('ego') coll, term = rew.collision() if term is True: cost = coll return self.getObservation(), term, cost traci.vehicle.setSpeedMode('ego', 0) num_vec = traci.vehicle.getIDList() for i in range(len(num_vec)): if num_vec[i] != 'ego': traci.vehicle.setLaneChangeMode(num_vec[i], 512) # print(action) carID = 'ego' act = Action(carID) if action == 0: pass #act.decelerate() #print('dec') elif action == 1: pass #act.accelerate() #print('acc') else: pass #act.remain() #print('rem') traci.simulationStep() #net = sumolib.net.readNet('huge_crossing/huge_crossing.net.xml') #tensor = Tensor('ego', net, self.conflictory_list[0], self.connection_list[0]) #self.output = tensor.executeTensor() #rew = Reward('ego', self.output) win = rew.target() cost = rew.optimum_speed_deviation() + win # + brake traci.simulationStep() return self.getObservation(), term, cost
def execute(self, action): run = Assembler(self.carID) self.output = run.getTensor() #print(run.getTensor()) if self.output is None: term = True return self.getObservation(), term, 0 rew = Reward('ego', run.getTraffic(), self.output) coll, term = rew.collision() if term is True: cost = coll return self.getObservation(), term, cost traci.vehicle.setSpeedMode('ego', 0) num_vec = traci.vehicle.getIDList() for i in range(len(num_vec)): if num_vec[i] != 'ego': traci.vehicle.setLaneChangeMode(num_vec[i], 512) ### #if i % 2 == 0: #traci.vehicle.setSpeedMode(num_vec[i], 23) carID = 'ego' act = Action(carID) if action == 0: act.decelerate() # print('dec') elif action == 1: act.accelerate() # print('acc') else: act.remain() # print('rem') gap, term = rew.emergency_gap() wary = rew.wary_before_intersection() #win = rew.target() brake = rew.emergency_brake() cost = rew.optimum_speed_deviation() + brake + gap + wary traci.simulationStep() #print(self.output) return self.getObservation(), term, cost