聊一聊AI coding工具对ROS2 自动驾驶开发者的影响
-
以前
-
现在
输入自然语言指令:”在路径规划模块中加入一个考虑红绿灯状态的代价函数层”。AI 自动探索代码库找到 Layer 基类实现,生成完整的 C++ 插件代码,修改 CMakeLists.txt 和 plugins.xml,执行 colcon build 并自动修复两处编译错误,最后启动仿真验证车辆在红灯前停车。全程 15-30 分钟,我只需要做最终验收。
-
基础能力:底座LLM+ 内置工具
AI Coding工具以LLM为认知引擎,驱动”上下文收集→推理决策→规划执行→验证反馈”闭环。当开发者发出指令,LLM主动感知项目结构、依赖关系与代码历史,并联网获取最新文档。基于丰富输入,它权衡重构/新建/修改配置等路径,调度阅读、编辑、构建、预览等工具完成操作,独立实现从模糊需求到可验证产出的完整流程。
实例:要求添加红绿灯检测模块,AI 自动探索规划模块结构、阅读代码理解插件接口、生成代码并编译验证。
-
扩展与定制能力:规则、记忆、智能体、MCP、插件、技能
基础能力之上,AI Coding工具提供六层扩展机制,将”通用助手”升级为”团队专属工程师”。规则划定行为边界,记忆沉淀项目知识,智能体并行处理复杂任务,MCP连接外部数据源,技能封装专家工作流,插件打包定制功能——从行为约束到知识复用,从任务分解到系统集成,构建可演进、可沉淀的智能工程体系。
规则:强制性的行为护栏
在项目或全局配置中设定必须遵守的指令,AI在执行前强制读取并遵循。例如写入”严禁向生产数据库执行DROP命令”,将团队规范、架构约束和安全红线固化为AI的操作边界,防止”幻觉式”违规。
实例:设定”规划插件必须继承 PluginInterface”,AI 新增模块时自动遵循基类规范。
记忆:跨越对话周期的持久化认知
将项目目录结构、业务逻辑、历史决策和编码偏好存储在本地 Markdown 文件中,打破LLM无状态限制。新对话时自动加载上下文,实现持续数周的长周期协同开发。
实例:记住 autoware 的三层目录结构(launcher/core/universe),下次对话无需重新解释。
智能体:并行子任务执行器
主控AI将复杂需求拆解为子任务,派出专门的子智能体并行执行。每个子智能体拥有独立上下文窗口和执行权限,完成后主控AI合并结果,避免单一窗口过载。
实例:并行派出 3 个子智能体分别探索规划、控制、感知三大模块。
MCP:连接外部世界的万能适配器
标准化协议,将AI与外部数据源(数据库、云盘、Jira、Slack)的交互抽象为统一的”工具调用”。连接后可从问题跟踪器获取需求、查询数据库、集成设计工具、自动化工作流。
实例:通过 Context7 MCP 查询 ROS2 Humble 的最新 API 文档,或获取 Nav2 costmap 插件的代码示例。
技能:可复用的专家工作流模板
封装好的提示词与工作流组合,定义专门的”思考过程”和”操作指令集”。例如security-audit技能内置SQL注入、XSS漏洞检查链,AI严格按专家路径执行,无需每次重复描述。
实例:使用自定义launch-tracker 技能可递归解析 ROS2 launch 文件的完整启动链,生成可视化报告。
插件:原生功能增强包
将自定义命令、专用代理、外部工具连接和自动化脚本打包为独立、可分享的单元,将AI从”对话助手”升级为可沉淀的”智能工程系统”。
实例:安装 planning-with-files 插件后,可使用 Manus 风格的文件规划系统追踪复杂任务。
-
集成开发流与范式:从”工具”到”方法论”的跃迁
前两层解决了”能做什么”(基础能力)和”如何定制”(扩展机制),第三层则定义”如何系统性地做”。它引入标准化工作流,将需求澄清、方案设计、任务分解、增量实现、质量验证固化为可复用的开发范式。AI不再随意”跳入写代码”,而是先理解需求、设计方案、制定计划,再逐步执行——将资深工程师的隐性经验显性化为可遵循的工程流程。
代表性框架包括 Superpowers、OpenSpec、GSD、OMC、ECC等。以 Superpowers 为例:
核心理念:”系统性优于随机性”——AI 不应该直接写代码,而是先停下来思考,理解需求、设计方案、制定计划,再执行。所有技能都是纯 Markdown 文件,零依赖,通过 /plugin install 即可安装。
典型工作流:
1. brainstorming(头脑风暴)→ 理解需求、设计方案 ➡️2. using-git-worktrees → 创建隔离的 git worktree 工作空间➡️3. writing-plans(编写计划)→ 分解为小任务(每个 2-5 分钟)➡️4. subagent-driven-development → 子代理执行 + 两阶段审查➡️5. test-driven-development(TDD)→ RED-GREEN-REFACTOR 循环➡️6. requesting-code-review → 代码审查➡️7. finishing-a-development-branch → 合并/PR 决策
| 步骤 | Superpowers 技能 | 实际操作 |
|---|---|---|
| 1 | brainstorming | AI 提问:”盲区检测触发条件是什么?需要哪些传感器输入?”,澄清需求边界 |
| 2 | writing-plans | 分解为:理解 PluginInterface → 编写 Scene 类 → 注册插件 → 编写单元测试 |
| 3 | using-git-worktrees | 创建 blind_spot_module 分支的独立工作区,不影响主线开发 |
| 4 | subagent-driven | 子代理 A 阅读现有模块代码,子代理 B 生成插件骨架,主控合并 |
| 5 | TDD | 先写测试用例(模拟盲区场景),再实现检测逻辑,确保红线覆盖 |
| 6 | code-review | AI 检查:是否继承 PluginInterface?参数配置是否合理?有无硬编码阈值? |
| 7 | finishing | 运行 colcon test,验证仿真场景,创建 PR 提交到 autoware_universe |
这一流程将”添加一个模块”从依赖工程师经验的随机过程,转化为可复现、可审查、可追溯的标准工程实践。
3.AI Coding工具正在重塑ROS2 自动驾驶开发流程
夜雨聆风