Skip to content

Logical Lanes in OSI #599

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 37 commits into from
Mar 31, 2022
Merged
Changes from 1 commit
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
808f3e6
Draft for discussion: Logical Lanes in OSI
tbleher Nov 18, 2021
4b317f1
Fix a spelling error in osi_logicallane.proto
tbleher Nov 23, 2021
96b8618
Adaptations from first round of review
tbleher Nov 23, 2021
836b859
Update osi_logicallane.proto: fix wrong mention of "road" instead of …
tbleher Nov 25, 2021
f31bf82
Logical Lanes: add a few refers_to rules
tbleher Jan 7, 2022
4ceb1a2
LogicalLaneBoundary: reference LaneBoundary, and add PassingRule
tbleher Jan 7, 2022
731b295
Move ReferenceLine to separate file
tbleher Jan 10, 2022
e1998cd
Rework PassingRule enum, based on review in working group
tbleher Jan 10, 2022
7291e91
Clarify physical_boundary_id example a bit
tbleher Jan 10, 2022
3b8198d
Update Doxygen documentation
tbleher Jan 19, 2022
03bd76d
Clarify when objects should be assigned to lanes.
tbleher Jan 19, 2022
7d3f631
Add own type for logical lanes
tbleher Jan 21, 2022
df07a01
Allow a logical lane to reference several physical lanes
tbleher Jan 21, 2022
e2f1863
Allow logical boundaries to extend beyond the logical lane
tbleher Jan 21, 2022
987ecee
Small doc update
tbleher Jan 21, 2022
eb0dff7
Improve LogicalLane documentation, add two example images.
tbleher Jan 24, 2022
cbdc34a
Extend documentation on reference line
tbleher Jan 27, 2022
35b87b5
Clarify when lanes should share a reference line
tbleher Jan 27, 2022
674315c
Make example regarding difference between Lane and LogicalLane more g…
tbleher Jan 31, 2022
b29338f
Limit allowed Z error to 2cm
tbleher Jan 31, 2022
365e515
Move PASSING_RULE_OTHER to the top, according to OSI convention.
tbleher Jan 31, 2022
ba2fbe9
Explain a bit where overlapping_lane should be filled
tbleher Jan 31, 2022
c7634c8
Consistently use "intersection" instead of "junction"
tbleher Jan 31, 2022
7ffc417
Better explain where TYPE_BIKING and TYPE_SIDEWALK should be used
tbleher Jan 31, 2022
28375fb
Add TYPE_RAIL and TYPE_TRAM
tbleher Jan 31, 2022
1d84acb
Add note that PASSING_RULE_OTHER should be used between non-drivable …
tbleher Jan 31, 2022
83ac8e1
Clarify merging of lanes
tbleher Jan 31, 2022
37bcd27
Expand explanation on predecessor and successor
tbleher Jan 31, 2022
d54a599
Support bidirectional lanes
tbleher Jan 31, 2022
62df899
Remove LogicalLaneAssignment from non-Groundtruth objects
tbleher Jan 31, 2022
065aaa5
Add new files to setup.py
tbleher Jan 31, 2022
a911992
Remove tabs
tbleher Feb 1, 2022
d2048d8
Move LogicalLaneAssignment to Classification
tbleher Feb 2, 2022
e73cd47
Fix test_brief_necessity errors
tbleher Feb 2, 2022
34484f4
Add a small note on the heights of the boundary.
tbleher Mar 24, 2022
c3c0244
Add a note on how to create reference lines for map formats without r…
tbleher Mar 24, 2022
c7dc6ea
Explain how curbs are handled
tbleher Mar 29, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Support bidirectional lanes
Signed-off-by: Thomas Bleher <thomas.tb.bleher@bmw.de>
  • Loading branch information
tbleher committed Mar 24, 2022
commit d54a599036a35b95dc665b423497f139a58bc1ca
55 changes: 49 additions & 6 deletions osi_logicallane.proto
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ message LogicalLaneBoundary
// - The yellow line is the ReferenceLine of \c l1 . The ReferenceLine can be
// shared with other lanes. Because the ReferenceLine has the same direction
// as the driving direction of \c l1 in this example,
// <code>#reference_line_is_driving_direction == true</code>.
// <code>#move_direction == #MOVE_DIRECTION_INCREASING_S</code>.
// - The red line marks the area where \c l2 is left of
// \c l1 - this info is recorded in #left_adjacent_lane of \c l1.
// - The red area is the area where \c l2 overlaps \c l1. This is recorded in
Expand All @@ -303,7 +303,7 @@ message LogicalLaneBoundary
// - The yellow line is the ReferenceLine of \c l2 . The ReferenceLine can be
// shared with other lanes. Because the ReferenceLine has the same direction
// as the driving direction of \c l2 in this example,
// <code>#reference_line_is_driving_direction == true</code>.
// <code>#move_direction == #MOVE_DIRECTION_INCREASING_S</code>.
// - The green line marks the area where \c l1 is right of
// \c l2 - this info is recorded in #right_adjacent_lane of \c l2.
// - The red area is the area where \c l1 overlaps \c l2. This is recorded in
Expand Down Expand Up @@ -442,10 +442,7 @@ message LogicalLane

// \brief Definition of the intended driving direction.
//
// \c true means driving direction is according to ascending S position.
// \c false means driving direction is according to descending S position.
//
optional bool reference_line_is_driving_direction = 8;
optional MoveDirection move_direction = 8;

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

// A lane that is designated for bicylists.
Expand Down Expand Up @@ -694,6 +695,48 @@ message LogicalLane
optional double end_s = 3;
}

//
// \brief Describes in which direction moving objects may typically move
// along a lane.
//
// This describes the allowed typical driving direction on a lane, or (in
// the case of pedestrian) the allowed walking direction.
//
// Note: Allowed overtaking (e.g. on country roads) does not automatically
// make a lane bidirectional, since vehicles may normally only drive in the
// other direction during the overtake maneuver, not for longer periods of
// time.
//
enum MoveDirection
{
// Move direction is unknown. Do not use in ground truth.
//
MOVE_DIRECTION_UNKNOWN = 0;

// Move direction fits neither of the other categories.
//
// Example: a lane where cars may only drive in one direction, but
// bikes may drive in both.
//
MOVE_DIRECTION_OTHER = 1;

// Objects may move in increasing S direction.
//
// This means they move in the same direction as the reference line.
//
MOVE_DIRECTION_INCREASING_S = 2;

// Objects may move in decreasing S direction.
//
// This means they move in the opposite direction as the reference line.
//
MOVE_DIRECTION_DECREASING_S = 3;

// Objects may move in both directions.
//
MOVE_DIRECTION_BOTH_ALLOWED = 4;
}

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