《电子技术应用》

基于体感遥控的全向移动机器人的系统设计

2015年电子技术应用第6期 作者:孙 强,王文涛
2015/8/12 13:48:00

    摘  要: 设计一款利用人体骨骼移动信息生成控制指令控制基于麦克纳姆轮的具有全向移动抓取功能的机器人及其控制系统。首先通过kinect获取人体深度图像数据,然后利用骨骼追踪技术提取人体各个关节点,并建立空间坐标系,最后通过空间向量计算法计算出人体关节转动角度,从而识别出控制动作并映射成相关控制命令。之后利用WiFi无线传输,将控制命令传输到机器人使其执行相应动作。对系统动作识别效率和模拟场景任务执行进行测试,并给出测试结果。

    关键词: 机器人;kinect;骨骼数据;麦克纳姆轮;WiFi通信;机械臂

0 引言

    在现代社会中,人们往往不得不在一些特殊的环境下(如极限温度气压、辐射、化学污染等)执行作业。而长期工作在这些环境,会对作业人员的身体健康带来难以预料的威胁。随着机器人技术的进步,各国政府正在进行多种研究,争取将各类机器人应用到对应的特殊环境中,从而改变该环境下的人类的作业方式[1]。其中具备多自由度机械臂的移动机器人由于其移动性和作业能力,吸引了众多研究者的目光[2],kinect是微软公司于2011年推出的用于获取目标物体三维坐标的机器视觉设备[3]。应用kinect体感识别实现人机交互[4]是一种新颖自然的人机交互技术,人们通过它用简单的肢体语言便能快速灵活地操控机器人[5-7]。轮式移动机构的类型很多, 对于一般的轮式移动机构, 都不可能进行任意的定位和定向, 而全方位移动机构[8]则可以利用车轮所具有的定位和定向功能, 实现平面上的自由运动。麦克纳姆轮[9-10]正是其中技术成熟稳定性好的一种轮式结构。据此,本文设计了一种基于kinect体感操控并具有全向移动机构的WiFi视频监控抓取机器人。经实验证明,该机器人具备良好的可操控性和灵活性。

1 系统工作原理

    系统结构如图1所示,整个系统分为机器人主体和上位机控制端两个部分构成。机器人本身是由Acorn计算机有限公司的一款RISC微处理器(Acorn RISC Machine,ARM)控制板、全向移动底盘、基于openwrt系统[11]的WiFi通信模块、五自由度机械臂、二自由度视频云台等部分构成。上位机软件在基于Windows系统的计算机上运行,接收机器人传输回来的实时视频数据呈现给操纵者,操纵者根据视频图像面对kinect作出动作,上位机处理kinect采集的操纵者人体骨骼数据,分析判断人体指令并传输给机器人执行指令。

jsj7-t1.gif

2 机器人硬件设计

2.1 全向移动底盘的设计及其控制原理

    全向移动底盘由4个铝60 mm 45°万向轮子、4个空芯12 V Namiki直流电机、L293D 4路直流电机驱动模块、铝板、12 V锂电池等部件构成。图2(a)所示为麦克纳姆轮的原理结构, 其外形象一个斜齿轮, 轮齿是能够转动的鼓形滚子, 滚子的轴线与轮的轴线成α角度。滚子有两个自由度, 在绕自身转动的同时又能绕车轴转动。这使得轮体本身也具备了两个自由度:绕轮轴的转动和沿滚子轴线垂线方向的平动。图2(b)所示为底盘结构,以移动平台中心O点为原点建立全局坐标系oxy,oxy相对地面静止。在平面上,全方位移动平台具有3个自由度,其中心点O速度[V1,V2,ω]。ω1、ω2、ω3、ω4分别为4个轮的转动速度;R为车轮半径;W、L为图示的结构尺寸。车体速度与4个轮子的速度关系为:

    jsj7-gs1.gif

