TY - GEN
T1 - Dimensional inconsistencies in code and ROS messages
T2 - 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems, IROS 2017
AU - Ore, John Paul
AU - Elbaum, Sebastian
AU - Detweiler, Carrick
N1 - Funding Information:
Computer Science and Engineering, University of Nebraska-Lincoln, NE, 68588 USA {jore, elbaum, carrick}@cse.unl.edu This work partially supported by NSF NRI-1638099, NSF CCF-1718040, USDA-NIFA 2013-67021-20947 and USDA-NIFA 2017-67021-25924.
Funding Information:
This work partially supported by NSF NRI-1638099, NSF CCF-1718040, USDA-NIFA 2013-67021-20947 and USDA-NIFA 2017-67021-25924.
Publisher Copyright:
© 2017 IEEE.
PY - 2017/12/13
Y1 - 2017/12/13
N2 - This work presents a study of robot software using the Robot Operating System (ROS), focusing on detecting inconsistencies in physical unit manipulation. We discuss how dimensional analysis, the rules governing how physical quantities are combined, can be used to detect inconsistencies in robot software that are otherwise difficult to detect. Using a corpus of ROS software with 5.9M lines of code, we measure the frequency of these dimensional inconsistencies and find them in 6% (211 / 3,484) of repositories that use ROS. We find that the inconsistency type 'Assigning multiple units to a variable' accounts for 75% of inconsistencies in ROS code. We identify the ROS classes and physical units most likely to be involved with dimensional inconsistencies, and find that the ROS Message type geometry-msgs::Twist is involved in over half of all inconsistencies and is used by developers in ways contrary to Twist's intent. We further analyze the frequency of physical units used in ROS programs as a proxy for assessing how developers use ROS, and discuss the practical implications of our results including how to detect and avoid these inconsistencies.
AB - This work presents a study of robot software using the Robot Operating System (ROS), focusing on detecting inconsistencies in physical unit manipulation. We discuss how dimensional analysis, the rules governing how physical quantities are combined, can be used to detect inconsistencies in robot software that are otherwise difficult to detect. Using a corpus of ROS software with 5.9M lines of code, we measure the frequency of these dimensional inconsistencies and find them in 6% (211 / 3,484) of repositories that use ROS. We find that the inconsistency type 'Assigning multiple units to a variable' accounts for 75% of inconsistencies in ROS code. We identify the ROS classes and physical units most likely to be involved with dimensional inconsistencies, and find that the ROS Message type geometry-msgs::Twist is involved in over half of all inconsistencies and is used by developers in ways contrary to Twist's intent. We further analyze the frequency of physical units used in ROS programs as a proxy for assessing how developers use ROS, and discuss the practical implications of our results including how to detect and avoid these inconsistencies.
UR - http://www.scopus.com/inward/record.url?scp=85041959472&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85041959472&partnerID=8YFLogxK
U2 - 10.1109/IROS.2017.8202229
DO - 10.1109/IROS.2017.8202229
M3 - Conference contribution
AN - SCOPUS:85041959472
T3 - IEEE International Conference on Intelligent Robots and Systems
SP - 712
EP - 718
BT - IROS 2017 - IEEE/RSJ International Conference on Intelligent Robots and Systems
PB - Institute of Electrical and Electronics Engineers Inc.
Y2 - 24 September 2017 through 28 September 2017
ER -