diff --git a/moveit_ros/moveit_servo/include/moveit_servo/servo.hpp b/moveit_ros/moveit_servo/include/moveit_servo/servo.hpp index 88a8f91665..28d5627cee 100644 --- a/moveit_ros/moveit_servo/include/moveit_servo/servo.hpp +++ b/moveit_ros/moveit_servo/include/moveit_servo/servo.hpp @@ -229,6 +229,9 @@ class Servo std::atomic collision_velocity_scale_ = 1.0; std::unique_ptr collision_monitor_; + // Plugin loader + std::unique_ptr> smoother_loader_; + // Pointer to the (optional) smoothing plugin. pluginlib::UniquePtr smoother_ = nullptr; diff --git a/moveit_ros/moveit_servo/src/servo.cpp b/moveit_ros/moveit_servo/src/servo.cpp index c62488660f..22917e7bb5 100644 --- a/moveit_ros/moveit_servo/src/servo.cpp +++ b/moveit_ros/moveit_servo/src/servo.cpp @@ -139,9 +139,9 @@ void Servo::setSmoothingPlugin() // Load the smoothing plugin try { - pluginlib::ClassLoader smoothing_loader( + smoother_loader_ = std::make_unique>( "moveit_core", "online_signal_smoothing::SmoothingBaseClass"); - smoother_ = smoothing_loader.createUniqueInstance(servo_params_.smoothing_filter_plugin_name); + smoother_ = smoother_loader_->createUniqueInstance(servo_params_.smoothing_filter_plugin_name); } catch (pluginlib::PluginlibException& ex) {