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, 0)进行 45 度旋转,输出旋转后的坐标。 - 在 4x4 栅格地图中使用 BFS 搜索从
(0, 0)到(3, 3)的路径。
实验截图
数学计算运行结果

路径规划结果

补充运行截图


遇到的问题与解决
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 旋转矩阵角度不直观 | 公式中的角度通常需要转换为弧度 | 使用 math.radians() 将角度转换后再计算 |
| BFS 路径容易重复访问 | 如果不记录 visited,搜索会反复进入同一格 | 使用 visited 集合保存已经访问过的位置 |
| 数学理论与机器人实践连接不明显 | 单独看公式比较抽象 | 通过代码输出坐标和路径,把公式变成可观察结果 |
学习总结
通过本周学习,我理解了机器人和机器视觉中数学基础的重要性。旋转矩阵可以描述方向变化,BFS 可以描述简单路径搜索,图像处理则依赖矩阵计算。后续做机器人控制、视觉识别和自动探索时,这些基础会不断出现。本周的练习让我意识到:数学不是独立的理论,而是机器人系统中每一个感知、规划和控制模块背后的共同语言。