APP下载

基于Kinect的救援机器人系统设计

2020-04-25俞镇洋

科技传播 2020年1期
关键词:镜像上位救援

俞镇洋

当今世界各地自然灾害频繁发生,地震、泥石流、海啸等灾难不断[1]。灾难事故发生后,现场建筑结构坍塌,导致地形环境发生巨大变化,空间狭小不稳定,严重威胁着人类安全和社会稳定。许多遇难者因得不到及时的救援而失去宝贵的生命,因此救援人员如何快速高效的开展救援工作关系着被困人员的生命安全[2]。随着社会科技水平不断进步,机器人在人类的生活中扮演的角色越来越重要,而以科学技术和高新产业为基础,现代社会已然成为一个科技社会,在科技的催产下,机器越来越智能化和自动化。机器人的触手已然伸入我们的工作和生活的各个角落,侦察、探测、救援、生产等各个方面都可以见到它们的身影,在这些我们无法触及和高难度的情况下,它们可以提供帮助,助人类一臂之力,它们加速着社会的发展。将机器人技术应用到救援中已成为常态,救援机器人可代替工作人员去面对危险,减少伤亡[3]。但传统的救援机器人通常需要技术人员在救援装置里操作机器的运转和现场破坏程度的检查,这些情况会导致救援行动充满不确定性,或者造成二次伤亡等。

本文设计了一种基于Kinect 的体感救援机器人,对发生灾难的区域能代替人来进行探测救援,以具有越障能力的履带车作为移动平台,能对复杂地形有很好的适应性,机械臂作为实现远程手部动作的直接载体,使用Kinect 体感传感器将人的手臂动作以机械臂的运动展现出来,可远程操控,减少二次伤亡,提高工作效率等优点[4]。

1 救援机器人整体结构设计

在设计救援机器人的结构时,我们主要考虑了以下几个要求[5]:1)救援机器人应满足基本的移动功能;2)救援机器人需要具备适应恶劣地形环境的能力,例如越障、抗冲击等;3)救援机器人应充分考虑控制的安全性;4)视频流的传输应避免较长的延时。

本文设计的救援机器人三维建模如图1 所示,可实现救援机器人的功能需求,完成危险环境的救援活动。图a 为救援机器人三维模型图,图b 为救援机器人各部件位置图。

救援机器人整个系统的机械结构如图1 所示,在SolidWorks 三维建模软件中将救援机器人系统的机械结构以及空间位置建模出来,然后将各部件结构的二维图导出来,在CAD 软件中进行图纸绘制修改,已达到生产加工出所需的零件。整个系统结构摄像头、树莓派、树莓派屏幕、STM32 单片机[6]、照明灯、机械臂系统,以及构成机械臂的舵机、支架、机械臂爪等零部件。

2 系统硬件设计

救援机器人系统硬件部分由STM32 单片机、上位机及检测模块、关节角度变化识别模块、移动模块、执行模块等硬件组成。系统总体结构框图如图2 所示。

系统的具体工作原理为:摄像头拍摄到地形被破坏后的实时画面,将视频流传输到树莓派端,可在远程通信的PC 屏幕上观察拍摄的地形画面。通过Kinect 传感器检测远程端操作人员的上肢手臂关节变化,将角度更新数据信息发送给PC 端的上位机软件,然后将信息指令发送给STM32 单片机,单片机把处理后的信息指令以PWM 脉冲控制机械臂上的各舵机运动,从而实现手臂远程控制机械臂运动,其中Kinect 传感器与STM32 通过串口通信方式,救援机器人的移动功能由上位机PC 端软件界面控制,可实现救援机器人的前进、后退、左转、右转、停止、越障等功能。另外,本系统下位机外接24V 供电电池以及电压转化器,起作用时将外接9V 电池电压转换为稳定的5V 电压,给所有模块供电。上述工作原理流程可实现了救援机器人的多种功能,下文将对各子模块进行说明介绍。

2.1 STM32 单片机

