Skip to content

Commit 9382912

Browse files
committed
Кэфы курса
1 parent c3b53d7 commit 9382912

File tree

7 files changed

+64
-16
lines changed

7 files changed

+64
-16
lines changed

docker/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ set -e
55
IMAGE_NAME="stingray_core"
66
CONTAINER_NAME="stingray_core"
77

8-
xhost +si:localuser:root
8+
#xhost +si:localuser:root
99

1010

1111
if [ "$(docker ps -a -q -f name=^/${CONTAINER_NAME}$)" ]; then

run_rov.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ colcon build --packages-select \
1212
serial_driver \
1313
io_context \
1414
asio_cmake_module \
15-
ms5837_pressure_sensor \
1615
vectornav_msgs \
1716
vectornav \
1817
stingray_core_launch

src/stingray_core_control/params/controllers.yaml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ stingray_core_control_node:
4545
controllers.pitch.out_sat: 1.0
4646
controllers.pitch.ap_K: 1.0
4747
controllers.pitch.ap_T: 0.2
48-
controllers.yaw.K_p: 1.2
49-
controllers.yaw.K_1: 1.0
50-
controllers.yaw.K_2: 0.3
51-
controllers.yaw.K_i: 0.05
52-
controllers.yaw.I_min: -0.3
53-
controllers.yaw.I_max: 0.3
54-
controllers.yaw.out_sat: 0.8
48+
controllers.yaw.K_p: 0.6
49+
controllers.yaw.K_1: 4.4
50+
controllers.yaw.K_2: 1.4
51+
controllers.yaw.K_i: 0.6
52+
controllers.yaw.I_min: -0.01
53+
controllers.yaw.I_max: 0.01
54+
controllers.yaw.out_sat: 200.0
5555
controllers.yaw.ap_K: 1.0
56-
controllers.yaw.ap_T: 0.15
56+
controllers.yaw.ap_T: 0.0

src/stingray_core_control/params/stingray_core_control_node.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ stingray_core_control_node:
55
topic_loop_flags: /control/loop_flags
66
topic_imu_angular: /vectornav/raw/common/yawpitchroll
77
topic_imu_linear_accel: /vectornav/imu_accel
8-
topic_imu_angular_rate: /vectornav/imu_rate
8+
topic_imu_angular_rate: /vectornav/imu
99
thrusters:
1010
- depth_front_left
1111
- depth_front_right
@@ -93,3 +93,4 @@ stingray_core_control_node:
9393
- ap_T
9494
flag_setup_feedback_speed: false
9595
debug_publish: true
96+
use_sim_time: false

src/stingray_core_control/stingray_core_control/controllers.py

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,27 @@ def set_debug_hook(self, hook):
9898
"""hook(dict) — вызывается, если debug включён"""
9999
self.debug_hook = hook
100100

101+
def apply_params(self, **kwargs):
102+
"""
103+
Обновляет параметры контроллера "на лету".
104+
Не трогает внутренние состояния, если явно не указано reset=True.
105+
"""
106+
reset_required = False
107+
108+
for k, v in kwargs.items():
109+
if not hasattr(self, k):
110+
continue
111+
112+
# если меняем динамические параметры — нужен reset
113+
if k in ("K_i", "ap_T", "ap_K"):
114+
reset_required = True
115+
116+
setattr(self, k, float(v) if isinstance(v, (int, float)) else v)
117+
118+
if reset_required:
119+
self.reset()
120+
121+
101122

102123
@abstractmethod
103124
def update(self, setpoint: float, measurement: float, measurement_rate: float, dt: float) -> float:
@@ -115,7 +136,19 @@ def update(self, setpoint: float, measurement: float, measurement_rate: float, d
115136
# Angular controllers
116137
# -----------------------
117138
class YawController(BaseController):
118-
def update(self, setpoint: float, measurement: float, measurement_rate: float, dt: float, flag_setup_feedback_speed: bool) -> float:
139+
def update(
140+
self,
141+
setpoint: float,
142+
measurement: float,
143+
measurement_rate: float,
144+
dt: float,
145+
flag_setup_feedback_speed: bool,
146+
param_update: dict | None = None
147+
) -> float:
148+
149+
if param_update:
150+
self.apply_params(**param_update)
151+
119152
setspeed = setpoint * flag_setup_feedback_speed
120153
if flag_setup_feedback_speed:
121154
output_pi = 0.0
@@ -137,8 +170,9 @@ def update(self, setpoint: float, measurement: float, measurement_rate: float, d
137170
output_pi = res_p + res_i
138171

139172
# 6) aperiodic filter from rate (wz) and scale
140-
ap = self.aperiodic_step(measurement_rate, dt)
173+
ap = self.aperiodic_step(57.3 * measurement_rate, dt)
141174
feedback_speed = ap * self.K_2
175+
# feedback_speed = 57.3 *measurement_rate * self.K_2
142176

143177
# 7) final output (PI minus speed feedback)
144178
error_speed = output_pi + setspeed - feedback_speed
@@ -152,7 +186,7 @@ def update(self, setpoint: float, measurement: float, measurement_rate: float, d
152186
if self.debug_hook is not None:
153187
self.debug_hook({
154188
"err_position": err_position,
155-
"output_pi": output_pi,
189+
"output_pi": 57.3 *measurement_rate,
156190
"feedback_speed": feedback_speed,
157191
"error_speed": error_speed,
158192
"out": out,

src/stingray_core_control/stingray_core_control/stingray_core_control_node.py

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,21 @@ def compute_pitch(self):
374374

375375
def compute_yaw(self):
376376
dt = self.last_dt
377-
return self.yaw_ctrl.update(self.impact_yaw, self.imu_yaw, self.imu_rate_z, dt, self.flag_setup_feedback_speed)
377+
return self.yaw_ctrl.update(
378+
self.impact_yaw,
379+
self.imu_yaw,
380+
self.imu_rate_z,
381+
dt,
382+
self.flag_setup_feedback_speed,
383+
param_update={
384+
"K_p": self.controllers["yaw"].K_p,
385+
"K_i": self.controllers["yaw"].K_i,
386+
"K_1": self.controllers["yaw"].K_1,
387+
"K_2": self.controllers["yaw"].K_2,
388+
"ap_T": self.controllers["yaw"].ap_T,
389+
"ap_K": self.controllers["yaw"].ap_K,
390+
"out_sat": self.controllers["yaw"].out_sat,
391+
})
378392

379393

380394

src/stingray_core_launch/launch/run_rov.launch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,6 @@ def generate_launch_description():
3535
return LaunchDescription([
3636
thruster_link,
3737
core_control,
38-
ms5837,
38+
# ms5837,
3939
vectornav
4040
])

0 commit comments

Comments
 (0)