@@ -17,7 +17,7 @@ package osi3;
1717// updated information is provided as a MovingObject. Certain fields
1818// of this sub-message need not be set and will be ignored by the
1919// simulation environment, because they are in fact static information.
20- // Instead of creating a seperate message type for only the non-static
20+ // Instead of creating a separate message type for only the non-static
2121// information, re-use of the existing message was considered more
2222// appropriate.
2323//
@@ -39,13 +39,63 @@ message TrafficUpdate
3939 //
4040 optional Timestamp timestamp = 2 ;
4141
42- // Updated Moving Object
42+ // Updated traffic participant data
4343 //
44- // \note Only the id, base member (without dimension and base_polygon),
45- // and the vehicle_classification.light_state members are considered in
46- // updates, all other members can be left undefined, and will be
47- // ignored by the receiver of this message.
44+ repeated TrafficParticipantUpdate traffic = 3 ;
45+
46+ // \brief Data for a single traffic participant to update the simulator.
47+ //
48+ // It includes an immediate update for the current timestamp reported in
49+ // parent traffic update message which can include the full detail of a
50+ // moving object message.
51+ //
52+ // The future trajectory is deliberately more sparse as much of the detail
53+ // won't be known for all future points.
4854 //
49- optional MovingObject update = 3 ;
55+ message TrafficParticipantUpdate
56+ {
57+ // Updated Moving Object
58+ //
59+ // \note Only the id, base member (without dimension and base_polygon),
60+ // and the vehicle_classification.light_state members are considered in
61+ // updates, all other members can be left undefined, and will be
62+ // ignored by the receiver of this message.
63+ //
64+ optional MovingObject update = 1 ;
65+
66+ // The future trajectory message is to allow traffic participants to
67+ // indicate to the simulator their current expectations of where they plan to
68+ // be in the future.
69+ //
70+ // \note Traffic participants aren't required to stick precisely to this future
71+ // trajectory. It is to allow the simulator to provide realistic agent
72+ // behaviours without performing prediction for all external traffic
73+ // participants.
74+ //
75+ repeated FutureTrajectoryNode future_trajectory = 2 ;
76+
77+ //
78+ // /brief The future node is a single point in time as part of a future
79+ // trajectory which defines the pose, velocity, acceleration, etc. at
80+ // that point.
81+ // See the FutureTrajectory message for details and context.
82+ //
83+ message FutureTrajectoryNode
84+ {
85+ // The future timestamp for the trajectory node. Zero time is arbitrary
86+ // but must be identical for all messages. Zero time does not need to
87+ // coincide with the UNIX epoch. Recommended is the starting time point of
88+ // the simulation.
89+ //
90+ // \note This must be in the future compared to the timestamp in the top
91+ // level traffic update message.
92+ //
93+ optional Timestamp timestamp = 1 ;
5094
95+ // Traffic participant data for the future trajectory node.
96+ //
97+ // \note Dimensions and base polygon are ignored.
98+ optional BaseMoving future_point = 2 ;
99+ }
100+ }
51101}
0 commit comments