基于阿里云和树莓派的无人勘探救援车设计与实现

2022-01-19 11:48廖海龙冯淑湘杨茜媛
物联网技术 2022年1期
关键词:客户端语音远程

廖海龙,马 涛,冯淑湘,杨茜媛

(北京信息科技大学 信息与通信工程学院,北京 100101)

0 引 言

地质灾害或不可预知的人为灾害时有发生,往往因为地形复杂无法将被困人员及时救出,而救援人员在搜救过程中也会因为不能准确了解灾害状况而发生危险,进而导致大量的人员伤亡。因此需要一款小型救援设备率先勘测灾害现场,救援人员通过实时观测了解现场状况来降低行动风险,为实现在最短时间内安全救出伤员提供必要的技术手段。

另外,有很多危险场景是救援人员无法进入的,譬如矿山、燃气、电力、化工等领域的抢险过程中,就需要一种救援设备代替救援人员进入现场实施救援,救援机器人正是一种能够在很大程度上保证人员安全的重要救援形式。

本项目主要针对野外恶劣环境下的搜救及勘探作业而设计。无人勘探救援车在不同环境中可做出不同的反应,除利用履带行走外,还兼具超声波、摄像头等传感器环境检测和机械臂清障的功能。多样的功能增加了其对环境的适应能力,为科学研究提供稳定可靠性。

1 系统总体设计与实现

本系统主要由三部分组成,分别为硬件设备端、物联网平台和客户端。系统结构如图1所示。

图1 无人勘探救援车系统结构

1.1 硬件设备端

本系统的硬件端由树莓派3B+和Arduino MEGA2560作为核心处理器,通过LTE Dongle接入因特网,同时安装机械臂、超声波传感器、电机、水弹波箱、麦克风、摄像头、GPS等设备,实时获取附近环境信息;通过MQTT协议将信息上报云端,同时接收并执行物联网平台下发的命令。

1.2 物联网平台

物联网(The Internet of Things, 简称IoT)可实现用户、物理对象之间不受时空限制地互联互通。通过互联网进行信息交换和通信,可以实现物与物、物与人的泛在连接,从而能够智能化感知、识别和管理物体和连接过程。目前,IoT在智能家居、智能交通、公共安全、智能停车场等领域得到广泛应用。

阿里云物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,服务端通过调用云端API将指令下发至硬件设备端,实现远程控制。同时提供MQTT、CoAP、HTTP/S等多种协议的设备端SDK,既满足长连接的实时性需求,也满足短连接的低功耗需求。物联网平台也提供了功能丰富的设备管理服务,包括生命周期、设备分组、设备影子、物模型、数据解析、数据存储、在线调试、OTA升级、远程配置、实时监控等。

1.3 客户端

本系统采用PC作为客户端,通过MQTT协议的发布/订阅(publish/subscribe)为连接远程设备提供实时可靠的消息服务。利用阿里云IoT Studio的前端界面,可将传感器采集到的数据统一由设备端经过物联网平台的规则引擎发送到PC端,实现数据实时可视化显示。通过IoT Studio实现实时指令发送,从而控制机械臂、可控射击等设备功能。通过浏览器输出插件结合视觉识别算法,在PC端还可实现远程视频通信、目标检测、障碍物识别的图像观测。

2 各功能模块的设计与实现

2.1 远程遥控的设计与实现

为实现更稳定、更精确的远程动作控制,采用飞行器模型的无线电遥控装置,其主要利用了2.4 GHz短距离无线传输技术。2.4 GHz ISM(Industry Science Medicine)是全世界公开通用的无线频段,在该频段下工作具有较强的抗干扰能力以及较远的控制距离,一般可达1 km,实现了在家用和商用领域的广泛运用。

整个控制系统由Arduino核心控制板、发射机、接收机、电机驱动板、电源等部分构成。控制过程由发射机发送动作指令,接收机将接收到的指令传给Arduino核心控制板,核心控制器由内部程序触发电机驱动板,从而控制电机执行相关动作,通过不断调试占空比实现电机的灵敏控制。

发射机选用的四通道比例遥控装置如图2所示。发射机控制面板上包括两根分别控制一、二通道和三、四通道动作指令的粗调操纵杆以及四个通道的微调装置,用于控制探测车的行进方向。在发射机底部,设置有4个舵机换向开关,分别用于变换舵机摇臂的偏转方向。

图2 四通道比例遥控设备发射机

接收机用来接收从发射机传来的指令信号;经处理后,控制电机驱动板做出与发射机指令相对应的动作。电池组为接收机和电机驱动板提供工作电源。

