4、场景构建基础:道路模型库、创建直线/曲线道路、交叉路口设计、车道线及路肩设置
场景构建,说白了就是给自动驾驶的车搭台子。台子搭不好,戏就没法唱。我在做ADAS仿真这些年,见过太多因为路修得不对,导致传感器数据全乱套的案例。今天咱们就把Prescan里修路这件事,掰开揉碎了讲清楚。
4.1 道路模型库:你的“预制件仓库”
Prescan的道路模型库,你可以把它想象成一个乐高仓库。里面存着各种标准件:直线段、曲线段、十字路口、环岛、匝道……你不需要从零画一条路,而是像搭积木一样把它们拼起来。
我个人习惯,在开始一个新项目前,先花10分钟浏览一遍模型库。为什么?因为很多时候,你想要的场景,库里有现成的。比如一个标准的T型路口,直接拖出来用,比自己手搭快得多,也准得多。
4.2 创建直线道路:最基础,也最容易出错
直线道路看似简单,不就是拉一条线吗?其实不然。Prescan里创建直线道路,有几个关键参数你必须心里有数:
- 长度: 别只想着够用就行。我建议至少留出50米的缓冲区,给车辆加速和减速用。
- 车道数: 双向几车道?有没有专用转弯车道?这些决定了你后续的交通流逻辑。
- 坡度: 默认是平的。但如果你要测坡道起步或者下坡制动,记得在“道路属性”里调整纵坡。
操作上,你只需要在“道路”选项卡里选“直线”,然后在地图上点两个点。Prescan会自动生成一条带车道线的路。嗯,这里要注意:起点和终点的顺序,决定了行车方向。我刚开始用的时候,经常点反,结果车在逆向车道跑,还纳闷为什么老报错。
4.3 曲线道路:别让曲率坑了你
曲线道路才是考验功力的地方。Prescan支持两种曲线:圆弧曲线和样条曲线。
- 圆弧曲线: 有固定的半径。适合做标准的弯道测试,比如ISO 3888双移线测试。
- 样条曲线: 可以自由调整形状。适合模拟真实道路的S弯或者连续弯。
我个人更常用样条曲线,因为它更真实。但有个坑:曲率变化不能太剧烈。我曾经在做一个高速匝道场景时,为了追求视觉效果,把曲线拉得很急。结果仿真时,车辆在弯道里直接侧滑出去了。后来一查,曲率半径小于车辆的最小转弯半径了。你想想看,物理上就不可能过弯,仿真当然会崩。
4.4 交叉路口设计:十字路口、T型路口、环岛
交叉路口是场景里最复杂的部分。Prescan提供了几种标准路口模板,但真正用起来,你得理解它的逻辑。
以十字路口为例,创建步骤是这样的:
- 先画好四条相交的道路。
- 在交叉点处,用“路口”工具框选一个区域。
- Prescan会自动生成路口的几何形状、车道连接、以及路缘石。
但这里有个关键:车道连接。Prescan默认会把所有可能的转向路径都连上。比如左转、直行、右转。但如果你只需要直行和右转,就得手动删掉左转的连接。否则,你的自动驾驶车在路口会多出很多不存在的路径选择,导致规划器死机。
我记得有一次做V2X场景,需要在路口加一个红绿灯。我直接在路口上放了一个信号灯模型,结果仿真时车根本不看灯。后来才发现,红绿灯必须和路口的“信号灯控制器”绑定,而不是随便放个模型就行。这个细节,文档里写得很隐晦,我是踩了坑才记住的。
4.5 车道线及路肩设置:细节决定成败
车道线和路肩,很多人觉得是小事。但传感器(尤其是摄像头)就是靠这些“视觉特征”来定位的。你车道线画错了,车道保持功能就废了。
Prescan里车道线设置包括:
- 线型: 实线、虚线、双实线、虚实线。每种线型对应不同的交通规则。
- 颜色: 白色、黄色。国内一般是白色虚线、黄色实线。
- 宽度: 标准是0.15米,但有些国家是0.12米。别小看这3厘米,摄像头标定不准时,就是这3厘米导致车道偏离误报。
路肩设置相对简单,主要是高度和材质。高度一般设为0.15米,材质选“混凝土”或“沥青”。但如果你要做泊车场景,路肩高度建议设为0.1米,否则超声波雷达可能探测不到。
4.6 本章知识体系总览
下面这张图,是我自己总结的场景构建核心逻辑。你可以把它当作一个检查清单:
这张图从左到右,从上到下,就是你在Prescan里修路的完整流程。先选模型库里的预制件,再决定道路类型,然后调参数,最后别忘了验证。每一步都有坑,但只要你按这个逻辑走,基本不会出大问题。
好了,场景构建的基础就讲到这里。记住,路是场景的骨架,骨架歪了,后面的传感器、控制算法全白搭。下一节我们会聊更具体的交通元素设置,但前提是——你得先把路修对。