第1章:工欲善其事,必先利其器
大家好,我是你们的讲师。今天咱们聊聊搭建ROS2开发环境这件事。
说实话,我见过太多初学者把时间浪费在环境配置上。明明两小时能搞定的事,硬是折腾了两天。为什么?因为不知道哪些工具真正有用,哪些可以跳过。
这一章,我就把自己踩过的坑、积累的经验,一次性告诉你。
1.1 VS Code安装与配置
编辑器选VS Code,没什么好犹豫的。轻量、插件丰富、社区活跃。我用了五年,从没换过。
安装步骤:
- 去官网下载对应系统的安装包
- 一路默认安装,没什么特别
- 打开后,按
Ctrl+Shift+X打开扩展商店
基础配置:
// settings.json 里我常用的配置
{
"editor.fontSize": 16,
"editor.tabSize": 2,
"files.autoSave": "afterDelay",
"editor.minimap.enabled": false,
"workbench.colorTheme": "One Dark Pro"
}
嗯,字体大小看个人习惯。我年纪大了,16号字看着舒服。你年轻的话,14号也行。
1.2 必装插件推荐
插件装多了会卡,装少了又不够用。我帮你筛选出最核心的几个。
| 插件名称 | 用途 | 推荐指数 |
|---|---|---|
| Python | Python语法高亮、调试、智能提示 | ⭐⭐⭐⭐⭐ |
| C/C++ | C++代码补全、调试、IntelliSense | ⭐⭐⭐⭐⭐ |
| ROS | ROS消息、服务、动作的语法支持 | ⭐⭐⭐⭐⭐ |
| CMake Tools | CMake构建系统集成 | ⭐⭐⭐⭐ |
| GitLens | Git历史、代码作者追溯 | ⭐⭐⭐⭐ |
| Material Icon Theme | 文件图标美化,一眼识别文件类型 | ⭐⭐⭐ |
重点说ROS插件:
装完ROS插件后,写话题消息、服务定义时,会有自动补全。我在项目中调试自定义消息类型时,这功能救了我好几次。不然手敲消息字段,错一个字母就得查半天。
1.3 Git版本控制
版本控制这件事,怎么说呢?没它的时候觉得无所谓,有了就再也回不去了。
我刚开始做ROS项目时,代码改来改去,最后不知道哪个版本能跑。后来老老实实用Git,每次提交都写清楚注释。现在回头看,那些注释就是我的开发日记。
基本操作流程:
# 初始化仓库
git init
# 添加文件到暂存区
git add .
# 提交代码
git commit -m "feat: 添加激光雷达驱动节点"
# 推送到远程仓库
git push origin main
ROS2项目的.gitignore模板:
# 构建产物
build/
install/
log/
# Python缓存
__pycache__/
*.pyc
# 编辑器配置
.vscode/
.idea/
# 系统文件
.DS_Store
Thumbs.db
1.4 CMake与colcon构建工具
ROS2的构建系统,说白了就是两样东西:CMake负责单个包的编译,colcon负责整个工作空间的编译。
CMake基础:
每个ROS2包都有一个 CMakeLists.txt。我刚开始看这文件时,觉得好复杂。后来发现,核心就几行。
cmake_minimum_required(VERSION 3.8)
project(my_robot_pkg)
# 查找依赖包
find_package(ament_cmake REQUIRED)
find_package(rclcpp REQUIRED)
find_package(std_msgs REQUIRED)
# 添加可执行文件
add_executable(my_node src/my_node.cpp)
# 链接依赖库
ament_target_dependencies(my_node rclcpp std_msgs)
# 安装规则
install(TARGETS my_node DESTINATION lib/${PROJECT_NAME})
colcon使用:
colcon是ROS2官方推荐的构建工具。它比之前的catkin好用太多。
# 编译整个工作空间
colcon build
# 只编译某个包
colcon build --packages-select my_robot_pkg
# 编译并运行测试
colcon test
# 清理构建产物
colcon clean
colcon build --symlink-install。这样修改Python文件后不用重新编译,直接运行就能看到效果。调试效率翻倍。
知识体系总览
下面这张图,是我自己梳理的。你看一眼,就知道这一章讲了什么,各个工具之间是什么关系。
你看,整个体系其实不复杂。编辑器是门面,插件是工具,Git是保险箱,构建系统是流水线。四者配合好了,开发效率能翻倍。
好了,这一章就到这里。工具都装好了,下一章咱们就开始写第一个ROS2节点。