Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[sumo-user] simpla improvement suggestion

Probably I should post this to the developer list, but I just have 2 minor improvements to the simpla module which I have tried and tested under crush load at different types of junctions and roundabouts (where vehicles get stuck under intense traffic with the current version).


So the improvements are these:

1. before a vehicle starts following a leader, it checks if at least one of these conditions are satisfied:

- leader and ego vehicle have a certain number of edges in common on the future route

- leader and ego vehicle do a certain distance together on a future route

2. The lane change advice is not issued to a follower if it is less than a certain distance from the upstream intersection


The former feature reduces the number of unnecessary catchups and the whole simulation becomes quieter and less chaotic. I have not yet performance figure though.

The latter prevents vehicles to be pushed on a lane with dead end (or occupied) short before the intersection. This measure prevents vehicles getting stuck, at least for the default lanechange model. With the sublane model it can still happen that vehicles get stuck in roundabouts. Increasing the strategy factor and pushy factor helps to improve this situation, but does not resolve it completely.


Here are the 3   PlatoonManager where I added stuff:

def __init__(self):

        # js: these parameters should be loaded from config too:

        # ego vehicle needs at least this number of future edges in common with leader
        # before agreeing to follow...
        self._edgenumberLookahead = 3

        # Or the ego vehicle needs at least this distance of commom route length with leader
        # before agreeing to follow.
        self._distLookahead = 500.0

        # no lane change advice if vehicle has less than this distance
        # to the next  juction
        self._lanechangeMinDist = 100.0

def _updateVehicleStates(self):

def _adviseLanes(self):


Attached is the modified platoonmanager file and a demo (which gave problems without the modifications).

Hope this is useful and make it in the code, open for any feedback on this issue.

Best,

Joerg

Attachment: platooningdemo.zip
Description: Zip archive


Back to the top