Skip to content

Commit 20c0935

Browse files
tbleherStefan Cyliax
authored andcommitted
Support bidirectional lanes
Signed-off-by: Thomas Bleher <thomas.tb.bleher@bmw.de>
1 parent 15e509f commit 20c0935

File tree

1 file changed

+49
-6
lines changed

1 file changed

+49
-6
lines changed

osi_logicallane.proto

Lines changed: 49 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ message LogicalLaneBoundary
286286
// - The yellow line is the ReferenceLine of \c l1 . The ReferenceLine can be
287287
// shared with other lanes. Because the ReferenceLine has the same direction
288288
// as the driving direction of \c l1 in this example,
289-
// <code>#reference_line_is_driving_direction == true</code>.
289+
// <code>#move_direction == #MOVE_DIRECTION_INCREASING_S</code>.
290290
// - The red line marks the area where \c l2 is left of
291291
// \c l1 - this info is recorded in #left_adjacent_lane of \c l1.
292292
// - The red area is the area where \c l2 overlaps \c l1. This is recorded in
@@ -303,7 +303,7 @@ message LogicalLaneBoundary
303303
// - The yellow line is the ReferenceLine of \c l2 . The ReferenceLine can be
304304
// shared with other lanes. Because the ReferenceLine has the same direction
305305
// as the driving direction of \c l2 in this example,
306-
// <code>#reference_line_is_driving_direction == true</code>.
306+
// <code>#move_direction == #MOVE_DIRECTION_INCREASING_S</code>.
307307
// - The green line marks the area where \c l1 is right of
308308
// \c l2 - this info is recorded in #right_adjacent_lane of \c l2.
309309
// - The red area is the area where \c l1 overlaps \c l2. This is recorded in
@@ -442,10 +442,7 @@ message LogicalLane
442442

443443
// \brief Definition of the intended driving direction.
444444
//
445-
// \c true means driving direction is according to ascending S position.
446-
// \c false means driving direction is according to descending S position.
447-
//
448-
optional bool reference_line_is_driving_direction = 8;
445+
optional MoveDirection move_direction = 8;
449446

450447
// \brief Lanes that are directly right of this lane, without gap or overlap.
451448
//
@@ -587,6 +584,10 @@ message LogicalLane
587584
// HighwayExit.
588585
// This matches the OpenDRIVE type "driving".
589586
//
587+
// Note: a lane with OpenDRIVE type "bidirectional" will have an OSI
588+
// type of TYPE_NORMAL, with <code>#move_direction ==
589+
// #MOVE_DIRECTION_BOTH_ALLOWED</code>.
590+
//
590591
TYPE_NORMAL = 2;
591592

592593
// A lane that is designated for bicylists.
@@ -694,6 +695,48 @@ message LogicalLane
694695
optional double end_s = 3;
695696
}
696697

698+
//
699+
// \brief Describes in which direction moving objects may typically move
700+
// along a lane.
701+
//
702+
// This describes the allowed typical driving direction on a lane, or (in
703+
// the case of pedestrian) the allowed walking direction.
704+
//
705+
// Note: Allowed overtaking (e.g. on country roads) does not automatically
706+
// make a lane bidirectional, since vehicles may normally only drive in the
707+
// other direction during the overtake maneuver, not for longer periods of
708+
// time.
709+
//
710+
enum MoveDirection
711+
{
712+
// Move direction is unknown. Do not use in ground truth.
713+
//
714+
MOVE_DIRECTION_UNKNOWN = 0;
715+
716+
// Move direction fits neither of the other categories.
717+
//
718+
// Example: a lane where cars may only drive in one direction, but
719+
// bikes may drive in both.
720+
//
721+
MOVE_DIRECTION_OTHER = 1;
722+
723+
// Objects may move in increasing S direction.
724+
//
725+
// This means they move in the same direction as the reference line.
726+
//
727+
MOVE_DIRECTION_INCREASING_S = 2;
728+
729+
// Objects may move in decreasing S direction.
730+
//
731+
// This means they move in the opposite direction as the reference line.
732+
//
733+
MOVE_DIRECTION_DECREASING_S = 3;
734+
735+
// Objects may move in both directions.
736+
//
737+
MOVE_DIRECTION_BOTH_ALLOWED = 4;
738+
}
739+
697740
//
698741
// \brief Connection to another lane (predecessor or successor)
699742
//

0 commit comments

Comments
 (0)