APP下载

基于NI myRIO的家庭陪伴机器人设计

2021-03-23陈智拓李红莉

实验室研究与探索 2021年2期
关键词:串口超声波陪伴

陈智拓,张 军,高 辉,纪 峰,王 标,李红莉

(合肥工业大学仪器科学与光电工程学院,合肥 230009)

0 引言

目前中国社会人口老龄化趋势日渐严重,而且空巢老人数量不断增加,“智慧养老”已成为社会普遍关注的热点问题[1-4]。这一概念的普遍认知基本围绕在“面对以居家型、社区型和机构型”为养老模式的老年人,利用物联网、互联网、智能设备等先进技术与设备,为其提供实时、快捷、高效、低成本的养老。其中机器人陪伴服务是一种有效的形式。

在家用服务机器人方面,众多发达国家处于领先地位,如老年陪护机器人“帕罗”、Roomba 系列吸尘器机器人等。国内服务类机器人中具有代表性的是科沃斯扫地机器人。但总体来看,市场上专一功能的机器人产品较多且价格较昂贵,尚缺乏物美价廉的“陪伴”和“关爱”型机器人产品。本文提出一种实用的家庭陪伴机器人设计方案。

1 系统方案

基于NI myRIO具有丰富的板载硬件I/O、无缝的软件开发体验以及完善的配套资源,有助于快速开发完整的嵌入式工程项目,非常适用于控制、机器人、机电一体化及嵌入式设计的教学和创新实践活动[5-6]。相较于一般单片机,NI myRIO具有更强的大量数据信息(音频视频信息)处理能力,可靠性高,联网方便。系统框图如图1 所示。

图1 系统框图

项目选择NI myRIO作为家庭机器人的核心控制器,利用人体红外传感模块和摄像监控模块寻找主人;利用超声波测距模块实现人机距离检测,且与电动机驱动模块配合实现自动避障、跟随;利用语音模块和存储卡作用实现语音交互功能;电源模块用于为各模块供电。发挥NI myRIO支持WiFi 通信的优势,通过移动终端实现对机器人运行状态的远程监控。

2 硬件设计

图2 硬件选型

机器人设计从小巧便携、经济实用的角度出发进行硬件选型。硬件选型如图2 所示。硬件选用人体红外感应模块HC-SR501 RD-624与蓝色妖姬USB摄像头配合寻找主人,采用超声波舵机云台模块(超声波模块HC-SR04 +舵机SG90)和电动机驱动模块L298N实现测距和避障,选用语音识别模块LD3320 识别主人的语音信息。借助iPad作为移动终端进行远程通信。NI myRIO 与各模块间的硬件接线关系如表1 所示。

表1 NI myRIO与各模块间的硬件接线

3 软件设计

根据设计目标进行软件设计,编制的系统程序流程如图3 所示。

机器人开机后首先初始化自检,自检正常则进入工作状态,定时判断人、机距离,实现自动避障、跟随,和主人保持友好距离,根据系统设置进行日常生活提醒,与主人进行基本的语音交互,当发现异常情况时,能主动通信报警,方便家人远程提供救助。

软件设计采用模块化思想[7],通过自动跟随、语音交互、数据通信3 大模块搭建系统程序。

3.1 自动跟随

家庭机器人最主要的特色就体现在“陪伴”上,机器人首先必须能够自动跟随主人并保持友好的距离[8]。设计中需要实现机器人对主人位置的锁定,判断距离,距离过远时主动跟随,且在跟随过程中能够实现自动避障。

图3 系统程序流程图

3.1.1 视频+红外模式锁定主人

对于机器人的摄像头所拍摄到的前方图像,设计利用NI Vision Assistant生成识别训练程序,结合HCSR501 人体红外感应模块来判别主人是否在视线内。

实现过程为:利用NI-Vison-Assistant 软件对视频图像进行预分析和处理,并导出预处理程序以进行2次编写。在视觉助手中,对采集到的一张背影图,利用Color Plane Extraction 函数选择HSL-Luminance Plane功能;再利用Pattern Matching函数将识别训练模板框设为双腿,并设置好相应参数;选择工具栏生成识别训练程序并导入myRIO 中。识别训练模板图片需要事先借助电脑映射网络驱动器存入myRIO 中,访问myRIO 中的图片保存路径,双击Vision Acquisition Express VI选择相机,完成模板匹配。Assistant 处理效果如图4 所示。

结合人体红外感应模块的输入状态,可综合判断前方是否有人,锁定主人判别程序如图5 所示。

图4 Assistant处理效果图

