基于RTLinux的实时机器人控制器研究

合集下载

基于Linux的远程机器人控制系统研究

基于Linux的远程机器人控制系统研究

文章编号 2 2 2基于 ∏¬的远程机器人控制系统研究α薛广涛陈一民张涛上海大学计算机工程与科学学院摘要 本文对远程机器人控制系统的体系结构和最新进展进行了论述 提出了一种新的远程机器人控制系统的软件体系结构 文中就远程机器人的基本原理及远程机器人的状态监控技术进行了详细的叙述 并详细说明了与这种系统相关的重要技术问题 最后给出了一个基于 ∏¬操作系统的远程机器人控制程序的具体实现例子 关键词 ∏¬ 机器人控制器 ≥ 遥操作 远程机器人技术中图分类号 ×° 文献标识码ΡΕΣΕΑΡΧΗΟΝΤΕΛΕ−ΡΟΒΟΤΙΧΣΧΟΝΤΡΟΛΣΨΣΤΕΜΒΑΣΕΔΟΝΛΙΝΥΞ÷ ∞ ∏ 2 ≤ ∞ ≠ 2 ×ΣχηοολοφΧομπυτερΕνγινεερινγανδΣχιενχε ΣηανγηαιΥνιϖερσιτψΑβστραχτ × ∏ ∏ ∏ 2 2 √ 2 2 ∏ ∏ 22 ∏ 2 2∏ ∏ 2 ∏¬ √Κεψωορδσ ∏¬ 21引言 Ιντροδυχτιον具有远距离控制功能的基于网络的远程机器人在海洋探测!军事及人类自身不能到达的各种危险和特殊场所具有独到的作用 在网络环境中运行的远距离控制功能的机器人 不仅要满足实时性和可靠性的要求 还要能够在传输实时控制数据的同时进行实时图象的传输 从而依据三维机器人运行状态图控制机器人的运行 基于°≤及 ∏¬平台的远程机器人控制系统更是值得研究开发 但目前尚未见这方面的有关报道由于 ∏¬本身所具有的开放性!稳定性!高效性和强大的网络功能并且是公开源码的自由软件 采用运行 ∏¬操作系统的工业控制个人计算机作为机器人控制器开发平台是目前工业机器人技术和产业发展的方向和趋势 该方案对于降低系统开发生产成本!提高产品竞争力均有重要意义 上海大学机器人实验室原有二台具有五个自由度的°× 机器人 原控制系统为多≤° 结构 在仔细分析了原控制系统后 我们研究开发了以工控°≤机为核心的机器控制系统 并在 ∏¬平台上进行了远程机器人控制的研究2系统结构 Σψστεμαρχηιτεχτυρε机器人的性能很大程度上决定于控制系统 传统机器人控制系统以实现内部控制为主要目的 对外通信能力弱 缺乏与外界进行信息的高速交换能力 缺乏与外界设备间进行协同工作的能力 也缺乏对外界环境的适应能力 很难实现对机器人的远程控制 传统机器人控制系统的种种不足 很在程度上是由于网络通信能力的不足而造成的 我们所研制的机器人控制系统正是通过引入了网络通信技术第 卷第 期 年 月机器人ΡΟΒΟΤ∂α基金项目 国家教委5高等学校骨干教师资助计划6项目 收稿日期使整个系统的功能得到了加强 整个系统由机器人控制器!离线编程系统!图形仿真系统三个部分组成 并通过网络连接起来系统中数据交换主要有以下几种情形离线编程系统与机器人控制器的通信 经过离线编程生成的机器人指令序列 以文件的形式传递给机器人控制器离线编程系统和图形仿真与监控子系统的通信 在离线编程时需要模拟机器人实际运动过程 这一功能是通过离线编程系统中内置的解释器对机器人指令进行解释 实时生成机器人关节运动信息 并通过网络输送到图形仿真与监控系统 由该子系统来完成图形仿真的功能 由于通过网络传送的信息不是以文件的形式而是以实时数据流 因而必须通过网络编程来实现机器人控制器和通信仿真与监控子系统的通信 在机器人控制器控制机器人运行时 控制器将当前的状态数据传送到图形仿真系统 以便使用户能够通过图形仿真与监控系统实时监视机器人的实际运动状态 在必要时用户还可通过图形仿真与监控系统对控制器的实际操作进行干预 这里传送的数据也是实时的数据流 因而也必须通过网络编程的方法来实现 远程机器人控制系统按层次和功能分为以下模块 它们之间的关系如图 所示图 远程机器人控制系统ƒ × 2要实现远程控制必须具有良好的可靠性 可利用软件和硬件的• 进行监控 远程的客户发出机器人指令通过高速以太网发送给本地的遥操作系统 该指令由本地的控制系统解释执行 并将执行情况 机器人运行状态 返回给客户 在服务器与客户机程序的相互通讯中双方都遵循传输协议 在接收对方的数据时都要进行相应的指令解析多用户同时操作的问题也需在软件设计中予以考虑 根据设计要求 在同一时刻只能有一个远程客户具有对机器人的控制权 当机器人处于空闲状态无远程客户控制状态 时 它等待客户机的连接 这时若有客户机进行连接 并对机器人控制的发出申请 它就可以获得对机器人的控制 通过发出机器人指令 由服务器 主控计算机 接收指令通过主控程序的运行 控制机器人的运动 并且发回当前的各关节位置 通过客户机上的图形仿真模块进行三维的机器人仿真 当机器人处于运行状态 有远程客户控制状态 不具有控制权的客户需要对其控制的可以发出申请 按其申请的先后进入等待队列 等待对机器人的控制权 这时 不具有控制权的客户只能接收到机器人运动时发回的当前的各关节位置的指令由于在软件设计中利用了多线程支持 不仅能使各模块并发运行并将模块间的耦合度控制在较低水平 以后添加新功能也比较方便 比如可以在状态机 器 人 年 月监视模块中加入模糊识别故障的功能 3 Λινυξ下实现网络通信 Ιμπλεμεντατιονοφιντερνετχομμυνιχατιονωιτηλινυξ∏¬的网络实现支持 ≥⁄套接口 支持完整的×≤° °协议 ≥⁄套接口是最早的网络通信的实现 也是 ÷系统中通用的网络接口 它不仅支持各种不同的网络结构类型 而且也是一种内部进程间的通信机制 开发套接口的目的就是为隐藏网络底层复杂的结构与协议 使编程人员能够抽象而简单地对网络进入操作 随着 在全球范围内的广泛应用 套接口已渐渐成为网络编程的通用接口在网络上大部分的通信都是客户机 服务器模式下进行的 比起基于主机的运行环境 主 从运行环境和共享设备的运行环境 客户机 服务器的运行环境具有更高的分布程度 更优良的性能 针对传输的数据需要连续数据流 且需保证数据可靠的特点 我们选择了流式≥ 方式 编程直接采用通用≥的方案 ≥ 的编程基于套接字的系统调用 应用程序首先必须通过调用≥ 创建套接字 然后调用 将套接字地址与所创建的套接字联系起来 通过≤ 和建立套接字的连接 其中≤ 用于建立连接 用于使服务器等待来自客户的实际连接 用于面向连接的服务器 表示它愿意接受连接 需在2之前调用 当建立一个连接后 可以传输数据了 常用的系统调用有≥ 和 √ ≥ 用于在制定的已经连接的套接字上发送输出数据√ 调用用于在指定的已建立的套接字上接受输入数据 最后调用≤ ≥ 关闭套接字 并释放所分配给套接字的资源 如图 所示图 ≥的编程流程ƒ × ∏第 卷第 期薛广涛等 基于 ∏¬的远程机器人控制系统研究由于 进行传输的是字节流 必须在其上定义自己的高层协议 才能实际用于状态数据的传送 我们按照如下格式来定义传输的数据结构 如图 所示图 高层协议单元格式ƒ √高层协议单元由一个单元头和若干个记录 以及终结符组成 记录的个数是可变的 以适应不同场合的需要 单元头和记录与记录之间由记录分隔符来进行分隔 每条记录通常分为两个域 域之间用域分隔符隔开 第一个域表示记本记录的具体类型 如是数据还是命令 具体为什么命令等 为简便起见直接采用一个 位整数来表示 第二个域为该记录的具体数据 数据间用域内分隔符隔开 下面为一个协议单元的具体实例≤ ⁄3 ≥ ×∞⁄∞ 3 2 2表示该单元中有两条记录 为分隔符标志着第一条记录的起始 ≤ ⁄ 表示该记录为命令 为命令的具体内容 打开捕捉功能 并执行回位操作 3 为记录分隔符 表示第一个记录已结束 下面将开始第二个记录 2≥ ×∞ ⁄∞ 表示该记录为绝对角度坐标数据 分隔符后面为具体的绝对坐标数据 各数据间用内部分隔符为 隔开 整个单元由终结符 结束由于系统随时可能需要进行数据的发送和接收 以得到需要的信息 应用程序之间的数据传输很频繁且不定时的 而系统又要求数据的传输不能消耗过多的系统资源 不能妨碍用户界面上的操作和显示 因此使用多线程实现多任务并行 以达到系统的要求4 程序实现 Προγραμμινγιμπλεμεντατιον服务器端程序必须具备多机连接的功能 既要处理监听套接口 又要处理已连接套接口的通讯 即具有这样的功能 如果一个或多个 条件满足 例如 输入已准备好被读 或者套接字可以承接更多的输出 时 我们就被通知 因而需要采用 复用 复用是由函数和 支持的 使用函数 2 可以同时检查多个套接字是否就绪 当有套接字就绪时 函数 成功返回 服务器方程序具体实现如下首先调用 ! ! 函数 建立套接字 做好接收准备 然后需要调用 √ ƒ 设置主套接字为非阻塞式套接字ƒ⁄ ≥∞× √ 打开主套接字的监听位接着调用√ 3 ≥ √ƒ∏ 创建后台工作线程≥ √2ƒ∏这时 服务器方通讯的初始化完成返回避免由于通讯造成主程序阻塞不能对机器人进行控制 以及妨碍用户界面上的操作和显示的结果 具体的通讯在后台工作线程≥ √ƒ∏ 中进行 它完成下述循环过程÷≤ ∞≤× × ∏调用 等待某个事件发生 或是新客户连接的建立 或是数据!ƒ 或 ≥×的到达 其中÷≤ ∞≤× 表示最多可以连接的客户机的数量 参数× ∏ 定时器的值为 表示立即返回ƒ⁄ ≥≥∞× √有新客户连接 建立连接√调用建立与客户机的连接 ÷≤ ∞≤×检查所有的连接 ≈ ≈保存与客户机通讯的套接字机 器 人 年 月÷≤ ∞≤×∏太多的连接客户ƒ⁄ ≥∞×设置新的监听标志位¬¬¬¬≈ 用户队列中最大的客户标号¬检查所有连接的客户≈∏连接的套接字已经关闭 返回ƒ⁄ ≥≥∞×套接字可读≥ √ √ ∏调用函数≥ √ √ 进行读取处理客户机端程序与服务器程序相类似 这里就不赘述了 5结论 Χονχλυσιον由于我们研制的远程机器人监控系统采用了发展最为迅速的°≤硬件平台和开放稳定的 ∏¬软件平台 因此可利用软硬件的最新技术成果来推动远程机器人监控系统技术的发展 所以 我们研制的远程机器人监控系统能够满足我们对于远程机器人控制的实时性的需要 并且具有极其优异的性能价格比!通用性!开放性和扩展性 基于°≤和 ∏¬远程机器人监控系统在价格!性能和发展潜力上都具有竞争力 代表了未来的发展方向 有很好的应用前景参考文献 Ρεφερενχεσ任昊星 翁海华 杨杨 陈坚 基于• 的机器人遥操作的研究与实现 计算机工程≈ 25∞≥≥ ⁄ ∏¬设备驱动程序≈ 中国电力出版社⁄ • ≠ ≤ ∏ ƒ ≠ ≥ ∏ ≥ ∏ ≥ °≤ ° 2 • ≤ ≤ ∏≥ √ • ÷网络编程≈ 清华大学出版社 鲍天麟 陈一民 何永义 • 平台上机器人控制软件的研究 机器人≈作者简介薛广涛 2 男 硕士生 研究领域 多媒体技术陈一民 2 男 教授 研究领域 计算机控制 网络与多媒体技术的研究张涛 2 男 硕士生 研究领域 多媒体技术第 卷第 期薛广涛等 基于 ∏¬的远程机器人控制系统研究。

