Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 65 additions & 14 deletions src/car_navigation_system/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,22 @@

## 核心功能
- **多模态感知系统**:集成 RGB 摄像头(前视 + 第三视角)与障碍物检测器,全面获取环境信息
- **智能避障算法**:基于改进神经网络控制器与传统控制器双模式,动态检测并规避前方障碍物
- **智能避障算法**:基于改进神经网络控制器与传统控制器双模式,动态检测并规避前方障碍
- **实时可视化**:实时显示第三视角画面,叠加障碍物检测结果、车速、控制状态等关键信息
- **双模式控制**:支持神经网络模式与传统控制模式切换,可根据环境选择最优控制策略
- **智能恢复机制**:内置车辆卡住检测与自动恢复系统,保障行驶稳定性
- **深度神经网络**:结合神经网络与传统控制算法,实现车辆自主行驶与障碍物规避功能
- **夜晚模式**:支持昼夜切换,自动开启/关闭近光灯
- **车辆款式切换**:支持多种车辆模型切换
- **轨迹导航显示**:实时显示道路拓扑地图与车辆行驶轨迹

## 项目结构
```
car_navigation_system/
├── README.md # 项目说明文档
└── main.py # 主程序文件
├── main.py # 主程序文件
├── screenshots/ # 截图保存目录
└── sync_main.bat # 同步主分支脚本
```

## 环境配置
Expand All @@ -29,7 +34,7 @@ car_navigation_system/
- 从 [CARLA 官网](https://carla.org/) 下载并安装 CARLA 3.11
- 或使用项目提供的 CARLA 安装包

2. **安装 Python 依赖包**
2. **安装 Python 依赖**
```bash
pip install carla numpy opencv-python matplotlib torch
```
Expand Down Expand Up @@ -63,23 +68,29 @@ car_navigation_system/
| q | 退出系统 |
| r | 重置车辆位置 |
| s | 紧急停止 |
| w | 手动加速(提高油门) |
| a | 手动左转向 |
| d | 手动右转向 |
| x | 切换倒车/前进模式 |
| v | 切换视角(第一人称/第三人称/鸟瞰图) |
| m | 切换地图 |
| w | 切换天气 |
| c | 切换车辆颜色 |
| p | 保存当前画面截图 |
| l | 切换夜晚模式(自动打开/关闭近光灯) |
| u | 切换车辆款式 |
| d | 切换导航轨迹显示 |

## 系统架构

### 1. 环境初始化模块
- 连接 CARLA 服务器(默认 localhost:2000)
- 加载 Town01 地图,设置异步模式确保连接稳定
- 配置天气参数(云量30%、无降水、太阳高度角70°
- 加载地图,设置异步模式确保连接稳定
- 配置天气参数(云量、降水、太阳高度角

### 2. 智能体生成模块
- **主车辆**:特斯拉 Model3(红色),关闭自动驾驶,由自定义控制算法控制
- **NPC车辆**:随机生成2辆不同类型车辆,开启自动驾驶
- **主车辆**:特斯拉 Model3,关闭自动驾驶,由自定义控制算法控制
- **NPC车辆**:随机生成多辆不同类型车辆,开启自动驾驶

### 3. 传感器系统
- **第三视角摄像头**:90°视野,分辨率640×480,用于可视化监控
- **多视角摄像头**:支持第一人称、第三人称、鸟瞰视角
- **图像数据处理**:实时转换和处理相机图像数据

### 4. 控制系统
Expand All @@ -88,7 +99,7 @@ car_navigation_system/
- **转向控制**:基于路点计算最优转向角度

### 5. 可视化与监控
- 实时显示第三视角画面
- 实时显示摄像头画面
- 叠加车速、油门、转向值等状态信息
- 每100帧显示一次运行状态

Expand All @@ -97,19 +108,43 @@ car_navigation_system/
- 车辆生成失败时自动清理并重新尝试
- 异常情况时优雅退出并清理资源

### 7. 夜晚模式系统
- 一键切换昼夜模式
- 自动调整天气参数(云层、雾密度、太阳高度角)
- 自动控制近光灯开关

### 8. 车辆款式系统
- 支持多种车辆模型切换(特斯拉Model3、雪佛兰Impala、福特Mustang、奔驰Coupe、日产Patrol)
- 切换时保持车辆颜色和位置
- 自动重建相机和控制器

### 9. 轨迹导航系统
- 实时生成道路拓扑地图
- 显示车辆行驶轨迹(黄色线条)
- 在画面右上角显示200x200小地图
- 红色点标记当前车辆位置
- 支持最多500个轨迹点记录

## 技术特点
- **模块化设计**:清晰的类结构和功能划分
- **鲁棒性强**:多重重试和错误处理机制
- **实时性能**:优化的控制循环和图像处理
- **易于扩展**:预留了神经网络控制器接口
- **用户友好**:简洁的操作界面和状态显示

## 截图功能
按 `p` 键保存当前画面截图,自动命名格式:
```
screenshot_时间戳_地图名_天气_颜色.png
```
示例:`screenshot_20260508_204930_Town01_Clear_Red.png`

## 常见问题

### 1. 连接 CARLA 服务器失败
- 确保 CARLA 模拟器正在运行
- 检查端口是否为 2000
- 验证 Town01 地图是否可用
- 验证地图是否可用

### 2. 车辆生成失败
- 可能是出生点被占用
Expand Down Expand Up @@ -147,11 +182,27 @@ car_navigation_system/

## 更新日志

### v1.2.0
- 添加夜晚模式(按L键切换),自动开启/关闭近光灯
- 添加车辆款式切换功能(按U键切换),支持5种车辆模型
- 添加轨迹导航显示功能(按D键切换)
- 实现道路拓扑地图生成
- 在画面右上角显示小地图和行驶轨迹
- 优化车辆切换时的稳定性和错误处理

### v1.1.0
- 添加多视角切换功能(第一人称/第三人称/鸟瞰图)
- 添加地图切换功能
- 添加天气切换功能
- 添加车辆颜色切换功能
- 实现截图功能(按p键保存)
- 优化倒车控制功能

### v1.0.0
- 初始化项目
- 实现基本的自动驾驶功能
- 添加第三视角摄像头
- 实现路点跟踪控制算法
- 添加NPC车辆生成
- 实现车辆重置功能
- 添加紧急停止功能
- 添加紧急停止功能
Loading