@@ -4,6 +4,7 @@ option optimize_for = SPEED;
44
55import "osi_common.proto" ;
66import "osi_object.proto" ;
7+ import "osi_trafficsign.proto" ;
78
89package osi3 ;
910
@@ -894,51 +895,53 @@ message LogicalLane
894895 optional double end_s = 2 ;
895896
896897 //
897- // List of vehicle types for which the speed limit is valid.
898+ // List of traffic participan types for which the speed limit is valid.
898899 // If the traffic rule validity is independent of the vehicle type
899900 // the list should be empty.
900901 //
901- repeated MovingObject.VehicleClassification.Type valid_for_type = 3 ;
902- }
903-
904- //
905- // \brief Speed limit on a lane.
906- //
907- message SpeedLimit {
902+ repeated TypeValidity valid_for_type = 3 ;
908903
909904 //
910- // The speed limit in the unit specified by the respective files
905+ // \brief Type of traffic paricipant for which a rule is valid.
911906 //
912- optional double speed_limit = 1 ;
907+ message TypeValidity {
913908
914- //
915- // The unit in which the speed limit is specified.
916- //
917- optional Unit speed_limit_unit = 2 ;
918-
919- // Unit of the specified speed limit.
920- //
921- enum Unit
922- {
923- // Meters per second.
924909 //
925- // Unit: m/s
910+ // The type of objects for which the traffic rule applys.
911+ // Must not be UNKNOWN or OTHER
926912 //
927- UNIT_METER_PER_SECOND = 0 ;
928-
929- // Kilometers per hour.
913+ optional MovingObject.Type type = 1 ;
914+
930915 //
931- // Unit: km/h
916+ // Vehicle classification type for trafic participants
917+ // May only be set if type is TYPE_VEHICLE. Must not be UNKNOWN or OTHER.
932918 //
933- UNIT_KILOMETER_PER_HOUR = 1 ;
919+ optional MovingObject.VehicleClassification.Type vehicle_type = 2 ;
934920
935- // Miles per hour.
936921 //
937- // Unit: mph
922+ // Role of traffic participant.
923+ // May only be set if type is TYPE_VEHICLE. Must not be UNKNOWN or OTHER.
938924 //
939- UNIT_MILE_PER_HOUR = 2 ;
925+ optional MovingObject.VehicleClassification.Role vehicle_role = 3 ;
940926 }
941927 }
928+
929+ //
930+ // \brief Speed limit on a lane.
931+ //
932+ message SpeedLimit {
933+
934+ //
935+ // The value of the speed limit.
936+ // The unit filed in the TrafficSigneValue message may only be set to
937+ // units associated with velocities and must not be UNKNOWN or OTHER.
938+ //
939+ // Note: All speed limits are to be modelled this way, indpendent
940+ // of how they are induced.
941+ //
942+ optional TrafficSignValue speed_limit_value = 1 ;
943+
944+ }
942945 }
943946
944947}
0 commit comments