@@ -199,14 +199,14 @@ class RosFilter : public rclcpp::Node
199
199
// ! @param[out] message - The standard ROS odometry message to be filled
200
200
// ! @return true if the filter is initialized, false otherwise
201
201
// !
202
- bool getFilteredOdometryMessage (nav_msgs::msg::Odometry * message);
202
+ bool getFilteredOdometryMessage (nav_msgs::msg::Odometry & message);
203
203
204
204
// ! @brief Retrieves the EKF's acceleration output for broadcasting
205
205
// ! @param[out] message - The standard ROS acceleration message to be filled
206
206
// ! @return true if the filter is initialized, false otherwise
207
207
// !
208
208
bool getFilteredAccelMessage (
209
- geometry_msgs::msg::AccelWithCovarianceStamped * message);
209
+ geometry_msgs::msg::AccelWithCovarianceStamped & message);
210
210
211
211
// ! @brief Callback method for receiving all IMU messages
212
212
// ! @param[in] msg - The ROS IMU message to take in.
@@ -245,6 +245,31 @@ class RosFilter : public rclcpp::Node
245
245
// !
246
246
void periodicUpdate ();
247
247
248
+ // ! @brief Update filter with data from measurements queue.
249
+ // ! @param[in] time - The time at which to carry out integration.
250
+ // !
251
+ void updateFilterWithMeasurements (const rclcpp::Time & time);
252
+
253
+ // ! @brief publish world to base link transform and position
254
+ // ! with odometry message
255
+ // ! @param[in] filtered_position - filtered position from
256
+ // ! getFilteredOdometryMessage.
257
+ // ! @return true if data is corrected otherwise false.
258
+ // !
259
+ bool publishPositionWithOdometry (nav_msgs::msg::Odometry filtered_position);
260
+
261
+ // ! @brief Update world to base link transform using filtered position.
262
+ // ! @param[in] filtered_position - filtered position from
263
+ // ! getFilteredOdometryMessage.
264
+ // !
265
+ void updateWorldToBaseLinkTransform (const nav_msgs::msg::Odometry & filtered_position);
266
+
267
+ // ! @brief Publish world transform using frame id from filtered position.
268
+ // ! @param[in] filtered_position - filtered position from
269
+ // ! getFilteredOdometryMessage.
270
+ // !
271
+ void publishWorldTransform (const nav_msgs::msg::Odometry & filtered_position);
272
+
248
273
// ! @brief Callback method for receiving all odometry messages
249
274
// ! @param[in] msg - The ROS odometry message to take in.
250
275
// ! @param[in] topic_name - The topic name for the odometry message (only used
@@ -319,7 +344,7 @@ class RosFilter : public rclcpp::Node
319
344
// ! @param[out] message - The standard ROS odometry message to be validated
320
345
// ! @return true if the filter output is valid, false otherwise
321
346
// !
322
- bool validateFilterOutput (nav_msgs::msg::Odometry * message);
347
+ bool validateFilterOutput (nav_msgs::msg::Odometry & message);
323
348
324
349
protected:
325
350
// ! @brief Finds the latest filter state before the given timestamp and makes
0 commit comments