Releases: tier4/scenario_simulator_v2
7.3.2
Description
Arm64 CI was broken, so remove it temporarily.
Abstract
Remove ARM64 CI.
Background
Arm64 CI was broken, so remove it temporarily.
Details
Remove arm64 CI from matrix.
strategy:
matrix:
rosdistro: [humble]
# arch: [amd64, arm64]
arch: [amd64]
References
N/A
Destructive Changes
N/A
Known Limitations
N/A
Related Issues
7.3.1
7.3.0
Description
Abstract
This pull request introduces support for multi-level lanelets (e.g., bridges over roads) by improving lanelet matching and collision solving mechanisms. Previously, lanelet matching relied on 2D position checks, which could lead to incorrect detections and false-positive collisions when entities were on different altitudes.
Background
In multi-level environments – such as maps featuring bridges over roads or tunnels beneath roads – the previous lanelet matching and collision detection algorithms relied solely on 2D proximity checks. This approach considered only the X and Y coordinates of entities, ignoring their altitude (Z-axis).
As a result, entities located on different levels (e.g., a vehicle on a bridge and another vehicle on the road below) could be incorrectly matched to the same lanelet. This caused:
- False-positive detections: Entities were mistakenly identified as obstacles, even though they were on different levels.
- Unnecessary slowing or stopping: The Ego vehicle would slow down or stop due to these incorrect detections, reducing driving efficiency and simulation realism.
To resolve these issues, 3D lanelet matching and collision-solving mechanisms have been introduced.
Details
Enhancements to Lanelet Matching
3D Matching Support
- The toLaneletPose method has been updated to incorporate the altitude (Z-axis) of entities when performing lanelet matching. This helps ensure that entities are correctly matched to lanelets on the appropriate level.
New altitude_threshold
Parameter
- Added a parameter altitude_threshold to define the maximum altitude difference allowed when matching an entity to a lanelet.
Improvements to Collision Solving
BehaviorTree Updates
- The BehaviorTree logic now considers the altitude of potential obstacles. This allows NPCs to ignore entities that are on a different vertical level. Link to introduced changes.
Ego Plane Determination
- A mechanism for determining the Ego plane was introduced. Entities that fall below this plane (e.g., vehicles under a bridge) are excluded from detection. Link to introduced changes.
Geometry Enhancements
- Introduced a
Plane
structure and methods to calculate offsets relative to this plane. Link to introduced changes. - Updated quaternion operations for more efficient altitude calculations. Link to introduced changes #1 and Link to introduced changes #2
Fix traffic_source class
- The
TrafficSource::makeRandomPose
method does not account for the Z-axis when generating random positions. As a result, the generated position may be incorrect and an entity may not match to the lanelet. To fix this issue, the Z-coordinate is now assigned based on the altitude of the first nearby lanelet found. Link to introduced changes
Fix Unit tests
- Adjusted unit tests to reflect recent changes related to 3D matching and collision solving. Link to introduced changes #1 and Link to introduced changes #2 and Link to introduced changes #3
References
Internal link 1
Internal link 2
Destructive Changes
--
Known Limitations
--
Related Issues
7.2.0
Description
Abstract
Added the option simulate_localization:=<boolean>
to simulate the option localization_sim_mode:=<api | pose_twist_estimator>
of simple_planning_simulator.
Background
Previously, scenario_simulator_v2 also simulated Autoware's localization module, but in order to test the localization module, an option was needed to leave this to Autoware rather than doing it on the scenario_simulator_v2 side.
Feature request thread (internal link)
Details
The default is simulate_localization:=true
, which performs the same operation as localization_sim_mode:=api
. This is compatible with the previous scenario_simulator_v2. On the other hand, when simulate_localization:=false
, it performs the same operation as localization_sim_mode:=pose_twist_estimator
.
References
None.
Destructive Changes
None.
Known Limitations
None.
Related Issues
7.1.0
Description
Abstract
Added partial support for OpenSCENARIO XML 1.3.1 TimeToCollisionCondition.
Background
None.
Details
None.
References
Destructive Changes
None.
Known Limitations
Since TimeToCollisionCondition
is implemented using DistanceCondition
, RelativeDistanceCondition
, SpeedCondition
, and RelativeSpeedCondition
, if a combination of properties that is not supported by those Conditions is given to TimeToCollisionCondition
, an error will be thrown.
Related Issues
7.0.4
Description
Abstract
SpeedCondition was updated to comply with OpenSCENARIO XML 1.3.1 in #1469, but this caused a loss of compatibility with previous behavior. This pull request solves this by adding a compatibility mode parameter that allows SpeedCondition to maintain the previous behavior.
Background
None.
Details
Scenario UC-v3-E-04-00101_002_case01_cmn_general
fails in master branch, but succeeds in this pull request's branch. And when moving backwards, a negative value is returned from SpeedCondition as before.
References
None.
Destructive Changes
None.
Known Limitations
None.
Related Issues
7.0.3
Description
Please check examples and comment out this sentence. Minimal example is here and detailed example is here
Abstract
I fixed API to make request to enable autoware control when the ego respawns.
Background
Now the autoware control will be disable when the ego respawns. I guess that it not expected behavior.
Details
I confirmed the autoware control was automatically enabled when the ego respawns by using API::respawn
.
References
N/A
Destructive Changes
N/A
Known Limitations
N/A
Related Issues
7.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
This PR has been split and submitted to avoid the issues that occurred in the following PR.
Replace this declaration by a structured binding declaration.
- https://sonarcloud.io/project/issues?open=AZINWS-2jvEq9OQMnLzw&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWS9ejvEq9OQMnLxt&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZJS0wlVtJsnZH2iyX7M&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTITjvEq9OQMnMAz&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTITjvEq9OQMnMA0&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTITjvEq9OQMnMA1&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTITjvEq9OQMnMA2&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTITjvEq9OQMnMA3&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTITjvEq9OQMnMA4&id=tier4_scenario_simulator_v2
This function should be declared "const".
- https://sonarcloud.io/project/issues?open=AZLnNBxcQCmhgSgDjNx2&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZLnNBxcQCmhgSgDjNx3&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZLnNBxcQCmhgSgDjNx4&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZLnNBxcQCmhgSgDjNx5&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZLnNBxcQCmhgSgDjNx6&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZLnNBxcQCmhgSgDjNx7&id=tier4_scenario_simulator_v2
Destructive Changes
N/A
Known Limitations
N/A
Related Issues
7.0.1
Description
Abstract
Adapt optional StartTrigger in Act (OSC 1.3).
Background
From OSC 1.3, StartTrigger in Act become optional. And default behavior is If no trigger is defined, the act starts when the Storyboard enters runningState.
Details
I set default value for StartTrigger.
Also I added always_true
constant to Trigger
. In some case, we need Trigger that should be evaluated to be true. This constant helps implement such case(e.g. #774).
Known Limitations
openscenario_utility
does not use OSC 1.3 schema. Without using it, I cannot use optional StartTrigger because validation by it will fail.
In my local environment, I checked this PR works by modifying openscenario_utility
.
Related Issues
7.0.0
Description
Abstract
- replace
autoware_auto_xx_msgs
withautoware_xx_msgs
- use only one source for
/autoware/state
- finish supporting
awf/autoware
architecture_type
( traffic light forautoware_auto_perception_msgs
) - use
awf/autoware/20240605
as defaultarchitecture_type
Background
Details
simple message migrations
autoware_auto_vehicle_msgs
->autoware_vehicle_msgs
ControlModeReport.msg
GearReport.msg
SteeringReport.msg
TurnIndicatorsReport.msg
VelocityReport.msg
ControlModeCommand.srv
autoware_auto_perception_msgs
->autoware_perception_msgs
TrackedObjects.msg
TrackedObject.msg
DetectedObjects.msg
DetectedObject.msg
ObjectClassification.msg
DetectedObjectKinematics.msg
Shape.msg
complicated message migrations
1 vs 1
before | after |
---|---|
autoware_auto_control_msgs/AckermannControlCommand |
autoware_control_msgs/Control |
autoware_auto_planning_msgs/PathWithLaneId |
tier4_planning_msgs/PathWithLaneId |
autoware_auto_map_msgs/HADMapBin |
autoware_map_msgs/LaneletMapBin |
others
before | after |
---|---|
autoware_system_msgs/AutowareState autoware_auto_system_msgs/AutowareState |
autoware_system_msgs/AutowareState |
autoware_auto_perception_msgs/TrafficSignalArray autoware_perception_msgs/TrafficSignalArray autoware_perception_msgs/TrafficLightGroupArray |
autoware_perception_msgs/TrafficSignalArray autoware_perception_msgs/TrafficLightGroupArray |
References
Destructive Changes
After this pull-request, scenario_simulator_v2
does not support autoware_auto_xx_msgs
for interfaces.
To use with autoware_auto_xx_msgs
, please use older versions of scenario_simulator_v2
.
Known Limitations
None