Improving Code Quality in ROS Packages Using a Temporal Extension of First-Order Logic

D. Come, Julien Brunel, D. Doose
{"title":"Improving Code Quality in ROS Packages Using a Temporal Extension of First-Order Logic","authors":"D. Come, Julien Brunel, D. Doose","doi":"10.1109/IRC.2018.00010","DOIUrl":null,"url":null,"abstract":"Robots are given more and more challenging tasks in domains such as transport and delivery, farming or health. Software is key components for robots, and ROS is a popular open-source middleware for writing robotics applications. Code quality matters a lot because a poorly written software is much more likely to contain bugs and will be harder to maintain over time. Within a code base, finding faulty patterns takes a lot of time and money. We propose a framework to search automatically user-provided faulty code patterns. This framework is based on FO++, a temporal extension of first-order logic, and Pangolin, a verification engine for C++ programs. We formalized with FO++ five faulty patterns related to ROS and embedded systems. We analyzed with Pangolin 25 ROS packages looking for occurrences of these patterns and found a total of 218 defects. To prevent the faulty patterns from arising in new ROS packages, we propose a design pattern, and we show how Pangolin can be used to enforce it.","PeriodicalId":416113,"journal":{"name":"2018 Second IEEE International Conference on Robotic Computing (IRC)","volume":"126 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 Second IEEE International Conference on Robotic Computing (IRC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/IRC.2018.00010","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

Abstract

Robots are given more and more challenging tasks in domains such as transport and delivery, farming or health. Software is key components for robots, and ROS is a popular open-source middleware for writing robotics applications. Code quality matters a lot because a poorly written software is much more likely to contain bugs and will be harder to maintain over time. Within a code base, finding faulty patterns takes a lot of time and money. We propose a framework to search automatically user-provided faulty code patterns. This framework is based on FO++, a temporal extension of first-order logic, and Pangolin, a verification engine for C++ programs. We formalized with FO++ five faulty patterns related to ROS and embedded systems. We analyzed with Pangolin 25 ROS packages looking for occurrences of these patterns and found a total of 218 defects. To prevent the faulty patterns from arising in new ROS packages, we propose a design pattern, and we show how Pangolin can be used to enforce it.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
利用一阶逻辑的时间扩展提高ROS包的代码质量
机器人在运输、配送、农业或医疗等领域被赋予越来越具有挑战性的任务。软件是机器人的关键组件,ROS是用于编写机器人应用程序的流行开源中间件。代码质量非常重要,因为编写糟糕的软件更有可能包含错误,并且随着时间的推移将更难维护。在代码库中,发现错误的模式需要花费大量的时间和金钱。我们提出了一个框架来自动搜索用户提供的错误代码模式。该框架基于一阶逻辑的时间扩展f++和用于c++程序的验证引擎Pangolin。我们用f++形式化了与ROS和嵌入式系统相关的五个错误模式。我们用穿山甲分析了25个ROS包,寻找这些模式的出现,并发现了总共218个缺陷。为了防止在新的ROS包中出现错误的模式,我们提出了一个设计模式,并展示了如何使用穿山甲来强制执行它。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Learning a Set of Interrelated Tasks by Using Sequences of Motor Policies for a Strategic Intrinsically Motivated Learner Improving Code Quality in ROS Packages Using a Temporal Extension of First-Order Logic Rapid Qualification of Mereotopological Relationships Using Signed Distance Fields Towards a Multi-mission QoS and Energy Manager for Autonomous Mobile Robots A Computational Framework for Complementary Situational Awareness (CSA) in Surgical Assistant Robots
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1