@@ -80,6 +80,10 @@ message TrafficAction
8080 // A LaneChangeAction
8181 //
8282 optional LaneChangeAction lane_change_action = 4 ;
83+
84+ // A SpeedAction
85+ //
86+ optional SpeedAction speed_action = 5 ;
8387}
8488
8589//
@@ -362,3 +366,79 @@ message LaneChangeAction
362366 DYNAMICS_SHAPE_STEP = 4 ;
363367 }
364368}
369+
370+ //
371+ // \brief Speed Action.
372+ //
373+ // This action assigns a targeted speed to a traffic participant. To avoid
374+ // contradictory constraints, it shall not be sent if the traffic participant
375+ // is under impact of a FollowTrajectoryAction. Yet, it may be sent if the
376+ // traffic particpiant is under impact of a FollowPathAction,
377+ // AcquireGlobalPositionAction or LaneChangeAction.
378+ // Furthermore, the action can be constrained by specifying the dynamics
379+ // shape or even the duration and the distance of the acceleration /
380+ // deceleration process.
381+ //
382+ // \note This action is aligned with SpeedAction of OpenSCENARIO 1.0
383+ // defining the targeted speed and optionally the parametrization of the
384+ // speed transition.
385+ //
386+
387+ message SpeedAction
388+ {
389+ // The Action Header
390+ //
391+ optional ActionHeader action_header = 1 ;
392+
393+ // Targeted absolute speed.
394+ //
395+ optional double absolute_target_speed = 2 ;
396+
397+ // Specified transition shape of the speed change. This is optional:
398+ // If no dynamics shape is given, the transition is
399+ // open to the traffic participant model.
400+ //
401+ optional DynamicsShape dynamics_shape = 3 ;
402+
403+ // Specified duration of the speed change. This is optional:
404+ // If no duration is given, the duration of the transition is
405+ // open to the traffic participant model.
406+ //
407+ // Unit: s
408+ //
409+ optional double duration = 4 ;
410+
411+ // Specified distance of the speed change. This is optional:
412+ // If no distance is given, the distance travelled while changing
413+ // speed is open to the traffic participant model.
414+ //
415+ // Unit: m
416+ //
417+ optional double distance = 5 ;
418+
419+ // Definition of speed change dynamic shapes.
420+ //
421+ enum DynamicsShape
422+ {
423+ // Shape is unspecified.
424+ //
425+ DYNAMICS_SHAPE_UNSPECIFIED = 0 ;
426+
427+ // Shape is linear.
428+ //
429+ DYNAMICS_SHAPE_LINEAR = 1 ;
430+
431+ // Shape is cubic.
432+ //
433+ DYNAMICS_SHAPE_CUBIC = 2 ;
434+
435+ // Shape is sinusoidal.
436+ //
437+ DYNAMICS_SHAPE_SINUSOIDAL = 3 ;
438+
439+ // Shape is a step function.
440+ //
441+ DYNAMICS_SHAPE_STEP = 4 ;
442+ }
443+
444+ }
0 commit comments