Skip to content

Commit db4944f

Browse files
Planning scene monitor: reliable QoS (#3400) (#3410)
Co-authored-by: Aleksey Nogin <aleksey@redballoonsecurity.com> (cherry picked from commit 49ff5d8) Co-authored-by: Mark Johnson <104826595+rr-mark@users.noreply.github.com>
1 parent 8f9603b commit db4944f

5 files changed

Lines changed: 19 additions & 9 deletions

File tree

moveit_ros/planning/planning_scene_monitor/src/planning_scene_monitor.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@
4141
#include <moveit_msgs/srv/get_planning_scene.hpp>
4242
#include <moveit/utils/logger.hpp>
4343

44+
#include <rclcpp/qos.hpp>
45+
4446
// TODO: Remove conditional includes when released to all active distros.
4547
#if __has_include(<tf2/exceptions.hpp>)
4648
#include <tf2/exceptions.hpp>
@@ -1198,7 +1200,7 @@ void PlanningSceneMonitor::startSceneMonitor(const std::string& scene_topic)
11981200
if (!scene_topic.empty())
11991201
{
12001202
planning_scene_subscriber_ = pnode_->create_subscription<moveit_msgs::msg::PlanningScene>(
1201-
scene_topic, rclcpp::SystemDefaultsQoS(), [this](const moveit_msgs::msg::PlanningScene::ConstSharedPtr& scene) {
1203+
scene_topic, rclcpp::ServicesQoS(), [this](const moveit_msgs::msg::PlanningScene::ConstSharedPtr& scene) {
12021204
return newPlanningSceneCallback(scene);
12031205
});
12041206
RCLCPP_INFO(logger_, "Listening to '%s'", planning_scene_subscriber_->get_topic_name());
@@ -1295,15 +1297,15 @@ void PlanningSceneMonitor::startWorldGeometryMonitor(const std::string& collisio
12951297
if (!collision_objects_topic.empty())
12961298
{
12971299
collision_object_subscriber_ = pnode_->create_subscription<moveit_msgs::msg::CollisionObject>(
1298-
collision_objects_topic, rclcpp::SystemDefaultsQoS(),
1300+
collision_objects_topic, rclcpp::ServicesQoS(),
12991301
[this](const moveit_msgs::msg::CollisionObject::ConstSharedPtr& obj) { processCollisionObjectMsg(obj); });
13001302
RCLCPP_INFO(logger_, "Listening to '%s'", collision_objects_topic.c_str());
13011303
}
13021304

13031305
if (!planning_scene_world_topic.empty())
13041306
{
13051307
planning_scene_world_subscriber_ = pnode_->create_subscription<moveit_msgs::msg::PlanningSceneWorld>(
1306-
planning_scene_world_topic, rclcpp::SystemDefaultsQoS(),
1308+
planning_scene_world_topic, rclcpp::ServicesQoS(),
13071309
[this](const moveit_msgs::msg::PlanningSceneWorld::ConstSharedPtr& world) {
13081310
return newPlanningSceneWorldCallback(world);
13091311
});
@@ -1377,7 +1379,7 @@ void PlanningSceneMonitor::startStateMonitor(const std::string& joint_states_top
13771379
{
13781380
// using regular message filter as there's no header
13791381
attached_collision_object_subscriber_ = pnode_->create_subscription<moveit_msgs::msg::AttachedCollisionObject>(
1380-
attached_objects_topic, rclcpp::SystemDefaultsQoS(),
1382+
attached_objects_topic, rclcpp::ServicesQoS(),
13811383
[this](const moveit_msgs::msg::AttachedCollisionObject::ConstSharedPtr& obj) {
13821384
processAttachedCollisionObjectMsg(obj);
13831385
});

moveit_ros/planning/trajectory_execution_manager/src/trajectory_execution_manager.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@
4242
#include <tf2_eigen/tf2_eigen.hpp>
4343
#include <moveit/utils/logger.hpp>
4444

45+
#include <rclcpp/qos.hpp>
46+
4547
namespace trajectory_execution_manager
4648
{
4749

@@ -200,7 +202,7 @@ void TrajectoryExecutionManager::initialize()
200202
auto options = rclcpp::SubscriptionOptions();
201203
options.callback_group = callback_group;
202204
event_topic_subscriber_ = node_->create_subscription<std_msgs::msg::String>(
203-
EXECUTION_EVENT_TOPIC, rclcpp::SystemDefaultsQoS(),
205+
EXECUTION_EVENT_TOPIC, rclcpp::ServicesQoS(),
204206
[this](const std_msgs::msg::String::ConstSharedPtr& event) { return receiveEvent(event); }, options);
205207

206208
controller_mgr_node_->get_parameter("trajectory_execution.execution_duration_monitoring",

moveit_ros/visualization/motion_planning_rviz_plugin/src/motion_planning_display.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@
7171
#include <moveit/utils/rclcpp_utils.hpp>
7272
#include <moveit/utils/logger.hpp>
7373

74+
#include <rclcpp/qos.hpp>
75+
7476
namespace moveit_rviz_plugin
7577
{
7678

@@ -280,7 +282,7 @@ void MotionPlanningDisplay::toggleSelectPlanningGroupSubscription(bool enable)
280282
if (enable)
281283
{
282284
planning_group_sub_ = node_->create_subscription<std_msgs::msg::String>(
283-
"/rviz/moveit/select_planning_group", rclcpp::SystemDefaultsQoS(),
285+
"/rviz/moveit/select_planning_group", rclcpp::ServicesQoS(),
284286
[this](const std_msgs::msg::String::ConstSharedPtr& msg) { return selectPlanningGroupCallback(msg); });
285287
}
286288
else

moveit_ros/visualization/robot_state_rviz_plugin/src/robot_state_display.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
#include <moveit/robot_state/conversions.hpp>
3939
#include <moveit/utils/message_checks.hpp>
4040

41+
#include <rclcpp/qos.hpp>
42+
4143
// #include <rviz/visualization_manager.h>
4244
#include <rviz_default_plugins/robot/robot.hpp>
4345
#include <rviz_default_plugins/robot/robot_link.hpp>
@@ -304,7 +306,7 @@ void RobotStateDisplay::changedRobotStateTopic()
304306
setStatus(rviz_common::properties::StatusProperty::Warn, "RobotState", "No msg received");
305307

306308
robot_state_subscriber_ = node_->create_subscription<moveit_msgs::msg::DisplayRobotState>(
307-
robot_state_topic_property_->getStdString(), rclcpp::SystemDefaultsQoS(),
309+
robot_state_topic_property_->getStdString(), rclcpp::ServicesQoS(),
308310
[this](const moveit_msgs::msg::DisplayRobotState::ConstSharedPtr& state) { return newRobotStateCallback(state); });
309311
}
310312

moveit_ros/visualization/rviz_plugin_render_tools/src/trajectory_visualization.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@
5656
#include <rviz_default_plugins/robot/robot_link.hpp>
5757
#include <rviz_common/window_manager_interface.hpp>
5858

59+
#include <rclcpp/qos.hpp>
60+
5961
#include <string>
6062

6163
using namespace std::placeholders;
@@ -184,7 +186,7 @@ void TrajectoryVisualization::onInitialize(const rclcpp::Node::SharedPtr& node,
184186
}
185187

186188
trajectory_topic_sub_ = node_->create_subscription<moveit_msgs::msg::DisplayTrajectory>(
187-
trajectory_topic_property_->getStdString(), rclcpp::SystemDefaultsQoS(),
189+
trajectory_topic_property_->getStdString(), rclcpp::ServicesQoS(),
188190
[this](const moveit_msgs::msg::DisplayTrajectory::ConstSharedPtr& msg) { return incomingDisplayTrajectory(msg); });
189191
}
190192

@@ -295,7 +297,7 @@ void TrajectoryVisualization::changedTrajectoryTopic()
295297
if (!trajectory_topic_property_->getStdString().empty() && robot_state_)
296298
{
297299
trajectory_topic_sub_ = node_->create_subscription<moveit_msgs::msg::DisplayTrajectory>(
298-
trajectory_topic_property_->getStdString(), rclcpp::SystemDefaultsQoS(),
300+
trajectory_topic_property_->getStdString(), rclcpp::ServicesQoS(),
299301
[this](const moveit_msgs::msg::DisplayTrajectory::ConstSharedPtr& msg) {
300302
return incomingDisplayTrajectory(msg);
301303
});

0 commit comments

Comments
 (0)