APP下载

基于Kinect的仿人机器人控制系统

2017-09-11孟月霞王天伦

传感器与微系统 2017年9期
关键词:仿人舵机上位

徐 军, 孟月霞, 王天伦, 马 静

(哈尔滨理工大学 自动化学院 ,黑龙江 哈尔滨 150080)

基于Kinect的仿人机器人控制系统

徐 军, 孟月霞, 王天伦, 马 静

(哈尔滨理工大学 自动化学院 ,黑龙江 哈尔滨 150080)

为实现对具有16个自由度仿人机器人的姿态控制,采用Kinect传感器对人体姿态的坐标数据进行采集,根据坐标信息利用Processing软件开发基于SimpleOpenNI库的上位机软件,建立人体关节模型,并利用空间向量法对仿人机器人的步态规划以及重心控制算法分析,解析各关节的转动角度,经由无线WiFi模块向仿人机器人发送指令以控制舵机的运动,最终实现对机器人的控制,搭建了基于Kinect传感器的测试平台。测试结果表明:仿人机器人上肢在运动范围内无死角,通过对重心的控制,下肢可实现简单的步行,符合预期效果。

Kinect传感器; 仿人机器人; 空间向量法; 人体关节模型; 测试平台

0 引 言

仿人机器人的研究已成为当今社会最热门的课题之一,与传统的轮式、四角式机器人相比,仿人机器人具有明显的优势:更灵活的行走能力、更强的越障能力、更广阔的做作空间[1]。

1996年,第一款人型无缆仿人机器人由日本成功研制,极大地推动了仿人机器人的研究。2003年,第一款跑步仿人机器人由索尼公司研制成功,实现了以0.82 km/h的速度跑步。2005年,日本生产的HRP—2机器人实现了俯身、起立、一字步以及交叉步等仿人行为,步行速度提高到了2.5 km/h。2007年,HRP—3较HRP—2增加了5个自由度,可以使用电钻、螺丝刀等工具。目前,国内对于仿人机器人的研究还处于相对落后的阶段[2,3]。2002年,清华大学研制的THBIP—I样机,实现了稳定步行、打太极以及端水等动作。2003年,北京理工大学推出的BHR—1实现了在复杂环境下保持平衡。

上海交通大学的钱鹤庆在构建人体模型时应用Kinect技术[4,5],成功设计出虚拟地球仪;清华大学的韩峰等人运用Kinect成功设计出了简易的桌面清理系统。

本文主要研究基于Kinect体感传感器的无线WiFi网络控制的仿人机器人。通过Kinect采集人体姿态的数据信息,对机器人的步态规划算法进行解析,通过上位机建立人体关节模型,利用无线WiFi模块向仿人机器人发送命令,通过控制舵机实现对机器人运动轨迹的控制,并搭建了仿人机器人的控制系统,完成对机器人的调试工作[6~8]。

1 仿人机器人的步态规划

仿人机器人上半身的运动是随动过程,不需要考虑重心变化,只需要注意运动的独立性,不需要为达到单个自由度的运动而引起其他自由度的误运动,通过Kinect传感器采集人体数据并使其转换成舵机控制器指令,上肢的随动匹配即基本完成了。

为了简化计算,实现稳定的步行,将机器人各部分看成质量均匀、形状规则的刚性连杆,对各关节进行简化,同时假设各关节之间无摩擦力的作用,建立仿人机器人的动力学模型,如图1所示。机器人有16个自由度,上肢有6个自由度,分别为左、右肩关节各2个,肘关节各1个。下肢有10个自由度,分别为左右髋关节各2个,膝关节各1个,踝关节各2个。为了简化研究,将下肢的运动简化为在径向平面(ZOX平面)与侧向平面(ZOY平面)的运动的合成,以静止时双脚的重心为原点O,前进方向为X轴正方向,左方为Y轴正方向,竖直向上为Z轴正方向。

图1 仿人机器人连杆模型二维视图

计算关节转角时,约束条件为,机器人脚掌始终与地面平行,则踝侧向关节角度和髋转向关节角度在数据值上相等。重心移动和屈伸示意如图2所示。

图2 重心移动和屈伸示意

为了实现对仿人机器人的控制,利用Kinect传感器采集人体关节的坐标数据,采用空间向量法解析各关节的角度。由于向量法使用的坐标系与Kinect坐标系有所不同,需将Kinect坐标系映射到数学坐标戏中,然后再进行计算。