基于RT_Linux和QT_Embedded的工控机实时嵌入式系统设计

基于RT_Linux和QT_Embedded的工控机实时嵌入式系统设计

基于RT_Linux和QT_Embedded的工控机实时嵌入式系统设计嵌入式系统,一般指非PC系统,以应用为中心,以计算机技术为基础,软件硬件可以裁减,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统,包括硬件和软件两部分。

硬件包括处理器/微处理器,存储以及外设器件和I/O端口,图形控制器等,软件部分包括实时操作系统,应用程序编程。

在本嵌入式系统中,由以下部分组成:微处理器PCI9054;外围接口;嵌入式操作系统RT_Linux;应用软件包括UI界面和socket通信等;集成开发环境是RT_Linux和QT_Embedded系统。

一,分别介绍这几大组成部分1,微处理器,微处理器是嵌入式系统的核心,嵌入式微处理器一般具有较高的集成度,PC处理器一般仅仅具有中央处理单元,包括控制器和运算器,而本次系统的微处理器PCI9054不仅包括CPU核心,也包括片内外设部分。

PCI9054处理器包含了内存管理器,中断控制器,定时器,芯片组的北桥包含了内存管理单元,南桥包含了中断控制器,定时器等单元。

2,外围接口,外围硬件是嵌入式系统处理器以外的硬件,它为系统提供了运行条件和部分功能。

在运行条件方面,最基础的是时钟和电源部分,它们不可能集成到处理器内部,但它们对处理器的正常运转时必要的。

外围硬件也将提供在系统中的需要,但是微处理器内部不具有的功能,如内存,各种通信接口。

在PC系统中,处理器之外的外围硬件是标准化的,而在此嵌入式系统中,系统的外围硬件则是灵活的,而且在很大程度上都取决于核心微处理器的结构,同时嵌入式的外围硬件也会影响到系统程序的编写。

3,嵌入式实时操作系统,本系统中应用RT_Linux实时多任务操作系统,它为应用程序的运行提供了必要的运行环境,任务调度,任务通信,内存管理等功能,因为嵌入式系统和硬件关系非常紧密,在本系统中,需要对实时操作系统进行移植和配置才能使用。

构建一个实时嵌入式系统的时候,传统的开发方法一般是采用一个前台/后台循环系统,一个应用软件由一个无穷的循环构成,该循环调用一些模块函数来处理异步事件,按这种方式构造的系统有如下几个主要缺点:1)系统响应时间难以确定,它的响应时间依赖于后台循环所花费的时间,而这个执行时间并不是一个常数;2)系统灵活性差,不易维护,如果想向其中添加新的功能,则必须重新安排整个系统;3)当系统任务较多时,要考虑的各种可能也多,各种资源如调度不光就会死锁,降低软件可靠性,程序编写任务量成指数增加。

基于RTLinux_Linux的双机热备计算机联锁控制系统研究与实现

基于RTLinux_Linux的双机热备计算机联锁控制系统研究与实现

文章编号:1000–8829(2005)06–0033–05基于RTLinux/Linux的双机热备计算机联锁控制系统研究与实现Design and Development of a Interlocking Control System of Fault-Tolerant Computer Based on RTLinux/Linux(兰州交通大学信息与电气工程学院,甘肃兰州 730070)郑丽英,董昱,李敬文摘要:介绍了基于RTLinux的容错计算机联锁控制系统的软硬件体系结构,分析了其构成和特性,讨论了系统实现的关键技术。

