7. 机器人视觉
对应 CS123 · Lab 6 "Seeing is Believing" + Lecture 7 "AI-enabled Quadrupeds (Robot Vision)"
到这一章为止,机器人还"瞎"。这一章我们给它装上一只眼睛——MuJoCo 里的相机 sensor——让它通过图像找到并跟着一个目标移动。这是通向第 8 章"LLM 控制"的最后一块拼图。
本章目标
- 能在 MJCF 里正确配置
camera和sensor,从 Python 读到 RGB / Depth 帧 - 能用一个最简目标检测(颜色阈值 or YOLO 小模型)在图像里定位目标
- 能把图像平面的目标位置映射为机器人航向修正量
- 让 Pupper 追着一个移动的小球走
前置阅读
- 第 5–6 章(有步态才能谈"朝目标走")
- 多模态 · ViT 与视觉表征(可选延伸)
章节大纲
- MuJoCo 里挂一个相机(位置、视场角、分辨率)
- Python 端采集图像帧:
mj_renderer/egl后端 - 目标检测两条路线
- 方案 A:HSV 阈值(简单、可调)
- 方案 B:YOLOv8-nano 小模型
- 图像坐标 → 航向角:简单的比例控制器
- 跟踪 + 步态:把第 5 章 trot 的前向速度/转向接到视觉输出
- 实验 1:原地转头追颜色球
- 实验 2:边走边追球,球乱动时不掉线
组队学习任务
-
sensors/camera_stream.py:从 MuJoCo 相机读 30 fps RGB -
perception/ball_tracker.py:给出图像坐标 + 置信度 - 录一段 30 秒"追球"视频
- 简单失败分析:光照 / 遮挡 / 远距离各错多少帧
参考资料
- CS123 Lab 6: Seeing is Believing
- MuJoCo 文档 · Rendering