基于OpenMP的Stewart并联机器人控制系统*

2016-08-22 12:11于慧莉
传感器与微系统 2016年7期
关键词:力值支腿长春

李 昂, 韩 康, 霍 琦, 于慧莉

(1.中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033;2.国网吉林省电力有限公司 长春供电公司,吉林 长春 130000)

基于OpenMP的Stewart并联机器人控制系统*

李 昂1, 韩 康1, 霍 琦1, 于慧莉2

(1.中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033;2.国网吉林省电力有限公司 长春供电公司,吉林 长春 130000)

针对Stewart并联机器人控制难度大的问题,实现了一种基于OpenMP的Stewart并联机器人上位机控制系统,对机器人实现了快速有效直观的振动控制。系统共包含了动力学解算模块、数据传输模块和人机交互模块,不仅能够准确地计算出振动数据,控制机器人振动,而且也设计了简洁明了的用户界面,提升用户体验。为了提高软件的执行效率,还加入了OpenMP多线程并行计算技术加速控制算法,最高达到了2.18倍的加速比。验证了软件计算的正确性、控制的稳定性和执行的高效性。

并联机器人; OpenMP; 并行计算; 控制软件; 动力学

0 引 言

Stewart平台并联机器人是一种广受关注的机器人构型,它具有精度高、刚度大、动态响应好等优点,因而在航空航天等领域应用较为广泛[1]。Stewart平台由上下两个平台构成,其中,上平台为动平台,下平台为定平台,两个平台间由6条支腿相连,支腿的长度是可变化的,6条支腿长度变化合成实现动平台的运动[2]。基于Stewart构型的振动机器人在工程应用中有很高的实用性和研究意义[3]。

传统机器人的振动控制大都直接靠硬件实现,学习成本高且灵活性较低,本文针对这个问题实现了一种基于OpenMP技术的Stewart并联机器人控制软件,既能正确控制机器人振动,也降低了机器人控制的难度[4]。

1 控制系统的总体设计

机器人控制系统由上位机控制系统+下位机数字信号处理器(digital signal processor,DSP)构成,其中,下位机DSP负责接收控制系统传来的振动数据,并按照这些数据控制机器人各支腿的电流输出,从而实现振动。控制系统的核心为上位机软件,通过软件计算出一定初始条件下的振动数据,并通过PC串口传送给DSP,同时,控制系统实时接收由下位机传回的机器人传感器数据,以实现闭环控制。除了数据传输外,命令传输也由控制系统执行。其流程图如图1所示。其功能图如图2所示。

2 控制系统的设计与实现

2.1 数据通信与传输模块

考虑到机器人控制信息吞吐量较低,且对信息可靠性要求较高,软件选择基于RS—232标准的串口通信方式。数据通信传输模块的主要功能见图2。

图1 控制系统的系统流程图Fig 1 System flowchart of control system

图2 控制系统功能图Fig 2 Function chart of control system

2.1.1 串口自动查询和连接

实际应用中,为了达到更好的用户体验,系统中串口的查询和连接无需用户操作,而是由后台自动完成的。Windows操作系统会将可用的串口信息存储在注册表的“HKEY_LOCAL_MACHINE/HARDWA RE/DEVICEMAP/SERIALCOMM”这一表项中,在控制平台创建成功后,后台会自动访问这一表项,找出可以连接的串口并读取相应的参数,若存在这样的串口,则软件会创建一个新的串口变量,并将连接参数赋给这个串口变量,之后的通信操作都由这个变量完成;若不存在这样的串口,则重复执行上述操作直到用户选择退出程序或者找到可用串口[5]。

2.1.2 数据和命令帧的封装

为了防止数据在传输过程中丢失或出错,系统将待传输的数据封装成帧,为了方便解析,系统将数据和命令采用同一种帧格式封装,帧格式如表1所示。

表1 帧格式与各标识长度表Tab 1 Format of frame and length of each mark

每个帧的长度为9~255字节,帧的类型定义了此帧是命令帧还是数据帧;帧的长度定义了帧的有效内容有多少个字节,只有当帧为数据帧时,这个标识才有意义,若此帧为命令帧,则长度固定位1;校验和为对帧内容的校验,确保传输内容没有出错;帧头和帧尾均为固定的两字节。帧封装结束后,系统就会将其通过串口进行发送。

2.2 人机交互模块