关键词:铁路信号;RTLinux/Linux;计算机联锁;容错;实时中图分类号:U284文献标识码:AAbstract: The design and implementation of a inter- locking control system of the fault-tolerant computer based on RTLinux/Linux are introduced. The structure and characteristics of the system are analysed. The key techniques in developing system are discussed.Key words: railway signal;RTLinix/Linux;computer interlocking;fault-tolerant;real-time计算机联锁控制系统可以提高车站行车作业的安全和效率,是车站信号设备控制系统的发展方向,因此,选择可行的和具有良好性能价格比的接点结构,是实现铁路现代化的重要基础之一。

目前推广使用的计算机联锁采用了先进的计算机技术和通信技术,不再是一个单纯的车站信号联锁系统,而是行车指挥控制自动化系统的一个重要组成部分,是具有多种功能和安全保证的指挥系统。

Linux操作系统实时技术研究与应用RTAI的调度扩展

Linux操作系统实时技术研究与应用RTAI的调度扩展

Linux操作系统由于其稳定性和灵活性,已经成为实时应用领域的重要选择。 然而,Linux本身并不是为实时性设计,因此需要采用一些技术和工具来满足实 时性需求。其中,RTAI是一种广泛使用的实时应用接口,它提供了一套扩展API, 用于实现更高效的实时任务调度和管理。
RTAI的调度扩展是本次演示的研究重点。它包括任务调度算法和实时任务的 处理方法,以及调度策略的优化。首先,RTAI的任务调度算法是基于时间片轮转 的,它将系统中的所有任务分成不同的优先级,并根据优先级进行调度。同时, RTAI还提供了一种抢占式调度算法,以确保实时任务的优先执行。
1、工业控制:Linux操作系统在工业控制领域的应用日益广泛,如机器人、 自动化生产线等,能够实现精确的实时控制和数据处理。
2、智能交通:Linux操作系统可以应用于智能交通领域,如交通信号控制、 智能车辆等,提高交通运营效率和管理水平,减少交通拥堵和事故发生率。
3、智能家居:Linux操作系统可以与智能家居设备相配合,实现家居电器的 远程控制和智能化管理,提高居住的舒适度和节能性能。
在改进方面,我们将提出一种新的RT调度策略,该策略通过引入更细的时间 片粒度,提高了实时任务的响应速度。此外,我们还将讨论如何利用现代硬件特 性,如多核处理器和高速缓存,以提高RT的性能。最后,我们将展示一个基于RT 的实时操作系统实例,以证明我们的改进策略的有效性。
总的来说,本次演示旨在提供一个全面的视角来理解和改进基于Linux和RT 的实时操作系统。通过深入理解Linux和RT的原理和挑战,我们可以更好地设计 和优化实时系统,以满足不断增长的应用需求。
为了进一步改进RTAI的应用效果和适用性,未来的研究方向和建议包括:
1、深入研究RTAI的内部机制和优化方法,以提高其调度性能和系统响应时 间;

RT_Linux在工业机器人控制系统中的实时性研究_刘金铁

RT_Linux在工业机器人控制系统中的实时性研究_刘金铁

如R 进行通 定的通 信 机 制 ( T- F I F O 管 道 或 共 享) 信。这 样 既 保 证 了 L i n u x 系 统 的 稳 定 性 和 完 整 性, 又从根本上解决了原有 L i n u x 核心态进程不可被抢 占 的 问 题, 减 少 抢 占 延 迟, 提 高 系 统 的 实 时 性 能, R T- L i n u x对 L i n u x内核运行原理的改造如图3所 。 示
7 0
湖 北 工 业 大 学 学 报
2 0 1 5 年第 1 期
个伺服系统对 应 伺 服 轴 的 控 制 通 过 D S P 运动控制 卡来完 , 所有轴系均由步进电机组成 , 各驱动器位置 反馈 采 用 带 有 增 量 式 光 电 码 盘 闭 环 反 馈 结 构
[ 2]
下载到 D 作指令解释 为 D S P 的 运 动 程 序, S P运动 控制卡中执行 , 伺服运动完全可以只用 D S P 系统软 件以及运动程序来实现 , 而电码盘 、 极限开关以及其 / 他外部 设 备 的 I 转移到 P O 输 入 输 出 处 理 功 能, C 机上完成 。
图 3 R T-L i n u x 内核运行原理
整个 系 统 软 件 大 体 上 可 以 分 为 4 部 分 : 实时模 , , 块( 控制层 ) 非实时模块 ( 应用层 ) 实时模块与非实 。 软件系 时部分的接口以及设备驱动程序 ( 系统层 ) 统结构如图 4 所示 。
图 4 软件系统结构
T- L i n u x 精确的 定 时 精 度 与 多 实时模块利用 R
线程实时调试机制 , 实现对多实时任务进行定时调
等 R 0 卷第 1 期 刘金铁 , T-L i n u x 在工业机器人控制系统中的实时性研究 第3

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

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

基于RT-Linux机器人控制系统实时性的研究摘要本文结合《实时系统与控制》这门课的知识,对提高机器人控制系统的实时性做深入探讨,主要是在了解机器人实时控制系统的运行调度与运行管理机制的情况下,探讨基于RT-Linux平台下提高机器人控制系统实时性的可能性,从任务调度的可抢占性及低延迟中断处理等角度来分析和论证该方案的有效性,同时在此基础上划分机器人控制系统任务,以达到进一步提高系统的实时性性能的目的。

最后我们对理论分析进行简单的实验验证,希望对机器人控制系统实时性提高有一个初步认识,为以后更深入的研究打下基础。

关键词:机器人;实时性;RT-Linux;划分任务1引言随着仿人机器人技术的高速发展,机器人能够实现的功能也越来越强大,这无疑对机器人控制器的信息处理速度提出了更高的要求,如何在现有的条件下,进一步提高机器人控制系统的实时性已然成为国内外研究机器人技术的一个很重要的课题。

由于本人对机器人控制很感兴趣,所以希望能够将所学《实时系统与控制》的理论知识与该领域的研究热点结合起来,从提高系统实时性的角度探讨如何完善机器人控制系统。

2需求分析:实时系统是能够在确定的时间内执行计算或处理事务并对外部事件作出响应的计算机系统。

仿人机器人是一个典型的实时系统,对工业机器人控制来说,尤其在远程机器人控制中,如果不能很好地满足系统所需的实时性要求,它的很多功能就失去了意义。

以图1所示远程机器人控制器的系统为例:图1远程机器人监控系统该系统中的机器人控制器运行于一台PenriumⅢ工业控制微型计算机(IPC)上。

在该IPC 上安装了位置控制卡,其输出直接与机器人伺服电机驱动器相连,由其直接驱动机器人本体上的伺服电机来完成相应的动作。

图形仿真与监控系统运行于另一台微机上。

PT2600机器人共有五轴,它有两块PCL2832三轴多功能位置卡,如果位置误差反馈计数超过阈值,说明机器人运动异常, 三轴位置控制卡以毫秒级发出DDA中断请求。

基于RTLINUX的实时控制系统DOC7

基于RTLINUX的实时控制系统DOC7

基于RTLinux的实时控制系统摘要:从技术背景、系统结构、硬件和软件设计等方面论述了基于RTLinux的闸门实时控制系统的组成、原理以及实现方法,并着重分析了软件实现的关键问题。

关键词:RTLinux 实时控制 TCP/IP MYSQL数据库在水电站闸门控制系统中,设备地理位置分散、控制分散,基于常规继电器的控制系统不能满足电厂无人值班控制系统和全厂综合自动化的要求,必须将智能控制和工业网络相结合,实现实时控制的同时又能对设备进行智能管理和维护。

目前比较常用的控制系统大多由PLC构成,成本较高,缺乏客户定制的灵活性。

本文从系统功能实现和经济指标两个方面考虑,半基于RTLinux的控制平台、工业以太网和数据库技术引入闸门控制系统。

1 RTLlinux、工业以太网和数据库RTLinux是由新墨西大学的Victor Yodaiken等人开发的,现在已有商业化的版本推出。

在RTLinux面世之前,Linux在实时性方面作过一些尝试。

在POSIX1.b中,规定了实时进程的一些标准,但由于Linux内核的不可抢先性,真正的实时进程无法在标准的Linux环境下实现。

