Skip to content

Releases: tier4/scenario_simulator_v2

10.3.3

18 Feb 08:24
Compare
Choose a tag to compare

Description

Abstract

Refactored the function to add noise to messages published by DetectionSensor in simple_sensor_simulator.

Background

DetectionSensor currently provides a simple noise application. The feature can be configured in the items listed in LINK whose names begin with detectedObject.

However, since this feature is only a simple noise application, a more practical noise model will be designed by Autoware's planner development team. The classes DefaultNoiseApplicator and CustomNoiseApplicator have been prepared as a testing ground for the planner development team to test and validate the model.

Details

The two refactorings we have done this time are as follows:

Delete DefaultNoiseApplicator and CustomNoiseApplicator and replace them with closure

These two classes were provided for ease and simplicity of test implementation.
In reality, however, these classes served neither purpose. As evidenced by the fact that DefaultNoiseApplicator's class members are raw references, this class is effectively no different than a closure that reference-captures the required object.
Although the member function DetectionSensor<>::update has the disadvantage of being larger in definition, I thought it would be more beneficial to reduce the total amount of code, so I removed those classes and replaced them with closures that do the equivalent work.

Change the argument type of the noise application function

Previously, the noise application function (CustomNoiseApplicator::operator ()) was passed the DetectedObjects type, which is the message type that will eventually be published.
However, each object stored in the DetectedObjects type does not have an identifier that can be used to identify the individual object, which makes it difficult to implement a specific noise model.
Therefore, the data type given to the noise application function was changed to traffic_simulator_msgs::EntityStatus, which holds the name of each entity.

References

None.

Destructive Changes

None.

Known Limitations

None.

Related Issues

10.3.2

17 Feb 09:03
Compare
Choose a tag to compare

Description

Abstract

This pull-request removes double applied orientation for visualization entity triangle marker

Background

Previously, there was a triangle marker in front of the entity, like the screenshot in document site.
https://tier4.github.io/scenario_simulator_v2-docs/user_guide/ScenarioTips/#lane-change
image

But, at some point, this triangle stopped appearing in the correct place.

Details

Before (no triangle)
image

After (triangle in front of entity)
image

References

Maybe, #1238 introduced this bug.

Destructive Changes

None

Known Limitations

None

Related Issues

10.3.1

17 Feb 01:19
Compare
Choose a tag to compare

Description

Abstract

use AS instead of as in Dockerfiles

Background

The lower-case as is pointed out by GitHub in every pull-request.
image

Details

None

References

None

Destructive Changes

None

Known Limitations

None

Related Issues

10.3.0

14 Feb 08:56
Compare
Choose a tag to compare

Description

Abstract

This pull request adds the ability to randomize the value of any field in messages published by the concealer publisher.

Additionally, a launch argument parameter_file_path has been added to scenario_test_runner that accepts the path to the ROS 2 parameter file to specify the parameters to be given to the randomizer.

Background

Previously, scenario_simulator_v2 could randomize some of the perception-related messages it published to Autoware (which is the responsibility of simple_sensor_simulator), but not the localization-related ones (which is the responsibility of concealer).

Recently, the Autoware development team requested the ability to randomize odometry out of localization, so we have implemented this and added a comprehensive parameter file to specify the parameters to be given to such a functionality.

Details

In this pull request, the randomizer is only enabled for those related to odometry.

The Localization topic randomizer can be configured from the ROS 2 parameter file given to the launch argument parameter_file_path of scenario_test_runner. The default value of parameter_file_path is the path to the sample parameter file.

The parameter file was designed with the intention that in the future it will comprehensively handle the parameters given to the simple_sensor_simulator and the concealer handling publishers and subscribers. This includes parameters related to perception, which are currently specified by Properties in the OpenSCENARIO XML scenario file. Therefore, the parameter file includes information such as architecture_type values, message type names, topic type names, and other information that may be needed in the future (some of which is not used in this pull request).

References

None.

Destructive Changes

None.

Known Limitations

None.

Related Issues

10.2.0

14 Feb 04:32
Compare
Choose a tag to compare

Description

Abstract

This pull-request adds record_storage_id launch file argument.
It is passed to argument -s (--storage) of ros2 bag record command.

Background

We want to use mcap format for rosbag.
But, it is not default format in ROS 2 Humble.

Details

If you don't specify record_storage_id argument, the default format in ros2 bag record command is used. ( same behavior to previous version )
In ROS 2 Humble, sqlite3 is used, and mcap in ROS 2 Jazzy

References

No Regression

Destructive Changes

None

Known Limitations

None

Related Issues

10.1.2

14 Feb 01:38
Compare
Choose a tag to compare

Description

Abstract

