5.3.0
Description
Abstract
Improve simulated manual override with FollowTrajectoryAction
Background
In previous version of scenario_simulator_v2, the control mode during the override is still AUTONOMOUS
.
This could not be accurately simulated for manual overrides , so this pull request was created.
relationship with #1280
In #1280, I fixed a bug in TaskQueue that caused a major regression when Autoware went into EMERGENCY state immediately after starting a scenario.
The root cause of the regression was fixed in #1378, so I created this new pull request.
Details
Note
This section is copied from ManualOverrideWithFollowTrajectoryAction.md
in this pull-request.
scenario_simulator_v2
simulates the manual override of Autoware, with FollowTrajectoryAction
.
During the executing FollowTrajectoryAction
, the control of the ego entity is taken over from Autoware to the FollowTrajectoryAction
.
3 types of override for Autoware
There are 3 types of override for Autoware.
- Local: Manually control the vehicle from nearby with some device such as a joystick.
- This is one of operation modes.
- Remote: Manually control the vehicle from a web application on the cloud.
- This is one of operation modes.
- Direct: Manually control the vehicle from handle, brake and/or accel directly.
- Please note that this is not a operation mode but a control mode of vehicle interface.
override simulation in scenario_simulator_v2
vehicle interface simulation is a part of the ego vehicle simulation feature in scenario_simulator_v2
.
scenario_simulator_v2
simulates a Direct
override triggered by safety operators when a scenario commands overriding the ego vehicle by FollowTrajectoryAction
.
3 steps scenario_simulator_v2 takes to simulate the overrides
1. triggering the override
In real vehicle, the override detected in vehicle internally and communicated to vehicle interface node such as pacmod_interface
node.
In scenario_simulator_v2
, openscenario_interpreter
send an override flag via zmq interface between traffic_simulator
and simple_sensor_simulator
when FollowTrajectoryAction
is started.
simple_sensor_simulator
receives it and set the control mode to MANUAL like vehicle interface do when hardware override triggers detected.
2. during the override
traffic_simulator
send ego status calculated to follow described in the scenario and simple_sensor_simulator
overrides Autoware control with overwriting ego status by the received ego status.
3. finishing the override
When FollowTrajectoryAction
is finished, traffic_simulator
call service to enable autoware control and stop sending the override flag to simple_sensor_simulator
via zmq communication.
This mimics the steps safety operators do in real vehicle via some human interfaces, in API level.
References
Destructive Changes
None
Known Limitations
scenario_simulator_v2
does not support a remote override for now.