From 8b89f1b472df22687d935f1e7090148cdae26e32 Mon Sep 17 00:00:00 2001 From: zlq040222 <1542498005@qq.com> Date: Sat, 1 Aug 2026 00:36:26 +0800 Subject: [PATCH] chore: Tune sentry gimbal PID params and add steering wheel integral limits --- rmcs_ws/src/rmcs_bringup/config/sentry.yaml | 23 ++++++++++++++++--- .../chassis/steering_wheel_controller.cpp | 12 ++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) diff --git a/rmcs_ws/src/rmcs_bringup/config/sentry.yaml b/rmcs_ws/src/rmcs_bringup/config/sentry.yaml index 760b4192..3db6f9be 100644 --- a/rmcs_ws/src/rmcs_bringup/config/sentry.yaml +++ b/rmcs_ws/src/rmcs_bringup/config/sentry.yaml @@ -41,7 +41,7 @@ auto_aim_capturer: ros__parameters: camera_name: "" exposure_us: 3000.0 - gain: 8.0 + gain: 10.0 framerate: 120.0 invert_image: true rls_tau_sec: 10.0 @@ -102,14 +102,14 @@ gimbal_controller: upper_limit: -0.65 lower_limit: 0.36 - top_yaw_angle_kp: 25.0 + top_yaw_angle_kp: 30.0 top_yaw_angle_ki: 0.008 top_yaw_angle_kd: 0.005 top_yaw_velocity_kp: 2.160 top_yaw_velocity_ki: 0.00 top_yaw_velocity_kd: 0.0 - bottom_yaw_angle_kp: 12.0 + bottom_yaw_angle_kp: 15.0 bottom_yaw_angle_ki: 0.01 bottom_yaw_angle_kd: 0.0 bottom_yaw_velocity_kp: 2.75 @@ -123,6 +123,21 @@ gimbal_controller: pitch_velocity_ki: 0.0 pitch_velocity_kd: 0.0 + top_yaw_angle_integral_min: -187.0 + top_yaw_angle_integral_max: 187.0 + top_yaw_velocity_integral_min: -2400.0 + top_yaw_velocity_integral_max: 2400.0 + + bottom_yaw_angle_integral_min: -150.0 + bottom_yaw_angle_integral_max: 150.0 + bottom_yaw_velocity_integral_min: -2400.0 + bottom_yaw_velocity_integral_max: 2400.0 + + pitch_angle_integral_min: -150.0 + pitch_angle_integral_max: 150.0 + pitch_velocity_integral_min: -2400.0 + pitch_velocity_integral_max: 2400.0 + chassis_controller: ros__parameters: angular_velocity_max: 10.0 @@ -252,10 +267,12 @@ steering_wheel_controller: chassis_translation_kp: 20.0 chassis_translation_ki: 0.00 chassis_translation_kd: 0.00 + chassis_translation_integral_limit: 200.0 chassis_angular_velocity_kp: 8.0 chassis_angular_velocity_ki: 0.005 chassis_angular_velocity_kd: 1.0 + chassis_angular_velocity_integral_limit: 200.0 steering_velocity_kp: 0.15 steering_velocity_ki: 0.0 diff --git a/rmcs_ws/src/rmcs_core/src/controller/chassis/steering_wheel_controller.cpp b/rmcs_ws/src/rmcs_core/src/controller/chassis/steering_wheel_controller.cpp index 1fe64e67..2f0abb7b 100644 --- a/rmcs_ws/src/rmcs_core/src/controller/chassis/steering_wheel_controller.cpp +++ b/rmcs_ws/src/rmcs_core/src/controller/chassis/steering_wheel_controller.cpp @@ -96,6 +96,18 @@ class SteeringWheelController "/chassis/right_back_wheel/control_torque", right_back_wheel_control_torque_); register_output( "/chassis/right_front_wheel/control_torque", right_front_wheel_control_torque_); + + double translation_integral_limit; + if (get_parameter("chassis_translation_integral_limit", translation_integral_limit)) { + chassis_translational_velocity_pid_.integral_min.setConstant(-translation_integral_limit); + chassis_translational_velocity_pid_.integral_max.setConstant(+translation_integral_limit); + } + + double angular_velocity_integral_limit; + if (get_parameter("chassis_angular_velocity_integral_limit", angular_velocity_integral_limit)) { + chassis_angular_velocity_pid_.integral_min = -angular_velocity_integral_limit; + chassis_angular_velocity_pid_.integral_max = +angular_velocity_integral_limit; + } } void update() override {