APP下载

基于仿生机械臂的体态遥控与可视化系统设计

2015-02-21张雨薇林雄民

电子技术应用 2015年12期
关键词:体态舵机手掌

张雨薇,林雄民

(武汉大学 电子信息学院,湖北 武汉 430072)

0 引言

近年来,多发的自然灾害、各种突发事件以及由生化病毒、辐射性物质等带来的恐怖影响威胁着人类的安全。虽然人类对各种灾难的警觉和反应能力有所提高,但救援工作仍然面临着环境的复杂性和危险性[1]。因此,救援人员在自身安全得不到保证的情况下很难进入现场开展救援工作,而救援机器人可以替代人类在危险的环境中完成侦察、作业等任务[2]。本文开发了一套可用于搜救的灾难救急机器人系统,为现代社会突发事件的处置或恶劣环境的作业提供了一种新型可靠的解决方案,可以满足轻量级任务的使用。

1 系统工作原理

1.1 系统概述

以Intel Atom EPCM-505C开发平台为核心,借助E645C 处 理 器 ,FPGA 以 及 Intel IPP、OpenMP、OpenNI、OpenCV等开发工具完成了该系统的搭建。本系统采用服务器—客户端架构模式。客户端平台装于遥控小车上,负责采集、传回现场视频,并在客户端的屏幕上显示小车周遭场景。位于服务器端的用户根据传回的视频控制小车躲避障碍物进入危险区域后,首先通过体态传感器获取人体手臂的运动姿态并实时传输给客户端平台,然后由平台CPU通过PCIe接口将捕获的数据传至FPGA,进而控制仿生机械臂的运动。

1.2 系统框架

图1 系统结构图

系统结构图如图1所示。其中,客户端包括基于以Intel Atom E645C处理器为核心的嵌入式系统、装载在遥控车上的机械臂以及电源系统,并外扩了摄像头。服务器端包括采集用户信息的体态传感器及视频显示终端。

2 系统硬件设计

2.1 仿生机械臂的控制

仿生机械手臂有5个自由度,分别由5个舵机构成。一号、二号、三号舵机分别负责机械臂左右、前后和上下的摆动,四号舵机负责手腕的运动,五号舵机负责手掌抓取动作的实现。

舵机控制线的输入是一个脉冲宽度调制(Pulse Width Modulation,PWM)信号,脉冲信号的周期为 20 ms[3]。我们利用调制占空比来控制舵机的位置。输出的转动角度和脉冲宽度的关系式为[4]:α=90(t-0.5)。式中,α为舵机的输出转角;t为脉冲宽度,其定义域为0.5≤t≤2.5。因此,可通过编程在FPGA的输出端口得到需要的脉冲信号。

2.2 光耦隔离放大电路

在该系统的电路设计中,在机械臂驱动前增加了高速光电耦合模块,并且在电源信号输入光耦前加入了电流负反馈放大电路,如图2所示。由于光电耦合器的输入输出之间互相隔离,其具有良好的电绝缘能力和抗干扰能力[5]。PWM信号经过光耦隔离后,再输入机械臂的控制线,能够排除系统的潜在干扰。

图2 电路的组成框图

2.3 FPGA控制机械臂的流程图

系统通过FPGA产生信号来控制机械臂运动,其流程如图3所示。

图3 FPGA控制机械臂的流程图

3 系统软件设计

3.1 体态数据采集核心算法

3.1.1 骨骼坐标的采集与滤波

用户骨骼位置主要是通过捕获右手手腕、右手肘关节及右肩关节的三维坐标来获取的。

程序初始化完成之后,OpenNI开始检测当前可视区域是否存在用户。区域内出现用户后,用户会被体态传感器一直跟踪。随后,OpenNI开始检测用户是否做出“校验”姿势。所谓的“校验”姿势,即用户双手举过头,作投降状。当用户做出“校验”动作并且被OpenNI成功检测出来后,生产链路开始工作,OpenNI开始捕获用户的骨骼信息。

3.1.2 手臂移动角度的采集与滤波

通过上述算法,得到了所需要的骨骼坐标。用户手臂摆动时,其骨骼坐标也会随之变化,将这些变化的坐标转化成各关节的角度变化。

用户摆动手臂的动作,可以分解为左右、前后、上下3个方向的运动。手臂的左右摆动由右手肩关节与腕关节的三维坐标获取得到,如图4中(a)所示。胳膊的前后变动主要反映到肘关节坐标的变动,如图4中(b)所示。小臂的前后摆动主要反映到腕关节相对肘关节的坐标的变化[6],如图 4中(c)所示。

工科新教师培训为复杂系统工程。培训方式应根据培训内容、培训层次、培训目标的不同,本着服务为导向实施差异化选择[7]。两种或多种培训方式统合使用,是提高培训吸引力,激发工科新教师培训动力,提高培训质量的基本策略。

