6.3.0
Description
Abstract
allow lane-changes everywhere in VEHICLE_WITH_ROAD_SHOULDER
rouitng graph
Background
Basically, the lanelet2 lane change permission/disallowance setting is intended for Autoware and was not designed with the behavior of entities running in the traffic_simulator in mind.
Also, when an entity is commanded to change lanes in a scenario, it is considered appropriate to change lanes, even if that command ignores the Road Traffic Act and lane change settings.
Details
- make the linestrings between
road
androad_shoulder
intosolid
(un-lane-changeable) fromdashed
(lane-changeable) - allow lane-changes everywhere in
VEHICLE_WITH_ROAD_SHOULDER
rouitng graph
details of getLeftLaneletIds
/ getRightLaneletIds
changes
In this pull-request, I changed lanelet2
function mapping switched by include_oppsite_direction
flag.
previous mappping
include_oppsite_direction
: true(The de facto default)lanelet::routing::RoutingGraph::adjacentRights/adjacentLefts
include_oppsite_direction
: falselanelet::routing::RoutingGraph::rights/lefts
incoming mappping
include_oppsite_direction
: true- no mapping (throw an exception)
include_oppsite_direction
: false(The de facto default)lanelet::routing::RoutingGraph::rights/lefts
Important
lanelet::routing::RoutingGraph::adjacentRights/adjacentLefts
do not have the ability to acquire adjacent lanes,
including the opposite lane.
The only difference between rights
and adjacentRights
is whether the adjacent lanelet they acquire is routable or not.
(Both do not have the ability to acquire the opposite lanes.)
routing changes possibility due to this change
In this pull-request allows lane-changes everywhere.
This change will result in some changes to routing, as exemplified by the tests below.
Routing will always prioritize smaller cost (in this case, shorter distance), so longitudinal distance measurements may be smaller than before.
Before this pull-request
The routing graph and adjacent lane search options only allow you to get this route.
After this pull-request
By expanding the range of the RoutingGraph, we can compare more candidates and select a route with a shorter distance (in this case, the route is shorter if it goes on the inside of the curve).
References
Destructive Changes
Please see "routing changes possibility due to this change" in Details
section.