Skip to content

Commit

Permalink
Allow a logical lane to reference several physical lanes
Browse files Browse the repository at this point in the history
Signed-off-by: Thomas Bleher <thomas.tb.bleher@bmw.de>
  • Loading branch information
tbleher authored and Stefan Cyliax committed Mar 31, 2022
1 parent a104039 commit 8193ab4
Showing 1 changed file with 45 additions and 13 deletions.
58 changes: 45 additions & 13 deletions osi_logicallane.proto
Original file line number Diff line number Diff line change
Expand Up @@ -302,13 +302,22 @@ message LogicalLane
//
repeated ExternalReference source_reference = 3;

// Reference to the physical lane this logical lane belongs to.
// Reference to the physical lanes this logical lane belongs to.
//
// This makes it possible to get detailed information on the physical lane
// properties, e.g. the visual colors of the boundaries, the road
// condition, etc..
//
// TODO Should this be a repeated field? Imagine the following scenario:
// Note: a logical lane may consist of several physical lanes (in a row).
// At any one S position, a logical lane should only reference one physical
// lane. Several logical lanes may reference the same physical lane (see
// drawing below).
//
// Logical lanes should not extend beyond intersections. All logical lanes
// on intersections should end at the latest at the border of the
// intersection.
//
// Example:
// <pre>
// ---------------------------------
// l1 l2
Expand All @@ -321,22 +330,21 @@ message LogicalLane
// lane marking is present. And l3 is one lane covering the whole road
// (because no road marking is present).
//
// Now there are two basic possibilities to define the logical lanes:
// - There could be two logical lanes: one encompassing l4, part of l3 and
// l5; another encompassing l2, part of l3 and l1. In this case, one
// logical lane can map to a number of physical lanes, and the mapping
// should include s positions, so it is clear which part of the logical
// lane maps to which physical lane.
// - There could be 6 logical lanes: l1, l2, l4, l5 and two lanes for each
// halve of l3. Then each logical lane would map to a single physical
// lane, but logical lanes would have to be split each time a lane
// marking appears or disappears.
// This would typically be presented as two logical lanes:
// - One encompassing l1, part of l3, and l2
// - The other encompassing l4, part of l3 and l5
//
// In this example, both logical lanes would reference l3. Their shared
// LogicalLaneBoundary would cut through the middle of l3.
//
// physical_lane_reference does not give any information how much of the
// area of a physical lane is covered by a logical lane.
//
// \rules
// refers_to: Lane
// \endrules
//
optional Identifier physical_lane_id = 4;
repeated PhysicalLaneReference physical_lane_reference = 4;

// The reference line for this logical lane
//
Expand Down Expand Up @@ -554,6 +562,30 @@ message LogicalLane
TYPE_CURB = 16;
}

//
// \brief Reference to a physical lane.
//
message PhysicalLaneReference
{
// Id of the physical lane referenced.
//
// \rules
// refers_to: Lane
// \endrules
//
optional Identifier physical_lane_id = 1;

// S position on the logical lane where the physical lane starts
//
optional double start_s = 2;

// S position on the logical lane where the physical lane ends
//
// Requirement: end_s > start_s
//
optional double end_s = 3;
}

//
// \brief Connection to another lane (predecessor or successor)
//
Expand Down

0 comments on commit 8193ab4

Please sign in to comment.