时间:2024-05-19
张玉恒 武燕 徐延勇
无人机快递是提升乡村物流效率的有效途径,本文针对乡村环境下的无人机物流问题,探讨了无人机物流监控系统构建问题,给出了物流中心服务器、客户端及实时通信等的设计方案,为下一步的系统实现奠定了基础。
无人机由于其本身速度快、飞行直达、无拥堵等特点,可以有效提高乡村物流配送的效率,降低配送成本。因此,推动物流无人机广泛应用于农村电商物流市场,对中国物流行业、农村电商行业和民用无人机行业具有重要意义。
无人机物流监控是无人机物流运输中十分重要的环节,影响着无人机飞行的安全和货物投递的时效性。然而,目前无人机的监控,大多是利用无线数传设备对单架无人机进行点对点通信,无法满足对多架无人机同时进行监控。随着4G网络的发展和普遍应用,可以满足低空(300m以下)无人机数据传输的要求,能够作为无人机物流监控的通信手段,实现无人机的组网和远距离飞行,这就为乡村无人机物流系统奠定了基础。乡村无人机物流系统一般由上级物流中心、无人机物流中心、乡村投递点、无人机、通信基站及导航卫星等几部分组成,各部分通过无线或有线的方式接入互联网。
监控系统架构
借助于互联网,可以实现无人机物流的实时有效监控。基于互联网的无人机物流监控系统架构如图1所示,为三层架构,分别是表示层、业务层和数据层。其中表示层包括中心客户端、投递点客户端;业务层包含Web服务器、GIS服务器,数据库为postgreSQL云数据库。
监控系统设计
业务层设计
业务层主要是实现客户端请求的服务接口,由Web服务器、GIS服务器组成。
(1)Web服务器
Web服务器是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,Web服务器具有高度通用性、语言独立性、平台独立性和高度可集成性等特点。而Ubuntu是一个以桌面应用为主的开源GNU/Linux操作系统,它为用户提供一个稳定、主要由自由软件构建而成的操作系统。在Ubuntu上搭建web的服务器,可以结合两者的优点,快速开发出一个稳定通用的服务器。
基于Ubuntu的Web服务器架构如图3所示,主要所需要的组件包括:nginx、uwsgi、django开发包、python运行环境、postgreSQL数据库。
web服务器在Nginx服务器通过8000端口进行监听,当有数据请求到达端口时,会解包分析是静态请求还是动态请求,如果是请求CSS文件、JS文件等静态请求,则直接寻找到时文件并返回至客户端;如果是动态请求,则将请求转发到uwsgi服务器。Uwsgi服务器再将请求进行解析,并将解析结果转发至对应的Django模块。Django模块再经过Request中间件处理,之后使用URLConf正则匹配发送的url,进一步解析出是访问哪个功能模块,之后在Views这一功能模块中获取发送的业务数据,并通过ORM组件访问数据库,最后将需要的数据封装成JSON格式,并逐步返回至Response处理器和uwsgi服务器,然后uwsgi服务器再将数据返回至nginx,niginx服务器再将数据返回至客户端。
(2)GIS服务器
GIS服务器是目前业内功能最强的专业级GIS数据采集器,可以满足复杂环境及多样化的使用需求,因此可以利用GIS服务器对地图数据进行管理,并对多架无人机的飞行航迹数据进行采集處理。GIS服务功能架构如图3所示,主要包括了如下组件:postgreSQL+postGIS、osm2pgsql、mapnik以及mod_tile等。
在此系统架构中,首先将OSM文件利用osm2pgsql转换工具导入到PostgreSQL中对并PostGIS进行扩展,然后使用Mapnik对地图元数据进行渲染,并以瓦片的形式进行展示,其地图的样式由Mapnike style sheet文件控制;最后将瓦片数据通过Apache服务器发送给客户端。
客户端将GIS发送来的瓦片数据进行渲染,然后监听用户的响应,并实时处理地图数据。
基于Android的客户端开发
目前Android设备的应用越来越广泛,得益于Android系统开放性、开源、免费、可定制、束缚少、开发自由度高等优点,基于Android的客户端是一种可靠、便捷的开发途径。Android软件由前台显示界面与后台服务两部分组成。前台界面主要用于显示接收到的消息以,并生产向服务器提交的消息,后台服务主要完成持续定位、数据存储、异常捕获以及与服务器之间通信的功能,另外还将数据通过广播的方式向前台界面发送。基于Android的客户端架构如图4所示。
(1) 地图显示
地图显示是无人机飞行监控的一个重要功能,目前与osm相关的地图显示项目比较多,其中OSMdroid是基于OSM地图服务器而实现的功能完善的MapView替代品,它还具备一个模块化的瓦片内容提供系统以及在线和离线瓦片来源,另外还包括多图层支持的绘图图标,也支持用户自己绘制形状。选用OSMdroid进行地图开发是一个很好的选择。
1) 实时定位
定位功能允许用户使用在途追踪功能时查看无人机的定位信息,客户端在OSM地图上显示出无人机所在的实时位置,和实时定位的时间,并定时进行位置信息的更新。
2) 飞行轨迹
飞行轨迹功能允许用户使用在途追踪功能时查看无人机从出发地至目的地的所有定位信息,在散点轨迹界面还有消息提示栏,显示无人机的序号和托运单的起始地点。
(2) 调度管理模块
调度管理模块实现对无人机的调度管理,主要完成以下一些功能:
1) 无人机调度登记
无人机调度登记需要填写出发地、目的地、计划出发时间以及计划送达时间等信息基于使用的无人机编号。填好信息后,将信息上传到服务器,服务器再将此登记传送给乡村投递点。
2) 调度查询
调度查询需要针对两端进行。对于物流中心端,可以对每一个托运单的详细的调度信息进行查询,也可以查看每架无人机上挂载了多少货物。对于投递端,可以对投送到这一投递点的托运单详细信息进行查询,并对目的地是此投递点的无人机上挂载的货物进行查看。
3) 投递点货物接收确认
当无人机将货物送达投递点时,投递点及时将货物信息进行确认,并将信息上传到服务器,服务器再将此登记传送给无人机调度中心。然后无人机进行返航、充电或电池更换等操作。
4) 无人机的辅助控制
无人机一般按预定航路进行自主飞行,但针对货物配送错误或无人机在飞行过程出现的非关键部位故障,需要中心适时发出控制指令,控制使无人机返航或就近降落。
实时通信技术
(1) 数据交换格式
数据交换格式是计算机不同程序之间或者不同编程语言之间进行数据交换所定义的标准化的格式。JSON是一种轻量级的数据交换格式具有简单、灵活的特点。JSON由键值对构成,可以满足系统数据传输实时性和可靠性要求,因此选取JSON作为数据交互的方式。
(2) HTTP通信协议与请求框架
HTTP协议是一种简单协议,它主要是为了包装数据而制定的一个规范,具有易于开发、SDK与测试工具丰富等特点,另外HTTP所占用的80端口通常不会被防火墙阻挡,因此服务器提供给客户端的所有接口都是基于该协议。。在本系统中,数据传输层使用TCP/IP协议,,因为TCP/IP协议是面向连接的、可靠的数据传输协议,可以保障数据的可靠性,它使用一个网络地址和一个端口号来唯一的标识设备。
在本系统中使用Fast Android Networking LibraryH框架,该框架与JSON集成良好,并且在发起请求时一方面可以轻松的取消以降低系统开销,一方面还可以监控请求的详细数据分析,另外该框架还与RxJava集成性良好,适合向响应性编程过度。
(3) 实时通信功能
WebSocket是一个持久化的协议,它基于TCP的协议,普通的WebSocket连接使用80端口,基于安全传输协议(TLS)的连接使用443端口。相比于使用轮询实现的即时通讯,WebSocket协议只需要浏览器和服务器之间进行一次握手,服务器与客户端的连接是全双工、双向的,使用单套接字,服务器可以主动发送数据给客户端,客户端也可以随时向服务器发送数据,此外服务器与客户端之间数据传输的标头信息很小。基于WebSocket的优点,实时通信采用WebSocket实现。WebSocket客户端与服务器之间建立连接需要三个步骤:客户端发送握手请求、服务器响应握手请求、客户端处理服务器端响应。
结束语
无人机将在乡村物流领域发挥重要的作用,而无人机物流监控系统是保障系统安全稳定運行的基础,无人机物流监控系统设计包含中心服务器、客户端的构建及实时通信功能设计等,下一步将依照本文设计进行系统实现。
(参考文献:略。如有需要,请联系编辑部。)
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!