摘要:随着生产制造业向数字化、网络化、智能化的方向发展,工业机器人以其高效、精准、灵活的特性受到了生产制造多个领域的青睐。控制器作为工业机器人的控制中心,直接决定了机器人的控制性能。力感知与控制是现代智能作业机器人不可或缺的功能,在机器人完成柔顺搬运、打磨抛光、孔轴装配等需要机器人与外部环境交互的任务时发挥着至关重要的作用。基于此,本文主要对工业机器人控制器力控任务模块设计与实现进行分析探讨。
关键词:工业机器人;控制器;力控任务;模块设计;实现
前言
世界知名工业机器人生产厂商的机器人控制器通过提供力控附加包的形式支持力控制模式。例如KUKA机器人控制器通过安装KUKA提供的力控附加技术包配合ATI六维力传感器可以实现机器人的力控制。UR机器人控制器通过安装Optoforce力控功能软件,配合专属力控盒子可以实现机器人的力控制。本文围绕机器人控制器智能化的需求,在现有工业机器人实时多任务软件架构基础之上,设计实现了机器人控制器力控任务模块。
1、力控任务模块架构设计
1.1工业机器人控制器系统软件总体架构
实验室已经开发完成了一套以“IPC+高速伺服总线”为硬件框架,以Linux/Xenomai双内核为系统平台,以“软PLC+RC”为软件架构的工业机器人控制器系统软件,其总体架构如图1所示。
图1 机器人控制器系统软件架构图
工业机器人系统分为三个层次,分别为终端用户层、硬件设备层和控制器层:
1)终端用户层包括PC端运行的系统配置与参数管理软件和示教器上的示教系统软件;
2)硬件设备层是机器人系统的执行机构,包括伺服设备和IO设备;
3)控制器层就是运行在Linux/Xenomai双内核的控制器运行系统,是整个机器人控制系统的核心,负责工业机器人应用的整个作业控制。
1.2力控任务模块总体架构
力控属于运动控制的范畴,因此将力控任务模块设计为运动控制模块的子模块。原先机器人运动控制模块由三个实时任务组成:运动控制管理任务、机器人语言解释器任务,插补运算器任务。在运动控制模块中增加力控任务模块后,其内部模型如图2所示。
图2中椭圆圈出的部分就是力控任务模块的内部模型,包括两个实时任务:力信息采集任务和力控计算任务,力信息采集任务负责周期性地采集力传感器数据并向传感器数据映像区刷新实时力信息,力控计算任务负责力信息到机器人位姿控制量的转换计算并生成单点运动指令写入指令缓冲区。
图2 运动控制模块内部模型
2、力控任务模块软件开发
2.1力信息采集任务
本文采用在工业机器人末端安装腕式六维力/力矩传感器来获得机器人与外部环境的接触力。力信息采集任务是一个实时周期任务,本文将其运行周期设置为PLC任务周期。
2.1.1通信初始化
市面上主流力传感器都支持TCP/UDP通信,对于支持TCP/UDP通信方式的不同厂家的力传感器,它们在命令格式、端口号、返回数据包格式等方面存在较大的差别。为了适配不同型号的传感器,保证通用性,将力传感器的命令格式,端口号,返回数据包格式等信息通过XML配置文件的形式给出。传感器配置文件的格式如下所示:
<CONFIG>
<COM_TYPE>UDP</COM_TYPE>
<IP>192.168.1.1</IP>
<PORT>49152</PORT>
<CMDTYPESECTION0=″UINT16″SECTION1=″UINT16″
SECTION2=″UINT16″>
<CMDPACKAGE>
<PERIODSECTION0=″0x1234″SECTION2=″0x0082″
SECTION3=″8″/>
<STARTSECTION0=″0x1234″SECTION2=″0x0002″
SECTION3=″0″/>
</CMDPACKAGE>
<RECVPACKAGE>
<ELEMENTNAME=″STATUS″TYPE=″UINT32″OFFSET=″8″>
<ELEMENTNAME=″Fx″TYPE=″INT32″OFFSET=″12″>
<ELEMENTNAME=″Tx″TYPE=″INT32″OFFSET=″24″>
</RECVPACKGE>
</CONFIG>
通信初始化部分首先加载力传感器配置文件,根据配置文件初始化通信参数、生成传感器控制命令和返回数据解析规则。
2.1.2力的坐标变化
传感器检测到的力/力矩数据是在传感器坐标系中描述的,为了便于力控计算,需要转化成机器人工具坐标系下的描述量。
2.1.3传感器零点补偿
在实际应用过程中,随着机器人位姿的变化,由于传感器自身以及安装在传感器下方工具的重力影响,传感器的零点也会发生变化。为了能够得到机器人与环境的实际接触力,需要对传感器零点进行补偿。
2.2力控计算任务
力控计算任务完成由接触力/力矩到机器人位姿控制量的计算工作。目前主要的力控策略有:阻抗控制、力/位混合控制、自适应控制。在实际应用中,应当根据具体的任务需求选择合适的控制策略。本文实现了基于位置的阻抗控制算法,其控制框图如图3所示。
图3 基于位置的阻抗控制框图
其中Fd为期望的六维接触力,F为机器人与环境的实际六维接触力,X为当前机器人位姿,Xc为位姿控制量。阻抗模型由式(1)表示:
ME¨+BE觶+KE=Fe(1)
其中E=Xc-X表示机器人位姿偏差,在实际应用中,针对不同的应用任务,基于位置的阻抗控制算法的实现形式以及参数的选取也各不相同。
2.3任务优先级分配与调度
控制器系统内部实时任务在系统正常运行时需要并发执行,Xenomai内核采用优先级抢占式调度策略,为了保证控制器系统内部各任务可靠、有序执行,合理的任务优先级分配至关重要。力控任务模块中包括两个实时任务:力信息采集任务和力控计算任务。运动控制管理任务负责对它们的运行控制,因此运动控制管理任务的优先级要高于力信息采集任务和力控计算任务。由于力控计算任务依赖软PLC任务刷新实时伺服数据到RC/PLC共享内存,依赖力信息采集任务刷新实时力数据到传感器数据映像区,因此力控计算任务的优先级要低于软PLC任务和力传感器采集任务。
目前系统运行监控任务、伺服总线任务和软PLC任务的周期分别设置为4ms、4ms、8ms。系统运行监控任务具有最高优先级,周期性查询整个控制器系统各任务的运行状态,并对出异常情况进行及时处理。力控模式下,一个PLC任务周期中,首先伺服总线任务将伺服和IO数据刷新到内存映像区;接着软PLC任务进行输入采样,经过逻辑处理后向插补器消息队列发送请求插补计算命令并阻塞等待在PLC消息队列;然后力信息采集任务将处理得到的接触力刷新到传感器数据映像区,向力控计算任务发送力信息更新完成消息;接着力控计算任务根据控制算法计算得到机器人位姿控制量,并生成机器人指令写入指令缓冲区;随后插补器任务读取机器人指令,计算完成后将机器人各轴角度控制量写入RC/PLC共享内存并向软PLC任务发送计算完成消息;最后PLC任务将各轴角度控制量刷新到伺服映像区,在下一个伺服周期中,伺服任务将伺服控制量通过总线发送给伺服驱动器,从而实现对机器人的运动控制。
3、结束语
本文围绕力控制的两个主要内容:力信息采集和力控制策略,解决了力信息采集过程中的坐标变换和重力补偿问题,实现了基于位置的阻抗控制算法。为了保证系统的正常稳定运行,给出了力控任务模块中任务优先级分配,详细说明了力控制模式下系统内各任务调度关系。
参考文献
[1]任志刚.工业机器人的发展现状及发展趋势[J].装备制造技术,2015(3):166-168.
[2]贺昌勇,张厚江,路敦民等.基于NI运动控制卡的伺服电机控制系统研究[J].科技视界,2014(12):14-15.
[3]彭志明.面向工业机器人的开放式运动控制器研究[D]:[硕士学位论文].华南理工大学,2011.
论文作者:梁小厚
论文发表刊物:《基层建设》2019年第14期
论文发表时间:2019/7/29
标签:机器人论文; 传感器论文; 控制器论文; 模块论文; 系统论文; 工业论文; 优先级论文; 《基层建设》2019年第14期论文;