第二章:开发环境搭建

好,咱们正式开始动手了。这一章,说白了就是给你的电脑装上“自动驾驶的脑子”。

我见过太多同学,代码写得飞起,结果环境配了一周还没跑通。嗯,这其实是最冤枉的坑。所以这一章,我会把每一步拆得细一点,你跟着来就行。

2.1 Ubuntu系统配置

ROS2对Windows的支持很有限,我个人习惯直接用Ubuntu。版本上,ROS2 Humble官方推荐的是Ubuntu 22.04 LTS。别问为什么不是20.04,问就是Humble和22.04是“亲兄弟”。

⚠️ 注意: 如果你用的是虚拟机,记得给Ubuntu至少分配4GB内存和2个CPU核心。我在项目中遇到过,内存给少了,Gazebo直接卡死。

装好系统后,第一件事是换源。国内网络你懂的,不换源的话,一个包能下半小时。

# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

# 替换为清华源(用sed直接改)
sudo sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list

# 更新
sudo apt update && sudo apt upgrade -y

更新完,顺手装几个常用工具。我每次新装系统都会先来这么一套:

sudo apt install -y git curl wget vim net-tools

2.2 ROS2 Humble安装

ROS2的安装方式有好几种,我推荐用apt安装。为什么?因为稳定,而且卸载也干净。

先设置语言环境。ROS2对UTF-8有要求,别问我为什么,反正我遇到过因为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

然后添加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
sudo apt update

接下来安装ROS2 Humble。这里我建议装桌面版,因为包含了Rviz2等可视化工具:

sudo apt install ros-humble-desktop -y

装完记得配置环境变量。不然每次打开终端都要手动source,很烦:

echo "source /opt/ros/humble/setup.bash" >> ~/.bashrc
source ~/.bashrc
💡 小技巧: 你可以用 printenv | grep ROS 检查环境变量是否生效。如果看到ROS_DISTRO=humble,那就对了。

2.3 Gazebo与Rviz2安装

Gazebo是仿真环境,Rviz2是数据可视化工具。这两个是自动驾驶开发的左膀右臂。

Gazebo的安装很简单,但版本要注意。ROS2 Humble对应的是Gazebo Fortress(也就是Gazebo 11的升级版):

sudo apt install ros-humble-gazebo-ros-pkgs -y

Rviz2其实在ros-humble-desktop里已经包含了。但如果你只装了基础版,可以单独安装:

sudo apt install ros-humble-rviz2 -y

装好后,你可以快速测试一下:

# 终端1:启动Gazebo
gazebo --verbose

# 终端2:启动Rviz2
rviz2

如果两个窗口都能正常打开,恭喜你,环境基本没问题了。

⚠️ 注意: 我第一次装Gazebo时,启动后窗口是黑的。后来发现是显卡驱动问题。如果你也遇到类似情况,试试 export LIBGL_ALWAYS_SOFTWARE=1 临时解决。

2.4 工作空间创建与编译

工作空间,说白了就是你的项目文件夹。ROS2里叫“workspace”,一般放在home目录下。

我习惯用 ros2_ws 这个名字,简单明了:

mkdir -p ~/ros2_ws/src
cd ~/ros2_ws

然后创建一个测试包,验证整个流程是否通畅:

cd ~/ros2_ws/src
ros2 pkg create --build-type ament_cmake test_pkg
cd ~/ros2_ws
colcon build

编译完成后,记得source一下:

source install/setup.bash

你也可以把它加到 ~/.bashrc 里,省得每次手动source:

echo "source ~/ros2_ws/install/setup.bash" >> ~/.bashrc
💡 小技巧: 如果你只想编译某个包,可以用 colcon build --packages-select test_pkg。这样快很多,尤其是项目大了以后。

最后,用 ros2 pkg list | grep test_pkg 检查一下,如果能看到你的包名,那就说明一切正常。

总结

这一章我们做了四件事:配系统、装ROS2、装仿真工具、建工作空间。每一步我都踩过坑,所以特别强调了细节。你只要按着来,应该不会出大问题。

下一章,我们会开始写第一个ROS2节点。到时候你会发现,环境搭好了,写代码其实挺爽的。