基于RT-Linux机器人控制系统实时性的探讨
出处:计算机工程 发布于:2011-09-05 11:46:49
在机器人控制器的设计中,如何的提高机器人控制的实时性是一个关键问题。这里我们运用了将软件任务划分实时域与非实时域的思想,实现了一种将RT-Linux与Linux结合的实时机器人控制系统。该系统的优点是:提供了非常高效的满足底层硬件设备的实时性能,可以充分利用 Linux的强大功能;而且RT-Linux是完全开放源代码的软件,降低了开发成本。
1 RT-Linux的系统结构
RT-Linux的基本思想就是使Linux运行在实时之下,如图1所示。RT—Linux是一个可加载的模块。一个小的RT-Linux实时内核同原来的Linux内核共同控制处理器。实时内核直接管理硬件中断,因此实时内核操纵着机器的响应时间,原来的Linux就无法影响实时任务了。在RT- Linux中设计了两类中断。软中断是正常的Linux中断,硬中断则是真正的实时中断,执行时几乎没有任何延迟。实现时,RT-Linux是通过在 Linux和中断处理器之间设计一个仿真软件来达到其目的的。
在RT-Linux中采用两种调度策略。一种是基于优先级的抢占式调度算法;另一种是lsmaelRipoll实现的 EDF(EarliestDeadlineFirst)算法。对于周期性任务可以采用单调率调度算法,即周期短的任务能够获得较高的优先级。调度策略将 Linux视为赋予优先级的实时任务。
Linux仅仅在实时系统没有其它任务时运行。Linux和实时任务之间的转换依据上述提及的软中断状态而定。RT-Linux通过这样一种设计方法,将标准的Linux改成一个可抢占的、具有低延迟中断处理的实时系统。
2 实时机器人控制系统的软/硬件结构
2.1硬件系统结构
整个实时机器人控制系统主要的硬件部件为:与IBM—PC兼容PentiumIII733MHzq-业控制微机(IPC),内存l28MB;三轴位置控制卡(PCL一832);l0/100M自适应网卡、集线器等以太网连接设备;机器人本体为具有5个自由度的日产PT500机器人。
机器人控制器运行于一台工业控制微型计算机(IPC)上。在该IPC上安装了两块三轴位置控制卡。每块三轴位置控制卡能对三轴进行联动插补控制。每轴有专用位置芯片控制,构成一个伺服位置和速度环。放在DDA脉冲缓冲器中的脉冲数被传到DDA发生器,在下一个DDA周期中输出。然后由三轴位置控制卡将各轴对应的脉冲数解释为相应的电平信号,驱动伺服驱动器以驱动机器人本体的运动。
2.2软件系统结构
整个机器人实时控制器的系统结构如图2所示,整个系统分为2个域:实时域和非实时域。实时域中实现的是实时设备驱动程序,负责PCL-832位置控制卡的控制与中断响应,驱动机器人本体运动;非实时域中实现的是上层的机器人控制界面和远程监控子系统;二者之问通过实时先进先出(RT-FIFO)缓冲队列进行数据交换。内核调度策略将Linux视为赋予优先级的实时任务,Linux中的非实时任务仅仅在实时系统没有其它任务时运行,以确保实时任务的实时优先级。
(1)RT-Linux中的实时模块
实时域中的软件模块主要是三轴位置控制卡(PCL一832)的设备驱动程序。驱动程序是能够直接访问硬件的模块,具有应用程序不具备的处理中断和读写端口的能力,是嵌入操作系统的底层软件。三轴位置控制卡以毫秒级发出DDA中断请求,对DDA中断的响应的快慢是决定整个机器人控制器实时性能的关键指标。RT-Linux中的三轴位置控制卡的实时设备驱动程序必须处理以下事务:
① 响应三轴位置卡的插补周期中断(DDA),并输出位置脉冲数值;
② 响应三轴位置卡的误差溢出中断(Ov),通知应用程序进行相应处理;
③ 为应用程序提供服务,如读写I/O端口、设置参数、读取状态等。
(2)Linux中的非实时模块
非实时域中的软件模块由机器人控制器和远程监控子系统组成。本地的机器人控制器负责将文本机器人指令解释成相应的位置脉冲数据,通过先进先出(RT- FIFO)缓冲队列发送给实时域中的驱动程序驱动机器人本体运动。同时具有权限的用户能够以离线编程方式或在线操作方式通过高速以太网分别与离线编程与仿真数据发生器和机器人控制器进行连接,实现离线编程和对机器人的实际控制。
3 实时系统的性能评估
实时系统的性能评估主要在8个方面进行。它们分别是任务换道性能、任务优先级性能、内存分配性能、任务内部通信性能、中断延迟时间、操作系统运行时效率、初始化时间和关机时间。而在机器人控制中讲究的就是中断响应时问。因为就本项目而言,我们关I~,RT-Linux系统对三轴位置控制卡(PCL一 832)的DDA中断的响应时间,所有工作的目的就是为了尽量减少中断响应时间。
3.1测试环境及方法
用于测试的工业控制微机的硬件配置为IntelPentium(clockl20MHz),RAM64MB;服务器软件是用 RedHatLinux6.0(内核版本号2.2.5一l5),RT-Linux的版本号2.2;网络环境l0/100M自适应网卡。中断响应时间的快慢直接反映了这样一个过程的快慢:在用户层的用户进程通过系统调用将脉冲数据写入位于层的实时驱动程序的数据缓冲队列,在下一个DDA中断请求到来时,中断服务例程将数据缓冲队列中的脉冲数据写入三轴位置控制卡的动作控制芯片的缓冲区,驱动机器人本体运行。图3反映了上述过程。
3.2测试结果
分别设置DDA周期为8、12、16、24ms的4种情况作了测试,经过计算,可以得出表1所示的结果。
表1 低负载下D DA中断响应处理时问测试结果
由此得出,在低负载下RT-Linux的测量时间要比Linux下快0.5—0.6ms左右,证明采用RT—Linux系统确实能够提高系统的实时性能。需要注意的是:
① RT—Linux直接接受硬件中断,所以我们将PCL一832卡的DDA中断和OV中断安装在实时域中,目的就是让RT-Linux捕获这两个实时中断,进行处理。
② 如果用户应用层开辟大量的用户进程,则对于分时的标准Linux来说会受到很大程度的影响。
由测试结果可看出,RT-Linux系统中断响应比标准Linux延时时间短,这个结果也预示在系统高负载情况下RT-Linux系统中的实时性能的优势将更为明显。实际使用该实时机器人控制器时,机器人运行非常稳定,能够满足实时控制的需要。
参考文献:
[1]. 100M datasheet https://www.dzsc.com/datasheet/100M_2509927.html.
[2]. PT500 datasheet https://www.dzsc.com/datasheet/PT500_557175.html.
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- 嵌入式系统的应用领域2024/11/12 17:16:41
- 使用 PLECSPIL 开发嵌入式控件2024/9/9 17:08:41
- 什么是嵌入式系统?嵌入式系统的优缺点及应用2024/9/5 17:49:34
- KEIL编程小技巧2024/8/13 17:34:35
- 什么是MCU?一文快速了解MCU基础知识2024/7/15 17:39:55