Skip to content
Open
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
239 changes: 157 additions & 82 deletions src/car_navigation_system/README.md
Original file line number Diff line number Diff line change
@@ -1,82 +1,157 @@
# 多模态 CARLA 导航避障系统
## 项目简介
本项目基于 CARLA 模拟器与神经网络技术,实现了具备多传感器融合能力的智能车辆导航避障系统。系统集成前视摄像头、第三视角摄像头与障碍物检测模块,通过多模态数据感知环境,结合神经网络与传统控制算法,实现车辆自主行驶与障碍物规避功能。
## 核心功能
- 多模态感知系统:集成 RGB 摄像头(前视 + 第三视角)与障碍物检测器,全面获取环境信息
- 智能避障算法:基于改进神经网络控制器与传统控制器双模式,动态检测并规避前方障碍物
- 实时可视化:实时显示第三视角画面,叠加障碍物检测结果、车速、控制状态等关键信息
- 双模式控制:支持神经网络模式与传统控制模式切换,可根据环境选择最优控制策略
- 智能恢复机制:内置车辆卡住检测与自动恢复系统,保障行驶稳定性
- 深度神经网络:结合神经网络与传统控制算法,实现车辆自主行驶与障碍物规避功能
## 环境配置
- 操作系统:Windows 10/11 或 Ubuntu 20.04/22.04
- Python 版本:3.7
- 核心框架:PyTorch
- 模拟器:CARLA_3.11
## 依赖安装
- 安装 CARLA 模拟器(参考 CARLA 官网)
- 安装 Python 依赖包:
- ```bash
pip install -r requirements.txt
pip install carla numpy opencv-python matplotlib
pip install setuptools==40.2.0
pip insatll wheel
pip insatll torch
pip install random
PIP install cv2
```
## 快速启动

步骤 1:启动 CARLA 模拟器
- ``` bash
CarlaUE4.exe -windowed -ResX=800 -ResY=600 #Windows 示例
./CarlaUE4.sh -windowed -ResX=800 -ResY=600 #Ubuntu 示例
```
步骤 2:运行导航避障系统
- 进入项目根目录
- ```bash
cd D:\nn
```
- 激活虚拟环境
- ``` bash
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
```
- 运行主程序
- ``` bash
python src/robot_navigation_system/main.py
```
步骤 3:操作说明
- 按键 功能描述:
- q 退出系统
- w 手动加速(提高油门)
- s 手动减速(降低油门)
- a 手动左转向
- d 手动右转向
- r 重置转向角度(回正)
## 系统架构
1. 环境初始化模块
- 连接 CARLA 服务器(默认 localhost:2000)
- 加载 Town01 地图,设置同步模式(固定时间步长 0.1s)
- 配置天气参数(云量30%、无降水、太阳高度角70°)
2. 智能体生成模块
- 主车辆:特斯拉 Model3(红色),关闭自动驾驶,由自定义控制算法控制
- NPC车辆:随机生成3辆不同类型车辆,开启自动驾驶,分散在50米外起始位置
3. 传感器系统
- 前视摄像头:90°视野,分辨率640×480,用于神经网络输入
- 第三视角摄像头:110°视野,分辨率640×480,用于可视化监控
- 障碍物检测器:实时检测前方±60°范围内50米内障碍物
4. 控制系统
- 神经网络控制器:基于改进的SimpleDrivingNetwork,融合图像与障碍物信息
- 传统控制器:基于路点跟踪的经典控制算法,稳定性更高
- 障碍物避障逻辑:紧急刹车、减速跟随、转向避让多级策略
5. 可视化与监控
- 实时显示第三视角画面
- 可视化障碍物位置与距离
- 显示车速、控制模式、油门/刹车/转向值
- 安全区域标记与卡住警告
6. 深度神经网络
- 网络架构:3层卷积提取图像特征,融合障碍物三维特征,全连接层输出归一化控制指令;
- 容错策略:异常时自动切换传统控制,输出超限触发软限制。
## 联系方式
邮箱:2985835251@qq.com
# 多模态 CARLA 导航避障系统

## 项目简介
本项目基于 CARLA 模拟器与神经网络技术,实现了具备多传感器融合能力的智能车辆导航避障系统。系统集成前视摄像头、第三视角摄像头与障碍物检测模块,通过多模态数据感知环境,结合神经网络与传统控制算法,实现车辆自主行驶与障碍物规避功能。

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

## 项目结构
```
car_navigation_system/
├── README.md # 项目说明文档
└── main.py # 主程序文件
```

## 环境配置
- **操作系统**:Windows 10/11 或 Ubuntu 20.04/22.04
- **Python 版本**:3.7+ (推荐 3.10)
- **核心框架**:PyTorch
- **模拟器**:CARLA 3.11 或兼容版本

## 依赖安装
1. **安装 CARLA 模拟器**
- 从 [CARLA 官网](https://carla.org/) 下载并安装 CARLA 3.11
- 或使用项目提供的 CARLA 安装包

2. **安装 Python 依赖包**
```bash
pip install carla numpy opencv-python matplotlib torch
```

## 快速启动

### 步骤 1:启动 CARLA 模拟器
- **Windows**:
```bash
CarlaUE4.exe -windowed -ResX=800 -ResY=600
```
- **Ubuntu**:
```bash
./CarlaUE4.sh -windowed -ResX=800 -ResY=600
```

### 步骤 2:运行导航避障系统
1. **进入项目目录**
```bash
cd f:\nn\src\car_navigation_system
```

2. **运行主程序**
```bash
python main.py
```

### 步骤 3:操作说明
| 按键 | 功能描述 |
|------|----------|
| q | 退出系统 |
| r | 重置车辆位置 |
| s | 紧急停止 |
| w | 手动加速(提高油门) |
| a | 手动左转向 |
| d | 手动右转向 |

## 系统架构

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

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

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

### 4. 控制系统
- **传统控制器**:基于路点跟踪的经典控制算法,稳定性更高
- **速度控制**:根据目标速度自动调整油门和刹车
- **转向控制**:基于路点计算最优转向角度

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

### 6. 容错与恢复
- 相机设置失败时继续运行
- 车辆生成失败时自动清理并重新尝试
- 异常情况时优雅退出并清理资源

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

## 常见问题

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

### 2. 车辆生成失败
- 可能是出生点被占用
- 系统会自动清理现有车辆并重新尝试

### 3. 相机设置失败
- 可能是资源不足
- 系统会在相机失败时继续运行,仅影响可视化

## 贡献指南

### 提交代码
1. Fork 本项目
2. 创建 feature 分支
3. 提交修改
4. 发起 Pull Request

### 代码规范
- 遵循 PEP 8 代码风格
- 添加适当的注释
- 确保代码可维护性

### 功能扩展
- 可以添加更多传感器类型
- 实现神经网络控制器
- 增加更多地图支持
- 添加更复杂的避障算法

## 许可证
本项目采用 MIT 许可证,详见 LICENSE 文件。

## 联系方式
- **邮箱**:2985835251@qq.com
- **项目地址**:[GitHub 仓库链接]

## 更新日志

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