Skip to content

Commit c598c9c

Browse files
committed
fixed subscribers cb group, noy in rt
1 parent b49f379 commit c598c9c

2 files changed

Lines changed: 16 additions & 17 deletions

File tree

localizers/easynav_fusion_localizer/src/easynav_fusion_localizer/FusionLocalizer.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,7 @@ void FusionLocalizer::update_rt(NavState & nav_state)
8383
if (gps_time > last_gps_stamp_[i]) {
8484
// if(true) {
8585
last_gps_stamp_[i] = gps_time;
86-
std::cout << "FusionLocalizer: Processing GNSS sensor data " << i << std::endl;
8786
auto pose = navsatfix_to_pose(gps_data[i]->data);
88-
std::cout << "GPS UTM POSE (X, Y): " << pose.pose.pose.position.x << ", " <<
89-
pose.pose.pose.position.y << std::endl;
9087
// nav_state.set("UTM_gnss_pose", pose);
9188
// Call the wrapper callback
9289
ukf_wrapper_->poseCallback(
@@ -96,14 +93,11 @@ void FusionLocalizer::update_rt(NavState & nav_state)
9693
ukf_wrapper_->getOdomFrameId(), // pose_source_frame
9794
false // imu_data
9895
);
99-
std::cout << "FusionLocalizer: Processed!!" << std::endl;
10096
}
10197
}
10298
}
103-
104-
std::cout << "Updating..." << std::endl;
99+
105100
ukf_wrapper_->periodicUpdate();
106-
std::cout << "Updated!!" << std::endl;
107101

108102
nav_msgs::msg::Odometry current_odom;
109103
if (ukf_wrapper_->getFilteredOdometryMessage(&current_odom)) {

localizers/easynav_fusion_localizer/src/easynav_fusion_localizer/ukf_wrapper.cpp

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,11 @@ void UkfWrapper::loadParams()
820820
// Get the plugin name, if any
821821
const std::string param_prefix = plugin_name_.empty() ? "" : plugin_name_ + ".";
822822

823+
// Get callback_group
824+
auto rt_cbg = parent_node_->get_real_time_cbg();
825+
rclcpp::SubscriptionOptions options;
826+
options.callback_group = rt_cbg;
827+
823828
double alpha = parent_node_->declare_parameter(param_prefix + "alpha", 0.001);
824829
double kappa = parent_node_->declare_parameter(param_prefix + "kappa", 0.0);
825830
double beta = parent_node_->declare_parameter(param_prefix + "beta", 2.0);
@@ -1169,7 +1174,7 @@ void UkfWrapper::loadParams()
11691174
set_pose_sub_ =
11701175
parent_node_->create_subscription<geometry_msgs::msg::PoseWithCovarianceStamped>(
11711176
"set_pose", rclcpp::QoS(1),
1172-
std::bind(&UkfWrapper::setPoseCallback, this, std::placeholders::_1));
1177+
std::bind(&UkfWrapper::setPoseCallback, this, std::placeholders::_1), options);
11731178

11741179
// Create a service for manually setting/resetting pose
11751180
set_pose_service_ =
@@ -1305,7 +1310,7 @@ void UkfWrapper::loadParams()
13051310
topic_subs_.push_back(
13061311
parent_node_->create_subscription<nav_msgs::msg::Odometry>(
13071312
odom_topic, custom_qos,
1308-
odom_callback));
1313+
odom_callback, options));
13091314
} else {
13101315
std::stringstream stream;
13111316
stream << odom_topic << " is listed as an input topic, but all update "
@@ -1443,7 +1448,7 @@ void UkfWrapper::loadParams()
14431448
topic_subs_.push_back(
14441449
parent_node_->create_subscription<
14451450
geometry_msgs::msg::PoseWithCovarianceStamped>(
1446-
pose_topic, custom_qos, pose_callback));
1451+
pose_topic, custom_qos, pose_callback, options));
14471452

14481453
if (differential) {
14491454
twist_var_counts[StateMemberVx] += pose_update_vec[StateMemberX];
@@ -1526,9 +1531,9 @@ void UkfWrapper::loadParams()
15261531
std::numeric_limits<double>::max());
15271532

15281533
// Set optional custom queue size
1529-
int queue_size = parent_node_->declare_parameter(param_prefix +
1530-
gps_topic_name +
1531-
std::string("_queue_size"), 10);
1534+
// int queue_size = parent_node_->declare_parameter(param_prefix +
1535+
// gps_topic_name +
1536+
// std::string("_queue_size"), 10);
15321537

15331538
// Pull in the sensor's config, zero out values that are invalid for the
15341539
// gps type
@@ -1660,7 +1665,7 @@ void UkfWrapper::loadParams()
16601665
topic_subs_.push_back(
16611666
parent_node_->create_subscription<
16621667
geometry_msgs::msg::TwistWithCovarianceStamped>(
1663-
twist_topic, custom_qos, twist_callback));
1668+
twist_topic, custom_qos, twist_callback, options));
16641669

16651670
twist_var_counts[StateMemberVx] += twist_update_vec[StateMemberVx];
16661671
twist_var_counts[StateMemberVy] += twist_update_vec[StateMemberVy];
@@ -1869,7 +1874,7 @@ void UkfWrapper::loadParams()
18691874
auto custom_qos = rclcpp::SensorDataQoS(rclcpp::KeepLast(queue_size));
18701875
topic_subs_.push_back(
18711876
parent_node_->create_subscription<sensor_msgs::msg::Imu>(
1872-
imu_topic, custom_qos, imu_callback));
1877+
imu_topic, custom_qos, imu_callback, options));
18731878
} else {
18741879
RCLCPP_ERROR_STREAM(
18751880
parent_node_->get_logger(),
@@ -1950,11 +1955,11 @@ void UkfWrapper::loadParams()
19501955
if(stamped_control_) {
19511956
stamped_control_sub_ = parent_node_->create_subscription<geometry_msgs::msg::TwistStamped>(
19521957
"cmd_vel", rclcpp::QoS(1),
1953-
std::bind(&UkfWrapper::controlStampedCallback, this, std::placeholders::_1));
1958+
std::bind(&UkfWrapper::controlStampedCallback, this, std::placeholders::_1), options);
19541959
} else {
19551960
control_sub_ = parent_node_->create_subscription<geometry_msgs::msg::Twist>(
19561961
"cmd_vel", rclcpp::QoS(1),
1957-
std::bind(&UkfWrapper::controlCallback, this, std::placeholders::_1));
1962+
std::bind(&UkfWrapper::controlCallback, this, std::placeholders::_1), options);
19581963
}
19591964
}
19601965

0 commit comments

Comments
 (0)