
荔湾区青少年宫带队学生和家长赴香港科技大学广州校区
26 5 月, 2025
Robomatser TT | 视觉定位技术
26 5 月, 2025
在RoboMaster机甲大师对抗赛场上,我们总会看到EP机器人在场上不断地识别赛道上的标签,这些标签分布在比赛场地中的基地、资源岛附近,通过识别这些标签,机器人会获得攻击力、防御力加分或者通过击打识别到的装甲板标签以降低敌方基地血量等。由此可知,EP/S1机器人视觉标签识别技术的运用非常重要,以下我们一起学习研究如何识别视觉标签信息及其识别原理。
视觉标签的识别
机甲大师S1/EP中能识别的标签有哪些呢?如图所示,我们能识别的标签类型多种多样。有数字、字母、箭头以及一些特殊图形。

标签类型
识别原理
摄像机通过拍摄得到原图像,然后经过颜色提取得到红底白字的标签,将标签进行二值化得到黑白图像,再经过图像校正,最终得到一个比较适合机器人识别的图像。校正后得到的图像经过0和1编码,得到如图所示的0和1的矩阵。0代表黑色,1代表白色。将这个0和1矩阵与机器人内置标签矩阵比对,得到匹配结果为标签1,完成识别过程。

识别原理
视觉标签的列表信息
如图所示,运行程序得到识别到的视觉标签信息,将视觉标签信息返回到列表Markerlist中。列表的第一项为识别到的视觉标签的数量,第二项为标签的ID(具体ID对应的标签值释义如图所示),第三项为标签的横坐标,第四项为标签的纵坐标,第五项为标签的宽度,第六项为标签的高度。若识别到的视觉标签不止一个,则以此类推,每个标签的信息长度为5,每个标签的信息参照图示例表如图所示。
r数量(N个Marker)、ID值、中心点横坐标、中心点纵坐标、宽度、高度,其中
- ID值为1代表识别到的是:停止
- ID值为2代表识别到的是:骰子
- ID值为3代表识别到的是:靶
- ID值为4代表识别到的是:左箭头
- ID值为5代表识别到的是:右箭头
- ID值为6代表识别到的是:前进箭头
- ID值为8代表识别到的是:红心
- ID值为10-19代表识别到的是:数字0-9
- ID值为20-45代表识别到的是:字母A-Z

PID控制器的原理
我们在学习机器人巡线部分知识时提到,机器人摄像头识别巡线信息点,依据识别到的信息点坐标数据调整云台与信息点的位置距离用以调整驾驶方向实现自动巡线运行。细心的同学会发现,仅仅依靠K比例参数控制云台旋转速度,比较难实时、精准地确定云台转向值。这是因为机器人在运动过程中,信息点的获取也是动态的,很难以一个恒定比例值计算信息点坐标与摄像头中心点的差值。以下我们提到的视觉标签识别过程也是如此,如果机器人在运动过程中要识别目标视觉标签,也需要在运动过程中计算视觉标签的中心点坐标与云台中心点位置的差值,然后调整云台转速对准视觉标签的中心点。可以想象,如果仍然使用比例控制的方法也是难以实时对准目标点。为此,我们可以利用工业控制领域中普遍使用的PID控制方法去解决以上的问题。

煤气炉开环系统模型
为了解PID控制器,我们先来了解一下什么是开环系统,什么是闭环系统。
开环系统是指系统的控制输入不受输出影响的控制系统。在日常生活中,煤气炉和锅就是典型的控制温度的开环系统。我们打开煤气炉阀门,产生火焰后,就会开始加热锅。这里的输入量是对煤气炉阀门的转动,控制量是加热的火焰,被控对象是锅,输出量则是锅的温度。改变煤气阀门的角度,锅的温度也会不同。但是温度的高低,完全由我们自己来把握,由于没有反馈回路,故这个系统是开环控制系统。开环控制系统的优点在于系统结构简单,成本低。

与开环控制系统对应的是闭环控制系统。闭环控制系统存在一条由信号通路和反馈通路构成的闭合回路。例如我们在上述例子中,加入一个温度传感器检测锅的温度,从而让炉子自己来调节煤气炉的阀门开度,让炉子的温度不过高也不过低。这就是闭环控制系统。闭环控制系统的结构较为复杂,成本较高。但是其优势在于稳定。不管出于外部扰动还是内部变化,只要输出量偏离了设定值,就会产生相应的控制量去消除误差。
那么什么是PID呢?PID 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例(P)、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID 控制器,原理框图如本模块最后一张图所示。

