小
机器人杂志
1687 - 9619
1687 - 9600
Hindawi出版公司
525724年
10.1155 / 2011/525724
525724年
研究文章
使用Sun的Java实时系统管理基于行为的移动机器人控制器
麦肯齐
安德鲁
1
道森
莎米卡-克
2
胡
范
1
安德森
莫妮卡
2
郑
元
1
电子与计算机工程系
阿拉巴马大学的
塔斯卡卢萨
AL 35487
美国
ua.edu
2
计算机科学部门
阿拉巴马大学的
塔斯卡卢萨
AL 35487
美国
ua.edu
2011年
29日
12
2011年
2011年
07年
05年
2011年
16
09年
2011年
16
11
2011年
2011年
版权©2011年安德鲁·麦肯齐等。
这是一个开放的文章在知识共享归属许可下发布的,它允许无限制的使用,分布和繁殖在任何媒介,提供最初的工作是正确的引用。
实现机器人控制器能够有效地管理有限的资源在一个确定的、实时的方式是具有挑战性的。基于架构,自治分解为水平的情报是受欢迎的,由于其鲁棒性但不提供实时特性,执行时间限制或支持决定论。我们提出一个架构和方法使用的实时特性的Java实时规范(RTSJ)在基于行为的移动机器人控制器显示时间限制影响性能。这是通过扩展一个实时了解架构,明确列举了时间要求每一个行为。它并不足以减少延迟。通过实现演示了该方法的有效性在Solaris 10和Sun Java实时系统(Java RTS)。实验结果得到了使用K-team考拉机器人执行路径跟踪四个复合行为。实验使用几个任务周期在三个案例集:实时线程实时垃圾收集器,实时与非实时垃圾收集器线程,和非实时与非实时垃圾收集器线程。结果表明,即使延迟和决定论是改善,每个个人行为显著影响任务的时间性能。
1。动机
开发一个移动机器人控制器可以是一个复杂的过程。机器人必须同时执行安全检查(如避障)而完成高级目标(映射和路径跟踪)。基于行为的控制器(
1 )使用优先有限状态机来管理层次的复杂性。现有机器人体系结构也使这种方法(
2 ,
3 )或故意非结构化的适应行为(
4 ]。
尽管行为范式提供鲁棒控制器面对复杂的条件下,实时问题不解决这些架构的一部分。任务可能需要执行和完成在一个时间限制,防止不受欢迎的结果。因为时间和决定论问题[
5 ),机器人控制器应使用实时控制系统编程标准,允许任务在实际执行时间吗?
目前,实时特性和特定频率要求不包括在移动机器人体系结构(
6 ]。时间限制、决定论和低延迟的重要因素,以确保正确操作机器人,可以导致更好的资源利用率。没有一个真正的实时控制器显式地处理这些问题,开发人员可能会不稳定导致不一致的结果和效率低下的机器人的行为。
如果法律控制理论(
7 )被应用于基于行为的系统,每个机器人行为的频率会根据输入的可用性。单个频率要求,子系统的定义在一个控制系统是传统的实时系统开发过程的一部分(
8 ]。频率定义时期和处理传感器输入的最后期限。如果一个任务错过最后期限,系统不响应输入的变化。然而,这并不足以运行所有行为“尽可能快。“事实上,一些资源密集型行为可能需要资源和/或抢占更多时间敏感的行为。减速行为不接收输入经常可能免费资源更多时间敏感的任务。
为了解决这个时间约束问题,我们检查添加Java实时规范(RTSJ) (
9 )标准现有移动机器人体系结构(
10 ),使用Sun的Java实时系统(Java RTS),并运行实时操作系统(RTOS)。Java语言以其便携性和安全的面向对象特性,已成为实时系统的开发人员(一个选项
11 ]。而C和c++等语言构成许多实时开发人员的问题,因为与他们相关联的内存问题,它们是最常见的选择,因为他们的性能和易用性
12 ]。作为一种替代方法,Java RTS被设计成一个确定性系统,实时特性(
13 没有迫使开发人员来管理内存使用)。这使得Java编程实时机器人体系结构一个适当的选择。然而,Java是时机敏感。尤其是传统的垃圾收集器实时系统可能会导致不确定的行为。实时垃圾收集器(RTGC)中实现Java RTS提供了确定性方法处理垃圾收集器。
机器人体系结构,我们建议有几个基本的目的。首先,机器人控制器实时问题将是明确的。其次,一个有效的方法使用在一个基于行为的移动机器人实时Java框架将会证明。还允许开发者声明频率的要求,任务可以根据需要只运行得一样快。允许频率宣布最终可以为开发人员提供更好的理解代码特性的频率和他们的关系。这包括哪些任务取决于特定的输入设备以及不同任务之间的依赖关系。
可能这样一个体系结构将有助于更快的移动嵌入式系统学生的学习曲线。在[
14 ),一个实时系统本科实验室创建的Java程序员。发现学生的实时软件工程模块表现更好,享受它超过其他模块。此外,大多数学生把这个模块的实时和嵌入式系统行业找到了工作。
这一工作成果的广泛影响当前和未来的基于行为的机器人开发环境。机器人体系结构需要有效地管理实时约束以行为以确定的方式。实验结果表明,时间的个人行为影响机器人的高级任务的性能。
在本文中,我们基于行为的机器人体系结构映射到Java RTS为了表明的缺失或不正确的时间限制影响性能。架构允许开发者声明频率需求作为客户端接口的一部分。Java RTS特性也添加到帮助更好地管理资源。本文的主要贡献是创建一个现成的系统,允许自主机器人的实时控制。据我们所知我们的架构是第一个为完全自主移动机器人完成任务,使用现成的阻塞性睡眠呼吸暂停综合症€年代和语言。节
2 、背景和以前的工作。控制理论及其相关部分展示了我们的方法
3 。部分
4 描述了接口的Java RTS及其相关性。部分
5 提出的实现体系结构和实验设置。并给出了实验结果和分析部分
6 和
7 ,分别。结论和未来的发展方向
8 。
2。背景
2.1。在移动机器人实时
一些机器人开发平台可用于移动机器人。然而,其中的一些架构不提供实时特性,执行时间限制。的,提供实时的特性,他们不允许开发人员提供他们自己的频率要求。Buttazzo et al。
15 ]研究在实时控制机器人软件架构设计和实施了一个用于设计机器人应用程序的实时约束。架构是一个层次编程环境组成的四个部分:一个行动层、控制层、通信层和硬实时内核(HARTIK)来控制三层。所有的层都是用C编写的,用一组库函数封装。他们得出的结论是,架构为机器人应用程序的开发提供了一个灵活的框架。然而,他们没有提供任何实验结果。
布雷加et al。
16 )进行了案例研究XO / 2操作系统的实时控制一个卖花女机器人使用Oberon-2编程语言。他们讨论了机器人的实时控制的需要和要求的研究,教育和实际使用。XO / 2操作系统是由布雷加等人设计的实时操作系统。他们得出的结论是,他们无法量化需要独立的自主权,实时、安全移动机器人。他们也注意到越来越复杂的移动机器人设定更高的要求机器人的硬件、软件和间接操作系统。最后,他们指出,“安全软件模块组成、类型安全、受截止时间驱使的调度和自动内存回收机制的应用程序编程人员可以减轻许多耗时的实现问题,同时提高安全棒。”
奥尔巴赫et al。
17 )实现了一个实时Java应用程序使用Exotasks,小说Java编程结构,实现确定的时机,在实时虚拟机。他们建造了一架直升机,JAviator进行测试。他们表明,实施了时间在不同的硬件平台可移植性。然而,他们所有的数据处理场外的,他们只观察一个行为(盘旋的直升机)。
2.2。非移动机器人实时在
斯图尔特et al。
18 )设计了一个实时架构基于出口对象。出口对象是完全包含软件组件,包含国家和方法以及提供输入,输出,和资源的港口。描述数据对象所需的输入端口,输出端口描述数据由一个对象。一个输入端口只能连接到一个输出端口。相同类型的输出必须合并成一个明确的输出。每个对象都是独立的,都有自己的频率。任务调度是由开发人员可以修改和增加系统稳定性或减少计算资源消耗。
Bruyninckx et al。
19 )实现1 kHz的位置、速度和混合力的控制库卡361 six-DOF使用硬实时机器人运动控制的核心OROCOS项目(开放机器人控制软件)
20. ]。他们绕过了库卡遗留控制器和控制它只使用OROCOS代码。代码运行在Linux上(没有实时性能)和RTAI(实时Linux应用程序接口)的努力。
Robertz et al。
21 )工业机器人的运动控制系统实现使用Java RTS的RTOS。他们使用实时线程(rtt)关键任务和non-RTTs非关键任务。在他们的方法中,rtt运行在最高优先级和non-RTTs运行在一个较低的优先级,甚至低于实时垃圾收集器。尽管他们讨论时间的测量网络延迟,他们不存在结果显示这些实时特性对整个系统的影响。
2.3。基于行为的体系结构
Subsumption-based机器人控制器层建立自治的行为(
22 ]。基本层完整的处理单元,输入和提供适当的输出。我们特别感兴趣的属性,使颞分解。咏叹调(
2 )是一种机器人体系结构,支持行为分解。咏叹调项目由个人行为每个给定一个优先级,应用于致动器输出的重要性。优先级并不影响资源分配或利用率。只因为目标硬件架构流程命令每100毫秒,所有行为都运行每100毫秒的时间。以外的其他线程可以由开发人员添加处理任务的框架有不同的频率要求。
卡门(
23 )是一个开源的模块化移动机器人控制体系结构。它有三层体系结构,第一层是硬件接口,第二层包含基本的机器人任务,和最后一层是用户定义的应用程序。它使用进程间通信为移动机器人提供功能,支持各种平台。
OROCOS项目(
20. )是一个开源的模块化框架通用机器人和机器控制。OROCOS项目支持四个c++库:实时工具包,运动学和动力学库,贝叶斯过滤图书馆,OROCOS组件库。
虽然不是基于行为的体系结构中,球员(
4 )是一个开源机器人体系结构设计与范围广泛的硬件组件操作。玩家架构特别避免定义分解,因此不提供一个框架,用于增加频率的行为。
3所示。控制系统
控制系统设备或系统,控制另一个设备或系统。闭环控制系统使用系统输出(反馈)修改输入所需的输出。今天大多数控制系统控制器的使用电脑做所有决定,称为数字控制。由于数字控制使用电脑做决定每一个时钟周期,信号是离散的。
在基本层面上,自主机器人使用的电脑跑算法来控制其运动,基于输入从声纳等传感器,红外线,GPS和激光测距仪。因此,自主机器人有资格作为一个控制系统,因为它是一个设备(计算机)控制电机等其他设备。所以应该视为自主机器人控制系统必须遵循同样的规则,数字控制系统。
由于数字控制是一个数字(离散)时间系统,问题可能发生如果输入数据没有被取样不够快。这一切发生的时候,如果输入信号变化量之间的关系。例如,如果A和B输入有两个值,值出现时,信号将传输数据至少80 ms,和B 50 ms。输入采样10赫兹(每隔100毫秒)。有时系统样本输入信号100毫秒,200毫秒,300毫秒,等等。活跃的输入信号从时间0到130 ms,更改时间130毫秒,然后更改回180 ms。由于采样率发生每100毫秒,数字控制系统时看到一个步骤1和2。所以它不看到B,这可能会导致问题。简单的修复是确保你的采样时间是不够快。
在控制理论中,采样率应至少两次最快的输入信号(
7 ]。最快在上面的系统,输入信号B发生至少50毫秒(20 Hz)。所以系统需要有一个最低40 Hz的采样率。这个问题很容易解决,确保系统可以获得一个输入40 Hz的速度,这可以通过软件或硬件升级,可以在40 Hz样本信号。这个例子与移动机器人直接相关。仅仅考虑任何数字传感器、激光测距仪等作为输入的源信号。对于Hokuyo PBS-03激光测距仪,激光产生阅读每180毫秒(
24 ),如果系统(即。,controller) does not run at least every 90 ms, then laser readings will be missed. If a reading is missed, it is possible for the system not to see an object which could produce an incorrect map or, the worst case, cause the robot to collide with the missed object. According to [
7 ),为了提高控制系统的性能,从控制理论应该应用先进的规则。同样,一个机器人控制器只使用基本的设计原则仍然工作。然而,如果应用更先进的控制技术,性能会提高。
4所示。Java实时系统
为了让Java实时系统被认为是一种编程语言,需要若干标准(
11 ]。首先,它必须提供决定论。在Java编程机器人控制器时,至关重要的是,机器人以一种可预见的方式表现,所有任务满足他们的最后期限。低延迟是另一个重要标准。延迟的区别是一个事件发生时,当它被认为已经发生了。从本质上说,应该有一个有界和已知的最大延迟两国确保任务完成在年底前执行的时期。此外,整个系统是一个巨大的时间因素。机器人行为只应在一定时间内执行和运行速度。
我们扩展了Java客户端包含Java RTS的特性。它为开发人员提供了一个平台,他们可以准确地确定的时间行为软件实时的方式。这通常允许程序员来确定任务将执行在他们的代码中,因此使它可能安排任务,这样他们就可以在他们错过最后期限之前完成。为了使用Java RTS,的特点
javax.realtime.RealTimeThread 类是扩展的使用
java.lang.thread 。Java RTS增强Java规范通过添加额外的特性,其中包括实时线程、调度、内存管理和实时垃圾收集器。Java RTS包括一个内置的调度程序,遵循几个先发制人的政策。
4.1。实时线程
没有保证线程调度和线程优先级在使用普通Java规范。Java RTS提供实时线程提供更精确的比普通Java线程调度。Java RTS还提供了线程优先级的严格执行。在实时系统中,如果有高优先级的任务需要执行,然后低优先级任务将被牺牲掉。因此,保证高优先级任务执行他们不太可能错过最后期限。
4.2。内存管理
与传统的Java虚拟机(JVM),一些任务可能面对其他任务的内存管理成本。然而,使用Java RTS自动内存管理。NoHeapRealtimeThread (NHRT)类,RTT类的一个子类,使用作用域和不朽内存,内存可以分配和回收更可预测的方式。它不使用的堆内存垃圾收集器负责。
不朽内存区域在内存中没有垃圾收集。这种形式的内存用于避免动态分配。提前静态分配的内存,它仍在使用,直到JVM终止。作用域内存仅用于rtt和nhrt。这种类型的内存定义了一生。对象分配的作用域内存分配将继续直到范围已经不再活跃。通过作用域内存,Java RTS为开发人员提供了一个不受干扰的环境的垃圾收集器。
相比之下,内存管理是在C和c++中手动完成的。C和c++有三种记忆:静态内存,自动记忆,和免费的商店
25 ]。一个程序的结构,由开发人员编写,决定当内存分配和重新分配使用malloc和free功能。因此,项目的生命周期是由程序的逻辑。然而,Java开发人员没有控制释放的内存。这都是由垃圾收集器。
4.3。垃圾收集器
没有保证在JVM的垃圾收集并不会干扰代码的时间因为垃圾收集器就抢占所有线程在运行的执行。一个实时机器必须找到方法来处理这个问题。Java RTS使用RTGC Henriksson基于执掌的垃圾收集器(
26 )处理硬实时调度。垃圾收集器运行作为RTT。这些线程运行在一个优先级低于所有其他rtt;因此,它们的执行是推迟到关键任务完成。这个工作只要关键线程在不耗尽内存线程的执行。如果是这样,RTGC将被迫当程序运行的内存使用量达到一定水平。这是实现通过增加RTGC当达到水平的首要任务。优先回到初始设置时定义的使用水平低于阈值。因此,RTGC降低的开销和决定论的线程不受影响。
5。方法
5.1。实现
在[
10 ),提出了一种实时了解架构,测试,并且有不错的效果。玩家使用的架构接口来控制机器人的硬件和Java代码。它是实时了解通过创建一个监控模块,调度任务和报道错过最后期限。然而,它不是一个实际的实时系统。为了实时,它需要运行在一个实时操作系统兼容的语言。的球员,这是用C编写的,不支持实时功能(
6 ]。因此,我们的机器人体系结构被完全重写Java的Java RTS。软实时约束使用的架构。软实时约束是时间限制,不一定会导致系统遭受严重故障如果约束不满足。建筑时间限制适用于所有的任务。客户端程序是界面上的各种硬件平台,如激光,机器人开始通过串行连接。驱动程序体系结构翻译通用命令特定的硬件接口。
新架构的结构,我们提出如图
1 。该框架实现客户端程序的一部分。行为是由子类化
任务 。的
任务 超类包含初始化所需的功能和数据存储登记使用。
任务 提供方法来注册生产或消费的数据
DataManager 。在执行过程中,
任务 超类方法复制数据到本地存储使用。所有的数据都是创造的
RobotController 当
Khepera 和激光接口创建和发送到所有的任务。所有任务被视为特别紧急的任务,因为他们直接或间接地控制着机器人执行机构。调度是通过Java RTS调度器使用rtt。所有的任务运行在单独的rtt。根据他们的特定时期内执行定时任务。的
RobotController 初始化并启动线程。一旦rtt信号,一个任务运行时间太长,每个任务的ranTooLong()方法报告截止日期了。类图描述的核心组件体系结构如图
2 。
图1
机器人体系结构框架。
图2
重要的部分接口的类图。
5.2。实验装置
实验测量的实用性应用不同的频率要求的行为。这些频率是由用户通过命令行提供的。一个路标导航控制器是用来测量频率对任务绩效的影响。
程序结构有七个关键组件,
DataManager 和六个任务线程。总结了六个任务线程表
1 。包括其他重要模块
Khepera 类。需要运动的要求
LaserAvoidObstacles 和
WaypointPlanner 并确定哪些命令是最终发送给机器人。运动控制命令,这样安全活动,如障碍避免和停滞复苏,有机会先控制汽车。如果两个
LaserAvoidObstacles 和
WaypointPlanner 请求控制马达,
LaserAvoidObstacles 执行命令,因为它是一项安全的任务。
WaypointPlanner 只有时电机的控制
LaserAvoidObstacles 不希望控制。
表1
任务线程中使用机器人体系结构。
任务
描述
提供了
需要
DataPosUpdate
发送运动命令机器人和接收更新位置信息。
PositionData
DataLaserUpdate
从激光开始得到了激光读数。
LaserData
WaypointPlanner
高级行为,移动机器人通过一系列预定义的路径点使用创建的路径
DijkstraPlanner 。
PositionData, LaserData, PathData
LaserAvoidObstacles
响应由激光障碍感觉到,通过
DataLaserUpdate ,通过减慢机器人,把远离障碍,通过
DataPosUpdate。
LaserData
OccupancyGridMap (
27 ]
使用位置和激光数据报告
DataPosUpdate 和
DataLaserUpdate 和维护一个占用网格地图。地图上追踪未知,开放,和占据空间。
MapData
LaserData PositionData
DijkstraPlanner (
28 ]
将目标位置请求和维护一个路径从当前位置到最接近的目标。可以添加多个目标,请求者必须消除目标时不再有效(达成)。
PathData
MapData
物理实验采用K-team考拉机器人(图
3 )。机器人是配备了一个acc I / O ETX-Nano电脑英特尔酷睿双核1.66 GHz处理器,2 GB内存,存储的8 GB简易闪存卡。Sun Solaris 10操作系统运行,这需要一个双核处理器(
29日 ]。而不是使用机载红外接近传感器,考拉是增强Hokuyo开始激光测距仪。Java程序处理的接口通过串行连接机器人及其设备
javax.comm (Java的通信API)。所有的Java代码,包括逻辑和控制代码,执行上的机器人。由于高功率需求的acc I / O ETX-Nano,机器人是拴在电源线和一个以太网电缆远程通信。测试环境是一个9.6米×6.2米的房间(图
4 )。
图3
K-team考拉机器人配备了一个ETX-Nano计算机控制和Hokuyo开始激光测距仪。
图4
实验房间(9.6米×6.2米)有四个锚点是配备地面实况定位传感器。选择的路径后,所有行为任务可以使用。
三个不同的实验:那些使用rtt RTGC, rtt non-RTGC,并定期与non-RTGC线程。在这些实验中,所有试验给出了相同的四路点到达(如图
4 )。从一开始的位置,机器人将前往每一个路标,直到它到达终点的位置。路径点选择,所有任务都需要使用到结束位置。
每个任务被赋予一个区间值,定义任务的最后期限和周期。相比之下,机器人运行任务线程不同的区间值。每组实验共有五分。初期值是基于开始激光的频率,这是100 ms (
30. ]。每组期限之后选择基于观察。五项实验在三集,所有任务都是同一时期。在剩下的两套,期间
LaserAvoidObstacles 是多种多样的,看到它对实验的总体性能的影响。我们选择降低机器人的这段时间,因为安全问题和环境。的周期
DataPosUpdate 和
DataLaserUpdate 分别是在75毫秒,100毫秒。
这是推测,这些实验将有助于展示任务频率和决定论的影响整个系统。试验被认为是完整的,如果他们围着这个障碍接近和穿过每一个路标。如果机器人被困在一个障碍或没有达到6分钟内所有锚点,审判被认为是不完整的。错过了截止日期为每个审判记录和完整性。
6。实验结果
三种运行试验使用不同的行为时间(见表
2 )来确定时间和决定论的影响程序的性能。良好的性能是基于以下类别:运行时,任务完成,距离结束的位置。
表2
行为时间为每个实验设置。
行为期(女士)
集
路标
LaserAvoid
入住率
迪杰斯特拉
规划师 (W)
障碍 (左)
GridMap (Oc)
规划师 (P)
1
10
10
10
10
2
One hundred.
10
One hundred.
One hundred.
3
50
50
50
50
4
One hundred.
50
One hundred.
One hundred.
5
One hundred.
One hundred.
One hundred.
One hundred.
表
3 显示了垃圾收集器运行的平均次数和标准差每组使用RTT RTGC (RTT / RTGC),与non-RTGC RTT (RTT / RegGC)和常规线程non-RTGC(第31步兵团/ RegGC)。
表3
实验结果显示平均次数的垃圾收集器执行标准偏差。
RTT / RTGC
RTT / RegGC
第31步兵团/ RegGC
集
Avg
SD
Avg
SD
Avg
SD
1
24.6
0.548
1721年
24.515
2770年
50.710
2
5
0
514.4
9.940
531年
12.247
3
6
0
617.8
12.697
536.4
14.082
4
4.2
0.447
430.2
11.256
368.8
13.971
5
4
0
422.6
8.295
376年
40.050
实验分为两组进行分析。组1包含实验的结果与运行的所有行为。第二组包含了实验的结果
LaserAvoidObstacles 调整以及设置了所有任务运行的速度100 ms。运行
LaserAvoidObstacles 在较短的时间内就足够了,因为它处理耗时的安全移动的功能障碍。
数据
5 和
6 显示了机器人的平均时间完成课程。数据
7 和
8 显示机器人的平均距离来预期的结束位置。数据
9 和
10 给的平均旅行时间机器人路径1路径2(避障发生)。图
11 显示了四个错过的最终期限的百分比行为任务设置为每个实验。图
(11日) 显示所有五套的概述。因为第一组实验有如此大比例的比别人错过的最终期限,设定图
11 (b) 其他四组显示更多的细节。
图5
平均时间组1的机器人来完成课程。
图6
平均时间组2的机器人来完成课程。
图7
的平均距离机器人来到组1的结束位置。
图8
的平均距离机器人来到组2的结束位置。
图9
平均旅行时间机器人路径1路径2组1。
图10
平均旅行时间机器人路径1路径2组2。
错失最后期限的比例为所有5个实验集(a)和(b)的四个实验集错过最后期限比例较低(新展示更多细节)。
(一)
(b)
7所示。分析
7.1。实时和非实时线程线程
结果表明,实验使用rtt执行类似或优于实验,使用常规的线程在测量时间完成课程(数字
5 和
6 )。这些实验完成了课程的速度比那些使用常规的线程在大多数情况下。
7.2。垃圾收集器的比较
我们测量了,垃圾收集器对性能的影响,以分析决定论。垃圾收集器运行少RTT / RTGC实验(见表
3 )。当比较试验只使用rtt,实验,利用RTGC完成课程的速度比那些使用常规的垃圾收集器(见图
5 和
6 )。由于RTGC确定性和不影响行为的任务执行,我们相信它可能影响平均课程时间。
7.3。影响行为的频率
与行为时期相比有统计学差异的平均距离当机器人来到RTT的结束位置/ RTGC实验。例如,在组1(图
7 ),运行10 ms的行为在一个频率统计不同于运行在50微秒。同时,运行在100 ms的频率统计不同于运行在50微秒。在组2(图
8 ),运行
LaserAvoidObstacles 50毫秒的周期和所有其他行为在100 ms统计不同于运行在100 ms的时期。这些结果表明,甚至改变一个行为可以影响性能的频率。这也表明,如果任务允许运行速度过快或过慢,它可以在形式的影响总体性能任务完成和准确性。
同时,衡量一个单独的任务对性能的影响,我们观察到避障是如何影响了机器人的时间从路标路标2(见图1
9 和
10 )。除了一种情况RTT / RTGC实验达到路标2快于RTT / RegGC实验。
7.4。延迟的影响
延迟的一个指标是错过了最后期限。系统报告当他们的指定期限内没有完成的任务;然而,当使用rtt任务没有死。因此,需要太长时间才能完成的任务可能会引起其他任务没有足够的资源。
我们假设不会延迟较低频率的问题,因为他们为每个行为提供更多的时间完成。从图
(11日) ,表明在一段时间的设置与运行的所有行为10 ms导致更多错过最后期限。这组实验利用rtt有更多比使用常规线程错过最后期限。然而,这并非如此在运行一段时间的行为100 ms(见图
11 (b) )。在这种情况下,RTT / RTGC实验没有错过最后期限。
然而,(除了实验设置3)RTT / RegGC实验错失最后期限的比例高于第31步兵团/ RegGC实验。因为常规的垃圾收集器是不确定的,很难确定它对任务线程的作用。
7.5。全面的分析
结果表明,适当的时机是很重要的资源利用率,甚至在一个无约束(资源丰富)系统。尽管延迟和决定论是改善RTT / RTGC实验,每个实验如何设置仍有差异表现在不同的频率。因此,每个行为应基于输入的频率可用性。
结果还表明,更快的周期时间并不是一个好方法。然而,普遍的方法是运行行为尽可能快,并不理想。慢周期将行为更多的时间来完成,但太慢也可能导致系统不稳定,这与控制理论是一致的。关键是要找到最优窗口在任务不运行太短(耗尽系统资源)或太长时间(导致反应迟缓)。因此,控制理论应该应用于机器人的法律要求所有的行为和他们的依赖关系进行分析。这将给开发人员一个机会来定义自己的频率要求,适合他们使用的系统。
8。结论
许多机器人体系结构视图正确频率资源可用性的函数。不妥善解决时间问题,移动机器人系统不能有效地利用系统资源。此外,无知的时间细节可以让开发人员产生不稳定的系统。这部分是因为我们的直觉是,只有一个机器人控制程序的关键任务需要跑得快,这是不正确的。必须的法律控制理论应用到机器人技术,要求所有的行为和他们的输入依赖关系进行分析,而不是关键任务。这些法律应该被应用,因为与控制理论相一致的是,时间太短可能会导致系统不稳定。
我们开发了一个机器人软件平台将时间意识。这个系统,完全在Java中使用Java编写RTS,允许分配一个单独的程序组件执行频率。它还利用rtt, non-RTTs RTGC,传统的垃圾收集器。我们提出了系统及其实现的细节。实验演示了如何处理子任务的时间和使用rtt RTGC影响任务的整体性能以时间来完成相关的路径和错误结束位置。测试结果验证假设并展示重要的适当的时机是在移动机器人系统的资源利用率。
在未来的工作中,架构将写在一个更通用实时语言如c++使用OROCOS实时工具包(
19 ]。它将比Java RTS版本。这将是一个良好的Java RTS的测量性能。人类研究,评估两Java RTS和c++程序员水平可能阐明教学有用的功能体系结构的嵌入式编程技术。
确认
作者欣然承认以下NSF资助:iis - 0846976和ccf - 0829827支持这项工作。他们还想感谢尼古拉斯·a·卡夫Solaris的知识。
[
]1
布鲁克斯
r。
一个健壮的分层移动机器人的控制系统
IEEE机器人与自动化》杂志上
1986年
2
1
14
23
2 - s2.0 - 0022688781
[
]2
Konolige
K。
Saphira机器人控制体系结构
技术报告
2002年
门洛帕克,加利福尼亚州,美国
SRI国际
[
]3
Touretzky
d S。
dst@cs.cmu.edu
Tira-Thompson
e . J。
ejt@andrew.cmu.edu
Tekkotsu:爱宝认知机器人的框架
4
美国国家关于人工智能的会议
2005年
美国宾夕法尼亚州匹兹堡
AAAI出版社,麻省理工学院出版社
1741年
1742年
[
]4
Gerkey
b P。
沃恩
r·T。
Støy
K。
霍华德
一个。
Sukhatme
g S。
Matarić
m·J。
最有价值球员:机器人设备服务器进行分布式控制
3
《IEEE国际会议上智能机器人和系统(——“01)
2001年
1226年
1231年
[
]5
Beccari
G。
Caselli
年代。
而
M。
Zanichelli
F。
实时库混合机器人控制体系结构的设计
《IEEE / RSJ智能机器人和系统国际会议
1998年10月
1145年
1150年
2 - s2.0 - 0032316112
[
]6
克莱默
J。
Scheutz
M。
自主移动机器人的开发环境:一项调查
自主机器人
2007年
22
2
101年
132年
2 - s2.0 - 33847702981
10.1007 / s10514 - 006 - 9013 - 8
[
]7
多西
J。
连续和离散控制系统
2001年
纽约,纽约,美国
麦格劳-希尔大学
[
]8
班尼特
年代。
实时计算机控制:一个介绍
1994年
纽约,纽约,美国
普伦蒂斯霍尔国际
[
]9
Bollella
G。
高斯林
J。
Java实时规范
电脑
2000年
33
6
47
54
2 - s2.0 - 0033729897
[
]10
麦肯齐
一个。
awmckenzie@crimson.ua.edu
道森
年代。
dawso003@crimson.ua.edu
亚历山大
Q。
qaalexander@crimson.ua.edu
安德森
M。
anderson@cs.ua.edu
使用实时感知管理java客户端移动机器人的性能
《IEEE / RSJ智能机器人和系统国际会议(——' 09)
2009年12月
3422年
3428年
10.1109 / IROS.2009.5354796
[
]11
尼尔森
一个。
埃克曼
T。
尼尔森
K。
真正的Java真实时间增益和痛苦
学报》国际会议编译器、嵌入式系统体系结构和合成(例“02)
2002年10月
304年
311年
2 - s2.0 - 0242612549
10.1145/581630.581680
[
]12
Arora
D。
Raghunathan
一个。
拉维
年代。
杰哈
n K。
体系结构支持安全软件在嵌入式处理器执行
第四届国际会议在硬件软件学报》合作设计和系统合成
2006年10月
106年
111年
2 - s2.0 - 34547144265
10.1145/1176254.1176281
[
]13
Bollella
G。
greg.bollella@sun.com
Canham
T。
卡森
V。
Champlin本
V。
champlin@cs.cmu.edu
德沃夏克
D。
daniel.dvorak@jpl.nasa.gov
Giovannoni
B。
原告
M。
迈耶
K。
穆雷
一个。
Reinholtz
K。
与非堆内存编程实时Java规范
面向对象编程的会议系统,语言,和应用程序(OOPSLA ' 03)
2003年
361年
369年
10.1145/949344.949443
[
]14
史密斯
年代。
s.smith@napier.ac.uk
劳森
s W。
s.lawson@napier.ac.uk
劳森
一个。
al.lawson@napier.ac.uk
实时软件工程可以教Java程序员吗?
17
17会议程序软件工程教育和培训
2004年
124年
129年
[
]15
Buttazzo
G。
Conticelli
F。
Lamastra
G。
利帕里
G。
在硬实时环境中机器人控制
诉讼的第四届国际研讨会上实时计算系统和应用程序(RTCSA 97)
1997年10月
152年
159年
2 - s2.0 - 0031379694
[
]16
布雷加
R。
Tomatis
N。
阿拉斯
k . O。
自治的必要性和实时移动机器人:一个案例研究的XO / 2和皮格马利翁
2
《IEEE国际会议上智能机器人和系统
2000年
1422年
1427年
[
]17
奥尔巴赫
J。
培根
d F。
Iercan
d . T。
樱桃酒
c . M。
拉詹
诉T。
Roeck
H。
Trummer
R。
Java需要飞行:time-portable exotasks实时编程
ACM SIGPLAN会议的程序语言,编译器和工具为嵌入式系统(lct ' 07)
2007年6月
51
62年
2 - s2.0 - 34547989256
10.1145/1254766.1254775
[
]18
斯图尔特
d·B。
施密茨
d E。
科斯拉
p K。
嵌合体II实时操作系统先进的传感器控制应用程序
IEEE系统,人与控制论
1992年
22
6
1282年
1295年
2 - s2.0 - 0026946988
10.1109/21.199456
[
]19
Bruyninckx
H。
Soetens
P。
Koninckx
B。
实时运动控制的核心OROCOS项目
2
诉讼的IEEE机器人与自动化国际会议上
2003年9月
2766年
2771年
2 - s2.0 - 0344445366
[
]20.
Bruyninckx
H。
机器人控制软件:OROCOS开放项目
3
诉讼的IEEE机器人与自动化国际会议上
2001年5月
2523年
2528年
2 - s2.0 - 0034860991
[
]21
Robertz
s G。
sven@cs.lth.se
Henriksson
R。
roger@cs.lth.se
尼尔森
K。
klas@cs.lth.se
Blomdell
一个。
anders.blomdell@control.lth.se
Tarasov
我。
Ivan.Tarasov@sun.com
使用工业机器人控制实时Java
第五届国际研讨会Java技术学报》实时和嵌入式系统(jtr ' 07)
2007年
104年
110年
10.1145/1288940.1288955
[
]22
布鲁克斯
r。
智力没有表示
人工智能
1991年
47
1 - 3
139年
159年
2 - s2.0 - 0025957717
[
]23
Montemerlo
M。
罗伊
N。
杜伦
年代。
标准化观点在移动机器人编程:卡内基梅隆导航(卡门)工具包
《IEEE / RSJ智能机器人和系统国际会议
2003年10月
2436年
2441年
2 - s2.0 - 0346778968
[
]24
测量距离类型障碍检测传感器PBS-03JN系列说明书
2002年
Hokuyo自动
[
]25
Stroustrup
B。
c++编程语言
1986年
美国大众阅读
addison - wesley
[
]26
Henriksson
R。
调度垃圾收集在嵌入式系统中 ,博士论文
1998年
隆德大学
[
]27
精灵
一个。
使用占用网格移动机器人感知和导航
电脑
1989年
22
6
46
57
2 - s2.0 - 0024684020
10.1109/2.30720
[
]28
迪杰斯特拉
e·W。
图的注意在连接两个问题
Numerische Mathematik
1959年
1
1
269年
271年
2 - s2.0 - 34147120474
10.1007 / BF01386390
[
]29日
Sun Java实时系统精密控制的金融服务市场
2008年
太阳微系统公司
[
]30.
测距仪类型激光扫描仪04 lx开始规范
2005年
Hokuyo自动