王新庆, 陈兆芃, 王冬剑, 潘 军, 姜 力
(1. 中国石油大学(华东) 机电工程学院, 山东 青岛 266580;2. 哈尔滨工业大学 机电工程学院, 黑龙江 哈尔滨 150001)
基于QNX-Simulink的机器人创新实验平台研究
王新庆1, 陈兆芃2, 王冬剑2, 潘 军2, 姜 力2
(1. 中国石油大学(华东) 机电工程学院, 山东 青岛 266580;2. 哈尔滨工业大学 机电工程学院, 黑龙江 哈尔滨 150001)
设计了一种基于QNX-Simulink的机器人实时控制平台。该平台采用基于模型的设计方法,通过Simulink进行机器人系统的可视化建模及控制算法编程;经过二次开发Matlab/RTW工具箱自动生成QNX控制代码;以TCP/IP方式进行数据通信,实现对机器人的实时控制。以灵巧手控制平台设计及其位置控制为例,该平台编程简单、调试方便、可移植性较好,仿真结果与实验结果误差趋势一致,证明了该平台的可行性。
计算机仿真; 机器人灵巧手; 实验平台; 实时控制
机器人学是一门交叉学科,围绕机器人本体结构、控制平台及控制算法的研究都有了巨大的进步。其中控制平台作为算法实现的载体,需要满足数据传输实时可靠、控制系统设计方便、用户界面友好、便于扩展与维护的要求。
传统的控制平台主要采用自上而下分层控制的设计方法。例如哈工大/德宇航联合开发的HIT/DLR Platform平台分为3层,底层为基于FPGA的控制执行层,中间层为基于DSP的控制计算层,顶层为基于PC机的人机交互层[1];NASA灵巧手采用了上层Sparc 10工作站,底层FPGA+DSP的控制方式[2]。上述研究中各平台运行不同的软件系统,缺乏统一的接口,程序的可移植性较差,且主要依赖于文本编程,对复杂算法无能为力且调试不便。
与分层设计方法不同,基于模型的设计方法解决了各软件系统的接口不统一的问题,且具有代码自动生成功能,能够显著降低编程的难度、提高编程效率,在科研及工业中得到了广泛应用。例如文献[3]在飞行控制仿真系统中采用了基于RTW和VxWorks的设计方法,文献[4]在飞机制造中采用了基于RTW的设计方法。这些方法的核心在于微内核实时操作系统的应用,例如VxWorks以及加拿大QSSL公司的QNX[5]。其中QNX系统具有强大的多机通信及资源共享功能,其微内核具有硬实时性,能够满足实时控制的要求。因此,本文结合Simulink强大的可视化算法编程及代码生成功能,搭建一套模块化的高效实时控制平台,既可应用于教学,又能用作实践创新。
2.1 平台的组成及其功能
实时控制平台由2台PC机及灵巧手平台组成(见图1)。
(1) PC机A。它是Simulink的子平台,硬件包括1个网卡,软件包括基于Windows系统的Matlab/Simulink及QNX编译器,具有可视化的编程及数据处理/显示功能。用户首先利用Simulink内建的SimMechanic模块建立机器人的运动及驱动等模型,继而利用Simulink的可视化图形编程方法编写控制算法并进行仿真。如果仿真结果可以满足控制要求,则调用Real-Time Workshop(RTW)及QNX编译器生成QNX可执行文件。该文件包含的控制命令通过TCP/IP协议传输到QNX子平台,同时接收来自QNX的反馈信息。
(2) PC机B。它是QNX的子平台,安装有2个网卡。由于灵巧手内部集成了多达20个位置/力矩传感器,数据传输量很大,因而基于控制的实时性要求,2个网卡的传输速率均要求100 Mbit/s以上;在软件上安装有QNX Neutrino RTOS系统[6]。PC机A生成的QNX可执行文件通过一根交叉接法的网线传输到PC机B的其中一个网卡,其通信协议为TCP/IP,控制指令经过运算后通过UDP协议发送到灵巧手,并接收来自灵巧手的传感器信息。
(3) 灵巧手平台。它是配备有网络接口模块的灵巧手子平台,其主控芯片为FPGA。PC机B生成的控制指令通过正常连接的网线传输到灵巧手,灵巧手执行控制指令并实时回传各传感器的数据。该数据既通过UDP通信协议传到PC机B,又传到灵巧手的控制器以形成控制闭环。传感器数据最终回传到Simulink平台,便于使用者处理数据、调试控制算法。
图1 QNX-Simulink控制系统原理
2.2 Simulink子平台的设计
Matlab/Simulink的SimMechanics模块提供了大量对应于实际元件的单元体,能够直观地建立多种刚体动力学模型。以灵巧手建模为例,在其物理模型的基础上,通过编制子程序的方式将灵巧手各模型进行封装,建立了控制模型库(见图2),主要模型库介绍如下。
图2 灵巧手Simulink模型
(1) 无刷直流电机驱动模型(BLDCM)。灵巧手各关节均采用直流无刷电机驱动,电机转子的转动惯量很小,在实际的建模中予以忽略。采用二阶系统描述电机的转矩-电流关系[7]。
(2) 单手指的正/逆运动学模型(LFingers)。灵巧手手指的实物及简化模型见图3,手指具有3个回转关节,简化为三连杆串联机器人,根据D-H方法建立如图3(b)所示的坐标系[8],通过坐标变换可以求得手指的正向运动学模型。
(3) 整手的动力学模型(Hand Mechanics)。动力学模型采用SimMechanics建立。首先确定各指节长度尺寸,然后根据灵巧手的PRO/E模型测得各指
图3 灵巧手手指实物及简化模型
节的质心位置、绕质心的转动惯量等参数,输入到Simulink中的“Rigid body”模块实现各杆件的建模,通过“Revolute”模块定义各关节之间的转动关系,通过“Joint Actuator”模块定义关节驱动力矩。根据灵巧手的结构在相应的关节模型处添加位置/力矩传感器(见图4)。为了进一步实现QNX系统中模型的运动可视化,本文将灵巧手在PRO/E中的三维实体模型进行简化,抽取其“壳”特征,转换为“*.iv”文件,以节点方式导入Open Inventor中,按照各零件装配“父子”关系依次装配。当灵巧手在Simulink平台中进行仿真时,各关节的角度参数将传输到QNX系统中驱动仿真模型运动,从而实现仿真的可视化。
图4 手指的动力学模型
(4) PWM控制仿真模型(PWM control simmodel)。由于实际的灵巧手采用PWM控制,因此本文以PWM信号、关节力矩、期望角度为输入变量,以实际关节角度、角速度为输出,建立了各手指的PWM仿真模型,仿真周期根据灵巧手的实际控制周期确定。
(5) API模型(Operate API)。API模型主要用于建立Simulink与灵巧手之间的信息通道,包括系统上电自检、通信状态的监测、位置霍尔信号/力矩传感器信号的采集等,从而能够完成对系统硬件资源的访问。
2.3 QNX子平台的设计
QNX子平台基于QNX Neutrino RTOS,RTOS通过标准API的方式将系统的I/O、定时器等各种资源封装起来。该平台通过分布式通信以支持不同的系统间通信。其中该平台采用CPU空闲执行的方式与Simulink子平台进行通信,主要是由于Simulink与QNX之间传输的用户指令及控制参数传输量很小,不需要很强的实时性;该平台与灵巧手平台之间的通信采用定时器中断的方式,以保证发送控制命令与接收灵巧手传感器数据之间的实时性。
2.4 灵巧手子平台的设计
灵巧手子平台为基于FPGA的嵌入式操作系统,完全集成于灵巧手的机械本体内。主控芯片采用Altera公司的Cyclone II,通过2个NIOS软核处理器分别实现Ethernet通信与实时控制。其中Ethernet通信部分不需要硬实时通信,采用了VHDL语言及IP核的方式实现,即控制层MAC由IP核实现,通过MII接口输入到以太网控制芯片DP83848中,再通过网络变压器J1102转换后输出(见图5)。由于存储空间的限制,完整的TCP/IP协议很难集成到嵌入式系统中,本文采用了精简版的UDP协议来完成QNX平台与灵巧手平台的通信[9]。
该UDP接口主要实现两方面的功能:(1) 接收QNX平台发送的控制参数,通过FPGA内置的RAM传输到实时控制NIOS核,如图5所示;(2) 读取灵巧手位置/力矩传感器信号,经过预处理后通过TCP/IP通信回传到QNX子平台,如图1所示。
图5 通信系统硬件组成
原则上,Simulink的RTW工具箱具备自动生成C代码的功能,QNX系统也支持ANSI C代码,两者具备统一的接口文件。但是RTW生成的C代码无法直接应用于其他编译系统,因此本文对RTW及QNX编译器部分进行了二次开发,实现控制算法经由RTW直接生成QNX可执行文件的功能。代码生成流程如图6所示,其中有2个文件需要编写:
(1) Simulink的目标语言模板文件(*.tmf);
(2) makefile(*.mk)文件,在该文件中需要指定编译器,对程序编译进行指导以及生成的模型源代码进行链接。
通过上述二次开发,将Simulink与QNX整合为一体,实现了仿真与控制的无缝连接。
图6 基于模型的代码生成流程图
采用机器人技术与系统国家重点实验室研制的三关节串联机器手指进行了笛卡尔空间的位置控制实验,系统Simulink仿真控制模型如图7所示。其中Traj_Cartersian为笛卡尔空间的轨迹规划模块,x、y、z为期望的笛卡尔位置,JointPos1为期望的关节角度,BLDC为无刷直流电机驱动模型,HIT/DLR HAND为灵巧手的动力学模型。
指尖笛卡尔轨迹为一个圆,根据微分逆运动学方法[10]可以求得任意指尖位置对应的一组关节角度θ1、θ2、θ3。进一步采用Paul多项式轨迹规划方法得到各关节的期望轨迹[11],其中插值时间为1 s,加速度时间为0.2 s。
控制算法采用基于PI的关节间交叉耦合控制方法[12],手指基关节、中关节以及末关节比例系数Kp分别为318.25、505.4、519.65,积分系数Ki分别为16.75、26.6、27.35。考虑到代码的自动生成,在算法仿真过程中需要将求解器步长设定为固定,因为QNX编译器不支持可变步长。
仿真及实验结果对比如图8所示。通过对比可以看出,Matlab仿真与实验在各方向上的误差变化趋势具有较高的一致性,说明机械手各模型的建立以及PI控制参数的调整基本正确。理论上如果指尖的笛卡尔位置是可检测的,则可以通过调整参数使指尖的跟踪精度保证在任意精度范围内。但实际上,目前的机器人系统还很难做到这一点。
图7 灵巧手位置控制模型
图8 手指位置控制结果
基于QNX-Simulink的机器人实时控制平台与其他基于文本编程的实验平台相比具有以下优势:充分利用了Simulink强大的图形化建模功能,在进行实验之前可以对算法进行仿真,在通过仿真验证后整个仿真模型可以直接移植到实时控制平台中进行实验,避免了对算法进行繁琐的重复编程;采用QNX微内核实时操作系统具有硬实时性、高稳定性和高可靠性,可以有效保证系统的实时性;具有良好的可读性,方便算法的调式及移植。
References)
[1] Haidacher S,Butterfass J,Fischer M,et al.DLR Hand II:Hard- and Software Architecture for Information Processing[C]// Proceedings of the 2003 International Conference on Robotics and Automation. 2003:684-689.
[2] Lovchik C S,Difler M A.The Robonaut Hand:A Dextrous Robotic Hand for Space[C]//Proceedings of the 1999 IEEE International Conference on Robotics and Automation.Detroit,1999:907-912.
[3] 孔繁峨,陈宗基.基于RTW和VxWorks的飞行控制系统实时仿真[J].系统仿真学报,2007,19(11):2455-2457.
[4] The MathWorks Inc.MATLAB and Simulink Help Land Unpiloted Boeing Spacecraft [EB/OL].[2014-11-06].http://cn.mathworks.com/company/user_stories/matlab-and-simulink-help-land-unpiloted-boeing-spacecraft.html.
[5] Jensen E D.Hard and Soft Real-Time[EB/OL].(2010-02-18)[2014-12-26].http://www.real-time.org/hard and soft real time.htm.
[6] 陈兆芃.具有网络功能的灵巧手嵌入式控制系统设计[D].哈尔滨:哈尔滨工业大学,2007.
[7] 何平.基于物体阻抗的机器人灵巧手控制[D].哈尔滨:哈尔滨工业大学,2004.
[8] Montana D J.The Kinematics of Multifingered Manipulation [J].IEEE Transactions on Robotics and Automation,1999,11(4):491-503.
[9] Chen Z P,Lii N Y,Wu K,et al.Flexible FPGA-based Controller Architecture for Five-Fingered Dexterous Robot Hand with Effective Impedance Control[C]//IEEE International Conference on Robotics and Biomimetics. 2009(9):1063 -1068.
[10] 何平,高晓辉,杨磊,等.HIT/DLR多指手抓取操作研究[J].哈尔滨工业大学学报,2005,37(11):1555-1559.
[11] Paul R P.机器人操作手:数字、编程与控制[M].郑时雄,谢存禧,译.北京:机械工业出版社,1991:130-134.
[12] Sun D, Shao X Y, Feng G A. Model-free Cross-coupled Control for Position Synchronization of Multi-axis Motions:Theory and Experiments[J].IEEE Transactions on Control Systems Technology,2007,15(2):306-313.
Research on innovative experiment platform of robot based on QNX-Simulink
Wang Xinqing1, Chen Zhaopeng2, Wang Dongjian2, Pan Jun2, Jiang Li2
(1. College of Mechanical and Electronic Engineering ,China University of Petroleum (East), Qingdao 266580,China; 2. College of Mechanical and Electronic Engineering,Harbin Institute of Technology, Harbin 150001, China)
Due to the problems of difficult coding,inconvenient debugging and poor portability of currently existing robot experiment platform,a real-time control platform is designed using QNX-Simulink.The model-based design method is utilized,the robot model and control algorithm are visually designed by Simulink; the Matlab/RTW toolbox is partially modified in order to generate the control code automatically; and the TCP/IP protocol is adapted to realize data communication.Taking the platform design and control of a dexterous robot hand as an example, this paper compares the simulation result with the experimentation result,the trend of the error has consistence,which has proved the feasibility of the platform.
computer simulation; robot hand; experiment platform; real-time control
2014- 11- 11
国家自然科学青年基金项目(51305460);中央高校基本科研业务费专项资金资助项目(14CX02068A);中国石油大学教学改革重点项目(JY-A201408)
王新庆(1982—),男,山东莱芜,博士,讲师,主要研究方向为机器人技术.
E-mail:thinkpalm@126.com
G42
A
1002-4956(2015)7- 0139- 05