基于AprilTag的智能小车寻找固定目标方法设计

2021-11-24 07:21陶筱云张炜玮刘润扬胡宇航
科技信息·学术版 2021年21期
关键词:智能小车

陶筱云 张炜玮 刘润扬 胡宇航

摘要:为解决老年人日常独居在家的护理问题,缓解社会养老压力,解放年轻生产力,需要一款能定时为处在指定地点的老人提供日常药品或日常生活用品的智能家居。基于STM32单片机,结合OPENMV智能摄像头模块和Apriltag识别的算法在小车定位方面研究较少,但较传统GPS或传感器定位精度更高,较SLAM算法操作更加简便,结合蓝牙APP能实现老年人日常居家所需的简单护理操作。本设计主要讨论智能小车基于Apriltag识别算法下寻找指令中固定目标或目标地点的功能,在老年人居家养老方面具有重大意义。

关键词:OPENMV;AprilTag;智能小车

0 引言

所谓“生老病死”是人生常态,人到老年难免会面临行动力衰退、记忆力下降、病痛缠身等困扰,大多数老年人都需要长期服药用以缓解病痛或维持身体机能。且现今社会压力较大,年轻人大多在外务工,老年人独居在家不仅提高了护理难度,还加大了社会养老压力。

本设计希望能够解决老年人行动不便、记忆力衰退带来的忘记定时吃药的问题,结合OPENMV摄像头模块和Apriltag识别,利用OPENMV自带的智能算法与Apriltag类二维码存储量大、编码范围广、容错性高的特点及二维码编码的独一性,可以实现准确性较高的固定目标识别。操作和设计简单,在一般户型下可以实现较高准确性寻找到准确目标。

1 系统整体设计

利用STM32F103RC单片机主控结合硬件设计,提高测算速度和精度。利用Apriltag自带的算法实现小车对于固定目标的“定位”功能,即可以输出小车距离目标地点处标记二维码中心的位置参量和角度参量;结合OPENMV摄像头模块,可实现对不同Apriltag的识别,实现小车寻找到固定目标的功能。得到OPENMV 模块输出的参量后,通过串口,使主控STM32F103RC单片机和控制小车基本行进的STC89C52RC单片机通信,加以条件判断,即可实现小车在一般家庭户型中自由行走,实现智能小车寻找固定目标的功能。

2.AprilTag介绍

AprilTag是一个视觉基准库,近年来在AR、机器人、相机校准等领域被广泛应用。共有六个种类,也称六个家族:TAG16H5,TAG25H7,TAG25H9,TAG36H10,TAG36H11,ARTOOLKIT每个家族含至少30个id,至多2320个id,但家族内包含id数量越多,AprilTag识别的准确率就越高,通过选择不同家族,可满足对不同数量的编码。可以通过网络下载或OPENMV的IDE软件随机生成的方法获得指定数量的AprilTag。

其检测的方法主要是识别一四边形区域,这一块区域较周围区域亮度更暗,通过其内部亮块的不同组合方式,识别到特定id。因此,黑色AprilTag较其他颜色识别准确率更高。通过其内置算法,用户可以得到角度,3D坐标值等数据。本设计主要使用的是TAG36H11,也是应用最广泛的一个家族。

3.智能小车寻找固定目标方法设计

小车的智能控制软件系统主要包括:STM32主控部分、OPENMV摄像头视觉识别部分、小车行进控制部分。其中STM32主控部分主要负责数据的收发和分析处理数据;OPENMV摄像头视觉识别部分主要负责AprilTag的识别和方向角度、3D位置的计算;52单片机电机驱动部分主要负责左右转向轮的控制。

3.1OPENMV摄像头视觉识别部分

通过OPENMV对AprilTag识别后可得到六个变量,分别为xyz坐标轴的三个变量,以及xyz坐标轴上的三个偏量,即三个位置参量,三个角度参量。使用者可以通过MicroPython语言进行编程,输出所需变量,减少程序计算量,提高响应速率,也减少错误的产生。

尝试两种方法:

(1)将AprilTag置于识别地点门框或墙面低处;

将AprilTag置于识别地点的门框或者墙面低处,openmv摄像头与AprilTag距离更近,识别精度较高,但无法精确控制小车车身朝向,可能在小车自主避障之后出现行进方向的偏差,目标地点丢失等问题。

程序设计AprilTag通过串口发送id码,yz坐标到主控芯片。

(2)将AprilTag置于识别地点中心天花板;

将AprilTag置于识别地点中心的天花板上,可以通过AprilTag发送的角度参量对车身朝向和小车行进方向进行调整,寻找固定目标更加快速。但由于OPENMV摄像头自身像素限制,屋顶过高可能出现识别不精确或难以识别的问题,但减小了AprilTag计算出的三维距离与实际距离存在误差对小车找到固定目标的影响。

程序设计AprilTag通过串口发送id码,yz坐标和三个角度参量到主控芯片。

