1- // define the proto language version
21syntax = "proto2" ;
3- // optimize for speed
2+
43option optimize_for = SPEED ;
54
6- // imports
75import "osi_common.proto" ;
86
9- // OSI - Open Simulation Interface
107package osi ;
118
129/**
1310 * A lane in the road network.
11+ *
1412 * A lane is part of a road and mainly characterized by its center line. It also knows about any adjacent lanes,
15- * antecessor and successor lanes. The following image will be referred to by later comments. We'll use the lane
16- * with id 3 as reference if not mentioned otherwise.
13+ * antecessor and successor lanes. The following image will be referred to by later comments. We'll use the lane with id
14+ * 3 as reference if not mentioned otherwise.
15+ *
1716 * \image html highway_exit.png
17+ *
1818 * For lane a to be the antecessor of lane b, the last point of a's center line has to be identical to the first point
1919 * of b's center line (although both points might lie outside the simulated region, the relationship remains). Any lane
2020 * starts or ends at such a split/merge point. No lane can ever keep its id after such a split point, i.e. lane 4 has to
@@ -31,25 +31,28 @@ message Lane
3131 optional Type type = 2 ;
3232
3333 // The lane's center line.
34+ //
3435 // This is the line, that a typical vehicle is supposed to follow. Thus, if the road narrows (e.g. construction
35- // site) this line is supposed to describe the trajectory that the vehicle should follow.
36- // The intended direction of travel on the lane is given by the direction defined by the sequence of points forming
37- // the center line.
36+ // site) this line is supposed to describe the trajectory that the vehicle should follow. The intended direction of
37+ // travel on the lane is given by the direction defined by the sequence of points forming the center line.
3838 //
3939 // \attention The points might be set at arbitrary distances, but must not be further appart than 5m. When the
4040 // points are pairwise linearly connected, the lateral distance to the real ideal line (as used by the simulation
4141 // environment internally) must not exceed 5cm. As shown in the following image.
42+ //
4243 // \image html line_approximation_error.png
4344 //
4445 // Example: The yellow dotted line right of the blue 3.
4546 repeated Vector3d center_line = 3 ;
4647
4748 // The boundary of the lane.
49+ //
4850 // The lane boundaries describe the lane markings or other boundaries delimiting the lane as well as free lines that
4951 // might be used e.g. in construction sites. The lane markings do not have to be parallel to the center_line, but
5052 // they are the basis for calculating the width of the lane at any given distance.
51- // Example: The double solid line above the 3, and the dashed line below the 3. (see reference picture)
52- // There might also be additional free lanes.
53+ //
54+ // Example: The double solid line above the 3, and the dashed line below the 3. (see reference picture) There might
55+ // also be additional free lanes.
5356 repeated LaneBoundary lane_boundary = 4 ;
5457
5558 // The lane's left adjacent lanes (w.r.t. intended driving direction).
@@ -123,6 +126,7 @@ message Lane
123126message LaneBoundary
124127{
125128 // The list of individual points defining the location of the lane boundary.
129+ //
126130 // Since a BoundaryPoint is part of a sequence only the position attribute has to be set for each instance. All
127131 // other values will be reused from the previous BoundaryPoint in the sequence or set to default values if there is
128132 // none or it was never set. For dashed lines, one BoundaryPoint has to be at the start and another at the end of
0 commit comments