图5 锁定主人判别程序

3.1.2 超声波检测

机器人“看到”主人后,需要进一步判断与主人的距离,采用超声波传感器实现距离检测[9],程序如图6所示。

图6 超声波检测

图6(a)所示while 循环用于定时发出40 kHz 的超声波并检测回波信号,图6(b)所示while 循环用于检测超声波脉冲宽度。超声波模块检测到回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。程序利用计数器、选择函数和移位寄存器配合可测出脉冲宽度[10]。

超声波测得的距离可由s=340t/2(m)求得,其中s为测得距离(m);t 为传播时间(s)。由于实测中传播时间单位为μs,且考虑超声波传感器测距范围为4.5 m,选取人机距离单位用cm 表示。故通过单位换算后利用公式实现y=0.034x/2(cm),求得实际人机距离,其中y对应实际距离,x对应传播时间(μs)。

3.1.3 电动机驱动

当机器人定时检测发现人机距离大于50 cm 时,将驱动小车主动追随,当人机距离人小于30 cm 友好距离时,控制小车停住。但如果机器人视线内没有找到主人,且距离障碍物大于30 cm时,机器人将驱动小车前行,边走边继续寻找主人,在行进路程中结合舵机摇头功能达到避障的效果。

小车驱动程序如图7 所示,利用驱动输出控制express VI配合条件结构实现。

图7 小车驱动程序

舵机摇头控制需要一个20 ms左右的时基脉冲,该脉冲的高电平部分一般为0.5~2.5 ms范围内的角度控制脉冲部分。以180°伺服为例,对应的控制关系见表2。

表2 时基脉冲与角度控制关系

舵机摇头控制程序如图8 所示,实现功能为:当小车遇到距离小于20 cm 的障碍物时,舵机摇头测量5个方位距离障碍物的距离,构成一数组,然后根据数组索引最大值驱动小车向相应的方向转向。控制小车前进姿态,有效避开障碍物。

图8 舵机摇头控制

3.2 语音交互

家庭机器人的贴心“陪伴”还主要体现在人机语音交互方面。为了实现这一功能,需要创建语音库,通过对主人的语音识别[11-12]等,根据需求从语音库调取播放相应语音。

3.2.1 创建语音库

为了方便myRIO 调用音频文件,需要利用Webbased Distributed Authoring and Versioning(WebDAV)通信协议将音频文件传输到myRIO中,在myRIO中创建语音库。

借助电脑在myRIO 映射内部文件下创建保存语音库的基路径,步骤为:

步骤1将电脑与myRIO连接,找到myRIO在电脑中的映射网络驱动器(Z:);

步骤2在映射网络驱动器中输入myRIO设备IP(172.22.11.2);

