From bf11fdf42e0ba9a21726d85a6446eb463e6c54ee Mon Sep 17 00:00:00 2001 From: Haidong Wang Date: Tue, 16 Dec 2025 09:39:20 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"=E6=94=B9=E8=BF=9B=E9=81=BF=E9=9A=9C?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E9=81=BF=E5=85=8D=E8=BF=87=E5=BA=A6?= =?UTF-8?q?=E8=BD=AC=E5=90=91=20(#3297)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 656fc55b438bee1cb8500f50bd3fc7240ab87f80. --- src/car_navigation_system/main.py | 46 +------------------------------ 1 file changed, 1 insertion(+), 45 deletions(-) diff --git a/src/car_navigation_system/main.py b/src/car_navigation_system/main.py index f2386e33c0..f9d8ddb25d 100644 --- a/src/car_navigation_system/main.py +++ b/src/car_navigation_system/main.py @@ -288,13 +288,8 @@ def preprocess_state(self, speed, steer_history): ] return torch.tensor(state_data, device=self.device).unsqueeze(0) - - # 在 ImprovedNeuralController 类的 apply_obstacle_avoidance 方法中,修改以下部分: - def apply_obstacle_avoidance(self, throttle, brake, steer, obstacle_info, speed): - """应用避障逻辑 - 优化版本""" - def apply_obstacle_avoidance(self, throttle, brake, steer, obstacle_info, speed): - + """应用避障逻辑""" if not obstacle_info['has_obstacle']: return throttle, brake, steer @@ -304,49 +299,11 @@ def apply_obstacle_avoidance(self, throttle, brake, steer, obstacle_info, speed) # 紧急情况:前方有近距离障碍物 if distance < self.emergency_brake_distance: print(f"紧急刹车!距离障碍物: {distance:.1f}m") - - return 0.0, 1.0, 0.0 # 紧急情况下保持直行,只刹车 - return 0.0, 1.0, steer # 全力刹车 - # 中距离障碍物:减速并准备转向 elif distance < self.safe_following_distance: # 计算安全速度比例 - - safe_speed_ratio = (distance - 3.0) / (self.safe_following_distance - 3.0) - safe_speed_ratio = max(0.1, min(1.0, safe_speed_ratio)) - - # 如果当前速度过高,减速 - target_speed = 15.0 * safe_speed_ratio # 目标速度最大15km/h - current_speed_kmh = speed * 3.6 - - if current_speed_kmh > target_speed: - throttle = 0.0 - brake = 0.4 * ((current_speed_kmh - target_speed) / current_speed_kmh) - else: - throttle = 0.3 * safe_speed_ratio - brake = 0.0 - - # 如果障碍物在正前方,尝试轻微转向避开 - if abs(angle) < 15: # 正前方±15度内 - # 根据障碍物距离决定转向幅度 - avoid_factor = max(0, 1.0 - distance / self.safe_following_distance) - avoid_steer = 0.3 * avoid_factor if angle >= 0 else -0.3 * avoid_factor - # 平滑转向 - 保持更多原始转向 - steer = 0.8 * steer + 0.2 * avoid_steer - - # 远距离障碍物:轻微调整 - elif distance < 25.0: - # 轻微减速 - if speed > 8.0: - throttle *= 0.7 - - # 如果障碍物在正前方,轻微转向 - if abs(angle) < 20: - avoid_steer = 0.15 if angle >= 0 else -0.15 - steer = 0.9 * steer + 0.1 * avoid_steer - safe_speed_ratio = (distance - 2.0) / (self.safe_following_distance - 2.0) safe_speed_ratio = max(0.1, min(1.0, safe_speed_ratio)) @@ -373,7 +330,6 @@ def apply_obstacle_avoidance(self, throttle, brake, steer, obstacle_info, speed) avoid_steer = 0.2 if angle >= 0 else -0.2 steer = 0.8 * steer + 0.2 * avoid_steer - return throttle, brake, steer def get_control(self, image, speed, steer_history, obstacle_info):