RTLinux采用简单而有效的方法解决了此问题而不用重写Linux内核代码。

RTLinux实现了一个高效的可抢先的实时调度核心,全面接管中断,并把Linux 作为此实时核心的一个优先级最低的进程运行。

当有实时任务需要处理时,RTLinux运行实时任务;无实时任务时,RTLinux运行Linux的非实时进程。

图1是RTLinux的结构图。

为保证实时进程与非实时Linux进程部顺序进行数据交换,RTLinux引入了RT-FIFO 队列。

RT-FIFO被Linux视为字符设备,最多可达150个,分别命名为/der/rtf0、/dev/rtf1……/dev/rtf63。

最大的RT-FIFO数量在系统内核编译时设定。

图2说明了RT-FIFO的工作原理。

RTLinux程序运行于两个空间:用户空间内核态。

基于linux的机械臂实时控制系统研究

基于linux的机械臂实时控制系统研究

基于Linux的机械臂实时控制系统研究∗巢惠世ꎬ梁宏斌ꎬ蔡土淇(辽宁科技大学机械工程与自动化学院ꎬ辽宁鞍山114051)摘㊀要:针对我国自主研发的机械臂控制系统较少ꎬ多依赖于国外价格昂贵的商用系统ꎬ采用在Linux中加入RT补丁的实时改造方法ꎬ以六自由度机械臂为研究对象ꎬ在下位机上进行系统架构搭建ꎬ实现一个包括TCP通信进程㊁译码进程㊁插补逆解进程㊁I/O进程的一个多任务处理的机械臂控制系统ꎻ同时对机械臂的上位机进行软件设计ꎬ实现人机界面指令输入㊁状态显示㊁通信等功能ꎬ为机械臂的实时控制系统提供了一种有效开发方案ꎮ通过采用RT测试工具集进行实时性检验ꎬ其结果满足实时性ꎬ同时利用MATLAB/RoboticToolbox工具箱建立机器臂运动学模型ꎬ对机械臂运动空间及轨迹进行仿真ꎬ得到了连续平稳的末端曲线ꎬ仿真结果证明了控制系统设计的正确性以及可行性ꎮ关键词:机械臂ꎻLinuxꎻ实时操作系统ꎻ实时性改造ꎻ示教器ꎻ控制系统中图分类号:TP241 2㊀㊀㊀㊀㊀㊀文献标识码:A㊀㊀㊀㊀㊀㊀DOI:10.19358/j.issn.2096 ̄5133.2020.04.015引用格式:巢惠世ꎬ梁宏斌ꎬ蔡土淇.基于Linux的机械臂实时控制系统研究[J].信息技术与网络安全ꎬ2020ꎬ39(4):81 ̄85.Researchonreal ̄timecontrolsystemofmanipulatorbasedonLinuxChaoHuishiꎬLiangHongbinꎬCaiTuqi(SchoolofMechanicalEngineeringandAutomationꎬUniversityofScienceandTechnologyLiaoningꎬAnshan114051ꎬChina)Abstract:AimingatChinaᶄsself ̄developedroboticarmcontrolsystemꎬitismostlydependentonforeignexpensivecommercialbusines ̄ses.Itadoptsareal ̄timetransformationmethodthataddsRTpatchestoLinux.Asix ̄degree ̄of ̄freedomroboticarmisusedasthere ̄searchobjectꎬandthesystemarchitectureisbuiltonthelowercomputertoimplementamulti ̄taskingroboticarmcontrolsysteminclu ̄dingTCPcommunicationprocessꎬdecodingprocessꎬinterpolationinversesolutionprocessꎬandI/Oprocess.Atthesametimeꎬsoftwaredesignisperformedontheuppercomputerofthemanipulatortorealizetheinputofhuman ̄machineinterfaceinstructions.Statusdis ̄playꎬcommunicationandotherfunctionsprovideaneffectivedevelopmentplanforthereal ̄timecontrolsystemoftheroboticarm.Byu ̄singtheRTtesttoolsetforreal ̄timeinspectionꎬtheresultsmeetthereal ̄timeperformance.AtthesametimeꎬtheMATLAB/RoboticToolboxisusedtoestablishthekinematicmodeloftherobotarmꎬandthemovementspaceandtrajectoryoftherobotarmaresimulatedtoobtainacontinuousandstableendcurve.Thesimulationresultsprovethecorrectnessandfeasibilityofthecontrolsystemdesign.Keywords:roboticarmꎻLinuxꎻreal ̄timeoperatingsystemꎻreal ̄timetransformationꎻteachingdeviceꎻcontrolsystem0㊀引言21世纪以来ꎬ我国工业机器臂取得了巨大的进步ꎬ随着我国传统制造业的转型升级ꎬ我国的机械臂市场的潜力是巨大的ꎬ所以对机械臂的研究具有重要意义[1 ̄2]ꎮ现在机械臂常用的操作系统像VxWorks都是商用的操作系统ꎬ虽然实时性好ꎬ但是价格昂贵ꎬ而价格低廉㊁开源且可裁剪的Linux则非常适合机械臂系统的自主开发ꎮ由于标准的Linux操作系统不具备实时性ꎬ需要对其进行实时性改造ꎮ在Linux的实时改造方面ꎬ有采用双内核路线的美国新墨西哥州立大学研制的RT ̄Linux㊁意大利米兰学院研制的RTAI以及移植性更好的Xeno ̄mai[3 ̄4]ꎻ还有采用直接修改内核路线的加州大学开发的RED ̄Linuxꎬ堪萨斯大学开发的Kurt ̄Linuxꎬ以及实时抢占补丁RT ̄Patch[5]ꎮ经过改造的Linux可以在数控系统㊁机器人系统㊁航空领域等得到应用ꎮ赵翔宇[6]采用嵌入式Linux对六自由度机械臂控制∗基金项目:辽宁省自然科学基金项目(2015020128)ꎻ辽宁省教育厅科学研究基金(2017LNQN22)系统进行设计ꎬ运用CAN总线的分布式控制方式ꎬ实现了机械臂点到点的抓取控制ꎻ应思齐[7]利用Linux系统的嵌入式平台作为SCARA机械臂的控制端ꎬ并基于Qt应用软件对机械臂进行运动控制ꎬ提高了系统的实时性ꎻ中科院沈阳自动化研究所采用RT ̄Linux实时嵌入式操作系统ꎬ研制出基于对话方式设计实现的机器人示教器[8]ꎮ本文针对机械臂实时控制系统开发ꎬ采用RT ̄Patch的改造方法对Linux进行实时性改造ꎬ在经过改造的Linux环境下对机械臂下位机进行系统架构搭建ꎬ实现译码㊁插补㊁逆解㊁通信功能ꎻ同时结合示教器软件设计ꎬ完成机械臂从示教器端的指令输入到下位机的数据处理功能ꎬ具有示教再现功能ꎬ同时使机械臂在实时性达到要求的前提下运行平稳且满足一定的运动精度要求ꎮ1㊀实时控制系统的搭建1.1㊀标准Linux的实时性分析Linux作为开放源码项目的典型代表ꎬ在各个领域都有广泛的应用ꎬ但是标准的Linux是一款分时操作系统ꎬ追求的是高的信息吞吐量和公平性[9]ꎬ虽然Linux的内核在2.4版本后支持和优化了实时性ꎬ但是它本质上并不是一个实时操作系统ꎮ主要体现在以下方面[10]:(1)内核的不完全抢占ꎻ(2)中断不可抢占ꎻ(3)时钟颗粒粗糙ꎻ(4)实时调度策略不足ꎻ(5)优先级反转ꎻ(6)虚拟内存ꎮ1.2㊀Linux实时改造方法为解决Linux的实时性问题ꎬ本文采用的方法是在Linux社区kernel的基础上加上RT ̄Preempt补丁ꎬ以使得Linux满足实时的需求[11]ꎮRT ̄Preempt补丁对Linux内核的主要改造包括:(1)通过用rt ̄mutexes重新实现ꎬ使内核内锁定原语(使用自旋锁)可抢占ꎻ(2)受spinlock_t和rwlock_t保护的关键部分现在可以抢占ꎻ(3)将中断处理程序转换为可抢占的内核线程ꎬRT ̄Preempt补丁在内核线程上下文中处理软中断处理程序ꎬ该任务由task_struct表示ꎬ就像普通的用户空间进程一样ꎬ但是也可以在内核上下文中注册IRQꎻ(4)将旧的Linux计时器API转换为用于高分辨率内核计时器的单独基础结构ꎬ再加上用于超时的基础结构ꎬ从而产生具有高分辨率的用户空间POSIX计时器ꎻ(5)丰富了实时调度策略算法ꎻ(6)实现内核内自旋锁和信号量的优先级继承ꎻ(7)提供内存锁定功能ꎬ避免实时处理中存储页被换出ꎮ1.3㊀实时性验证测试环境为Ubuntu10.10ꎬ在安装配置完实时补丁后ꎬ再在Linux下安装RT测试工具集ꎬ运行其中的cyclictest测试工具ꎬ默认创建5个SCHED_FIFO策略的RT线程ꎬ优先级76~80ꎬ运行周期是1000μs㊁1500μs㊁2000μs㊁2500μs㊁3000μsꎬ分别在标准Linux环境下和改造后的Linux环境下进行测试ꎬ测试结果如图1所示ꎮ由图可知标准Linux内核中RT线程投入运行时间非常不稳定ꎬ而按照相关文档加入实时补丁的Linux系统的最大延迟时间为436μsꎬ平均延迟时间为192μsꎬ本次测试的最大延迟时间为241μsꎬ证明Linux系统实时改造是满足要求的ꎮ图1㊀延迟调用时间图2㊀机械臂控制系统的架构搭建机械臂的伺服控制系统如图2所示ꎬ主要由指令平台(示教器端ꎬ即PC机)㊁实时平台(控制器端ꎬ即内嵌Linux系统的工控机)以及关节模块的伺服驱动器和伺服电机组成三级控制ꎮ本文主要对指令平台和实平台进行设计ꎮ2.1㊀上位机(指令平台)软件设计机器臂示教器作为控制系统的上位机是运动控制器与操作人员之间连接的桥梁ꎬ一方面负责对操作人员的操作进行处理ꎬ例如机器人作业文件编写㊁示教再现等ꎻ另一方面在图形界面上监控机器人运动过程中的状态信息ꎬ并向控制器发送指令使机械臂完成相应的动作ꎮ㊀㊀示教器的软件编写是在Windows环境下以Qt作为开发工具进行的ꎬ主要进行4方面设计ꎮ图2㊀机械臂伺服控制系统框图(1)设计一款合适的人机交互界面ꎮ整个示教器主要分为主界面和控制界面两个界面进行显示ꎮ主界面主要显示的是示教编程功能ꎬ在该界面可进行指令的输入ꎻ控制界面主要进行状态显示㊁数据点显示㊁模拟仿真视图显示和通信功能接口ꎮ同时示教器也具有指令的插入编辑等功能对应各自的界面ꎮ主界面图如图3所示ꎮ图3㊀主界面图(2)示教器与机器人控制器进行实时交互ꎮ示教器与机器人控制器的通信通过基于TCP/IP协议的以太网通信实现ꎮ(3)提供了机器人操作的基本功能ꎬ含有直线㊁圆弧㊁关节的插补运动指令ꎬ在控制界面还添加了插补点坐标的显示和插补点的仿真试图ꎮ(4)通过界面上的状态信息显示出当前机械臂的状态ꎬ遇到故障或者错误时及时反馈到示教器界面ꎮ2.2㊀下位机(实时平台)系统架构设计下位机采用Linux系统(加入实时补丁)作为多任务控制系统的编写环境平台ꎬ具有多进程设计的控制系统其稳定性比较高ꎬ因此多任务采用多进程进行处理ꎮ本次多任务分为四个进程ꎬ分别为:TCP通信进程㊁I/O进程(实时RT进程)㊁译码进程㊁插补逆解进程(实时RT进程)ꎮ据信息的交互ꎬ上位机获得的人机运动指令TXT文档传递给下位机[12]ꎮ上位机先发送文件的头部信息ꎬ发送完毕后延时5msꎬ然后循环读取4KB内存大小的文件数据ꎬ再发送给下位机直到文件读取结束ꎮ下位机先接收文件的头部信息ꎬ然后再连续接收文件的内部信息ꎬ从而实现人机涌动指令TXT文档的接收ꎮI/O进程:此进程为实时进程ꎬ以20ms的周期来读取相关GPIO口的状态置位信息ꎬ和内部设置好的GPIO口置位信息对比从而进行相关的程序处理ꎮ译码进程:逐行读取人机运动指令TXT文档ꎬ根据每行的运动指令类型添加特征符变量ꎬ然后将每行识别的位置㊁速度㊁欧拉角的信息和特征符变量依次添加到链表当中ꎬ然后通过管道通信给插补逆解进程(实时RT进程)传输链表信息ꎮ具体过程如图4所示ꎮ图4㊀译码流程框图插补逆解进程:设置定时器ꎬ以10ms为周期触发定时器(设计的插补周期为10ms)ꎬ进程开始依次读取链表信息进行加减速㊁轨迹插补㊁逆解计算ꎬ然后进程移出工作队列放入等待队列ꎬ任务进入阻塞状态ꎬ等待定时器触发唤醒进程的下一次程序处理ꎬ直到链表全部读取完ꎮ流程图见图5ꎮ图5㊀插补逆解流程图3㊀运动仿真分析及系统实时性检验3.1㊀系统实时性检验前面已经验证安装RT补丁后的系统实时性是满足要求的ꎬ这里进行系统调用插补逆解进程完成机械臂运动控制的实时性检验ꎬ仍然用rt ̄test测试工具集对其进行实时性测试ꎬ测试结果如图6所示ꎮ图6㊀程序执行时间图图中横坐标为所有插补点ꎬ纵坐标为每次执行插补逆解所需要的执行时间ꎬ从图中可以看到最大执行时间为310μsꎬ加上进程最大延迟调用时间436μsꎬ一共耗时不超过1msꎬ为后续添加更复杂功能提供了可能性ꎬ证明此系统设计具有良好的实时性和扩展性ꎮ3.2㊀运动仿真分析在机械臂的建模方法上采用D ̄H参数法[13]建立关节坐标系ꎬ以PUMA560为原型建立机器人连杆坐标系ꎮ利用MATLAB环境下的Robotic工具箱[14]的Link和robot函数建立机器人处于零点位置的位姿ꎬ根据表1给出的D ̄H参数建立机械臂的模型ꎬ建立第i个连杆的命令如下:Li=Link(θiꎬdiꎬaiꎬαi)利用SerialLink函数将六个连杆依次序连接起来ꎬ命令如下:robot=SerialLink([L1ꎬL2ꎬL3ꎬL4ꎬL5ꎬL6])调用teach函数调节6个关节变量ꎬ实现对机器人模型进行控制ꎬ关节变量由实时平台的Linux系统计算得到ꎮ整个过程模拟焊接轨迹过程ꎬ包括三段直线ꎬ一段圆弧ꎮ机械臂的运动仿真结果如图7所示ꎬ从仿真中可以直观地看到末端执行器的整个连续平稳的运动轨迹ꎮ表1㊀D ̄H参数关节ai-1αi-1diθiθ的范围10.00000ʎ0.000090ʎ-160ʎ~160ʎ20.0000-90ʎ0.14910ʎ-225ʎ~45ʎ30.43280ʎ0.0000-90ʎ45ʎ~225ʎ40.0203-90ʎ0.433310ʎ-110ʎ~170ʎ50.000090ʎ0.00000ʎ-100ʎ~100ʎ60.0000-90ʎ0.00000ʎ-266ʎ~266ʎ4㊀结论本文在Linux内核上外加RT补丁的实时改造的基础上ꎬ独立完成对六自由度机械臂控制系统的搭建ꎮ进行以示教器为上位机的示教器软件设计ꎬ完成了通信㊁指令输入㊁视图仿真等功能ꎬ下位机则进行了包括TCP通信㊁I/O㊁译码㊁插补逆解进程的系统架构搭建ꎮ通过实验ꎬ验证了Linux外加RT补丁的实时性改造的可行性ꎬ并且完全可以应用到机械臂的图7㊀机械臂运动仿真图控制系统当中ꎬ实时性可以满足ꎬ同时对整个控制系统进行仿真ꎬ仿真结果为连续平稳的曲线ꎬ证明了机械臂控制系统的运动控制的正确性和可行性ꎮ参考文献[1]云洋.六自由度工业机械臂控制系统研究[D].武汉:中国地质大学ꎬ2018.[2]岳晴晴.六轴工业机器人轨迹规划的研究[D].镇江:江苏科技大学ꎬ2019.[3]KUSHALKOOLWAL.Mythsandrealitiesofreal ̄timelinuxsoftwaresystems[C].ProceedingsofEleventhReal ̄TimeLinuxWorkshopꎬ2009:13 ̄18.[4]JAKUBAꎬZDENEKBꎬVACLAVK.Real ̄timecapabili ̄tiesofLinuxRTAI[J].IFACPapersOnLineꎬ2016ꎬ49(25).[5]吴章金.Linux实时抢占补丁的研究与实践[D].兰州:兰州大学ꎬ2010.[6]赵翔宇.六自由度机械臂及其控制系统的研究[D].哈尔滨:哈尔滨理工大学ꎬ2019.[7]应思齐.基于Linux的SCARA型机械臂运动控制系统设计[D].杭州:浙江理工大学ꎬ2017.[8]王正阳.嵌入式系统机器人示教器人机交互界面设计实验及研究[D].合肥:合肥工业大学ꎬ2017. [9]左天军ꎬ左圆圆ꎬ陈平.Linux操作系统的实时化分析[J].计算机科学ꎬ2004(5):110 ̄112.[10]杨立身ꎬ王中海.Linux操作系统的实时化分析[J].长春师范学院学报ꎬ2007(4):75 ̄78.[11]吴章金.Linux实时抢占补丁的研究与实践[D].兰州:兰州大学ꎬ2010.[12]张小寒.基于TCP/IP协议栈的嵌入式系统通信方案设计研究[J].现代制造技术与装备ꎬ2018(7):59ꎬ62. [13]蔡自兴ꎬ谢斌.机器人学(第三版)[M].北京:清华大学出版社ꎬ2015.[14]赵海滨ꎬ于清文ꎬ刘冲ꎬ等.机械臂控制系统仿真实验设计[J].实验室研究与探索ꎬ2018ꎬ37(11):100 ̄104.(收稿日期:2020 ̄01 ̄14)作者简介:巢惠世(1997-)ꎬ男ꎬ硕士研究生ꎬ主要研究方向:机器人控制ꎮ梁宏斌(1967-)ꎬ男ꎬ教授ꎬ主要研究方向:数控技术ꎮ蔡土淇(1994-)ꎬ男ꎬ硕士研究生ꎬ主要研究方向:机器人技术ꎮ。

