并联机器人仿真运动控制的多线程实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
并联机器人仿真运动控制的多线程实现
Multithreading Realization of Simulation Motion Control of the Parallel Robot
(海军工程大学)彭利坤邢继峰肖志权曾晓华
PENG, Likun XING, JifengXiao, Zhiquan Zeng, Xiaohua
摘要:现代运动模拟器对响应快速性、跟踪准确性等仿真运动特性提出了更高要求,使得并联机器人机构的运动控制更为复杂。以某型潜艇操纵模拟器为例,其控制软件采用模块化设计,利用NT环境下多线程技术,结合多媒体定时器、普通定时器,实现软件的洗出滤波、运动学反解、运动信息发送、安全保护等多任务的有机调度。在外控线程中建立网络数据接收、数据处理、液压缸控制信息发送等三个子线程,将它们从外控线程中分离出来,大大提高了数据传输和处理及运动控制的实时性和可靠性。
关键词:并联机器人;多线程;多媒体定时器;运动控制
中图分类号:TP311.1; TP391.9 文献标识码:A
文章编号:
Abastract: In order to meet the demand of the emulational kinetic characteristics of modern motion simulator such as fast response and precise tracking, the control system of the parallel robot mechanism becomes more complex. As an example of submarine manipulating simulator, the modularization design and the technologies such as the multimedia timer, common timer and multithreading under NT environment etc. are adopted in the control system programing, which realize the multitask scheduling of washout filter, inverse kinematics solution, sending control data and safeguarding. By separating three sub-threadings, the Ethernet data acquisition, the data processing and the hydraulic cylinder control information sending, from the external control threading, the real time performance and reliability of the data transmitting, processing and motion control can be improved.
Key words:parallel robot; multithreading; multimedia timer; motion control
1 引言
飞机、舰船、赛车、列车等运动模拟器系统,是以Stewart平台为原型的并联机器人机构最重要的应用方向,它们一般构成分布式半实物仿真系统。以某型潜艇操纵模拟器为例,整个模拟系统由教练控制台、模拟潜望镜、舱段操艇装置、六自由度(6DOF)并联机器人机构等四个分系统构成,几个分系统通过以太网传输交换数据。其中液压6DOF并联机器人为模拟潜艇空间运动的关键机构,其控制软件必须完成潜艇姿态数据的接收、处理、控制执行器(一般为液压缸)动作、实时动态显示分析等繁杂的任务。这种多任务的软件开发,基于过程的编程设计已显得力不从心,而面向对象的多线程编程因其具有接口能力强、并行处理、运用灵活等优点,成为设计本控制软件的首选。
2 控制模块
该控制软件包括洗出滤波算法、运动学反解、内控、自检、外控、逻辑控制、安全保护、平台起停、实时动态显示、正解监控、网络通讯等多个控制模块。
2.1 洗出滤波算法
虽然各种运动模拟器模拟运动的侧重点有所不同,但洗出滤波总是需要的。在模拟运动过程中,液压缸的行程有限,故在一次动作完成后,必须换向回到中性位置,以使下一个运动模拟有足够的行程,通常将这种回到中性位置的附加运动称为运动的洗出。通过运动学仿真、质心坐标转换等计算过程,而得到被仿真设备的速度、加速度,再通过高、低通滤波器滤波、积分等一系列算法转化为运动平台的线位移和角位移的过程称为运动的滤波。经典的
彭利坤:博士研究生
基金项目:军队研制基金资助项目(JXB-2004-21)
滤波算法如图1所示。因Matlab 软件具有强大的
数值计算功能,其自带的Simulink 软件也集成了
大量可直接利用的工具箱,故洗出滤波算法利用
Matlab 工具箱编制,使其在后台运行,通过动态
链接库(DLL)调用。
2.2 运动学反解控制
当已知并联机器人机构输出件(上平台)的位置和姿态,求其主动件(液压缸)的输入运动
称为机构的运动学反解。模拟器运动机构不断接收潜艇姿态的仿真数据,由该模块进行运动学反解计算后,控制液压缸实时跟踪其运动,提供给训练者尽可能逼真的体感运动。
2.3 运行方式
因为不同的需要,将运行方式设置为三种模式:自检、内控、外控。自检时并联机器人上平台作单自由度正弦运动,用于系统运行前的检查。内控可以进行平台的手动调试,此时可通过“单自由度调节按钮”控制平台作单自由度或复合运动。外控是平台的主要工作方式,此时平台通过网络通讯接收上位机的运动信号,跟随上位机输出信号运动。
2.4 逻辑保护
逻辑控制和保护功能主要是通过数字I/O 采集卡和运动控制卡上的I/O 口,管理运动控制及其附属设备之间的所有I/O 操作,通过I/O 接口采集系统所有模拟转换和开关状态,在线监测系统的运行状态,并进行故障分析和处理,通过安全保护模块对平台实施相应的保护动作。
2.5 动态显示
在实时动态显示线程中,可以反映系统运行的信息:液压缸缸长、液压缸初始定位、上平台名义位姿和实际位姿、油温油压、运行方式、声光报警等,使操作者在控制台上对并联机器人机构的运行情况一目了然。
2.6 正解监控
在系统运动过程中,利用位移传感器通过运动控制板卡实时采集液压缸缸长,通过机构的运动学正解,求得上平台的实际位姿,以和上平台的名义位姿进行误差计算,达到监视与保护的目的。
3 多任务调度
以上多个控制模块决定了系统控制软件的复杂性,故软件在VC++编程环境中开发,并综合运用多媒体定时器、普通定时器,以及多线程编程技术,实现仿真运动控制的多任务调度。其总体流程图如图2所示。
基于WM_TIMER 消息的普通定时器是低精度
的,它最多可以精确到54.915毫秒,并且WM_TIMER
消息的优先级比较低,因此普通定时器定义的线程中
进行作用相对次要的动态显示。另外由于并联机构的
位置正解耗时较长,而在控制中它只起监视作用,并
不直接参予平台的控制,故该模块也置于普通定时器
线程中。为了随时采集系统的数据而“不丢失”,并尽
快实施相应的控制与保护动作,需要精度和优先级都
较高的抢占CPU 时间的方式,在此采用多媒体定时
器,其定时分辨率最高为1ms,远远高于Windows 提
供的默认普通Timer 的性能。利用多媒体定时器开辟
的独立线程作为运行方式(自检、内控、外控)切换
控制、起动、停止并联机构运动平台的主程序。当并
联机构上平台起动完毕到达中性位置,且运行方式确定后,停止该线程的工作,进入相应的运行方式线程。
在运行方式线程(并行的其它两个线程停止)中,除完成上平台名义位姿的运动学反解计算,发送液压缸控制信息(至运动控制板卡)外,还必须实时监测系统的运行情况,如运行方式
切换、或有停止运行指令、或发生严重故障时,立即停止该线程,同时起动主控线程(多媒