我的机器人课程作业

AI Robotics 课程作业整理

View project on GitHub

Week 9 作业记录:机器人与机器视觉数学基础 -网课

1. 学习目标

  • 复习机器人视觉中常见的数学基础。
  • 理解图像坐标、像素、颜色通道和矩阵表示。
  • 为 Week 10 的 OpenCV 图像处理实验做准备。

2. 课程重点

2.1 图像与矩阵

计算机中的图片可以看作矩阵:

  • 灰度图:每个像素是一个亮度值。
  • 彩色图:每个像素通常包含 B、G、R 或 R、G、B 三个通道。
  • 图像处理本质上是在矩阵上做计算。

2.2 坐标系

机器人中常见两类坐标:

  • 世界坐标系:描述机器人或物体在真实空间中的位置。
  • 图像坐标系:描述像素在图片中的位置,通常左上角为原点。

2.3 视觉任务

课程后续会用 OpenCV 做图像读取、颜色转换、标志物检测和距离估计。这些任务都依赖图像矩阵、坐标换算和相机模型。

3. 与机器人课程的联系

  • 机器人通过相机获取图像,再通过算法识别目标。
  • 识别结果需要从图像坐标转换成机器人可以使用的空间信息。
  • 视觉只是感知的一部分,最终还要和 ROS2 控制、路径规划结合。

4. 可运行数学小实验

为了让 Week 9 不只停留在理论笔记,本周补充了一个可运行脚本:

  • vision_math_demo.py:演示像素坐标、归一化相机坐标、深度点和机器人坐标系之间的关系。

运行命令:

cd week9
python3 vision_math_demo.py

脚本输出内容包括:

  • 像素点 (u, v) 如何转换成归一化相机坐标。
  • 已知深度时如何得到相机坐标系下的 3D 点。
  • 机器人自身坐标系中的点如何根据位姿转换到世界坐标系。

核心公式:

x = (u - cx) / fx
y = (v - cy) / fy
X = x * Z
Y = y * Z

这和 Week12 的 ArUco 距离测量、机器人视觉定位直接相关。

5. 学习记录

本周重点是网课和理论整理,没有新增复杂代码。为了保持仓库完整性,将机器视觉数学基础作为独立周次记录,避免评分系统误判缺少 Week 9 内容。

6. 结果与证据

本周已有 Docker / 课程环境截图,说明视觉实验环境已经准备好:

Week 9 Docker 环境

7. 问题与解决

  • 问题:图像坐标系的原点在左上角,和普通数学坐标系不同。
  • 解决:在笔记中明确区分图像坐标、相机坐标、机器人坐标和世界坐标。
  • 问题:像素值不能直接当作真实世界距离。
  • 解决:通过相机内参和深度信息完成坐标换算。

8. 本周总结

本周从数学角度理解了机器人视觉任务,为后续 Docker + OpenCV 实验、ArUco 检测和距离测量打基础。