STM32 单片机作为整个系统的核心控制器,用于实现上下位机等模块的信息交互处理,是整个系统不可或缺的一部分。STM32 单片机采用STM32f103芯片作为系统的下位机核心处理器,其内核是Cortex-M3,具有电源管理、低功耗、模数转换器、DMA 和多种调试模式,可通过蓝牙、串口等通信端口来接收上位机发送的指令数据。

2.2 上位机及检测模块

上位机及检测模块是由树莓派和摄像头组成,其中摄像头主要是将救援现场环境的视频流通过远程通信方式传输到树莓派PC 端[7],用于实时监控远程环境情况和确定救援方案。远程通信方式采用2.4G 无线通信模块,2.4G 无线通信技术是一种工作在全球免申请ISM 频道2 400M-2 483M 范围内的无线通信技术,可以实现点对点近距离无线传输,具有使用方便、传输距离远、功耗低等优点[8]。

本次使用的是Raspberry Pi3(model B+),具有4 个USB 口、支持有线网络、功耗1W、512M RAM、40 个GPIO。树莓派作为上位机可以和下位机STM32 单片机建立联系,可直接在树莓派上安装Keil 进行开发,具有很好的开发效果,运行稳定。本次救援机器人实现了树莓派将摄像头拍摄的视频流显示在PC 端上,同时可与STM32 单片机进行数据通信,进而控制救援机器人各功能的稳定实现。

图2 救援机器人控制系统总体框图

2.3 关节角度变化识别模块

系统的关节角度变化识别模块的核心部分是Kinect 传感器,Kinect 传感器有三只眼睛,分别为红外投影机、彩色摄像头和红外深度摄像头(自左向右),搭配PrimeSense 技术、PS1080 系统级芯片和麦克风。用来检测人体上肢关节角度,使用骨骼追踪技术来深度处理人体各个关节的坐标数据。

2.4 移动模块

图3 行星减速电机驱动器引脚图

救援机器人的移动模块的实现是采用双轮差速驱动,具体为轮式履带结构,两后轮差速驱动,其余轮与履带啮合配合。驱动电机为100W 行星减速电机,通过24V 双通道直流有刷电机驱动器与STM32 单片机相连,直流电机驱动器引脚图如图3 所示,图中右侧引脚为驱动器功率接口,M1 与M2 的A、B 口分别对应行星减速电机的引脚线,P+与P-口对应两个电机的电源正负极输入,外接24V 电源。左侧1、6 口为VCC,2、7 口为PWM 占空比调速,3、4、8、9 为控制逻辑高低电平信号口,5、x 口为隔离电源GND。

2.5 执行模块

图4 机械臂与Kinect传感器实物图

如图4 所示,机械臂有六个自由度,可代替正常救援人员手臂来清理救援现场,实现基本的手臂运动状态,通过Kinect 传感器采集救援工作人员上肢关节角度的变化,然后将变化指令发送给下位机STM32 单片机,进而控制机械臂随手臂的同步运动,完成救援活动中系统执行模块的同步运动功能。具体可以使肩关节能够完成可以完成水平面内的肩关节内收外展运动和矢状面的屈伸运动,使肘关节可以完成矢状面的屈伸运动,腕关节的屈伸和侧弯运动均由肩关节运动和肘关节运动带动[9]。

救援机器人机械臂的尺寸设计需要应对救援行动中各种复杂突发情况,避免在遇到特殊情况时,机械臂无法工作而导致错过最佳救援时机。

3 系统软件设计

在系统的软件设计主要分为上位机软件界面设计、救援机器人移动软件设计和机械臂镜像运动软件设计三大部分,下面将对各部分详细介绍。

3.1 上位机软件界面设计

图5 系统上位机操作主界面

上位机软件设计是基于WPF(Windows Presentation Foundation)环境进行设计的,WPF是微软推出的基于Windows 的用户界面框架,它提供了统一的编程模型、语言和框架,可灵活、容易上手[10]。系统上位机主界面如图5 所示,上位机左侧上部分为平板电脑端操纵救援机器人实现移动功能,下部分为机械臂镜像运动的实现功能,界面最上侧为整个系统的名称,右侧为救援机器人的三维模型。主界面的设计主要是为了实现人机交互,用来操作救援机器人的救援行动。当工作人员点击救援机器人运动和机械臂镜像运动按钮时,将会跳转到各自的实时操作界面,具体界面如图6 和图8所示。