为了更好地匹配接收机信号接收,有效精准地带动大功率的强磁电机,选取双通道直流有刷电机驱动器实现。双通道直流有刷电机驱动器专为驱动低压直流电机设计,每通道具有持续输出12 A电流的能力,可驱动最高290 W电功率的直流电机。驱动器内器件时序高度优化,允许PWM输入最小脉宽低至2 μs,充分保证PWM的动态调节范围,提高对电机的控制品质。板载保护电路,降低驱动器在异常工作条件下受损的可能,保护状态由指示灯实时输出。全电气隔离输入增强了主控MCU电路的安全性,更可显著提高系统电磁兼容性能。

2.2 阿里云物联网平台的开发与实现

物联网平台具有安全可靠的设备连接通信能力,支持设备数据采集上云、规则引擎流转数据、云端数据下发设备端等功能,设备管理方便快捷,支持物模型定义、数据结构化存储以及远程实现调试、监控、运维等工作。图3为物联网平台设备运维大盘。

图3 物联网平台设备运维大盘

本项目基于树莓派Linux平台,采用阿里云Python SDK进行开发。通过在云端创建产品与设备,获取ProductKey、DeviceName和DeviceSecret等设备证书信息。在设备端SDK中导入设备信息,为传感器定义“物模型”,使设备端可以连接物联网平台。PC客户端选择订阅消息类型,接收设备上下线状态、过程数据等设备相关消息;通过调用物联网平台云端API,向设备下发指令,利用物联网平台的数据流转功能实现各个设备的数据消息转发,便于在其他阿里云产品中的存储或处理。

阿里云平台的IoT Studio提供了移动可视化开发、Web可视化开发、服务开发和设备开发等一系列便捷的物联网开发工具。通过可视化拖拽的方式,将测距、定位等信息以折线图的方式展示,折线图如图4所示。当折线上升时,代表车辆在逐渐远离障碍物,反之则代表车辆在逐渐靠近障碍物;当折线变化密集时,代表车辆所处环境障碍物数目多,反之则代表车辆所处环境障碍物数目少,较为平坦宽广。

图4 超声波测距折线图

2.3 远程视频的设计与实现

本项目的远程视频设计采用的是Linux系统下基于IP地址的视频流服务器mjpeg-streame,对MJPEG(Motion Joint Photographic Experts Group)类视频编码格式的处理。通过Linux端摄像头采集图片,摄像头驱动将数据流存储到JPEG图库,最终通过浏览器输出插件实现以HTTP视频数据服务流显示输出,从而做到远程视频传输的效果。

在测试阶段,当传输距离过小时,采用ngrok反向代理的解决方法。通过在公共的端点和本地运行的 Web 服务器之间建立一个安全通道,ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。当终端运行mjpeg-streamer后,通过ngrok提供的授权码运行命令获取随机分配的本地Web网站域名,即可实现本地Web端的远程视频通信。

测试后期,在室内、操场、公园等场景下,传输距离不受限制,可以正常地实现远程视频通信,效果如图5所示。

图5 远程视频效果

2.4 语音对话的设计与实现

随着人工智能技术的发展,语音识别已经成为了热门应用之一。语音识别在一些特定的领域和特定的情景下,有着不可替代的作用。人们生产、生活的需要,特别是物联网的发展,推动了嵌入式和语音识别的结合。

语音传输有以下两种形式:

(1)设备端到客户端的语音传输

在设备端由于树莓派本身没有声卡无法实现录音功能,因此增加免驱动的USB声卡,使树莓派通过PyAudio实现录音及声音保存功能。通过调用百度AI平台提供的语音识别API接口将语音转化为文字,物联网平台将信息发送至客户端,从而实现设备端到客户端的语音传输。

(2)客户端到设备端的语音传输

客户端通过麦克风录音,调用API接口将语音转化为文字,通过物联网平台将信息发送给设备端。设备端调用API接口将文字转为语音并播放声音,达到双向对话的效果。

2.5 超声波检测障碍物的设计与实现

超声波测试安全距离是一种常用的避障方式,其基本传输原理如下:

其中:表示传输速度;Δ表示超声波回馈结束所用时间的差值;表示车辆与周围物体之间的距离。在获得这类数值之后,就能够通过公式计算出安全距离。

本项目选用HC-SR04超声波传感器进行周围障碍物检测。将超声波传感器安装在可旋转云台上,实现180°范围检测。当与障碍物距离低于安全距离时蜂鸣器就会报警。为了更直观地观察数据,使用Processing软件搭建的界面作为上位机,Processing是Java语言的延伸,并支持许多现有的Java语言架构,使用户直接专注于图形和交互的程序。比如建立类的路径和编译参数,或者建立串口这样辅助性的图形环境,非常适合无太多编程经验的设计师和艺术家使用。将检测距离及传感器旋转角度通过物联网平台发送到客户端,客户端再通过Socket将参数信息发送到Processing上,实现距离和角度的实时动态显示。当检测到障碍物时扫描图会变红,反之则为绿色,形成如图6所示的动态扫描图。

