APP下载

基于物联网的疫情防控免接触智能配送车、柜设计

2024-04-14谢雨欣左安峰葛宾韩祥森

现代信息科技 2024年2期
关键词:串口通信树莓派

谢雨欣 左安峰 葛宾 韩祥森

DOI:10.19850/j.cnki.2096-4706.2024.02.035

收稿日期:2023-05-30

基金项目:2022年山东省大学生创新创业训练项目(S202213857005)

摘  要:针对疫情防控期间快递配送中人与人接触感染以及快递丢失、收取快递时间冲突等问题,设计了一套基于物联网技术的疫情防控免接触智能配送车、柜系统,打破了“人+车”的传统配送方式,能够实现快递车自动检测并将物品配送到快递柜中的功能。快递柜配备与快递车相对应的串口通信指令,可以达到自动开关门效果。通过对树莓派和主控机的深度学习,配送体系达到了自动化、智能化的效果,此外还搭载了深度相机和雷达检测模块,可对周围环境进行分析建图,并通过建图模型实现全自动导航运输,有效解决了收取快递时间冲突问题。

关键词:树莓派;配送车;雷达检测;串口通信

中图分类号:TN929.5;TP391.4 文献标识码:A 文章编号:2096-4706(2024)02-0162-06

Design of Contactless Intelligent Delivery Vehicles and Cabinets for Epidemic Prevention and Control Based on the Internet of Things

XIE Yuxin, ZUO Anfeng, GE Bin, HAN Xiangsen

(Shandong Huayu University of Technology, Dezhou  253034, China)

Abstract: A contactless intelligent delivery vehicle and cabinet system for epidemic prevention and control, based on Internet of Things technology, has been designed to address issues such as human to human contact infections, delivery loss, and conflicting delivery times during the epidemic prevention and control period. This system breaks the traditional delivery method of“person+vehicle”and can automatically detect and deliver items to the delivery cabinet. The express cabinet is equipped with serial communication commands corresponding to the delivery vehicle, which can achieve automatic door opening and closing effects. Through deep learning of Raspberry Pi and the main control computer, the delivery system has achieved automation and intelligence. In addition, it is equipped with a depth camera and radar detection module, which can analyze and map the surrounding environment. Through the map building model, fully automatic navigation and transportation are achieved, effectively solving the problem of conflicting delivery time.

Keywords: Raspberry Pi; delivery vehicle; radar detection; serial port communication

0  引  言

近年来,互联网已经成为人们生活中不可或缺的一部分,网购、外卖、代买等已经成为一种火热的趋势。然而日益增长的快递量亟待有更大的技术突破来提高配送效率,尤其是像社區、大学校园等集中居住的场所。一款智能型的配送和接收工具往往能推动该领域的发展。在物流行业已经出现了快递人员送货和客户收货时间冲突、快递员追求速度而引发交通事故、春节期间的用工荒导致无人运送快递等制约其进一步发展的关键问题[1]。作者基于我校山东省大学生创新创业训练项目提出一种基于物联网的疫情防控免接触智能配送车、柜,旨在解决上述问题,真正实现快递配送对自动化、智能化的要求。

1  系统总体设计方案

该项目的主要功能是实现快递“最后一公里”智能配送,通过智能快递车和快递柜结合,拟设计一种无须排队等待取件的免接触智能配送系统,其主要由云平台、智能控制系统、无线感应式通信技术、自动追光系统等组成,系统整体框图如图1所示。

首先在需要快递车停靠的站点(公寓楼、写字楼等)设立快递柜,按照行列对每个柜门进行编码。使用Android Studio设计一款供用户使用微信或者QQ登录的小程序,快递入柜扫描过程中可以向客户发送信息;同时客户也可以通过其下单、预约寄送快递,完成支付,安全、便捷。其次,本项目使用串口通信技术精准投递应用于快递车内的传送履带与快递柜门的感应式开关。另外,通过监控系统采集道路环境信息,如路线、障碍等影响小车自动行驶的因素,反馈给云平台,由控制模块综合相关信息控制小车雷达建图、自动避障,确保其顺利到达各个站点完成配送[2]。通信模块会在快递车将快递放在快递柜中,自动给用户发送短信密码,用户可通过在快递柜触摸屏上输入密码,取快递。最后,我们还设置了自动追光系统,使小车在行进的过程中通过光电传感器检测到光源信号,将信号传送回中央控制系统,标记光源地点,寻找光源进行太阳能充电。

2  理论分析与计算

2.1  自动追光系统

以东西向平单轴跟踪器为例,太阳能跟踪系统的转轴系南北方向布设,然后根据太阳方位角的变化使光伏组件绕转轴做旋转转动,跟踪器上的组件朝向根据阳光照射情况进行调整,减少光伏组件法线与太阳直射光之间的夹角,组件表面太阳辐照增加,可有效提高发电量。