煤气炉开环系统模型
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称 PID 控制,又称 PID 调节。PID 控制器问世至今已有近 70 年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用 PID 控制技术最为方便。即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用 PID 控制技术。PID 控制,实际中也有 PI 和 PD 控制。

PID控制器原理框图
EP的PID调参
我们以机甲大师S1/EP机器人跟随视觉标签为例子,让大家更好的了解PID的作用。在机器人视野中,我们知道视野中央的位置是(0.5,0.5)而我们的目标是跟踪标签的位置,即移动到标签的位置。我们的目标位置是视觉标签的位置,与我们机器人现在云台位置(0.5,0.5)作差,得到的便是误差值。在 方向上的误差为 , 方向上的误差为 。现在我们的目标是消除这个误差值。PID控制器就是负责消除输入的目标位置与传感器反馈的当前位置之间的误差,并输出一个转速值。
那么PID控制器到底是怎么消除误差的呢?我们以x方向为例,假设error是视觉标签中心位置与机器人视野中心位置x方向上的误差 x-0.5。
最常用、最基础的是P控制,把位置偏差/误差按比例kp 放大成控制量,kp越高,云台转动越快,点越快回到视野中心。P的控制输出是 output =kp(x—0.5)。这里的输出量,是云台电机的转速。
然而仅使用P控制是有缺点的,假设一个点、或一个视觉标签在视野中以恒定的速度做匀速运动,那么云台也会逐渐以同样的速度转动(速度是控制量,等于 kp×误差距离),希望追上点或视觉标签,但由于两者运动速度相同,云台无法追上,因此这个误差将无法被消除。这个无法消除的误差叫做稳态误差。
这时就需要用到I控制,P控制无法消除的误差会让I控制逐渐累积成一个更大的控制量,让云台转动更快,可以追上。
同时使用P控制和I控制的策略被称为PI控制。
P控制还有另外一个问题,就是当点在左右快速抖动时,为了追上该点,P控制会让云台以更大的幅度抖动,最终造成整个机器人的震荡。D控制则可以解决这个问题,通过预测点的动作,更快地做出反应,减小震荡。
同时使用P控制和D控制的策略被称为PD控制;三种控制单元都使用的策略,则被称为PID控制。
接下来我们用一个动态图表来演示不同PID控制参数对系统误差的影响。大家观察下图,这是学习PID控制器最为经典的图表,其中横坐标是时间,蓝色曲线意味着经过一段时间后这个系统最终的输出。
当kp等于1时,P控制单元对系统没有影响(任何数乘以1都等于它自身),此时被控对象,也就是蓝色曲线的输出在0.4左右,与我们预期的1有着明显的差距。
当kp逐渐增大时,蓝色曲线输出的值离1越来越近,但同时曲线的波动也越来越明显,直到 增加到5,蓝色曲线的输出到了0.8左右,但增加速度已经大大放缓,同时震荡十分明显,意味着系统需要经过长时间的震荡才能稳定输出。
从0.8到1的误差已经很难靠继续增加kp来缩小,因此我们知道这是稳态误差,需要通过增加ki来实现。
当ki增加到3,蓝色曲线的最终输出已经很接近1,但依然有明显的震荡,这就需要通过增加kd来实现;最终蓝色曲线基本符合了我们的预期。需要注意的是输出从0到1始终是需要时间的,无论PID控制器调试的再好,这就像机器人跟随视觉标签也需要一定的时间反应,不可能瞬间就完成跟随。
需要注意的是,不同的系统对于PID三个控制单元的敏感程度是不同的,因此需要进行针对的调试。
到这里,相信同学们都对PID有了初步的了解。总的来说,P控制, kp会影响点返回视野中心的速度(不是越快越好)。I控制, ki会影响稳态误差的消除。D控制, kd会影响振荡的程度。

标签坐标与视野中心坐标
活动探究
在对抗赛场上,通常需要EP/S1机器人对指定目标进行射击,有时还需要根据敌方机器人移动的位置实施自动射击。尝试设计程序,以视觉标签为识别目标,根据EP/S1机器人识别到视觉标签ID,按要求完成按指定标签顺序射击标签和跟随移动的任务。
利用视觉标签模块,编程实现按规则击打视觉标签:当机器人视野中出现数字1,2,3三个标签时,机器人会按数值由小到大瞄准、记录视觉标签位置,而后依次打击。
用识别到数字并瞄准模块,依次瞄准数字1,2,3。并依次将每个识别到的数字标签信息和机器人的姿态(航向轴和俯仰轴)数据储存在列表中。在后续打击标签操作中,依次调用列表中数字标签的航向轴和俯仰轴数据,完成射击动作。

定点打击程序