图6 动态扫描图

2.6 可控射击及GPS定位的设计与实现

可控射击:考虑到特殊环境下抢险作业可能面临的小空间动作局限,设计了水弹枪可控射击(模拟射击)功能。通过Arduino及电机驱动板控制置于可旋转云台上的水弹枪,树莓派与Arduino通过串口通信实现设备端联网入云,客户端通过IoT Studio进行射击控制,从而达到远程控制水弹枪射击的效果。

GPS:设备端利用树莓派开启LTE Dongle自带的GPS,当启动定位时,GPS模块开始接收信号。首先打开串口读取GPS数据并判断是否收到$GPGGA(GPS数据输出格式语句),如果未收到,则继续读取GPS数据;如果收到,则读取GGA字符串并截取位置信息。在串口中获取到经纬度信息,并传送至物联网平台,客户端借助Google地图中定位经纬度确认车辆位置。

2.7 目标检测

目标检测是深度学习的一个重要研究方向,可在一张图像中检测出某个既定目标,例如行人、车辆等。现阶段的目标检测方法大体分为两个系列:two-stage和one-stage。其中two-stage系列的代表方法有R-CNN、Fast R-CNN、Faster R-CNN;one-stage系列的代表方法有YOLO、YOLOv2、YOLOv3。

本项目采用百度Easy DL平台的目标检测模型v1版本,该模型基于YOLOv3算法。YOLO系列的主要思路是将图片划分为×的网络(一般为7×7),根据分类方法将图片输入CNN得到一个×分类数量的张量,对这个张量进行非极大值抑制。YOLOv3算法是目前速度和精度最均衡的目标检测网络,其是在YOLO和YOLOv2的基础上通过吸收Faster R-CNN和RetinaNet的先进之处,引入了FPN架构(Feature Pyramid Networks)来实现多尺度的检测。对比YOLOv2 Darknet-19分类网络的30层基础网络模型,YOLOv3的 Darknet-53分类网络已提升至106层基础网络,从而加强了YOLO算法对小目标检测的精确度。图7为在EasyDL平台使用YOLOv3算法训练模型后,上传人物图片得到的在线标注训练结果,其中多个人脸被方框圈出,显示“person”的结论。

图7 训练测试结果

2.8 机械臂控制

随着现代科技的发展,机械臂在现实生活中充当着重要角色,它主要应用在工业制造、航天制造、医疗器械等多个领域,为生产提供了不可忽略的动力。

机械臂作为工业领域最常用的机器之一,其工作状态分为点到点和沿特定轨迹两种工作方式,这两种工作模式都要求关节及连杆的过渡要平滑,从而保证机械臂的平稳性。

本项目中使用的是四自由度机械臂(如图8所示)。基于经典的D-H参数法建立了正向及逆向运动学模型,将旋转和平移表示成增广矩阵的形式,利用Python建立虚拟机械臂模型,调用math、numpy等库实现机械臂参数计算仿真。

图8 四自由度机械臂

实现关节位姿变换的增广矩阵如式(2)所示,其中c代表 cos(++),s代表 sin(++),l代表对应的连杆长度,θ代表对应关节的旋转角度。

将机械臂连接至树莓派,基于Python语言设计机械臂移动、抓取动作程序,通过物联网平台实现远程控制机械臂移动的效果。

3 成果展示

本文所设计的无人勘探救援车成果如图9所示,其除利用履带行走外,还兼具超声波、摄像头等传感器环境检测和机械臂清障的功能。

图9 无人勘探救援车

4 结 语

本项目基于阿里云物联网平台实现了无人勘探救援车的设计,主要针对野外恶劣环境下搜救和勘探的辅助工作,无人勘探救援车采用履带式行进方式;利用阿里云物联网平台实时观测环境传感器获取的超声波测距、GPS定位等监测数据,根据不同应用场景可实现距离报警提示、机械臂移动障碍物、远程视频、远程语音对话、可控射击等功能。经过一系列调试发现,远程视频过程目前存在2~3 s的延迟,语音对话受环境噪声影响存在识别误差,因此在车辆相应的实现方法上仍有继续提升的空间。

当前人工智能发展迅速,国内外智能救援机器人发展火热,可以极大提高勘探、搜救人员的安全。本项目虽然在技术方面不尽成熟和完善,但综合实践结果来看,项目的实施方法均可具体实现;在小型机器人应用方面,具有一定的研究价值和社会意义。

猜你喜欢
客户端语音远程
让人胆寒的“远程杀手”:弹道导弹
远程工作狂综合征
魔力语音
基于MATLAB的语音信号处理
基于MQ3与MP3的价廉物美的酒驾语音提醒器
对方正在输入……
远程诈骗
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现