基于RT-Linux机器人控制系统实时性的研究_第1页
基于RT-Linux机器人控制系统实时性的研究_第2页
基于RT-Linux机器人控制系统实时性的研究_第3页
基于RT-Linux机器人控制系统实时性的研究_第4页
基于RT-Linux机器人控制系统实时性的研究_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于 RT-Linux 机器人控制系统实时性的研究摘要本文结合 实时系统与控制 这门课的知识, 对提高机器人控制系统的实时性做深入探讨,主要是在了解机器人实时控制系统的运行调度与运行管理机制的情况下,探讨基于RT-Linux平台下提高机器人控制系统实时性的可能性,从任务调度的可抢占性及低延迟中断处理等角度来分析和论证该方案的有效性,同时在此基础上划分机器人控制系统任务,达到进一步提高系统的实时性性能的目的。最后我们对理论分析进行简单的实验验证,以希望对机器人控制系统实时性提高有一个初步认识,为以后更深入的研究打下基础。关键词:机器人;实时性; RT-Linux ;划分任务1 引言随着仿人机器人

2、技术的高速发展,机器人能够实现的功能也越来越强大,这无疑对机器人控制器的信息处理速度提出了更高的要求,如何在现有的条件下,进一步提高机器人控制系统的实时性已然成为国内外研究机器人技术的一个很重要的课题。 由于本人对机器人控制很感兴趣, 所以希望能够将所学 实时系统与控制 的理论知识与该领域的研究热点结合起来,从提高系统实时性的角度探讨如何完善机器人控制系统。2 需求分析:实时系统是能够在确定的时间内执行计算或处理事务并对外部事件作出响应的计算机系统。 仿人机器人是一个典型的实时系统, 对工业机器人控制来说, 尤其在远程机器人控制中,如果不能很好地满足系统所需的实时性要求, 它的很多功能就失去了

3、意义。 以图 1 所示远程机器人控制器的系统为例:图 1 远程机器人监控系统该系统中的机器人控制器运行于一台Penrium 工业控制微型计算机(IPC) 上。在该 IPC上安装了位置控制卡, 其输出直接与机器人伺服电机驱动器相连, 由其直接驱动机器人本体上的伺服电机来完成相应的动作。图形仿真与监控系统运行于另一台微机上。PT2600 机器人共有五轴 , 它有两块 PCL2832 三轴多功能位置卡, 如果位置误差反馈计数超过阈值, 说明机器人运动异常 ,三轴位置控制卡以毫秒级发出DDA 中断请求。对 DDA 中断的响应的快慢是决定整个机器人控制器实时性能的关键指标。我们必须及时响应这个中断 ,

4、以保证机器人的安全运行。3 问题提出对机器人控制系统的中断的响应速度一定程度上决定了该系统的实时性的性能,该系统是由多个环节组成,其他环节的处理速度也会对系统的实时性产生一定的影响,才能全面提高该机器人控制系统的实时性呢?又由于怎样4 问题分析:提高该系统实时响应速度的方法可以针对系统各个环节有所不同,但总的来说, 都可以通过优化系统的软、硬件结构使之得到改善。硬件角度:( 1)Linux 是一个典型的分时多任务操作系统 , 所以我们要寻找一种实时操作系统既具备Linux 的优点又能够达到机器人控制的实时性要求;( 2)采用多线程机制将机器人控制器的功能加以划分。软件角度: 研究适合机器人控制

5、需要的实时调度算法,进一步来提升它的实时性。本文主要从硬件方面,提出并实现一种将RT-Linux 与 Linux 结合的控制系统,并在此基础上采用多线程机制将机器人控制器的功能加以划分来提高机器人控制的实时性。5 研究过程5.1 RT-Linux 平台对实时性的提高5.1.1 Linux 在实时性上的弱点Linux虽然具备很多有利于工业机器人控制的优点, 但是它是一个分时操作系统, 所以在实时性上有着同Windows 相类似的欠缺。 Linux 不能满足实时性的主要原因来自于Linux的分时调度机制和核心的不可抢占性,主要由以下两点:a.Linux采用时间片轮转的方式来调度CPU 时间 , 这

6、种方法是不利于实时进程的。时间片轮转调度方法使实时进程的执行受到系统复杂性和不可预测性的影响, 同时也受到其它进程的影响。b. 运行在内核模式下的Linux进程是不能被其它进程抢占的, 也就是说 , 一旦一个进程进行系统调用进入了核心态, 除非系统调用结束或者进程本身被阻塞, 它将一进运行下去。 即使是优先级比进入核心态的进程高的进程, 也不得不等待。但是一个系统调用可能会进行很长时间 , 这对于某些实时进程是不可容忍的。还有一点就是标准Linux内核使用禁止中断的方法作为同步机制,通过向 x86处理器送“ sti ”、“ cli ”、“ iret ”宏指令来开中断、关中断及中断返回。由于开中

