cars['lanepos'] = [-1]*ncars # not given to Agent but needed for calculation cars['x'] = [-1]*ncars cars['y'] = [-1]*ncars cars['angle'] = [-1]*ncars cars['ilane'] = ['']*ncars ttime = 0 maxTime = 100 # seconds ## run simulation while ttime < maxTime and err == 0 and np.any(cars['status']<=0): # create new vehicles for carID in np.where(cars['status']<0)[0]: car = cars.iloc[carID] if car['time'] <= ttime: err += Sim.createVehicle(str(carID), car['lane'], 0.) # need to create an Agent? cars['status'].iloc[carID] = 0 # gather vehicle info for carID in np.where(cars['status']==0)[0]: carLane,carLanePos,carPos,carAngle = Sim.getVehicleState(str(carID)) if carLane[1] == 'o': cars['status'] = 1 cars['lane'].iloc[carID] = carLane cars['lanepos'].iloc[carID] = carLanePos cars['x'].iloc[carID] = carPos[0] cars['y'].iloc[carID] = carPos[1] cars['angle'].iloc[carID] = carAngle if carLane[1] == 'i': # not in intersection yet cars['ilane'].iloc[carID] = next((k for i,j,k in
lastStart = open('lastStart.int') iteration = int(lastStart.read()) lastStart.close() params = pd.read_csv(paramFile,header=0) else: iteration = 1 params = None ## run iteration while iteration <= options.numiter: err = 0 starttime = time.time() Sim = Sumo(configuration, options.gui) ## now set up parameters and vehicles err += Sim.createVehicle('ego','1i_0',0.) egoSpeed = 25. err += Sim.createVehicle('left','3i_1',0.) leftSpeed = 20. params_iter = pd.DataFrame([[egoSpeed, leftSpeed, 0., 0., -1., 'na']], columns=ParameterColumns) output = None ttime = 0 maxTime = 100 # seconds ## run simulation while ttime < maxTime: # get info on this step egoLane,egoLanePos,egoPos,egoAngle = Sim.getVehicleState('ego')
iteration = int(lastStart.read()) lastStart.close() params = pd.read_csv(paramFile,header=0) else: iteration = 1 params = None call(['mkdir','-p',outputFolder+'/'+options.outputName]) # add folder ## run iteration while iteration <= options.numiter: err = 0 starttime = time.time() Sim = Sumo(configuration, options.gui) ## now set up parameters and vehicles err += Sim.createVehicle('ego','main_0',VEHsize[0]) #egoControl = Controllers.RearEndEgo(vehicleSpeed(), vehicleAccel()) egoControl = Controllers.RearEndRandom(vehicleSpeed(),maxdecel=.5) err += Sim.createVehicle('lead','main_0',50+VEHsize[0]) #leadControl = Controllers.RearEndBrake(vehicleSpeed(), vehicleAccel()) leadControl = Controllers.RearEndRandom(vehicleSpeed(),maxdecel=5.) # params_iter = pd.DataFrame([[egoControl.speed, leadControl.speed, # egoControl.accel, leadControl.accel, # leadControl.brakeMagnitude, leadControl.brakeTime, # -1.]], columns=ParameterColumns) params_iter = pd.DataFrame([[egoControl.speed, leadControl.speed, -1.]], columns=ParameterColumns) output = None ttime = 0
lastStart = open('lastStart.int') iteration = int(lastStart.read()) lastStart.close() params = pd.read_csv(paramFile, header=0) else: iteration = 1 params = None ## run iteration while iteration <= options.numiter: err = 0 starttime = time.time() Sim = Sumo(configuration, options.gui) ## now set up parameters and vehicles err += Sim.createVehicle('ego', '1i_0', 0.) egoSpeed = 25. err += Sim.createVehicle('left', '3i_1', 0.) leftSpeed = 20. params_iter = pd.DataFrame([[egoSpeed, leftSpeed, 0., 0., -1., 'na']], columns=ParameterColumns) output = None ttime = 0 maxTime = 100 # seconds ## run simulation while ttime < maxTime: # get info on this step egoLane, egoLanePos, egoPos, egoAngle = Sim.getVehicleState('ego')
] * ncars # not given to Agent but needed for calculation cars['x'] = [-1] * ncars cars['y'] = [-1] * ncars cars['angle'] = [-1] * ncars cars['ilane'] = [''] * ncars ttime = 0 maxTime = 100 # seconds ## run simulation while ttime < maxTime and err == 0 and np.any(cars['status'] <= 0): # create new vehicles for carID in np.where(cars['status'] < 0)[0]: car = cars.iloc[carID] if car['time'] <= ttime: err += Sim.createVehicle(str(carID), car['lane'], 0.) # need to create an Agent? cars['status'].iloc[carID] = 0 # gather vehicle info for carID in np.where(cars['status'] == 0)[0]: carLane, carLanePos, carPos, carAngle = Sim.getVehicleState( str(carID)) if carLane[1] == 'o': cars['status'] = 1 cars['lane'].iloc[carID] = carLane cars['lanepos'].iloc[carID] = carLanePos cars['x'].iloc[carID] = carPos[0] cars['y'].iloc[carID] = carPos[1] cars['angle'].iloc[carID] = carAngle if carLane[1] == 'i': # not in intersection yet
# -*- coding: utf-8 -*- """ Created on Tue Nov 17 20:13:37 2015 @author: motro """ from sumoMethods import Sumo configuration = 'emptyhighway' sim = Sumo(configuration, gui=True) sim.createVehicle('a','main_0',40) [lane,lanex,xy] = sim.getVehicleState('a') print 'a, 0: '+str(xy[0]) sim.createVehicle('b','main_0') [lane,lanex,xy] = sim.getVehicleState('b') print 'b, 0: '+str(xy[0]) sim.moveVehicleAlong('b',38) [lane,lanex,xy] = sim.getVehicleState('a') print 'a, 1: '+str(xy[0]) [lane,lanex,xy] = sim.getVehicleState('b') print 'b, 1: '+str(xy[0]) sim.end()
self.df = self.df.append(newrows) def out(self): if self.colnames is not None: self.df.columns = self.colnames #self.df.to_csv(fileName, sep=',', header=True, index=False) self.restart=True return self.df err = 0 Sim = Sumo(configuration,gui=True) # first gather the possible positions/angles of each intersection lane allcars = {} for start, end, road in intersectionLookUp: print "at "+road err += Sim.createVehicle(road, start, 90.) err += Sim.moveVehicleAlong(road, 0.1, end) thisdf = WriteFrame(['x','y','angle','length','width','lp']) dist = 1. status = -1 totaldist = 0 while status < 1 and totaldist < 50: lane,lanepos,pos,angle = Sim.getVehicleState(road) status = (lane[1]=='o')-(lane[1]=='i') if status == 0: #add vehicle info to the dataframe thisdf.add([[pos[0],pos[1],angle,VEHsize[0],VEHsize[1],lanepos]]) Sim.moveVehicleAlong(road, dist) totaldist += dist time.sleep(.05) # might guard against freeze