Abstract

Robot Operating System (ROS) is a software component framework developed for robot applications. It provides a rich set of software libraries and tools to construct robot components, including implementation of many popular perception, planning, and control algorithms. The state of the art in ROS, however, does not fundamentally support priority and synchronization among tasks, so-called nodes in ROS. Therefore, ROS may not be appropriate as a platform of real-time multi-tasking environments, despite the fact that most robot applications are multi-tasking and running under real-time constraints. In this paper, we explore real-time performance of ROS. We present a priority-based message transmission mechanism to reduce the execution time and time variance of high-priority ROS nodes. We also present a synchronization mechanism to harmonize multiple ROS nodes running at different frequencies. The presented mechanisms can be both used with legacy ROS applications without modification. Experiments using an autonomous driving system show a 62.3% reduction in a worst-case execution time and indicate that time differences between nodes are guaranteed below a constant time. In addition, the total CPU utilization is saved by up to about 10%.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call