仿人机器人下肢运动时,首先进行重心移动,一只脚向前屈伸,另一只脚会向后伸维持重心稳定保持平衡,此时对于单只脚运动来说3个自由度,即3个舵机均参与了运动。以向左移动重心为例,如图2(a)所示,机器人在侧向平面运动,设髋关节移动Ymm,大腿和小腿的长度分别为L1,L2,则根据三角函数关系可以计算出左、右髋关节应该转动的角度θ

θ=arcsin(Y/(L1+L2))

(1)

屈伸情况如图2(b)所示,机器人在ZOX运动,设髋关节移动Zmm,可得髋关节与膝关节的转动角度θ1与θ3

(2)

为了最大限度增大机器人稳定性的同时简化计算,设定仿人机器人脚部关节向前或向后运动的前提是保持脚面与地面时刻平行。相当于以髋关节为坐标原点,建立坐标系,向前行走的方向为X轴正方向,同时上下方向为Z。机器人前后移动的示意如图3所示。

图3 前后移动示意

设定θa,θb,θc分别为∠(θ1+θ0),∠(θ1+θ3),∠(θ3-θ0),即θa,θb,θc分别为各个关节弯曲的角度、髋关节、膝关节、踝关节。计算h的长度可以得到式(3)

(3)

根据三角函数关系可以得到以下结果

(4)

由式 (2)、式(4)可以知下肢各个关节的旋转角度,但下肢的运动较复杂,仅知道角度还不能保证重心的稳定。

2 控制系统设计

2.1 实验平台搭建

为调试基于Kinect的双足机器人的步行效果,搭建了机器人的测试平台。首先利用Kinect传感器采集人体各关节的坐标信息,通过KinectAPI获得人体信息接口将信息传至上位机,经由Processing软件中的SimpleOpenN库对人体姿态信息建立人体节点数据模型,运用算法解析得到各关节相应的旋转角度,再由无线网卡发送相应的指令给机器人,最后由机器人的WiFi模块将命令发送至舵机控制器,舵机控制器根据指令驱动机器人舵机旋转相应的角度,并通过机器人模型的稳定特性,对机器人的运动做相应的调整,以此控制机器人的运动,实现机器人与人体运动一致的随动控制系统。测试平台如图4所示。采用的机器人的控制系统电路如图5所示。

图4 测试平台

图5 机器人控制系统电路

通信模块采用ESP8266无线WiFi模块,内置了WiFi射频单元。设计中通信模块的功能为收发UDP数据、驱动姿态传感器,收集机器人运动数据、驱动舵机控制器实现机器人运动控制。

机器人的舵机控制器采用,型号为ATmega328P的AVR芯片,驱动板采用PCA9685驱动,该芯片可以产生16路12位精度的脉宽调制(pulsewidthmodulation,PWM),其中,PWM刷新频率最高可以达到百兆,其通信管脚由I2C总线控制。

电源模块分别为3.3,5,6~12V用于控制和动力部分。

姿态读取模块采用的MPU6050姿态传感器,可以读取机器人重心位置的加速度、角速度参数等。通过WiFi将数据反馈给上位机,实现了对机器人姿态变化的实时检测。

2.2 软件设计

软件设计主要分为上位机程序设计和下位机程序设计2个部分。上位机程序包括网络部分、传感器部分、算法部分、模型建立部分,下位机程序主要包括WiFi模块程序,驱动板控制程序。

双足仿人机器人的软件设计首先根据Kinect读取的数据建立人体模型,通过Processing软件中相应的类函数,解析机器人的运动轨迹。根据相应的算法将人体关节的变化信息转换为机器人相应舵机角度的变化,经由WiFi模块控制舵机。具体上位机程序总体流程如图6(a)所示。步态算法部分需考虑多种情况,如站立、前进、后退、下蹲等。以抬左腿为例流程如图6(b)所示。而前进、后退等均在可单腿站立的基础上实现,重复以上步骤即可。

图6 软件设计流程

Arduino开发板通过绑定了2个I2C地址,拓展2个16通道的PCA9685,即支持32位舵机驱动。由于WiFi通过串口与单片机通信,因此,单片机Arduino需要初始化串口,设置通信波特率,初始化2个I2C器件,设定器件PWM输出的刷新频率等。具体流程如图7所示。

图7 舵机控制器设计流程

ESP8266WIFI模块的程序编程之前,要对I/O口、网络、串口等进行初始化。初始化网络通信为UDP,接收UDP发来数据,设定定时器及其回调函数,在系统内建立任务。网络获取数据是通过TCP协议推送,即存在一个网页代码,支持该网页,输入对应的表单通过TCP反馈至WiFi重新加载,通过网页信息配置WiFi的通信参数。具体程序实现流程如图8所示。

