diff --git a/docs/carla_3D_object_fusion_detect/README.md b/docs/carla_3D_object_fusion_detect/README.md new file mode 100644 index 0000000000..06043f60ae --- /dev/null +++ b/docs/carla_3D_object_fusion_detect/README.md @@ -0,0 +1,236 @@ + +# CARLA雨天多传感器自动驾驶仿真数据采集系统项目 +## 一、项目背景与研究意义 +自动驾驶感知算法高度依赖海量多场景标注数据集,实车采集存在成本高、场景受限、恶劣工况危险、难以复现碰撞场景等痛点。CARLA开源自动驾驶仿真平台可快速搭建可控虚拟交通场景,能够批量生成雨天、雾天、夜间等各类退化感知工况数据,非常适合多传感器融合感知算法的研发与验证。 + +本项目基于CARLA仿真平台搭建一套完整的多传感器同步数据采集与可视化仿真系统,一站式完成传感器数据同步录制、动态交通场景生成、工况切换、障碍物预警、轨迹存储等功能,为3D目标检测、多传感器时空配准、感知模型鲁棒性消融实验提供标准化数据集支撑。 + + +## 二、系统整体功能 +### 2.1 核心能力 +1. **模拟器对接**:自动连接 CARLA,创建自动驾驶主车,支持重连容错。 +2. **多传感器部署**:集成 RGB 相机、语义相机、激光雷达、碰撞传感器、GNSS、IMU,全维度采集感知与定位数据。 +3. **多环境仿真**:内置晴天、大雨、雾天、夜晚四类典型场景,支持快捷键一键切换天气。 +4. **动态交通流**:根据自车车速自适应调整车辆、行人的生成数量、刷新间隔与清除范围,模拟拥堵/常规/高速路况。 +5. **安全感知预警**:基于激光雷达实现前方障碍物距离检测,分级触发提醒、危险告警。 +6. **可视化交互**:实时绘制车速仪表盘、车道线、红绿灯状态,支持 RGB/语义分割视图切换。 +7. **数据存储**:定时保存图像、点云;碰撞事件自动存档;支持手动/自动记录车辆轨迹至 CSV 文件。 +8. **资源管理**:程序退出自动销毁所有角色、传感器,避免模拟器残留进程。 + +### 2.2 应用场景 +- 自动驾驶感知算法仿真测试 +- 雨天/雾天恶劣环境多传感器融合数据集采集 +- 车道线检测、语义分割、3D 目标检测实验 +- 障碍物预警、行车风险评估算法验证 + +## 三、运行环境 +### 3.1 基础环境 +- 操作系统:Windows / Linux +- Python 版本:3.7 ~ 3.8(CARLA 官方适配版本) +- 仿真软件:CARLA 0.9.12 及以上稳定版 + +### 3.2 依赖库 +```bash +pip install opencv-python numpy +``` +- `carla`:模拟器原生接口,随 CARLA 安装,无需额外安装 +- `opencv-python`:图像渲染、画面展示、图片读写 +- `numpy`:矩阵运算、点云解析、坐标转换 +- 内置库:`time`/`os`/`csv`/`math`/`random`/`datetime` 等,用于路径、时间、文件管理 + +## 四、目录结构 +程序自动在项目上级目录生成数据文件夹,分类存储仿真产出: +``` +项目根目录/ +├── images/ # 定时采集 RGB 图像 +├── lidar/ # 定时采集激光雷达点云(.ply 格式) +├── collision/ # 碰撞触发时保存的图像+点云 +├── semantic/ # 语义分割相机图像 +└── trajectory/ # 车辆轨迹 CSV 文件(定位、姿态、速度、IMU 数据) +``` + +## 五、全局参数配置 +### 5.1 数据保存配置 +| 参数 | 取值 | 说明 | +| ---- | ---- | ---- | +| SAVE_INTERVAL | 300s | 自动保存传感器数据间隔(5分钟) | +| COLLISION_COOLDOWN_SEC | 3.0s | 碰撞冷却时间,短时间重复碰撞不重复存图 | + +### 5.2 动态交通配置 +| 参数 | 取值 | 说明 | +| ---- | ---- | ---- | +| BASE_SPAWN_INTERVAL | 5.0s | 常规车速下交通参与者生成间隔 | +| BASE_MAX_VEHICLES | 4 | 常规场景最大车辆数量 | +| BASE_MAX_PEDESTRIANS | 5 | 常规场景最大行人数量 | +| LOW_SPEED_THRESHOLD | 20 km/h | 低速阈值,低于该值切换拥堵模式 | +| HIGH_SPEED_THRESHOLD | 60 km/h | 高速阈值,高于该值切换稀疏模式 | +| SPAWN_RADIUS | 40m | 仅在自车 40 米范围内生成车辆/行人 | +| REMOVE_DISTANCE_BASE | 80m | 中/低速下,超出范围自动清除远端角色 | +| REMOVE_DISTANCE_HIGH | 120m | 高速下,扩大远端角色清除范围 | + +### 5.3 障碍物预警配置 +| 参数 | 取值 | 说明 | +| ---- | ---- | ---- | +| OBSTACLE_WARNING_DISTANCE | 10.0m | 预警触发距离 | +| OBSTACLE_DANGER_DISTANCE | 5.0m | 危险告警触发距离 | +| OBSTACLE_FOV_ANGLE | 60° | 前方障碍物检测视场角 | +| OBSTACLE_MAX_HEIGHT | 2.0m | 高度过滤阈值,剔除高空无效点云 | + +### 5.4 天气预设 +系统内置 4 套 CARLA 天气参数,启动默认**大雨场景**: +1. sunny:晴天,无雨、无雾、路面干燥 +2. rainy:大雨,强降雨+路面积水+轻度雾气 +3. foggy:大雾,低能见度、无降雨 +4. night:夜间,弱光照、无雨无雾 + +
+
+ 晴天场景(SUNNY) + |
+
+
+ 雨天场景(RAINY) + |
+
+
+ 雾天场景(FOGGY) + |
+
+
+ 夜晚场景(NIGHT) + |
+
图0:四种预设天气仿真效果对比
+
+图1:语义分割视图渲染效果,不同类别像素独立上色标注
+
+图2:前方障碍物近距离危险告警弹窗
+
+图3:图像空间投影绘制车道线可视化效果
+
+图4:红绿灯状态识别+距离实时显示界面
+
+图5:左侧仪表盘完整UI信息细节展示
+