Releases: tier4/scenario_simulator_v2
4.4.0
Abstract
This pull requests fixes issue described here
Details
- Simplification of
HdMapUtils::getLongitudinalDistance
function logic, while retaining its functionalify. - 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). - Additional unit tests for the modified function.
- 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.
- Docs have been updated accordingly.
- Some recurring scenario conditions have been updated. Currently, majority of these conditions are too precise, this disallows any changes in the calculations.
References
Related Issues
4.3.27
Description
Abstract
Add comment for empty functions.
Background
SonarCloud warned me to comment on functions with no operation behavior.
Details
Leave information in comments in terms of historical background and traceability of design information.
References
https://sonarcloud.io/project/issues?open=AZINWTGyjvEq9OQMnL_U&id=tier4_scenario_simulator_v2
https://sonarcloud.io/project/issues?open=AZJwAY5JlcZ2d3dSAT63&id=tier4_scenario_simulator_v2
https://sonarcloud.io/project/issues?open=AZINWTDsjvEq9OQMnL7a&id=tier4_scenario_simulator_v2
https://sonarcloud.io/project/issues?open=AZJwAY5JlcZ2d3dSAT64&id=tier4_scenario_simulator_v2
https://sonarcloud.io/project/issues?open=AZINWTDvjvEq9OQMnL7g&id=tier4_scenario_simulator_v2
https://sonarcloud.io/project/issues?open=AZINWTDvjvEq9OQMnL7h&id=tier4_scenario_simulator_v2
https://sonarcloud.io/project/issues?open=AZINWTDvjvEq9OQMnL7i&id=tier4_scenario_simulator_v2
https://sonarcloud.io/project/issues?open=AZINWTDvjvEq9OQMnL7j&id=tier4_scenario_simulator_v2
Destructive Changes
N/A
Known Limitations
N/A
Related Issues
4.3.26
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
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
- https://sonarcloud.io/project/issues?open=AZINWTFwjvEq9OQMnL-M&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTFwjvEq9OQMnL-N&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTFsjvEq9OQMnL-I&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTFujvEq9OQMnL-K&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTFujvEq9OQMnL-L&id=tier4_scenario_simulator_v2
Destructive Changes
N/A
Known Limitations
N/A
Related Issues
4.3.24
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
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
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
- https://sonarcloud.io/project/issues?open=AZJS0wrRtJsnZH2iyX97&id=tier4_scenario_simulator_v2
- https://sonarcloud.io/project/issues?open=AZINWTIfjvEq9OQMnMBS&id=tier4_scenario_simulator_v2
Destructive Changes
N/A
Known Limitations
N/A
Related Issues
4.3.21
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:
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
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.
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
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.