Ejemplo n.º 1
0
def setLaneChangeMode(vehID, lcm):
    """setLaneChangeMode(string, integer) -> None

    Sets the vehicle's lane change mode as a bitset.
    """
    traci._sendIntCmd(
        tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_LANECHANGE_MODE, vehID, lcm)
Ejemplo n.º 2
0
def setSignals(vehID, signals):
    """setSignals(string, integer) -> None

    Sets an integer encoding the state of the vehicle's signals.
    """
    traci._sendIntCmd(
        tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_SIGNALS, vehID, signals)
Ejemplo n.º 3
0
def doStep():
    state.step += 1
    if setting.verbose:
        print("step", state.step)
    traci.simulationStep()
    # adding new vehicles, if any
    departed = traci.simulation.getSubscriptionResults()[
        tc.VAR_DEPARTED_VEHICLES_IDS]
    for v in departed:
        traci.vehicle.subscribe(v, dataFromTraciState)
        vehicleSetParams[v] = getSetParams(v)
        if v == 'ego':
            thisv = egov
        else:
            thisv = alterv
        controllers[v] = Controllers.Inter1Constant(v, thisv)
        #getController(v, vehicleSetParams[v])
        if controllers[v] is not None:
            if setting.verbose:
                print("allowing forward and lane crashes for", v)
            traci._sendIntCmd(tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_SPEEDSETMODE,
                              v, controllers[v].speedMode)
            traci.vehicle.setLaneChangeMode(v, controllers[v].laneChangeMode)
    # gather vehicle states for this step
    vStates = {}
    for vehID, subs in traci.vehicle.getSubscriptionResults().iteritems():
        tempParams = getFromSubscription(vehID, subs, dataFromTraciState)
        vStates[vehID] = VState(tempParams + vehicleSetParams[vehID])
    #
    for vehID, vState in vStates.iteritems():
        sensor = sensorToUse(vState, realign=True)
        #
        for otherID, otherState in vStates.iteritems():
            if vehID != otherID:
                #
                # check for collisions
                if collisionCheck.check(vState, otherState):
                    #print "collision! pos",vState.x,vState.y,"step",state.step
                    if state.collisionOccurred <= 0:
                        state.collisionOccurred = state.step * .1
                    break
                #
                # update sensor
                sensor.addObstacle(otherState)
        #
        if setting.verbose:
            for vstat in sensor.getObstacles():
                print(vehID, "detects", vstat.x, vstat.y, "speed", vstat.speed)
        # store this vehicle movement
        output.add([[
            state.step * .1, vehID, vState.x, vState.y, vState.angle,
            vState.speed
        ]])
        # use data to decide speed
        if controllers[vehID] is not None:
            controllers[vehID].updateSpeed(vState.speed)
            commandedSpeed = controllers[vehID].nextStep(sensor.getObstacles())
            traci.vehicle.setSpeed(vehID, commandedSpeed)
            if setting.verbose:
                print("setting speed", commandedSpeed)
Ejemplo n.º 4
0
def setSpeedMode(vehID, sm):
    """setLaneChangeMode(string, integer) -> None

    Sets the vehicle's speed mode as a bitset.
    """
    traci._sendIntCmd(
        tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_SPEEDSETMODE, vehID, sm)
Ejemplo n.º 5
0
def setSignals(vehID, signals):
    """setSignals(string, integer) -> None
    
    Sets an integer encoding the state of the vehicle's signals.
    """
    traci._sendIntCmd(tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_SIGNALS, vehID,
                      signals)
Ejemplo n.º 6
0
def setSpeedMode(vehID, sm):
    """setLaneChangeMode(string, integer) -> None

    Sets the vehicle's speed mode as a bitset.
    """
    traci._sendIntCmd(
        tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_SPEEDSETMODE, vehID, sm)
Ejemplo n.º 7
0
def setLaneChangeMode(vehID, lcm):
    """setLaneChangeMode(string, integer) -> None
    
    Sets the vehicle's lane change mode as a bitset.
    """
    traci._sendIntCmd(tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_LANECHANGE_MODE,
                      vehID, lcm)
Ejemplo n.º 8
0
 def _createVehicle(self, vehID, laneID, pos=0):
     routeID = _edge(laneID)
     laneIndex = int(laneID[laneID.rfind('_') + 1:])
     traci.vehicle.add(vehID, routeID, pos=pos, lane=laneIndex)
     traci._sendIntCmd(traci.constants.CMD_SET_VEHICLE_VARIABLE,
                       traci.constants.VAR_SPEEDSETMODE, vehID, 0)
     traci.vehicle.setLaneChangeMode(vehID, 0)
     traci.simulationStep()
Ejemplo n.º 9
0
 def _createVehicle(self,vehID, laneID, pos=0):
     routeID = _edge(laneID)
     laneIndex = int( laneID[laneID.rfind('_')+1:] )
     traci.vehicle.add(vehID,routeID,pos=pos,lane=laneIndex)
     traci._sendIntCmd(traci.constants.CMD_SET_VEHICLE_VARIABLE,
                       traci.constants.VAR_SPEEDSETMODE, vehID, 0)
     traci.vehicle.setLaneChangeMode(vehID, 0)
     traci.simulationStep()