本系统设计了以绘图功能和数据存取功能为核心的功能模块,提升用户体验。

2.2.1 力值曲线绘制功能

动力学逆解算出每条支腿的振动数据,包括加速度值和力值[6]。但是这些值若未经验证直接发送至DSP控制器上,就可能发生因错点而导致的振动异常,在振动过程中这种异常是很难准确定位的,因此,在数据通信之前,将力值曲线绘制在图片上,就能直观地观测到各个曲线的极值和趋势等,尽量避免上述异常的发生。

本系统基于C#.Net平台来设计用户界面,其中绘图功能的开发基于ZedGraph控件,它能够绘制曲线图和柱状图[7]。ZedGraph控件继承自FrameWork框架中的UserControl Interface,因而它可以像C#.Net提供的其他控件一样进行拖放操作。当动力学逆解结束后,就会启动绘图流程,首先,在ZedGraph控件中生成图层,再在图层中声明六条曲线,每条曲线绑定一个力值数组;然后,将每条曲线的力值按照振动的先后次序插入到各自的力值数组中;最后,检测是否有点超出当前的显示范围,若有,则重绘坐标轴使其能够正常显示。

2.2.2 数据存取功能

并联平台振动形式的复杂性决定了初值的细微不同可能会造成结果的巨大差异,为了实现振动的可重复性,系统提供了振动初始条件的存取功能。系统采用FileStream类提供的文件流读写方法对初始条件进行保存和读取[8]。

2.3 动力学逆解模块

2.3.1 动力学逆解

动力学逆解是指已知某一时刻并联平台的位姿,平台速度和加速度,求解施加在每条支腿上的驱动力大小[9]。设施加在铰链上广义力为

(1)

引入拉格朗日系数λ后,可推出广义力以及相应的广义驱动力之间关系的规范形式为

(2)

式中τ代表广义驱动力,m代表主动关节的数目。在得到各个支腿的动力学模型后,整理可得动力学逆解方程

(3)

式中Qe为所求的广义力[10]。

2.3.2 OpenMP并行计算

并联平台的一次振动需要求多个振动点的力值以形成至少一个周期的循环振动。而每次求广义力都要进行一次动力学逆解运算,这个循环求解过程是极为耗时的。对这个循环进行进一步分析发现每次循环求解之间是相互独立的,因此,考虑将这个循环进行OpenMP并行分解加速程序执行[11]。

OpenMP并行计算的原理是将循环体拆分成多个独立的任务,这些任务由CPU或者GPU上的多个计算核心同时计算完成,其原理图如图3所示[12]。

图3 并行计算原理图Fig 3 Principle chart of parallel computing

从上图中可以看出,串行计算时,设共有m×n个任务,每个任务的执行时间为1,则串行计算总的计算时间为

Ts=m×n

(4)

采用并行计算后,将这些任务分配到m个线程上,每个线程执行n个任务,则并行计算总的计算时间为

Tp=T1=T=…=Tm=Ts/m=n

(5)

可以看出:采用并行计算后,理论上总的计算时间缩短为原来的1/m,其中,m为参与并行计算的线程数目。这就大大提高了计算效率,缩短计算时间[13]。

3 并联机器人控制软件实验结果分析

为了验证力值运算结果的正确性,软件运行了与Matlab软件相同的一组算例,并将计算结果作对比,其结果如图4、图5所示[14]。

图4 并联机器人控制软件运算结果Fig 4 Computing result of parallel robots control software

图5 Matlab运算结果Fig 5 Computing result of Matlab

从图中可以看出,每条支腿的曲线走势,极值完全一致,进一步,采用ultraCompare软件对结果进行对比,发现其极差小于等于10-6,证明系统的运算结果是完全正确的。

最后,验证了OpenMP并行计算对于效率的提升,实验采用的计算机处理器为IntelCoreI7 2670QM处理器,其硬件规格为四核心八线程,实验结果如表2所示。

表2 并行计算时间表格Tab 2 Time of parallel computing

由表2中可以看出:在保证计算准确性的前提下,开启多线程并行计算后,计算时间会随着参与并行计算线程数目的增加而缩短,其加速比也会随之大幅增加。可见,并行计算对提升计算效率起到了很大作用。

4 结束语