OPENMV发出的参量与实际两会有2-3厘米的误差,将通过主控芯片,利用条件判断控制合适的余量,尽量消除误差带来的影响。

3.2STM32主控部分

小车主开关闭合后,小车及其他附属部分上电,将自主进行定时器中断初始化,并向52单片机传送原地待定指令。然后打开与OPENMV的异步通信串口,接收OPENMV视觉系统扫描并计算得出的数据,接收到数组中;同时打开接收语音识别指令和蓝牙app指令的串口,接收到的指令为预先在程序内设置好的固定地点数字代码,主控芯片将把数字代码与OPENMV传来的AprilTag的id进行匹配,若匹配成功,则将出数据存储到数组内,供后续条件判断,小车电机驱动使用;反之,匹配不成功,则输出“error”,系统不进行后续的运算。

一般家庭门宽为80厘米至100厘米,为保证小车转向距离足够,且AprilTag傳出数据存在误差,主控芯片接收到AprilTag传来的参量(即小车当前所处位置与目标地点的距离)后,进行相应的条件判断,同样也分为两种方法:

(1)若AprilTag置于识别地点门框或墙面低处,Z轴对应值(即小车与目标正前方直线距离)大于50厘米,主控芯片向52单片机发送前进指令;反之小于50厘米,向52单片机发送停止指令。Y轴对应值(即小车与目标中心左右距离的差距)为正数,则小车向右转90°后向前行进该值-10的距离;若对应值为负数,则小车向左转九十°后向前行进该值-10的距离。

(2)若AprilTag置于识别地点中心天花板,Y轴对应值(即小车与目标正前方直线距离)大于10厘米,主控芯片向52单片机发送前进指令;反之小于10厘米,向52单片机发送停止指令。X轴对应值(即小车与目标中心左右距离的差距)为正数,则小车向右转90°后向前行进该值-10的距离;若对应值为负数,则小车向左转90°后向前行进该值-10的距离。流程图如图1所示。

3.3小车行进控制部分

小车的避障方案选择中断的方式,无论将APRILTAG置于天花板还是低处墙面均可使用。利用红外传感器,结合红外测距算法,检测到小车车头前方15厘米处有障碍物后,52单片机控制左电机驱动左轮向右旋转90°,再次利用红外传感器判断前方20厘米内是否存在障碍物,若前方无障碍物,则前进20厘米,再驱动右轮向左旋转90°回到正确方向;若前方存在障碍物,则再次驱动左电机,控制小车向右旋转180°,后前进20厘米,再驱动左轮向右旋转90°回到正确方向。最后重新识别到AprilTag,重复主控芯片的指令。

4 结论

利用OPENMV摄像头模块与Apriltag,结合现有资料,进行程序编写。Apriltag二维码放置的位置对摄像头识别准确性及距离测算的精度有较大影响,受限于摄像头自身像素和Apriltag的大小及清晰度,当Apriltag置于识别地点门框或墙面低处时,识别准确度及距离测算精度都较高,但由于小车避障部分依靠红外摄像头和简单程序编写,在其完成避障操作的过程中可能会出现车身无法回正而丢失固定目标或在空地较小的地方卡住的情况。当Apriltag置于识别地点中心时,由于小车自身高度较矮,与正常家庭天花板距离为1.5米至2.5米,因此识别准确度及距离测算精度较前一种方法更低,可以提高Apriltag的清晰度或适量放大来减小误差;相较于前一中方法,将Apriltag置于识别地点中心可以通过发送角度参量来确定车身是否朝正,有利于车身在避障操作后回正,减小了丢失目标的可能性。

参考文献:

[1]夏胜杰,杨昊,艾伟清.基于Arduino单片机和OpenMV的颜色目标定位与跟踪小车的设计与实现[J].常熟理工学院学报,2021,35(05):59-64.

[2]姚志强,赵恩铭,杨松,杨燕婷,刘光宇,周豹,王辰,朱晓栋.基于OpenMV的目标方位追踪算法[J].牡丹江师范学院学报(自然科学版),2021(03):14-18.

[3]史勇民,楼顺天,安盼盼.基于视觉的传感器位置记忆追踪方法[J].应用光学,2021,42(05):853-858.

基金项目:国家级大学生创新创业训练计划项目“康护智能小车”(项目号:202110066005)

作者簡介:陶筱云(2000-),女,本科生,测控技术与仪器专业。

猜你喜欢
智能小车
基于WiFi技术的智能手机双控视频小车
基于FPGA的智能玩具设计
基于灰度传感器的机器人路径跟随功能设计与实现
基于LabVIEW的自主巡航与遥控双功能智能小车研发
基于STC89C51智能小车的移动家居平台的设计
基于HC—SR04超声波传感器的智能避障小车设计
智能安全防盗探测小车
一种基于STC89C52单片机的简易智能小车的实现
基于视觉反馈的智能环境侦察车的研究
智能小车的设计与应用