ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Which database system suits ROS better?

asked 2011-06-08 03:53:55 -0600

Victor Lopez gravatar image

I'm working on a project that requires storing data gathered using the diagnostics stack (ie DiagnosticStatus messages and alike) into a database in a local network.

I'm keeping an eye on http://www.ros.org/wiki/Projects/Building%20Manager which uses MongoDB but I have also seen some stacks working using PostgreSQL.

Which kind of databases are more suited to store ROS messages?

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
2

answered 2011-06-08 05:11:22 -0600

bhaskara gravatar image

updated 2011-06-08 14:28:14 -0600

I think the question of whether to use a relational database such as PostgreSQL or a nonrelational "noSQL" one such as MongoDB comes down to your data structure and access patterns. In MongoDB, data is stored in a nested manner similar to XML documents or JSON, in contrast to tables connected by relations as in relational DBs.

I'm a developer of the Mongo interface (http://www.ros.org/wiki/mongo_roscpp), and am looking to get more use cases and feedback for it, so I'd be interested to see more about your usage scenario. Feel free to email me directly (my username AT willowgarage.com).

edit flag offensive delete link more

Comments

The idea is that a robot is gathering continuously diagnostics information, which is stored on a rosbag inside the robot. Periodically this rosbag is sent to another comptuer which processes the bags and stores them in a database. These are useful to see common failures on the long term.
Victor Lopez gravatar image Victor Lopez  ( 2011-06-08 22:16:53 -0600 )edit
OK, if what you're storing is a ROS message, and your queries are on fields of this message (as opposed to joins, say), that's pretty easy to do. See http://www.ros.org/wiki/warehousewg/Tutorials for an example.
bhaskara gravatar image bhaskara  ( 2011-06-09 04:10:52 -0600 )edit
I have just read that MongoDB has some serious capacity issues when running on a 32bit OS (http://blog.mongodb.org/post/137788967/32-bit-limitations). Just keep it in mind if you are choosing a DB technology.
Victor Lopez gravatar image Victor Lopez  ( 2011-06-15 00:37:57 -0600 )edit
0

answered 2011-06-08 17:26:15 -0600

watts gravatar image

Victor, have you seen the "web_bags" package?

https://code.ros.org/svn/wg-ros-pkg/branches/trunk_cturtle/stacks/web_bags

It is unsupported and unmaintained, but it could give you a starting for a system like you're proposing.

edit flag offensive delete link more

Comments

Yeah I saw some comments about webbag but I ran a search and did not find anything. I'll keep an eye on it because I've had to develop a web server that publishes a page really similar to the robot_monitor tool.
Victor Lopez gravatar image Victor Lopez  ( 2011-06-08 22:43:43 -0600 )edit

Question Tools

Stats

Asked: 2011-06-08 03:53:55 -0600

Seen: 4,175 times

Last updated: Jun 08 '11