语音控制无人机初探

2019-01-04 17:29朱立鑫崔韫鑫
科学与财富 2019年16期
关键词:飞控格子开源

朱立鑫 崔韫鑫

摘要:随着无人机技术的迅猛发展,控制无人机的方式也在不断革新。研究在开源地面站上实现无人机语音指令控制技术,可使操作更加便捷。通过简洁、友好的语音界面就可与控制系统进行深入信息交互,完成语音指令所代表复杂控制内容。

由于本文仅为语音控制无人机初探,主要介绍通过特定的一种方式实现语音控制。本文以开源地面站Mission Planner作为基础进行软件开发,利用Windows自带的语音识别模块进行识别及其在无人机控制中的应用为研究内容,借此来简化无人机控制流程、提供一种简洁的语音指令控制界面,重点研究了语音识别技术在无人机控制上的应用。

关键词:语音识别;无人机;地面站

语音识别技术是一种人机交互技术。语言作为信息沟通的最主要方式,可为人机交互使用时提供其它方式不可替代的直接和便利。因此,将语音识别这种人机交互手段应用于无人机控制方面,可以为操作人员提供一种简便的语音指令控制界面,使操作更加便捷。

一、语音控制无人机研究现状

2001年,美国斯坦福大学研制出WITAS多模态对话系统用于控制无人机设备。随后,语音控制技术高速发展。目前,我国民用无人机领域内,语音控制无人机已成为下一发展阶段。

二、语音控制无人机总体设计

本人主要从三个方面介绍语音控制无人机,即语音识别技术、指令控制及地面站软件开发。

三、无人机语音识别技术

本文主要介绍通过使用C#和Speech SDK来进行语音识别。本文介绍的语音识别功能,其实就是利用Windows的语音引擎,它包含在Speech SDK开发包中。我们就是使用此开发包根据自己的需要开发程序。

Speech SDK包含语音识别SR引擎和语音合成SS引擎两种语音引擎。语音识别引擎用于识别语音命令,调用接口完成某个功能,实现语音控制。语音合成引擎用于将文字转换成语音输出。

语音识别引擎分两种模式识别:文本识别模式和命令识别模式。此两种模式的主要区别在于识别过程中使用的匹配字典不同。前者使用的是通用字典,特点是覆盖的词汇量大,因为词汇量大直接导致识别的精度降低,识别速度较慢。后者的字典需要开发者自己编写,这种方式由开发者定义词汇的数量,大大降低匹配过程中需要检索的词汇量,提高了识别速度,同时因为候选项极少,所以一般不会识别错误。

由于控制无人机飞行仅需要几个特定的指令,而且对识别率要求较高,所以选用命令识别模式进行语音识别开发。

四、无人机飞行协议及控制指令

(一)MAVLink简介

Mavlink协议是在串口通讯基础上的一种更高层的开源通讯协议,主要应用在微型飞行器(micro aerial vehicle)的通讯上。Mavlink是为小型飞行器和地面站通讯时常常用到的那些数据制定一种发送和接收的规则并加入了校验(checksum)功能。

如图所示,每个消息帧都是上述的结构,除了灰色外,其他的格子都代表了一个字节的数据。灰色格子里面的数据长度是不固定的。

红色的是起始标志位(STX)。这个标志位用于MAVLink消息帧接收端进行消息解码。

第二个格子代表的是PAYLOAD的字节长度(LEN),范围从0~255。

第三个格子代表的是本次消息帧的序号(SEQ),每次发完一个消息,这个字节的内容会加1,加到255后会从0重新开始。这个序号用于MAVLink消息帧接收端计算消息丢失比例。

第四个格子代表发送本条消息帧的设备的系统编号(SYS)。

第五个格子代表了发送本条消息帧的设备的单元编号(COMP)。

第六个格子代表了有效载荷中消息包的编号(MSG),MAVLink消息帧接收端根据这个编号来确定有效载荷里的消息包并根据编号选择对应的方式来处理有效载荷里的信息包。

最后两个字节是16位校验位,CKB是高八位,CKA是低八位。校验码由CRC16算法得到。

(二)地面站和飞控的通讯流程

无人机连接好MP地面站后,都会主动向地面站发送心跳包、飞行器姿态、系统状态等组成的数据流。地面站会在刚连接上飞控时发送命令,请求飞控传回所有参数,飞控根据自己的情况判断是否接受地面站的请求,并根据不同的命令执行相应的操作。

MP地面站比较成熟,在软件内已经预设了无人机飞行所需的各种指令。这些指令通过MAVLink协议传递给飞控,从而实现对无人机的控制。我们只需在地面站中找到这些指令,将语音识别结果与这些指令相对应就可以实现对无人机的语音控制。

五、地面站软件开发

Mission Planner是一个功能齐全的开源地面站应用程序。本人在此软件的基础上进行二次开发,加入语音识别模块,将识别结果与无人机飞行命令相对应,从而实现对无人机的语音控制。

实现语音控制用到的MP地面站内的飞行指令,主要是导航命令。导航命令是用于控制无人机的运动,包括起飞、航路点和移动至周围和着陆。

本人用到的导航命令:

MAV_CMD_NAV_TAKEOFF:从地面起飞(发射)。实现“起飞”指令。

MAV_CMD_NAV_RETURN_TO_LAUNCH:返回Home位置或就近的集结点。Home的位置是飞行器解锁位置。实现“返航”指令。

MAV_CMD_NAV_LAND:在当前或指定位置降落。实现“降落”指令。

MAV_CMD_NAV_GUIDED_ENABLE:启用引导控制模式切换到外部控制器。在GUIDED模式下,在预先建立的三维坐标系中,引导无人机在空间中实现“前进”、“后退”、“向左”、“向右”、“上升”、“下降”等指令。

六、总结

本文以开源地面站Mission Planner作为基础进行软件开发,利用Windows自带的语音识别模块进行识别及其在无人机控制中的应用为研究内容,借此简化无人机控制流程、提供一种简洁的语音指令控制界面,实现了语音控制无人机功能。

本文仅为语音控制无人机初探,主要介绍通过特定的一种方式实现语音控制,仅仅是提供一种语音控制的思路,旨在实现语音控制功能,了解语音控制的简洁性、方便性。由于MP地面站只能在Windows系統下运行,利用的也是Windows自带的语音识别模块,所以语音控制的平台比较受限。

猜你喜欢
飞控格子开源
五毛钱能买多少头牛
民用飞机飞控通电自检测安全性研究
无人机飞控软件架构设计初探
数格子
填出格子里的数
02 飞控技术与机场安保引关注
格子间
飞控系统故障告警实时监控软件的设计与实现
格子龙
大家说:开源、人工智能及创新