用于机器人控制系统的实时操作系统的研究与实现

用于机器人控制系统的实时操作系统的研究与实现

用于机器人控制系统的实时操作系统的研究与实现引言随着机器人技术的快速发展,机器人在人类社会中的地位也越来越重要。

机器人控制系统的实时性和可靠性是保证机器人行动效率和安全的核心因素之一。

因此,实时操作系统(RTOS)成为了机器人控制系统中不可缺少的技术点之一。

本文旨在研究和实现用于机器人控制系统的实时操作系统,为机器人技术的发展做出贡献。

第一部分:实时操作系统概述实时操作系统是一种被设计用于响应、执行和传递任务的操作系统。

相对于一般的操作系统,实时操作系统要求更高的响应速度和更可靠的任务执行时间。

实时操作系统分为硬实时操作系统和软实时操作系统两类。

硬实时操作系统通常用于需要高精度处理的场景,如航天、电信和工业自动化等。

它的响应时间非常短,误差通常不超过几百微秒。

而软实时操作系统则被广泛应用于需要更高性能和更低成本的场景,如移动电话、数字电视和计算机游戏等。

它的响应时间较硬实时操作系统略慢,误差一般在毫秒级别。

第二部分:用于机器人控制系统的实时操作系统设计针对机器人控制系统的硬件特点,需要保障实时操作系统可以提供高精度的任务执行时间和高效的响应速度。

