Dear friends and users,
We are happy to announce the release of SUMO version 1.21.0. The download links are at https://sumo.dlr.de/Download.
If you cite the new release in your publications, please use the DOI 10.5281/zenodo.13907886 (https://doi.org/10.5281/zenodo.13907886)
This release brings plenty of bug fixes. Regretfully, this includes multiple regressions (things that were working before but broke in 1.20.0 or an earlier release).
We have significantly increased our test coverage for netedit in response.
Improvements include a major boost to simulation speed with heavy file output and improved rendering speed in sumo-gui as well as more details for modeling electric vehicles.
There are many more features and fixes in this release and the most important ones are listed below. For a full list of changes, see https://sumo.dlr.de/Changelog.
### Enhancements
- sumo
- Improved speed of writing XML output by 60%
- Electric vehicles now support defining variable charge rate
- The battery model now records depletion events in tripinfo output
- Persons and containers now support vType attribute boardingFactor which gets multiplied with the boarding- or loadingDuration of the vehicle.
- Added extra penalty for turnarounds during routing, configurable with option --weights.turnaround-penalty (also for duarouter)
- Jupedsim pedestrian model now waits at pedestrian crossings
- netedit
- Junctions and edges now have the virtual attribute isRoundabout. This makes it easy to select and find all roundabouts in a network
- Convert-to-roundabout function now sets roundabout edge properties based on incoming edges
- Hotkey ESC + SHIFT can be used to clear the selection regardless of editing mode
- sumo-gui
- Different color schemes are now supported when calibrating colors to the data (recalibrate rainbow)
- Improved rendering speed on right-click
- POI attribute width can now be used to configure POI size (in m)
- netconvert
- OSM import now supports distances and speeds with units (i.e. feet, knots)
- traci
- The new sumo option --keep-after-arrival TIME keeps vehicle objects in memory for a configurable time after their arrival for trip data retrieval
- chargingStation attributes can now be modified
- Added functions edge.getBidiEdge and lane.getBidiLane
- Meso simulation now supports functions vehicle.getSegmentIndex and vehicle.getSegmentID
- Meso simulation with option --meso-lane-queue now supports vehicle.getLaneIndex
- tools
- addStops2Routes.py: Can now create waypoints by setting option --speed.
- mapDetectors.py: Option --max-radius can now be used to configure maximum mapping radius
- distributeChargingStations.py: this is a new tool for adding chargingStations to a network with parkingAreas
### Bugfixes
- sumo
- Fixed invalid error when loading a trip directly after a route with repeat (regression in 1.20.0)
- Persons joining edge via access don't collide with vehicles again (regression in 1.20.0)
- personInfo total duration now includes ride waiting time
- Fixed creeping vehicle approach to oncoming pedestrian on shared space
- Fixed emergency braking at pedestrian crossings
- Fixed emergency braking due to unsafe insertion speed
- Fixed lane-changing related deadlock around stopped vehicles
- Electric vehicles now issues a warning on running out of battery power
- Fixed invalid density in edgedata-output in sublane simulation
- Fixed problems with the GLOSA
- No more cooperative speed adaptation when setting lcCooperative=-1.
- Fixed negative emissions with HBEFA4 model
- Fixed invalid rerouting one edge with change prohibitions
- Fixed collision in roundabout in network without internal links
- Fixed crash and misbehavior during portion working
- Fixed bug where simulation does not finish with onDemand stop
- Fixed queue length estimation for laneAreaDetectors of delay_based traffic lights
- Fixed bug where vehicle skips stop after waypoint
- Fixed emergency braking at zipper with low visibilityDistance
- Fixed bug where parking rerouter does not reroute occupants
- Fixed crash when using rerouters on vehicles with stops and looped routes
- rerouter closingReroute now preserves all existing stops when computing new route
- fixed problems related to StartUpDelay when using ActionStepLength or small timesteps
- Fixed bug where taxi disappears during dispatch
- Fixed crash when using taxi with pre-booking and ride sharing
- netconvert
- Fixed crash when guessing ramps (regression in 1.20.0)
- Fixed crash when edge removal affects roundabouts defined in OSM. (regression in 1.20.0)
- OSM: fixed invalid bus permission on tram line (regression in 1.20.0)
- Fixed unsafe waiting position within a junction that conflicts with a pedestrian crossing
- Fixed invalid pedestrian infrastructure connections that could cause invalid pedestrian routes
- netedit
- fixed 18 regressions introduced in version 1.20.0 and 8 regressions introduced in earlier versions
- Fixed crash when using "Replace junction by geometry point" and traffic demand is loaded
- Fixed crash when loading another network while the traffic light frame has an active traffic light
- Fixed uncontrolled pedestrian crossings after using 'Clean States'
- Edge context menu function apply edge template now applies to the whole selection
- Hotkey BACKSPACE now works for taking back a stopping place in person mode
- Fixed crash when replacing junction by geometry point
- Fixed crash joining junctions with crossings
- Stop attribute parking now takes effect when set in Stop mode
- Crossings are now preserved when converting a junction to a roundabout
- Fixed slow-down when loading many polygons
- Fixed junction merging with active grid
- sumo-gui
- Reloading now works if SUMO_HOME is not set (regression in 1.15.0)
- Fixed glitch when drawing carriages on edges with custom length. (regression in 1.17.0)
- Fixed crash when saving view settings to registry (regression in 1.19.0)
- Fixed bad menu spacing and tiny icons when using display scaling on windows (i.e. for high-pixel-count displays) #14882
- Fixed translation-related crashes where code relied on hard coded english menu entries.
- Fixed rendering issues in lefthand networks
- Fixed issues with clickable links in message window
- TraCI
- Fixed ignored calls to vehicle.changeTarget and vehicle.setRoute after calling vehicle.moveToXY. (regression in 1.13.0)
- traci.simulation.findIntermodalRoute can now be used to find taxi mode routes
- Fixed crash when calling vehicle.getDrivingDistance2D in meso
- Fixed crash when trying to call traci.vehicle.dispatchTaxi for an undeparted vehicle
- vehicle.getLeader retrieval now works beyond 3000m if subsequent edges have only 1 lane (i.e. for railways)
- tools
- osmGet.py: Fixed error downloading data from servers that do not provide gzipped data. (regression in 1.20.0)
- sumolib.net.readNet now works with old versions of lxml and pathlib.Path arguments (regression in 1.20.0)
- traceExporter.py: fixed inconsistent trj-output #14925
- mapDetectors.py: No longer writes invalid lane pos #15117
### Miscellaneous
- parkingArea default roadsideCapacity is 1 (instead of 0) if no space definitions are given
- Fixed invalid characters in documentation command examples
Have fun with the new release,
Jakob, Yun-Pang, Pablo, Mirko, Benjamin, Angelo, Micha and Robert