@@ -199,14 +199,14 @@ class RosFilter : public rclcpp::Node
199199 // ! @param[out] message - The standard ROS odometry message to be filled
200200 // ! @return true if the filter is initialized, false otherwise
201201 // !
202- bool getFilteredOdometryMessage (nav_msgs::msg::Odometry * message);
202+ bool getFilteredOdometryMessage (nav_msgs::msg::Odometry & message);
203203
204204 // ! @brief Retrieves the EKF's acceleration output for broadcasting
205205 // ! @param[out] message - The standard ROS acceleration message to be filled
206206 // ! @return true if the filter is initialized, false otherwise
207207 // !
208208 bool getFilteredAccelMessage (
209- geometry_msgs::msg::AccelWithCovarianceStamped * message);
209+ geometry_msgs::msg::AccelWithCovarianceStamped & message);
210210
211211 // ! @brief Callback method for receiving all IMU messages
212212 // ! @param[in] msg - The ROS IMU message to take in.
@@ -245,6 +245,31 @@ class RosFilter : public rclcpp::Node
245245 // !
246246 void periodicUpdate ();
247247
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+
248273 // ! @brief Callback method for receiving all odometry messages
249274 // ! @param[in] msg - The ROS odometry message to take in.
250275 // ! @param[in] topic_name - The topic name for the odometry message (only used
@@ -319,7 +344,7 @@ class RosFilter : public rclcpp::Node
319344 // ! @param[out] message - The standard ROS odometry message to be validated
320345 // ! @return true if the filter output is valid, false otherwise
321346 // !
322- bool validateFilterOutput (nav_msgs::msg::Odometry * message);
347+ bool validateFilterOutput (nav_msgs::msg::Odometry & message);
323348
324349protected:
325350 // ! @brief Finds the latest filter state before the given timestamp and makes
0 commit comments