diff --git a/mvsim_node_src/mvsim_node.cpp b/mvsim_node_src/mvsim_node.cpp index 30534202..3e26a969 100644 --- a/mvsim_node_src/mvsim_node.cpp +++ b/mvsim_node_src/mvsim_node.cpp @@ -733,15 +733,20 @@ void MVSimNode::initPubSubs(TPubSubPerVehicle& pubsubs, mvsim::VehicleBase* veh) { #if PACKAGE_ROS_VERSION == 1 // pub: /amcl_pose - pubsubs.pub_amcl_pose = mvsim_node::make_shared( - n_.advertise(vehVarName("amcl_pose", *veh), 1)); + pubsubs.pub_amcl_pose = + mvsim_node::make_shared(n_.advertise( + vehVarName("amcl_pose", *veh), 1, true /*latch*/)); // pub: /particlecloud pubsubs.pub_particlecloud = mvsim_node::make_shared( n_.advertise(vehVarName("particlecloud", *veh), 1)); #else + rclcpp::QoS qosLatched1(rclcpp::KeepLast(1)); + qosLatched1.durability( + rmw_qos_durability_policy_t::RMW_QOS_POLICY_DURABILITY_TRANSIENT_LOCAL); + // pub: /amcl_pose - pubsubs.pub_amcl_pose = - n_->create_publisher(vehVarName("amcl_pose", *veh), 1); + pubsubs.pub_amcl_pose = n_->create_publisher( + vehVarName("amcl_pose", *veh), qosLatched1); // pub: /particlecloud pubsubs.pub_particlecloud = n_->create_publisher(vehVarName("particlecloud", *veh), 1);