From 45fece5360b50c9fed22b64ca216c07764b53e57 Mon Sep 17 00:00:00 2001 From: Bluefairy-ljy <3099568863@qq.com> Date: Sat, 3 Oct 2026 22:05:13 +0800 Subject: [PATCH] Add service callers for auto color switching and target re-selection in track mode. --- .../rm_common/decision/service_caller.h | 34 ++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/rm_common/include/rm_common/decision/service_caller.h b/rm_common/include/rm_common/decision/service_caller.h index 457a2089..63fd3787 100644 --- a/rm_common/include/rm_common/decision/service_caller.h +++ b/rm_common/include/rm_common/decision/service_caller.h @@ -46,6 +46,9 @@ #include #include #include +#include +#include +#include namespace rm_common { @@ -133,6 +136,35 @@ class ServiceCallerBase int fail_count_, fail_limit_; }; +class ColorChangeServiceCaller : public ServiceCallerBase +{ +public: + explicit ColorChangeServiceCaller(ros::NodeHandle& nh) + : ServiceCallerBase(nh, "/superpower_track_vision/change_color") + { + service_.request.data = false; + callService(); + } + void changeColor() + { + service_.request.data = !service_.request.data; + callService(); + } +}; + +class TrackerResetServiceCaller : public ServiceCallerBase +{ +public: + explicit TrackerResetServiceCaller(ros::NodeHandle& nh) + : ServiceCallerBase(nh, "/superpower_track/reset") + { + callService(); + } + void reset() + { + callService(); + } +}; class SwitchControllersServiceCaller : public ServiceCallerBase { public: @@ -185,7 +217,7 @@ class SwitchDetectionCaller : public ServiceCallerBase { public: explicit SwitchDetectionCaller(ros::NodeHandle& nh) - : ServiceCallerBase(nh, "/detection_nodelet/status_switch") + : ServiceCallerBase(nh, "/Processor/status_change") { service_.request.target = rm_msgs::StatusChangeRequest::ARMOR; service_.request.exposure = rm_msgs::StatusChangeRequest::EXPOSURE_LEVEL_0;