基于RT-Linux机器人控制系统实时性的研究

发布者:SparklingMoon最新更新时间:2009-05-15 来源: 计算机工程关键字:实时系统  RT-Linux  机器人控制器  响应时间 手机看文章 扫描二维码
随时随地手机看文章

  实时系统是能够在确定的时间内执行计算或处理事务并对外部事件作出响应的计算机系统。对工业机器人控制来说,实时性是一个相当重要的内容,尤其是在远程机器人控制中,如果不能很好地满足系统所需的实时性要求,就失去了研究的基础和意义。当前专用的实时操作系统很多,但是遗憾的是它们的价格高昂,增加了开发成本。在考虑实时操作系统核心的性能之外,更应该对开发工具、编译器、调试器之类的开发环境进行全面考虑,尤其是随着应用的不断升级,要求实时操作系统支持各类网络协议和编程语言,系统的通用性和可移植性也应当列入考虑的范围内。于是力求寻找一种高性能的、低价的甚至是免费的实时操作系统,且功能必须完备,通用性必须强。RT—Linux与Linux的结合是一项比较新颖的技术,一方面它提供了面向非实时的POSIX.1的标准功能,另一方面又提供了非常高效的满足底层硬件设备的实时性能需要。这种实现方法可以充分利用Linux的强大功能和RT—Linux的实时性能。而且RT—Linux是免费的,完全开放源代码,可降低开发成本,适用范围广泛。

  1 RT-Linux的系统结构

      RT-Linux的基本思想就是使Linux运行在实时核心之下,见图1。RT—Linux是一个可加载的核心模块。一个小的RT-Linux实时内核同原来的Linux内核共同控制处理器。实时内核直接管理硬件中断,因此实时内核操纵着机器的响应时间,原来的Linux就无法影响实时任务了。在RT- Linux中设计了两类中断。软中断是正常的Linux中断,硬中断则是真正的实时中断,执行时几乎没有任何延迟。实现时,RT-Linux是通过在 Linux核心和中断处理器之间设计一个仿真软件来达到其目的的。

  实时中断不经过中断仿真器,标准Linux的所有硬件中断首先被中断仿真器捕获,所以也根本无法影响实时进程的处理。当实时内核禁止中断时,仿真器中的一个标志位被置0。当有其它非实时中断产生时,仿真器检查那个标志位,如果为0,说明不允许中断,否则可以立即执~Linux中断处理程序。筒而言之,Linux不能中断自身,但是RT-Linux可以中断Linux,这也就达到了所谓的”RT—Linux的核心可抢占机制”。实时任务与普通进程之间的通信是通过封锁,释放队列来完成的。具体地说就是当有实时任务要完成时,实时操作系统运行实时内核下的任务;当没有实时任务时,实时内核调度 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发生器,在下一个DDA周期中输出。然后由三轴位置控制卡将各轴对应的脉冲数解释为相应的电平信号,驱动伺服驱动器以驱动机器人本体的运动。

  2.2软件系统结构

  整个机器人实时控制器的系统结构如图2所示,整个系统分为2个域:实时域和非实时域。实时域中实现的是实时设备驱动程序,负责PCL-832位置控制卡的控制与中断响应,驱动机器人本体运动;非实时域中实现的是上层的机器人控制界面和远程监控子系统;二者之问通过实时先进先出(RT-FIFO)缓冲队列进行数据交换。内核调度策略将Linux视为赋予最低优先级的实时任务,Linux中的非实时任务仅仅在实时系统没有其它任务时运行,以确保实时任务的最高实时优先级。

  (1)RT-Linux中的实时模块

  实时域中的软件模块主要是三轴位置控制卡(PCL一832)的设备驱动程序。驱动程序是能够直接访问硬件的模块,具有应用程序不具备的处理中断和读写端口的能力,是嵌入操作系统核心的底层软件。三轴位置控制卡以毫秒级发出DDA中断请求,对DDA中断的响应的快慢是决定整个机器人控制器实时性能的关键指标。我们开发的实时设备驱动程序位于RT-Linux的实时域中,享有系统最高实时优先级。它是整个实时机器人控制系统的前提和基础。RT-Linux中的三轴位置控制卡的实时设备驱动程序必须处理以下事务:

1)响应三轴位置卡的插补周期中断(DDA),并输出位置脉冲数值;

2)响应三轴位置卡的误差溢出中断(Ov),通知应用程序进行相应处理;

3)为应用程序提供服务,如读写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中断请求到来时,中断服务例程将数据缓冲队列中的脉冲数据写入三轴位置控制卡的动作控制芯片的缓冲区,驱动机器人本体运行。因此,我们将用户层的用户进程开始调用系统调用发送脉冲数据的时刻作为测试开始时刻,将下一个DDA中断请求到来时,相应的DDA中断服务例程将数据写入三轴位置控制卡的动作控制芯片的缓冲区,以驱动机器人本体运行的时刻作为测试结束的时刻。图3反映了上述过程。

  3.2测试结果

  我们分别设置DDA周期为8、12、16、24ms的4种情况作了测试,经过计算,可以得出表1所示的结果。