Ejemplo n.º 10
0
def doStep():
    state.step += 1
    if setting.verbose:
        print("step",state.step)
    traci.simulationStep()
    # adding new vehicles, if any    
    departed = traci.simulation.getSubscriptionResults()[tc.VAR_DEPARTED_VEHICLES_IDS]    
    for v in departed:
        traci.vehicle.subscribe(v,dataFromTraciState)
        vehicleSetParams[v] = getSetParams(v)
        if v=='ego':
            thisv = egov
        else:
            thisv = alterv
        controllers[v] = Controllers.Inter1Constant(v, thisv)
        #getController(v, vehicleSetParams[v])
        if controllers[v] is not None:
            if setting.verbose:
                print("allowing forward and lane crashes for",v)
            traci._sendIntCmd(tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_SPEEDSETMODE,
                              v, controllers[v].speedMode)
            traci.vehicle.setLaneChangeMode(v, controllers[v].laneChangeMode)
    # gather vehicle states for this step
    vStates = {}
    for vehID, subs in traci.vehicle.getSubscriptionResults().iteritems():        
        tempParams = getFromSubscription(vehID, subs, dataFromTraciState)
        vStates[vehID] = VState( tempParams + vehicleSetParams[vehID] )
    #
    for vehID, vState in vStates.iteritems():
        sensor = sensorToUse(vState, realign=True)
        #
        for otherID, otherState in vStates.iteritems():
            if vehID != otherID:
                #
                # check for collisions
                if collisionCheck.check(vState, otherState):
                    #print "collision! pos",vState.x,vState.y,"step",state.step
                    if state.collisionOccurred <= 0:
                        state.collisionOccurred = state.step*.1
                    break
                #
                # update sensor
                sensor.addObstacle(otherState)
        #
        if setting.verbose:
            for vstat in sensor.getObstacles():
                print(vehID, "detects", vstat.x, vstat.y,"speed",vstat.speed)
        # store this vehicle movement
        output.add([[state.step*.1, vehID, vState.x, vState.y, vState.angle,
                     vState.speed]])
        # use data to decide speed
        if controllers[vehID] is not None:
            controllers[vehID].updateSpeed(vState.speed)
            commandedSpeed = controllers[vehID].nextStep(sensor.getObstacles())
            traci.vehicle.setSpeed(vehID, commandedSpeed)
            if setting.verbose:
                print("setting speed", commandedSpeed)
Ejemplo n.º 11
0
def doStep():
    step.step += 1
    if setting.verbose:
        print "step", step.step
    traci.simulationStep()
    # adding new vehicles, if any    
    departed = traci.simulation.getSubscriptionResults()[tc.VAR_DEPARTED_VEHICLES_IDS]    
    for v in departed:
        traci.vehicle.subscribe(v,dataFromTraciState)
        vehicleSetParams[v] = getSetParams(v)
        controllers[v] = getController(v, vehicleSetParams[v])
        if controllers[v] is not None: #True
            if setting.verbose:
                print "allowing forward and lane crashes for",v
            traci._sendIntCmd(tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_SPEEDSETMODE, v, 22)
            traci.vehicle.setLaneChangeMode(v, 85)
            #traci.vehicle.changeLane(v, 0, 10000)
    # gather vehicle states for this step
    vStates = {}
    for vehID, subs in traci.vehicle.getSubscriptionResults().iteritems():        
        tempParams = getFromSubscription(vehID, subs, dataFromTraciState)
        vStates[vehID] = VState( tempParams + vehicleSetParams[vehID] )
    #
    for vehID, vState in vStates.iteritems():
        sensor = sensorToUse(vState)
        #
        for otherID, otherState in vStates.iteritems():
            if vehID != otherID:
                #
                # check for collisions
                if collisionCheck.check(vState, otherState):
                    print "collision! pos",vState.x,vState.y,"step",step.step
                    setting.collisionOccurred = True
                    break
                #
                # update sensor
                sensor.addObstacle(otherState)
        #
        if setting.verbose:
            for vstat in sensor.getObstacles():
                print vehID, "detects", vstat.x, vstat.y,"speed",vstat.speed
        # use data to decide speed
        if controllers[vehID] is not None:
            controllers[vehID].updateSpeed(vState.speed)
            commandedSpeed = controllers[vehID].nextStep(sensor.getObstacles())
            traci.vehicle.setSpeed(vehID, commandedSpeed)
            if setting.verbose:
                print "setting speed", commandedSpeed
Ejemplo n.º 12
0
def setPhase(tlsID, index):
    traci._sendIntCmd(tc.CMD_SET_TL_VARIABLE, tc.TL_PHASE_INDEX, tlsID, index)
def setPhaseDuration(tlsID, phaseDuration):
    traci._sendIntCmd(tc.CMD_SET_TL_VARIABLE, tc.TL_PHASE_DURATION, tlsID, int(1000*phaseDuration))
def setPhase(tlsID, index):
    """setPhase(string, integer) -> None
    
    .
    """
    traci._sendIntCmd(tc.CMD_SET_TL_VARIABLE, tc.TL_PHASE_INDEX, tlsID, index)
Ejemplo n.º 15
0
def setSignals(vehID, signals):
    traci._sendIntCmd(tc.CMD_SET_VEHICLE_VARIABLE, tc.VAR_SIGNALS, vehID, signals)
Ejemplo n.º 16
0
def setPhase(tlsID, index):
    """setPhase(string, integer) -> None
    
    .
    """
    traci._sendIntCmd(tc.CMD_SET_TL_VARIABLE, tc.TL_PHASE_INDEX, tlsID, index)
Ejemplo n.º 17
0
def setPhaseDuration(tlsID, phaseDuration):
    traci._sendIntCmd(tc.CMD_SET_TL_VARIABLE, tc.TL_PHASE_DURATION, tlsID,
                      int(1000 * phaseDuration))
def setPhase(tlsID, index):
    traci._sendIntCmd(tc.CMD_SET_TL_VARIABLE, tc.TL_PHASE_INDEX, tlsID, index)