robomaster 视觉 (1) 概述

机器人的视野中出现视觉标签的时候,机器人的云台会迅速瞄准视觉标签的中心同时发射弹丸
当视觉标签在视野中移动的时候,云台会跟着移动

一、基础

1. 各个兵种需的功能和需要的视觉算法

2. 计算平台的选择

名字 说明 特点
NUC 英特尔推出的移动便携式计算平台 CPU 强劲,但是 GPU 比较弱,同时 nuc 体积较小
minipc 继承 NUC 的传统,但是体积更加小,同时更轻便 CPU 继承 NUC,GPU 根据每个厂商的情况,结构一般为定制盒装的,成本比偏高
工控机 这种一般为实验室使用的低成本高效益的计算平台,一般用于工厂之类的 CPU 可能要略差于 NUC 和 minipc,但是够用,体积英特尔系列中最小的也是最轻的,同时散热性出众,成本较低
Jetson TX2 英伟达推出的计算平台,主要应用于人工智能与图像处理等方面 在同等价格上,CPU 比较弱。GPU 强劲,体格较小,安装在机器人时需要自己定制外壳,成本较高
妙算 DJI 所推出的机载计算机,主要应用在无人机上面 机载计算集群,CPU 较弱,GPU 较强(继承了 Jetson TX2 的性能),同性能上,成本是最高的(6999¥不打折的话)

Robomaster 计算平台的选型与感想(主流几款)

3.Linux 基础

(1) Linux 命令行的基本操作
(2) 撰写 Shell 脚本
(3) 对代码进行版本管理 (git 的使用)

廖雪峰的 git 教程

4. 相机

(1) 摄像头的选型与应用
(2) 怎么调用函数和设置参数
(3) 决定相机的帧率,相机的帧率会跟调整的各参数有一定的关系

5. 关于串口通信

(1) 关于信息传输
(2) 关于信息传送失败
(3) 调通信的技巧
(4) 自启动的设置
(5) 焦距的调整

机器人飞坡测试的振动,或相机上调焦距的螺丝没拧紧导致错位都可能导致焦距变化

(6) 标定,获取 PNP 所需参数

将世界坐标系中的三维点投影到相机像素坐标上,有以下步骤:
a. 利用由两个坐标系之间的旋转和平移组成的外部矩阵,将三维点从世界坐标转换为相机坐标。
b. 在相机坐标系中,利用相机内部焦距、光心等参数构成的内部矩阵将新的三维点投影到图像平面上。
校正方法:当我们完全控制成像过程时,执行校准的最佳方法是从不同的视角捕获一个物体或已知尺寸模式的多个图像。
[OpenCV 实战] 38 基于 OpenCV 的相机标定
上海交大博士生分享相机标定原理的经验 b 站

(7) 补充:四种流行的姿态表示法 (欧拉角、旋转矩阵、四元数和旋转矢量)

姿态是用来描述两个坐标系之间相对关系的。一个点相对于一个坐标系没办法定义姿态。
a. 欧拉角 (旋转轴顺序,和旋转角度)
拿我们最常见的 X 滚转 roll$\phi$、Y 俯仰 pitch$\theta$ 、Z 偏航 yaw$\psi$ 来说,它们的含义是:从 W 系出发,首先绕 Z 轴旋转 $\phi$ ,然后绕 Y 轴旋转 $\theta$ ,最后沿 X 轴旋转 $\phi$,就和 B 系重合了;将这样的旋转顺序称为(从静止坐标系到动坐标系的)Z-Y-X。


对于旋转矩阵的理解:怎么判断是 body-to-world 还是 world-to-body

二、简述各视觉算法

2.1 自瞄算法
2.1.1 需要掌握什么知识
2.1.2 什么是自瞄算法
2.1.3 自瞄算法的具体流程
2.1.4 自瞄算法的其他细节
2.1.4.1 掉帧处理
2.1.4.2 抬头补偿
2.1.5 反陀螺算法
2.1.5.1 自动识别敌方陀螺状态算法
2.1.5.2 反陀螺策略
2.1.6 数字识别
2.2 能量机关算法
2.2.1 整体思路
2.2.2 击打思路
2.2.3 一些遇到的坑
2.3 飞镖制导算法
2.3.1 整体思路介绍
2.3.2 算法实现思路
2.3.3 测试与展望
2.4 雷达站目标检测算法
2.4.1 整体思路
2.4.2 目标检测算法实现的细节

  1. 一些心得