@@ -43,27 +43,155 @@ message TrafficCommand
4343 //
4444 // \note OSI uses singular instead of plural for repeated field names.
4545 //
46+ // \note The current SL425 discussion status: We assume all actions are
47+ // executed in parallel.
48+ //
4649 repeated TrafficAction action = 4 ;
4750
4851}
4952
5053//
5154// \brief Atomic Traffic Actions to be performed
5255//
56+ // \note This message allows "inheritance", as all TrafficActions can be treated
57+ // the same, even they have different implementation.
58+ //
5359message TrafficAction
5460{
55- // Action to be taken
61+ oneof Action {
62+
63+ // A TrafficAction
64+ //
65+ TrajectoryAction trajectory_action = 1 ;
66+
67+ // A PathAction
68+ //
69+ PathAction path_action = 2 ;
70+ }
71+ }
72+
73+
74+
75+ //
76+ // \brief The StatePoint definition
77+ //
78+ // \note The StatePoint definition does not define mandatory fields.
79+ // The context defines how and what fields are used.
80+ // For example: Path only used xyz of the StatePoint, trajectory also timestamp...
81+ //
82+ // A StatePoint contains a BaseMoving (full state with xyz/rpy and the derivatives
83+ // linear /angular velocity and acceleration).
84+ // Furthermore it contains a time stamp.
85+ //
86+ message StatePoint
87+ {
88+ // The timestamp of a StatePoint
89+ //
90+ // \note Zero time point does not need to coincide with the UNIX epoch.
91+ //
92+ optional Timestamp time_stamp = 1 ;
93+
94+
95+ // BaseMoving to describe a state
96+ //
97+ // \note OSI uses singular instead of plural for repeated field names.
98+ //
99+ optional BaseMoving state = 2 ;
100+ }
101+
102+ //
103+ // \brief The ActionHeader
104+ //
105+ //
106+ message ActionHeader
107+ {
108+ // The unique id of the command
109+ //
110+ // \note This field is mandatory.
111+ //
112+ // \note SL425 discussion: In what context must the id be unique? Global, for
113+ // all TrafficCommands or only in TrafficCommand context?
114+ //
115+ optional Identifier action_id = 1 ;
116+
117+ // The start_time can be used to set a starttime of execution
118+ //
119+ // \note Is optional. If not set, execution must start directly.
120+ //
121+ // \note Zero time point does not need to coincide with the UNIX epoch.
122+ //
123+ optional Timestamp start_time = 2 ;
124+
125+ }
126+
127+
128+
129+ //
130+ // \brief The TrajectoryAction. It provides an interface to describe the motion
131+ // in space as a function of time.
132+ //
133+ // \note The StatePoint requires the timestamp to be set.
134+ //
135+ // \note The StatePoint requires the pose (xyz/rpy) to be set.
136+ //
137+ // \note The velocity and acceleration can be set. If not set, the model must
138+ // calculate it itself.
139+ //
140+ // \note SL425 discussion: We define it to be set in the world frame atm.
141+ //
142+ message TrajectoryAction
143+ {
144+ // The action_header
145+ //
146+ //
147+ optional ActionHeader action_header = 1 ;
148+
149+ // A list of TrajectoryPoints
150+ //
151+ // \note OSI uses singular instead of plural for repeated field names.
152+ //
153+ repeated StatePoint trajectory_point = 2 ;
154+ }
155+
156+
157+ //
158+ // \brief The PathAction. It provides an interface to describe a path.
159+ //
160+ // \note The StatePoint requires the position to be set. The orientation can be
161+ // set optional.
162+ //
163+ // \note All other StatePoint values are ignored.
164+ //
165+ // \note SL425 discussion: We define it to be set in the world frame atm.
166+ //
167+ message PathAction
168+ {
169+ // The action_header
170+ //
171+ //
172+ optional ActionHeader action_header = 1 ;
173+
174+ // A list of PathPoints
175+ //
176+ // \note OSI uses singular instead of plural for repeated field names.
56177 //
57- // \note This could in the future be a oneof field, rather than multiple
58- // optional fields, only one of which should be set at any time. From
59- // an API point of view this is the same, but with better enforcement
60- // on the wire.
61- optional AcquireGlobalPositionAction acquire_global_position_action = 1 ;
178+ repeated StatePoint path_point = 2 ;
62179}
63180
181+
182+
64183//
65184// \brief Acquire Global Position Action
66185//
186+ // \note This is not discussed in SL425 UAP 2.1.5 and is not part of this
187+ // proposal. This is temporary for the MS1.
188+ //
189+ // \note Remark: The Position6d is a redefinition of a Position + Orientation.
190+ // Neither the redefinition nore the naming "position" for a pose makes sense.
191+ //
192+ // \note Remark: Maybe better to avoid an other redefinition and use a
193+ // TrajectoryAction with only trajectorypoint.
194+ //
67195message AcquireGlobalPositionAction {
68196 // Position and orientation relative to the global coordinate system.
69197 //
0 commit comments