图4 各关节移动角度的采集

3.1.3 手掌张合检测算法

由于体态传感器无法直接获取手指的坐标,通过下面的算法来捕获手掌的张合:

(1)通过 OpenNI得到用户的深度资料图,然后用平滑算法将深度图二值化为灰度图,并根据最小的Z值(即指尖的位置)得到手掌区域部分。

(2)将手掌部分的灰度图转化成2D矩阵的点集合。通过算法筛选出位于指尖和掌心的点,并以此判断手掌的张合情况。如图5(a)所示,手掌张开时可检测到指尖点和掌心点。而当手掌握合的时候,只能捕获到掌心点,如图 5(b)所示。

图5 手掌张合检测

3.2 视频的采集与传输算法

本系统的视频传输采用的是实时传输协议(Real-time Transport Protocol,RTP),利用该协议能有效解决 TCP传输速度慢和UDP数据丢失的问题[7]。

通过OpenCV获取摄像头的视频流,为了给体态信息提取腾出更多CPU空间,我们没有对视频进行压缩,而是通过直接截取视频流里的一帧图片来进行传输。由于系统对视频清晰度要求不高,我们将行位置和行包含的像素点一起打包,采用隔行传输的算法,先传奇数像素行,再传偶数像素行,循环交替。RTP的传输速率很高,隔行传输可以明显提高效率且不影响视频的实时显示。

3.3 系统软件流程

图6 系统软件流程

4 测试结果

按照系统工作流程,对系统进行测试。测试过程分为以下3个部分:

(1)远程视频传输与接收测试

程序开始,软件界面下面的提示栏出现“Waiting For Connection”的消息,几秒钟后又出现 “Connection Success”。接着,远程服务器软件界面的视频显示窗口出现遥控小车上的摄像头拍摄到的画面。如图7所示,说明本次测试成功。

图7 测试界面

(2)体态传感器用户识别测试

当视频传输开始的时候,软件界面下方的信息提示栏出现了如下的信息:“Please Hand Up Both Your Hands And Wait For Detection”。随后,测试者举双手过头,信息栏马上提示“Identification Success,The Program is Capturing data”。同时,软件界面上开始显示5路舵机角度变化的数据,说明体态传感器用户识别测试成功。

(3)用户控制机械手臂的动作测试

测试(2)成功后,我们分析了用户控制机械臂运动的工作情况。采用体型各异的5个人对机械臂各关节的运动进行测试,转动角度分别设为-80°、-50°、30°和 90°。每人对每个关节的每个角度测试6组数据,即每个舵机测试120次,如表1所示。分析下表可知,运动角度变化越大,识别的成功率越高。手掌张合检测在小角度时成功率略低,而其他各关节的识别率都高于90%,具有较高的成功率,符合控制要求。

表1 机械手臂各关节测试

5 结论

本文引入体态控制技术及远程视频监控技术,设计了仿生机械臂远程实时控制系统。该系统可以模拟完成大多数人体手臂的基本动作,并且无线视频传输与接收的实时性良好。因此,人体手臂无需穿戴任何传感器即可直接进行远程控制。该系统为人机交互在抗灾抢险领域的运用提供了新思路。

测试结果表明,本系统运行稳定,实时性较好,且具有良好的操控性能,能够很好地完成轻量级的任务。为现代社会突发事件的处置或恶劣环境下的作业提供了一种新型可靠的解决方案,在国防和民用中都有广泛的用途,应用前景良好。

[1]卢小辉.RoboCup救援仿真系统中的移动智能体行为决策研究[D].广州:广东工业大学,2012.

[2]刘金国,王越超,李斌,等.灾难救援机器人研究现状、关键性能及展望[J].机械工程学报,2006,42(12):1-12.

[3]韩庆瑶,洪草根,朱晓光,等.基于AVR单片机的多舵机控制系统设计及仿真[J].计算机测量与控制,2011,19(2):332-334.

[4]蔡睿妍.基于 Arduino的舵机控制系统设计[J].电脑知识与技术,2012,08(15).

[5]程全.基于电话线的单片机远程控制系统[D].郑州:郑州大学,2009.

[6]王艳淑.基于人机工程学评价与仿真的人体模型建模[D].哈尔滨:哈尔滨工程大学,2013.

[7]刘涛.基于 RTP的视频流可靠传输[D].郑州:郑州大学,2004.

猜你喜欢

体态舵机手掌
SET悬吊训练对中青年女性圆肩体态的疗效观察
含齿隙弹载舵机的全局反步模糊自适应控制
摊开手掌
手掌上的童话
“体态矫正”到底是什么?
基于dsPIC单片机的飞艇舵机控制实现
钢琴基础教学中的歌唱和体态律动
随、律、衡:体态律动教学的三个核心原则
基于高速同步485总线通信的多通道舵机控制器设计
把手掌放在画纸上描一描,画出一只考拉吧