7、断和关中断的混合使用使得中断的分派延时不可预测。5.1.2 RT-Linux 的改进图 2 是 RT-Linux 的体系结构图。任务抢占 :由图 2 可以看出, RT-Linux将原先的Linux 操作系统内核作为一个执行在一个小的实时操作系统之下的任务。Linux 内核仅在没有实时任务时才能运行,Linux任务不能阻塞任何中断, 在任何实时任务到来时总是可以被抢占的。中断实现: RT-Linux 中的实时任务是一个可加载的核心模块。从图3 可知 , 实时内核直接管理硬件中断, 因此 , 实时内核操纵着机器的响应时间, 原来的 Linux 内核就无法影响实时任务了。 RT-Linux 中软中断

8、是正常的Linux 内核中断 , 硬中断是真正的实时中断。RT-Linux 将标准 Linux 内核中的中断处理指令cli 、 sti和 iret分别用汇编宏代码S_CLI、S_STI、S_IRET 替换。 RT-Linux 引入一个虚拟层,采用在Linux内核和中断控制硬件之间增加一层仿真软件的方法截取所有的硬件中断,将所有的中断分成Linux中断和实时中断两类,如果是实时中断,则继续向硬件发出中断,如果是普通Linux中断,就设置一个软中断标志 SFIF ,等到 RT-Linux内核空闲时通过软中断传递给Linux内核去处理。这样就使得 Linux 永远不能禁止中断, 无论 Linux 处

9、在什么状态, 它都不会对实时系统的中断响应时间增加任何延迟,以致时间上的不可预测性。图 3 RT-Linux 的中断结构调度策略 :目前为止,在RT-LINUX 中采用两种调度策略。一种是基于优先级的抢占式调度算法; 对于有 N 个任务的实时调度来说,满足公式( 1) 的实时任务将能够成功的调度,每个任务都不会超过它们的最终期限, 对于周期性任务可以采用单调率调度算法, 即周期短的任务能够获得较高的优先级。C1C2C3. Cn1n(1)T1T2T3Tn2n1Ci为任务 I 最坏情况下执行的时间;Ti为任务 I 执行时间;另一种是 Ismael Ripoll实现的 EDF 算法。调度策略将 Li

10、nux 视为赋予最低优先级的实时任务,仅仅在实时系统没有其它任务时运行,它和实时任务之间的转换依据上述提及的软中断状态而定。通过这样一种设计方法,将标准的 LINUX 核心改成一个可抢占的、具有低延迟中断处理的实时系统。内存管理: RT-Linux的实时内核和实时线程都是用Linux可装载模块方式得以实现的,因此 RT-Linux的实时内核和实时线程都是运行在单一的Linux内核态地址空间。在Linux 内核态地址空间下内存按照页面方式管理,按照段页式方式进行访问,Linux 内核将定期将使用频率高的页面装入内存,并将使用频率低的页面从内存中换出,因此一旦出现应用程序的访问内容不在内存中时,就

11、会出现缺页异常的现象,这对于实时任务来说,会造成时间上的不可预测性,是严格禁止的。 RT-Linux对内存访问方式进行了修改,不再采用 “按需分页” 方式,而是内核中的每一个虚拟地址必然在物理内存的页面上有一单元与之一一对应,实时任务可以在任何情况下第一时间从内存中读写自己所需要的数据,这样从根本上杜绝了缺页异常情况的发生,从而内存管理的实时性能得到了极大改进。5.1.3 RT-Linux 平台下机器人控制系统实时性的实现中断实现:机器人控制中影响实时性的关键处即为对DDA 的响应速度。我们将图 1 远程机器人监控体系划分为实时域图4 和非实时域图5。( 1) RT-Linux 中的实时模块实

12、时域中实现的是实时设备驱动程序,负责 PCL-832 位置控制卡的控制与中断响应,驱动机器人本体运动;实时域中的软件模块主要是三轴位置控制卡(PCL 一 832)的设备驱动程序。三轴位置控制卡以毫秒级发出DDA 中断请求, 对 DDA 中断的响应的快慢是决定整个机器人控制器实时性能的关键指标。实时设备驱动程序位于RT-Linux 的实时域中,享有系统最高实时优先级。 RT-Linux 中的三轴位置控制卡的实时设备驱动程序必须处理以下事务:1)响应三轴位置卡的插补周期中断(DDA),并输出位置脉冲数值;2)响应三轴位置卡的误差溢出中断 (Ov),通知应用程序进行相应处理; 3)为应用程序提供服务

