Skip to content

Commit 31f4070

Browse files
authored
Merge branch 'master' into DocuOmitStaticInfo
2 parents f173310 + 560d23a commit 31f4070

File tree

3 files changed

+159
-2
lines changed

3 files changed

+159
-2
lines changed

.github/workflows/protobuf.yml

+25-1
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ jobs:
131131
if-no-files-found: error
132132

133133
- name: Upload Python Distribution
134-
if: ${{ github.event_name == 'pull_request' }}
134+
if: ${{ github.event_name == 'pull_request' || ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) }}
135135
uses: actions/upload-artifact@v4
136136
with:
137137
name: python-dist
@@ -224,3 +224,27 @@ jobs:
224224

225225
- name: Run Python Tests
226226
run: python -m unittest discover tests
227+
228+
publish-python-dist:
229+
name: Publish Python Distribution
230+
231+
runs-on: ubuntu-22.04
232+
233+
permissions:
234+
id-token: write
235+
236+
needs: [build-proto2-linux64, build-proto3-linux64]
237+
238+
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
239+
240+
steps:
241+
- name: Download Distribution
242+
uses: actions/download-artifact@v4
243+
with:
244+
name: python-dist
245+
path: dist/
246+
247+
- name: Publish Snapshot Release on TestPyPI
248+
uses: pypa/gh-action-pypi-publish@release/v1
249+
with:
250+
repository-url: https://test.pypi.org/legacy/

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
VERSION_MAJOR = 3
2-
VERSION_MINOR = 6
2+
VERSION_MINOR = 7
33
VERSION_PATCH = 0

osi_logicallane.proto

+133
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ syntax = "proto2";
33
option optimize_for = SPEED;
44

55
import "osi_common.proto";
6+
import "osi_object.proto";
7+
import "osi_trafficsign.proto";
68

79
package osi3;
810

@@ -587,6 +589,10 @@ message LogicalLane
587589
//
588590
optional string street_name = 16;
589591

592+
// A list of traffic rules on the lane.
593+
//
594+
repeated TrafficRule traffic_rule = 17;
595+
590596
//
591597
// Definition of available lane types.
592598
//
@@ -822,5 +828,132 @@ message LogicalLane
822828
//
823829
optional double end_s_other = 5;
824830
}
831+
832+
//
833+
// Describes traffic rules on a lane.
834+
// The traffic rule can thereby be induced by regulations, traffic signs
835+
// or by other means. If the modeled traffic rule is induced by a traffic sign
836+
// the information should be identical with the respective traffic sign.
837+
//
838+
// Note: Every instance should be corresponding to only one specific rule.
839+
// The type of the traffic rule should be set using the respective field.
840+
// Additionally, every message should contain the traffic rule validity information
841+
// and the respective field for the respective traffic rule type.
842+
// In case of traffic rule (priority) conflicts for rules of the same type that
843+
// can not be depicted using the traffic rule validity only the currently
844+
// valid rule should be provided.
845+
//
846+
// Note: Each traffic rule corresponds to only one lane. If the traffic rule
847+
// is also valid on adjacent/successor/predecessor lanes it needs to be
848+
// specified for each lane individually.
849+
//
850+
// \brief Logical Model of a traffic rule on a lane.
851+
//
852+
message TrafficRule {
853+
854+
// The type of the traffic rule.
855+
//
856+
// This specifies the type of the traffic rule to be modeled.
857+
// Based on the type the respective message containing the information
858+
// corresponding to the traffic rule should be filled.
859+
//
860+
optional TrafficRuleType traffic_rule_type = 1;
861+
862+
// The validity information of the traffic rule.
863+
//
864+
optional TrafficRuleValidity traffic_rule_validity = 2;
865+
866+
// Traffic rule information for traffic rule of type speed limit.
867+
//
868+
optional SpeedLimit speed_limit = 3;
869+
870+
//
871+
// The type of the the traffic rule.
872+
//
873+
enum TrafficRuleType {
874+
875+
// Traffic rule is of type speed limit
876+
//
877+
TRAFFIC_RULE_TYPE_SPEED_LIMIT = 0;
878+
}
879+
880+
//
881+
// \brief Validity information for a traffic rule.
882+
//
883+
message TrafficRuleValidity {
884+
885+
//
886+
// The starting point of the traffic rule validity on the lane.
887+
// Must be in range [\c sStart,\c sEnd] of the reference line.
888+
//
889+
// Note: The traffic rule applies only to traffic with notional
890+
// direction of travel from the start_s coordinate towards
891+
// the end_s coordinate. For unidirectional lanes this must
892+
// match the direction of travel as specified by the
893+
// move_direction field of the logical lane. For bidirectional
894+
// lanes this allows the specification of separate rules for
895+
// each direction of travel.
896+
//
897+
optional double start_s = 1;
898+
899+
//
900+
// The ending point of the traffic rule validity on the lane.
901+
// Must be in range [\c sStart,\c sEnd] of the reference line.
902+
//
903+
optional double end_s = 2;
904+
905+
//
906+
// List of traffic participant types for which the speed limit is valid.
907+
// If the traffic rule validity is independent of the vehicle type
908+
// the list should be empty.
909+
//
910+
repeated TypeValidity valid_for_type = 3;
911+
912+
//
913+
// \brief Type of traffic participant for which a rule is valid.
914+
//
915+
message TypeValidity {
916+
917+
//
918+
// The type of object for which the traffic rule is valid.
919+
//
920+
optional MovingObject.Type type = 1;
921+
922+
//
923+
// Vehicle classification type for traffic participants.
924+
//
925+
// Should be set to TYPE_UNKNOWN if type is not TYPE_VEHICLE
926+
// or the rule is valid for all vehicle types.
927+
//
928+
optional MovingObject.VehicleClassification.Type vehicle_type = 2;
929+
930+
//
931+
// Role of traffic participant.
932+
//
933+
// Should be set to ROLE_UNKNOWN if type is not TYPE_VEHICLE
934+
// or the rule is valid for all vehicle roles.
935+
//
936+
optional MovingObject.VehicleClassification.Role vehicle_role = 3;
937+
}
938+
}
939+
940+
//
941+
// \brief Speed limit on a lane.
942+
//
943+
message SpeedLimit {
944+
945+
//
946+
// The value of the speed limit.
947+
// The unit field in the TrafficSignValue message may only be set to
948+
// units associated with velocities and must not be UNKNOWN.
949+
//
950+
// Note: All speed limits are to be modeled this way, independent
951+
// of how they are induced.
952+
//
953+
optional TrafficSignValue speed_limit_value = 1;
954+
955+
}
956+
}
957+
825958
}
826959

0 commit comments

Comments
 (0)