2.2  基于Gmapping算法SLAM建图

Gmapping是一个基于2D激光雷達使用RBPF算法完成二维栅格地图构建的SLAM算法[3]。Gmapping算法主要是依据RBPF粒子滤波器,在给使用者手动给的任意位置为初始位置,构建地图[4]。输入t-1时刻的里程计信息ut-1粒子的集合st-1和t时刻的观测值,通过判断-()≤-()和-()、- ()关系,运用高斯分布依据:

P(zt | mt - 1(i),xj),P(xt | xt-1(i),ut-1)

计算出其数据的平均值和方差矩阵,从而得到在t时刻快递小车的位置。

2.3  蒙特卡罗定位算法

蒙特卡罗定位算法是一种思想或方法。在智能车定位方面,我们使用粒子,哪里的粒子多,就代表机器人在哪里的可能性大[5]。算法步骤如下:

Algorithm MCL(xt-1, ut,, zt |, m):

= xt = θ

for m = 1 to M do

= sample_motion_model(ut,, )

= measurement_model(zt,, , m)

endfor

for m = 1 to M do

draw i with probability ∝

add  to Xt

endfor

return Xt

通过把合适的概率运动和感知模型代入到粒子滤波算法中得到,使用M个粒子的集合 表示置信度bel(xt)初始置信度由先验分布随机产生的M个这样的粒子得到。算法第4行使用运动模型采样,以当前置信度为起点使用粒子,第5行使用测量模型以确定粒子的重要性权值,通过增加粒子总数M能提高定位的近似精度。

2.4  定位与建图的相关研究

定位与建图依靠智能车的传感装置,目前常用的传感器有激光雷达、毫米波雷达、GPS、摄像头、陀螺仪等。按照获取的信息的类型,可以分为内部传感器和外部传感器,内部传感器获取车辆自身的状态、参数,例如IMU获取自身加速度和偏航角;外部传感器获取周围环境信息,例如激光雷达或摄像头[6]。

为完成定位与建图,在有了传感器之后,还需要对传感器取得的数据进行处理。可以通过运算实现,如里程计技术,通过对速度、角速度进行积分,计算当前位置,但会存在累积误差;也可通过雷达、摄像头等传感器得到的数据进行实时定位。而实际应用中,都是多种传感器共同使用,如何融合数据便成为一个关键。

在相关研究中,即时定位与地图构建(Simultaneous Localization and Mapping, SLAM)技术可以很精确地实现定位和建图。SLAM技术可以分为激光SLAM和视觉SLAM,激光SLAM采用的传感器为激光雷达,而视觉SLAM则采用深度摄像头[7]。

目前,激光SLAM较为成熟,定位更加精确。在硬件方面,采用以激光雷达为主的传感器。在软件方面,以Gmapping地图构建算法为核心。Gmapping由Giorgio Grisetti和Cyrill Stachniss等在2007年以Fast-SLAM方案为基本原理提出,是一种基于Rao-Blackwellized粒子滤波的二维激光SLAM方法,目前在机器人定位导航方面应用广泛[8]。

3  硬件电路与软件设计

3.1  硬件电路设计

在ROS自动驾驶小车的硬件设计中,需要考虑以下几点:

1)传感器选择:激光雷达、摄像头和IMU(惯性测量单元)等传感器可以用来获取车辆周围的环境信息,确定车辆的位置、速度和方向[9]。

2)控制器选型:ROS自动驾驶小车的控制器可以是微控制器或工业计算机。常用的控制器包括Arduino、Raspberry Pi和Nvidia Jetson等。

3)执行器选择:电机和舵机是常用的执行器类型,用于控制小车的速度和方向。为了实现更精确的控制,可以选择带有编码器的直流电机和舵机,以实现准确的位置或速度控制。

4)嵌入式计算机:嵌入式计算机用于处理传感器数据、执行控制算法和规划决策。常用的嵌入式计算机有Jetson Xavier和Raspberry Pi[10]。

快递柜硬件电路设计如图2所示。

3.2  硬件电路设计工作流

在硬件电路的设计中,需要遵循以下工作流程:

1)功能块划分:将系统划分为更小的功能块,例如传感器、控制器、执行器和嵌入式计算机。

2)选定硬件:根据系统需求选择适当的硬件,并考虑价格、性能和可靠性等因素。

3)设计接口:设计接口以便各个硬件模块之间进行通信,并选择适当的连接方式,如USB、CAN、GPIO和I2C等。

4)电路布局:将组件放置在适当的位置并使用电路板设计软件完成电路设计。