13、,如读写I O 端口、设置参数、读取状态等。图 4.RT-Linux中的实时模块2) Linux 中的非实时模块非实时域中的软件模块由机器人控制器和远程监控子系统组成。本地的机器人控制器负责将文本机器人指令解释成相应的位置脉冲数据,通过先进先出(给实时域中的驱动程序驱动机器人本体运动。RT- FIFO)缓冲队列发送图 5.RT-Linux 中的非实时模块内核调度策略将 Linux 视为赋予最低优先级的实时任务, Linux 中的非实时任务仅仅在实时系统没有其它任务时运行,以确保实时任务的最高实时优先级。5.2划分机器人控制器任务提高实时性在基于 RT-Linux 的平台上,如果对机器人控制器的

14、任务进行划分也能对它的实时性进行提高,我们对它的应用程序加以分割 , 使大量的没有严格时间限制的工作尽量在用户空间完成。(1) 我们让硬件实时部分负责一切和时间限制有关的操作,将硬实时部分的功能划分成三个线程 , 它们分别负责PCL2832 卡的驱动程序 ( 中断处理、设备文件操作) , 用户命令或用户程序、在线示教、远程监控产生的基本指令的执行 , 以及机器人程序文件的生成和调用。在RT-Linux 环境下 , 标准 Linux 是可以被抢占的 , 所以机器人程序文件这些文件很可能在其它实时线程抢占 Linux 时遭到不可恢复的破坏 , 导致严重的丢失或错误。故我们开辟这样一个实时线程进行文

15、件操作。 在 RT-Linux 中 , 只要将这个实时线程的优先级设置成同其它实时线程一样 , 则它们可以互不被抢占 , 保证了系统运行的可靠性。在非实时空间 , 主要开辟三个线程实现用户界面、三维仿真以及远程机器人控制的通信。其中交互式的图形用户界面的线程在 Linux 下具备最高的优先级 , 可以最快地接受用户命令。机器人三维图形仿真线程 , 可以通过离线编程创建机器人程序文件。以上从两个方面即 RT-Linux 平台下实时性的提高以及划分机器人控制器任务情况下实时性的提升来进行的分析。6.测试及结果分析讨论机器人控制中最讲究的就是中断响应时间,即RT-Linux系统对三轴位置控制卡(PC

16、L一 832 )的 DDA 中断的响应时间, 所有工作的目的就是为了尽量减少中断响应时间。以下将对 RT-linux 平台下 DDA 的响应时间做测试并与 Linux 平台作比较测试方案:在用户层的用户进程通过系统调用将脉冲数据写入位于核心层的实时驱动程序的数据缓冲队列, 在下一个中DDA 断请求到来时, 中断服务例程将数据缓冲队列中的脉冲数据写入三轴位置控制卡的动作控制芯片的缓冲区, 驱动机器人本体运行。 因此, 我们将用户层的用户进程开始调用系统调用发送脉冲数据的时刻作为测试开始时刻, 将下一个 中断 DDA 请求到来时,相应的中断服务 DDA 例程将数据写入三轴位置控制卡的动作控制芯片的

17、缓冲区,以驱动机器人本体运行的时刻作为测试结束的时刻。图 6 反映了上述过程。图 6 中断响应测试测试结果:我们分别设置 DDA 周期为 8 ms,12ms, 16ms, 24ms 4 种情况作了测试,经过计算,可以得出表所示的结果。表 1 低负载下DDA 中断响应处理时间测试结果标准的8ms5.8827617512ms9.929027216ms14.02905324ms22.1663222LINUX5RT-LINUX5.2656519.44341913.49934821.690814结果分析:1)在低负载下RT-Linux的测量时间要比RT Linux 系统确实能够提高系统的实时性能。Lin

18、ux下快0.5ms-0.6ms左右,即采用2)如果用户应用层开辟大量的用户进程,则对于分时的标准Linux来说会受到很大程度的影响。对于RT-Linux来说,实时进程不会受到非实时域中用户进程的影响,所以在这种重负载情况下,RT-Linux 的实时性比标准Linux 下要高。由测试结果可以看出,RT-Linux系统中断响应比标准Linux 延时时间短,这个结果也预示在系统高负载情况下RT-Linux系统中的实时性能的优势将更为明显。实际使用该实时机器人控制器时,机器人运行非常稳定,能满足实时控制的需要。结论从理论分析的角度:1)RT-Linux 其具有独特的双内核以及基于优先级的可抢占式两级中断机制,同时在定时精度、内存管理等方面都优于标准的 Linux, 这些因素都使它能够一定程度上提高机器人控制系统的实时性。( 2)对基于 RT-Linux 平台的机器人控制器的任务进行划分将它的应用程序加以分割,让硬件实时部分负责一切和时间限制有关的操作,将硬实时部分的功能划分成三个线程, 使从实验验证的角度:在低负载下, RT-Linux 系统中断响应比标准Linux 延时时间短,对于RT-Linux 来说,实时进程不会受到非实时域中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论