SCI论文(www.lunwensci.com):
摘要:近年来,可视化控制技术备受关注,如何在工业生产或工程运作中实现灵活的可视化、模块化控制,逐渐成为研究者关注的热点问题。基于Blockly与树莓派芯片设计的多种模态联合控制的轮式机器人,将一系列具有基础逻辑的工程操作封装为具有交互能力与组合能力的控制单元,使得使用者可通过拼接一系列逻辑模块对常规的智能小车实现可视化控制,同时,也为可视化控制技术广泛地应用于工业生产与工程运作提供了一个清晰完备的工程模型。
关键词:Blockly;可视化控制;多模态控制;树莓派轮式机器人
Multi-modal Control Smart Car Based on Blockly and Raspberry PI
YANG Jie,SONG Junwei,WU Siwei,WEI Suzhou,LAI Xiaochen
(School of Software Technology,Dalian University of Technology,Dalian Liaoning 116620)
【Abstract】:In recent years,visual control technology has attracted much attention.How to encapsulate a series of engineering operations with basic logic into control units with interactive ability and combination ability,and then realizeflexible visual and modular control in industrial production or engineering operation has gradually become a hot issue which researchers pay attention to.The multi-modal joint control wheeled robot based on Blockly and Raspberry PI chips enables users to realize visual control of conventional smart cars by splicing a series of logic modules.At the same time,it also provides a clear and complete engineering model for visual control technology widely used in industrial production and engineering operation.
【Key words】:Blockly;visual control;multi-modal control;RasPi wheeled robot
0引言
近年来,可视化控制的概念与技术逐渐融入医疗、教育、农业以及各类工业生产与工程运作中,利用各类可视化工具将工程流程中的一系列控制步骤封装为可视化、可组合、可交互的模块成为了国内外关注的热点[1]。在国外,Google于2012年6月发布了可将具有独立功能的逻辑单元封装为可拼接的模块的工具库—Blockly语言[2]。在我国,可视化控制方法理论正在逐渐丰富,然而在实际应用中存在着对于控制操作的封装粒度不够细致,交互性与组合性较弱的情况。
本文基于可视化开发工具—Blockly语言以及功能完备性能优良的树莓派芯片设计开发了可视化控制的智能轮式机器人,将位移动作等不可拆分的基本操作单元封装为可视化的模块,同时在轮式机器人中搭载了一系列常见功能,使用者可通过将多个块拼接、组合,实现对于智能小车的操纵与控制,旨在为粒度细、组合性强、交互性高的可视化技术应用于科研工作中常见的轮式机器人中,并为该技术应用于工业生产与工程运作提供一个清晰完备的工程模型。
本文第一节介绍研究现状,第二节对系统设计与算法进行阐述,第三节为具体演示。
1研究现状
智能小车是一个具有多种功能的综合性系统,该系统运用计算机、传感、通信、导航、人工智能及自动控制等技术感知周围环境并与操控者进行实时信息交互。智能小车在近几年不断应用于探测、国防以及各类工业生产与工程运作领域中。
我国轮式机器人的操控技术趋于多元化,使用图形模块进行可视化控制的概念热度逐渐提高。国外从操控技术的多样性等角度上不断完善对智能化机器人控制系统的研究[3]。Google于2012年6月发布了可视化工具语言Blockly[4],为可视化控制技术提供了高效便捷的工具。
2系统设计
2.1系统架构
系统以Google的Blockly与Android为核心技术,以安卓应用与智能车为实施载体,以多模态信号传输与树莓派控制为主要方法,利用深度学习进行自动避障与物体追踪,完成树莓派智能小车搭载、前进转弯等功能封装、多种控制信号的转换、智能功能的准确实现。
系统分为智能车部分与安卓应用部分,智能车由树莓派芯片、蓝牙装置、设想装置等硬件以及识别物体、自动避障、物体追踪等软件组成,安卓应用由Blockly模态、视觉信号模态、语音信号模态组成。
整体的系统架构如图1所示。
2.2智能车
2.2.1物理结构
该智能车参考普遍轮式机器人外形,采用四轮驱动,每个轮胎配备一个电动马达,搭载树莓派和L298N驱动板,并安装红外光传感器、超声波传感器、摄像头等设备。
2.2.2逻辑结构
连接并固定好上述硬件设备的基础上,进行一定的逻辑结构设计,选择树莓派上指定的GPIO引脚与L298N驱动板的输入端进行连接,将L298N驱动板的输出端与四个电动马达进行连接,将树莓派的指定GPIO引脚与红外光传感器、超声波传感器进行连接,通过树莓派引脚接收来自红外光传感器、超声波传感器高低电平。
2.3多模态控制模块
2.3.1Blockly模态控制模块
安卓应用中提供了大量的Blockly块,用户可通过拼接这些简单的代码块实现对智能车的操作。安卓应用将Blockly块转化成对应蓝牙信号,智能车接收到蓝牙信号后做出相应的动作控制该模式可以让用户迅速了解智能车的控制、智能车的大致功能以及其中代码逻辑。
具体算法如下:
(1)创建HTML文件,并引入Blockly官网提供的开源工具包Blockly_compressed.js,并对其进行调用。
(2)分析逻辑功能的内部算法与外部接口,并编写图形模块的外观结构代码,下面以“前进/后退”块为例:
前进/后退的内部逻辑为:当该图形模块存在时,需标记并存储该步骤为前进信号/后退信号以及一档速度信号/二档速度信号;外部接口为:能向外传输该模块所存储的信号的通道。
(3)根据(2)中所分析的逻辑功能的内部算法与外部接口,并编写图形模块逻辑实现代码。
(4)在HTML文件中编写可存放图形模块的工具仓,通过Blockly.inject('BlocklyDiv',{toolbox:document.getElementById('toolbox')})引入工具仓。
(5)将(2)与(3)中的代码嵌入引入(1)中所创建的HTML文件中,并在(4)中所创建的工具仓中引用(2)、(3)共同构建的图形模块。
(6)将图形模块信号转化为蓝牙信号。
2.3.2语音模态控制模块
安卓设备提供了语音控制功能。该模块实现了通过语音命令控制智能车移动。模块的具体实现由两部分构成:Android端识别语音,通过蓝牙信号发送给树莓派端;树莓派端根据其内容操控小车做出相应的动作。
具体算法如下:
(1)搭载谷歌预训练的speech_commands语音识别模型。
(2)通过使用该预训练模型,实现“yes”“left”“go”等语音指令的识别。识别成功后我们将其转化成字符串编码。
(3)将语音信号转化为蓝牙信号。
2.3.3按键模态控制模块
此模态提供了一个轮形组件方向盘进行控制以及快速与树莓派蓝牙连接的方式。使用者在与树莓派之间建立蓝牙连接后,可以通过按下手机应用中的按键,从而发送蓝牙信号给树莓派接收,树莓派控制小车进行前进、后退、左转、右转、停止等运动。
3系统实现
3.1智能车
3.1.1物理结构
按照预先的架构设计,将树莓派、L298N驱动板、红外光传感器、超声波传感器安装并固定在亚克力板上,并按照设定的功能,将树莓派的GPIO引脚与对应的物理设备用导线进行连接。
3.1.2逻辑结构
(1)基本功能实现的逻辑:使用蓝牙来实时的在用户和树莓派之间传输信号,这样用户的有效输入就可以通过蓝牙给树莓派相应的信号,树莓派根据输入,输出高低电平,实现智能车的前进、倒退和转弯的功能。
(2)智能车识别:智能车识别模块首先通过连接在树莓派上的摄像头实时拍摄物品,通过蓝牙信号将图像帧传输到Android手机上。Android手机搭载了Quantized_ EfficientNet、Float_EfficientNet等深度学习模型。用户可根据需要的识别精度和识别速度选择相对应的模型。
(3)物体追踪:此模块实现了小车对移动物体的追踪。利用CSRT算法和KCF算法实现对移动物体的追踪定位。该模块会返回物体位置的二维坐标,并发送给电机控制模块,控制模块根据坐标和控制算法实现小车的转向和前进。对于每帧画面,算法返回矩形框的坐标。为了减小误差,我们在小车移动的过程中,对位置信息进行了移动平均。如图2所示。
(4)自动避障:前后两侧的超声波测距仪可以测的前后是否有障碍物,并据此判断是否可以继续移动。两侧的红外线测距仪判断两边是否存在障碍物,并测得障碍物的距离。树莓派通过测得的数据判断是否需要修正小车的移动方向。
3.2多模态控制模块
3.2.1Blockly模态
该模态控制界面中提供了以下图形模块:
(1)操控小车:可存放具体的操作模块,并拥有控制小车启动的开关。
(2)前进/后退:提供两类选择,分别是方向(向前/向后)、速度(一档/二档)。
(3)旋转:提供两类选择,分别是方向(向左转/向右转)、角度(45°/90°)。
(4)重复循环块:可在块内存放操作图形模块,并将存放的模块重复指定次数。
(5)正方轨迹、避障位移、直行转弯:将一系列基本操作封装在一个图形模块中,按照对应轨迹行进。
图形模块之间可以任意组合,形成小车不同的行进轨迹,如若想操控小车以一档速度向前1个单位,向左转向45°,向前通过躲避障碍物并前进一个单位,最后以二档速度向前2个单位。那么对应的图形模块组合如图3所示。
通过点击右上方的红色运行按钮,安卓应用端将图形模块信号转化为蓝牙信号传输给智能小车使其进行上述指定的移动操作。
3.2.2按键模态
按键模态界面中提供了以下按键:
(1)向前、向后:点击一次会驱动小车以默认速度(一档速度)向前、向后行进一个单位。
(2)向左、向右:点击一次会驱动小车向左、向右旋转90°。
3.2.3语音模态
语音模态界面中提供了如下控制方式:
(1)语音“Yes”:安卓端会进行对小车的蓝牙连接操作。
(2)语音“left”“right”:向左、右旋转90°。
(3)语音“go”“stop”:驱动小车前进、停止。
4结语
基于Blockly和树莓派的多模态控制智能车,以可视化控制为研究重点,以Blockly与Android为核心技术,以安卓应用与智能车为实施载体,以多模态信号传输与树莓派控制为主要方法,利用深度学习进行自动避障与物体追踪,研究可视化控制的应用潜力与其他模态信号的有效组合,完成树莓派智能小车搭载、前进转弯等功能封装、多种控制信号的转换、智能功能的准确实现。同时,也为可视化控制技术广泛地应用于工业生产与工程运作提供了一个清晰完备的工程模型。
参考文献
[1]李俊德,彭程,姚琅权,等.基于Blockly的儿童编程思维训练App设计[J].现代计算机(专业版),2018(32):87-90+96.
[2]杨婷.图形化硬件描述语言的研究与实现[D].广州:华南理工大学,2020.
[3]PASTERNAK E,FENICHEL R,MARSHALL A N.Tips for Creating a Block Language with Blockly[C]//2017 IEEE Blocks and Beyond Workshop(B&B).IEEE,2017:21-24.
[4]FRASER N.Ten Things We've Learned from Blockly[C]//2015 IEEE Blocks and Beyond Workshop(Blocks and Beyond).IEEE,2015:49-50.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/48613.html