Skip to content

Releases: tier4/scenario_simulator_v2

7.3.2

18 Dec 03:56
Compare
Choose a tag to compare

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

17 Dec 02:11
Compare
Choose a tag to compare

Description

Abstract

Fix bug in math::geometry::getClosestPoses. The bug is explained in #1332

Details

This PR also added some test cases for math::geometry::getClosestPoses

References

#1332

Related Issues

#1332

7.3.0

16 Dec 09:19
Compare
Choose a tag to compare

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

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

References

Internal link 1
Internal link 2

Destructive Changes

--

Known Limitations

--

Related Issues

7.2.0

16 Dec 05:42
Compare
Choose a tag to compare

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

16 Dec 01:52
Compare
Choose a tag to compare

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

13 Dec 03:28
Compare
Choose a tag to compare

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

13 Dec 01:04
Compare
Choose a tag to compare

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

12 Dec 04:11
Compare
Choose a tag to compare

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.

This function should be declared "const".

Destructive Changes

N/A

Known Limitations

N/A

Related Issues

7.0.1

11 Dec 09:17
Compare
Choose a tag to compare

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

10 Dec 10:02
Compare
Choose a tag to compare

Description

Abstract

  • replace autoware_auto_xx_msgs with autoware_xx_msgs
  • use only one source for /autoware/state
  • finish supporting awf/autoware architecture_type ( traffic light for autoware_auto_perception_msgs )
  • use awf/autoware/20240605 as default architecture_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

Related Issues