Releases: tier4/scenario_simulator_v2
5.3.2
Description
Abstract
Fixed an issue where AssignRouteAction could not be applied multiple times to a Vehicle entity controlled by Autoware.
Background
#1369 introduced a feature that allows AcquirePositionAction to be applied multiple times to Vehicle entities controlled by Autoware. At that time, an equivalent feature should have been introduced for AssignRouteAction as well as AcquirePositionAction, but this was overlooked. This pull request fixes that.
Details
Note that FollowTrajectoryAction belongs to RoutingAction, just like AcquirePositionAction and AssignRouteAction, but there is no need to introduce an equivalent feature. This is because FollowTrajectoryAction for Vehicle entities controlled by Autoware is a special operation that means overriding the control of the vehicle by a controller that is not Autoware (mainly a human).
References
None.
Destructive Changes
None.
Known Limitations
None.
Related Issues
5.3.1
Description
Abstract
- add RoutingGraphType enum class to specity types of routing graph
- add RoutingGraphs class to manage routing graph and paired traffic rule class
- replace EntityType with RoutingGraphType to specify types of routing graph
Background
The current HDMapUtils class uses the vehicle routing graph by default (even for pedestrians).
As the first step to bettter management of routing graph, this pull-request adds RoutingGraphs class.
In addition, the handling of shoulder lanes varies depending on the function, and there is no consistency.
In the future, I plan to develop a unified handling of shoulder lanes by adding a routing graph that includes road shoulders to the better routing graph management added in this pull request.
Details
HDMapUtils::getNextLaneletIds
- add
type
argument to switch routing graph(default:VEHICLE
for backward compatibility) - two overload has not
type
argument yet, because it treats road shoulder lanelet.
- add
HDMapUtils::getPriviousLaneletIds
- add
type
argument to switch routing graph(default:VEHICLE
for backward compatibility)- one overload has not
type
argument yet, because it treats road shoulder lanelet and has a bug.
- one overload has not
- add
HDMapUtils::getRightLaneletIds
- replace EntityType with RoutingGraphType in argument
HDMapUtils::getLeftLaneletIds
- replace EntityType with RoutingGraphType in argument
HDMapUtils::getRoute
- move inplementation into
HDMapUtils::RoutingGraphs::getRoute
- add
type
argument to switch routing graph(default:VEHICLE
for backward compatibility)
- move inplementation into
References
Destructive Changes
Although there have been some additions to function arguments, all of this has been carefully implemented to ensure backward compatibility.
Known Limitations
Related Issues
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.
Related Issues
5.2.3
Description
Replace buggy custom gcov script with gcovr
Abstract
Current gcov coverage uploaded to sonar cloud excludes coverage where it was covered, this PR fixes it.
Background
Details
Some of the gcov settings, etc. were not covered due to improper settings.
Fixed to collect gcov records using gcovr.
References
Destructive Changes
N/A
Known Limitations
N/A
Related Issues
5.2.2
Description
Abstract
This PR includes modifications based on the results of static analysis performed by SonarCloud. Please refer to the SonarCloud reference for details on the issue fixes.
Background
N/A
Details
N/A
References
declaration shadows a local variable
- https://sonarcloud.io/project/issues?open=AZLijeMY2sMDQQEegWo_&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBV&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBW&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBX&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBY&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBZ&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBa&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBb&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBc&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBd&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBe&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBf&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBg&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBh&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIkjvEq9OQMnMBi&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTITjvEq9OQMnMAo&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTD0jvEq9OQMnL7v&id=tier4_scenario_simulator_v2
Destructive Changes
N/A
Known Limitations
N/A
Related Issues
5.2.1
Description
Abstract
Function getFollowingLanelets
has confusing functionality or imprecise naming. Consider the following invocation: getFollowingLanelets(120660, {120660, <random-lanelets>}, 10000, true)
, then will be added to the returned vector unconditionally.
Function getPreviousLanelets
has a mistake. The function is supposed to process one lanelet in every iteration, but every iteration starts from the lanelet passed as the argument. The result will be the lanelet passed as the argument and many copies of the one - previous lanelet. The mistake was introduced in change 3fc8c0a#diff-da44510bdbbba766d1ba47318640cfd8bcff2e350eafe3d77d364bfbf70e25cdL745-L770. The previous implementation seems to have been right.
Details
Function getFollowingLanelets
was changed to check if candidates lanelets are actually following each other.
Function getPreviousLanelets
was rewritten to match previous implementation.
References
Jira ticket: internal link
Destructive Changes
There are no destructive changes.
Related Issues
5.2.0
Description
Abstract
This pull request support byType
element in CollisionCondition
.
Background
Currently, there is no implementation for this element.
Details
This PR contains a new class, ByObjectType.
The given type is converted to entity list and a collision check is performed on them.
There is a new scenario titled "collision_condition_by_type." This scenario tests whether collisions with each type of object are accurately detected. It will pass if collisions are detected between vehicles, between a vehicle and a barricade, and between a vehicle and three pedestrians.
References
None
Destructive Changes
None
Known Limitations
None
Related Issues
5.1.1
Description
Abstract
This PR includes modifications based on the results of static analysis performed by SonarCloud. Please refer to the SonarCloud reference for details on the issue fixes.
Background
N/A
Details
N/A
References
- https://sonarcloud.io/project/issues?open=AZJwAZGalcZ2d3dSAT8C&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJwAZGslcZ2d3dSAT8F&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJwAZGLlcZ2d3dSAT8A&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTJNjvEq9OQMnMCh&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTJNjvEq9OQMnMCi&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTJNjvEq9OQMnMCj&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTJUjvEq9OQMnMCy&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJwAZH5lcZ2d3dSAT8M&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJwAZH5lcZ2d3dSAT8N&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJwAZH5lcZ2d3dSAT8O&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJwAZH5lcZ2d3dSAT8P&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJS0wrRtJsnZH2iyX97&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIMjvEq9OQMnMAh&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIMjvEq9OQMnMAi&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJS0wrRtJsnZH2iyX98&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIMjvEq9OQMnMAj&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJS0wqNtJsnZH2iyX9v&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJS0wqNtJsnZH2iyX9w&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJS0wqNtJsnZH2iyX9x&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJS0wqNtJsnZH2iyX9y&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIfjvEq9OQMnMBP&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIfjvEq9OQMnMBQ&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIfjvEq9OQMnMBS&id=tier4_scenario_simulator_v2
Destructive Changes
N/A
Known Limitations
N/A
Related Issues
5.1.0
Description
Abstract
This pull-request supports TrafficLightGroupArray
and add awf/universe/20240605
as architecture_type
for it.
Details
supporting TrafficLightGroupArray
Currently, autoware_auto_perception_msgs/TrafficSignalArray
and autoware_perception_msgs/TrafficSignalArray
are supported for trafffic light in scenario_simulator_v2
.
However, I found that this was not enough to keep up with the latest Autoware.
In latest Autoware, autoware_perception_msgs/TrafficSignalArray
, the traffic light message supported in scenario_simulator_v2, is not used and autoware_perception_msgs/TrafficLightGroupArray
is used instead.
So, this pull-request supports autoware_perception_msgs/TrafficLightGrupArray
.
architecture_type
design
The architecture_type
is designed for switching message type (especially, messages for traffic light) of publishers for various autoware version.
Now, there are 2 architecture_type
as below.
awf/universe
autoware_auto_perception_msgs/TrafficSignalArray
for traffic lights
awf/universe/20230906
autoware_perception_msgs/TrafficSignalArray
for traffic lights
In this PR, I added awf/universe/20240605
as below.
awf/universe/20240605
autoware_perception_msgs/TrafficLightGroupArray
for traffic lights
Note
awf/universe
will be deleted in near future after dropping support for messages related to Autoware.Auto
References
regression test: OK
Destructive Changes
None
Known Limitations
None
Related Issues
5.0.2
Description
Abstract
This PR includes modifications based on the results of static analysis performed by SonarCloud. Please refer to the SonarCloud reference for details on the issue fixes.
Background
N/A
Details
N/A
References
- https://sonarcloud.io/project/issues?open=AZINWTIMjvEq9OQMnMAi&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJS0wrRtJsnZH2iyX98&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIMjvEq9OQMnMAj&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTKejvEq9OQMnMEw&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTKTjvEq9OQMnMEs&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJS0wsGtJsnZH2iyX-H&id=tier4_scenario_simulator_v2
Destructive Changes
N/A
Known Limitations
N/A