Skip to content

Commit 1622b3d

Browse files
firemarkMarek Piechula
authored andcommitted
Splitting periodicUpdate into smaller methods
1 parent 19d43f4 commit 1622b3d

File tree

2 files changed

+251
-191
lines changed

2 files changed

+251
-191
lines changed

include/robot_localization/ros_filter.hpp

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

324349
protected:
325350
//! @brief Finds the latest filter state before the given timestamp and makes

0 commit comments

Comments
 (0)