5)调试和验证:将硬件测试到需要的精度,并使用模拟器或实际汽车进行测试验证。

3.3  ROS硬件电路设计实例

以下是我们设计的智能配送车、柜的硬件电路设计方案。

1)传感器:使用3D激光雷达、摄像头和IMU等传感器。激光雷达用于测量汽车周围的距离和形状,摄像头用于识别道路标志和其他道路用户,IMU用于确定汽车的方向和速度。

2)控制器:使用Raspberry Pi 4B作为主控制器,其具有高性能和低功耗的特点。

3)执行器:使用带有编码器的直流电机和舵机作为执行器,以实现准确的位置或速度控制。

4)嵌入式计算机:使用树莓派作为嵌入式计算机,其具有强大的计算能力,可以支持大規模任务以及图像和视频的处理。

4  系统软件设计

系统程序开始后,启动系统中的光电传感器、雷达监测、控制系统,将收集到的数据传输到云平台中进行分析处理,进行路线规划,获取超声波测距数据后进行辅助定位。当控制系统检测到云平台发来的运行指令后,会根据指令包中的功能标志字符来实现自动避障,精准投递等功能的执行。期间快递柜也会通过串口通信给用户发送信息,控制自动开关门接收系统,安卓软件界面如图3所示。Gmapping算法实现效果图如图4所示。

4.1  得到小车速度和舵机转角程序

1. ros::init(argc, argv, "art_driver");

2. ros::NodeHandle n;

3. ros::Subscriber sub = n.subscribe("/car/cmd_vel",

1,TwistCallback);

4.2  PWM转换给单片机

1. void TwistCallback(const geometry_msgs::Twist& twist)

2. {

3. double angle;

4. angle = 2500.0 - twist.angular.z * 2000.0 / 180.0;

5. send_cmd(uint16_t(twist.linear.x),uint16_t(angle));

6. }

4.3  树莓派控制激光雷达

树莓派控制激光雷达的程序通常需要使用到GPIO(General Purpose Input/Output,通用输入/输出)接口来控制激光雷达的转动。可以通过树莓派的GPIO接口来控制激光雷达的转动:

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(18, GPIO.OUT) # GPIO 18用于控制转动电机

try:

while True:

# 控制激光雷达转动

GPIO.output(18, GPIO.HIGH)

time.sleep(0.5)

GPIO.output(18, GPIO.LOW)

time.sleep(0.5)

except KeyboardInterrupt:

GPIO.cleanup()

上述代码中,我们使用RPi.GPIO库来控制树莓派上面的GPIO接口。首先,我们需要将GPIO设定为BCM模式(Broadcom SOC Channel),这是一种通用的GPIO编号模式。然后,通过GPIO.setup()方法来设置GPIO口为输出模式,这里我们使用GPIO 18来控制激光雷达的转动。接着,我们在try块中实现轮询功能,不断循环地控制GPIO口将激光雷达转动,并使程序等待一段时间再次控制停止。最后,当通过键盘终止程序时清除GPIO状态,以释放树莓派上的GPIO接口。

需要特别注意的是,因为激光雷达连接的是高压电源,其涉及的安全问题比较重要,需要加以注意。在实际开发中,还需要将该程序与激光雷达的驱动程序相结合,实现对激光雷达的控制。

4.4  树莓派控制深度相机成像

树莓派控制深度相机成像需要使用到树莓派的小型计算和IO处理能力,以及深度相机的API函数库,可以通过树莓派控制深度相机进行成像:

import pyrealsense2 as rs

import numpy as np

import cv2

import time

pipeline = rs.pipeline()

config = rs.config()

config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)

pipeline.start(config)

try:

while True:

frames = pipeline.wait_for_frames()

depth_frame = frames.get_depth_frame()

if not depth_frame:

continue

depth_image = np.asanyarray(depth_frame.get_data())

# 保存深度图像

cv2.imwrite("depth_image.jpg", depth_image)

# 停止程序

break

finally:

pipeline.stop()

上述代码中,我们使用了Pyrealsense2库来实现对深度相机API函数的调用。程序首先启动了一个管道pipeline,然后使用设定对象config来设定捕获深度图像的参数,设置分辨率为640×480并以每秒30帧的速度捕获深度图像。接着,我们进入主循环,通过pipeline.wait_for_frames()方法进行等待,等待深度相机产生图像帧。如果得到深度帧图像,则执行depth_frame.get_data()方法获取深度数据,并将其转换为numpy数组depth_image,这里我们将深度图像保存为文件depth_image.jpg。最后,当程序完成任务或通过其他方式结束程序时,停止pipeline以释放资源。