图8 ESP8266WiFi模块设计流程

3 测试结果

利用已经搭建好的测试系统对机器人进行调试。首先,进行Kinect传感器与上位机连接,机器人准备就绪后,使用无线WiFi模块将机器人与上位机连接,打开上位机上的Processing软件程序。

经过测试,仿人机器人上半身跟随人体自由活动,且运动范围无死角。下肢部分可实现简单的步行,能保持重心稳定。测试结果如图9所示,分别为双手叉腰站立、平举双手、扭胯与抬腿的测试界面。以图9(a)为例,每个测试界面在上位机运行后会出现图9(a)中左边3个界面,左上角为人体图形,左下角为经过解析后的深度图形,中间图形为基于SimpleOpenNI库建立的解析后人体深度图的骨骼模型,右边为机器人运行图片。

图9 测试结果

4 结束语

利用Kinect传感器采集人体坐标,建立了人体关节模型,通过空间向量法对仿人机器人的步态规划以及重心控制的算法解析各个关节的运动角度,并通过无线WiFi向机器人发送指令,控制舵机运动。搭建仿人机器人控制系统,利用Processing软件开发基于SimpleOpenNI库的上位机软件,完成了仿人机器人的调试。测试结果表明:仿人机器人上肢可跟随人体自由活动,运动范围无死角,下肢部分可实现简单的步行,能保持重心的稳定。

[1] 赵建敏,许晓伟,贾慧媛.基于Kinect体感传感器的心理宣泄系统的实现[J].传感器与微系统,2014,33(8):119-122.

[2] 余 涛,叶金永,邵菲杰,等.Kinect核心技术之骨架追踪技术[J].数字技术与应用,2012,4(10):115-115.

[3] 韩 峥,刘华平,黄文炳,等.基于多传感器的人体行为识别系统[J].传感器与微系统,2016,35(3):89-95.

[4] 张雪华,刘华平,孙富春,等.采用Kinect的移动机器人目标跟踪[J].智能系统学报,2014,9 (1):34-39.

[5] 甄成方,刘文怡,苏淑靖.无线传感器网络的时间同步技术研究[J].传感器与微系统,2013,32(10):48-51.

[6] 战荫伟,张 昊.基于Kinect传感器的人体行为分析算法[J].传感器与微系统,2015,34(1): 142-144.

[7] 陈 鹏,刘 璐,余 飞,等. 一种仿人机械臂的运动学逆解的几何求解方法[J].机器人,2012,34(2):211-216.

[8] 周 浩,浦剑涛,梁岚珍,等.基于体感的仿人机器人步态学习与控制[J].计算机应用,2015,35 (3):787- 791,801.

Control system for humanoid robot based on Kinect

XU Jun, MENG Yue-xia, WANG Tian-lun, MA Jing

(School of Automation, Harbin University of Science and Technology,Harbin 150080,China)

The test system based on Kinect sensor is established to realize attitude control of humanoid robot with 16 degrees of freedom.The sensor of Kinect is used to collect the coordinates of the human body for the purpose of establishing joint model of human body by the way of developing PC software using the processing software based on SimpleOpenNI library.The analysis on humanoid robot gait planning and gravity control algorithm by using space vector method,analyze on rotation angle of each joint.Through module of WiFi wireless,send instructions to control steering engines,so as to realize the control of humanoid robot.The results of the experiment show that,the arm of humanoid can move freely in the range of motion and lower limbs can walk simply by controlling gravity,which accords with expected effect.

Kinect sensor; humanoid robot; space vector method; joint model of human body; test platform

10.13873/J.1000—9787(2017)09—0097—04

2016—09—28

TP 242.6

A

1000—9787(2017)09—0097—04

徐 军(1968-),男,博士,教授,研究生导师,主要从事石英晶体传感器、无线传感器网络、智能机器人等方面的教学与科研工作,E—mail:hljlgxj@126.com。

孟月霞(1989-),女,通讯作者,硕士研究生,主要研究方向为体感机器人、传感器与虚拟技术,E—mail:286704673@qq.com。

猜你喜欢

仿人舵机上位
含齿隙弹载舵机的全局反步模糊自适应控制
异构遥操作仿人机械臂灵巧作业控制
特斯拉 风云之老阿姨上位
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
探究仿人机器人设计及步行控制方法
具有面部表情的仿人头部机器人系统的研制
以新思路促推现代农业上位