第 18 章 综合实验 — 从感知到任务编排¶
本章把前面各章学到的能力串成完整的小项目。每个小节对应一个独立实验,读者可以按顺序做,也可以挑感兴趣的切入。章末给出"机器狗 + 机械臂"的综合系统,是整本教材的收尾。
章节组织说明
每一小节都统一为四段:项目目标 → 实践内容 → 产出要求 → 实施指南(后续补)。
- 前三段对应课程实验大纲里的口径,读者可以直接拿去对照任务书
- 第四段是本教材独有,把"要做什么"细化成"怎么做",包含推荐工具链、关键代码骨架、常见坑位
🚧 本章持续完善中
小节框架已搭好,具体实施指南会在后续迭代中逐个补齐。目前占位的小节里,读者可以先参考项目目标和实践内容自行摸索,做完欢迎通过左下角反馈按钮提交踩坑报告。
18.1 建图导航基础集成¶
学时:综合 4 次实验(建议每次 2 学时,共 8 学时)
这一节把"感知 → 定位 → 建图 → 自主导航"串成完整链路,是第 10-12 章的综合复盘。共 4 个递进任务。
18.1.1 环境感知与目标识别¶
- 理解 Go2 深度相机 / 激光雷达的原始数据格式(点云 / 深度图)
- 掌握 OpenCV 基础图像处理:颜色空间转换、掩膜、形态学操作
- 能让机器狗识别特定颜色的标记物并计算相对位置
- 点云 / 深度数据处理
- 图像处理基础
- 目标检测与定位
- 硬件:Go2 机器狗(或仿真)
- 软件:OpenCV、Go2 SDK / ROS2
- 仿真或实机演示视频
- 简短实验报告
实施指南(待补)
将补充:深度相机话题订阅、OpenCV HSV 空间颜色阈值选择、目标像素坐标 → 相机坐标系 → base 坐标系的 TF 链路。
18.1.2 姿态估计与定位¶
- 理解机器人位姿估计的基本原理(航迹推算 / odometry)
- 体会传感器融合思想(卡尔曼滤波的基本思路,概念级)
- 学会坐标系变换
odom → base,在仿真或实机中验证
- 传感器融合(卡尔曼滤波思想,概念性)
- 航迹推算
- TF 静态 / 动态变换
- 硬件:Go2 机器狗
- 软件:ROS 2
- 展示
tf2_echo odom base输出与机器狗实际运动一致 - 简短实验报告
实施指南(待补)
将补充:go2_driver_py 的 odom 发布逻辑回顾、robot_localization ekf 模板、实测航迹漂移量记录。
18.1.3 建图与路径规划¶
- 使用
slam_toolbox在未知环境中构建 2D 栅格地图 - 学习 A* 路径规划算法的基本思想(图搜索)
- 在已知地图上复现一次仿真路径规划
- SLAM 原理(概念性)
- 占据栅格地图
- 图搜索算法(A*)
- 硬件:Go2 机器狗
- 软件:ROS 2 / slam_toolbox / Nav2 planner
- 保存一张
.pgm+.yaml的栅格地图 - 展示 A* 规划的路径截图
实施指南(待补)
将补充:对第 11 章建图流程的精简复盘、Nav2 planner_server 配 A* 的参数示例、可视化规划路径。
18.1.4 自主导航实战¶
- 在已建地图中设置目标点,让机器狗利用 Nav2 路径规划与避障自主到达
- 结合 18.1.1 的目标识别,实现"找到红色方块并停靠在其附近"的综合任务
- 功能模块集成(识别节点 + Nav2)
- 联调测试
- 硬件:Go2 机器狗
- 软件:ROS 2
- 演示视频:机器狗从起点出发,找到红色方块并停靠
- 简短实验报告
实施指南(待补)
将补充:"视觉识别 → 目标点坐标 → Nav2 goal"的消息链设计、停靠距离阈值调参、失败重试策略。
18.2 机器狗在不同地形环境下的运动控制¶
学时:4
- 理解足式机器人动力学与 Go2 的控制接口
- 掌握步态参数(步频 / 抬腿高度 / 速度)调整方式与地形交互特性
- 思考 Sim-to-Real 差距:仿真里能走的地形实机未必能走
- 培养机器人调试与数据分析能力
- 配置仿真平台(Gazebo + CHAMP,参考第 13 章)
- 基础运动复现
- 步态参数实验
- 地形构建(斜坡 / 梅花桩 / 碎石)
- 地形适应策略
- 避障集成
- 仿真演示视频(≥ 10 秒)
- 实验报告(含步态参数对比表、Sim-to-Real 反思)
实施指南(待补)
将补充:Gazebo world 文件编写(.world + .sdf 模型)、CHAMP 步态控制器关键参数表、"仿真能走 ↔ 实机不能走"的典型案例分析。
18.3 机器狗视觉导航与目标跟踪¶
学时:4
- 理解视觉感知在仿真机器人中的实现原理
- 掌握 Gazebo / Isaac Sim 中摄像头传感器配置与数据读取
- 体验"感知 → 决策 → 执行"完整闭环
- 熟悉 ROS 2 话题通信机制
- 环境搭建(仿真 + 摄像头挂载)
- 传感器配置(相机内参 / 发布频率)
- 视觉处理(目标检测)
- 坐标映射(像素 → 相机 → 世界)
- 跟踪控制(视觉伺服 / Nav2 动态目标点)
- 闭环验证
- 仿真演示视频(≥ 10 秒)
- 实验报告
实施指南(待补)
将补充:Gazebo libgazebo_ros_camera.so 插件配置、YOLO / OpenCV 简化检测节点模板、目标丢失时的行为回退策略。
18.4 机器狗多模态环境感知与异常预警¶
学时:6
- 掌握多传感器联合配置与时间同步
- 理解传感器噪声与真实环境差异
- 体验多源数据融合算法验证流程
- 培养仿真场景设计能力
- 多传感器配置(激光 + 深度相机 + IMU)
- 数据同步(message_filters / ApproximateTime)
- 单模态检测算法(激光障碍 / 视觉障碍各自独立)
- 多传感器融合逻辑实现
- 行为响应(异常预警 / 停机 / 绕行)
- 场景测试
- 仿真演示视频
- 实验报告(含融合前后对比)
实施指南(待补)
将补充:message_filters 时间同步代码片段、单模态 vs 融合的检出率对比、异常事件的话题协议设计。
18.5 机器狗语音交互与任务执行¶
学时:6
- 理解仿真环境下语音交互功能的模拟方式
- 掌握语音指令解析与机器人控制映射
- 体验仿真-现实一致性设计
- 培养复杂交互系统的仿真验证能力
- 语音模拟方案与指令系统设计(关键词 / NLU)
- 指令解析节点
- 动作执行(对接 Action / 第 9 章成果)
- 状态反馈(语音播报 / 文字回显)
- 任务组合测试
- 仿真演示视频
- 实验报告
实施指南(待补)
将补充:Vosk / Whisper 本地语音识别方案对比、指令 → Go2 Action Goal 的映射表、仿真中如何模拟语音输入(预录 wav 循环播放)。
18.6 机械臂的物资转运任务¶
学时:6
- 掌握机械臂运动学与动力学建模
- 理解视觉传感器与手眼标定
- 体验运动规划(MoveIt 或等价工具)
- 认识 Sim-to-Real 迁移的常见陷阱
- 配置仿真平台(Gazebo + 机械臂 URDF)
- 运动学验证(正 / 逆运动学)
- 视觉配置(抓取区相机)
- 手眼标定(eye-in-hand / eye-to-hand)
- 抓取规划(姿态 + 轨迹)
- 物理仿真验证(夹爪 + 物体接触)
- 仿真演示视频
- 实验报告
实施指南(待补)
将补充:MoveIt 配置流程、ArUco Marker 手眼标定脚本、典型抓取失败模式(滑落 / 穿模 / IK 无解)及解法。
18.7 机器狗与机械臂的自主搬运系统¶
学时:6
本节是整本教材的收尾,把前面所有能力组装成一个"机器狗驮机械臂主动搬运"的完整仿真系统。
- 理解高层决策 - 低层执行的分层思想
- 掌握行为树 / 状态机的实现方式
- 体验模块化技能封装
- 培养仿真系统调试能力
- 配置仿真平台(机器狗 + 机械臂联合仿真)
- 4 个技能仿真实现(移动 / 抓取 / 搬运 / 放置)
- 行为树决策层(BehaviorTree.CPP / py_trees)
- 仿真闭环集成
- 参数调优与测试
- 仿真演示视频(完整搬运流程)
- 实验报告(含行为树截图 + 技能抽象说明)
实施指南(待补)
将补充:BehaviorTree.CPP 的 XML 骨架、技能接口设计规范(每个技能都是一个 Action Server)、典型失败模式的回退分支。
小结与下一步¶
- 本章 7 个实验把前面各章能力组合成可交付的小项目
- 18.1 是基础复盘,18.2-18.6 是单点能力深化,18.7 是整体综合
- 完成情况与实施细节会随迭代持续补充
完成本章的读者,手上应该有: - 1 张自己建的地图(18.1.3) - 7 段仿真 / 实机演示视频 - 7 份实验报告
下一章 第 19 章 未来方向 — RL 与具身智能 里,我们把视野拉得更远一点,聊聊这套栈之后的演进路线。