邓晓燕+潘文俊+郑镇城+林灿光+付志平+张广滔
摘 要:机器人模仿学习是机器人技术的重要研究方向之一。针对机器人动作模仿学习,设计了Kinect和Darwin-OP2机器人的联合调试与仿真平台。该平台主要包括图像采集模块、运动控制模块和3D模型仿真模块,具有人体姿态解算、机器人实时状态监控及姿态仿真、与下位机网络通信及远程实时跟踪控制等功能。测试结果显示,该平台响应迅速、网络通信机制稳定、交互界面友好,能较好地实现机器人动作模仿学习。
关键词:模仿学习;机器人;调试与仿真
中图分类号:TP242.6 文献标志码:A
Design of Joint Debugging and Simulation Platform for Kinect and Darwin Robot
DENG Xiao-yan,PAN Wen-jun,ZHENG Zhen-cheng,LIN Can-guang,FU Zhi-ping,ZHANG Guang-tao
(School of Automation Science and Engineer,South China University of Technology,Guangzhou,Guangdong 510641,china)
Abstract:The joint debugging and simulation platform of Kinect and Darwin-OP2 humanoid robot for imitation learning is desigened.The platform mainly includes image acquisition module,motion control module and 3Dmodel simulation module,which has the functions of human body attitude solution,robot real-time condition monitoring and attitude simulation,communication with the lower computer through network and remote real-time tracking control.The experimental results show that the platform is responsive,the network communication mechanism is stable,the interface is friendly,and the robot action simulation can be realized well.
Key words:imitation learning,robotics,debugging and simulation
传统机器人往往按照事先编好的运动轨迹完成固定的动作,这样的控制方式对于复杂的动作编程工作量浩大,而且事先建立好的环境模型深深地影响着控制效果,具有很大的局限性,难以适应不同的场景与环境[1]。而随着用户对于人机交互程度的要求不断提升,利用动作交互设备实现远程在线控制机器人成为了一个重要的研究方向[2]。对此,一种更加开放式的模仿学习技术越来越受到大家的青睐。通过模仿学习[3],人们只需要获取示教者的动作姿态,进而得到机器人的控制序列,实现对于机器人的实时任意姿态控制。
对于模仿学习的研究,需要对示教者的行为进行检测与表征,而在过去的做法往往需要通過接触式的设备来获取示教者的姿态状态,对设备和示教者的要求较高[4]。随着体感摄像头价格的不断下降,通过图像的方法来提取示教者行为特征成为一种新趋势,因此,以视觉为基础的模仿学习研究将是未来一个很重要的方向。
在研究机器人动作模仿学习的过程中,若直接在机器人系统上进行调试控制,开发过程会较为繁琐,因此很有必要设计一个调试与仿真平台,实现对机器人的控制和状态观测。本文以Qt为开发工具,结合Kinect体感传感器和Darwin-OP2机器人[5],设计出一个具有被模仿者骨骼信息提取、机器人状态实时监控、机器人姿态仿真、与下位机网络通信、远程实时跟踪控制等功能的上位机动作跟踪系统。
1 联合调试与仿真平台的总体设计方案
本文以Kinect体感传感器和Darwin-OP2机器人为研究背景,通过Kinect体感传感器获取被模仿者姿态[6],作为机器人模仿的样例,利用Z-Y-Z欧拉角解算[7]的方法将人体姿态和Darwin-OP2机器人各关节按级联顺序直接关联起来,而解析的结果直接对应Darwin-OP2机器人的各个关节转动角度,再根据重心稳定规则[8]求取其他关节的转动角度,经过机器人运动控制程序,达到对每个电机转动角度的控制,从而使机器人复现被模仿者的动作姿态,实现在线模仿功能。该过程的整体实现流程如图1所示。一个良好的调试平台可以帮助操作者更好的使用和测试,因此本文将搭建起一个功能模块化、拓展性良好,网络通信机制稳定、交互界面友好的联合调试平台,以方便用户对于机器人的调试控制,为进一步的机器人模仿学习研究提供便利。
Kinect与Darwin-OP2机器人的联合调试与仿真平台的框架如图2所示,主要分为3个部分:图像采集模块、运动控制模块和3D模型仿真模块,各模块之间通过上位机实现连接。
三个组成部分从上到下分别对应运动控制模块、图像采集模块和3D模型仿真模块。图像采集模块利用OpenNI提供的Kinect驱动程序实现图像的采集,通过读取Kinect传输回来的数据流,得到人体骨骼信息,以用于后面的姿态解算。利用解算出来的姿态角,通过运动控制模块,经过UDP的网络传输过程,把控制信号发送到Darwin-OP2机器人上。3D模型仿真则是通过OpenGL的图形程序接口,便能很简单地生成出三维图像,把姿态角转换成各个机器人关节的旋转矩阵,通过坐标转换就可以实现对机器人状态的3D模型仿真。endprint
实际平台效果图如图3所示,该平台界面分成了四个部分。左上角(第1部分)为RGB图像或仿真图像显示窗口。右上角(第2部分)为控制信号显示窗口,用于人为控制Darwin-OP2机器人各舵机旋转角度。左下角(第3部分)为控制指令窗口,包含网络连接设置以及各种控制指令按钮。右下角(第4部分)是Darwin-OP2机器人各舵机实时状态显示窗口,反馈了Darwin-OP2机器人各舵机旋转角度的当前值。
2 各模块的具体实现
2.1 图像采集模块
图像采集模块工作流程如下图4所示。平台采用OpenNI 1.57版本驱动,支持Kinect1.0体感设备的图像获取与初步处理,通过加载源码编译生成的OpenCV库,可以实现实时的图像采集并在用户界面进行彩图以及人体骨骼点平面化的联合显示。同时,该模块在后台将采集到的骨骼信息进行适当补偿与滤波处理,得到相对平滑有效的骨架矢量信息,再通过归一化处理,得到标准的三维骨骼结构信息。对于得到的标准的三维骨骼结构信息,利用Z-Y-Z欧拉角解算方法进行关节转动角度的分析与计算,实现了Kinect关节解析到Darwin-OP2机器人的关节映射。
2.2 运动控制模块
图5展示了运动控制模块的工作流程。通过UDP网络通讯的方法[9]与Darwin-OP2机器人建立局域网内的链接访问,采用用户自定义协议加强UDP通讯的可靠性,数据均打包成以“$<指令>,<参数1>,<参数2>,...,<参数n>,<校验位>\\r\\n”为形式的一个数据帧进行传输。发送控制指令帧,即可把各舵机旋转角度控制量发送到机器人控制程序中,从而实现运动控制。为了达到对机器人舵机空间的监控,该模块还保留了对舵机状态查询的功能。平台向机器人发送了读取状态指令后,机器人通过网络,把当前舵机状态量以数据帧的形式传输到平台上,经过分割后显示出20个舵机的当前状态量。
同时,还采用自定义的指令集系统和机器人进行交互访问,并保留了命令行控制模式使其指令拓展更具灵活性,常用指令有:INIT,READ,FILE,DATA等。其中,常用指令集可以通过按钮操作直接作用,如控制机器人进行一键蹲坐与站立,采集机器人关节信息及躯干倾斜角度,设置关节转动速度等。同时,通过右上侧面板的20个角度控件与20个使能控件,用户可以以点对点模式控制单个或多个关节点转动相应角度或者上电与掉电。平台支持将采集到的机器人关节信息进行自动保存,方便用户对机器人进行各种姿态的动作库录入,为后期的动作模仿学习算法研究做准备。
2.3 3D模型仿真模块
通过加载OpenGL库,利用3D模型渲染方法构建出机器人的一般形态[10]。该模型具有20个关节自由度,与Darwin机器人的关节一一对应,且其欧拉旋转顺序相同,最大程度上确保该解析方式的正确性。用户在3D界面可以实现任意视角切换,通过鼠标左右键拖动实现绕不同参考轴旋转从而找寻到最佳观察视角。当选择实时演示时,右上侧各关节的角度值一旦发生变化,则3D模型机器人自动按该欧拉角解析的方式进行相对应的变化。同时分析和计算重心位置,并能自动调节脚部关节角度使其稳定站立。这样,在不启用机器人的情况下,用户也可以实现Kinect到机器人之间的映射控制,大大缩短了调试过程。
该模块的工作流程如图6所示。平台利用解算出来的姿态角得到各个舵机的旋转角度,再通过欧拉角解析的方式得到模型各个关节的旋转矩阵,最后调用OpenGL库中的旋转函数,实现对模型各个关节的旋转控制,从而达到仿真的目的。仿真结果显示在调试和仿真平台界面左上角(第1部分),显示效果如图7所示。
3 测试结果及分析
图8所示为一组机器人模仿人体动作的效果图,系统能够很好地实时跟踪被模仿者,较好地实现模仿学习。由于融合了双足机器人重心稳定规则,因此机器人能自动调节重心位置,从而实现全身的动作模仿学习。
平台控制效果测试结果如表1所示。选取了图8第一个被模仿动作的数据作为参考数据,得到了机器人模仿数据,测试结果显示两组数据一致性较好,表明控制信号通过网络传输有效地实现了对机器人的远程控制。
5 结 语
通过将Kinect体感传感器和Darwin-OP2机器人相结合,搭建了一个交互友好,响应迅速,传输稳定的联合调试与仿真平台。该平台实现了对人体肢体动作的捕捉并且映射到机器人状态空间,从而达到实时动作跟踪的功能。联合调试与仿真平台的进一步完善的方向是结合模仿学习的内容,利用该平台对机器人进行示教,使得机器人能自主学习并完成特定动作。
参考文献
[1] 王奇志,徐德,时鲁艳.机器人模仿学习与人机交互的学习控制综述[C].中国控制与决策会议.2013.
[2] 陈家顺.基于人机交互的机器人动作模仿学习[D].广州:华南理工大学,2015.
[3] 门玉森.基于轨迹匹配的模仿学习在类人机器人运动行为中的研究[D].北京工业大学,2016.
[4] 马乐.基于非接触观测信息的机器人行为模仿学习[D].沈阳工业大学,2014.
[5] Li X,Li Y,Cui X.Kinematic analysis and gait planning for a DARwIn-OP Humanoid Robot[C]// IEEE International Conference on Robotics and Biomimetics.IEEE,2017:1442-1447.
[6] 吴秦,陈智,周宇旋,等.基于Kinect骨骼跟踪技术的人机交互[J].常州大学学报:自然科学版,2014,(03):6-12.
[7] 王勇,吕群松,刘畅,等.刚体定点转动欧拉角的几何性质[J].辽宁大学学报:自然科学版,2009,(03):197-200.
[8] 付根平,杨宜民,陈建平,等.基于ZMP误差校正的仿人机器人步行控制[J].机器人,2013,(01):39-44.
[9] 赵飞,叶震.UDP协议与TCP协议的對比分析与可靠性改进[J].计算机技术与发展,2006,(09):219-221.
[10] 宋薇,章亚男,见浪護,等.基于OpenGL的仿人机器人步行仿真研究[J].系统仿真学报,2013,(02):203-208.endprint