Skip to the content.

Week 9:机器人与机器视觉数学基础

实验内容

本周学习机器人与机器视觉中常用的数学基础,包括向量、矩阵、坐标变换、旋转矩阵、机器人运动学、图像卷积和路径规划算法。数学部分看起来偏理论,但它直接决定机器人如何描述位置、如何理解环境、如何从传感器数据中做出运动决策。

本周我用 Python 写了一个小程序,对二维旋转矩阵和 BFS 路径规划进行验证。这样可以把公式和实际运行结果联系起来,而不是只停留在概念层面。

文件结构

week9/
|-- README.md
|-- math_review_demo.py
|-- img/
|   |-- math_run.png
|   |-- path_result.png
|   |-- screenshot_1.png
|   |-- screenshot_2.png

理论整理

1. 机器人为什么需要数学

机器人需要用数学模型描述位置、姿态、速度和运动过程。例如坐标变换可以表示机器人从一个位置移动到另一个位置,也可以把摄像头坐标系中的点转换到机器人本体坐标系中。没有这些数学描述,机器人无法稳定地定位、导航和规划路径。

2. 二维旋转矩阵

二维旋转矩阵可以表示平面中点的旋转:

R = [[cos(theta), -sin(theta)],
     [sin(theta),  cos(theta)]]

当点 (1, 0) 旋转 45 度时,新坐标大约为 (0.71, 0.71)。这个计算可以帮助理解机器人方向控制、图像旋转和坐标变换。

3. 机器人运动学

机器人运动学主要研究机器人位置、速度和关节之间的关系。常见内容包括正运动学、逆运动学和雅可比矩阵。正运动学从关节角度计算末端位置,逆运动学则根据目标位置求解关节角度。

4. 机器视觉数学

机器视觉中常用图像矩阵、卷积、特征提取等方法处理图像信息。摄像头采集的图像本质上是像素矩阵,OpenCV 的很多函数都是在矩阵上进行计算。

5. 路径规划

路径规划算法包括 BFS、Dijkstra、A*、RRT 和 DWA 等。本周示例使用 BFS,在一个小栅格地图中从起点搜索到终点,理解“队列、访问记录、障碍物判断、路径回溯”这些基本步骤。

编程验证

运行命令:

python3 math_review_demo.py

程序完成两部分验证:

  1. 对点 (1, 0) 进行 45 度旋转,输出旋转后的坐标。
  2. 在 4x4 栅格地图中使用 BFS 搜索从 (0, 0)(3, 3) 的路径。

实验截图

数学计算运行结果

数学计算运行结果

路径规划结果

路径规划结果

补充运行截图

补充截图 1

补充截图 2

遇到的问题与解决

问题 原因 解决方案
旋转矩阵角度不直观 公式中的角度通常需要转换为弧度 使用 math.radians() 将角度转换后再计算
BFS 路径容易重复访问 如果不记录 visited,搜索会反复进入同一格 使用 visited 集合保存已经访问过的位置
数学理论与机器人实践连接不明显 单独看公式比较抽象 通过代码输出坐标和路径,把公式变成可观察结果

学习总结

通过本周学习,我理解了机器人和机器视觉中数学基础的重要性。旋转矩阵可以描述方向变化,BFS 可以描述简单路径搜索,图像处理则依赖矩阵计算。后续做机器人控制、视觉识别和自动探索时,这些基础会不断出现。本周的练习让我意识到:数学不是独立的理论,而是机器人系统中每一个感知、规划和控制模块背后的共同语言。