【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

01

前 言

大家好,我是张巧龙,今天给大家带来关于21年F题的分享:智能送药小车,出了这个题目之后,咋一看,好像比较简单。

不过大家慢慢做,越往后做越发现,坑越来越多。

第一个问题:数字识别率不高,我对识别率高低的看法:只要不到100%,哪怕出现1%的误识别率,我认为都不行,为什么?

因为,标题清楚地表明,每个项目只测试一次。也就是说,如果这辆车出了故障,它就会得0分,就没有机会再次测试了。

[En]

Because, the title clearly shows that each project is only tested once. In other words, if the car goes wrong, it will score 0, and there will be no chance to test it again.

第二个问题:汽车巡逻的问题。提到巡线,大家一定会想到跟踪模块(颜色识别传感器)。这没有问题,它可以用来跟踪轨迹,也可以用相机来跟踪。

[En]

The second question: the problem of car patrol. When it comes to line patrol, everyone must think of the tracking module (color recognition sensor). This is no problem, it can be used or a camera can be used to track tracks.

不知道大家是否有发现过,车运动的轨迹都是直线,转弯都是90度,循迹模块或者摄像头寻迹确实可以用。

但在移动过程中,需要时刻巡线,对摄像头或跟踪模块的要求比较高,对环境的光线要求也比较稳定。

[En]

However, in the process of movement, the line needs to be patrolled all the time, the requirements of the camera or tracking module are relatively high, and the light requirements of the environment are relatively stable.

为了提高巡线的稳定性,我觉得可以直接用电机编码器写下闭环,直接确定汽车移动的距离,走完固定的直线距离后再识别号码,转弯也可以直接固定,毕竟是90度。

[En]

In order to improve the stability of the patrol line, I think we can directly use the motor encoder to write the closed loop, fix the distance of the car movement directly, and then identify the number after walking a fixed straight distance, and the turn can also be directly fixed, after all, it is 90 degrees.

当然,颜色识别模块或相机跟踪肯定是辅助这一过程的。

[En]

Of course, color recognition module or camera tracking is definitely needed to assist in this process.

来吧,看视频展示,文字内容在后文。

【全国一等奖】F题:智能送药小车

顺便说一句,由于电机的直接闭环,这段视频中的汽车速度可以继续提高。

[En]

By the way, due to the direct closed loop of the motor, the speed of the car in this video can continue to be improved.

02

系统方案

2.0 摘要

以STM32单片机为核心、结合视觉识别技术,通过速度闭环来控制智能送药小车,并实现双车在预定轨道上送药,取药。

基本模块主要包括主控、摄像头、直流减速电机、驱动模块,无线传输模块,本设计主控选择STM32F103RCT6。

在摄像头识别中,采用双摄像头方案,K210用于识别数字和寻找对应数字并通过串口向主控发送识别信息,从而进入对应的病房,OpenMV用来寻迹,防止小车偏离预定轨道;

小车1,2通过ZiGBee来完成双车通信,实现双车协同运送的效果;通过电机编码器反馈的信息设计小车的速度闭环控制系统,实现运输距离的精准控制。

经测试,该设计具有识别速度快、识别准确率高、传输稳定、效率高等优点。

[En]

After testing, it is found that the design has the advantages of fast recognition speed, high recognition accuracy, stable transportation and high efficiency.

【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

2.1 方案设计

2.1.1 控制方案设计

根据题目要求,将小车系统分为4个基本模块,包括主控模块、电机驱动模块、视觉检测和识别模块,无线通讯模块,主控选择STM32F103RCT6,通过速度闭环来实现电机驱动的精准控制。

视觉识别中,寻迹采用OpenMv摄像头,数字识别采用K210摄像头。

无线通信选择ZIGBEE实现两车之间的通讯,系统的总体设计框图如图1所示。

【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

图1 系统总体设计框图

2.1.2 机械结构方案

由于题目要求小车的长宽高不能超过25cm20cm25cm,再加上赛道的宽度只有30cm,为了保证转向的时候能够避免碰到黑实线,我们采用双驱动置于车身中间,车身前后分别装置牛眼轮便于转向。

根据设计要求和实际情况,两个摄像头安装于车头前端,OpenMv在下,K210在上,以便于识别和检测。

由于识别数字时数字宽度较大,K210无法全部识别到数字,所以搭配舵机,实时调整摄像头的位置来达到扩大视野范围的目的。

【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

2.2 数字识别方法

首先将1-8字模原比例打印出来,然后用K210进行模型训练,模型训练了几千张模型,生成训练样本矩阵,一般样本是以二维矩阵的方式存在文件当中,现在要将它们读出来,进行适当的预处理,然后生成OpenCV能理解的数据结构。

其中包含了分别从不同的视角对图像进行采集入库,在通过NCC模板匹配训练产生数字分类器,训练样本中的数字位置形态各异,因此读入时需要进行规整化。

主要的方法是先找出数字的包围盒,然后在宽和高边的基础上进行缩放和拉伸,使其能够占据代表单个样本的整个矩阵。

[En]

The main method is to first find the bounding box of the number, and then scale and stretch based on the wide and high school side, so that it can occupy the entire matrix representing a single sample.

然后对图像进行二值化、腐蚀分割,以前的学习生成了一个分类器,但是我们在图像中输入的数字不能直接作为测试输入。图像中的数字笔划有时是不规则的,可能会相互重叠。

[En]

