Jump to content
Jason-ABRP

[Feedback Request] Planned Speeds in the United States

Recommended Posts

One of the most important things for accurate planning is getting the speeds right.  As anyone who's driven an EV knows, an extra 5-10mph can mean the difference between making it to your destination, and stopping for an unplanned break at an extra charger.

I've noticed that our planned speeds are often incorrect, especially in rural areas.  With that in mind, I'd like some help from the community.  At the moment, these are the speeds we assume in the US when we have no known speed limit:

motorway        = 65 mph, # A restricted access major divided highway, normally with 2 or more running lanes plus emergency hard shoulder. Equivalent to the Freeway, Autobahn, etc..	
trunk           = 55 mph, # The most important roads in a country's system that aren't motorways. (Need not necessarily be a divided highway.)
primary         = 45 mph, # The next most important roads in a country's system. (Often link larger towns.)
secondary       = 35 mph, # The next most important roads in a country's system. (Often link towns.)
tertiary        = 25 mph, # The next most important roads in a country's system. (Often link smaller towns and villages)
unclassified    = 18 mph, # The least important through roads in a country's system – i.e. minor roads of a lower classification than tertiary, but which serve a purpose other than access to properties. (Often link villages and hamlets. Holdover from UK system)
residential     = 18 mph, # Roads which serve as an access to housing, without function of connecting settlements. Often lined with housing.
living_street   = 6 mph # Residential streets where pedestrians have legal priority over cars, speeds are kept very low and where children are allowed to play on the street.

Of course, when someone's taken the time to go into Open Street Map and set a speed limit, we use that instead of our defaults.  (For reference, you can contribute those speed limits using the link at the bottom of the route-click popup.  You can tell if we have a known speed limit for a route if the "Speed Limit" field shows up on the route preview popup in addition to "Planned Speed")

I've prepared an update to our US speeds based on roads near me, but since speeds vary significantly throughout the US, I wanted to solicit feedback prior to rebuilding the routing engine around these speeds:

motorway        = 75 mph, 
trunk           = 65 mph,
primary         = 65 mph,
secondary       = 55 mph,
tertiary        = 45 mph,
unclassified    = 35 mph,
residential     = 25 mph,
living_street   = 15 mph

To compare to roads around you (and know how we classify them) create a route that drives a segment of road, then click on the route to get this popup:

image.png.8f506cb9a6561836b113465267965a36.png

If you click on the "Speed Limit or Elevation incorrect? Edit Open Street Map." link, it'll take you to Open Street Map, and you can click on the road to see the type:

image.png.169e50744baf2f9d85422a1376c7fb7c.png

Thanks in advance for the feedback!

Link to comment
Share on other sites

Most of the major rural roads in Texas which have speed limits ranging from 65 to 75 MPH seem to be classified as "primary road" in OSM which according to your table above would result in a speed reference of 45 MPH.

The smaller rural roads which generally have limits of 50-65 MPH are mostly tagged as "secondary roads" in OSM which again according to your table above results in a reference speed of 35 MPH.

I think you might need to get more sophisticated than just looking at the road type. For example US-281 in Texas has speed limits ranging from 75 to 35 depending on if it's going through a town or not. OSM has the city limits data in it, so you should probably just assume a "primary road" to have a "planned speed" of 70 MPH if it's outside city limits, and 45 if inside the limits.

Likewise for "secondary roads": 35 MPH if inside city limits, 55 if outside.

Also: based on feedback from my previous thread I went in and started adding speed limits to OSM. I've added limits for both US-281 in TX as well as TX-29. However when I go back and re-plan routes it seems to still be using the old speeds.

How long should it take from when I add the speed limit to OSM to when ABRP picks it up and starts using it?

Link to comment
Share on other sites

On 7/2/2019 at 7:30 AM, irwinr said:

Most of the major rural roads in Texas which have speed limits ranging from 65 to 75 MPH seem to be classified as "primary road" in OSM which according to your table above would result in a speed reference of 45 MPH.

The smaller rural roads which generally have limits of 50-65 MPH are mostly tagged as "secondary roads" in OSM which again according to your table above results in a reference speed of 35 MPH.