本文设计并实现了基于OpenMP的Stewart并联机器人控制系统。对系统中的各个重要功能模块进行了分析和说明。进行了一系列实验验证了并行计算的正确性和高效性。机器人能够在控制系统的操作下实现较为精确,灵活的振动,为并联机器人振动的研究和发展奠定了良好的基础。

[1] 高 洪,赵 韩.并联机器人机构学理论研究综述[J].安徽工程科技学院学报:自然科学版, 2006(1):73-79.

[2] Su Y X,Duan B Y,Zheng C H,et al.Disturbance-rejection high-precision motion control of a Stewart platform[J].Control Systems Technology,2004,12(3):364-374.

[3] 王 宪,杨国梁,张方生,等.基于牛顿—拉夫逊迭代法的6自由度机器人逆解算法[J].传感器与微系统,2010,29(10):116-118.

[4] 刘瑞梅,刘铁英,韩晓毅.注册表管理的C#方法[J].河北建筑工程学院学报,2009,27(4):108-111.

[5] 翟希述,王宝兴,范 淼.基于Visual C#的串口通信程序设计[J].电子科技,2011,24(2):24-26.

[6] Aleksander G,Krzysztof H,Gabriel K,et al.Motion analysis of mechatronic equipment considering the example of the Stewart platform[J].Solid State Phenomena,2015,220-221:479-484.

[7] 朱亦钢.应用Zedgraph高效开发数据图表[J].电脑编程技巧与维护,2009(12):59-61.

[8] 曾 辉.基于C#的文件处理[J].软件导刊,2006(9):44-45.

[9] 徐 鹏.六自由度并联机构Stewart平台的动力学建模与仿真[D].重庆:重庆大学,2005.

[10] 单 鹏,谢里阳,田万禄,等.基于D—H矩阵的Stewart型并联机床位姿误差计算模型[J].机械工程学报, 2010,46(17):186-191.

[11] LaSalle D,Karypis G.Multi-threaded graph partitioning[C]∥IEEE the 27th International Symposium on Parallel & Distributed Processing(ISPDP),2013:225-223.

[12] 方先康.多核多线程处理器环境下软件系统的设计与实现[D].北京:北京邮电大学,2008.

[13] 陈 昊.基于OpenMP的并行蚁群算法求解协同空战火力分配[J].传感器与微系统,2013,32(1):20-24.

[14] 贾振元,褚宏飞,刘 巍,等.基于Stewart结构六维大力传感器的性能分析及结构优化[J].仪器仪表学报,2010,31(2):341-346.

Control system of Stewart parallel robot based on OpenMP*

LI Ang1, HAN Kang1, HUO Qi1, YU Hui-li2

(1.Changchun Institute of Optics,Fine Mechanics and Physics,Chinese Academy of Science,Changchun 130033,China; 2.State Grid Electric Power Co in Changchun,Jilin Province Power Company,Changchun 130000,China)

Aiming at problem of great control difficulty of Stewart parallel robot,implement an upper PC control system of Stewart parallel robot based on openMP,which achieves fast,efficient and intuitive vibration control on robot.This system contains solution module of dynamics,data transmission module and Human-Computer Interaction module,it not only can accurately calculate vibration data,control robot vibration but also contains a concise User Interface to improve user’s experience.Multi-thread parallel computation technology acceleration control algorithm is also used to improve software efficiency based on OpenMP which achieves 2.18 speedups.A series of tests are executed to prove the correctness of software computation,stability of control and high efficiency of execution.

parallel robot; OpenMP; parallel computation; control software; dynamics

10.13873/J.1000—9787(2016)07—0067—03

2016—06—19

国家自然科学基金资助项目(11302222);中国科学院长春光学精密机械与物理研究所创新基金资助项目(Y4CX1SS141)

TP 319

A

1000—9787(2016)07—0067—03

李 昂(1988-),男,吉林省白城人, 硕士,实习研究员,从事计算机科学与技术、高性能计算方向研究。

猜你喜欢
力值支腿长春
初夏
LG550t架桥机首跨50m及变跨过孔的介绍与研究
食品接触材料及制品脱色试验影响因素的探究
支腿油缸的伸缩控制系统、方法和机械设备
印语长春
橡胶阿克隆磨耗试验机示值测量结果不确定度评定
高空作业车副车架及支腿结构分析
走进长春净月潭
论力标准机加力同轴在力值计量中的重要性
PTS公司推出新型气动控制挂车支腿