예제 #1
0
 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
예제 #2
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')
예제 #3
0
    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
예제 #4
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')
예제 #5
0
파일: Qsim.py 프로젝트: xjtuwh/carstop
    ] * 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
예제 #6
0
# -*- 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()
예제 #7
0
            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