From 471410db19c2a4ee5f3c58403d7bb42741ab5d1f Mon Sep 17 00:00:00 2001 From: Clemens Habedank Date: Wed, 7 Oct 2020 17:56:40 +0200 Subject: [PATCH 1/3] Add lane sub-types to represent OpenDRIVE lane type information This is an interim solution for lane type information from OpenDRIVE coordinated with ASAM to allow for pedestrian model implementation. Signed-off-by: Pierre R. Mai --- osi_lane.proto | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/osi_lane.proto b/osi_lane.proto index c893a7ac0..f8ff9898c 100644 --- a/osi_lane.proto +++ b/osi_lane.proto @@ -346,6 +346,24 @@ message Lane // optional RoadCondition road_condition = 11; + // The subtype of the lane. + // + // This subtype specifies a lane more concretely. + // + // \note More subtypes will follow from ASAM (Harmonization with + // OpenX), probably with being more specific about which + // type/subtype combination will be possible/allowed. It is + // verbally aligned with the ASAM working group, that the + // introduction of subtypes will be the implementation for next + // minor releases and also probably be the long-term + // solution. This still leaves open the question, if exactly those + // semantics (e.g. with the current types) will outlive the next + // major release. For SETLevel, sidewalk and biking lane shall be + // regarded as subtypes of TYPE_DRIVING. (This note can be deleted + // after implementation at ASAM.) + // + optional Subtype subtype = 12; + // Definition of available lane types. // enum Type @@ -377,6 +395,33 @@ message Lane TYPE_INTERSECTION = 4; } + // Definition of available lane subtypes. + // + enum Subtype + { + // Lane of unknown subtype (must not be used in ground truth). + // + SUBTYPE_UNKNOWN = 0; + + // Any other subtype of lane. + // + SUBTYPE_OTHER = 1; + + // A normal lane. + // Example: Lanes with IDs l1, l2, l3, l4 and l6 in image \ref + // HighwayExit. + // + SUBTYPE_NORMAL = 2; + + // A lane which is designated for bicylists. + // + SUBTYPE_BIKING = 3; + + // A lane which is designated for pedestrians (sidewalk). + // + SUBTYPE_SIDEWALK = 4; + } + // // \brief The condition of the road surface. // From 0d4ef244cd8661d7ac5867afdf1c234f1657975e Mon Sep 17 00:00:00 2001 From: Hendrik Amelunxen Date: Tue, 3 Nov 2020 15:15:11 +0100 Subject: [PATCH 2/3] Extend lane subtypes based on OpenDRIVE types Added comments regarding types + subtypes combinations. Signed-off-by: Pierre R. Mai --- osi_lane.proto | 103 +++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 87 insertions(+), 16 deletions(-) diff --git a/osi_lane.proto b/osi_lane.proto index f8ff9898c..f220a2aa7 100644 --- a/osi_lane.proto +++ b/osi_lane.proto @@ -348,19 +348,7 @@ message Lane // The subtype of the lane. // - // This subtype specifies a lane more concretely. - // - // \note More subtypes will follow from ASAM (Harmonization with - // OpenX), probably with being more specific about which - // type/subtype combination will be possible/allowed. It is - // verbally aligned with the ASAM working group, that the - // introduction of subtypes will be the implementation for next - // minor releases and also probably be the long-term - // solution. This still leaves open the question, if exactly those - // semantics (e.g. with the current types) will outlive the next - // major release. For SETLevel, sidewalk and biking lane shall be - // regarded as subtypes of TYPE_DRIVING. (This note can be deleted - // after implementation at ASAM.) + // This subtype specifies a lane more concretely. // optional Subtype subtype = 12; @@ -395,7 +383,7 @@ message Lane TYPE_INTERSECTION = 4; } - // Definition of available lane subtypes. + // Definition of available lane subtypes, aligned with OpenDRIVE. // enum Subtype { @@ -407,19 +395,102 @@ message Lane // SUBTYPE_OTHER = 1; - // A normal lane. - // Example: Lanes with IDs l1, l2, l3, l4 and l6 in image \ref + // A normal driving lane. + // Example: Lanes with IDs l1, l2, l3 and l4 in image \ref // HighwayExit. // + // Since it is intended to be used for normal automotive + // driving it should be used in combination with TYPE_DRIVING. + // SUBTYPE_NORMAL = 2; // A lane which is designated for bicylists. // + // Since it is not intended to be used for normal automotive + // driving it should be used in combination with TYPE_NONDRIVING. + // SUBTYPE_BIKING = 3; // A lane which is designated for pedestrians (sidewalk). // + // Since it is not intended to be used for normal automotive + // driving it should be used in combination with TYPE_NONDRIVING. + // SUBTYPE_SIDEWALK = 4; + + // A lane with parking spaces. + // + // Since it is not intended to be used for normal automotive + // driving it should be used in combination with TYPE_NONDRIVING. + // + SUBTYPE_PARKING = 5; + + // A hard shoulder on motorways for emergency stops. + // Example: Lane l5 in image \ref + // HighwayExit. + // + // Since it is not intended to be used for normal automotive + // driving it should be used in combination with TYPE_NONDRIVING. + // + SUBTYPE_STOP = 6; + + // A lane on which cars should not drive. + // + // Since it is not intended to be used for normal automotive + // driving it should be used in combination with TYPE_NONDRIVING. + // + SUBTYPE_RESTRICTED = 7; + + // A hard border on the edge of a road. + // + // Since it is not intended to be used for normal automotive + // driving it should be used in combination with TYPE_NONDRIVING. + // + SUBTYPE_BORDER = 8; + + // A soft border on the edge of a road. + // + // Since it is not intended to be used for normal automotive + // driving it should be used in combination with TYPE_NONDRIVING. + // + SUBTYPE_SHOULDER = 9; + + // A deceleration lane in parallel to the main road. + // Example: Lane l6 in image \ref + // HighwayExit. + // + // Since it is intended to be used for normal automotive + // driving it should be used in combination with TYPE_DRIVING. + // + SUBTYPE_EXIT = 10; + + // An acceleration lane in parallel to the main road. + // + // Since it is intended to be used for normal automotive + // driving it should be used in combination with TYPE_DRIVING. + // + SUBTYPE_ENTRY = 11; + + // A ramp leading to a motorway from rural or urban roads. + // + // Since it is intended to be used for normal automotive + // driving it should be used in combination with TYPE_DRIVING. + // + SUBTYPE_ONRAMP = 12; + + // A ramp leading away from a motorway onto rural or urban roads. + // + // Since it is intended to be used for normal automotive + // driving it should be used in combination with TYPE_DRIVING. + // + SUBTYPE_OFFRAMP = 13; + + // A ramp that connect two motorways. + // + // Since it is intended to be used for normal automotive + // driving it should be used in combination with TYPE_DRIVING. + // + SUBTYPE_CONNECTINGRAMP = 14; } // From 0ec6375e057e97979abda582f709f9de130945b6 Mon Sep 17 00:00:00 2001 From: paagkame Date: Mon, 14 Dec 2020 14:11:05 +0100 Subject: [PATCH 3/3] feat(docs): linguistic review Signed-off-by: Pierre R. Mai --- osi_lane.proto | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/osi_lane.proto b/osi_lane.proto index f220a2aa7..b9b1cce10 100644 --- a/osi_lane.proto +++ b/osi_lane.proto @@ -387,7 +387,7 @@ message Lane // enum Subtype { - // Lane of unknown subtype (must not be used in ground truth). + // Lane of unknown subtype. Do not use in ground truth. // SUBTYPE_UNKNOWN = 0; @@ -400,28 +400,28 @@ message Lane // HighwayExit. // // Since it is intended to be used for normal automotive - // driving it should be used in combination with TYPE_DRIVING. + // driving, it should be used in combination with TYPE_DRIVING. // SUBTYPE_NORMAL = 2; - // A lane which is designated for bicylists. + // A lane that is designated for bicylists. // // Since it is not intended to be used for normal automotive - // driving it should be used in combination with TYPE_NONDRIVING. + // driving, it should be used in combination with TYPE_NONDRIVING. // SUBTYPE_BIKING = 3; - // A lane which is designated for pedestrians (sidewalk). + // A lane that is designated for pedestrians (sidewalk). // // Since it is not intended to be used for normal automotive - // driving it should be used in combination with TYPE_NONDRIVING. + // driving, it should be used in combination with TYPE_NONDRIVING. // SUBTYPE_SIDEWALK = 4; // A lane with parking spaces. // // Since it is not intended to be used for normal automotive - // driving it should be used in combination with TYPE_NONDRIVING. + // driving, it should be used in combination with TYPE_NONDRIVING. // SUBTYPE_PARKING = 5; @@ -430,28 +430,28 @@ message Lane // HighwayExit. // // Since it is not intended to be used for normal automotive - // driving it should be used in combination with TYPE_NONDRIVING. + // driving, it should be used in combination with TYPE_NONDRIVING. // SUBTYPE_STOP = 6; // A lane on which cars should not drive. // // Since it is not intended to be used for normal automotive - // driving it should be used in combination with TYPE_NONDRIVING. + // driving, it should be used in combination with TYPE_NONDRIVING. // SUBTYPE_RESTRICTED = 7; // A hard border on the edge of a road. // // Since it is not intended to be used for normal automotive - // driving it should be used in combination with TYPE_NONDRIVING. + // driving, it should be used in combination with TYPE_NONDRIVING. // SUBTYPE_BORDER = 8; // A soft border on the edge of a road. // // Since it is not intended to be used for normal automotive - // driving it should be used in combination with TYPE_NONDRIVING. + // driving, it should be used in combination with TYPE_NONDRIVING. // SUBTYPE_SHOULDER = 9; @@ -460,35 +460,35 @@ message Lane // HighwayExit. // // Since it is intended to be used for normal automotive - // driving it should be used in combination with TYPE_DRIVING. + // driving, it should be used in combination with TYPE_DRIVING. // SUBTYPE_EXIT = 10; // An acceleration lane in parallel to the main road. // // Since it is intended to be used for normal automotive - // driving it should be used in combination with TYPE_DRIVING. + // driving, it should be used in combination with TYPE_DRIVING. // SUBTYPE_ENTRY = 11; - // A ramp leading to a motorway from rural or urban roads. + // A ramp from rural or urban roads joining a motorway. // // Since it is intended to be used for normal automotive - // driving it should be used in combination with TYPE_DRIVING. + // driving, it should be used in combination with TYPE_DRIVING. // SUBTYPE_ONRAMP = 12; - // A ramp leading away from a motorway onto rural or urban roads. + // A ramp leading off a motorway onto rural or urban roads. // // Since it is intended to be used for normal automotive - // driving it should be used in combination with TYPE_DRIVING. + // driving, it should be used in combination with TYPE_DRIVING. // SUBTYPE_OFFRAMP = 13; // A ramp that connect two motorways. // // Since it is intended to be used for normal automotive - // driving it should be used in combination with TYPE_DRIVING. + // driving, it should be used in combination with TYPE_DRIVING. // SUBTYPE_CONNECTINGRAMP = 14; }