基于二维码扫描的IoT空间建模机器人

2021-05-24 10:34邓开连虞嘉豪刘肖燕王文龙
物联网技术 2021年5期
关键词:激光测距舵机像素点

邓开连,虞嘉豪,刘肖燕,王文龙,燕 帅

(东华大学 信息科学与技术学院,上海 201620)

0 引 言

随着物联网、机器人技术的发展[1-2],扫地机器人、服务员机器人等室内工作机器人的建模避障与导航是实现机器人正常工作的关键[3]。例如,Gmapping算法通过采集激光传感器、坐标变换和里程计数据构建栅格地图[4],通过360°可旋转平台上的3D结构光扫描法得到3D云点阵[5];E. Lachat等提出将TLS(Terrestrial Laser Scanner)与KINECT V2传感器相结合以提高建模的细节水平[6];张肇轩等提出的基于模板替换的方法优化了单视角卷积神经网络室内场景建模信息缺失的问题[7];许佩研究了一种非迭代的结构光多视角自动拼接算法,降低了多视角融合建模的计算复杂度[8]。为了降低空间建模的成本,提高空间建模的精度,简化空间建模的算法,设计了一种基于二维码扫描进行室内建模的方法。

二维码识别以其易识别、信息量大、门槛低的特性在各个领域有了广泛的应用[9-11]。传统机器人导航算法中,在室内运行的机器人往往需要通过反复扫描、避障、计算等才可以得到室内的运行地图[12]。在此方法中,在一个完整的智能家居体系中,智能家具本身附有二维码,并且二维码储存了物体的大小以及占用空间信息,当机器人扫描到物体时仅需将物体正确地放置到室内地图中所对应的位置即可实现快速建模。相比较传统建模方法,把对于物体的建模工作提前完成,机器人无需装备各种扫描装置来为物体建立模型,仅需确定物体的位置与朝向就可以把事先建好的模型安放于机器人的导航地图内,实现建模。系统不仅降低了对于机器人终端的硬件需求,也提高了建模精度和识别准确度。

1 系统设计

1.1 系统结构

基于二维码扫描的空间建模机器人系统组成主要包括:电源(使用12 V的航模电池和DC降压模块)、STM32单片机(STM32F103ZET6、SK60长距离激光测距模块、一对短距ToF激光测距模块ATK-VL53L0X、OpenMV-H7摄像头模块[13])、舵机[14](为OpenMV摄像头模块专用双自由度舵机)、XD-37GB520电机(为12 V的直流电机,用于驱动机器人前进,以及NT35510LCD显示屏模块、L298N电机调速模块[15-16])。系统结构框图如图1所示。

图1 系统结构

1.2 二维码设计

实验中所用物体的长宽以及特征信息储存在二维码中,二维码中含有8位十进制数。目前,针对立方体的物体进行了实验,第1~2位表示物体的特征码,每一个物体都有一个单独的特征码,已经被加入到模型中的物体的特征码会被记录,以防反复计算;第3~5位表示物体的长度,即与二维码平面垂直方向的物体长度,单位为cm;第6~9位表示物体的宽度,即与二维码平面平行的物体长度;二维码的上方有一个红色矩形指示条,用于指示OpenMV摄像头找到二维码的位置。

1.3 场地设计

实验测试场地为一块宽度2.4 m,长度4 m的空间,周围用纸板树立起围墙,机器人的行进路线为一条直线,如图2中线段所示。物体被摆放在道路两侧,在与机器人摄像头等高位置处贴上二维码贴纸。场地设计区域俯视图如图2所示。图中1,2,3分别表示不同的物体,提前测量了长与宽,并且数据已经录到二维码中。

图2 场地设计区域俯视图

1.4 机械结构

系统整机结构实物图如图3所示。机器人用XD-37GB520电机牵引一对履带前进,以防打滑导致机器人偏离原先轨道。激光测距模块指向机器人前进的方向,OpenMV摄像头和一对平行的红外激光测距模块固定在舵机上方,舵机可以水平360°旋转。

图3 系统整机结构实物

2 系统建模

2.1 系统控制

STM32F103单片机含有2个I2C接口[17]用于连接激光传感器ATK-VL53L0X,PB6连接SCL,PB7连接SDA,它们连接摄像头左侧的激光传感器。PB10连接SCL,PB11连接SDA,它们连接摄像头右侧的激光传感器。UART1连接OpenMV的串口,UART2连接SK60激光传感器,均采用异步全双工通信。PB5和PB4分别连接定时器3的通道2和1,输出PWM波[18]控制L298N对电机进行调速,以平衡电机的转速差异,让机器人能实现直线行驶。OpenMV摄像头模块输出PWM波控制舵机。

2.2 建模原理

首先,机器人沿着直线缓慢前进,OpenMV摄像头模块控制舵机左右旋转扫描红色矩形标识,当红色标识的面积大于一定值,即摄像头与二维码足够近时,控制舵机使红色标识位于画面中间,开始识别二维码。识别后,OpenMV摄像头模块将二维码数据和此时的舵机角度β传送给STM32主控芯片处理。角度测量原理示意图如图4所示,此时STM32主控芯片控制平行于相机的一对红外测距模块,测量二维码和相机之间的距离得到两者之间的距离X,由于2个激光测距模块的距离A可以直接提前测量,则物体二维码所在平面与摄像头平面的夹角α为:

图4 角度测量原理示意图

然后,由舵机的角度β和机器人的位置综合计算出物体的位置,并将相应位置的显示屏显示呈现为红色。之后继续前进,重复上述过程直到机器人到达终点。最终可以从LCD显示屏中直观地看到扫描结果,如有后续开发需要,单片机也可以读取对应LCD RAM的RGB值,得到相应的数据。

3 软件算法

