RoboMaster TT | 视觉定位技术

在物理学中,物体的运动具有相对性,对于同一个物体,由于选取的参照物不同,我们可以将物体看成是运动的或者静止。我们很容易辨别无人机运动的状态,但无人机自身是如何判断自身的运动状态呢?大多数的智能无人机都有自动避障的功能,在无人机视觉世界里面,它是如何判断自身运动状态?无人机的位置定位依据又是什么?以下我们将一起学习无人机定位原理,并研究无人机定位的相关编程技术。
无人机视觉下的坐标系
平面直角坐标系
我们通过学习数学知识可知,平面直角坐标系是由在同一个平面上互相垂直且有公共原点的两条数轴构成,简称直角坐标系,也称为二维(笛卡尔)坐标系。通常,两条数轴分别在水平位置与垂直位置,取向右与向上的方向分别为两条数轴的正方向。水平的数轴叫做x轴或横轴,垂直的数轴叫做y轴或纵轴,x轴y轴统称为坐标轴,它们的公共原点O称为直角坐标系的原点,以点O为原点的平面直角坐标系被记作平面直角坐标系xOy。
三维坐标系
三维(笛卡尔)坐标系是在二维(笛卡尔)坐标系的基础上根据右手定则增加第三维坐标(即Z轴)而形成的,在三维坐标系中,Z轴的正轴方向是根据右手定则确定的。右手定则也决定三维空间中任一坐标轴的正旋转方向。要标注X、Y和Z轴的正轴方向,就将右手背对着水平面放置,拇指指向自己,即指向X轴的正方向。再伸出食指和中指,食指指向Y轴的正方向,中指所指示的方向即是Z轴的正方向。
挑战卡坐标系
我们接下来要学习到的挑战卡,就是包含三维坐标系的信息。坐标原点在挑战卡中心,挑战卡中“火箭”指向x轴正方向,再通过右手定则,即可确定y轴与z轴正方向。每张挑战卡为独立的三维坐标系。
TT识别挑战卡是应用到视觉定位传感器,通过机身的灰度摄像机识别挑战卡的图像信息。除此,TT利用挑战卡定位是用到TOF传感器,通过读取TOF的测距与TOF高度,TT可以识别到挑战卡的距离实现定位。
无人机识别挑战卡
挑战卡,是配合TT进行编程的配件产品:通过无人机的视觉定位传感器探测到不同挑战卡的编号与相对于挑战卡的高度,利用这些信息可以执行相应的编程命令。
每一套TT标配4张挑战卡,正反面绘有不同图案,共有8个编号。挑战卡的图案由火箭、挑战卡编号、星球三部分组成。
前面提到过,每个挑战卡上的小火箭指示该挑战卡坐标系中X轴正方向。每个挑战卡上有10个星球,不同编号的挑战卡上的星球排列与颜色不同,TT通过视觉定位系统传感器采集到不同挑战卡的图像,经过预处理,提取挑战卡的特征来识别星球排列,从而识别挑战卡编号和自己在该挑战卡坐标系中的坐标。
需要注意的是,挑战卡的识别还有一定的范围:挑战卡可识别高度范围是0.3—1.2m,其中在0.3m的高度可识别的面积范围是0.4m×0.4m;在1.2m的高度可识别的面积范围是1m×1m。且在挑战卡需要避免在黑色地面使用,否则TT可能无法识别挑战卡;使用时要保证适中的环境光线,黑暗或者过曝的环境都会影响TT对挑战卡的识别。

一张挑战卡上的矩形航线
设计程序,让无人机在“挑战卡2”上方80cm处沿正方形(边长为50cm)航线飞行,最后在挑战卡中心降落。
我们通过分析,需要用到的模块是挑战卡模块中的“设置挑战卡探测方向”、“开启挑战卡探测”、“飞行单张挑战卡坐标系”模块。我们首先在图纸上分析,若从挑战卡2的第一象限出发,沿顺时针方向形成一个正方形,依次经过的四个点(x,y,z)是(50,50,80),(50,-50,80),(-50,-50,80),(-50,50,80)。为了使得我们观察无人机的位置变化更明显,我们可以在执行每个动作的间隙加上“等待时间”模块(该模块删除不影响矩形航线的形成)。然后我们把上述模块拼接起来即可。