This is the partial PR of the HdMapUtils refactor (PR 2/6) ( #1478 )

Background

Details

It has been noticed that in some files the copyright date is wrong (other than 2015), and the date has been fixed in those files where the incorrect copyright date was noticed.

References

Destructive Changes

None.

Known Limitations

None.

Related Issues

10.1.1

13 Feb 04:57
Compare
Choose a tag to compare

Description

Abstract

Added comments on scenarios that have been excluded from the test.

Background

The respawn_ego scenario cannot be executed with GitHub Actions as it requires EgoEntity for execution.

Details

Add a comment about it to the CMakeLists.txt.

References

N/A

Destructive Changes

N/A

Known Limitations

N/A

Related Issues

10.1.0

12 Feb 06:42
Compare
Choose a tag to compare

Description

  • enable respawn_ego mock test.
  • fix launch option.

Abstract

Missing necessary parameter simulate_localization for mock_test.launch.py. As a result, mock test executed without localization simulation.

Background

When I tryied adding and improving respawn_ego test, I met wierd behavior (please see following movie). I found scenario_simulator_v2 didn't simulate localization even the autoware didn't launch any localization module.

Related PR: #1484

movie-2024-12-23_08.39.48.mp4

Details

This PR has two contents.

  1. Enabled respawn_ego mock test so that we can find regression of respawn functionality. Additionally, I improved test scenario. The ego spawns at lane id 34621 and moves to 34606 during first 10 sec. After that, the ego will respawns at lane id 34576 and moves to 34564. If the ego can reach goal lane by within 60 sec, the scenario will be success. (please see following movie.)
  2. Added launch option to simulate localization to mock_test.launch.py.
movie-2024-12-23_08.16.06.mp4

References

N/A

Destructive Changes

N/A

Known Limitations

N/A

Related Issues

10.0.0

07 Feb 03:42
Compare
Choose a tag to compare

Description

Abstract

This PR introduces a simple change where EntityManager's and API's member functions obtaining entities have been modified to return a reference to the object, rather than a pointer.

The change mentioned above is interface breaking and thus many cpp mock scenarios as well as openscenario interpreter and random test runner had to be adjusted to accommodate these changes.

Background

This change has been suggested in the discussion under the previous refactoring PR (3/5) in this comment.

Tip

For the bigger picture, please see the whole thread started by the comment linked above.

Details

This PR changes several EntityManager member function signatures and subsequently all corresponding member functions of API as they are forwarded using a FORWARD_TO_ENTITY_MANAGER macro.

Listed below are all changes made to the EntityManager function signatures.

Obtaining EntityBase with error throwing

Before
https://github.com/tier4/scenario_simulator_v2/blob/59b5887b179293fea3ad5eb993c15520e76b58af/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp#L177-L178
After
https://github.com/tier4/scenario_simulator_v2/blob/f0d702d725bd339bdb7c1e1e3660aa213b970d04/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp#L177-L179

Obtaining EntityBase without error throwing

Before
https://github.com/tier4/scenario_simulator_v2/blob/59b5887b179293fea3ad5eb993c15520e76b58af/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp#L174-L175
After
https://github.com/tier4/scenario_simulator_v2/blob/f0d702d725bd339bdb7c1e1e3660aa213b970d04/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp#L174-L175

Obtaining EgoEntity (only with error throwing)

Before
https://github.com/tier4/scenario_simulator_v2/blob/59b5887b179293fea3ad5eb993c15520e76b58af/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp#L180-L183
After
https://github.com/tier4/scenario_simulator_v2/blob/f0d702d725bd339bdb7c1e1e3660aa213b970d04/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp#L181-L183

Important

After these changes the function that "gets the Ego without providing the name argument" has been replaced with the combination of using getFirstEgoName and the function that does require a name argument.

Obtaining Ego name

Before
https://github.com/tier4/scenario_simulator_v2/blob/59b5887b179293fea3ad5eb993c15520e76b58af/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp#L224
After
https://github.com/tier4/scenario_simulator_v2/blob/f0d702d725bd339bdb7c1e1e3660aa213b970d04/simulation/traffic_simulator/include/traffic_simulator/entity/entity_manager.hpp#L224

References

INTERNAL LINK

Destructive Changes

The return value of the getEntity function has been changed from a shared pointer to a reference.
Therefore, any place where the getEntity function is called is subject to a destructive change.

Known Limitations

--

Related Issues

9.4.0

06 Feb 09:15
Compare
Choose a tag to compare

Description

Abstract

Support message type autoware_internal_planning_msgs::msg::PathWithLaneId.

Background

From Pilot.Auto 0.41.0, autoware_internal_planning_msgs has been added. Due to the addition of this message type, tier4_planning_msgs::msg::PathWithLaneId will be replaced by autoware_internal_planning_msgs::msg::PathWithLaneId from Pilot.Auto 0.41.1 onwards. In other words, Pilot.Auto 0.41.0 is a version to give time for the message type change, and while tier4_planning_msgs::msg::PathWithLaneId and autoware_internal_planning_msgs::msg::PathWithLaneId coexist, tier4_planning_msgs::msg::PathWithLaneId is the one that is used.

To accommodate this change, scenario_simulator_v2 needs to support both message types and be able to switch which one to use. This pull request does this.

Details

The current default architecture_type is awf/unvierse/20240605 and this pull request does not change it. (We need to consider how to manage the default architecture_type in the future.)

  • If architecture_type is awf/universe/20250130 or later, autoware_internal_planning_msgs::msg::PathWithLaneId subscribers are instantiated.
  • Otherwise, tier4_planning_msgs::msg::PathWithLaneId subscribers are instantiated.

To achieve the above switch, the class template Subscriber has been updated, and some auxiliary class templates have been added for it.

References

None.

Destructive Changes

None.

Known Limitations

None.

Related Issues