第十三届“恩智浦”杯全国大学生智能汽车竞赛-信标对抗组比赛总结

一、比赛形式

信标对抗组是让小车通过摄像头识别信标位置,并驶向闪烁的信标,借助磁铁切割磁感线从而熄灭信标。

二、主控板电源电路

1.DC-DC稳压电路(6.8V-8.4V稳压到6V)

1.1电路原理图

1.2稳压芯片TPS565201热仿真(输入电压8.4V,输出电压6V,电流4A):

仿真结果参数:

1.3稳压芯片TPS565201输出电流电压波形仿真(电压在0.05V左右波动):

2.线性稳压电路(6.8V-8.4V稳压到5V)

2.1电路原理图

2.2线性稳压芯片LMS1585A输出电流电压波形仿真(输入电压7.6V,输出电压5V,电流1A):

三、控制逻辑及策略

1.主程序框架

通过switch-case语句实现有限状态机编程。

为了增加可读性,采用枚举的方式表示各状态(如下图)。

2.控制部分

2.1双电机后轮差速:阿克曼转向模型

2.1.1理论模型:

2.1.2公式推导:

2.1.3算法实现:

2.2接近信标策略:采用舵机PD控制+参数查表法沿信标灯切线方向灭灯。

首先沿着期望的路径手推小车,并将信标的横坐标、纵坐标和宽度通过蓝牙发送到上位机,储存在Excel文件中,所得到的横坐标作为期望横坐标。以图像中的实际横坐标作为反馈,输入量为期望横坐标,输出量为控制舵机角度的PWM波。期望横坐标与图像宽度、纵坐标通过查表法建立一一对应的关系,缺点是一旦改变阈值,图像宽度改变,需要修改的参数较多。原先通过MATLAB对采集到的数据进行拟合,但是发现有些地方数据较分散,找不到合适的拟合函数,所以改用查表法。
曲线拟合结果(横坐标-信标宽度,纵坐标-信标中心点的横坐标):

在之后的国赛中为了解决利用信标宽度作为PID模型输入值的缺点,我们改用信标的纵坐标,这样可以避免因调节阈值而反复修改PID参数和输入的期望值。

2.3图像补偿

由于今年规则中信标灯的红外发射频率变为10HZ,实际中会出现50ms的无图像,造成舵机频繁抖舵,严重情况下会因电流过大而烧坏舵机的稳压芯片。省赛中使用80×60的分辨率,摄像头帧率合适,抖舵影响不大,所以没有做图像补偿。但是分辨率改成160×120之后,帧率只有50帧/秒,抖舵现象严重,并且经常因为图像丢失而开始自转寻找目标。
横坐标补偿算法:

纵坐标补偿算法:

图像补偿效果(蓝色为离散的原始数据,红色为连续的补偿数据):

3.图像识别部分

3.1摄像头型号:山外鹰眼硬件二值化摄像头

山外鹰眼摄像头其本身已经做了硬件二值化,直接得到黑白图像,好处是减轻了主控芯片进行软件二值化的运算压力,提升了运算效率,但是坏处是只能对黑白图像做处理,容易受到环境干扰。

3.2图像的存储与压缩

由于山外摄像头读取到的图像只有黑色和白色,所以在数组中只需要用0和1来表示。山外官方的代码中将八个像素放入一个字节中,因此分辨率6080的图像只需要用6080/8=600大小的数组存放。

3.3图像横、纵坐标的计算

一张图像有60行80列,信标在图像中是0,其它地方是1,所以将每一行的80个像素相加求和,和最小的那一行可以看做是信标的纵坐标,同理和最小的那一列可以看做是信标的横坐标。

3.4图像滤波

由于鹰眼摄像头输出的只有黑白二值化图像,只能通过遍历数组寻找离散的点进行简单的滤波。
图像滤波算法:

3.5创新点:侧面摄像头辅助判断转弯方向。

由于比赛中熄灭一盏信标灯之后,下一盏信标灯的位置是随机的,如果采用固定的转弯方向会导致绕远路而浪费时间,因此我们采用双摄像头辅助定位。省赛前因为图像分辨率都80×60,所以采用单核双摄的方案主控芯片也能带的动。但是国赛改用160×120的分辨率之后,第二个摄像头无法正常工作,于是改用双核双摄的方案,其中两块芯片之间通过串口通信。
实现方式是前面的摄像头为主摄像头,用于正常寻找目标并反馈给控制系统。当前面的摄像头没有捕捉到图像时,判断右边的摄像头得到的数据,如果右边摄像头有图像,则往右转,反之往左转。
双摄像头摆放位置如下图:

4.调试界面部分

4.1摄像头图像显示

4.2当前状态信息显示

由上至下分别为:横坐标、纵坐标、图像宽度、当前工作模式、左轮速度、右轮速度、横坐标期望值。

4.3主要参数显示和调试

由上至下分别为:直线速度期望值、舵机中值、舵机PID模型比例系数、舵机PID模型积分系数、舵机PID模型微分系数、正常模式/调试模式、转弯速度期望值。

四、比赛经验总结

1.摄像头焦距需要调节到合适位置,否则能看到近距离的目标但是看不到远距离的目标或者能看到远距离的目标而近距离目标模糊,所以调节焦距使得最大距离的图像以及最近距离的图像都能较为清晰。

2.经典控制理论是基于刚性模型所建立,而实际上我们通常所遇到的例如智能车的结构都是柔性结构,结构之间存在柔性间隙以及谐振等,所以我们在小车前端的舵机连杆以及减震结构中加入黄油,堵住间隙又能起到润滑效果。

3.单片机超频之后耗电会加快。

4.6v/250A船型开关使用一段时间后会出现问题,导致电池电压经过开关之后降压。

5.pwm频率对发热有影响。频率太低,电机外壳会产生涡流。

6.使用BTN作为电机驱动芯片,允许通过的最大电流较低,容易烧芯片,尤其是B车电机动力大,驱动电流较大。mos管允许通过的电流值较大,但是一个电机需要四个mos管组成一个全桥电路驱动,一个BTN相当于一个半桥。

7.电机和舵机控制放在定时器中断中。电机控制频率1khz,定时周期1ms。舵机控制频率100hz,定时周期10ms。电机和舵机如果同时放在一个1ms定时器里面,每进一次中断变量自加一,加到10的时候,执行舵机控制程序,中间可能会被其它中断打断,而使得中断里面没有按照10ms的周期控制舵机。所以电机和舵机尽量放在两个定时器中断里面。实时性高的程序放进中断里。

8.PID实时调参方法:设置三个电位器,通过调节电位器旋钮,改变PID三个参数Kp、Ki、Kd,并通过无线模块将参数实时发送给小车,同时接收小车速度信息,将速度波形显示在电脑上。

9.在车底铺满铝箔可以有效减少小车运行过程中产生的静电。

10.减少部分杂光干扰的方法:
①使用偏振片。
②将摄像头架高。
③镜头采用平光镜。

11.降压芯片压差过大会导致芯片工作功率增大而发烫。

12.ABS制动防抱死系统:每秒制动8次左右,让轮胎边滚边滑。

13.Matlab数据拟合工具箱cftool。

14.LSD限滑:两侧驱动轮转速差值被允许在一定范围内,以保证正常的转弯等行驶性能。

15.没有坑纹的光头胎相比有坑纹的轮胎,在干地上能提供更多的摩擦力(接触面积越大,摩擦力越大),更多的摩擦力意味着更强的抓地力,更强的抓地力意味着赛车尤其是在弯道中就能有更快的车速。
相关资料:
https://www.zhihu.com/question/23747154/answer/257882068?utm_source=qq&utm_medium=social

16.F1赛车弯道转向相关资料:
https://www.guokr.com/post/691728/focus/0345131746/

17.增大轮胎摩擦力的各种方法(主要针对B车轮胎):
①在轮胎里面垫海绵,使得轮胎膨胀起来一点。
②先将轮胎密封,然后用注射筒向轮胎内充气。
③使用细砂纸将轮胎磨平(规则不允许),增大受力面积,或者将轮胎磨粗糙。
④涂软化剂。
⑤新C车轮胎需要多跑跑可以有助于磨轮胎。
⑥松香磨成粉溶解在酒精里,然后涂轮胎上。

18.广角镜镜头角度越大,镜头中的红外图像就越小。对于鹰眼硬件二值化摄像头,可以通过提高阈值和提高分辨率使得图像更大,但是分辨率提高之后CPU负载大,摄像头帧率会下降。

19.信标组推荐芯片及摄像头:K66+总钻风
推荐识别方案:图像分割、识别颜色;
推荐避障方案:线性CCD、摄像头。

20.新C车比旧C车容易打滑。

21.防止轮胎与轮毂分离可以采用704硅胶涂抹在轮胎与轮毂贴合处。

22.DC-DC电路线性稳压效率高。

五、比赛视频