没有合适的资源?快使用搜索试试~ 我知道了~
软件影响9:ROS实时控制框架的设计与实现
软件影响9(2021)100109原始软件出版物RTCF:一个使用ROS放大图片作者:MichaelFennel,Stefan Geyer,Uwe D. Hanebeck智能传感器-执行器-系统实验室(ISAS),人类与机器人研究所(IAR),卡尔斯鲁厄理工学院(KIT),阿登纳2,76131卡尔斯鲁厄,德国A R T I C L E I N F O关键词:机器人实时控制机器人操作系统A B标准由于Linux内核开发领域的稳步发展,在通用计算平台上的高性能控制应用程序不再是罕见的。 然而,许多实时控制库缺乏重要的属性,如模块化,轻松集成和封装。这些都是流行的机器人操作系统(ROS)的关键设计特征,但不具备实时能力。我们的目标是通过引入实时控制框架(RTCF)来解决这个问题,RTCF提供了高度的模块化,与ROS相关的概念,从而实现与ROS的无缝互操作性和高性能。为了演示RTCF的功能,我们提供了几个示例和示例性性能数据。代码元数据当前代码版本v1.1.0用于此代码版本的代码/存储库的永久链接https://github.com/SoftwareImpacts/SIMPAC-2021-74可复制胶囊法律代码许可证MIT许可证使用github的代码版本控制系统使用的软件代码语言、工具和服务机器人操作系统、OROCOS工具链、Preempt-RT编译要求、操作环境依赖性Linux和ROS,可选Preempt-RT补丁如果可用,链接到开发人员文档/手册https://github.com/KIT-ISAS/RTCF/blob/master/README.md技术支持邮箱michael. kit.edu1. 介绍近年来,机器人操作系统(ROS)[1]已成为机器人研究和开发领域的事实标准。其受欢迎的原因包括通过接口分离功能,从而产生模块化和灵活的架构,以及一组用于标准任务(如数据记录,可视化和参数化)的集成工具。当ROS被开发时,它的主要重点放在执行更高级别的算法上,因此,它的异步架构既不是实时安全的,也不提供同步操作的内置选项。当在ROS中实现具有严格时序要求的中级甚至低级控制算法时,这成为限制,因为可实现的性能这是非常有限的,取决于外部因素。然而,Xenomai[2]或Preempt-RT[3]内核补丁∗通讯作者。已经证明,在运行Linux的通用计算机虽然在这样的系统中可以很容易地实现具有实时功能的独立应用程序,但是创建它要困难得多一个复杂的应用程序,仍然可以很好地集成到现有的机器人软件项目中。在过去,已经进行了几次尝试来简化实时能力到ROS中的集成。库ros_control[4]将特定硬件设备的控制任务封装在ROS节点中,导致复杂场景的模块化程度有限(例如,控制器级联和多个硬件设备)。作为具有大量功能的替代方案,OROCOS [5]可以与rtt_ros_integration-package [6]结合使用。尽管OROCOS功能优越,但由于学习曲线陡峭和概念复杂,很少在实践中应用。随着ROS 2的到来,在设计中终于考虑到了实时能力,电子邮件地址:michael. kit.edu(M. 茴香),mail@stefan-geyer.org(S。 Geyer),uwe. kit.edu(美国)。Hanebeck)。https://doi.org/10.1016/j.simpa.2021.100109接收日期:2021年7月5日;接收日期:2021年7月9日;接受日期:2021年7月14日2665-9638/©2021作者。由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表软件影响杂志 首页:www.journals.elsevier.com/software-impactsM. Fennel,S.Geyer和U. D。Hanebeck软件影响9(2021)1001092Fig. 1. 具有ROS集成的所需实时架构的示例性结构,因为它可能发生在现实世界的机器人应用中。在该示例中,硬件接口(H1)、状态估计滤波器(F1)和三个控制器(R1-ROS [7].然而,在目前的状态下,ROS 2的实时支持需要大量的样板代码,节点之间的连接是硬编码的,这与ROS的一些核心原则相矛盾。此外,许多用户仍然依赖ROS 1。除此之外,还有几个不太知名的框架将ROS与实时控制相结合[8这些缺点是有限的模块化和流行的ROS工作流的不完全集成为此,我们引入了实时 控制 框架- 工作(RTCF)作为一种新的方式来无缝构建模块化和高性能的控制器架构内的ROS生态系统。对于机器人系统,这意味着复杂的低级和中级控制器架构,例如,具有由不同团队贡献的嵌套控制回路或控制器,可以在单个通用计算机上实现,而不牺牲简单性、性能和可重用性。这是通过选择OROCOS作为基础并添加以下需求来实现的,这些需求来自我们对上述框架和图 中 示例的经验。1.一、• 模块化:组件是可重用的,接口是定义良好的,配置是在运行时进行的。关于图1,这意味着块之间的连接不是硬编码的。• 互操作性:现有的ROS工具(例如,启动文件、主题、参数服务器、日志记录)是完全兼容的。 在本例中,RTCF和ROS之间的连接必须透明地处理。• 性能:低开销的实时安全执行,保证期望的开销和抖动在10μs,便于控制高达几千赫兹的频率• 易用性:用途:由于相似的概念,现有的ROS用户很容易学习该框架。2. 设计以下将简要讨论RTCF的主要特点和设计概念2.1. 组件由于RTCF是建立在OROCOS之上的,这个单元就是所谓的组件。每个组件都有一个预定义的生命周期以及称为端口的输入和输出接口。这些端口非常类似于ROS中的订阅者-订阅者机制,因此组件在概念上非常类似于ROS节点。清单1显示了这样一个组件的最小工作示例2.2. 相关分辨率RTCF、ROS和OROCOS之间的主要区别在于组件的执行方式。默认情况下,ROS和OROCOS都在并发线程中执行加载的节点或组件。这是不适当的目标控制应用程序,其中需要一个确定性的行为和最小的开销出于这个原因,RTCF在单个实时线程中顺序执行所有加载的组件。通过使用Kahn算法[ 11 ]和每个组件的前序和后继列表的自动依赖性解析来确定顺序为了打破可能出现的循环(例如,在与传感器和致动器的硬件接口中),可以手动排除某些连接。图中的例子的结果顺序。1则为H1-F1-R1-R2-R3。2.3. 与ROS的RTCF的 一 个 主要 特 性 是 它 与 ROS 的 无 缝 互操 作 性 , 它 利 用了rtt_ros_integration的一部分[6]。启动文件:要启动包含大量组件的整个控制器架构,可以使用两个ROS节点rt_runner和rt_launcher。第一个节点负责保存、管理和执行实际的有效负载,类似于ROSnodelet_manager [12],后者允许通过标准ROS命令和启动文件方便地加载组件。因此,对于ROS开发人员来说,不需要学习任何新的东西,例如OROCOS脚本语言。清单2显示了一个示例性的RTCF启动文件。除了软件包名称和组件类型,它们被移动到args-属性,这完全像任何正常的启动文件一样工作。主题:RTCF提供了一个选项,可以透明地映射con.从实时组件到ROS主题的连接,反之亦然。这个设置是通过一个简单的白名单正则表达式实现的。自动检测并避免可能的非实时侧信道。参数:与现有解决方案相比,RTCF通过提供标准ROS节点句柄,在配 置 时 方 便 从 组 件 上 下 文 访 问 ROS 参 数 。 除 此 之 外 , 还 提 供 了dynamic_reconfigure[13]的实时安全包装器。这意味着实时控制器可以在运行时使用现有的ROS工具进行调优。日志记录:由于所需的内存分配,从实时上下文中进行日志记录需要特别注意。出于这个原因,RTCF用类似于ROS的日志宏扩展了OROCOS实时日志系统。此外,还提供了与ROS日志记录系统的集成,包括rqt_console和rtq_logger_level仿真:由于RTCF正确处理了use_sim_time-参数,因此还提供了与Gazebo等仿真工具的兼容性。3. 评价为了演示性能以及可用性,实现了如图1所示的示例架构。所有组件都在内部实现为简单的求和操作,以确保评估与实际控制器有效负载解耦3.1. 配置该示例通过H1有两个循环闭包,这意味着必须忽略传入连接以进行依赖项解析。这可以通过在启动文件中为H1设置is_first-参数来 反 映 。 实 时 组 件 和 G1/G2 之 间 的 三 个 连 接 通 过适 当 地 设置ros_mapping_whitelist参数来启用。除此之外,不需要特殊的配置。rt_runner将自动启动控制循环,包括所有预期组件加载后的依赖项解析。M. Fennel,S.Geyer和U. D。Hanebeck软件影响9(2021)10010933.2. 实时性图二、 以2 kHz频 率 运行3 h的示例场景的性能评估。4. 影响该控制器架构以2 kHz的频率在具有Intel Core i5-8600 CPU(内核版本5.4.44,具有Preempt-RT [3])的现成台式计算机上运行。对于可重现的负载条件,stress-ng在后台运行,--CPU 48--IO48. 调度抖动和计算持续时间对于每个完整的RTCF控制器迭代,使用内置的性能测量主题在3小时内捕获。 从图中的直方图。2(a),可以看出,计算的99.9%分位数持续时间为10.3 μs,最大持续时间为18.8 μs。这意味所提出的框架具有低开销和一致的延迟,即使对于大型控制器架构也是如此。 图2(b),99.9%分位数最大调度抖动分别为1.8μs和6.1μs,分别这表明Preempt-RT补丁和控制环路定时按预期工作,允许控制频率远远超过2千赫兹。据我们所知,RTCF是第一个在通用计算机上实现高性能控制的框架,它与ROS具有广泛的兼容性和出色的模块化。今天,这已经提高了速度和灵活性机器人控制研究和开发的中心。例如,研究人员经常使用定制的嵌入式系统作为他们的底层控制器和硬件接口。随着RTCF的到来,这些需求在很大程度上被消除了,特别是如果考虑到Raspberry Pi等平台。在ROS的情况下,统一框架的可用性导致了标准任务包的大型生态系统。同样,从长远来看,我们在RTCF中看到了这种潜力第一个复杂的部署将在ISAS半移动触觉接口的翻新期间进行[14]。在这种情况下,目的是在不影响整体控制性能的前提下,以灵活的研究平台取代过时且难以维护的嵌入式系统。此外,活跃在自动驾驶领域的大学组织KITcar [15]已经表示有兴趣使用RTCF作为其当前控制框架的替代品5. 观虽然RTCF已经处于成熟状态,但仍然存在一些局限性。例如,所有控制器都需要以相同的频率运行,并且目前不支持rt_runner的多个实例。 此外,即使控制器架构中存在并行路径,也会顺序执行所有组件。另一个限制是目前只支持实时执行的Preempt-RT。未来的工作将处理这些问题,并研究如何提出的解决方案可以过渡到ROS 2。 除此之外,我们打算纳入用户反馈,使RTCF更加多才多艺M. Fennel,S.Geyer和U. D。Hanebeck软件影响9(2021)1001094说明性实例参见清单1和清单2。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作引用[1]M. Quigley,K. 康利湾 Gerkey,J.Faust,T. Foote,J.Leibs,R. Wheeler,A.Ng , ROS : An open-source robot operating system , in : ICRA Workshop onOpen Source Software,vol. 3,2009.[2]Xenomai Wiki,2021,https://source.denx.de/Xenomai/xenomai/-/wikis/home.(于二零二一年六月二十八日查阅)。[3]Real-Time Linux Wiki , 2021 , https://rt.wiki.kernel.org/index.php/Main_Page.(于二零二一年六月二十八日查阅)。[4]S. 奇塔,E.马德-埃普斯坦W.Meeussen,诉普拉迪普A.罗-dríguezTsouroukdissian,J. Bohren,D. 科尔曼湾马扎尔湾Raiola,M.吕特克,E.Fernández Perdomo , ros_control : A generic and simple controlframeworkforROS,J.开源软件(2017)http://dx.doi.org/10.21105/joss.00456。[5]H.王晓刚,机器人控制软件的开发与应用,北京:机械工程学院,2001年,第3期,2001年。2523http://dx.doi.org/10.1109/ROBOT.2001.933002[6]OrocosRTT/ROS集成包,2021,https://github.com/orocos/rtt_ros_integration。(于二零二一年六月二十八日查阅)。[7]罗斯 2文档:银河,实时编程在ROS 2,2021,https://docs.ros.org/en/galactic/Tutorials/Real-Time-Programming.html网站。(于二零二一年六月[8] H.魏,Z.邵,Z.黄河,巴西-地Chen,Y. Guan,J.Tan,Z. Shao,RT-ROS:多核处 理 器 上 的 实 时 ROS 架 构 , Future Gener 。 Comput. 系 统 56 ( 2016 )171http://dx.doi.org/10.1016/j.future.2015.05.008[9]R. Delgado,B.- J. You,B. W. Choi,基于Xenomai的服务机器人实时控制体系结构,J.Syst. Softw. 151(2019)8http://dx.doi.org/10.1016/j.jss.2019.01.052[10] micro-ROS,2021,https://github.com/micro-ROS。 (于二零二一年六月二十八日查阅)。[11] A.B. Kahn , 大 型 网 络 的 拓 扑 排 序 , Commun 。 ACM 5 ( 11 ) ( 1962 )558http://dx.doi.org/10.1145/368996.369025[12] ROS Wiki,nodelet,2021,http://wiki.ros.org/nodelet.(于二零二一年六月二十八日[13] ROSWiki,dynamic_reconfigure,2021,http://wiki.ros.org/dynamic_reconfigure. (于二零二一年六月二十八日查阅)。[14] P. Rößler,T. Armstrong,O. Hessel,M. Mende,U. Hanebeck,A novel hapticinter-face for free motorism in extended range telepresence scenarios , in :Proceedings of the Third International Conference on Informatics in Control ,AutomationandRobotics,2006,pp.148http://dx.doi.org/10.5220/0001214101480153[15] KITcar:认知自主赛车,2021年,https://kitcar-team.de/。 (于二零二一年六月二十八日查阅)。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功