jsj7-t2.gif

    麦克纳姆轮的轮子和滚子夹角为α=45°,vx、vy、ω为控制量。在控制过程中控制板接收控制量通过矩阵运算计算出转速,由公式Cii/(mi·ωimax)(Ci是第i个电机的功率,ωi是计算出的第i个电机的转速,ωimax是i号电机在同一电压下设定的最大输出功率下的转速,mi是维护4个电机转速在同一最大值的实测参数)转换为电机的输出功率,进而通过调制脉冲宽度调制(Pulse Width Modulation,PWM)信号输出到电机驱动模块产生对应功率,完成底盘的驱动。本文设计将电机的调速范围设定在0~100%。由视频摄像头传输回来的影像交由操控者视觉和感官进行判断形成闭环系统,进行反馈调节,最终完成准确的全向运动的控制。

    当肢体语言与控制结合起来时,便需要用更加自然和易理解的方式让控制变得更简单。于是本文采用双手协作的方式操控全向底盘的运作。从数学模型上可以得出全向移动底盘有任意轨迹运动能力,但是由于运动轨迹的方向性多,极易导致控制的不稳定性,反而让优点变为缺点。由此精简了运动的方向性,使其既满足全向运动的丰富的能动性的同时也能保证其稳定性。本文设定了10种方向运动,分割了不同的自然手势作为控制量,并使用了左手方向右手动能(即左手指示运动方向,右手指示动能)的原则,通过左右手的运作使得整个全向底盘能够灵活地进行运动。控制量由公式Vn=an·v指示(an为左手动作指示,v为右手速度控制,n为x、y或ω代表直行、横行、旋转动作,an是方向指向,v是速度大小)。以前进控制动作为例,左手抬起垂直胸前伸直成直线,右手前伸抬起肘腕段与肩肘段夹角0~90°为正向速度控制,ax=1,ay=0,aω=0,v≥0,即V具有正向前进的速度。

2.2 机械臂、视频云台设计及控制原理

    机械臂和视频云台运动机构是由proMOTION CDS系列机器人数字舵机及一些高强度铝合金材料构建组成,其可采用异步串行总线通信方式,通过通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)统一控制。每个舵机设定不同的节点地址,多个舵机可以统一运动也可以单个独立控制。机械臂具有空间运动和夹持上的5个自由度,视频云台具有水平和竖直方向上的2个自由度。机械手臂的运动控制原理与云台舵机的控制原理相当。控制过程中机械臂关节点运动分别映射着右手各关节和左手腕关节运动角度,由视频摄像头传输回来的景象交由操控者视觉和感官进行判断形成闭环系统,进行反馈调节控制实现空间内的定位运动。视频云台运动控制对应着左右手肩关节和肘关节运动,实现机器人前方左右0°~180°、上下0°~150°范围内的视屏图像采集。上位机识别关节转动角度转换成操作指令发送给机器人控制板,控制板通过串口通信使用数字信号控制舵机运动完成相应动作。运行时,二者不同时进行操作,通过双臂的指令进行切换控制。

3 软件设计

3.1 体感控制识别算法

    应用骨骼追踪技术kinect可以追踪用户全身20个骨骼点。利用用户双手共9个骨骼点的数据,并利用其他点坐标作为辅助识别用户动作。

    本文以两肩点连成的线段中心为坐标原点O、两肩点直线为x轴、人体脊柱关节点连成的直线为y轴建立空间坐标系。识别人体控制动作主要是以识别关节运动角度变化来实现。如图3(a)所示,以左手臂为例,取图中a、b、c、d、e分别对应kinect识别的人体关节肩中点、肩关节点、肘关节点、腕关节点、手关节点。α1为线段bc(肩肘段)与坐标系xoz平面的夹角,α2为线段bc(肩肘段)与坐标系x轴的夹角,β为线段cd(肘腕段)与线段bc(肩肘段)的夹角,γ为线段cd段与线段de段的夹角。已知两个线段端点坐标求夹角,本文采用的计算方法为取向量进行空间向量角进行运算。

    以计算角度α1和β为例。

    如图3(b)所示,求角α1时,取b点的坐标为(x1,y1,z1),c点的坐标为(x2,y2,z2),有:

jsj7-gs2-5.gifjsj7-gs2-5.gif

    由此类推可以推得需要利用的两手各关节对应的α、β、γ各角度的三角函数值,之后进行反三角函数运算可以获得各关节转动角度,进而将识别的角度转换为控制命令或舵机运动角度并发送到机器人下位机完成控制。

jsj7-t3.gif

3.2 下位机软件

    机器人控制板采用基于STM32F407芯片的最小系统板,通过串口接收通过WiFi模块转发过来的控制字并执行相应指令。能实现机器人全套动作控制、电源检测、危险路况检测等功能。具体控制流程图如图4。

jsj7-t4.gif

