@@ -71,12 +71,6 @@ class ImuSensorBase
7171 {
7272 return {std::pow (stddev, 2 ), 0 , 0 , 0 , std::pow (stddev, 2 ), 0 , 0 , 0 , std::pow (stddev, 2 )};
7373 }
74-
75- auto calculateCovariance (const double variance0, const double variance1, const double variance2)
76- const -> std::array<double, 9>
77- {
78- return {variance0, 0 , 0 , 0 , variance1, 0 , 0 , 0 , variance2};
79- };
8074};
8175
8276template <typename MessageType>
@@ -103,51 +97,18 @@ class ImuSensor : public ImuSensorBase
10397 return ;
10498 }
10599
106- /* *
107- * @note Calculate covariance matrices based on some nominal values
108- * These values have no technical reason, they are an educated guess of what is reasonable
109- */
110- constexpr double nominal_angle{boost::math::constants::quarter_pi<double >()};
111- // clang-format off
112- orientation_covariance_ = calculateCovariance (
113- calculateVariance (nominal_angle,
114- publish.getRandomizer ().orientation_r_error .multiplicative .stddev (),
115- publish.getRandomizer ().orientation_r_error .additive .stddev ()),
116- calculateVariance (nominal_angle,
117- publish.getRandomizer ().orientation_p_error .multiplicative .stddev (),
118- publish.getRandomizer ().orientation_p_error .additive .stddev ()),
119- calculateVariance (nominal_angle,
120- publish.getRandomizer ().orientation_y_error .multiplicative .stddev (),
121- publish.getRandomizer ().orientation_y_error .additive .stddev ()));
122- // clang-format on
123-
124- constexpr double nominal_velocity{5.0 };
100+ // / @note Hardcoded values as the ones used in legacy configuration by default
125101 // clang-format off
126- angular_velocity_covariance_ = calculateCovariance (
127- calculateVariance (nominal_velocity,
128- publish.getRandomizer ().angular_velocity_x_error .multiplicative .stddev (),
129- publish.getRandomizer ().angular_velocity_x_error .additive .stddev ()),
130- calculateVariance (nominal_velocity,
131- publish.getRandomizer ().angular_velocity_y_error .multiplicative .stddev (),
132- publish.getRandomizer ().angular_velocity_y_error .additive .stddev ()),
133- calculateVariance (nominal_velocity,
134- publish.getRandomizer ().angular_velocity_z_error .multiplicative .stddev (),
135- publish.getRandomizer ().angular_velocity_z_error .additive .stddev ()));
102+ constexpr std::array<double , 9 > default_covariance = {
103+ 0.0001 , 0.0 , 0.0 ,
104+ 0.0 , 0.0001 , 0.0 ,
105+ 0.0 , 0.0 , 0.0001
106+ };
136107 // clang-format on
137108
138- constexpr double nominal_acceleration{0.5 };
139- // clang-format off
140- linear_acceleration_covariance_ = calculateCovariance (
141- calculateVariance (nominal_acceleration,
142- publish.getRandomizer ().linear_acceleration_x_error .multiplicative .stddev (),
143- publish.getRandomizer ().linear_acceleration_x_error .additive .stddev ()),
144- calculateVariance (nominal_acceleration,
145- publish.getRandomizer ().linear_acceleration_y_error .multiplicative .stddev (),
146- publish.getRandomizer ().linear_acceleration_y_error .additive .stddev ()),
147- calculateVariance (nominal_acceleration,
148- publish.getRandomizer ().linear_acceleration_z_error .multiplicative .stddev (),
149- publish.getRandomizer ().linear_acceleration_z_error .additive .stddev ()));
150- // clang-format on
109+ orientation_covariance_ = default_covariance;
110+ angular_velocity_covariance_ = default_covariance;
111+ linear_acceleration_covariance_ = default_covariance;
151112 }
152113
153114 auto update (
@@ -170,14 +131,6 @@ class ImuSensor : public ImuSensorBase
170131 const rclcpp::Time & current_ros_time,
171132 const traffic_simulator_msgs::msg::EntityStatus & status) const -> const MessageType;
172133
173- static auto calculateVariance (
174- const double nominal_value, const double multiplicative_stddev, const double additive_stddev)
175- -> double
176- {
177- return std::pow (nominal_value, 2 ) * std::pow (multiplicative_stddev, 2 ) +
178- std::pow (additive_stddev, 2 );
179- }
180-
181134 const bool override_legacy_configuration_;
182135 const std::string entity_name_;
183136 const std::string frame_id_;
0 commit comments