一种基于STM32人体动作识别的智能机器人系统
2020-10-20
来源:爱问旅游网
CHINA SCIENCE AND TECHNOLOGY INFORMATION Jan.2018·中国科技信息2018年第2期61万~200万◎DOI:10.3969/j.issn.1001- 8972.2018.02.026可实现度可替代度行业曲线linkappraisementindustry金 宁 郑 新 罗 军 李文瀚 薛靖宜 叶 青北方工业大学电子信息工程学院影响力真实度金宁,男,本科。point行业关联度(本论文发表由随着人们对科技的研究不断加深,人类对其生活方式的不断探索,智能化产品已经是随处可见,人机2017年北方工业大交互更是当前的一个重要研究领域。本文对人机交互系统中基于STM32人体动作识别的智能机器人进行学学生科技活动项了系统设计,实现了一套可用于人机互动的智能机器人系统。该系统可通过摄像头获取人体动作并识别,目、北京市大学生科然后调用蓝牙端口进行通讯,将指令发送到由STM32芯片构成的控制器上,控制机器人做出相应的动作,学研究与创业行动计实现人机交互的功能。实际试验中,机器人可模仿人体手部指令进行相应动作,如抬手、左转、右转、点头、划项目资助)捶胸等,也可自行实现避障和声控的功能,可广泛应用于高危工作,危险环境探索,以及家政服务等方面。一种基于STM32人体动作识别的智能机器人系统随着科技的不断进步,智能人机交互也正一步一步在人人整体的动作。机器人头部舵机上方装有两个红外距离传感们的日常生活中扮演举足轻重的角色,智能人机交互将是现器以及声音传感器,可分别对距离和声音进行数据采集,采在及未来社会的主题,智能性和实用性也是人机交互系统的集到的的信号为数字信号,通过传输线送到LUBY控制器的基本要求,也是未来发展的方向。此次对基于STM32人体STM32芯片处理,实现自动避障和声控开启的功能。本机动作识别的智能机器人进行系统设计,是对人机交互进行了器人具有很大程度的动作自由度和灵活度,可执行如转弯、一次简单的探索,最终实现的系统,可通过对人体动作的捕抬手、抬头、捶胸等动作。本机器人的关节部分由舵机组成,获识别并与机器人进行通讯,以实现机器人对特定手势指令通过设计与实验,最终版拥有较大的灵活性。的功能实现,以实现人机交互。系统整体结构STM32芯片LUBY控制器控制器简介系统整体共分为两大部分,PC端和机器人,总体流程本机器人主要使用基于STM32芯片的LUBY控制器,框图如下。其配置有16路AD接口用于传感器的数据输入。系统内置PC端部分了蓝牙模块,方便于进行通信连接。STM32作为主控芯PC端通过摄像头获取图像信息,处理识别、转为指令片,可以控制各个舵机的舵机模式和电机模式的切换,还可之后通过蓝牙发送出去,而机器人通过蓝牙接收信指令,并以按照需求控制舵机转动方向、转动速度以及转动角度。如通过控制器翻译后,按照程序设计控制舵机的运转,从而使图所示,右边接口是用于连接舵机和供电,传感器采集数据机器人动起来。输入使用A0到A15,Q0到Q5为数字量输出口;USB-本次系统设计是在Visual Studio 2017配置MINI为U盘下载接口,用于下载程序。Opencv3.0的环境下编译实现的,可以利用Opencv3.0自带函数打开电脑摄像头获取图像数据,也可以通过直接读取事先录制好的视频来获取图像信息。然后将图像转灰度图,进行形态学滤波,再进行背景差分并转换成二值图像,这就完成了图像处理部分。图像识别部分则是利用背景差分的结果,根据边界坐标值判断手臂位置实现信息的提取,并将信息转换成相应的指令,通过蓝牙发送出去。电脑蓝牙有对应的调用串口,通过定义端口打开等函数以及参数配置,即可使用函数来实现蓝牙调用。机器人部分本机器人使用“创意之星”散件及配套的竞赛版控制器自行进行搭建,机器人采用STM32103VCT6作为控制器,机器人利用 ATK - HC05 蓝牙串口和电脑进行配对通信,之后由 STM32 控制各个舵机活动共同协调以实现机器图1 总体设计流程框图-67-2018-02 最终.indd 672018/1/11 13:25:18◎61万~200万中国科技信息2018年第2期·CHINA SCIENCE AND TECHNOLOGY INFORMATION Jan.2018图2 LUBY控制器接口图(a)头部正面图(b)头部侧视图图5 头部图图3 舵机实物图图4 搭建完好的机器人实物图LUBY的编程使用利用图形化编程软件对LUBY控制器进行编程,同时使用Keil4来对细节,以及更全面的功能进行编程调试。两个是红外测距传感器,一个声控传感器,一个蓝牙串口接收到的数据,共采集到四个变量在程序中使用,红外传感器接收(a)躯干背面图(b)躯干正面图的数据主要用来让小车实现避障的功能;声控传感器是用来图6 躯干图接收声音信号,启动机器人开始活动;而蓝牙接收到的数据通过程序处理传给机器人。舵机本机器人使用的CDS5516舵机集电机、总线式通讯接口、伺服驱动为一体,响应速度快、到位准确无抖动。每个舵机可以根据需要设定各自的ID,可以控制多个舵机一起协调运动,也可以控制单个独立运动,用户可对其参数进行设置,进而实现控制功能。CDS5516可以设置为电机模式或舵机模(a)手臂关节图(b)手臂组装图式。在电机模式下,CDS5516可以作为速度可调的电机使用;图7 手臂图在舵机模式下,CDS5516 拥有0到300°的转动角度范围,速度可调,可以通过控制指令使其在电机和舵机模式中工作。图6所示为躯干部分,具体结构主要是两个六边形的底此外,单独的舵机只是基础单元,实现模拟人的动作还板和一个长方体模块搭建而成,考虑到机器人躯干的动作如是需要多个舵机的统一配合协调运作。通过舵机协调配合组旋转之类的,将一个舵机固定在了上层六边形板上,并将舵装在一起后进行调试,在根据实现动作的需要进行指令编程,机和长方体模块相连,所以长方体模块就可以看成是躯干,然后进行系统的整体调试,对每个舵机的转动角度、转动速可以随着舵机左右旋转,随后的部件手臂、腿将在长方体躯度等需要根据实际动作试验并记录数据,再在程序中修改成干上进行组装。合适的数据。在对舵机进行组装之后要对其ID进行编号,图7展示的为手部部分,原来的设计方案中,手部的动以便于编程时根据各个舵机不同位置,实现不同功能来调用。作是比较复杂、高级的,但由于整体结构的限制,不能用多机器人整体设计个舵机来组装手臂,一个原因是多个舵机使得手臂重量超重,图4为搭建完好的机器人。如图所示, 电源将无法驱动,另一个原因则是多个舵机的设计复杂、繁本机器人是自行设计以及拼装,以多个舵机作为肢体关节,重,不利于后期的编译实现。因此,简化了初期方案,使用并组装上机械元件,整个身体共分为四个部分,分别为头部、两个舵机来组装手臂,一个作为肩关节,另一个作为肘关节,手臂、躯干和腿部。电源以及控制器分别固定在底图平台上,再通过散件固定,就完成了手臂的组装。新的组装方案使得各舵机之间通过导线和控制器相连其中头部部分。手臂较为轻便且能上下运动,小臂能左右运动,足够于设计如图5所示,头部主要由一个舵机构成并处于舵机模式,实现抬手、鼓掌、挥手等动作。通过测试以及设定,可以使机器人头部在合理的角度范围内上腿部部分的设计,腿部的设计方案初期也是相当复杂,下转动,实现如抬头、低头的动作。图中头部的两个眼睛就是初期的目标是设计成类似人类的两条腿,但由于组装之后的不两个红外距离传感器,用于距离数字数据的采集。通过编程设稳定性,后期将其改成了车轮状。设计中采用了八个舵机和四计可以使机器人实现自动避障的功能。两个红外距离传感器中个车轮,两个舵机分别与一个车轮组装,之后再将组装好的四间是声控传感器,根据程序设计,实现了声控开关机器人的功个部分固定在底盘中,四个轮子着力点分布均匀、稳定性高,能。也可以根据设计要求更换或添加其他的传感器,如超声波便于控制重心,增加系统的稳定性。八个舵机的作用,下面讲传感器、灰度传感器,碰撞传感器等,用来实现不同的功能。具体介绍。如图7所示,八个舵机按照组装形状可分为两层,-68-2018-02 最终.indd 682018/1/11 13:25:19CHINA SCIENCE AND TECHNOLOGY INFORMATION Jan.2018·中国科技信息2018年第2期61万~200万◎图11 串口连接通讯(a)试验初期腿部设计(b)最终腿部设计图8 腿部设计图(a)图9 定义串口函数(b)(c)图10 端口属性(d)分别为上层四个舵机和下层四个舵机,上层四个舵机可水平方图12 左为机器人执行动作图,右为识别效果向360度旋转,控制整条腿的方向,下层四个舵机可竖直方向360度旋转,控制机器人的前进和后退,组合起来说可以系统通过对人体动作的识别,判断了手部位置,然后发实现前进、后退、左转、右转、原地旋转等各种动作。实验证明,送指令,控制机器人执行相应的动作。红外传感器也可以准确后期的方案有着非常大的灵活性,可以根据需求编程设计不同根据程序中设置好的最小距离进行避障,其具体方式是在距离的舵机角度,以实现机器人的运动的多样性。障碍物20厘米处停住并后退2s,然后向左(或向右)转行蓝牙通信走2s,然后继续前进。其中,机器人运动过程中,避障、声本文中使用的LUBY控制器,其本身内置有蓝牙模块,控以及指令功能实现之间不会互相干扰,均能很好实现,运行机器人利用其自带的ATK-HC05蓝牙串口和电脑蓝牙端情况良好,识别效果明显、准确,通信状况良好,出错率低。口进行配对连接,实现了软硬件的连接通信。结语定义串口函数,如图9所示。本文采用北京博创生产的“创意之星”套件搭建机器人设置端口、波特率等属性,如图10所示。模型,只需外部给控制器一个指令,即可激活指定动作,行在编译软件中设置波特率、奇偶校验位以及停止位等,进过程中,可自行避障。通过识别手部位置,然后通过蓝牙从软件中调用串口运行程序,实现机器人进行通信了。图11进行指令的传送,实现了图像信息提取、蓝牙通信、控制机为成功发送指令并且LUBY接收。器人执行动作等过程,完成了STM32人体动作识别的智能实验结果与分析机器人系统的设计。该机器人系统实现了程序设计的功能,通过测试、获取数据之后取得了以下结果,图中识别的完成效果比较好,系统每次设计可根据需求设计实现多个动四个区域分别控制四个动作,图中(a)、(b)、(c)和(d)作,但需要动作相对受限,动作种类较少,后面研究将进行对应的动作分别为左转、点头、捶胸以及抬手。改进,增加识别动作以及优化识别细节等问题。-69-2018-02 最终.indd 692018/1/11 13:25:20