-
Notifications
You must be signed in to change notification settings - Fork 130
New lane model (Handling Junctions with OSI::GroundTruth::Lane - issue #80) #110
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -599,7 +599,7 @@ message TrafficLight | |
| optional GreenArrowPresence green_arrow = 6; | ||
|
|
||
| // The ids of the lanes that the traffic light is assigned to. | ||
| // Might be multiple if the traffic light is valid for multiple lanes. | ||
| // Might be multiple if the traffic light is valid for multiple driving lanes. | ||
| repeated Identifier assigned_lane = 7; | ||
|
|
||
| // Definition of traffic light types. | ||
|
|
@@ -819,6 +819,11 @@ message RoadMarking | |
| // Might be multiple if the road marking goes across multiple lanes. | ||
| repeated Identifier assigned_lane = 6; | ||
|
|
||
| // Intersection orientation of the road marking. | ||
| // | ||
| // \note Defined for \c Lane::type = TYPE_INTERSECTION, otherwise zero vector | ||
| optional Vector3d roadmarking_orientation = 7; | ||
|
|
||
| // Definition of road marking types. | ||
| // | ||
| enum Type | ||
|
|
@@ -927,14 +932,17 @@ message RoadMarking | |
| // Marking with blue color. | ||
| // | ||
| COLOR_BLUE = 5; | ||
|
|
||
| // Marking with red color. | ||
| // | ||
| COLOR_RED = 6; | ||
|
|
||
| // Marking with green color. | ||
| // | ||
| COLOR_GREEN = 7; | ||
|
|
||
| // Marking with violet color. | ||
| // | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Suggestion: the same typo might be fixed in the line 58 |
||
| COLOR_VIOLET = 8; | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -44,47 +44,64 @@ message Lane | |
| // | ||
| // \image html line_approximation_error.png "Approximation error as green line." | ||
| // | ||
| // \note Centerline is defined only for \c Lane::type = \c TYPE_DRIVING and one | ||
| // \c Lane::lane_pairing pair. | ||
| repeated Vector3d center_line = 3; | ||
|
|
||
| // The boundary of the lane. | ||
| // Definition of the intended driving direction. | ||
| // | ||
| // The lane boundaries describe the lane markings or other boundaries delimiting the lane as well as free lines that | ||
| // might be used e.g. in construction sites. The lane markings do not have to be parallel to the center_line, but | ||
| // they are the basis for calculating the width of the lane at any given distance. | ||
| // Defined and used for driving lanes. | ||
| // true means driving direction is according to ascending order of center line points. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. true means driving direction agrees with ascending storage order of the points defining the center_line. |
||
| // false means driving direction is according to descending order of center line points. | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. false means driving direction disagrees with descending storage order of the points defining the center_line. |
||
| // | ||
| // Example: The double solid line above the 3, and the dashed line below the 3. (see reference picture) There might | ||
| // also be additional free lanes. | ||
| repeated LaneBoundary lane_boundary = 4; | ||
| // \note CenterlineIsDrivingDirection is defined for \c Lane::type = TYPE_DRIVING. | ||
| optional bool center_line_is_driving_direction = 4; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To maintain basic backward compatibility field tag 4 should be reserved and center_line_is_driving_direction should get a new tag (after existing ones). |
||
|
|
||
| // List of ids of all lane segments that are directy adjacent to the lane on the left side (w.r.t. intended driving | ||
| // direction). Note that lengths of lane segments are not synchronized and therefore there are multiple adjacent | ||
| // segments if there is a split/merge point in the adjacent lane. | ||
| // Example: The lane id 2 is the only left adjacent lane for lane id 3 in the reference picture. | ||
| // | ||
| // \note Left isn't defined for \c Lane::type = TYPE_INTERSECTION. | ||
| repeated Identifier left_adjacent_lane_id = 5; | ||
|
|
||
| // List of ids of all lane segments that are directy adjacent to the lane on the right side (w.r.t. intended driving | ||
| // direction). Note that lengths of lane segments are not synchronized and therefore there are multiple adjacent | ||
| // segments if there is a split/merge point in the adjacent lane. | ||
| // Example: The lane ids 4 and 7 are the right adjacent lane segments for lane id 3 in the reference picture due to | ||
| // the lane split. Lane id 6 is not a right adjacent lane to lane id 3 as they are separated by lane id 7. | ||
| // | ||
| // \note Right isn't defined for \c Lane::type = TYPE_INTERSECTION. | ||
| repeated Identifier right_adjacent_lane_id = 6; | ||
|
|
||
| // The lane's antecessors (lanes that end in the same point that this lane's center line starts from). | ||
| // There might be multiple antecessors e.g. in road crossings or on lane merges. | ||
| // Example: Considering lane 6, its antecessor is the lane with id 4. | ||
| repeated Identifier antecessor_lane_id = 7; | ||
| // The antecessor/successor lane pairings of this lane. There can be multiple pairings with the same | ||
| // antecessor and different successor lanes and vice versa. | ||
| // The antecessor lanes end in the same point that this lane starts from. | ||
| // The successor lanes start in the same point that this lane ends in. | ||
| // Example: | ||
| repeated LanePairing lane_pairing = 7; | ||
|
|
||
| // The id of the right boundary ID of the right lane ID w.r.t. driving direction. Empty for intersections. | ||
| // | ||
| // \note Left isn't defined for \c Lane::type = TYPE_INTERSECTION. | ||
| repeated Identifier right_lane_boundary_id = 8; | ||
|
|
||
| // The lane's successors (lanes that start in the same point that this lane's center line ends in). | ||
| // There might be multiple successors e.g. in road crossings, highway exits, or lane splits. | ||
| // Example: Considering lane 4, its successors are the lanes with id 6 and 7. | ||
| repeated Identifier successor_lane_id = 8; | ||
| // The id of the left boundary ID of the left lane ID w.r.t. driving direction. Empty for intersections. | ||
| // | ||
| // \note Left isn't defined for \c Lane::type = TYPE_INTERSECTION. | ||
| repeated Identifier left_lane_boundary_id = 9; | ||
|
|
||
| // The id of the free boundary ID. | ||
| // | ||
| // \note Lanes with \c Lane::type = TYPE_INTERSECTION use only free lane boundaries | ||
| repeated Identifier free_lane_boundary_id = 10; | ||
|
|
||
| // A lane framing describes the surrounding of the lane segment. | ||
| // | ||
| optional LaneFraming lane_framing = 9; | ||
| optional LaneFraming lane_framing = 11; | ||
|
|
||
| // The condition of the lane, e.g. influenced by weather. | ||
| optional RoadCondition road_condition = 10; | ||
| optional RoadCondition road_condition = 12; | ||
|
|
||
| // Definition of available lane types. | ||
| // | ||
|
|
@@ -100,27 +117,15 @@ message Lane | |
|
|
||
| // A normal lane. | ||
| // E.g. lanes with ids 1, 2, 3, 4 and 7 of the highway_exit image. | ||
| TYPE_NORMAL = 2; | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. To retain backward compatiblity TYPE_NORMAL can be changed to TYPE_DRIVING, I think, but the new TYPE_NONDRIVING and TYPE_INTERSECTION enum values should be new unused values to avoid misinterpretation, I think... |
||
|
|
||
| // A stop/emergency lane on highways/freeways. | ||
| // E.g. lane with id 5 of the highway_exit image. | ||
| TYPE_EMERGENCY = 3; | ||
|
|
||
| // A freeway/highway entry lane. | ||
| // | ||
| TYPE_ENTRANCE = 4; | ||
|
|
||
| // A freeway/highway exit lane. | ||
| // E.g. lane with id 6 of the highway_exit image. | ||
| TYPE_EXIT = 5; | ||
|
|
||
| // A car pooling lane. | ||
| TYPE_DRIVING = 2; | ||
|
|
||
| // A road where driving is normally not permitted | ||
| // | ||
| TYPE_HIGH_OCCUPANCY_VEHICLE = 6; | ||
| // A road area / lane reserved for parking. | ||
| TYPE_NONDRIVING = 3; | ||
|
|
||
| // An intersection as a lane. | ||
| // | ||
| TYPE_PARKING = 7; | ||
| TYPE_INTERSECTION = 4; | ||
| } | ||
|
|
||
| // Definition of available lane framing types. | ||
|
|
@@ -207,6 +212,19 @@ message Lane | |
| } | ||
| } | ||
|
|
||
| // \brief The lane id pairings of antecessor and successor lanes. | ||
| // | ||
| message LanePairing | ||
| { | ||
| // The antecessor lane. | ||
| // | ||
| optional Identifier antecessor_lane_id = 1; | ||
|
|
||
| // The successor lane. | ||
| // | ||
| optional Identifier successor_lane_id = 2; | ||
| } | ||
|
|
||
| // | ||
| // \brief A lane boundary defining the border of a lane. | ||
| // | ||
|
|
@@ -216,6 +234,9 @@ message Lane | |
| // | ||
| message LaneBoundary | ||
| { | ||
| //The id of the lane boundary. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Again, if we want to technically remain backward compatible, the id field need to use a new tag number and the remaining fields should retain their tag numbers. |
||
| optional Identifier id = 1; | ||
|
|
||
| // The list of individual points defining the location of the lane boundary. | ||
| // | ||
| // Since a BoundaryPoint is part of a sequence only the position attribute has to be set for each instance. All | ||
|
|
@@ -225,11 +246,7 @@ message LaneBoundary | |
| // | ||
| // \attention For BoundaryPoints the same rules apply as for Lane::center_line regarding maximum distance and | ||
| // approximation error. | ||
| repeated BoundaryPoint boundary_line = 1; | ||
|
|
||
| // The location of the lane boundary within the lane. | ||
| // | ||
| optional BoundaryLocation location = 2; | ||
| repeated BoundaryPoint boundary_line = 2; | ||
|
|
||
| // The type of the lane boundary. | ||
| // | ||
|
|
@@ -239,31 +256,6 @@ message LaneBoundary | |
| // | ||
| optional Color color = 4; | ||
|
|
||
| // The location of the lane boundary within the lane. | ||
| // | ||
| enum BoundaryLocation | ||
| { | ||
| // The location of the boundary is unknown. Value must not be used in ground truth. | ||
| // | ||
| BOUNDARY_LOCATION_UNKNOWN = 0; | ||
|
|
||
| // Other (unspecified but known) boundary location. | ||
| // | ||
| BOUNDARY_LOCATION_OTHER = 1; | ||
|
|
||
| // A left lane boundary. | ||
| // | ||
| BOUNDARY_LOCATION_LEFT = 2; | ||
|
|
||
| // A right lane boundary. | ||
| // | ||
| BOUNDARY_LOCATION_RIGHT = 3; | ||
|
|
||
| // A free lane boundary. | ||
| // | ||
| BOUNDARY_LOCATION_FREE = 4; | ||
| } | ||
|
|
||
| // The lane boundary type. | ||
| // There are no double lines, e.g. solid solid or dashed solid, as each lane will define its own side of the lane boundary. | ||
| enum Type | ||
|
|
@@ -348,6 +340,10 @@ message LaneBoundary | |
| // Marking with green color; | ||
| // | ||
| COLOR_GREEN = 7; | ||
|
|
||
| // Marking with violet color. | ||
| // | ||
| COLOR_VIOLET = 8; | ||
| } | ||
| } | ||
|
|
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my opinion this is redundant. Just
A list of lane boundaries.would be enough.