diff --git a/aruco_pose/cfg/DetectorParams.cfg b/aruco_pose/cfg/DetectorParams.cfg index c96c942b..5788e9e9 100755 --- a/aruco_pose/cfg/DetectorParams.cfg +++ b/aruco_pose/cfg/DetectorParams.cfg @@ -8,6 +8,8 @@ p = cv2.aruco.DetectorParameters_create() gen = ParameterGenerator() +gen.add("enabled", bool_t, 0, "if detection enabled", True) + gen.add("adaptiveThreshConstant", double_t, 0, "Constant for adaptive thresholding before finding contours", p.adaptiveThreshConstant, 0, 100) diff --git a/aruco_pose/src/aruco_detect.cpp b/aruco_pose/src/aruco_detect.cpp index 7d8d1d99..92422c0c 100644 --- a/aruco_pose/src/aruco_detect.cpp +++ b/aruco_pose/src/aruco_detect.cpp @@ -62,6 +62,7 @@ private: std::unique_ptr tf_buffer_; std::unique_ptr tf_listener_; std::shared_ptr> dyn_srv_; + bool enabled_ = true; cv::Ptr dictionary_; cv::Ptr parameters_; image_transport::Publisher debug_pub_; @@ -128,6 +129,8 @@ public: private: void imageCallback(const sensor_msgs::ImageConstPtr& msg, const sensor_msgs::CameraInfoConstPtr &cinfo) { + if (!enabled_) return; + Mat image = cv_bridge::toCvShare(msg, "bgr8")->image; vector ids; @@ -356,6 +359,7 @@ private: void paramCallback(aruco_pose::DetectorConfig &config, uint32_t level) { + enabled_ = config.enabled; parameters_->adaptiveThreshConstant = config.adaptiveThreshConstant; parameters_->adaptiveThreshWinSizeMin = config.adaptiveThreshWinSizeMin; parameters_->adaptiveThreshWinSizeMax = config.adaptiveThreshWinSizeMax;