3.1 程序设计

系统程序主要分为STM32主控芯片部分和OpenMV摄像头部分,其程序流程图如图5所示。主控部分采用C语言环境编写,代码在Keil 5环境下编译,并使用ST-LINK调试下载,主要负责输出PWM波、收发I2C数据、收发串口数据、算法处理和LCD显示。摄像头部分使用OpenMV IDE编程负责物体及二维码识别、舵机控制、串口数据收发。

图5 程序流程

OpenMV摄像头模块寻找红色矩形的方法为:在摄像头的画面中建立直角坐标系,原点位于画面左下角的像素点,X轴水平方向向右,Y轴向上,每个像素点对应一个直角坐标系中的整数点。提取摄像头中的每个像素点的RGB值,根据RGB值判定像素点为是否为红色,通过红色像素点横坐标平均值得出红色矩形的中心横坐标如下:

式中:Xi为第i个红色像素点的横坐标;k为红色像素点的总个数。

该方法可以降低光线环境产生的噪点对判断方位的影响。通过将Xc与屏幕的中心点相比较得到红色矩形的偏移量,并结合PID算法调整舵机的方向,使得二维码位于屏幕中央。

3.2 建模算法

以机器人前进的路线为Y轴正方向,机器人的起点为原点,机器人起点的右侧为X轴正方向建立直角坐标系,坐标系以cm为单位,则机器人的起始位置为(120,0)。由激光测距模块得到和最前方墙壁的距离为d,机器人经过校准以达到直线行驶,则机器人的实时位置可以表示为(120,240-d)。当OpenMV扫描到二维码时,会返回舵机的偏移角度β、物体的长度a、宽度b。此时机器人通过双激光测距模块测得距离再通过公式(1)得到角度α。β和α均为矢量。对于β,以机器人前进方向为0°,俯视图上顺时针方向为正;对于α,以2个激光测距模块之间的连线为0°,俯视图上以顺时针方向为正。由于2个激光测距模块的连线非常接近舵机的转轴,激光测距模块的凸出部分可忽略,因此得出实际物体相对Y轴正方向的偏移角度γ为:

由短距激光测距模块得到的2个数据为X1,X2,那么物体到机器人的距离为:

则物体二维码面的中点位置的坐标可以表示为:

因此,物体上被扫描到二维码的一面所对应坐标系中的直线为:

则和二维码平行的一面所对应的直线为:

因此,与这2条边垂直的边可以表示为:

L1,L2,L3,L4共同构成了矩形,最终得到矩形4个点的坐标表达式如下:

3.3 算法分析

建模算法主要包括被扫描物体的定位,以及在建模坐标系中还原被扫描物体的两个过程。物体的定位算法是涉及三角函数的简单解析几何运算,调用C语言中的math库即可。由于物体的数据均被提前测量并录入二维码,因此建模的精度可以很高,并且在扫描并建立模型时,可以避免模型不完整的情况。但在实际应用中,由于室内的场景元素的复杂性和多样性,使得提前测量的数据导入二维码中的工作较为困难,而且若物体的形状或大小可变则会使建模结果不可靠。

在扫描并建模一个物体的过程中,算法仅需执行一次,无需迭代循环。建模方法定性对比见表1所列,由表1可知,与单视角卷积神经网络和Gmapping算法相比,二维码扫描方法具有时间复杂度较低、对于单个物体建模精度高、传感器简单等优点,但机器人本身的定位依赖于矩形的规则场地和激光传感器精度,在复杂场景下定位性能较差,若是能够与里程计等传感器相结合可以提高定位精度。

表1 建模方法定性对比

4 实验结果与分析

在多次实验中,将3个长宽不同的矩形物体随机摆放在行驶路线两侧,在机器人前进扫描后,都可以较好地还原实际的物体摆放图,并将其显示在LCD屏中,显示结果如图6所示。3个方块即表示3个被扫描到的物体。扫描显示结果与实际的误差主要来源于:机器人简化为质点处理;云台旋臂的空间被压缩。

图6 基于空间模型的扫描显示图

多次实验结果统计显示,扫描物体的成功率约为93%,但若两个物体摆放过近时,成功率可能会降低,这是由于机器人误以为相邻的物体是同一个物体。

5 结 语

本文所提系统使用了二维码识别的方法,并结合了简单的解析几何算法,解决了相对复杂的空间建模与扫描问题。在提前给物体建模并制成二维码后,机器人仅需对二维码进行识别,无需重新扫描构建物体的模型。因此,系统具有建模速度快、运算要求低和识别成功率高等优点。提前测量并录入物体数据到二维码中的方法提高了建模精度,但是同时也降低了系统的通用性。在实验中,机器人很好地建立了空间俯视图模型,但在复杂场景下的不规则物体识别与建模方面,系统效果还有待提高。系统给室内机器人等物联网设备的室内导航与识别提供了一种新的思路,在低功耗、低成本室内运行机器人领域和智能家居生态IoT体系内有很好的应用前景。物体的避障、抓取实验未来可以继续实施。此外,物体的二维码是否可以更换为RFID标签来提高机器人的定位精度、建模,并与手臂的动力学模型相结合应用到物体的抓取与移动中等都是未来研究的方向。

猜你喜欢
激光测距舵机像素点
含齿隙弹载舵机的全局反步模糊自适应控制
基于LabVIEW的偏振调制激光测距测量控制系统
基于5×5邻域像素点相关性的划痕修复算法
基于高压架空线路激光测距的无人机锁定导线巡航研究
基于dsPIC单片机的飞艇舵机控制实现
基于canvas的前端数据加密
基于回波强度的激光测距误差补偿算法研究
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于高速同步485总线通信的多通道舵机控制器设计
基于云模型的舵机同步控制