2、开发环境准备:安装ROS2 Humble、创建ROS2工作空间、配置环境变量
好,咱们正式开始动手。这一章我会带你把开发环境搭起来。别小看这一步,我见过太多同学卡在环境配置上,代码写好了却跑不起来,最后发现是ROS2版本装错了或者工作空间没配好。嗯,咱们一次搞定。
2.1 安装ROS2 Humble
为什么选Humble?因为它是目前最稳定的LTS版本,支持到2027年。我在项目里从Foxy一路用到Humble,说实话,Humble的包管理成熟很多,坑也少。
安装步骤其实很简单,我习惯分三步走:
- 设置语言环境——确保系统支持UTF-8
- 添加ROS2软件源——把官方源加到apt里
- 安装核心包——选桌面版还是基础版
先打开终端,执行以下命令:
# 第一步:设置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
# 第三步:安装ROS2 Humble桌面版
sudo apt update
sudo apt install ros-humble-desktop
这里我建议装桌面版,它包含了Rviz2、Gazebo这些可视化工具。你想想看,调试自定义消息的时候,能可视化看到数据流,效率高很多。如果硬盘空间紧张,可以装ros-humble-ros-base,但我不推荐。
python3-colcon-common-extensions,这是编译工具链的一部分。很多新手漏掉这个,导致后面colcon build报错。
sudo apt install python3-colcon-common-extensions
2.2 验证安装是否成功
装完了别急着走,先跑个demo验证一下。我在项目中遇到过好几次,装的时候没报错,但实际用起来缺依赖。所以验证这步不能省。
打开两个终端:
终端1: 启动talker节点
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_cpp talker
终端2: 启动listener节点
source /opt/ros/humble/setup.bash
ros2 run demo_nodes_py listener
如果你看到talker在发"Hello World",listener在收,那就说明安装成功了。如果没反应,检查一下网络或者重新执行sudo apt update。
source /opt/ros/humble/setup.bash,否则ROS2命令找不到。后面我们会配置环境变量自动加载。
2.3 创建ROS2工作空间
工作空间就是你的项目文件夹。ROS2里叫colcon workspace。我个人习惯把工作空间放在~/ros2_ws下,结构清晰。
创建命令如下:
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws
colcon build
等等,第一次colcon build会生成三个文件夹:
- build —— 编译中间文件,不用管它
- install —— 编译产物,后面要source这个目录
- log —— 编译日志,出问题时查这里
你想想看,这跟ROS1的catkin workspace很像,但colcon更快,而且支持增量编译。我在一个大型项目里,第一次编译要5分钟,后面改代码只需要几十秒,因为colcon只重新编译改过的包。
colcon build时忘记先创建src目录,结果编译报错说找不到包。记住,src目录必须存在,哪怕里面是空的。
2.4 配置环境变量
每次source太麻烦了,对吧?咱们把它写进.bashrc里,一劳永逸。
打开~/.bashrc文件:
gedit ~/.bashrc
在文件末尾添加以下内容:
# ROS2 Humble 环境配置
source /opt/ros/humble/setup.bash
source ~/ros2_ws/install/local_setup.bash
# 设置ROS Domain ID(多机通信时有用)
export ROS_DOMAIN_ID=0
# 设置别名,方便编译
alias cb='cd ~/ros2_ws && colcon build'
alias cbs='cd ~/ros2_ws && colcon build --symlink-install'
保存后执行:
source ~/.bashrc
这里我解释一下:
setup.bash是ROS2系统级的环境变量local_setup.bash是你工作空间的环境变量ROS_DOMAIN_ID默认是0,如果你在实验室多台机器上跑,记得改成不同ID,防止消息串扰
--symlink-install编译Python包时,修改代码后不用重新编译,因为install目录里是符号链接。这对开发自定义消息的Python接口特别方便。
2.5 验证工作空间配置
配置完了,怎么知道对不对?跑个命令看看:
echo $ROS_DISTRO
如果输出humble,说明ROS2环境变量生效了。
再试试:
ros2 pkg list | grep example
应该能看到demo_nodes_cpp和demo_nodes_py这些包。如果看不到,说明setup.bash没source成功。
嗯,说实话,环境配置是最枯燥的部分,但也是最重要的。我当年刚学ROS2时,花了一整天装环境,最后发现是Ubuntu版本不对。所以别急,一步步来,有问题随时查官方文档或者问我。
准备好了吗?咱们下一章见。