基于OpenMV的特征辨识跟随机器人控制系统设计

2023-04-14 21:18肖啸天孙明晓王博栾添添
电脑知识与技术 2023年6期
关键词:控制系统

肖啸天 孙明晓 王博 栾添添

摘要:为了让人在超市等公共场合解放双手,减轻负重,设计一种基于OpenMV视觉摄像头模块的具有特征辨识功能的智能跟随机器人。在自主跟随模式下,系统通过识别AprilTag来确定被跟随目标与跟随机器人的相对位置坐标,运用PID算法来规划系统的跟随路径,通过调用PWM脉宽调制控制左右电机的转速,达到跟随的效果。在遥控模式下,跟随机器人可以被上位机遥控,借助应用程序向系统发送特定的字符串,遥控跟随机器人系统进退、转动等。该设计的实现能够有效减轻人的负重,提高运载效率。

关键词:OpenMV视觉传感器;控制系统;AprilTag识别;跟随机器人

中图分类号:TP273    文献标识码:A

文章编号:1009-3044(2023)06-0015-03

开放科学(资源服务)标识码(OSID)

0 引言

互联网和人工智能的飞速发展推动了机器人技术的高速发展。机器人视觉跟随技术作为应用非常广泛且实用的关键技术越来越受到重视。视觉跟踪机器人[1]模仿了生物行为,使机器人可以通过传感器获取外界信息通过计算做出相应的判断使得机器人更加智能化,双模控制[2]可以更好地面对复杂环境,使机器人可以处理更加复杂的问题[3]。

国外的跟随机器人发展较早,已有相对成熟的应用,现如今私人货物运输机器人Gita和沃尔玛购物车Budgee的应用,都为劳累的人们提供了便捷的服务。本质上,它们都是具有识别定位和跟随功能的移动机器人。在国内上海交通大学设计的具有高性能和低功耗的优点移动跟随机器人代表着国内的领先水平。黄梦雨的零转径跟随机器人控制系统设计,实现了用超宽带定位技术实现机器人的跟随服务功能,面对复杂环境的能力还有待增强。徐军设计的双模控制跟随机器人,可以较好地实现跟随行走和双模控制。本文相对于上述的机器人而言,在双模控制的基础上,采用PWM控制进行位置跟随,电机调速通过PWM控制,占空比不同,输出模拟电压的平均值不同,由此来控制电机实现调速[4]。可以更好地应对复杂环境,识别精度也可有一定程度的提高。主要从以下四方面展开:

(1)使用搭载OV7725摄像头的OpenMV视觉传感器模块来采集图像信息,同时将图像信息上传给主控芯片;(2)系统的微控制器是STM32F765,为了提高识别目标人物的速率,确保系统的实时性,CPU在获取到图像信息后,调用PID算法[5],设计跟随路径,运动平台在获取到跟随路径后稳定跟随目标人物;(3)使用Wi-Fi模块的AT指令作为连接PC机与跟随机器人系统的桥梁,实现数据高速、稳定地传输;(4)自主跟随模式与遥控模式之间可以自由切换,确保整个系统的高效性、稳定性、安全性。

1 硬件总体设计

本方案主要设计思路是目标跟随机器人系统结构模块化设计,包括视觉感知模块[6]、机器人行走模块、动态路径规划部分、Wi-Fi模块部分、电源部分、报警部分。系统的总体框图如图1所示。

系统采用双模控制,系统的核心部分是视觉感知部分和运动平台部分,通过OV7725摄像头找到跟随目标,OpenMV将相对的位置信息整合,并将此信息传输给STM32F,MCU[7]通过对相对位置信息的计算,得到准确的跟随路径。同时,也可使用Wi-Fi模块实现联网的效果,通过PC机应用程序控制机器人的运动。

2 软件总体设计

2.1 系统的软件总体框图

对于整个跟随机器人的控制系统来说,整个系统的软件设计包括视觉传感器,Wi-Fi模块,电机驱动模块以及PC的应用程序的设计和编写。系统总体软件设计流程图如图2所示。

2.2 视觉传感器

OpenMV视觉传感器模块[8]对于整个跟随机器人控制系统来说是最为主要的模块之一,它为整个系统提供了识别与跟随的功能。当视野内出现AprilTag时,程序会将AprilTag的四周使用红色的线框起来,并在AprilTag的中心画一个绿色的十字。同时,在OpenMV IDE的调试输出集成串行端口会输出AprilTag对应的ID和空间位置(六个自由度,三个位置,三个角度)。之后可以通过相对位置的输出,来计算AprilTag和系统之间的实际距离。输出3D坐标信息的程序与运行结果如图3所示。

2.3 电机驱动

跟随功能作为系统的基本功能之一,也是跟随机器人设计的核心部分。

电机驱动模块上电之后,主要是受到来自OpenMV3的四个GPIO引脚的控制。与此同时,电机驱动模块的四个引脚驱动两个电机的转动速度。先在电机驱动模块中配置好两个驱动的正反转,当速度大于零时,电机正转,速度小于零时,电机反转。对于系统来说,左右轮胎的距离PID应该是一样的,方向PID是相反的。左轮的速度是距离PID减方向PID,右轮的速度是距离PID加方向PID。

2.4 Wi-Fi 模块

ESP8266-01在上电后初始化Wi-Fi模块,应用程序(PC机)连接AP热点后,可以通过串口通信发送指定的字符串,控制跟随机器人前后左右地移动。

