11// define the proto language version
22syntax = "proto2" ;
3+
34// optimize for speed
45option optimize_for = SPEED ;
56
@@ -11,10 +12,13 @@ package osi;
1112
1213/**
1314 * A lane in the road network.
15+ *
1416 * 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.
17+ * antecessor and successor lanes. The following image will be referred to by later comments. We'll use the lane with id
18+ * 3 as reference if not mentioned otherwise.
19+ *
1720 * \image html highway_exit.png
21+ *
1822 * 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
1923 * of b's center line (although both points might lie outside the simulated region, the relationship remains). Any lane
2024 * 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 +35,28 @@ message Lane
3135 optional Type type = 2 ;
3236
3337 // The lane's center line.
38+ //
3439 // 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.
40+ // site) this line is supposed to describe the trajectory that the vehicle should follow. The intended direction of
41+ // travel on the lane is given by the direction defined by the sequence of points forming the center line.
3842 //
3943 // \attention The points might be set at arbitrary distances, but must not be further appart than 5m. When the
4044 // points are pairwise linearly connected, the lateral distance to the real ideal line (as used by the simulation
4145 // environment internally) must not exceed 5cm. As shown in the following image.
46+ //
4247 // \image html line_approximation_error.png
4348 //
4449 // Example: The yellow dotted line right of the blue 3.
4550 repeated Vector3d center_line = 3 ;
4651
4752 // The boundary of the lane.
53+ //
4854 // The lane boundaries describe the lane markings or other boundaries delimiting the lane as well as free lines that
4955 // might be used e.g. in construction sites. The lane markings do not have to be parallel to the center_line, but
5056 // 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.
57+ //
58+ // Example: The double solid line above the 3, and the dashed line below the 3. (see reference picture) There might
59+ // also be additional free lanes.
5360 repeated LaneBoundary lane_boundary = 4 ;
5461
5562 // The lane's left adjacent lanes (w.r.t. intended driving direction).
@@ -123,6 +130,7 @@ message Lane
123130message LaneBoundary
124131{
125132 // The list of individual points defining the location of the lane boundary.
133+ //
126134 // Since a BoundaryPoint is part of a sequence only the position attribute has to be set for each instance. All
127135 // other values will be reused from the previous BoundaryPoint in the sequence or set to default values if there is
128136 // 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