4、LGSVL仿真器快速上手:场景加载、车辆配置、传感器套件选择、运行第一个仿真

好,咱们正式开始动手了。

前面几章我们把环境搭好了,ROS2也跑起来了。但说实话,光有这些还不够——你得让仿真器真正动起来,才能看到效果。这一章,我就带你走一遍LGSVL仿真器的完整启动流程。从加载场景到选车、配传感器,最后跑起来第一个仿真。

嗯,这里要注意:LGSVL的界面虽然看着简单,但有几个坑,我当年第一次用的时候也踩过。咱们一步步来。

4.1 启动LGSVL仿真器

首先,确保你已经按照第二章的步骤装好了LGSVL。如果还没装,先回去搞定。

启动方式很简单,终端里敲一行命令:

./simulator

或者如果你用的是Windows,双击那个exe就行。我个人习惯在终端里启动,因为能看到日志输出,万一报错能第一时间发现。

启动后你会看到一个主界面,左边是场景列表,右边是预览窗口。第一次打开可能会有点懵——别急,咱们一步步来。

小提示: 如果你启动后界面卡住或者黑屏,大概率是显卡驱动问题。我遇到过好几次,最后发现是NVIDIA驱动版本太老。建议更新到最新版,或者检查一下是不是用了集显在跑。

4.2 场景加载:选一个合适的地图

LGSVL自带了好几个地图,比如San Francisco、Borregas Ave、Cube Town等等。你可以在左侧的「Environments」标签页里看到它们。

我个人建议初学者先用 Borregas Ave。为什么?因为这个地图不大不小,路况简单,适合调试。San Francisco虽然好看,但路太复杂,第一次跑容易分心。

加载场景的步骤:

  1. 点击左侧的「Environments」标签
  2. 在列表里找到「Borregas Ave」
  3. 点击它,然后点右下角的「Load」按钮
  4. 等待几秒钟,场景就会加载到预览窗口里

你会看到一条笔直的马路,两边有树和建筑。嗯,这就是我们接下来要跑的地方。

注意: 加载场景时如果提示「Failed to load environment」,多半是网络问题。LGSVL需要从云端下载地图资源。我第一次用的时候在公司内网,死活加载不了,后来切了热点才搞定。建议提前检查网络。

4.3 车辆配置:选一辆能跑的车

场景加载好了,接下来要选车。LGSVL支持多种车型,包括Lexus RX 450h、Jaguar I-PACE、还有一辆简单的「Simple Vehicle」。

我个人推荐用 Lexus RX 450h。这辆车模型精细,传感器安装位置也合理,很多实际项目都在用。Simple Vehicle虽然轻量,但传感器布局太简陋,不适合后面做感知开发。

选车的步骤:

  1. 点击左侧的「Vehicles」标签
  2. 在列表里找到「Lexus RX 450h」
  3. 点击它,然后点右下角的「Add」按钮
  4. 车辆会出现在场景中,默认停在路边

你还可以调整车辆的初始位置。在预览窗口里,直接用鼠标拖拽车辆就行。我习惯把它放在马路中间,省得启动后还要调头。

小技巧: 如果你想让车辆精确停在某个位置,可以在右侧的「Transform」面板里手动输入坐标。比如x=0, y=0, z=0.5,车就稳稳地停在路中央了。

4.4 传感器套件选择:给车装上「眼睛」

车选好了,但光有车壳子不行——你得给它装上传感器,才能感知周围环境。LGSVL支持多种传感器套件,包括摄像头、激光雷达、GPS、IMU等等。

在车辆配置界面里,有一个「Sensor Configuration」选项。点开它,你会看到一堆预设的传感器配置。

常用的几个配置:

配置名称 包含传感器 适用场景
Main Lidar 1个64线激光雷达 + GPS/IMU 感知开发、SLAM测试
Camera Only 6个摄像头 + GPS/IMU 纯视觉方案测试
Full Sensor Suite 激光雷达 + 摄像头 + 雷达 + GPS/IMU 完整自动驾驶系统测试
Minimal 仅GPS/IMU 基础运动控制测试

