基于Kmeans算法的自动打靶系统

2018-12-17 02:58程潇雅白雪雪王指南
新教育时代电子杂志(学生版) 2018年21期
关键词:靶子舵机摄像头

程潇雅 李 禄 李 萱 白雪雪 王指南

(西安科技大学自动化 陕西西安 710600)

一、总体方案的设计

1.系统框图

图1-1 系统框图

基于Kmeans算法的自动打靶系统主要由摄像头OV7725、STM32F407ZGT6、舵机、激光笔构成。该系统建立直角坐标系,舵机分为X轴和Y轴方向。摄像头和激光笔安装在舵机上,两者同轴,皆随舵机的转动而转动。采用激光笔红点坐标固定、靶面坐标活动的方式,经摄像头图像采集、控制器数据处理后,得到目标和靶面的坐标差,从而控制激光笔打向目标中心点。[1]

二、主要结构部件设计

1.电机转动装置

采用180度旋转舵机控制导轨的转动。舵机为随动系统,转动时可以外接较大的负载,输出扭矩大,而且抗抖动性很好。180度旋转舵机内置驱动电路,用单片机输出的信号可以直接驱动,接线方便,可以用PWM波占空比直接控制舵机旋转角度,达到打靶角度控制目的。[2]

2.去噪算法

采用Kmeans聚类算法,理解容易,数据处理简单。去噪效果好,可有效剔除离散式坐标,只取有效聚集坐标。处理大数据集时,可保证较好的伸缩性和高效性。

三、理论分析与计算

1.打靶控制系统分析

自动打靶系统是一个多变量、非线性控制的控制系统。在颜色识别中,摄像头噪声会导致颜色误判,普通加权平均得到的坐标受噪声影响和实际坐标误差较大,去噪成为颜色识别关键点之一。摄像头将像素点RGB值传递给控制器转化为HSL格式后,采用Kmeans聚类算法,可消除噪声或离散点的干扰,筛选并聚集靶子坐标,精确地确定靶子的中心坐标。具体算法步骤如下:

(1)随机选取训练数据中的K个中心点。

(2)当k值选定后,随机计算n次,取得到最小函数值的k作为最终聚类结果,避免随机引起的局部最优解。

(3)绘制出k--颜色坐标闪点图,看到有明显拐点(如下)的地方,设为k值,可以结合轮廓系数。

(4)重复2-3,直到这k个中线点不再变化(收敛了),或执行了足够多的迭代。由此得到靶子中心的坐标。

而对于打靶控制系统来讲,由于距离较远,每一微小角度的改变,都会引起坐标位置较大的改变,且呈非线性改变。所以在控制器设计中,引入PID反馈控制,使得控制能更加精确。

四、程序的设计

1.程序设计环境描述

系统采用C语言编程实现各项功能。C语言本身带有各种库函数,运算能力较强,本系统的软件中算数运算比较多,利用C语言编程可以体现出一定优势。程序是在Window10环境下采用Keil uVision5软件编写的,可实现对激光笔的精确控制,对传感器输入信号的处理等功能。

2.程序功能描述与设计思路

自动打靶控制系统首先对靶面颜色识别,然后根据坐标反馈信息,运用PID算法得到PWM值(脉冲宽度调制),然后输出PWM波驱动舵机按照要求转动。

程序设计的思路是通过摄像头组件对靶子坐标进行实时采集,把采集的两种信息作为控制输入,使用PID控制算法对各个控制参数进行优化处理,然后把以优化的参数(PWM值)作为电机的控制输入,使得激光笔实现自动打靶功能。[3]

五、测试结果

1.测试方法

(1)硬件测试:分别对每个模块做相应的测试。

(2)软件仿真测试:使用Keil MDK软件进行仿真。

(3)硬件软件联调:对打靶控制系统的测试是在一个符合要求的环境中测试的,逐步按要求进行测试。

2.测试条件与仪器

在室温条件下,测试所用仪器如下:

数字万用表(MPD-3303);直流电源(UT39A);秒表;尺子。

3.测试数据

在确定测试方案之后和测试仪器之后,得到了测试结果。系统分别按顺序打向红、绿、蓝三个颜色的靶子,并对测试结果进行数据分析:具体结果由一下分析所示:

表5-1

六、设计总结

测试结果表明,基于Kmeans算法的自动打靶系统准确率高,去噪声效果好、反应速度快,能有效进行颜色识别和颜色数据处理筛选,运行性能稳定。

猜你喜欢
靶子舵机摄像头
浙江首试公路非现场执法新型摄像头
靶子
摄像头连接器可提供360°视角图像
含齿隙弹载舵机的全局反步模糊自适应控制
找准“靶向治疗”的靶子
基于dsPIC单片机的飞艇舵机控制实现
独特的靶子
基于高速同步485总线通信的多通道舵机控制器设计
奔驰360°摄像头系统介绍
基于云模型的舵机同步控制