步骤3利用WebDAV 可以看到myRIO 的内部文件(http//172.22.11.2/files);

步骤4在myRIO 映射内部文件下创建/C 基路径,以方便存放音频文件。

生成myRIO调用所需的音频数据文件并保存到语音库中。myRIO不具备解码MP3 文件的功能,在录取音频的时候需要将声音信息存储成数据文件(.dat)。利用LabVIEW 中的声音采集express vi 和路径创建函数将所录制声音频数据存入电脑files(172.22.11.2DavWWWRoot)(Z:)/C 基路径下,以方便myRIO映射调用,如图9 所示。在声音采集时,根据测试将采样率选取为30~40 kS/s,以减小声音在myRIO audioout端口输出时的失真。

图9 保存音频数据文件

3.2.2 声音文件的播放

基于myRIO无法直接播放所需调用的音频数据,要实现声音播放,必须对读取到的音频数据进行拆解再输出。设计利用WDT 索引将波形数据拆分为两组数据(双通道采集的声音),提取出振幅成分,借助myRIO工具包自带的模拟信号输出express VI 及for循环的自动索引功能向myRIO 的audioout 模拟输出端口提供左右声道数据,如图10 所示。

图10 声音文件的播放

3.2.3 语音交互

语音交互在硬件上体现为实现LD3320 与myRIO的串口通信[13],即当LD3320 识别到相应语音后,通过串口告知myRIO 识别结果,由myRIO 根据交互需求(如需要说“你好”),选择播放语音库中对应的音频文件。在软件上需要实现串口通信和语音播放的融合。

设计利用VISA 函数配置好波特率等通信参数,根据约定的通信协议,通过myRIO的UART端口实现串口通信。通过判断串口缓冲区是否接受到数据,如果接收到数据通过条件结构,再读取串口数据至读取缓冲区。串口通信和语音播放功能通过读取缓冲区的属性节点和条件结构联系起来[14-15]。需播放的音频文件路径通过字符串组合函数获得,为了避免重复播放,在语音播放完成后需将读取缓冲区清除。实现程序如图11 所示。

图11 语音交互

3.3 数据通信

为方便家人远程监控家中情况,以及实现机器人发现主人出现异常情况时主动通信求助,需要设计实现机器人控制核心myRIO 与PC 端的通信,以及myRIO与移动终端的通信。

3.3.1 myRIO与PC端的通信

根据设计需要,采用WiFi 连接实现机器人与PC上位机的无线通信。在NI MAX 中可对myRIO 进行通信配置,具体过程为:打开myRIO的网络适配器,默认连接选项为以太网适配器usb0 连接,将无线适配器WLAN的连接模式切换成连接至无线网络,找到PC机所在的路由器网络,输入WiFi 密码,即可实现myRIO与PC端的WiFi连接和数据传输,见图12。

图12 myRIO与PC实现WiFi连接

3.3.2 myRIO与移动终端的通信

为方便用户在远程终端上监控机器人的各项指标,需要建立myRIO和智能终端之间的通信。一般有基于LabVIEW的网络共享变量或是Web service 等实现方式。设计中选用了网络共享变量方式,因其简单易行,且可直接应用远程控制软件NI DATA DASHBOARD,有利于保障通信过程稳定可靠[16]。

完成myRIO与智能终端iPad 的通信绑定。进行myRIO上的通信部署,将需要监控的变量在LabVIEW程序中设置为网络共享变量,针对iPad 进行通信部署,即绑定对应的网络共享变量。

针对iPad 进行通信部署:在iPad 下载安装Data Dashboard for LabVIEW;连接iPad和myRIO,确保连接时iPad、myRIO 和PC 上位机处于同一路由器下;在DATA DASHBOARD中放置所需相关控件,点击控件下方的Connect >>Shared Variables,在New Server中输入myRIO的IP 地址;点击Connect 连接,在可供绑定的共享变量库中选择需要响应的网络共享变量,即完成绑定。网络共享变量绑定示例如图13 所示。

图13 绑定共享变量示例

3.3.3 操作界面

为方便用户通过iPad直观监控机器人运行状态,增加应用程序的可移植性,在完成了myRIO上系统程序编制的基础上,利用NI Data Dashboard 软件实现iPad对陪伴机器人的无线控制以及二者间的无线数据传输,在iPad 上设计了简洁友好的人机界面,如图14 所示。

图14 iPad端人机界面设计

用户通过iPad可以直观地看到系统运行状态,包括机器人自动跟随状态(检测距离、电动机转速等),当前语音交互情况(时间及语音信息),WiFi连接状态指示等等。

4 系统仿真测试

受疫情影响不能现场实验,项目组进行了系统仿真测试,包括自动跟随测试、语音测试和通信测试。

自动跟随测试结果如图15 所示,机器人检测到前方有人,但由于人机距离尚在友好范围内,故仍处于静候状态。

图15 自动跟随测试效果

语音交互实现主要在于语音识别并调取播放对应语音数据文件,图16 展示了机器人正常开关机时播放的语音效果。

图16 正常开关机时语音播放效果

当机器人处于工作状态时,在iPad上利用基于NI Data Dashboard 设计的人机界面,可实现对以myRIO为控制核心的陪伴机器人运行状态的监控,数据通信效果如图17 所示。

5 结语

本文提供了一种基于NI myRIO,集图像识别、运动控制、语音交互、无线通信以及数据传输为一体的家庭陪伴机器人设计方案。设计利用超声波舵机、人体红外感应、摄像头配合小车驱动等模块实现机器人的自动避障、跟随,采用LD3320模块的语音识别功能及串口通信实现语音交互,发挥机器人的“陪伴”作用;通过数据通信设计,方便家人利用iPad 远程监控机器人工作状态,使陪伴机器人更具有实用价值。

图17 iPad端人机界面数据通信效果

系统测试表明该设计方案具有可行性,具有深入研发的价值,后期将从系统集成的角度考虑产品化设计,发挥家庭陪伴机器人的实际应用价值。

猜你喜欢

串口超声波陪伴
陪伴
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
“疫”路陪伴 架起“侨”梁,心“联”你我
浅谈AB PLC串口跟RFID传感器的通讯应用
基于EM9000工控板高性能双串口通信模型设计与实现
陪伴
蝙蝠的超声波
基于Niosll高精度超声波流量计的研究
船舶电子设备串口数据的软件共享方法
蝙蝠的超声波