针对任务调度和处理,可以采用分时调度算法、即时响应调度算法等。

此外,还需要对实时环境的可靠性提出一定保障措施,如异常捕捉、错误处理等。

对于硬实时操作系统,通常会采用限时调度算法,保障任务执行时间的精度。

而对于软实时操作系统,常见的是采用基于优先级的调度算法,可针对任务优先级灵活调整。

放在机器人控制系统中,实时操作系统一般实现以下几个核心模块:1.任务管理器:负责任务的调度和分配。

在实时操作系统中,任务管理器的调度方式是设计系统响应性的重要核心。

2.同步机制:如信号量、互斥锁、事件、消息等,可确保任务间的协作和通信。

3.内存管理:实时操作系统至少需要实现静态内存分配和动态内存分配两种内存分配方式。

4.中断处理:实时操作系统需要对硬件中断进行处理,确保硬件事件的及时响应。

机器人控制器的实时操作系统性能分析

机器人控制器的实时操作系统性能分析

机器人控制器的实时操作系统性能分析随着科技的不断进步,机器人在工业生产、医疗保健、军事等领域展现出广泛的应用前景。

机器人的控制器作为机器人的大脑,承担着指挥机器人运动、感知环境、进行决策等重要任务。

而实时操作系统(RTOS)则是机器人控制器的核心组成部分,对机器人的性能和稳定性有着至关重要的影响。

本文将对机器人控制器的实时操作系统性能进行分析,探讨其在机器人控制方面的重要性以及面临的挑战,并提出相应的解决方案。

首先,实时操作系统对机器人控制的性能至关重要。

机器人通常需要以高精度和高速度进行运动控制,而这需要控制系统能够实时响应传感器输入并快速做出决策。

实时操作系统能够提供可靠的任务调度和优先级控制,确保关键任务能够按时执行并满足硬实时要求。

这对于机器人的稳定性和安全性至关重要,尤其是在需要处理大量传感器数据和复杂运动算法的应用中。

其次,实时操作系统面临着一系列挑战。

首先,实时操作系统需要满足更严格的时间约束。

机器人控制通常需要以微秒级的时间精度进行操作,因此实时操作系统需要具备高速的任务调度和中断处理能力。

其次,实时操作系统需要保证任务间的隔离性和安全性。

机器人通常涉及到多个任务同时执行,这就需要实时操作系统能够保证不同任务之间的资源互斥,防止竞争导致的错误。

此外,实时操作系统还需要具备容错能力,能够快速识别和处理故障,确保机器人的稳定运行。

针对这些挑战,我们可以采取以下解决方案来提高实时操作系统的性能。

首先,优化任务调度算法。

实时操作系统的任务调度算法直接影响到系统的响应速度和稳定性。

可以通过采用抢占式调度算法和优先级调度策略,确保关键任务能够得到及时响应。

同时,可以使用最短作业优先算法和最早截止时间优先算法等来提高系统的实时性。

其次,使用硬件加速器来提高任务处理速度。

通过使用专门的硬件加速器,如FPGA,可以实现对任务的硬件加速,提高系统的运行效率和响应时间。

此外,可以采用多核处理器来提高系统的并行处理能力,加快任务的执行速度。

基于RTLinux的机器人控制操作系统实现

基于RTLinux的机器人控制操作系统实现

