-
Notifications
You must be signed in to change notification settings - Fork 65
Feature: Add noise to Localization, Velocity status and IMU #1577
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
…ionError and make it a template to accept multiple floating point types Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
The previous noise mechanism is not in use This required accessing Publisher::randomize to obtain normal distribution error standard deviations Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Test applying noise using legacy parameters - simulation_api_schema Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
…arameters file Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Signed-off-by: Mateusz Palczuk <[email protected]>
Checklist for reviewers ☑️All references to "You" in the following text refer to the code reviewer.
|
Signed-off-by: Mateusz Palczuk <[email protected]>
|
No regressions confirmed here. |
fa7b459 to
c3fc045
Compare
… used Signed-off-by: Mateusz Palczuk <[email protected]>
c3fc045 to
2d3fb38
Compare
|
No regressions confirmed here |
Failure optional scenariosNote This is an experimental check and does not block merging the pull-request. scenario failed: execution_time_test <failure type="SimulationFailure" message="CustomCommandAction typed "exitFailure" was triggered by the named Conditions {"update time checker", "avoid startup"}: {"update time checker": Is the /simulation/interpreter/execution_time/update (= 0.005033000000000000147271084217) is greaterThan 0.005?}, {"avoid startup": Is the simulation time (= 8.649999999999987920773492078297) is greaterThan 1.000000000000000000000000000000?}" /> |
|
|
|
This PR has failed the SonarQube scan. Please check the details in the SonarQube dashboard. |



Description
Abstract
This pull request aims to add noise to the topics:
/vehicle/status/velocity_status/sensing/imu/imu_data/localization/pose_estimator/pose_with_covarianceNote
This pull request may seem to be big, but the majority of the PR are tests and appending the parameters file.
For details on what part of this PR is not changing any functionality or actual simulator code, please see the table below.
Background
Details
Publisher noise framework refactoring
The concealer noise framework has been slightly refactored in order to make it easier to implement additional randomizers.
The struct
Errordefined inNormalDistribution<nav_msgs::msg::Odometry>has been moved outside theNormalDistribution<nav_msgs::msg::Odometry>and renamed toNormalDistributionError, so that it could be used in otherNormalDistributionspecializations.It has also been converted to template so that other real types supported by
std::normal_distributioncould be used.Additionally, a member
activehas been added, so that the randomization of data could be turned off (this is opt-in, default is always active).NormalDistributionBasebase struct has been implemented in order to provide common functionality for all normalNormalDistributionspecializations. It providesseedandenginemembers and a constructor that initializes them. Theseedis obtained from the appropriate seed ROS parameter, andengineis initialized using theseed.Thanks to the
NormalDistributionBase,NormalDistributionspecializations only have to define what randomization errors they contain, how they are initialized and how they are applied.What is more, the
Publisher::randomizemember has been declared mutable, because its internal state changes (the random number generator engine) and this should not block developers from creatingconstPublishers.Concealer noise
The
NormalDistribution<nav_msgs::msg::Odometry>has been adjusted to the changes mentioned above.The noise adding framework from
concealer::Publisherhas been used implementing additional concealer noise, that is noise applied to topics/vehicle/status/velocity_status/localization/pose_estimator/pose_with_covarianceFor this reason, the
NormalDistribution<autoware_vehicle_msgs::msg::VelocityReport>andNormalDistribution<geometry_msgs::msg::PoseWithCovarianceStamped>have been implemented and used inAutowareUniverseclass.Additionally, the unit tests for new
NormalDistributionspecializations have been implemented.Simple sensor simulator noise
Noise adding framework from
concealer::Publisherhas been used implementing simple sensor simulator noise, that is the noise applied to topic/sensing/imu/imu_dataApplying noise to this topic has been slightly more complicated, because the sensor already had some noise implementation.
The older noise implementation is incompatible with the normal distribution noise framework from
concealer::Publisher.For this reason, and the fact we want to keep the simulator backward compatible - the new noise adding method has been added "on top" of the old implementation with a switch enabling to choose which implementation should be used.
This means the original implementation is used by default and only when user specifies the parameter
/sensing/imu/imu_data.override_legacy_configurationto be true the legacy method is switched off and the new method is switched on (part of this process involves calculating new covariance matrices, because they depend on the new noise parameters).Additionally, unit tests (testing only the noise application correctness) for
ImuSensorwith both noise configurations (legacy and new) have been implemented.Parameters
Finally, all parameters used for implemented noise have been listed in the scenario test runner parameters file.
References
INTERNAL LINK
No regressions confirmed
Destructive Changes
None
Known Limitations
None