Then the image binarization, corrosion segmentation, the previous learning generated a classifier, but we input the number in the image can not be directly used as test input. Digital strokes in images are sometimes irregular and may overlap each other.

接下来,可以对图像进行分割。因为我们的分类器只能一个接一个地识别数字,所以我们必须首先对每个数字进行分割。在分割之后,我们可以使用先前训练的分类器来识别分割结果。

[En]

Next, the image can be segmented. Since our classifier can only recognize numbers one by one, we have to segment each number first. After the segmentation, we can use the previously trained classifier to identify the segmentation results.

2.3 自动寻径方法

首先对图像进行预处理,在图像采集和传输过程中可能会产生噪声,并通过图像灰度化和图像滤波减少对图像处理的干扰。

[En]

First of all, the image is preprocessed, and noise may be generated in the process of image acquisition and transmission, and the interference to image processing is reduced by image graying and image filtering.

其次摄像头采集跑道上的红线,通过硬件二值化处理,这里用到最大类间方差法(Otsu)来实现图像二值化阈值选取:

Otsu算法的基本思想是用某一假定灰度值t将图像的灰度分成两组,当两组的类间方差最大时,此灰度值t就是图像二值化的最佳阈值。

设图像有L个灰度值,取值范围在0~L-1,在此范围内选取灰度值T,将图像分成两组G0和G1,GO包含的像素的灰度值在0~T,G1的灰度值在T+1~L-1,用N表示图像像素总数,n, 表示灰度值为i的像素的个数。

已知:

每一个灰度值i出现的概率为p=n/ N;假设GO和G1两组像素的个数在整体图像中所占百分比可得:

【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

紧接着,运用计算机视觉的线性回归(Linear Classification)算法进行寻线,线性回归能找到视野中任何的线,但是处理速度就会很慢。

为了能更快的寻到我们想要的轨迹,把颜色调为灰度,不去处理追踪颜色,图像大小设成QQVGA,缩小图像面积,来增加速度。

最后向STM32提供反馈信息,控制电机进行自动寻径。

2.4 小车电机运动闭环控制算法

依靠编码器反馈数值,通过速度闭环解决对小车行驶距离的把控,本小车所采用的PID算法是闭环控制系统中常用的控制算法之一,其全称为比例积分微分控制。

其传递函数如下:

【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

再配合OpenMv二值化处理寻线辅助和K210数字识别并将相关数据通过串口反馈给主控板最终实现小车的精准控制。

通过配置串口的波特率便可以控制串口通讯的速率。

为保证数据接收正常,本设计通过对控制系统中的STM32F103RCT6单片机进行编写通信协议程序,以防止无线接收模块在受到干扰的情况下收到错误指令而使小车失控的情况发生。

03

程序设计

3.1 程序设计思路

3.1.1 小车1的程序设计思路

识别出目标病房号后,判断是否为近端,如果是近端,则在第一个路口直接转向对应方向,否则直行至第二个路口,确定是否为目标号。

[En]

After identifying the target ward number, determine whether it is near-end, if it is near-end, turn to the corresponding direction at the first intersection directly, otherwise go straight to the second intersection to determine whether it is the target number.

如果是,则转对应方向,否则直行至T型路口左转,判断判断是否为目标数字,如果否,则转至T型路口对面,识别目标数字方位并转弯。

识别虚线点后停车,发送位置信号给小车2,同时检测小车2回馈信号和药品是否卸载,在卸载药品完成条件下,如果检测到回馈信号则为双车模式,等待小车2,发送到达指定位置信号,则开始启动返回,否则为单车模式,直接按记忆路线返回。

【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

图1 小车1程序设计流程图

3.1.2 小车2的程序设计思路

发送反馈信号给小车1,开始识别目标病房号,检测是否装药,如未装药且接收到小车1位置指令,则取药模式,运行到T型路口处小车1对面支路并识别是否为目标数字,如果否,则转至T型路口对面,识别目标数字方位并转弯,识别虚线点后停车。

如装药且接收到小车1位置指令,则送药模式,小车2运行到指定位置停车且发送反馈信号,当接收到小车1继续运行指令则倒车回十字路口识别目标数字方位并转弯,识别虚线点后停车。

【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

图2 小车2程序设计流程图

04

总结

此方案,可行性较高,关键点有3个,分别是电机编码器位置闭环、K210训练识别数字、OPENMV巡线,其实这些内容我在21年电赛开赛前就说过,不知道大家还有没有印象:

现在回过头来看看,确实有一些参考价值。

由于篇幅有限,过多的细节在此不放了,有需要详细设计报告以及代码的,请加微信: great_xiaolong,加好友记得备注。

顺便说一句,我们将在不久的将来继续开源所有的电子游戏话题,感兴趣的朋友可以关注一下。

[En]

By the way, we will continue to open source all the topics of the video game in the near future, interested friends can pay attention to it.

当然,如果你想分享你在电子游戏方面的经验,可以加我微信并投稿。一旦被录用,就会有费用。

[En]

Of course, if you want to share your experience in video games, you can add me Wechat and contribute. Once hired, there will be a fee.

【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

精彩推荐:点击图片即可跳转阅读

近期会近期会开源电赛所有题目的方案,欢迎大家关注公众号。

Original: https://blog.csdn.net/best_xiaolong/article/details/122183365
Author: 张巧龙
Title: 【全国一等奖】F题:智能送药小车,2021年全国大学生电子设竞赛

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/10504/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总