道具蓝图

Carla 虚幻场景道具(Props)说明文档

目录

一、概述

道具(Props)是指布置在 Carla 虚幻场景中的各类独立静态物体和装饰元素,是构建真实自动驾驶模拟环境重要组成部分。通过合理使用道具,开发人员可快速搭建真实而丰富的城市环境,从而增强虚拟世界的真实性、细节和视觉沉浸感,确保驾驶仿真测试场景更全面更真实。

道具资产库包含各种交通设施、城市家具、装饰性元素等。开发人员通过 Carla 场景编辑器可以直观进行布置,支持模块化和批量操作,有效提高场景搭建效率。

注意:虽然道具通常表现为静态资产,但它们会明显影响自动驾驶系统的感知、路径决策和行为规划。因此,合理的资产选择与布局对于仿真验证自动驾驶性能和安全性至关重要。


二、道具的分类

Carla 场景道具一般包括(但不限于)以下几类:

  • 交通设施(Traffic Facilities)
  • 路标、指示牌
  • 交通灯、信号标志
  • 隔离栏、锥形交通桶
  • 城市家具(Street Furniture)
  • 公交车站、电话亭
  • 长椅、报刊亭、垃圾桶
  • 路灯、公共自行车架
  • 装饰物与场景附件(Decorations and Attachments)
  • 树木、植被、花坛
  • 广告牌、展示架
  • 商店橱窗、街道装饰
  • 施工和临时设施(Construction and Temporary Assets)
  • 建筑脚手架、工程设备
  • 临时围栏与封闭路段设施
  • 其他静态资产
  • 箱子、工业托盘
  • 石头、井盖等各类环境装饰物

三、道具的核心组件与蓝图结构

在 Carla 中,每个道具通常都是一个独立的 Unreal Engine 丰富蓝图 (Blueprint Class)。典型的道具蓝图结构包括:

Carla Props Blueprint (道具蓝图结构)
│
├─ StaticMeshComponent (静态网格组件) 
│    ├─ 几何体 Mesh Geometry
│    ├─ 材质 Material(s)
│    └─ 碰撞体 Collision Components
│
├─ SceneComponent (场景组件根节点)
│
├─ Tag / Identifier (标记或标识符,便于分类管理)
│
├─ Material instances (可选: 材质实例,用于实时调整材质细节)
│
└─ Lighting & Rendering Rules (灯光与渲染规则,且可选以提高真实感)
  • 静态网格组件 (StaticMeshComponent): 用于确定道具的几何外观、材质纹理和渲染细节。
  • 碰撞组件 (Collision): 允许传感器实现碰撞检测、距离测量、与AI路径规划及行为控制等模块进行交互。
  • 场景组件 (SceneComponent): 作为根节点用于调整、缩放、旋转和定位道具。
  • 标签 / 标识 (Tag): 允许分类、批量查找、筛选及管理,便于大规模场景布置。
  • 材质实例 (Material Instance): 用于动态控制道具的外观和细节,以优化性能和实现视觉多样性。

四、道具的布置与使用方法

1. 引用 Props 资产:

在虚幻引擎 (UE) 的 Carla 项目目录下,道具通常保存在以下路径中:

Content/Carla/Static/Props/

在 UE 编辑器中的「Content浏览器」 搜索具体的道具资产,通过拖拽的方式将其直接放置到地图编辑视口中。

2. 道具的定位与变换:

  • 所有道具均采用虚幻引擎坐标系 (X 正向指向前方,Y 正向指向右方,Z 正向向上);
  • 拖动道具到场景后,通过变换工具(移动、旋转、缩放)设置道具的位置、方向与大小。应尽可能保持真实的外观比例;
  • 必须保证:道具不可被放置在车辆、行人或其他动态物体生成功能点上,以避免运行时生成冲突。对于车辆或行人的生成区域,可使用 MapGen 模块提供的生成点信息预览以确保道具放置安全;
  • 建议为道具设定合理的碰撞体积(Collision Mesh),以便传感器(如激光雷达、雷达)能够正确检测。

