4、开发环境搭建:Ubuntu系统配置、ROS安装与配置、LGSVL Simulator安装与启动

好,咱们直接进入正题。这一章,说白了就是“把家伙事儿都支棱起来”。

做自动驾驶仿真,环境搭不好,后面全是白搭。我见过太多新手,代码写得挺好,结果卡在环境配置上,一卡就是两三天。嗯,咱们今天就把这事彻底搞定。

4.1 Ubuntu系统配置:选对版本,少走弯路

我个人习惯用 Ubuntu 18.0420.04。为什么?因为LGSVL和ROS对这两个版本支持最好。你想想看,要是用个太新的版本,驱动不兼容,那得多闹心。

⚠️ 版本警告:

千万别用Ubuntu 22.04!LGSVL官方目前对22.04的支持还有坑。我在项目中试过一次,折腾了两天,最后还是乖乖换回20.04。

安装步骤其实很简单,但有几个细节要注意:

  1. 分区建议:至少给系统盘留50GB,数据盘留100GB以上。高精地图文件动辄几个G,你懂的。
  2. 显卡驱动:如果你用的是NVIDIA显卡,记得装官方驱动。开源驱动nouveau跑仿真会卡成PPT。
  3. 换源:安装完第一件事,换国内源。阿里云、清华、中科大,随便选一个。不然下载速度会让你怀疑人生。
💡 我的小技巧:

装完系统后,先跑一遍 sudo apt update && sudo apt upgrade -y。把系统更新到最新,能避免很多奇奇怪怪的依赖问题。

4.2 ROS安装与配置:Melodic还是Noetic?

ROS版本的选择,其实跟Ubuntu版本绑定。Ubuntu 18.04对应ROS Melodic,20.04对应ROS Noetic。我个人推荐 Noetic,毕竟新一些,Python3支持更好。

安装ROS,我建议用官方脚本,省心。但要注意,别一股脑全装。你想想看,几百个包,大部分你用不上。装个桌面完整版就够了:

# 设置源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

# 添加密钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

# 更新并安装
sudo apt update
sudo apt install ros-noetic-desktop-full -y

🔑 关键一步: 安装完后,别忘了初始化rosdep。我当初就忘了这步,结果编译工作空间时各种报错,查了半天才发现是rosdep没跑。

sudo rosdep init
rosdep update

然后设置环境变量。我个人习惯把它写到 ~/.bashrc 里,这样每次打开终端自动加载:

echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

验证一下安装是否成功:

roscore

如果看到一堆日志输出,最后停在 started core service [/rosout],那就成了。按 Ctrl+C 退出就行。

4.3 LGSVL Simulator安装与启动:从下载到跑起来

LGSVL的安装,其实比ROS简单。它是个独立的仿真器,不需要编译源码。直接下载编译好的二进制文件就行。

去哪里下载?GitHub Releases页面。选对版本很重要:

LGSVL版本 推荐Ubuntu版本 备注
2021.3 18.04 / 20.04 最稳定,推荐
2022.1 20.04 新功能多,但有小bug

下载后,解压到一个你记得住的位置。我个人习惯放在 ~/tools/lgsvl 下:

mkdir -p ~/tools
cd ~/tools
# 假设下载的文件是 lgsvl-simulator-linux64-2021.3.zip
unzip lgsvl-simulator-linux64-2021.3.zip

启动前,有个坑要注意。LGSVL需要OpenGL支持。如果你在虚拟机里跑,大概率会报错。我曾经在VirtualBox里试过,画面一片漆黑,折腾了半天才发现是3D加速没开。

⚠️ 硬件要求:

LGSVL对显卡有一定要求。至少需要GTX 1060级别以上的显卡,显存4GB以上。不然加载高精地图时,帧率会掉到个位数。

启动命令很简单:

cd ~/tools/lgsvl
./simulator

第一次启动会有点慢,因为要加载各种资源。耐心等一会儿,看到登录界面就说明成功了。

💡 启动加速小技巧:

如果你只是做开发测试,不需要登录账号。直接点“Skip Login”就行。这样能省去网络验证的时间。

4.4 验证环境:跑个简单测试

环境搭好了,咱们得验证一下能不能用。我建议跑一个最简单的测试:让LGSVL和ROS通信。

首先,启动LGSVL,加载一个默认地图(比如San Francisco)。然后在终端里启动ROS:

roscore

再开一个终端,查看话题列表:

rostopic list

如果看到类似 /simulator/clock/simulator/vehicle_state 这样的话题,说明通信成功了。

嗯,到这里,你的开发环境就搭好了。是不是比想象中简单?

下一章,咱们会正式进入高精地图的导入环节。到时候,我会手把手教你如何把OpenDRIVE格式的地图文件加载到LGSVL里。准备好了吗?