I think you might need to get more sophisticated than just looking at the road type. For example US-281 in Texas has speed limits ranging from 75 to 35 depending on if it's going through a town or not. OSM has the city limits data in it, so you should probably just assume a "primary road" to have a "planned speed" of 70 MPH if it's outside city limits, and 45 if inside the limits.

Likewise for "secondary roads": 35 MPH if inside city limits, 55 if outside.

Also: based on feedback from my previous thread I went in and started adding speed limits to OSM. I've added limits for both US-281 in TX as well as TX-29. However when I go back and re-plan routes it seems to still be using the old speeds.

How long should it take from when I add the speed limit to OSM to when ABRP picks it up and starts using it?

Unfortunately, I'm not sure we can set that level of granularity in the routing engine.  That would be a good way to do it, if we can, though.  Use my first table for within city limits, second table for outside cities (Rural).  I've seen similar categorization / limits in a few other states.

My preference is generally to be overly conservative on our predictions.  That is - plan for worse consumption, and have it turn out better than we predicted.  The alternative (as it is now) is that we over-predict range in some circumstances, forcing you to drive slower than the speed limit to reach your destination.

On the speed limit updates, re-cooking the maps takes a while, so we only have that run once a week.  Once your edit is approved (assuming that's needed) you should see it by the next week.

One thing we've considered is adding to/changing the "Edit in OSM" link on the plan preview popup to a speed limit editor, which would store updated speed limits in a temporary database of our own the planner could check, then submit them in bulk to OSM to improve the data for everyone.  Is that something you would use?

Link to comment
Share on other sites

A speed limit editor directly in ABPR would be a lot easier than trying to go to OSM, log in, and submit new speed limit data.  Esp. if I'm on a roadtrip driving across a mountain road and realize the speed limit is different - I'd want to set it in ABPR probably at the next charging stop, but I wouldn't want to go through the hassle of registering/logging in with OSM >.<

Link to comment
Share on other sites

9 hours ago, Zifnab said:

A speed limit editor directly in ABPR would be a lot easier than trying to go to OSM, log in, and submit new speed limit data.  Esp. if I'm on a roadtrip driving across a mountain road and realize the speed limit is different - I'd want to set it in ABPR probably at the next charging stop, but I wouldn't want to go through the hassle of registering/logging in with OSM >.<

Thanks for the feedback, I really wish OSM had an "OSM Trainer" app, which would follow your driving on GPS, and use it to refine speed limits (actual driven speeds) on roads.

I'll start tinkering with methods to add a speed limit updater in the ABRP interface, see if we can come up with something useful.

Link to comment
Share on other sites

On 7/20/2019 at 8:33 AM, Jason (ABRP) said:

Thanks for the feedback, I really wish OSM had an "OSM Trainer" app, which would follow your driving on GPS, and use it to refine speed limits (actual driven speeds) on roads.

I'll start tinkering with methods to add a speed limit updater in the ABRP interface, see if we can come up with something useful.

The real challenge for me is it's not just a matter of updating the speed limit in OSM, it usually requires splitting the roads into segments so that your speed limit edit doesn't break a correct limit on another segment. (IE: Someone set the limit to "35" inside a city but the road wasn't segmented so it sets the limit of the rural section to 35 mph as well.)

Being able to adjust these directly inside ABRP would certainly be a lot easier.

Link to comment
Share on other sites

On 8/5/2019 at 4:47 PM, irwinr said:

The real challenge for me is it's not just a matter of updating the speed limit in OSM, it usually requires splitting the roads into segments so that your speed limit edit doesn't break a correct limit on another segment. (IE: Someone set the limit to "35" inside a city but the road wasn't segmented so it sets the limit of the rural section to 35 mph as well.)

Being able to adjust these directly inside ABRP would certainly be a lot easier.

Agreed, and often they're over-segmented as well, where you have to set a speed limit along a road multiple times without any cross-streets or anything.

Link to comment
Share on other sites

This may be a two birds with one stone idea.  I've noticed that, when ABRP uses defaults, they tend not to be too far off, and can somewhat be compensated for by setting a reference speed above 100%.  But, the issue there is that it uses that percentage along the whole route, which can incorrectly modify some speeds.  For example, I usually drive about 5mph over the speed limit.  So, I want it to plan for me doing 75mph in a 70mph zone.  So I feed in 107% for the reference speed.  That's fine for 70mph zones, but in slower zones, like a 45mph zone, 107% will underestimate the speed.  Maybe have some option to have a flat amount added to speeds instead of a percentage.  That way, it would add 5mph whether the base speed were 70mph or 40mph.  And I know there are people who will drive 10mph over the limit (or worse), so the difference using the percentage would be greater.

I know it can be just a 2-3mph difference, but similar to what you said in your OP, a small difference can add up to the difference between making it and making an unplanned stop.  Perhaps a combination of updating the defaults and allowing a fixed over the limit (or even under the limit) adjustment instead of, or in addition to, the percentage adjustment that's currently allowed.

Link to comment
Share on other sites

Reading this it seems the terms of speed limit and average segment speed are are combined. These are two very different things.

A route planner should be using "average segment speed" and maybe specific to a vehicle. For highways this often is the speed limit but doesn't have to. It can be a little bit higher or much lower but taking the actual speed limit on highways is a pretty good start.

Here in the Netherlands lots of roads have 60, 50, or 30km/h speedlimits but actual speeds are much lower. For example, the road next to my house is 30km/h max but people likely travel 10-15km/h on average due to speed bumps and being a narrow street. If you would travel at 30km/h then you are an asshole. On the other hand, these are not the main roads so not heavily involved.

Then there are our 80's roads in my neighborhood which are full of crossings with stoplights where I think the average speed on the whole stretch is 50-60km/h. These are main roads and depending on where you need to be will primarily travel on these instead of using the highways.

 

 

Link to comment
Share on other sites

On the whole, I think your second table is probably more accurate, especially for rural areas.  I just spent far too long trying to figure out why ABRP was routing me the way it was, and eventually concluded that a state highway along the way was being assumed to be 35 when it's actually 50-55 except when passing through the one town on that segment.  As a result, ABRP either sent me a totally different route (along a path that has at least some speed limits provided) or had me go further up the interstate and then take a US highway back rather than drive on the state highway.

Honestly, I'd love to see an app that tracked drives and asked you about the speed limit when on a road that OSM doesn't have data for.  Better yet, check what speed you're driving most of the time, make a guess, and ask you to confirm.

Being able to supply the data directly in ABRP would be fantastic as well.

Link to comment
Share on other sites

According to another thread I found, Tesla uses Valhalla to get this data, which is based on OSM's table here:  https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Maxspeed#United_States_of_America.  However, that table isn't complete, either by state or by road type.  https://github.com/valhalla/valhalla-docs/blob/master/speeds.md has more info on how they estimate when data is missing, but the most interesting piece is this in addition to road type:

Quote

road density: The road density (the length of drivable roads in kilometers per square kilometer) at each node in the routing graph is estimated during Valhalla data import. The road density is used to determine if a road is in a rural or urban area. Roads in urban areas have their speed reduced if there is no maxspeed tag. In the future, this method may be replaced with a more accurate measure of rural versus urban regions, but density produces adequate results for now.

Also, the OSM page links to this on Wikipedia which gives the rules (sadly non-uniform) by state:  https://en.wikipedia.org/wiki/Speed_limits_in_the_United_States_by_jurisdiction

Edited by evequefou
Link to comment
Share on other sites

In the first table, add a High Speed Highway line and have the other one for the other most typical freeway speeds. Washington and Oregon are 70 MPH while Utah may be 80 MPH. I found this link that seems to answer the questions for US: https://www.motorists.org/issues/speed-limits/state-chart/    It may be too detailed for your needs, but provides the input needed.

I provided a request, Provide Input For Each Leg and Waypoint, which asks to provide input that is driving specific for each leg and NOT values for the entire trip. That may help this issue. But it is vital to getting good plans.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...