3. 环境细节优化:

  • 道路交通模拟场景中,推荐合理使用「道路设备」与「公共基础设施」,实现真实感场景,并规范路网行为;
  • 在施工区域,适当布置施工长宽道具、临时围栏、警示牌等,测试自动驾驶感知系统的响应与策略;
  • 环境装饰道具建议广泛用于城市休闲区域、公园区域,以增加仿真环境的真实体验;

五、道具与 Carla 其他模块之间的交互、依赖与集成

道具非孤立存在,而是与多个 Carla 模拟器的核心模块紧密交互与集成。Carla 仿真架构中,各功能模块和道具之间相互协作关系如下:

  1. 仿真引擎模块(Simulation Engine)
  2. 碰撞检测(Collision检测)
  3. 物理模拟实时交互:道具可被定义为静态刚体,与车辆、行人、传感器产生碰撞反馈。

  4. 传感器模块(Sensor System)

  5. 激光雷达2D/3D点云投射与反射
  6. 摄像头视觉呈现与遮挡关系
  7. 雷达和超声波传感器的障碍物检测和数据交互

  8. 智能体与行为控制模块(Agents & Controllers)

  9. 路径规划算法:道具的位置和布置可能会影响规划的安全路径。
  10. 行为决策系统:道具位置直接决定交通场景合理性和AI行为策略。

  11. 地图与导航模块(Maps & Navigation)

  12. 地图标记与地理信息系统(GIS)对齐,定位道具于精确位置,确保仿真导航数据的一致性。
  13. 用于真实生成开源高精地图以及配套仿真场景。

  14. 场景编辑与资产管理工具(Scene Editor & Asset Management)

  15. 资产加载与实时更新
  16. 批量和快捷布置道具,提高生产效率。

为了更好可视化各个模块关系,特绘制以下交互结构图:

CARLA 道具(Props)与其他模块交互结构图

                    ┌─────────────┐  
                    │             │
                    │   道具 Props │
                    │ (静态资产 Static)│
                    │             │
                    └───▲─────▲───┘
                        │     │
                        │     │碰撞&可视化交互
                 ┌──────┴─┐ ┌─┴───────────┐
                 │传感器模块│ │仿真引擎模块    │
                 │ Sensors │ │Simulation Engine|
                 └───────▲┘ └───────▲──────┘
                         │          │
                         │          │碰撞物理逻辑
             ┌───────────┴────┐     │
             │智能体与控制模块(Agents │    │
             │ & Controllers) │     │
             └───────────▲────┘     │
                         │          │地图信息/定位数据          
                ┌────────┴─────────┐ │
                │地图与导航模块(Maps │ │
                │ & Navigation)    ├─┘
                └────────┬─────────┘
                         │道具资产管理&场景加载
                   ┌─────▼──────────┐
                   │场景编辑与资产管理器 │
                   │(Scene & Asset Manager)│
                   └────────────────┘

六、性能与优化

道具必须考虑性能因素:

  • 推荐尽可能采用低多边形(Low-poly)模型,减少渲染负载;
  • 远距离道具(Distance props)需做好LOD设置,使模拟器以最有效的性能使用显卡资源;
  • 静态道具建议成组布置,以 优化静态网格体批处理,降低渲染时延。

七、创建与扩展自定义道具

如果 Carla 虚幻项目中的现有道具无法满足特定需求,也可自行添加自定义道具:

  1. 制作满足虚幻格式标准的3D模型(FBX文件);
  2. 导入到 Carla 工程中,设置合适的碰撞模块和材质;
  3. 导入完成后,存储到Props资产目录,调整蓝图属性后即可使用。

八、注意事项与维护

  • 不同参与者可能对道具之间碰撞反应不同,推荐对每个新道具进行初步的碰撞检查和自动化传感器标定;
  • 定期检查和维护道具资产库,移除未使用的模型以确保项目整洁稳定;
  • 进行场景布置时,建议保存快速備份和版本控制,防止出现布局混乱或模型丢失;