作者 姚锡钦 林烨 陈苏阳 浙江工贸工作技能学院 电子工程系(浙江 温州 325000)
摘要:体系选用STM32F103系列单片机作为主动泊车操控体系和小车操控体系的中心,操控设备经过按钮挑选小车泊车位并经过无线模块发送给小车,实时经过OpenMV摄像头检测小车顶部的April Tag符号来获取小车的方位及视点,完结小车主动驶入泊车位。小车经过操控设备的反应来获取自己的当时方位,一起运用麦克纳姆轮的水平位移,让小车愈加精准快速的抵达泊车位。
*2017年“瑞萨杯”全国大学生电子规划竞赛高职高专组最高奖“瑞萨杯奖”
姚锡钦(1978-),男,试验师,研讨方向:机电一体化技能。
0 导言
本规划为2017年“瑞萨杯”大学生电子规划竞赛高职高专组主动泊车体系(L题)的解决计划,本题的中心要求是规划并制造一个泊车体系,要求电动小车能主动驶入指定的泊车位,泊车后能主动驶出泊车场。为了达到中心要求,咱们规划了这套运用麦克纳姆轮做小车车轮的方法使小车具有全向移动才能,并经过OpenMV辨认定位April Tag来定位小车方位的主动泊车计划。经过运用OpenMV在图像辨认定位开发方面简略快速的特色,以及麦克纳姆轮全向移动的才能使得纠偏算法大大简化。使得咱们得以在严重的竞赛时刻内完结本套计划。
1 体系全体计划
体系全体结构如图1所示。本体系由小车部分以及操控器两大部分组成,其间小车部分由STM32单片机、无线模块、测速模块、检测磕碰电路、电机操控电路、液晶显现电路、声光提示电路、电源电路,辅以适宜的机械结构组成:STM32单片机经过无线模块接纳来自操控器的方针车位以及小车当时坐标的数据流,在STM32单片机中进行拼接格局化后小车即可获悉本身的实时坐标以及要前往的方针车位。运动过程中因为运用麦克纳姆轮进行移动,且考虑到小车电机运动特性参数不会肯定共同,故运用由红外光电对管以及码盘组成的测速模块对车轮进行测速,并在STM32中做每个车轮的转速PID实时操控小车车轮转速契合麦克纳姆轮运动操控函数核算出的单个轮速度。因为标题中要求小车停入车位以及驶出车位需求有相应的声光提示,且在小车调试过程中因为小车处于移动中,不方便在外部接入串口线进行调试,故需求相应的可控LED以及蜂鸣器发光发声提示,辅佐程序调试。液晶显现模块用于显现无线模块初始化状况,以及磕碰次数。电源部分运用两节18650锂电池串联作为总电源,其间电机驱动供电为电池直供的最高8.4 V,最低6 V的电源,单片机等其他操控检测电路为经过降压稳压后的5 V电源,并在单片机最小体系板上由LDO进一步稳压为3.3 V。检测磕碰方面有与场所合作来检测与场所磕碰的检测磕碰电路组成。操控部分首要由摄像头、液晶显现模块、语音录放模块、激光检测模块、无线模块组成,其间摄像头用于盯梢小车方位,液晶显现模块用于显现当时车位以及小车行进信息,一起运用语音录放模块进行播报,激光检测模块用于检测小车进入场所以及驶出场所,并核算时刻差,无线模块用于向小车发送数据流。
2 检测磕碰电路
因标题中有要求小车在场所中移动的过程中要能记载小车磕碰场所隔板的次数。故需求制造相应的检测磕碰电路来检测与隔板的磕碰,可参阅图2、图3、图4,思路为:在场所隔板上或许磕碰的区域贴上一条有必定宽度的铜箔,在小车上方安顿一个渠道,并在渠道四周上下间隔必定高度贴两圈铜箔,当没有产生磕碰时,小车渠道上两圈铜箔不导通,一旦产生磕碰,场所隔板上的铜箔将小车渠道上的两圈铜箔导通,单片机检测铜箔被导公例判别产生了磕碰,其原理相似一个常开式按钮。
3 摄像头模块
因为需求实时获取小车在场所中的方位,并将小车坐标经过操控器实时发送到小车并进行反应操控。故需求确保小车在场所中能实时被捕获并要求小车移动过程中丢掉几率尽量低,且坐标数据刷新率要求高。故挑选运用OpenMV合作April Tag来完结定位。OpenMV是一个开源的机器视觉模块。相较于传统摄像头+单片机做硬件,自己写图像辨认处理算法的方法,OpenMV运用Python言语(经过MicroPython解说器在STM32F4或STM32F7上运转Python程序),开发速度快。一些常用功用所需的算法现已封装成Python库,能够直接调用,并有示例程序参阅。在竞赛中,因为开发时刻特别名贵,故挑选运用OpenMV做摄像头模块,能够大大提高开发速度,并在数据刷新率上相关于树莓派+OpenCV有优势,在小车移动过程中丢掉几率方面优于一般摄像头+STM32自写算法,经过将OpenMV固定于场所正上方,并仰望全场,小车上方渠道固定April Tag标签来进行追寻,小车上的April Tag标签装置暗示可参照图6。能够得出小车在摄像头画面中的XY坐标以及旋转视点,摄像头仰望场所时画面如图5。该计划虽在当时项目中具有优势,但因为运用STM32F7单片机,RAM容量较少,不能处理高分辨率图片,使得其定位精度成为一大瓶颈,且因为分辨率低,导致April Tag标签需求在摄像头画面中占有必定面积才可被安稳盯梢辨认,故需求制造更大尺度的April Tag标签或许将April Tag标签间隔摄像头的高度差拉近(在车身上举高April Tag标签高度)来补偿分辨率过低的问题。
4 麦克纳姆轮
本标题中有两个平行式车位,要求小车能完结侧方位泊车,咱们在初期考虑的时分就以要求泊车过程中零磕碰为方针,故挑选麦克纳姆轮作为小车车轮,小车运用的麦克纳姆轮实物图如图7。相关于一般车轮,麦克纳姆轮经过对4个车轮滚动方向和速度的和谐操控,能够使车体在运动平面内的恣意方向上移动、滚动和漂移,即运动中能够不改动本身的方向),这能够很简略完结侧方泊车的要求,而且能够大大简化在正常行进过程中纠偏算法。在电机方面,因为车身宽度以及其他分量体积方面的考虑,运用一般的微型有刷直流电机合作20格的一般光电码盘合作光电对管对电机进行测速后进行转速PID操控,因为电机输出轴经过减速组织后连接到麦克纳姆轮进行驱动,且测速用光电码盘也坐落减速后的轴上,码盘格数也过少,故测速作用非常不抱负,导致PID操控作用不抱负。有条件可运用步进电机或在电机直接输出轴上经过光电码盘进行测速。
5 软件规划
软件首要为小车上STM32程序以及操控器STM32程序,以及OpenMV上个Python脚本,其间OpenMV中的Python完结了April Tag标签的追寻,并将April Tag标签的方位信息和视点信息打包成JSON格局的数据包经过有线TTL串口发送至操控器上的STM32单片机进行处理,操控器上的STM32单片机经过运用CJSON库对来自OpenMV的JSON数据进行解析,提取出相应数据后打包成小车对应的数据包格局经过无线模块发送给小车,更改数据包格局首要是因为在STM32单片机中解析JSON会耗费很多RAM以及CPU时刻,故需求替换数据格局,且需求发送至小车的数据首要有两大类,别离是坐标视点数据以及车位数据,故在数据包中参加包类型来区别两大数据类型。小车收到车位数据以及坐标视点数据后依据小车中的坐标点核算小车当时坐标与小车方针坐标的差错,得出补偿差错用的XY方向向量长度。将得出的向量长度数据输入麦克纳姆轮运动核算函数算出每个轮子的轮速度,并传递给车轮转速PID程序进行车轮转速操控,其间得出差错并进行补偿操控的部分因为克纳姆轮运动核算函数的参数为X方向向量长度以及Y方向向量长度以及旋转角速度,故可直接运用小车当时在摄像头中的坐标与方针在摄像头中的坐标的XY差错分以及小车在摄像头中的旋转视点直接别离乘以系数来作为麦克纳姆轮运动核算函数的参数进行方位补偿。
6 定论
本文规划计划结构较为简略,且完结简略,特别在麦克纳姆轮与OpenMV和April Tag的合作方面,大大简化了算法以及硬件电路规划难度和机械装置难度。而且有必定可靠性,在非抱负状态下(例如电机运动呈现差错,麦克纳姆轮装置呈现差错)表现出必定的鲁棒性。
参阅文献:
[1]林烨.依据PID算法的水温操控体系规划[J].山西科技,2011,26(3):111-113.
[2]王一治,常德功.Mecanum四轮全方位体系的运动功能剖析及结构方式优选[J].机械工程学报,2009(5):307-310.
[3]侯彬,李亚明.麦克纳姆轮技能及其在船用轮式设备中的使用[J].船只工程,2011(3):84-87.
[4]石维亮,王兴松,贾茜.依据Mecanum轮的全向移动机器人的研发[J].机械工程师,2007(9):18-21.
[5]Abdelkader I,El-Sonbaty Y,El-Habrouk M.OPENMV: A PYTHON POWERED, EXTENSIBLE MACHINE VISION CAMERA[C]// International Conference on Computer Graphics, Visualization, Computer Vision and Image Processing. 2017.
本文来源于《电子产品世界》2018年第8期第39页,欢迎您写论文时引证,并注明出处。