基于RTLinux的机器人控制操作系统实现
王亮;朱齐丹;王磊
【期刊名称】《应用科技》
【年(卷),期】2004(031)002
【摘要】RTLinux操作系统具有实时性、完备性和源代码开放等很多优点.结合机器人的特点,讨论了将嵌入式RTLinux操作系统应用到机器人控制操作系统中的一些关键问题,重点介绍了构造机器人操作系统的软件设计方法.构造的操作系统在移动机器人平台上进行了实验,取得了较好的控制结果.为机器人控制的深入研究打下基础.
【总页数】3页(P36-38)
【作者】王亮;朱齐丹;王磊
【作者单位】哈尔滨工程大学,自动化学院,黑龙江,哈尔滨,150001;哈尔滨工程大学,自动化学院,黑龙江,哈尔滨,150001;哈尔滨工程大学,自动化学院,黑龙江,哈尔滨,150001
【正文语种】中文
【中图分类】TP242.6
【相关文献】
1.基于RTLinux操作系统的开放式数控系统运动控制器的研究 [J], 卢艳军;林浒;任朝晖;任立义
2.基于AvrX操作系统的机器人控制系统设计 [J], 张黎夫;李宏亮;苏毅婧
3.一种基于RTLinux实时操作系统的自适应预测控制的实现方法 [J], 程宏亮;张国贤;包海昆
4.硬实时操作系统RTLinux的实现 [J], 党志斌
5.基于RTLinux的嵌入式实时操作系统的研究和实现 [J], 刘辉;郑红;李子鹏
因版权原因,仅展示原文概要,查看原文内容请购买。

基于RTlinux的硬实时性研究

基于RTlinux的硬实时性研究

基于RTlinux的硬实时性研究
张帆
【期刊名称】《武汉理工大学学报(信息与管理工程版)》
【年(卷),期】2006(028)007
【摘要】Linux若作为一个操作系统,它无法满足实时系统严格的实时性要
求.RTlinux是在Linux内核的下层实现所得的一个简单的硬实时内核,能够提供很好的实时性能.阐述了实时操作系统RTlinux实时性的实现方法,并给出了应用实例.【总页数】3页(P164-166)
【作者】张帆
【作者单位】武汉理工大学,信息工程学院,湖北,武汉,430070
【正文语种】中文
【中图分类】TP316
【相关文献】
1.基于RTLinux的计算机联锁软件可靠性和实时性研究 [J], 董昱;林海香
2.RTLinux的实时性检验与内核裁减的研究 [J], 晏密英;刘刚
3.RTLinux的实时性检验与内核裁减的研究 [J], 晏密英;刘刚
4.基于RTLinux的容错硬实时性的研究与实现 [J], 李俊;阳富民;卢炎生
5.Linux/RTLinux下实时多线程实时性检测方法 [J], 曹廷发;吉华;马江;付耀国因版权原因,仅展示原文概要,查看原文内容请购买。

基于RTlinux的硬实时性研究

基于RTlinux的硬实时性研究
R Tlinux的任务调 度 策略 采 用完 全适 应 于 实 时应用的按优先级抢占 CPU 的调度方法 。这种 方法保证任何时刻都是优先级最高的任务占用 CPU。优先级最高的任务可以中断当前运行的程 序而抢占 CPU; 优先级较低的任务 ,只有在所有 优先级比它高的任务都运行完后才能投入运行 。 同时 RTlinux也支持其他的调度策略 ,如 EDP算 法 (截止时限靠前者最先调度 ) 、RM 算法 (周期短 者优先级高 )等 。RTlinux将任务调度器本身设计 成一个可装载的内核模块 ,用户可以根据自己的 实际需要 ,编写适合自己的调度算法 。 2. 3 RTlinux的时钟机制
这种方式的优势在于 :实时和非实时的线程 被分离 ,而关键的实时函数会在固定的 RTOS下 运行 ,从而不受 L inux系统的影响 。当然 ,拥有两 个内核就意味着有两组单独的 AP I,即一个用于 L inux环境 ,另一个用于实时的环境 [ 2 ] 。
4 RT l in ux下的应用开发策略
{ status = rtf_put ( 0, buf, 1024 ) ; / /将数据写 入 F IFO if ( status < = 0) p thread_wait_np ( ) ; / /挂起线程
} return 0; } / /初始化模块 int init_module ( void) { rtf_ create ( 0, 1024 3 1024 ) ; / /创 建实 时管 道 ,其次设备号为 0,并分配 1 KM 的缓冲区 return p thread _ create ( &thread, NULL , start_ routine, 0) ; / /创建新线程 } / /清除模块
按照 RTlinux下的编程思想 ,分别编出实时 部分的程序 fifi. c 和非实时部分的程序 read. c。 主要代码如下 :

基于RTLinux-Java平台的网络机器人远程控制研究

基于RTLinux-Java平台的网络机器人远程控制研究

收稿日期:2003-07-10修订日期:2003-07-29作者简介:高建华(1974-),男,内蒙古呼和浩特人,博士,浙江工程学院讲师,主要研究方向:机器人技术。

基于RTlinux-java 平台的网络机器人远程控制研究高建华,胡旭东,武传宇,沈卫平(浙江工程学院集成技术研究中心,浙江杭州310033)摘要:提出综合利用RTlinuX 硬实时特性和Java 跨平台特性以及多线程处理方面的优势实现网络机器人远程控制的思想,并给出一种可操作的设计方案,目的在于为提升基于Web 的机器人控制技术奠定基础。

关键词:RTlinuX ;Java ;网络机器人;远程控制中图分类号:TP242;TP393.09文献标识码:A文章编号:1001-4551(2003)05-0049-03Research on the Web Robot Teleoperation Control Based on RTlinux-java PlatformGAO Jian-hua ,HU Xu-dong ,WU Chuan-yu ,SHEN Wei-ping(Research Center of Integration Engineering ,Zhejiang Institute of Science and Technology ,Hangzhou ,310033)Abstract :A new idea for the web-robot teIeoperation controI is proposed ,which takes fuII advantage of hard reaI-time characteris-tics of RTlinuX and muIti-threads treatment of Java.And one avaiIabIe design scheme is provided.The idea and scheme wiII pIay a positive roIe on improving the robot technoIogy based on web controI.Key words :RTlinuX ;Java ;Web robot ;TeIeoperation controI1引言在计算机技术、网络技术快速发展的信息时代,机器人技术借助网络信息技术深入发展已成为领域内的前沿和热点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

)*=567 命令装入内核。采用这种模块化编程的好 处是无需重新编译内核, 开发、 调试、 使用都很灵 活。 !"$"$ %&’()*+, 的设备文件操作 %&’()*+, 中的 >48’ <6=),)6 模块为设备驱动程序
提供了类似于接口的文件系统。 %&’()*+, 内核使 用 >48’ ?)89’ 6<9>;4)6*= 结 构 来 访 问 驱 动 程 序 中 的 函 数。当模块初始化例程向内核注册设备时, 使用 在模块卸载例程中注销设 >48’ >9@)=49>’ :A>79B 函数; 备时, 使用 >48’+*>9@)=49>’:A>79B 函数。 %&’()*+, 和 唯一的 ()*+, 中注册和注销设备没有太大的区别, 区别就是在于 %&’()*+, 是在实时域完成这些工 作的。在 %&’()*+, 注册设备文件时使用了 >48’ ?)89’ 这个 6<9>;4)6*= 结构的函数指针变量 >48’ >6C64’ ?6<=, 变量中的文件操作指针是位于字符设备驱动程序 内部的文件操作例程的地址指针, 用来处理打开、 读写、 关闭等文件操作。 !"$"! %&’()*+, 中的中断服务 %&’()*+, 中的实时任务是一个可加载的核心
真、 人机交互等方面都已发展到一定水平, 因而对 机器人控制器性能的评测显得尤为重要。在诸多 评测标准中, 实时性是重要指标。我们所研究的 ,+%9// 机器人控制器的设计目标是要求机器人在 网络环境中具备远程控制能力, 最大程度地满足 可靠性、 实时性要求。
A
远程机器人控制器的系统结构
远程机器人控制器的系统结构如图 & 所示,
!"#$%&’() * +, -.." &//0%&$/1
计算机工程与科学
!23,4+56 5"7-"556-"7 8 .!-5"!5
’//’ 年第 ’# 卷第 9 期 :;<=’#, ";=9, ’//’
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! 文章编号: (’//’) &//0%&$/1 /9%//>&%/(
修订日期: ’//&%&’%&’; ’//’%/#%&) " 收稿日期: 基金项目: 国家教委 “高等学校骨干教师资助计划” 项目 作者简介: 施华 (&>09 X ) , 女, 硕士生, 研究方向为计算机控制、 网络与多媒体技术; 陈一民, 教授; 李超, 硕士生。 通讯地址: ’///0’ 上海市延长路 &#> 号上海大学计算机工程与科学学院 &#0 Y 陈一民; 5%JF@<: H@GH<DZ ;A<@ADS EIS HA; <775(::: 3F@< M;C &#0, .HI;;< ;O !;JPBLDG 5AR@ADDG@AR FAN .H@DAHD, .IFARIF@ 4A@QDGE@LW, &#> [FAHIFAR 6N, .IFARIF@ ’///0’, ,S 6S !I@AF
"#$%&’( 三轴多功能位置卡。 "#$%&’( 卡能对三 轴进行联动插补控制, 采用位置和速度双闭环控 制系统来保证机器人运动的平稳和准确定位。如 果位置误差反馈计数超过阈值, 说明机器人运动 异常, 位置卡发出溢出中断报警 ( )*) ,我们必须 及时响应这个中断, 以保证机器人的安全运行。 为了同步, 机器人所有的轴必须在 !! 时刻同 时开始发出位置脉冲, 在 !( 时刻同时停止 。 !! " ( +-.-/01 +-223435/-01 !( 这段时间间隔被定义为 ++, 简称 ++,) 周期。 ++, 周期可以通过软 ,50167-7, 件设置, 范围是 ! 毫秒到 ( 秒。我们可以设置一 个 ++, 周期内的脉冲数 ( 8 9 :8;<) , 这个脉冲数 代表了一个 ++, 周期内总的位置变化。连续的 脉 冲 序 列 输 出 保 证 了 机 器 人 平 滑 的 响 应 动 作, "#$%&’( 位 置 卡 以 插 补 时 间 为 周 期 连 续 发 出 中 断, 我们只需要在 ++, 周期开始之前, 将位置信 息写入动作控制芯片的缓冲区中。放在 ++, 脉 冲缓冲器中的脉冲数被传到 ++, 发生器, 在下一 个 ++, 周期中输出。所以在当前的 ++, 周期结 束前就要在 ++, 脉冲缓冲器中设置好下一个周 期要输出的脉冲数。 我们选用了支持多用户、 多种硬件平台, 具备 内存保护、 虚似内存功能的 $-5=> 作为软件开发 的平台。由于 $-5=> 源代码完全公开, 因而可以 根据实际需要修改系统内核。但是 $-5=> 是典型 的分时操作系统, 不能从根本上保证机器人控制 的实时性, 必须加以改进。
!
机器人控制器实时性改进方案
经过对整个机器人控制系统以及机器人在现
图( @A%$-5=> 的系统结构
有控制器下实际使用情况的分析后, 我们发现可
! " # " $ 机器人控制器任务划分 由于 %&’()*+, 中实时任务在内核空间执行, 所以对 实 时 任 务 的 编 程 有 别 于 普 通 ()*+, 的 编 程。%&’()*+, 应用的一条通用准则就是将有严格 时间限制的工作放在实时部分完成, 实时部分的 程序要尽量的简单。实时部分往往是一些实时线 程和中断服务例程。实时线程的概念有别于 ()*’ 实时线程在实时域 +, 下遵循 -./01 标准的线程, 内执行。所以一个应用程序要加以分割, 使大量 的没有严格时间限制的工作尽量在用户空间完 成。下面分析一下实时和非实时功能的划分。 (#) 硬实时部分负责一切和时间限制有关的 操作。我们将硬实时部分的功能划分成三个线 程, 它们分别负责 -2(’3!$ 卡的驱动程序 (中断处 理、 设备文件操作) , 用户命令或用户程序、 在线示 教、 远程监控产生的基本指令的执行, 以及机器人 程序文件的生成和调用。对于前两个线程的设置 目的是显而易见的, 这里有必要解释一下第三个 线程。因为无论是 %&’()*+, 下的实时性线程, 还 是 ()*+, 下的进程都要使用到机器人程序文件。 但是在 %&’()*+, 环境下, 标准 ()*+, 是可以被抢 占的, 所以这些文件很可能在其它实时线程抢占 导致严重的丢失或 ()*+, 时遭到不可恢复的破坏, 错误。故我们开辟这样一个实时线程进行文件操 作。在 %&’()*+, 中, 只要将这个实时线程的优先级 设置成同其它实时线程一样, 则它们可以互不被抢 占, 保证了系统运行的可靠性。 ($) 在非实时空间, 主要开辟三个线程实现用 户界面、 三维仿真以及远程机器人控制的通信。 其中交互式的图形用户界面的线程在 ()*+, 下具 备最高的优先级, 可以最快地接受用户命令。机 器人三维图形仿真线程, 可以通过离线编程创建 机器人程序文件。 !"# 在 $%&’()*+ 下改写驱动程序 在提出了机器人控制系统实时性改造方案之 后, 我们首先对设备驱动程序及其上层用户应用 测试程序实施了改造。 !"$"# 模块的装载和释放 %&’()*+, 以 ()*+, 模块的形式支持动态加载 实时程序。事实上 %&’()*+, 和实时线程本身都 是可加载的核心模块。 ()*+, 模块源文件必须包 含 )*)4’ 567+89 () 和 :89;*+<’ 567+89 () 两个函数, )*)4’ () 在模块被装入内核时调用, 567+89 :89;*+<’ 567+89 () 在模块被卸载时调用。编译好的模块可以用
以在以下几个方面加以实时性改进: (!) $-5=> 是一个典型的分时 多 任 务 操 作 系 统, 所以要寻找一种实时操作系统既具备 $-5=> 的优点又能够达到机器人控制的实时性要求; (() 采用多线程机制将机器人控制器的功能 加以划分。 !"# 硬实时操作系统— — —$%&’()*+ ’?!?! $-5=> 在实时性上的弱点以及 @A%$-5=> 的改进 $-5=> 虽然具备很多有利于工业机器人控制 的优点, 但是它毕竟是一个分时操作系统, 所以在
基于 6+%?@ABC 的实时机器人控制器研究 6DEDFGHI ;A F 6DF<%+@JD 6;K;L !;ALG;<<DG MFEDN ;A 6+%?@ABC
施 华, 陈一民;, ’"() *#+,#)-, .# ’"&/ (上海大学计算机工程与科学学院, 上海 ’///0’) ( !0"//1 /2 ’/,3%4(5 6)-#)((5#)- &)7 !0#()0(, !"&)-"&# 8)#9(5:#4;, !"&)-"&# ’///0’, ’"#)&) 要: 本文结合机器人控制器的特点, 提出了采用 6+%?@ABC 操作系统改进机器人控制实时性的 方法, 并对机器人控制器任务采用多线程机制进行实时域和非实时域的划分。最后给出了一个在 6+% 摘 ?@ABC 操作系统下实现硬件设备实时驱动程序的实例。 <=:45&04: MFEDN ;A LID HIFGFHLDG@EL@HE ;O G;K;L H;ALG;<<DGE, LI@E PFPDG PG;Q@NDE F JDLI;N ;O BE@AR 6+%?@ABC L; @JPG;QD LID GDF<%L@JD PDGO;GJFAHD ;O G;K;L H;ALG;< S TAN, @L F<E; BEDE F JB<L@%LIGDFN JDLI;N L; N@Q@ND G;K;L H;ALG;<<DG LFEUE @AL; LID GDF<%L@JD EPFHD FAN LID A;A%GDF<%L@JD EPFHD S V@AF<<W FA DCFJP<D ;O @JP<DJDAL@AR F GDF<%L@JD NDQ@HD NG@QDG BANDG 6+%?@ABC @E R@QDA S 关键词: 实时性; 多线程; 机器人控制器 6+%?@ABC; >(; ?/57:: GDF<%L@JD; 6+%?@ABC; JB<L@%LIGDFN; G;K;L H;ALG;<<DG 中图分类号: 文献标识码: +,’# T 整个系统由机器人控制器和远程监控子系统组
相关文档
最新文档