Skip to content

Releases: tier4/scenario_simulator_v2

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

9.3.1

06 Feb 03:03
Compare
Choose a tag to compare

Description

Abstract

This pull-request is deleting unnecessary target branch filter in workflow trigger

Background

When adding new features or refactorings that require multiple pull requests, the target branch is often set to something other than master.
There is no reason to exclude such cases from CI.

Details

This pull-request does not change any code.
So, no regression tests are executed.

The workflows below are not fixed because it makes sense to narrow down the target branch to master.

  • .github/workflows/CheckBranchUpToDate.yaml
  • .github/workflows/CheckLabel.yaml
  • .github/workflows/Release.yaml

References

None

Destructive Changes

None

Known Limitations

None

Related Issues

9.3.0

05 Feb 09:33
Compare
Choose a tag to compare

Description

Abstract

Add docker image for traffic_simulator.

Background

The Docker Image of scenario_simulator_v2 is currently 13.6 GB following the humble-9.1.0 version.
Therefore, the size of the Docker Image was very large when trying to develop an application using scenario_simulator_v2.

Details

Additional Docker Image including only traffic_simulator and its dependent packages.

References

N/A

Destructive Changes

N/A

Known Limitations

N/A

Related Issues

9.2.0

05 Feb 05:05
Compare
Choose a tag to compare

Description

Abstract

This pull request introduces a fix for lanelet slope inaccuracies in the FollowTrajectoryAction and WalkStraightAction.

Details

In the case of FollowTrajectoryAction and WalkStraightAction, an issue arises in the algorithm responsible for determining the entity's position. During each simulation step, displacement is calculated based on the velocity vector and step_time. When the entity moves along a sloped lanelet (e.g., driving uphill), the calculated displacement can sometimes exceed the remaining distance to the end of the lanelet.

To address transitions between lanelets, the method CanonicalizedLaneletPose::adjustOrientationAndOzPosition adjusts the entity's orientation to match the lanelet's pitch angle and sets the entity's height to the lanelet's elevation. As a result, the cumulative displacement computed by the makeUpdatedStatus function may not always reflect the actual distance traveled.

The proposed solution involves checking the remaining distance to the end of the current lanelet. If the calculated displacement exceeds this distance, the entity's position is updated to the next lanelet in a controlled manner. This ensures accurate positioning and smooth transitions between lanelets.

Screenshot from 2024-12-20 17-16-20

Code Changes

Pose

  • The updatePositionForLaneletTransition function accounts for cases where the entity reaches the end of the current lanelet and needs to transition to the next lanelet. Link

Follow Trajectory Action

  • The makeUpdatedStatus method has been updated to fix issues. Link

Walk Straight Action

  • The method ActionNode::calculateUpdatedEntityStatusInWorldFrame has been modified to fix the issue with WalkStraightAction. It updates the position and orientation of the entity, ensuring precise movement along the lanelet and accurate handling of transitions between lanelets. Link.

New Vector and Quaternion Operations

  • Added function to calculate the norm of a quaternion. Link

  • Added function to normalize a quaternion. Link

  • An operator overload for the + operator was added to facilitate vector addition. This allows combining custom vector types with Eigen::Vector3d seamlessly. Link

References

Internal link 1
Internal link 2

Destructive Changes

--

Known Limitations

--

Related Issues

9.1.0

04 Feb 06:23
Compare
Choose a tag to compare

Description

NPC should detect another Entity with see_around even when the Entity does not overlap the center line of the lane which the NPC is on. This change allows to detect another NPC which overlap path of this NPC.

Abstract

This PR changes detection function of front entity in ActionNode.

Details

I've changed getDistanceToTargetEntityPolygon to use boundingBoxRelativeLaneletPose. It calculates relative pose between current NPC and another one. If absolute value of offset is less than half of NPC width it means that it intersects with current NPC path. If so distance to front entity is s of the pose enlarged by half of the length of NPC, as we need distance from the center.

Destructive Changes

--

Known Limitations

--

Related Issues