3.2 救援机器人移动设计

当点击主界面的救援机器人移动按钮时,界面将跳转如图6 所示,此时界面有6 个按钮,分别代表前进、后退、左转、右转、停止和返回,用来控制救援机器人的移动。

图6 救援机器人移动上位机界面

图7 机器人移动软件设计流程图

如图7 所示,当界面跳转进来时,机器人移动控制将进行系统初始化,通过点击控制按钮,将上位机的信息指令发送到下位机STM32 单片机上,单片机将接收到的相应的控制指令发送到电机驱动器上,进而使电机进行运动,最终机器人将执行相应的动作行为,完成整个移动系统的工作。

3.3 机械臂镜像运动设计

图8 机械臂镜像运动上位机界面

当点击主界面的机械臂镜像运动按钮时[11],界面将跳转如图8 所示,此时界面右侧将显示Kinect传感器检测的图像,传感器会自动捕捉工作人员的上肢关节角度,同时在界面的左侧开始训练下方显示的有相应的关节角度值,本次系统设计主要展现了肩关节、肘关节、腕关节和指关节的角度变化,基本满足对应的机械臂运动。其中返回到主界面的按钮在界面的左上方。

机械臂镜像运动的软件设计流程图如图9 所示,主要是Kinect 传感器对上肢关节角度变化的计算和提取,从而实现上肢远程控制机械臂同步运动。

当跳转到控制界面时,将会执行救援机器人镜像运动功能,此时Kinect 传感器会通过自带的摄像头来检测镜头下得上肢关节。如果系统界面没有出现关节角度值,会返回初始化工作,反之当系统界面出现关节角度值,将会进行下一步检测关节角度是否更新变化,如果否的话,系统会返回上一步来显示关节角度值,是的话,系统把相应的信心指令发送给下位机,来控制对应关节的舵机进行运动,最终实现机械臂与上肢同步运动。

图9 机械臂镜像运动软件设计流程图

4 可靠性测试分析

系统的可靠性测试分析主要体现在救援机器人的移动和机械臂的镜像运动两大部分,在调试好实物样机的基础上,随机对志愿者进行测试,最终得出本次设计的救援机器人的移动控制完全实现,机械臂的镜像运动准确度高达94.4%(34/36),满足的设计要求。

为验证机械臂镜像运动的控制精度,设计了如下实验,实验步骤为:

1)由实验协助者随机报出实验者上肢的运动指令(腕关节、肘关节和肩关节角度变化);

2)受试者在Kinect 传感器检测下改变关节角度;

3)观察机械臂和患侧上肢是否按照指令同步运动,若是,则该单次实验视为成功,若不是,则视为失败。

12 名随机受试者“镜像疗法”的准确度数据如表1 所示,表中“√”代表“成功”,“×”代表失败。

表1 机械臂镜像运动准确度测试结果

结果显示:编号2 受试者在肘关节测试中出现不响应,编号10 受试者在腕关节测试中时出现了失败,经计算其准确度高达94.4%(34/36),失败的原因可能是受试者关节角度变化未被捕捉、Kinect 本身具有一定的误差以及受试者个体差异不同等,但总体控制精度接近95%,可保证系统具有高稳定性。

6 总结与展望

本文设计了基于Kinect 传感器的救援机器人系统,主要完成了以下工作:

1)通过分析当前救援任务和救援机器人的发展现状,对救援机器人进行了机械结构设计、绘制三维模型。2)查询了相关技术的发展,搭建了相应的控制系统,对系统进行硬件设计、软件设计、研制了实验样机以及上位机控制软件。3)对救援机器人各功能进行可靠性测试分析,验证了其功能模块是可实现的。

在接下来的工作将会继续完善和优化救援机器人的相关功能,提高机械臂的镜像运动功能准确度,在现今的基础上增加自主导航、越障功能、完善救援行动等。

猜你喜欢

镜像上位救援
紧急救援
3D打印大救援
特斯拉 风云之老阿姨上位
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
救援行动
以新思路促推现代农业上位