4. Prescan基础操作:场景搭建、道路编辑器、交通参与者配置、天气系统

说实话,Prescan这个工具我第一次接触时,觉得它像个「乐高积木」——各种模块往上一拖,场景就出来了。但真正做项目才发现,细节才是魔鬼。今天我就带你过一遍Prescan的核心操作,把我踩过的坑一并告诉你。

本章核心脉络:场景搭建 → 道路编辑 → 交通参与者配置 → 天气系统。这四个环节,是Prescan仿真场景的「四根柱子」。

Prescan 场景搭建 ① 场景搭建 导入/新建/布局 ② 道路编辑器 车道/交叉口/路沿 ③ 交通参与者 车辆/行人/传感器 ④ 天气系统 雨/雾/光照/时间

4.1 场景搭建——从空白画布开始

Prescan启动后,你会看到一个空白的3D视图。我个人习惯先设置好地图原点坐标——这关系到后续与CARLA的坐标对齐。在Insert > Environment里,你可以选择预设的地图模板,比如城市街区、高速公路或者乡村道路。

嗯,这里有个小细节:场景的单位是米,但Prescan内部用的是厘米级精度。我在做某个园区项目时,就因为单位理解偏差,把一条路建窄了半米,结果车辆老是蹭到路沿。后来学乖了,每次建完先用测量工具检查一下。

我的习惯:先导入一张卫星图作为底图(支持.png/.jpg),然后照着描道路。这样位置准,省时间。你可以在 View > Background Image 里加载。

场景搭建的核心操作就三步:

  1. 选模板:从Library里拖出道路、建筑、植被等元素
  2. 摆位置:用鼠标拖拽 + 属性面板精确调坐标
  3. 调参数:双击元素,在右侧属性栏改尺寸、颜色、材质

说白了,Prescan的场景搭建就是个「搭积木」的过程。但积木之间的连接关系,才是仿真成败的关键。

4.2 道路编辑器——路网的核心

道路编辑器是Prescan里我花时间最多的模块。你想想看,一条路如果曲率不对、车道数错了,后面的传感器仿真全是白搭。

打开道路编辑器的方式:选中一条道路,右键 Edit Road。你会看到这样的界面:

道路编辑器主要面板:
├── 几何编辑(Geometry)
│   ├── 添加/删除控制点
│   ├── 调整曲率半径
│   └── 设置坡度
├── 横断面编辑(Cross Section)
│   ├── 车道数量(1-8条)
│   ├── 车道宽度(默认3.5m)
│   ├── 路肩宽度
│   └── 中央分隔带
└── 连接编辑(Junction)
    ├── 交叉口类型(T型/十字/环岛)
    ├── 转向车道配置
    └── 交通信号灯关联

我曾经在一个高速场景里,需要模拟一条带坡度的弯道。Prescan默认的道路是平的,我折腾了半天才发现——控制点的高度(Z轴)是可以单独调的。选中控制点,在属性面板里改Z值就行。这个坑我记了很久。

注意:道路编辑器里修改了车道数后,一定要重新生成路网(点击 Rebuild 按钮)。否则Prescan不会自动更新交通参与者的行驶路径。我吃过这个亏,仿真跑到一半车全卡住了。

对于交叉口,Prescan提供了自动生成功能。你只需要把两条路交叉放置,然后右键 Create Junction。系统会自动生成转弯路径和冲突点。但自动生成的不一定完美——我建议手动检查一下转弯半径,尤其是大型车辆(卡车、公交车)的转弯需求。

4.3 交通参与者配置——让场景活起来

场景搭好了,路也画好了,接下来就是往里面放「活物」了。Prescan的交通参与者包括:

类型 子类 关键参数
车辆 轿车/SUV/卡车/公交车/自行车 尺寸、最大速度、加速度、颜色
行人 成人/儿童/老人 身高、步速、行为模式(过马路/站立)
传感器 摄像头/激光雷达/毫米波雷达/GPS/IMU 视场角、分辨率、更新频率、安装位置

配置车辆时,我一般会先设定好行驶路径。Prescan支持两种方式:

  • 路径点模式:手动点击地图,生成一串路径点,车辆会按顺序行驶
  • 跟随道路模式:车辆自动沿着道路中心线行驶,适合长距离测试

我个人更推荐路径点模式,因为可以精确控制车辆的行为——比如在某个点减速、变道、或者停车。你可以在路径点的属性面板里设置 Speed 和 Action(Stop, Turn, LaneChange等)。

避坑指南:我曾经在配置行人时,把行人的路径点放在了车道中间。结果仿真一开始,行人就站在路中间不动了——因为Prescan默认行人的路径点必须在人行道或路肩上。所以,行人的路径点要放在人行道区域内,或者用 Crosswalk 功能让行人横穿马路。

传感器配置这块,我多说两句。Prescan的传感器模型是「理想化」的——说白了,它不会模拟噪声和失真。但你可以通过参数调整来逼近真实传感器。比如激光雷达,我会把 Beam Divergence 设成 0.5°,Range Accuracy 设成 ±2cm,这样仿真数据更接近实际。

4.4 天气系统——给场景加点「料」

天气系统是Prescan的一大亮点。你想想看,自动驾驶算法在晴天表现再好,一到雨雾天就「瞎」了,那肯定不行。Prescan的天气参数都在 Environment > Weather 面板里。

核心参数包括:

  • 光照:太阳高度角、方位角、光照强度(lux)
  • 降水:雨量(0-100mm/h)、雪量
  • 雾:能见度(10m-10km)、雾的密度
  • 时间:一天中的时刻(自动计算光照角度)

我做过一个测试:在能见度50m的大雾场景里,毫米波雷达的表现比摄像头好得多,但激光雷达的点云密度也下降了30%。这些数据对算法选型很有参考价值。

小技巧:Prescan支持天气的动态变化。你可以在 Scenario > Time Series 里设置时间轴,让天气从晴天逐渐变成雨天。这样就能测试算法在「天气渐变」场景下的鲁棒性。我一般会设一个10分钟的渐变窗口,从能见度1000m降到100m。

嗯,这里还要注意一点:天气效果对传感器的影响是「视觉层面」的。Prescan不会模拟雨滴对激光雷达的散射,也不会模拟积水对毫米波雷达的多径效应。如果你需要更真实的物理仿真,建议把Prescan的场景导出到CARLA,用CARLA的物理引擎来跑。

最后,我建议你每次调整天气参数后,都点一下 Preview 按钮。Prescan会实时渲染出当前天气下的场景效果。这样你就能直观地看到——哦,原来能见度200m的雾天,摄像头只能看到前方30m的车辆轮廓。

总结一下:Prescan的天气系统虽然不像真实世界那么复杂,但作为算法验证的「第一道关卡」已经足够了。我的经验是:先用Prescan跑100组不同天气的组合,筛选出算法表现最差的几个场景,再导入CARLA做高保真仿真。这样效率最高。

好了,Prescan的基础操作就讲到这里。这四个模块——场景搭建、道路编辑器、交通参与者、天气系统——是Prescan仿真的「四件套」。你只要把这四个环节练熟了,大部分场景都能搞定。

可可精品资料库