eclipse-sumo/sumo

Differentiate routing edge speeds per vehicle class

Opened this issue · 7 comments

"Discovered" through the mailing list. Currently speeds of all lanes are averaged which makes edges with a pedestrian lane seem slower than those without from a car perspective. Even if there are no vehicles or pedestrians, the respective lanes participate in the speed average.

The problem is not as severe as it looks at first sight because the maximum allowed speed on the sidewalk is per default the same as on the street.

The problem is not as severe as it looks at first sight because the maximum allowed speed on the sidewalk is per default the same as on the street.

Hello. I think this would be the case when we manually create the network. The network we used was extracted from OSM in which some sidewalks had the same speed as their street and some had a lower speed. This lack of consistency in the extracted network resulted in questionable routing for our real-world network.

@BlueSoheil99 Can you give the geo-coordinates of your example? Did you convert it with the default osmWebWizard settings?

@behrisch Given the user name, I presume it's the same network I showed you (Seattle city center around Fairview avenue). Importing it through osmWebWizard will create separate pedestrian edges though, so it seems the user did it differently...

@behrisch Given the user name, I presume it's the same network I showed you (Seattle city center around Fairview avenue). Importing it through osmWebWizard will create separate pedestrian edges though, so it seems the user did it differently...

Yes, it's Downtown Seattle.
I think the network was made with the help of netconvert command and many revisions and cleaning were done on it. Since I was not included in that part and previous lab members worked on it, I cannot exactly tell you how they merged pedestrian lanes with vehicle lanes.

the relevant code is at

for (const MSLane* const lane : *myLanes) {
int numVehs = lane->getVehicleNumber();
if (numVehs == 0) {
// take speed limit but with lowest possible weight
numVehs = 1;
}
v += numVehs * lane->getMeanSpeed();
totalNumVehs += numVehs;

This is also relevant for #5347