Skip to content

Releases: tier4/scenario_simulator_v2

4.4.0

07 Nov 05:29
Compare
Choose a tag to compare

Abstract

This pull requests fixes issue described here

Details

  1. Simplification of HdMapUtils::getLongitudinalDistance function logic, while retaining its functionalify.
  2. Additional matching: previously matching occurred at the starts of the lanelets, now matching is also performed at 0.5 * min(from_lanelet, to_lanelet) to cover the corner case (please see the mentioned issue description).
  3. Additional unit tests for the modified function.
  4. During development i have decided that using the first instead of the second approach is far superior (refer to this discussion)
  • This approach produces cleaner code in general.
  • This approach does not require modification of the underlying centerline's math::geometry::CatmullRomSpline.
  • The working POC of the first approach is still implemented in the first commit of this PR.
  1. Docs have been updated accordingly.
  2. Some recurring scenario conditions have been updated. Currently, majority of these conditions are too precise, this disallows any changes in the calculations.

References

#1364
Jira ticket

Related Issues

4.3.27

4.3.26

06 Nov 04:30
Compare
Choose a tag to compare

Abstract

This pull request introduces code optimizations and improvements, including the removal of unused variables, added override qualifiers, standardization of declarations, and adjustments to lambda captures and explicit casts.

Background

To improve code clarity, performance, and maintainability, minor refactors and cleanup were conducted. These changes aim to ensure consistency and efficiency in the codebase.

Details

  • Unused Variable Removal: Unused variables were removed to optimize memory usage.
  • Inline Directives: Added missing inline directives where needed.
  • Virtual Destructor: A virtual destructor was added for polymorphic classes to ensure proper resource management.
  • Lambda Capture Adjustments: Unnecessary captures in lambdas were removed for performance.
  • Override Qualifiers: Missing override qualifiers were added to functions to improve code clarity.
  • Standardizing Declarations: Standardized declaration patterns for better readability and consistency.
  • Explicit Casts: Implemented explicit casts to prevent implicit conversion issues.

References

This PR fixes errors or warnings that appeared during Clang builds.

Destructive Changes

N/A

Known Limitations

N/A

Related Issues

4.3.25

05 Nov 04:11
Compare
Choose a tag to compare

4.3.24

01 Nov 08:45
Compare
Choose a tag to compare

Abstract

This pull request fixes the logic to remove duplicate topics in the updateTopicCandidates function, improving the behavior by correctly sorting and eliminating duplicates from the topic list.

Background

This change was necessary because the previous implementation did not properly handle the removal of duplicate topics, which could lead to incorrect behavior when selecting topics in the UI.

Details

The fix was made by adding a call to std::sort() followed by std::unique(), ensuring that the topics_ vector is both sorted and has its duplicates removed. The previous implementation only applied std::unique() without sorting, which led to incomplete duplicate removal.

References

Destructive Changes

N/A

Known Limitations

N/A

Related Issues

4.3.23

01 Nov 08:34
Compare
Choose a tag to compare

Abstract

This pull request adds missing includes in the files normalize.hpp and execute.cpp.

Background

This update addresses a missing include issue in the geometry/vector3 and concealer namespaces, which caused compilation errors in certain scenarios.

Details

Added the following includes:

  • geometry/vector3/operator.hpp in normalize.hpp
  • rray in execute.cpp

These changes ensure that the necessary headers are included to avoid future compilation issues.

References

This PR fixes errors or warnings that appeared during Clang builds.

Destructive Changes

N/A

Known Limitations

N/A

Related Issues

4.3.22

31 Oct 11:08
Compare
Choose a tag to compare

Description

Improved readability.​

Abstract

This pull request improves the readability of the code by refactoring segment handling in bounding_box.cpp and intersection.cpp to enhance clarity and reduce duplication.

Background

The current code for handling segment intersections and projections contains some redundant logic that reduces clarity. This refactor simplifies that logic without altering functionality.

Details

In bounding_box.cpp, I extracted the logic for finding the nearest point in a segment into a lambda function, findNearestPointInSegment. This change reduces duplication and increases code readability. Similarly, in intersection.cpp, the logic for checking intersections between lines was refactored into a lambda function, addIntersectionIfExists, further simplifying the code.

References

Destructive Changes

N/A

Known Limitations

N/A

Related Issues

4.3.21

31 Oct 03:29
Compare
Choose a tag to compare

Description

Abstract

Function getQuadraticAccelerationDuration can return a negative duration. It is possible because getQuadraticAccelerationDurationWithConstantJerk is being invoked if-and-only-if v and target_speed are almost equal, which does not seem correct. This part of the code also seems incongruent with the comments in code below:

https://github.com/tier4/scenario_simulator_v2/blob/a7e29efb9307068858d0db31fe521e5a2e2c8de5/simulation/traffic_simulator/src/behavior/longitudinal_speed_planning.cpp#L185-L193

https://github.com/tier4/scenario_simulator_v2/blob/a7e29efb9307068858d0db31fe521e5a2e2c8de5/simulation/traffic_simulator/src/behavior/longitudinal_speed_planning.cpp#L197-L207

Details

Comparison if (std::abs(v - target_speed) >= 0.01) in getQuadraticAccelerationDuration is changed to if (v < target_speed) ensuring return duration is not negative.

References

Jira ticket: internal link

Destructive Changes

There are no destructive changes.

Related Issues

4.3.20

31 Oct 01:04
Compare
Choose a tag to compare

Description

Abstract

The statement target_speed_ = target_speed.getAbsoluteValue(getCanonicalizedStatus(), other_status_); in firs example sets the target speed only in cases where the target speed has already been reached, which seems counter intuitive. This statement’s position is inconsistent with second example.

https://github.com/tier4/scenario_simulator_v2/blob/a7e29efb9307068858d0db31fe521e5a2e2c8de5/simulation/traffic_simulator/src/entity/entity_base.cpp#L471-L480

https://github.com/tier4/scenario_simulator_v2/blob/a7e29efb9307068858d0db31fe521e5a2e2c8de5/simulation/traffic_simulator/src/entity/entity_base.cpp#L458-L464

Details

Described statement is moved down, outside of the “if” statement. This way the most up to date target speed will be set on each iteration until the target speed is reached. This is consistent with continuous case.

References

Jira ticket: internal link

Destructive Changes

There are no destructive changes.

Related Issues

4.3.19

30 Oct 04:18
Compare
Choose a tag to compare

Abstract

This pull request fixes the Docker build support for Arm architecture by resolving issues with Qemu setup and Docker configuration.

Background

The previous Docker build for Arm64 was temporarily disabled due to a known issue (see PR #1295). This pull request reinstates Arm64 build support.

Details

This update adds a Qemu setup step to the GitHub Actions workflow, enabling Arm64 support for Docker builds. It modifies the Dockerfile.arm64 to streamline the build process and ensures compatibility with the humble ROS distribution.

Destructive Changes

N/A

Known Limitations

The bug fixed in this PR may recur, so it should be monitored closely. We recommend migrating promptly if an Ubuntu Arm64 runner is added to the GitHub self-hosted runner.

References

#1295

Related Issues