基于cs结构的空间机械臂控制系统软件架构设计
Journal of Computer Applications
计算机应用,2014,34(10) :3059-3064文章编号:1001-9081(2014)10-3059-06
ISSN 1001-9081CODEN JYIIDU 2014-10-10
http://www.joca.cn
doi :10.11772/j.issn.1001-9081.2014.10.3059
基于C /S 结构的空间机械臂控制系统软件架构设计
张光辉,王耀南
(湖南大学电气与信息工程学院,长沙410082) (*通信作者电子邮箱631004979@qq.com)
*
要:为了获得性能优越、实用性强的空间机械臂控制软件,提出了一种C /S结构下基于多线程和循环队列的
空间机械臂控制系统软件架构,并详细介绍了各线程及队列的实现过程。在分析空间机械臂控制软件的特点和功能
摘
需求的基础上,按照横向分块、纵向分层的原则,将机械臂控制软件的各项功能合理分配到四个并行线程中,借助两个循环队列构建缓存机制,以提高控制系统的数据处理能力并减少不必要的等待时间。四个线程及两个循环队列之间相互通信,协同工作。实验结果表明,该架构能够以较小的控制延迟实现机械臂的运动控制,架构性能满足实际控
证明了方案的有效性和可行性。制需求,
关键词:空间机械臂; 多线程; 循环队列; 软件架构; 运动控制中图分类号:TP241文献标志码:A
Software architecture design for space manipulator control system based on C /Sstructure
ZHANG Guanghui ,WANG Yaonan
(College of Electrical and Information Engineering,Hunan University,Changsha Hunan 410082,China )
*
Abstract:To achieve high-performance and practical space manipulator control software,a software architecture for space manipulator control system based on multithreading and round-robin queue was proposed under the C /Sstructure,as well the details of implementation.After analyzing the features and functional requirements of space manipulator control software,the various functions of manipulator control software were distributed to four different parallel threads,according to the principle of transverse block and vertical stratification,and two round-robin queues were created for caching,to improve the control system's data processing ability and reduce unnecessary waiting time.Those four threads and two round-robin queues communicated with each other to work together.The experimental results show that it is easy enough to control space manipulators with a short delay through this software architecture,and the performance meets the actual needs,which proves the effectiveness and feasibility of this scheme.
Key words:space manipulator; multithreading; round-robin queue; software architecture; motion control
0引言
造,使其适用于服务机器人嵌入式平台,取得了一些成果,但工
作量太大,目前仍处于起步阶段,距离工程实践还有较大距离;孟宪栋
[8]
空间机械臂作为在轨支持、服务的一项关键技术已经进入
如:加拿大的航天飞机遥操作机械臂系统(Shuttle Remote太空,
Manipulator System ,SRMS)Service System ,MSS )
[2]
[1]
针对空间机器人平台,提出基于嵌入式Linux 的三层
、美国的移动服务系统(Mobile
软件系统架构,但架构细节不足,难以应用于实践。国外则将
比较重点放到了开源通用机器人控制系统软件架构的研发上,
[9]
OROCOS(Open 有代表性的如ROS(RobotOperating System )、
、俄罗斯的欧洲机械臂(European
RoboticArm ,ERA)[3]以及日本的实验舱遥操作臂系统(Japanese Experiment Module RemoteManipulator System ,JEMRMS)
[4]
RobotControl Software )[10]等,这些开源软件系统多是针对PC 平台设计,且对Linux 系统依赖性强,移植到空间机械臂的嵌
开发难度高。入式平台上的工作量较大,
针对以上国内涉足浅、国外难度大的现状,本文提出一种
基于C /S结构,与操作系统无关的,适用于空间机械臂嵌入详细阐述架构实现过程,式平台的机械臂控制系统软件架构,采用多线程及循环队列技术,合理分配机械臂控制软件的各建立缓存机制,兼顾功能的多样性及性能的高效性,项功能,
并在实际空间机械臂平台上验证架构性能,以期促进国内外降低空间机械臂控制软件的开发难度,缩短开相关领域发展,发周期。
等,并越来越受到人们的关注。作为一种以运动
[5]
为核心的空间机电系统,空间机械臂运动控制系统的研究已
然成为世界空间技术领域的热点,控制系统软件架构的设计就
[6]
是其中之一。国内,邱实针对服务机器人提出基于B /S(Browser /Server)、C /S(Client /Server)混合模式的机器人控制
但体系庞大,不适用于空间机械臂嵌入式平台;系统软件架构,
Yu 等[7]针对多核嵌入式处理器平台,time 采用RGMP(Real-operation system and General purpose operation system on Multi-core Processor )解决方案,尝试对通用机器人软件系统加以改
收稿日期:2014-05-16;修回日期:2014-06-25。
基金项目:国家863计划项目(2012AA111004);国家自然科学基金资助项目(61175075)。作者简介:张光辉(1988-),男,河南商丘人,硕士研究生,主要研究方向:智能控制与机器人;王耀南(1957-),男,湖南长沙人,教授,博士,主要研究方向:智能控制与机器人、图像识别理论与机器视觉应用、先进制造装备智能化控制。
1
1.1
空间机械臂控制系统软件架构分析
软件架构的概念
软件架构是一系列相关的抽象模式,用于指导软件系统
[11]
描述的对各个方面的设计。软件架构是一个系统的草图,
象是直接构成系统的抽象组件,各个组件之间的连接则明确和相对细致地描述组件之间的交互。优秀的软件架构是降低成本、改进质量、支持按计划及时交付、支持按需求交付及降
[12]
低风险的关键因素。
1.2空间机械臂控制系统软件架构特点
一般来说,空间机械臂控制系统软件架构具备如下特点:1)十分注重灵活性及可维护性。由于空间技术发展迅对空间机械臂功能需求越来越多,为了方便增加或减少机速,
械臂功能,控制系统软件架构要做到横向分块、纵向分层,甚至可以牺牲部分实时性能来获得较好的灵活性及可维护性。
2)各功能模块之间独立性高。在空间机械臂的建造过机械加工工艺与电气系统的编程方式往往不是一成不程中,变的,这种改变通常都要有上位机的配合才能实现,所以空间
以应对硬机械臂控制系统软件架构各模块之间要独立存在,
件系统的各种变化。
3)控制周期短,实时性高。为了实现对机械臂位置、姿态和速度的精确控制,空间机械臂控制系统软件的控制周期一般都在ms 级。
4)系统稳定性高。空间机械臂多数运行于空间站或航天飞机上,工作环境高真空、高辐射,且多是长时间连续运行,
[13]
稳定性是重中之重。
5)具备应对大运算量、复杂运算的功能。空间机械臂一般都具有路径规划、视觉伺服控制、柔顺控制及自主避障等复杂功能,这些功能的实现需要大量的复杂运算,这是空间机械臂控制软件不得不面对的难题。
六维力传感器、各关制器端协调控制机械臂上的视觉控制器、
节及末端电机来实现对机械臂整臂的控制,因此,控制软件采
[14]
用基于C /S结构的远程操作模式。这里以机械臂系统的中央控制器为控制系统的Server 端,以地面遥操作计算机为控制系统的Client 端,两者通过无线通信技术进行数据交换。Server 端中央控制器是整个控制系统的核心所在,不仅负责
而且本机内部还要执行大量的复杂协调所有部件间的通信,
运算,是决定机械臂控制系统性能的关键,中央控制器软件集中体现了机械臂控制系统软件的特点。基于此,本文所研究的控制系统软件架构主要指中央控制器软件架构
。
图26-DOF 空间机械臂控制系统拓扑结构
2.2
2
2.1
空间机械臂控制系统软件架构设计
6-DOF 空间机械臂系统
软件架构总体设计
DOF 空间机械臂控制系统Server 端软件功能首先,对6-作出分析,结果如图3所示。这里将Server 端软件的功能分
为两类:对外通信功能和本机内部功能,其中对外通信功能主要包括:与遥操作端、视觉控制器端、力传感器端和8个电机驱动器端建立通信连接,并收发数据;本机内部功能主要包括对接收到是控制指令进行解析,提取出控制参数,并根据参数进行机械臂运动控制决策,定时采集机械臂各硬件的状态信息,执行安全保护策略,并将状态信息封装成信息帧发送到Client 端计算机
。
本文结合自主研发的六自由度小型空间机械臂平台,阐述C /S结构下,空间机械臂控制系统软件架构的设计。该机
DOF (Six Degrees of Freedom )械臂系统的结构如图1所示。6-机械臂系统由六个关节、两个连杆及一个末端执行器组成,在
末端执行器与六号关节之间装有F /T传感器,也称六维力传
DOF 空间机械臂系统关节内装有19位光电式绝对感器。6-19
位置编码器,关节位置精度可达1/2转;机械臂末端执行器上安装有工业级CCD 手眼相机,用于视觉伺服控制。机械臂总长约1.2m ,重约40kg ,具备六个自由度,末端工具可根据需要更换,该系统可应用于空间货物自动抬升机构、机器人航天员、空间站舱内外小型服务系统、舱外维护与操作设备等领域
。
图3中央控制器软件功能分析
图16-DOF 机械臂系统
DOF 机械臂系统的控制系统拓扑结构,图2为该6-系统
通过地面遥操作端发送控制指令给中央控制器端,由中央控
根据空间机械臂控制系统软件架构的基本特点,结合以
上实际功能需求,本文提出了一种空间机械臂控制系统软件架构,架构总体设计如图4所示。
根据图3的功能分析结果,同时尽量做到架构模块独立,这里将中央控制器软件划分为四个功能模块:通信模块、指令执行
信息采集及保护模块、信息数据发送模块。由于中央控制模块、
器与遥操作端通信过于频繁且数据量较大,特将信息数据发送功能独立出来,以降低通信对数据处理性能的影响。信息循环队列
均采用数据链表的方式实和指令循环队列用来建立缓存机制,[15]
现,链表的大小在初始化后为固定值。
架构中的四个功能模块分别由四个并行线程实现,线程按照优先级从高到低的顺序为:架构主线程、信息采集及保护线程、指令执行线程、信息数据发送线程,分别对应于通信模块、信息采集及保护模块、指令执行模块、信息数据发送模块
。
在中央控制软件进程建立后,由系统自动创建,并立架构主框架,
一直处于活动状态。图5为架构主线程的设计流程图,首先,主
视觉控制器端、六维力传感器端的通信服务,线程创建遥操作端、
并监听连接请求;收到连接请求后,保存相应的连接信息,创建并挂起信息数据发送线程和信息采集及保护线程,之后,发送连接确认信号,进入数据接收等待;同时,初始化与各电机驱动器的CAN 连接,创建指令执行线程,准备实施机械臂控制;创建定时机构,准备定时唤醒信息采集及保护线程,进行机械臂状态信息采集和监控;在主线程接收到外部设备发送来的数据后,首先判断是否为指令数据:如果不是,则认为接收到的是状态数据,更新
则进一步判断是否为紧急相应的全局变量以保存数据;如果是,
是则执行紧急处理,否则将指令压入指令循环队列,并处理指令,
唤醒指令执行线程,处理指令数据,之后主线程进入下一帧数据接收等待
。
图4空间机械臂控制系统软件架构设计
架构主线程主要用来控制通信及协调任务,通过通信连接模块与其他各部件建立通信连接,通过数据接收模块接收各种数据,并将指令数据送往预处理模块,而将信息数据存储到相应的全局变量中,以供信息采集及保护线程使用,通过预处理模块进行紧急指令响应,并将非紧急处理指令压入指令循环队列,以供指令执行线程使用。同时本线程还要通过定时机构定时唤醒信息采集及保护线程。
信息采集及保护线程通过信息获取模块向各硬件模块发送信息请求指令,并借助架构主线程通过全局变量获取各硬件模块状态信息,之后通过安全保护模块执行安全策略,最后通过信息帧封装模块,将各种状态信息封装成信息帧,并压入信息循环队列。
指令执行线程通过指令读取模块从指令循环队列中读取控制指令,通过指令解析模块解析获取的指令,通过指令验证模块
通过参数提取模块提取有效控制参验证指令的完整性和合法性,
数,通过运动规划模块进行机械臂运动规划,通过驱动指令生成
通过电机控制模块向各电机发送驱动指模块生成电机驱动指令,
令,实施机械臂控制。
信息数据发送线程通过信息帧读取模块从信息循环队列读取信息帧,通过信息帧验证模块验证帧的完整性和合法性,通过信息帧发送模块将获取的信息帧发送到相应的目标计算机。
另外,信息循环队列不仅缓存来自信息采集及保护线程的状态信息帧,还要缓存各线程执行过程中产生的错误信息帧及执行结果信息帧。
2.3软件架构主线程设计
架构主线程是本架构的基础,负责全面协调各种通信及建
图5架构主线程设计流程
2.4
软件架构其他线程设计
信息采集及保护线程由架构主线程创建,用于采集各种
3062计算机应用
信息循环队列,唤醒信息数据发送线程
。
第34卷
状态信息,并监控机械臂状态,执行安全保护策略,创建后处于挂起状态。每隔一定时间由主线程中的定时机构唤醒,按照图6所示的流程处理数据。首先向力传感器发送状态数据数据获取成功后,接收并保存数据;然后,向各关节及末请求,
端电机驱动器发送状态数据请求,获取成功后,接收并保存数据;之后执行安全策略,判断各状态信息是否在安全范围内;最后,获取机械臂各限位器的状态,并将以上所有状态信息一压入信息循环队列,唤醒信息数据发送起封装成状态信息帧,
线程,并挂起本线程。在执行以上步骤时,如果出现任何异则紧急停止机械臂,停止当前所有操作,并封装相应的错常,
误信息帧,压入指令循环队列,唤醒数据信息发送线程,挂起本线程
。
图7指令执行线程设计流程
信息数据发送线程由架构主线程创建,用于发送以太网数据,线程创建后处于挂起状态。当有数据需要发送时,线程按照图8所示的流程处理数据。首先,判断信息循环被唤醒,
队列是否空,如果空,就挂起本线程,否则,取出一条完整的信通过帧头和帧尾验证所取出的信息帧是否完整,息帧;之后,
如果出现异常,就封装相应的错误信息帧代替取出的信息帧;最后,判断本机与目标端,即Client 遥操作端网络连接是否正常,如果正常,则将最终的信息帧发送到目标端,否则放弃操挂起本线程
。作,
图6
信息采集及保护线程设计流程
指令执行线程由架构主线程创建,主要用于运动决策和执行电机控制,线程创建后处于挂起状态。当接收到控制指线程被唤醒,按照图7所示的流程令时(非紧急处理指令),
处理数据。首先,判断指令循环队列是否空,如果空,即没有数据需要处理,自动挂起本线程,否则一次性取走队列内所有数据;然后,进行帧解析,判断出指令的类型,并根据帧头和帧尾进行指令验证,如果以上各步骤均正常,则从指令帧中提取出控制参数;之后,根据指令类型和控制参数进行运动规划,并生成电机驱动器能够识别的驱动指令;最后,判断与各驱动器连接是否正常,如果正常则将驱动指令发往各驱动器执行操作,并根据驱动器反馈回来的执行结果判断是否执行成功。如果最终指令执行成功,则封装相应的执行成功信息帧,否则,根据错误信息,封装相应的错误信息帧,并将信息帧压入
图8
信息数据发送线程设计流程
第10期2.5
软件架构缓存队列设计
张光辉等:基于C /S结构的空间机械臂控制系统软件架构设计3063
架构缓存队列由两个循环队列构成,是连接四个线程的纽带。虽然两者的搭建方式与步骤均相同,但功能及操作方式却不同。其中,指令循环队列用来缓存接收到的控制指令,仅缓存一条指令,且只有架构主线程对该队列执行入队操作。这是由于对机械臂实施控制的过程是依次进行的,队列大小
这样既能保证指令执行只需比最大的控制指令帧稍大便可,
的连续性,又能减少计算机资源占用量。要实现这一功能,在
将指令帧压入指令循环队列前必须判断队列内是否有数据,如果有就要处于等待状态,直到指令执行线程将队列内的指
才能将其压入。其入队、出队操作流程如图9所令取走后,示
。
为Microsoft Visual C ++6.0,编写语言为C ++。图12为采用该
DOF 空间机械臂运动的实验过程截图
。软件系统控制6-
图11表1
名称CPU 内存芯片组网卡电源功率操作系统
实验平台实物
中央控制器计算机配置表
参数
Intel Atom N25501.86GHz
DDR34GB Intel PCH 102ˑ Intel 82583千兆网卡
+12V
1.42A /12V Windows XP
Embedded
图9指令循环队列操作流程
信息循环队列则用于存储需要发送到遥操作端的信息由于其他三个线程都要对其执行入队操作,数据量大,操帧,
作频繁,信息循环队列要建大些,且能够缓存多条信息帧。对该队列执行入队操作时,要判断队列是否满队列了,如果满了,就要处于等待状态,直到信息数据发送线程取走部分信息帧,队列有空缺时才可入队。其入队、出队操作流程如图10所示
。
图12
机械臂运动控制实验
对架构性能的实验,包括两部分:
1)架构单执行周期平均数据处理时间实验。方法:由地面遥操作Client 端向机械臂中央控制器Server 端发送末端位Server 端软件记录下收到指令后执行的每一步姿控制指令,
操作及其时刻值,进行100次重复实验,求取平均值。Server 端接收到指令后需进行的复杂运算包括:1次从笛卡尔空间
6次两点间的样条差值运算,到关节空间的位姿反解运算,差差值时间100s ,总路径点数6000个。由于数值间隔100ms ,
为节省篇幅,仅将最终平均处理用时绘制成图,结据量较大,果如图13所示
。
图10信息循环队列操作流程
图13
架构数据处理平均用时
3实验验证
DOF 空间机械臂为平台,本文以自主研发的6-验证架构的
平台实物图如图11所示。该平台中央控制器计算机配置,性能,
如表1所示。中央控制器软件按照本文所述架构编写,开发环境
Server 端时间的获取方法为:调用函数
QueryPerformanceFrequency ()获取系统的计数器的频率,调用函数QueryPerformanceCounter ()获取计数器的值,然后用计数
3064计算机应用
参考文献:
[1]
第34卷
“开始接器的值除以计数器的频率,得到时刻值,再统一减去
-6
收数据”的时刻值,时间精度为10μs 。复杂运算的执行阶
平均用时5171.300899μs ,其他任务平均段为步骤10 11,
用时约529.205304μs ,整个数据处理过程平均用时约为5.7ms 。文献[16]中指出,对空间机械臂而言,软件系统数据处理时间小于20ms 时,对机械臂控制带来的影响较小,可
可见本架构可以满足空间机械臂运动控制需满足实际需求,
求,具有工程应用价值
。
[2]
[3]
[4]
[5]
图14关节1
实际轨迹与期望轨迹
[6]
[7]
[8]
[9]
图15
关节2实际轨迹与期望轨迹
2)地面仿真实验。地面控制地球同步轨道上的机械臂时,会存在至少约0.24s 的通信延迟,这是无线电波传输过程
本文在系统中加入0.3s 的通信导致的。为了模拟真实场景,
DOF 机械臂1,2号关节同时发送带有五次多延迟,然后向6-项式运动规划的点到点的运动指令,采集两个关节从发送指
令到运动完成之间的实时位置,与仿真期望轨迹作对比,结果分别如图14、图15所示。其中,关节1初始位置为-1.5708rad ,目标位置为1.6231rad ;关节2的初始位置为1.5711rad ,目标位置为0.9757rad ,运动时间均为180s 。
从实验结果可以看出,实际轨迹较期望轨迹存在一定的滞后,但轨迹基本吻合,能够较好地实现机械臂的运功控制。
[10]
[11]
[12]
4结语
[13]
HEINZ K,DOETSCH K H.The remote manipulator system for
space shuttle orbiter [J].Journal of Flight Sciences and Space Re-search,1978,2(4) :261-269.
GIBBS G,SACHDEV S.Canada and the international space station program overview and status [C]//Proceedings of the 52nd Interna-tional Astronautical Congress of the International Astronautical Fed-eration.Amsterdam:Elsevier Science,2002:591-600.
BOUMANS R,HEENSKERKC.The european robotic arm for the international space station [J].Proceeding of Roboticsand Autono-mous System,1998,23(1) :17-27.
MATSUEDA T,KURAOKAK,GOMA K,et al.JEMRMSsystem design and development status [C]//Proceedings of the 1991Na-tional Telesystems Conference Proceedings.Piscataway:IEEE Press,1991,1:342-351.
YU D,SUN J,MA X.Space manipulator technology and develop-ment suggestions [J].Spacecraft Engineering,2007,16(4) :1-8.(于登云,孙京,马兴瑞.空间机械臂技术及发展建议[J].航天器工程,2007,16(4) :1-8.)
QIU S.Service robot remote control key technology research [D].Harbin:Harbin Institute of Technology,2010:25-37.(邱实.服务机器人远程控制关键技术研究[D].哈尔滨:哈尔滨工业大学,2010:25-37.)
OS architecture for ro-YU Q,WEI H,LIU M,et al.A novel multi-bot application [C]//Proceedings of the 2011IEEE International Conference on Roboticsand Biomimetics.Piscataway:IEEE Press,2011:2301-2306.
MENG X.Researchand implementation of space robot software system [D].Beijing:Tsinghua University,2004:11-27.(孟宪栋.空间机器人软件系统研究与实现[D].北京:清华大学,2004:11-27.)
BAGNELL J A,CAVALCANTI F,CUI L.An integrated system for autonomous robotics manipulation [C]//Proceedings of the 25th IEEE /RSJInternational Conference on Intelligent Robotsand Sys-tems.Piscataway:IEEE Press,2012:2955-2962.
BRUYNINCKXH.Open robot control software:the OROCOSproject [C]//Proceedings of the 2001IEEE International Conference on Ro-botics and Automation.Piscataway:IEEE Press,2001:2523-2528.ZHANG W,WANG W,CHEN H.A UAV airborne software archi-tecture research [J].Computer Measurement and Control,2007,15(9) :1241-1252.(张闻乾,王伟,陈怀民.某无人机机载软件架构研究[J].计算机测量与控制,2007,15(9) :1241-1252.) EELES P,CRIPPSP,CAI H.The process of software architecting [M].Beijing:China Machine Press,2010:20-23.(EELES P,
——软件架构设计的过程[M].北CRIPPSP,蔡黄辉.架构实践—
京:机械工业出版社,2010:20-23.)
ZHANG X.Researchon large time delay of space robot teleoperation control system [D].Beijing:Beijing University of Posts and Telecom-munications,2013:1-9.(张晓峰.空间机器人遥操作系统延时控制策略研究[D].北京:北京邮电大学,2013:1-9.)
XU L.Remotemeasurement system implementation based on inter-net [J].Journal of Electronic Measurement and Instrument,2008,22(2) :52-55.(许丽丽.基于Internet 的远程测量系统实现方案研究[J].电子测量与仪器学报,2008,22(2) :52-55.)
本文结合空间机械臂控制系统软件架构的特点与需求,详细阐述了一种基于C /S结构,与操作系统无关的,适用于嵌入式平台的空间机械臂控制系统软件架构的设计理念及实现过
DOF 程,并在基于Windows XP Embedded 嵌入式操作系统的6-空间机械臂平台上验证了其功能及性能,实验结果表明:在执
行本文带有大运算指令时,控制系统架构数据处理用时约5.7ms ;同时,加入0.3s 通信延迟后进行仿真实验,得到的机械臂关节实际轨迹与期望轨迹基本吻合,架构能够满足实际的空间
具有工程实用价值。在国内外同类文章机械臂运动控制需求,
较少的情况下,本文对相关人员的研究开发工作具有指导帮助意义。笔者下一步的研究重点将会放在提高架构复杂运算性能上,从实验数据来看,大运算在本架构数据处理时间中占用了约5171.300899/5700.506203=90.7%的比例,提高该部分的处理性能将会大幅度提高架构的整体性能。
[14]
[15]YAN W,WU W.Data structure [M].Beijing:Tsinghua Universi-ty Press,2007:58-63.(严蔚敏,吴伟民.数据结构[M].北京:清华大学出版社,2007:58-63.)
[16]PREUSCHEC,REINTSEMAD,LANDZETTEL K.Roboticscomponent verification on ISS ROKVISS-preliminary results for telepresence [C]//Proceedings of the 2006International Confer-ence on Intelligent Robotsand Systems.Piscataway:IEEE Press,2006:4595-4601.