3.3 通信协议设计

    本文设计的通信控制协议如表1所示。状态号代表机器人的两种状态即运动和机械臂操作两种状态,以0x00和0x01来表示,其数据区发送的数据也根据两种状态来组织。运动状态时数据区由12 B构成,前10 B表示控制方向命令,后2个字节代表数据参数。舵机控制状态时则分为5个手臂舵机和2个云台舵机的舵机ID以及转动参数一共28 B。

jsj7-b1.gif

4 实验分析

    本文体感交互系统控制的本质核心在于人体特定关节点转动角度的识别,为了验证整个系统的有效性,分别进行了关节转动角度识别率测试和整体操控测试。具体实验过程如下。

4.1 关节转动角度识别率测试

    本文系统应用的关节点为左右肩关节、肘关节、腕关节一共6个关节点,在WIN8+VS2013+Kinect for Windows SDK环境下编写了测试软件。本文挑选体型身高均有差异的10个人分成2组针对关节转动的角度识别分别进行测试,每一个关节的转动角度设为10°、20°、40°、60°、80° 5种情况,每种情况每人测试10次,即每个关节累积进行500次实验,角度允许误差±3°。去除偶然反常结果,实验统计结果如表2所示。从表中可以有如下发现:由左右肩关节到左右腕关节3个节点的识别率依次降低;转动角度越大,识别的成功率越高。产生以上现象的原因是kinect识别人体关节角度跟人体姿势变化幅度有关,而人体各关节点的人体姿势幅度又取决于关节点为位置和关节点的转动角度,故肩关节的识别准确率最高,同一个关节点转动角度越大,识别率越高。尽管如此,各关节在各转动角度的识别率都超过90%,具有较高的识别成功率,符合控制要求。

jsj7-b2.gif

4.2 机器人动作执行测试

    机器人运动过程中分为底盘运动和机械臂云台控制两种状态,两种控制状态在人体自然站立等待2 s为周期进行选择切换,在上位机控制软件上有设有指示标志。首先对机器人所有动作指令进行测试,然后在4 m×4 m的空间中用胶带粘出道路狭隘且具备多个直角转角的地形图,并放置障碍物、夹取目标物体来测试机器人特定情境的任务执行情况,最终任务顺利完成,表明机器人具备一定环境下的任务执行能力。 

5 结束语

    本文设计了一种基于kinect体感遥控万向移动抓取机器人系统。系统将kinect体感控制、万向移动平台、WiFi通信、五自由度机械臂、二自由度视频云台结合起来,实现了能采用体感交互方式进行操控的机器人。实验证明,该机器人具有良好的操控性能,能在有限的空间区域执行任务。在该机器人的基础上加上空间定位、空气、声、光、电等传感器可以极大提升其应用能力,在军事、商业、民用等领域具有广阔应用的前景。 

参考文献

[1] 张明路,彭平,张小俊.特殊环境下服役机器人发展现状及其关键技术研究[J].河北工业大学学报,2013,42(1):70-75.

[2] 康静.移动机械手建模及控制技术研究[D].天津:天津理工大学,2010.

[3] JONGWOOK K,DONGJUN S,DONGSEOK J.A study on the control method of 3-dimensional space application using kinect system[J].International Journal of Computer Science and Network Security,2011,11(9):55-59.

[4] 黄璐.面向交互的手势识别研究[D].武汉:华中师范大学,2011.

[5] 倪晨,邱鹏,王锋,等.Kinect体感技术在人机交互中的应用研究[J].信息技术与信息化,2013,0(1):87-90.

[6] ZHOU J I,DASGUPTA D.V-detector:An efficient negative selection algorithm with“probably adequate”detector coverage[J].Infor-mation Sciences,2009,17(9):1390-1406.

[7] AYDIN I,KARAKSE M,AKIN E.Chaotic-based hybrid negative selection algorithm and its applications in fault and anomaly detection[J].Expert Systems with Applications,2010(37):5285-5294.

[8] GILLES M,CYRIL N,G?魪RARD P,et al.Omni-directional robot with spherical orthogonal wheels:concepts and analyses[J].IEEE International Conference on Robotics and Automation,2006,15(5):3374-3379.

[9] GFRERRER A.Geometry and kinematics of the Mecanum wheel[J].Computer Aided Geometric Design,2008,25(9):784-791.

[10] 刘洲,吴洪涛.Mecanum四轮全方位移动机构运动分析与仿真[J].现代设计与先进制造技术,2011,40(5):43-46.

[11] 张晓华,张玉华.基于路由器的开源嵌入式操作系统学习平台[J].单片机与嵌入式系统应用,2013(2):13-16.

继续阅读>>