在OpenMV IDE上使用Python语言配置模块。通过AT+RST指令重启模块。AT+CWMODE=2指令设置Wi-Fi模块为AP热点模式,也就是把ESP-01看作是TCP服务器,等待TCP客户端的接入ESP-01的服務器。AT+CWSAP="OPEN","123456789",6,4指令将热点名称设置为OPEN,密码设置为123456789。再使用AT+CIPMUX=1指令启动多连接模式,允许多个客户端连接这个AP热点。AT+CIPSERVER=1,8080指令建立TCP服务器,端口为8080端口。最后使用AT+CIFSR指令查询一下服务器的IP地址和端口号。各个AT指令写入后,接收到OK,则表示模块配置成功。

2.5 PC的应用程序编写与设计

应用程序的设计在Visual Studio 2019上创建一个MFC项目[9],可使用该应用程序实现与OpenMV3数据和字符串的传输。

MFC提供两类支持编写Web的应用程序。类CAsyncSocket封装一个的Windows套接字API,提供高级的网络程序员这种大多数功能和灵活性。为了实现系统的遥控功能,要先对PC机的应用程序的功能进行调试。

3 调试过程与测试结果

3.1 识别与跟随调试

跟随机器人的设计采用双模控制,在自主跟随模式下,系统可以实现准确的识别和稳定的跟随,在遥控模式下,可通过PC机(应用程序)实现灵活的遥控移动。具体实物图如图4所示。

对于对目标的识别,用2D条形码AprilTag。主控制器根据获取到的目标三维坐标信息,调用差速算法,驱动电机运动,使机器人跟随目标行走。机器人速度由目标的X轴坐标和Z轴坐标确定。

[VL=KcZ-Z0-X-X0]           (1)

[VR=KcZ-Z0+X-X0]           (2)

式中:[VL]左轮速度标量,[VR]右轮速度标量,[Kc]为速度系数[Z0]为[Z]轴跟随阈值,[X0]为[X]轴偏移量。

具体的使用过程如下,首先在OpenMV IDE中编写好对应程序的代码。然后将打开的脚本保存到OpenMV Cam(作为main.py),执行此操作便于以后跟随机器人的脱机运行,保存成功后,可以在F盘里重命名保存的脚本文件。然后将OpenMV3 Cam M7连接上,如果此时OpenMV3 Cam无响应,则可能是Windows上的串口驅动程序崩溃。最后运行OpenMV IDE里的脚本程序。在脱机运行时,OpenMV3可以自动运行RAM或SD卡里的main.py程序。

对于系统来说,左右轮胎的距离PID是一样的,方向PID是相反的。

在确保各模块已接好的前提下,把锂电池接入系统,为系统的所有模块供电。跟随机器人系统可以完成跟随和遥控功能,说明整个系统调试成功。

3.2 遥控功能的调试

遥控功能涉及了串口通信,以及Wi-Fi转串口的问题,通过由MFC项目创建的应用程序,可以接受或发送字符串。通过OpenMV IDE上传到OpenMV3,PC机连接Wi-Fi模块产生的热点。打开应用程序,接入对应的IP地址的端口号,连接成功后,将遥控程序上传到OpenMV3。通过点击应用程序页面的前进、后退、左转、右转和停止按键控制系统的运动,也可以使用电脑上的上下左右键来控制。遥控功能的调试程序与测试图如图5所示。

4 结语

本文设计一种基于OpenMV机器视觉摄像头模块的具有人物特征辨识功能的智能可跟随人物的机器人,且机器人具有辨识度高、成本低、操作便捷、安全性高等优点。实现了以下功能:

(1)可以识别并跟随目标。

(2)运动平台获取目标位置信息,设计跟随算法,使用PID调节,使系统稳定跟随。

(3)存储空间与系统空间结构设计互不干扰,保证系统的鲁棒性。

(4)手机端App与系统无线连接,在Wi-Fi模块的SDK基础上二次开发,具有高效透传性能。

参考文献:

[1] 黄梦雨,秦建军,高磊,等.基于UWB的零转径跟随机器人控制系统设计[J].重庆理工大学学报(自然科学),2019,33(9):142-150.

[2] 徐军,杨雄,陈怡佳,等.一种双模控制的自主跟随机器人系统设计[J].自动化仪表,2018,39(3):48-51.

[3] Roy A,Noel M M.Design of a high-speed line following robot that smoothly follows tight curves[J].Computers & Electrical Engineering,2016,56:732-747.

[4] 罗琴.基于Arduino的避障小车设计与实现[J].黑龙江科学,2017,8(20):24-25.

[5] 徐敏.基于ARM的移动机器人控制系统设计[J].电脑知识与技术,2008,4(35):2356-2358.

[6] 刘畅.基于Android的无线遥控移动机器人[J].电脑知识与技术,2018,14(30):35-36.

[7] 王典洪,孙蒙,黄小辉,等.基于单片机及传感器的机器人设计与实现[J].微计算机信息,2007,23(8):246-247,275.

[8] 张亚斌.基于ROS的轮式移动机器人行人目标视觉感知与跟随系统研究[D].徐州:中国矿业大学,2019.

[9] 王彬.基于改进核相关滤波算法的跟随机器人设计与实现[D].杭州:浙江大学,2018.

【通联编辑:梁书】

猜你喜欢
控制系统
石油化工企业仪表自动化控制系统应用研究
对电气自动化控制系统的设计要点分析
基于PLC的自动切蛋糕机的控制方案