我建议初学者先用 Main Lidar 配置。为什么?因为激光雷达数据直观,容易验证桥接是否成功。摄像头数据量大,处理起来复杂,容易出问题。

选好配置后,点「Apply」保存。你会看到车辆模型上出现了几个彩色的小方块——那就是传感器。嗯,看着还挺酷的。

避坑指南: 我曾经选过「Full Sensor Suite」,结果仿真一启动就卡死了。后来发现是传感器太多,我的笔记本带不动。如果你的电脑配置一般,建议从简单的配置开始,别贪多。

4.5 运行第一个仿真:让车动起来

好了,场景有了,车有了,传感器也装上了。现在该让它跑起来了。

运行仿真的步骤:

  1. 点击主界面右下角的「Run」按钮
  2. 仿真器会启动,进入运行模式
  3. 你会看到一个3D视图,车停在路中间
  4. 按键盘上的 W 键,车就会往前开

等等,就这么简单?对,就这么简单。LGSVL默认支持键盘控制,WASD分别对应前后左右。你可以先手动开一圈,感受一下仿真环境。

但咱们的目标不是手动开车,而是通过ROS2来控制。所以下一步,你需要打开另一个终端,启动ROS2桥接节点:

ros2 run lgsvl_bridge lgsvl_bridge

如果一切正常,你会看到终端里不断刷出消息:

[INFO] [lgsvl_bridge]: Connected to simulator at localhost:9090
[INFO] [lgsvl_bridge]: Subscribing to /lgsvl/vehicle_control
[INFO] [lgsvl_bridge]: Publishing /lgsvl/lidar_points

看到这个输出,说明桥接成功了。现在你可以用ROS2的话题来控制车辆了。比如发布一个速度指令:

ros2 topic pub /lgsvl/vehicle_control std_msgs/msg/Float32 "{data: 5.0}"

车就会以5m/s的速度往前开。嗯,是不是很有成就感?

小提示: 如果你发现桥接连不上,检查一下仿真器右下角的「Bridge」开关有没有打开。我刚开始就忘了开这个开关,折腾了半小时才发现。

4.6 验证传感器数据

车跑起来了,但传感器数据有没有传过来?咱们验证一下。

打开第三个终端,查看激光雷达话题:

ros2 topic echo /lgsvl/lidar_points

你会看到一堆点云数据在刷屏。如果觉得看数字不过瘾,可以用RViz2来可视化:

rviz2

在RViz2里添加一个「PointCloud2」显示,话题选/lgsvl/lidar_points。你会看到车周围出现了一圈彩色的点——那就是激光雷达扫描到的环境。

我第一次看到这个画面的时候,说实话挺震撼的。一个虚拟世界里的激光雷达,数据通过ROS2传出来,还能在RViz里实时显示。这就是自动驾驶仿真的魅力。

核心要点: 到这一步,你已经完成了LGSVL仿真器的完整上手流程。从加载场景、选车、配传感器,到运行仿真并验证ROS2桥接。接下来,你就可以在这个基础上做更复杂的开发了。

4.7 常见问题与解决

最后,我总结几个我当年踩过的坑,你遇到了可以直接对照:

  • 仿真器启动后黑屏:检查显卡驱动,或者尝试用--opengl参数启动
  • 桥接连不上:确认仿真器右下角的Bridge开关已打开,端口默认9090
  • 车辆不动:检查是否在运行模式下(不是编辑模式),按空格键可以暂停/继续
  • 传感器无数据:确认传感器配置已应用,有时候需要重启仿真器才能生效

嗯,这一章的内容就到这儿。你先把第一个仿真跑起来,感受一下。下一章,我们会深入讲解ROS2消息桥接的细节,包括如何自定义消息类型、如何处理时间戳同步——这些在实际项目中都是绕不开的硬骨头。