2、开发环境搭建:Ubuntu 22.04系统配置、ROS2 Humble安装与验证、LGSVL仿真器安装
好,咱们正式开始动手了。这一章说白了就是「搭台子」。台子搭不好,后面唱戏全得摔跟头。我见过太多同学卡在环境配置上,一卡就是一整天,其实真没必要。跟着我的节奏来,半小时搞定。
2.1 Ubuntu 22.04 系统配置
我个人习惯用 Ubuntu 22.04 LTS 作为主力开发系统。为什么选它?因为 ROS2 Humble 官方推荐的就是 22.04,兼容性最好。你非要用 20.04 或者 24.04 也不是不行,但有些依赖包会让你多花不少时间去折腾。
2.1.1 基础系统安装
如果你是在物理机上装,建议至少分配 100GB 磁盘空间,内存 8GB 起步。虚拟机的话,我给个最低配置:
| 项目 | 推荐配置 | 最低配置 |
|---|---|---|
| CPU | 4核 | 2核 |
| 内存 | 16GB | 8GB |
| 磁盘 | 120GB SSD | 60GB |
| 显卡 | NVIDIA GTX 1060+ | 集成显卡(会卡) |
2.1.2 系统更新与基础依赖
装完系统第一件事,更新源。别偷懒,这一步能避免后面 80% 的依赖冲突问题。
sudo apt update && sudo apt upgrade -y
sudo apt install -y \
build-essential \
cmake \
git \
wget \
curl \
python3-pip \
python3-venv \
vim \
net-tools
嗯,这里要注意。python3-pip 一定要装,后面很多工具脚本都靠它。我习惯顺手把 vim 也装上,虽然现在很多人用 VS Code,但服务器上调试还是 vim 最靠谱。
2.2 ROS2 Humble 安装与验证
ROS2 Humble 是 2022 年发布的 LTS 版本,支持到 2027 年。你想想看,做自动驾驶仿真,稳定性是第一位的,所以选 LTS 版本准没错。
2.2.1 安装 ROS2 Humble
官方推荐用 Debian 包安装,简单粗暴。我建议你严格按照以下步骤来,不要跳步:
# 1. 设置 locale
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
# 2. 添加 ROS2 源
sudo apt install software-properties-common
sudo add-apt-repository universe
sudo apt update && sudo apt install curl -y
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
# 3. 安装 ROS2 Humble 桌面版
sudo apt update
sudo apt install ros-humble-desktop -y
# 4. 安装开发工具
sudo apt install ros-dev-tools -y
2.2.2 配置环境变量
装完之后,每次打开终端都要 source 一下,很烦。我建议直接写进 .bashrc:
echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
为什么这么做?因为 ROS2 的环境变量很多,比如 ROS_DOMAIN_ID、RMW_IMPLEMENTATION 这些,不 source 的话你连 ros2 topic list 都用不了。说白了,这就是 ROS2 的「开机自启」。
2.2.3 验证安装
装没装好,跑两个命令就知道了:
ros2 --version
ros2 run demo_nodes_cpp talker
如果能看到类似 ros-humble 2023-11-14 的版本号,并且 talker 节点开始发布消息,那就说明装成了。我习惯再开一个终端跑 ros2 run demo_nodes_py listener,看看能不能收到消息。能收到,说明通信链路没问题。
- ros2 --version 输出正常
- talker 和 listener 能正常通信
- ros2 topic list 能看到 /chatter 话题
2.3 LGSVL 仿真器安装
LGSVL 仿真器,现在叫 SVL Simulator,是 LG 开源的自动驾驶仿真平台。说实话,它和 ROS2 的集成度非常高,这也是我选它的原因。你想想看,一个能直接和 ROS2 通信的仿真器,省去了多少桥接的麻烦。
2.3.1 下载与安装
LGSVL 提供了预编译的二进制包,不用编译源码,省心。去 GitHub Releases 页面下载对应 Ubuntu 的版本:
# 下载 Linux 版本
wget https://github.com/lgsvl/simulator/releases/download/2021.3/svlsimulator-linux64-2021.3.zip
# 解压
unzip svlsimulator-linux64-2021.3.zip -d ~/svl_simulator
# 进入目录
cd ~/svl_simulator
2.3.2 运行仿真器
直接运行可执行文件就行:
./svlsimulator.x86_64
第一次启动会弹出登录窗口。你需要注册一个 LG SVL 账号,免费的。登录之后就能看到主界面了。如果你不想登录,也可以用离线模式,但有些地图和场景需要在线下载。
我个人建议先跑一下自带的示例地图,比如 San Francisco 或者 BorregasAve,看看能不能正常渲染。如果画面卡顿或者贴图丢失,大概率是显卡驱动的问题。
2.3.3 配置 ROS2 桥接
LGSVL 和 ROS2 通信,靠的是一个叫 lgsvl_bridge 的节点。这个节点在仿真器启动时会自动加载,但需要你手动配置一下:
- 在仿真器主界面点击 Settings
- 找到 ROS 2 选项卡
- 勾选 Enable ROS 2 Bridge
- 设置 Bridge IP 为
127.0.0.1(本机运行) - 设置 Bridge Port 为
9090(默认端口)
2.3.4 验证桥接是否成功
启动仿真器后,在终端里跑:
ros2 topic list
如果能看到 /simulator/clock、/simulator/vehicle_state 等话题,说明桥接成功了。这时候你可以用 ros2 topic echo /simulator/vehicle_state 看看能不能收到车辆状态数据。
我记得第一次搭好这个环境的时候,看到 ROS2 终端里刷刷刷地弹出仿真数据,那种感觉真的很爽。说白了,这就是你进入自动驾驶仿真世界的第一道门。
2.4 本章小结
这一章我们干了三件事:装系统、装 ROS2、装 LGSVL。每一步我都给出了具体的命令和配置,你照着做就行。如果遇到问题,先检查网络,再检查依赖,最后检查版本兼容性。90% 的问题都出在这三个地方。
下一章,我们会正式进入 LGSVL 和 ROS2 的通信细节,教你如何自定义桥接消息。到时候你会发现,今天搭的环境有多重要。