Managing the massive amount of data which flows through the Robot Operating System (ROS) network during operation of a robot is a very challenging task. This has historically been handled by simply storing every message in a flat file (a.k.a. a ROS “bag file”) which acts as a recording which can later be played back. Unfortunately the rosbag system is not suitable for many useful tasks like querying the messages sent during a certain period to find points in time at which the robot entered or left specific states. In this work, we benchmark several databases with varying storage models in order to determine the best data store for a future application which will subsume the current rosbag system. Our benchmarking study examines the potential throughput of the MongoDB, PostgreSQL, and SQLite3 databases by stress testing each database with workloads that vary the number of messages (rows or documents inserted), the size of messages (size of each insert), and the number of topics (tables or collections being inserted to simultaneously). Additionally, each database is tested against exemplar queries that could be useful for roboticists, and runtimes are reported. Based on these benchmarking studies, recommendations are made for the development of future ROS message logging systems.
[1]
André Dietrich,et al.
ROS meets Cassandra : Data Management in Smart Environments with NoSQL
,
2014
.
[2]
Robert J. Meijer,et al.
Sensor Data Storage Performance: SQL or NoSQL, Physical or Virtual
,
2012,
2012 IEEE Fifth International Conference on Cloud Computing.
[3]
John J. Leonard,et al.
The MIT Stata Center dataset
,
2013,
Int. J. Robotics Res..
[4]
Gerhard Lakemeyer,et al.
A generic robot database and its application in fault analysis and performance evaluation
,
2012,
2012 IEEE/RSJ International Conference on Intelligent Robots and Systems.