@@ -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
@@ -895,51 +896,53 @@ message LogicalLane
895896 optional double end_s = 2 ;
896897
897898 //
898- // List of vehicle types for which the speed limit is valid.
899+ // List of traffic participan types for which the speed limit is valid.
899900 // If the traffic rule validity is independent of the vehicle type
900901 // the list should be empty.
901902 //
902- repeated MovingObject.VehicleClassification.Type valid_for_type = 3 ;
903- }
904-
905- //
906- // \brief Speed limit on a lane.
907- //
908- message SpeedLimit {
903+ repeated TypeValidity valid_for_type = 3 ;
909904
910905 //
911- // The speed limit in the unit specified by the respective files
906+ // \brief Type of traffic paricipant for which a rule is valid.
912907 //
913- optional double speed_limit = 1 ;
908+ message TypeValidity {
914909
915- //
916- // The unit in which the speed limit is specified.
917- //
918- optional Unit speed_limit_unit = 2 ;
919-
920- // Unit of the specified speed limit.
921- //
922- enum Unit
923- {
924- // Meters per second.
925910 //
926- // Unit: m/s
911+ // The type of objects for which the traffic rule applys.
912+ // Must not be UNKNOWN or OTHER
927913 //
928- UNIT_METER_PER_SECOND = 0 ;
929-
930- // Kilometers per hour.
914+ optional MovingObject.Type type = 1 ;
915+
931916 //
932- // Unit: km/h
917+ // Vehicle classification type for trafic participants
918+ // May only be set if type is TYPE_VEHICLE. Must not be UNKNOWN or OTHER.
933919 //
934- UNIT_KILOMETER_PER_HOUR = 1 ;
920+ optional MovingObject.VehicleClassification.Type vehicle_type = 2 ;
935921
936- // Miles per hour.
937922 //
938- // Unit: mph
923+ // Role of traffic participant.
924+ // May only be set if type is TYPE_VEHICLE. Must not be UNKNOWN or OTHER.
939925 //
940- UNIT_MILE_PER_HOUR = 2 ;
926+ optional MovingObject.VehicleClassification.Role vehicle_role = 3 ;
941927 }
942928 }
929+
930+ //
931+ // \brief Speed limit on a lane.
932+ //
933+ message SpeedLimit {
934+
935+ //
936+ // The value of the speed limit.
937+ // The unit filed in the TrafficSigneValue message may only be set to
938+ // units associated with velocities and must not be UNKNOWN or OTHER.
939+ //
940+ // Note: All speed limits are to be modelled this way, indpendent
941+ // of how they are induced.
942+ //
943+ optional TrafficSignValue speed_limit_value = 1 ;
944+
945+ }
943946 }
944947
945948}
0 commit comments