车模整体布局
-
项目陈述
比赛使用的是一辆带有麦克纳姆轮的车模,需要车模通过各种传感器识别赛道信息,完整跑完赛道全程。
我们采用灰度摄像头采集赛道信息,由负责图像处理的芯片处理数据后通过串口发送至负责运动控制的芯片。
控制核用于进行控制计算,最后输出pwm波控制,结合H车模麦克纳姆轮全向运动的特点,实现赛道复杂任务任务。
-
车体控制
在控制方面,我们采用了PID控制算法。由于麦克纳姆轮的特性,我们的车模可以实现全向移动,所以我们车体控制方案不同于平常的舵机控制方案。我们将车体速度分解为x轴、y轴的速度以及z轴的角速度,车体的转向通过改变z轴的速度实现。我们编写了一套位置式PID,通过摄像头图像中赛道的理想中线位置与实际中线位置的差值,对PID输出量进行控制,PID的输出量即为z轴角速度。同时车体在x、y轴的速度通过预设程序进行给定。由此得到了控制车体运动的x、y、z轴的预设速度,根据麦克纳姆轮速度解算公式可以算出每一个车轮的预设速度。每一车轮的速度通过一套增量式PID进行控制,以编码器采集的实时速度作为反馈量,解算出的预设速度为设定值。
-
图像处理流程
我们使用一块芯片专门用于处理图像数据。摄像头看到的是是一帧一帧的灰度图像,我们将摄像头采集到的数据以二维数组的方式存储,数组大小为60*120,并使用大津算法将灰度图像转化为二值化图像进行赛道边线和元素的识别。
-
大津算法
-
从0到255遍历灰度值,统计落在每个值的像素点数量;
-
归一化,使其值位于0到1之间
-
设置一个分类阈值i(一个灰度级),从0开始迭代
-
统计0~i灰度级像素(背景像素)占整幅图像的比例w0,背景像素的平均灰度u0
统计i~255灰度级像素(前景像素)占整幅图像的比例w1,前景像素平局灰度u1
设图像总平均灰度u2,类间方差g
$$ u2=w0\times u0+w1\times u1 $$ $$ g=w0\times (u0-u2)^2+w1\times (u1-u2)^2=w0\times (u0-u1)^2 $$ -
i++,灰度阈值+1,再重复步骤4,直到全部遍历完
-
将g值最大的相应i值作为图像的全部阈值
更新中。。。。。。