表1  低负载下D DA中断响应处理时问测试结果

  可见,在低负载下RT-Linux的测量时间要比Linux下快0.5—0.6ms左右,证明了采用RT—Linux系统确实能够提高系统的实时性能。在这里有几点需要说明:

(1)RT—Linux直接接受硬件中断,所以我们将PCL一832卡的DDA中断和OV中断安装在实时域中,目的就是让RT-Linux最先捕获这两个实时中断,进行处理。但是在标准Linux下采用的是软中断的概念,也就是说无法保证DDA中断和OV中断最先执行。我们的机器人控制器一旦加上网络通信模块,进行监视和仿真时,则在运行过程中DDA中断和OV中断要受到来自网卡中断的影响。所以在这种情况下,为了保证机器人运动的实时性,采用RT- Linux的优势就体现出来了。如果在网卡干预的情况下测试,标准Linux下的中断处理时间将比RT.Linux下要来得更长。
  
(2)如果用户应用层开辟大量的用户进程,则对于分时的标准Linux来说会受到很大程度的影响。但是对于RT-Linux来说,实时进程不会受到非实时域中用户进程的影响,所以在这种重负载情况下,RT-Linux的实时性比标准Linux下要高。

  由测试结果可以看出,RT-Linux系统中断响应比标准Linux延时时间短,这个结果也预示在系统高负载情况下RT-Linux系统中的实时性能的优势将更为明显。实际使用该实时机器人控制器时,机器人运行非常稳定,能满足实时控制的需要。

   4 总结

  在机器人控制器的设计中,如何最大程度的提高机器人控制的实时性是一个关键问题。本文中我们运用了将软件任务划分实时域与非实时域的思想,提出并实现了一种将RT-Linux与Linux结合的实时机器人控制系统。该系统的优点是:一方面提供了非常高效的满足底层硬件设备的实时性能,另一方面可以充分利用 Linux的强大功能。而且RT-Linux是完全开放源代码的免费软件,降低了开发成本。因此该技术具有非常广泛的产业化前景。

关键字:实时系统  RT-Linux  机器人控制器  响应时间 引用地址:基于RT-Linux机器人控制系统实时性的研究

上一篇:基于Linux的嵌入式系统全程喂狗策略
下一篇:畅讯科技借力风河平台跻身运营商级设备提供商

推荐阅读最新更新时间:2024-05-02 20:48

基于STM32V评估板的嵌入式实时操作系统μC/OS-II串口通信设计
ARM是目前嵌入式领域中应用最广泛的RISC微处理器结构,以低成本、低功耗、高性能的特点占据了嵌入式系统应用领域的领先地位,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场。STM32F103VB是基于ARM新内核Cortex-M3的通用微处理器,STM32V评估板是基于该芯片的学习板并集成了仿真调试器(Ulink_Me),可以方便用户快速学习和开发用户程序。目前常见的嵌入式系统有:WinCE、Linux、pSoS、VxWorks和μC/OS-II等。μC/OS-Ⅱ是专门为嵌入式系统应用设计的,具有源码公开、实时性好、可移植裁剪、高效稳定和教学科研免费使用等特点,已经成功移植到8、16、32和64位等多种
[单片机]
基于STM32V评估板的嵌入式<font color='red'>实时</font>操作<font color='red'>系统</font>μC/OS-II串口通信设计
二轮平衡机器人控制器代码
//MCU:Mega16;晶振:8MHz; //PWM:4KHz;滤波器频率:100Hz;系统频率:100Hz;10ms; //二轮平衡机器人项目 #include iom16v.h #include macros.h #include math.h //#define checkbit(var,bit) (var&(0x01 (bit))) /*定义查询位函数*/ //#define setbit(var,bit) (var|=(0x01 (bit))) /*定义置位函数*/ //#define clrbit(var,bit) (var&=(~(0x01 (bit)))) /*
[单片机]
在嵌入式实时操作系统uC/0SII上移植实现LwIP这套TCP/IP协议栈
内容摘要:结合ez80和ARM7两种系统上的具体实现,说明了如何在嵌入式实时操作系统uC/0SII上移植实现LwIP这套TCP/IP协议栈,使uC/0S II成为支持网络的RTOS。 1 引言 随着嵌入式系统与网络的日益结合,在嵌入式实时操作系统中引入TCP/IP协议栈,以支持嵌入式设备接入网络,成为嵌入式领域重要的研究方向。uC/0S II是近年来发展迅速的一个开放源码实时操作系统,但它只是一个实时的任务调度及通信内核,缺少对外围设备和接口的支持,如没有文件系统、网络协议、图形界面。笔者在多个嵌入式项目的开发过程中,以开源TCP/IP协议栈LwIP为基础,给uC/0S II加上了网络支持。下面就以uC/0S II +
[单片机]
嵌入式实时操作系统ECOS在S3C2510上的移植实现
摘 要: 本文介绍了实时操作系统ECOS的特点及基本结构,并具体研究了ECOS在三星公司以ARM940T为内核的S3C2510嵌入式芯片上的移植方法。文章着重讨论了移植过程中的重点与难点部分:ECOS的硬件抽象层(HAL)移植。该移植方案已经过实际测试,系统稳定可靠,可运行多任务式应用程序。 关键词:实时操作系统;ECOS;硬件抽象层;移植;ARM 引言 ECOS(Embedded Configurable Operating System,嵌入式可配置操作系统)是一种针对16位、32位和64位处理器的可移植嵌入式实时操作系统。由于其源代码是公开的,因而有越来越多的设计人员开始关注ECOS操作系统。ECOS最大的特点是模块化,内
[嵌入式]
油田联合站注水系统实时监测与控制
    摘要: 为了提高油田联合站的自动化管理水平,确保注水系统的安全性和可靠性 采用PC-工业控制计算机和ADAM 4000系列及ADAM 5000系列智能模块,对油田联合站注水系统进行自动化控制,对污水罐液位、注水泵和电机的温度、输出水压力和流量以及润滑油压力和流量进行实时检测与控制。检测与控制信号通过RS485总线与工控主机连接,研制完成的多功能管理软件已成功地应用在注水过程的自动控制系统中。     关键词: 注水系统 过程控制 智能模块 ADAM系列 PC-工控机     油田注水是采油生产中最重要的工作之一, 但它是油田耗电大户,一般占油田生产耗电的30~40%。 在油田联合站的注水