需要特别说明的是,代码中的函数库Pyrealsense2可以方便实现对Intel的RealSense深度相机进行调用,而调用不同厂家的深度相机,需要按照其官方API自行调整。此外,在实际应用中,我们还可以根据需要自定义深度相机的设置参数,如自定义分辨率、采集速度等,以适应不同场景下的应用需求。

5  实验测试与分析

最终本系统包括硬件与软件APP,该系统供电后开始运行,雷达会处于检测状态,对周围环境进行检测反馈到树莓派,利用Gmapping算法进行建图,在建好整个地图后,快递车利用机械臂拿起快递实行多点循环导航,串口通信会在快递车和快递柜接近时打开,此时柜子里面的推杆将柜子门推开,快递车进行快递放置。当快递车远离柜子后,柜子中的推杆收回,自动关门器利用拉力把柜门关闭,此时柜子里面的GSM模块向用户手机发送信息,用户获取信息后,在柜子的触摸屏上输入密码,取走快递,

在对该系统的配送成本、配送环节、配送时间、时间冲突以及投诉率测试情况下,我们进行了与传统配送方式的对比,我们选取了甲(假期期间)、乙(人流密集)、丙(人流稀松平常,工作日)三处实验场地及时间,采用Ⅰ组和Ⅱ组。Ⅰ组为传统配送方式,Ⅱ组为新型配送车、柜。两组同时配送100件货物,最后得到如表1至表3测试数据。

从实验数据来看,Ⅱ组(新型配送车、柜)在配送成本、配送環节、配送时间及时间冲突以及投诉率上面的表现远远超过传统配送,且在疫情条件下,打破了人与人直接配送的束缚,达到了预期效果。

6  结  论

该项目对基于智能配送系统进行研究,设计了一款以电能为动力,并且未来有可能取代人力,可以广泛应用于城市中集中居住区的免接触智能配送车、柜,突破了“人+车”的快递配送方式的局限,旨在解决集中取件导致的快递站人员拥堵、排队等候影响交通和浪费时间,以及快递长期滞留在快递站占用公共资源的情况。基于物联网深度集成,以单片机为控制核心,协调和操控各个运行模块,使用云平台对小车进行实时跟踪和控制,另外小程序的开发为用户提供更好的使用体验。同时利用光电传感器标记光点,使光能转化为电能,节约资源。

参考文献:

[1] 杨冰杰.新型无人驾驶快递投递小车的设计与实现 [D].上海:上海交通大学,2019.

[2] 王宇岚.夜间无人驾驶智能车的信息感知与驾驶行为规划研究 [D].上海:东华大学,2020.

[3] 张贺尧,韦国轩,吴沁芯.基于LiDAR技术的智能寻路小车设计与实现 [J].集成电路应用,2022,39(3):1-3.

[4] 王超,杨福康.基于自主导航与避障系统的智能小车设计 [J].信息技术与信息化,2022(8):217-220.

[5] 姜小玉.基于蒙特卡罗的移动无线传感器节点定位算法的改进研究 [D].南宁:广西大学,2020.

[6] 黄琦.履带式无人车辆的路径规划方法研究 [D].武汉:武汉大学,2018.

[7] 潘文钊.室内动态场景下的RGB-D SLAM研究 [D].广州:华南理工大学,2021.

[8] 庞辰耀,吴平,翁德华,等.基于ROS与激光SLAM自主导航与避障系统的设计 [J].数字技术与应用,2021,39(11):214-218.

[9] 张燕咏,张莎,张昱,等.基于多模态融合的自动驾驶感知及计算 [J].计算机研究与发展,2020,57(9):1781-1799.

[10] 宋雪.基于单目视觉导航的多旋翼飞行器设计 [D].哈尔滨:哈尔滨理工大学,2019.

作者简介:谢雨欣(2001—),女,汉族,河南濮阳人,本科在读,研究方向:软件工程;左安峰(2002—),男,汉族,山东日照人,本科在读,研究方向:电子信息;葛宾(1981—),男,汉族,山东德州人,副教授,硕士研究生,研究方向:思想政治教育;韩祥森(1994—),男,汉族,山东淄博人,讲师,本科,研究方向:电子与通信技术、智能控制。

猜你喜欢

串口通信树莓派
基于微信端的智能家居监控系统的设计与实现
基于Qt和Flash的嵌入式Linux软件架构设计
串口通信在智能家居监控系统中的应用
智能安全防盗探测小车
基于OpenCV的室内照明智能控制系统设计与实现
基于树莓派的高清视频播放器的设计与实现
基于MSP430单片机的窄带无线数据传输模块的设计
基于嵌入式技术的农村医疗系统设计
便携式数传电台测试系统的设计与实现