Thank you. Could you provide a little context of what this code, specifically those lines are doing?
If I change lcStrategic from 1000 to 500, or 1500- what are some effects that I can expect? I have attached a set of files that I am using for your reference, I only change lcStrategic values in it and compare the results. On Mon, Jun 5, 2023 at 10:54 AM Jakob Erdmann <[email protected]> wrote: > see > https://github.com/eclipse/sumo/blob/de92290f118f38780aaf9b809a415ef981779b50/src/microsim/MSVehicle.cpp#L5787-L5848 > > Am Mo., 5. Juni 2023 um 16:24 Uhr schrieb Soumya Sharma via sumo-user < > [email protected]>: > >> Hi Jakob, >> Thanks for the information, that is very helpful. >> >> Also, in one of your previous emails, you mentioned: >> "The default look-ahead distance for strategic decision has a maximum >> range of about 3000m. You can reduce this distance by setting vType >> attribute 'lcStrategic' to a value in [0, 1[. " >> >> Where does this 3000m distance come from? is it the same as laDist? and >> where can I find these default values and the code corresponding to >> defaults? >> My goal is to understand how the look-ahead distance of a vehicle >> changes with changing parameters like "lcStrategic" and "lcLookaheadLeft", >> "lcAssertive" and "lcSpeedGain". >> >> Thanks! >> >> On Mon, Jun 5, 2023 at 7:57 AM Jakob Erdmann <[email protected]> >> wrote: >> >>> - All these attributes are factors and thus unitless >>> - in the laDist computation, the value of LOOK_FORWARD is the time (10s) >>> which is then scaled >>> >>> >>> Am So., 4. Juni 2023 um 04:24 Uhr schrieb Soumya Sharma via sumo-user < >>> [email protected]>: >>> >>>> Hello, >>>> I am trying to conduct a sensitivity analysis of car-following and >>>> lane-changing parameters in SUMO for hypothetical freeway segments (basic >>>> and weaving). I tried changing headway values (car-following) and >>>> lcStrategic values (lane-changing) for a basic segment. I used lcStrategic >>>> values of 500, 1000, and 1500 for trucks in simulations (length = 15.25m). >>>> My trucks are using the CACC model. >>>> The two metrics I am interested in are the travel rates (secs/ mi) by >>>> vehicle type and the number of lane changes per vehicle type. I found that >>>> there was no change in travel rate and a number of lane changes when I >>>> changed the value of lcStrategic to 500, 1000, and 1500. I don't understand >>>> why there was no effect of changing the parameter values. >>>> Next, I want to look into other parameters like "lcLookaheadLeft", >>>> "lcAssertive" and "lcSpeedGain". >>>> >>>> *Question*: I would like to understand the units of the parameters >>>> "lcStrategic" and "lcLookaheadLeft", "lcAssertive" and "lcSpeedGain". >>>> >>>> The SUMO documentation says: >>>> >>>> 1. lcStrategic: The eagerness for performing strategic lane >>>> changing. Higher values result in earlier lane-changing. default: 1.0, >>>> range [0-inf), -1 A value of 0 sets the lookahead-distance to 0 >>>> (vehicles can still change at the end of their lane) whereas -1 disables >>>> strategic changing completely. >>>> 2. lcLookaheadLeft: Factor for configuring the strategic lookahead >>>> distance when a change to the left is necessary (relative to right >>>> lookahead). default: 2.0, range [0-inf) >>>> 3. lcAssertive: Willingness to accept lower front and rear gaps on >>>> the target lane. The required gap is divided by this value. default: 1, >>>> range: positive reals >>>> 4. lcSpeedGain: The eagerness for performing lane changing to gain >>>> speed. Higher values result in more lane-changing. default: 1.0, range >>>> [0-inf) >>>> >>>> These definitions don't mention any units explicitly, are they all >>>> factors? i.e. unitless or are some of them in meters and some unitless? >>>> >>>> I was checking the code >>>> <https://github.com/eclipse/sumo/blob/main/src/microsim/lcmodels/MSLCM_LC2013.cpp#L1850>for >>>> LC2013 and found that look ahead distance (laDist) is being >>>> calculated as follows: >>>> >>>> laDist = myLookAheadSpeed * LOOK_FORWARD * myStrategicParam * (right ? >>>> 1 : myLookaheadLeft); >>>> >>>> >>>> If this is how the look-ahead distance for a vehicle is calculated when >>>> making lane-changing decisions, then both lcLookaheadLeft and >>>> lcStrategic specified will be used to calculate laDist but I don't know >>>> what what the units of any of these parameters are. For laDist to be in >>>> distance units, speed would be multiplied by time here. >>>> >>>> Please share any information that is available as it would help me >>>> understand my results better. >>>> >>>> Thanks, >>>> Soumya. >>>> _______________________________________________ >>>> sumo-user mailing list >>>> [email protected] >>>> To unsubscribe from this list, visit >>>> https://www.eclipse.org/mailman/listinfo/sumo-user >>>> >>> _______________________________________________ >>> sumo-user mailing list >>> [email protected] >>> To unsubscribe from this list, visit >>> https://www.eclipse.org/mailman/listinfo/sumo-user >>> >> >> >> -- >> Thank you, >> Soumya Sharma >> >> _______________________________________________ >> sumo-user mailing list >> [email protected] >> To unsubscribe from this list, visit >> https://www.eclipse.org/mailman/listinfo/sumo-user >> > _______________________________________________ > sumo-user mailing list > [email protected] > To unsubscribe from this list, visit > https://www.eclipse.org/mailman/listinfo/sumo-user > -- Thank you, Soumya Sharma
import os
import sys
import optparse
import numpy as np
# we need to import some python modules from the $SUMO_HOME/tools directory
if 'SUMO_HOME' in os.environ:
tools = os.path.join(os.environ['SUMO_HOME'], 'tools')
sys.path.append(tools)
else:
sys.exit("please declare environment variable 'SUMO_HOME'")
from sumolib import checkBinary # Checks for the binary in environ vars
import traci
def get_options():
opt_parser = optparse.OptionParser()
opt_parser.add_option("--nogui", action="store_true",
default=False, help="run the commandline version of
sumo")
options, args = opt_parser.parse_args()
return options
t = np.arange(5,10000, 10)
vehID = np.arange(5,10000, 10)
# contains TraCI control loop
def run():
step = 0
while traci.simulation.getMinExpectedNumber() > 0:
traci.simulationStep()
# print(step)
#while step < 10000:
# traci.simulationStep() # advance the simulation one time step
# for i,j in zip(t, vehID):
# for j in vehID:
# if step == i:
# traci.vehicle.add(str(j), 'r1', typeID='TV',
departLane='random', departSpeed='max')
# #traci.vehicle.add(str(j), 'r1', typeID='TV', depart=None,
departLane='free', departPos='base')
step += 1
traci.close()
sys.stdout.flush()
# main entry point
if __name__ == "__main__":
options = get_options()
# check binary
if options.nogui:
sumoBinary = checkBinary('sumo')
else:
sumoBinary = checkBinary('sumo-gui')
# traci starts sumo as a subprocess and then this script connects and runs
traci.start([sumoBinary, "-c", "config3.sumocfg",
"--tripinfo-output", "20TAV_0TT_80TV.xml"])
run()<routes>
<vType id="TAV"
vClass="custom1" length="15.25" color = "white" guiShape="truck"
carFollowModel="CACC" tau="1.05" minGap="2.5" speedDev="0" lcStrategic = "100" lcLookaheadLeft="1000" lcAssertive="2" />
<vType id="TT"
vClass="truck" length="15.25" color = "yellow"
carFollowModel="W99" CC1="1.8" CC2="2.4" CC7="0.25" CC8="1.97" CC9="0.82" speedDev="0.05" lcStrategic = "10" lcLookaheadLeft="1000" lcAssertive="2" />
<vType id="TV"
vClass="passenger" length="5" color = "red"
carFollowModel="W99" CC1="1" CC2="2" speedDev="0.05" speedFactor="normc(1,0.082,0.714,1.214)"
lcStrategic = "10" lcLookaheadLeft="1000" lcAssertive="2"/>
<!--2000pcphpl -->
<flow id="TVflowa1" type="TV" begin="0" end="3600" probability="0.444444444444444" from="e1" to="e3" departSpeed="desired" departPos="base" departLane="0"/>
<flow id="TVflowb1" type="TV" begin="0" end="3600" probability="0.444444444444444" from="e1" to="e3" departSpeed="desired" departPos="base" departLane="1"/>
<flow id="TVflowc1" type="TV" begin="0" end="3600" probability="0.444444444444444" from="e1" to="e3" departSpeed="desired" departPos="base" departLane="2"/>
<flow id="TAVflowa1" type="TAV" begin="0" end="3600" probability="0.111111111111111" from="e1" to="e3" departSpeed="desired" departPos="base" departLane="0"/>
<flow id="TAVflowb1" type="TAV" begin="0" end="3600" probability="0.111111111111111" from="e1" to="e3" departSpeed="desired" departPos="base" departLane="1"/>
<flow id="TAVflowc1" type="TAV" begin="0" end="3600" probability="0.111111111111111" from="e1" to="e3" departSpeed="desired" departPos="base" departLane="2"/>
</routes><?xml version="1.0" encoding="UTF-8"?> <!-- generated on 2021-06-21 10:51:29 by Eclipse SUMO netedit Version v1_9_2+0606-e37d7284ee <configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/netconvertConfiguration.xsd"> <input> <sumo-net-file value="G:\Shared%20drives\NCDOT_AV_Project\Task%204-%20Freight-Related%20Impact\SUMO%20Analysis\Basic\Middle%20Lane%20Reservation\Lane%20reservation%20for%20TTs\10%25%20Trucks\test_5TAV_5TT_90TV_nolanersrv_instantloopadded\3lanebasicrsrv(1mile).net.xml"/> </input> <output> <output-file value="G:\Shared%20drives\NCDOT_AV_Project\Task%204-%20Freight-Related%20Impact\SUMO%20Analysis\Basic\Middle%20Lane%20Reservation\Lane%20reservation%20for%20TTs\10%25%20Trucks\test_5TAV_5TT_90TV_nolanersrv_instantloopadded\3lanebasicrsrv(1mile).net.xml"/> </output> <processing> <geometry.min-radius.fix.railways value="false"/> <geometry.max-grade.fix value="false"/> <offset.disable-normalization value="true"/> <lefthand value="false"/> </processing> <junctions> <no-turnarounds value="true"/> <junctions.corner-detail value="5"/> <junctions.limit-turn-speed value="5.5"/> <rectangular-lane-cut value="false"/> </junctions> <pedestrian> <walkingareas value="false"/> </pedestrian> <netedit> <additional-files value="G:\Shared%20drives\NCDOT_AV_Project\Task%204-%20Freight-Related%20Impact\SUMO%20Analysis\Basic\Middle%20Lane%20Reservation\Lane%20reservation%20for%20TTs\10%25%20Trucks\test_5TAV_5TT_90TV_nolanersrv_instantloopadded\instantloop_lane2.xml"/> </netedit> <report> <aggregate-warnings value="5"/> </report> </configuration> --> <additional xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/additional_file.xsd"> <instantInductionLoop id="enter_e2_lane0" lane="e2_0" pos="30.48" name="enter_e2_lane0" file="20TAV_0TT_80TVLoop_enter_e2_lane0.xml"/> <instantInductionLoop id="enter_e2_lane1" lane="e2_1" pos="30.48" name="enter_e2_lane1" file="20TAV_0TT_80TVLoop_enter_e2_lane1.xml"/> <instantInductionLoop id="enter_e2_lane2" lane="e2_2" pos="30.48" name="enter_e2_lane2" file="20TAV_0TT_80TVLoop_enter_e2_lane2.xml"/> <instantInductionLoop id="exit_e2_lane0" lane="e2_0" pos="4858.51" name="exit_e2_lane0" file="20TAV_0TT_80TVLoop_exit_e2_lane0.xml"/> <instantInductionLoop id="exit_e2_lane1" lane="e2_1" pos="4858.51" name="exit_e2_lane1" file="20TAV_0TT_80TVLoop_exit_e2_lane1.xml"/> <instantInductionLoop id="exit_e2_lane2" lane="e2_2" pos="4858.51" name="exit_e2_lane2" file="20TAV_0TT_80TVLoop_exit_e2_lane2.xml"/> </additional>
config3.sumocfg
Description: application/sumo
<?xml version="1.0" encoding="UTF-8"?> <!-- generated on 2021-06-21 10:17:51 by Eclipse SUMO netedit Version v1_9_2+0606-e37d7284ee <configuration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/netconvertConfiguration.xsd"> <input> <sumo-net-file value="G:\Shared%20drives\NCDOT_AV_Project\Task%204-%20Freight-Related%20Impact\SUMO%20Analysis\Basic\Middle%20Lane%20Reservation\Lane%20reservation%20for%20TTs\10%25%20Trucks\test_5TAV_5TT_90TV_nolanersrv_instantloopadded\3lanebasicrsrv(1mile).net.xml"/> </input> <output> <output-file value="G:\Shared%20drives\NCDOT_AV_Project\Task%204-%20Freight-Related%20Impact\SUMO%20Analysis\Basic\Middle%20Lane%20Reservation\Lane%20reservation%20for%20TTs\10%25%20Trucks\test_5TAV_5TT_90TV_nolanersrv_instantloopadded\3lanebasicrsrv(1mile).net.xml"/> </output> <processing> <geometry.min-radius.fix.railways value="false"/> <geometry.max-grade.fix value="false"/> <offset.disable-normalization value="true"/> <lefthand value="false"/> </processing> <junctions> <no-turnarounds value="true"/> <junctions.corner-detail value="5"/> <junctions.limit-turn-speed value="5.5"/> <rectangular-lane-cut value="false"/> </junctions> <pedestrian> <walkingareas value="false"/> </pedestrian> <report> <aggregate-warnings value="5"/> </report> </configuration> --> <net version="1.9" junctionCornerDetail="5" limitTurnSpeed="5.50" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://sumo.dlr.de/xsd/net_file.xsd"> <location netOffset="0.00,0.00" convBoundary="-1815.66,49.85,3439.00,61.78" origBoundary="-10000000000.00,-10000000000.00,10000000000.00,10000000000.00" projParameter="!"/> <edge id=":gneJ1_0" function="internal"> <lane id=":gneJ1_0_0" index="0" speed="31.29" length="0.30" width="3.66" shape="-824.64,52.63 -824.35,52.63"/> <lane id=":gneJ1_0_1" index="1" speed="31.29" length="0.30" width="3.66" shape="-824.64,56.29 -824.34,56.29"/> <lane id=":gneJ1_0_2" index="2" speed="31.29" length="0.30" width="3.66" shape="-824.65,59.95 -824.34,59.95"/> </edge> <edge id=":gneJ5_0" function="internal"> <lane id=":gneJ5_0_0" index="0" speed="31.29" length="0.30" width="3.66" shape="1628.20,47.92 1628.49,47.92"/> <lane id=":gneJ5_0_1" index="1" speed="31.29" length="0.30" width="3.66" shape="1628.20,51.58 1628.50,51.58"/> <lane id=":gneJ5_0_2" index="2" speed="31.29" length="0.30" width="3.66" shape="1628.21,55.24 1628.52,55.24"/> </edge> <edge id="e1" from="gneJ0" to="gneJ1" priority="-1" length="1609.34"> <lane id="e1_0" index="0" speed="31.29" length="1609.34" width="3.66" shape="-1815.66,52.47 -824.64,52.63"/> <lane id="e1_1" index="1" speed="31.29" length="1609.34" width="3.66" shape="-1815.66,56.13 -824.64,56.29"/> <lane id="e1_2" index="2" speed="31.29" length="1609.34" width="3.66" shape="-1815.66,59.79 -824.65,59.95"/> </edge> <edge id="e2" from="gneJ1" to="gneJ5" priority="-1" length="4888.99"> <lane id="e2_0" index="0" speed="31.29" length="4888.99" width="3.66" shape="-824.35,52.63 1628.20,47.92"/> <lane id="e2_1" index="1" speed="31.29" length="4888.99" width="3.66" shape="-824.34,56.29 1628.20,51.58"/> <lane id="e2_2" index="2" speed="31.29" length="4888.99" width="3.66" shape="-824.34,59.95 1628.21,55.24"/> </edge> <edge id="e3" from="gneJ5" to="gneJ4" priority="-1" length="3218.69"> <lane id="e3_0" index="0" speed="31.29" length="3218.69" width="3.66" shape="1628.49,47.92 3438.96,40.70"/> <lane id="e3_1" index="1" speed="31.29" length="3218.69" width="3.66" shape="1628.50,51.58 3438.98,44.36"/> <lane id="e3_2" index="2" speed="31.29" length="3218.69" width="3.66" shape="1628.52,55.24 3438.99,48.02"/> </edge> <junction id="gneJ0" type="dead_end" x="-1815.66" y="61.62" incLanes="" intLanes="" shape="-1815.66,61.62 -1815.66,50.64"/> <junction id="gneJ1" type="priority" x="-824.49" y="61.78" incLanes="e1_0 e1_1 e1_2" intLanes=":gneJ1_0_0 :gneJ1_0_1 :gneJ1_0_2" shape="-824.33,61.78 -824.36,50.80 -824.64,50.80 -824.65,61.78"> <request index="0" response="000" foes="000" cont="0"/> <request index="1" response="000" foes="000" cont="0"/> <request index="2" response="000" foes="000" cont="0"/> </junction> <junction id="gneJ4" type="dead_end" x="3439.00" y="49.85" incLanes="e3_0 e3_1 e3_2" intLanes="" shape="3438.96,38.87 3439.00,49.85"/> <junction id="gneJ5" type="priority" x="1628.37" y="57.07" incLanes="e2_0 e2_1 e2_2" intLanes=":gneJ5_0_0 :gneJ5_0_1 :gneJ5_0_2" shape="1628.53,57.07 1628.48,46.09 1628.19,46.09 1628.21,57.07"> <request index="0" response="000" foes="000" cont="0"/> <request index="1" response="000" foes="000" cont="0"/> <request index="2" response="000" foes="000" cont="0"/> </junction> <connection from="e1" to="e2" fromLane="0" toLane="0" via=":gneJ1_0_0" dir="s" state="M"/> <connection from="e1" to="e2" fromLane="1" toLane="1" via=":gneJ1_0_1" dir="s" state="M"/> <connection from="e1" to="e2" fromLane="2" toLane="2" via=":gneJ1_0_2" dir="s" state="M"/> <connection from="e2" to="e3" fromLane="0" toLane="0" via=":gneJ5_0_0" dir="s" state="M"/> <connection from="e2" to="e3" fromLane="1" toLane="1" via=":gneJ5_0_1" dir="s" state="M"/> <connection from="e2" to="e3" fromLane="2" toLane="2" via=":gneJ5_0_2" dir="s" state="M"/> <connection from=":gneJ1_0" to="e2" fromLane="0" toLane="0" dir="s" state="M"/> <connection from=":gneJ1_0" to="e2" fromLane="1" toLane="1" dir="s" state="M"/> <connection from=":gneJ1_0" to="e2" fromLane="2" toLane="2" dir="s" state="M"/> <connection from=":gneJ5_0" to="e3" fromLane="0" toLane="0" dir="s" state="M"/> <connection from=":gneJ5_0" to="e3" fromLane="1" toLane="1" dir="s" state="M"/> <connection from=":gneJ5_0" to="e3" fromLane="2" toLane="2" dir="s" state="M"/> </net>
_______________________________________________ sumo-user mailing list [email protected] To unsubscribe from this list, visit https://www.eclipse.org/mailman/listinfo/sumo-user