[应用]
实时操作系统能帮可穿戴设备做些啥
除了如血糖和血压监视器、心电图监测器等这些用于一般保健和身体监控的可穿戴医疗设备之外,一些新的特殊设备也开始涌现,从辅助手术的谷歌眼镜、康复保健用的无线传感鞋垫、监测心率和呼吸的内衣到测量个体应力水平的夹式装置。   虽然用于基本保健功能的检测手段看似微不足道,但一些更复杂的设备可以通过编程来测量和生成一些无法简单实现的更细致的图案报告。     你的设备有哪些基本功能? 你的新设备是否有通信模式或者它仅是一个独立组件?取决于它的通信需求,你可能需要把你软件开发的模式从裸机形式转向采用某种操作系统上。   是否存在确定性的实时需求?对于一些便携式医疗设备,不存在对实时行为的任何需求,如果你在中
[嵌入式]
以ARM处理器S3C2440A为核心的嵌入式无线实时图像传输系统设计
1 引言 随着信息化,智能化,网络化的发展,嵌入式系统技术也将获得广阔的发展空间。进入20 世纪90 年代,嵌入式技术全面展开,目前已成为通信和消费类产品的共同发展方向。在通信领域,数字技术正在全面取代模拟技术。毫无疑问,模拟图像采集系统必将被数字图像采集系统所代替,其中的嵌入式图像采集系统由于其优越的性能越来越受到人们的关注。同时,在技术进步推动信息传递日趋无线化的背景下,无线图像传输也就成为了图像传输的前沿领域。对于边远的和可移动的系统,无线网络接入传输数据方式显得十分重要。本文介绍了采用nRF2401 作为传输手段的无线图像传输系统。该系统由无线照相机和图片接收器两部分组成,具有视频图像采集、压缩、传输和存储等功能。 2
[单片机]
以ARM处理器S3C2440A为核心的嵌入式无线<font color='red'>实时</font>图像传输<font color='red'>系统</font>设计
实现机器人操作系统——ADI Trinamic电机控制器ROS1驱动程序简介
摘要 机器人操作系统(ROS)驱动程序基于ADI产品而开发,因此可直接在ROS生态系统中使用这些产品。本文将概述如何在应用、产品和系统(例如,自主导航、安全气泡地图和数据收集机器人)中使用和集成这些驱动程序;以及这样将如何有助于迅速评估新技术,并避免出现与第三方产品的互操作性问题。在本文探讨的所有产品中,将重点关注最近发布的用于ADI Trinamic™电机控制器的ROS驱动程序,该驱动程序是用于嵌入式运动控制的完整板级模块,融合ADI Trinamic运动控制专业知识,以及ADI的模拟工艺技术和电源设计技能。1 什么是ROS? ROS是机器人中间件,包含一组软件库和强大的开发工具(从驱动程序到先进算法),可作为机器
[机器人]
实现<font color='red'>机器人</font>操作<font color='red'>系统</font>——ADI Trinamic电机<font color='red'>控制器</font>ROS1驱动程序简介
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved