迈向机器人的分布式实时框架

实时机器人应用的ROS 2.0通信评估

通常,默认情况下,DDS实现使用Linux 络堆栈(LNS)作为传输和 络层。 这使LNS成为ROS 2.0性能的关键部分。 但是, 络堆栈并未针对有限的延迟进行优化,而是针对给定时刻的吞吐量进行了优化。 换句话说,由于 络堆栈的当前状态,将存在一些限制。 不过,LNS提供了QoS机制和线程调整,可在内核级别改善关键流量的确定性。

Linux内核中如何处理数据包的重要部分实际上与如何处理硬件中断有关。 在普通的Linux内核中,硬件中断分为两个阶段。 首先,在触发中断时调用一个中断服务例程(ISR),然后,硬件中断得到确认,工作被推迟以待稍后执行。 在第二阶段,稍后执行软中断或“下半部分”以处理来自硬件设备的数据。 在PREEMPT-RT内核中,大多数ISR被迫在专门为中断创建的线程中运行。 这些线程称为IRQ线程[8]。 通过将IRQ作为内核线程处理,PREEMPT-RT内核允许将IRQ调度为用户任务,从而设置优先级和CPU亲和力,以分别进行管理。 线程中运行的IRQ处理程序本身可以被中断,因此可以减少由于中断引起的延迟。 为了我们的特殊利益,由于我们的应用程序需要发送关键流量,因此可以将以太 中断线程的优先级设置为高于其他IRQ线程,以改善 络确定性。

普通内核和PREEMPT-RT内核之间的另一个重要区别是在执行softirq的上下文中。 从内核版本3.6.1-rt1开始,软IRQ处理程序在引发该软IRQ [9]的线程的上下文中执行。 因此,通常在 络设备IRQ线程的上下文中执行NET_RX软IRQ,它是用于接收 络数据包的软irq。 这允许对 络处理上下文进行精细控制。 但是,如果 络IRQ线程被抢占或耗尽NAPI权重时间片,则以ksoftirqd / n(其中n是CPU的逻辑数)执行该线程。

在ksoftirqd / n上下文中处理数据包对于实时性很麻烦,因为该线程被不同的进程用于延迟的工作,并且会增加延迟。 另外,由于ksoftirqd线程以SCHED_OTHER策略运行,因此可以很容易地抢先使用它。 实际上,软IRQ通常是在以太 IRQ线程和ksoftirqd / n线程的上下文中执行的,用于高 络负载和高压力(CPU,内存,I / O等)。 这里的结论是,在正常情况下,我们可以预期合理的确定性行为,但是如果 络和系统已加载,则延迟会大大增加。

潜入结果

在整个实验测试中,获得了以下结果。 可以在原始出版物中获得详细信息:

阅读完整的文章, 址为https://arxiv.org/pdf/1809.02595.pdf 。

参考资料

[1] M. Quigley,K。Conley,B。Gerkey,J。Faust,T。Foote,J。Leibs,R。Wheeler和AY Ng,“罗斯:开源机器人操作系统”,在ICRA研讨会上在开源软件上,第 3 3.2。 日本神户,2009年,第2页。 5,

[2] CSVGutiérrez,LUS Juan,IZ Ugarte和VM Vilches,“机器人的时间敏感 络”,CoRR,第1卷。 abs / 1804.07643,2018. [在线]。 可用: http : //arxiv.org/abs/1804.07643

[3] CSVGutiérrez,L。Usategui San Juan,I。Zamalloa Ugarte和V. Mayoral Vilches,“实时Linux通信:对用于实时机器人应用程序的Linux通信堆栈的评估”,ArXiv电子版, 2018年8月。

[4] Y. Maruyama,S。Kato和T. Azumi,“探索ros2的性能”,在2016年嵌入式软件国际会议(EMSOFT)上,2016年10月,第1-10页。

[5]“ Ros 2.0设计”, http ://design.ros2.org/ ,访问:2018-07-27。

[6]“实时系统简介”, http ://design.ros2.org/articles/realtime_background.html,访问:2018–04–12。

[7] F. Cerqueira和BB Brandenburg,“ Linux,抢占rt和石蕊rt中调度延迟的比较。”

[8] J. Edge,“将中断移至线程”,2008年10月,[访问:2018年4月12日]。 [线上]。 可用: https : //lwn.net/Articles/302043/

[9] J. Corbet,“软件中断和实时”,2012年10月,[访问时间:2018年4月12日]。 [线上]。 可用: https: //lwn.net/Articles/ 520076 /

翻译自: https://hackernoon.com/towards-a-distributed-and-real-time-framework-for-robots-469ba77d6c42

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8739 人正在系统学习中 相关资源:迈创Matrox G200eV

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年8月5日
下一篇 2018年8月5日

相关推荐