第二章:开发环境搭建
好,咱们正式开始动手了。这一章,说白了就是给你的电脑装上“自动驾驶的脑子”。
我见过太多同学,代码写得飞起,结果环境配了一周还没跑通。嗯,这其实是最冤枉的坑。所以这一章,我会把每一步拆得细一点,你跟着来就行。
2.1 Ubuntu系统配置
ROS2对Windows的支持很有限,我个人习惯直接用Ubuntu。版本上,ROS2 Humble官方推荐的是Ubuntu 22.04 LTS。别问为什么不是20.04,问就是Humble和22.04是“亲兄弟”。
装好系统后,第一件事是换源。国内网络你懂的,不换源的话,一个包能下半小时。
# 备份原源
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
如果两个窗口都能正常打开,恭喜你,环境基本没问题了。
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节点。到时候你会发现,环境搭好了,写代码其实挺爽的。