logging_tutlesim
Table of Contents
Logging turtlesim data
This is a simple example to show logging of pose and velocity information from running the turtlesim
node.
Logging the data
Start the turtlesim and log all the topics using the following sets of commands
rosrun turtlesim turtlesim_node rosrun turtlesim turtle_teleop_key # for keyboard teleop to get changing data rosrun mongodb_log mongodb_log -a # for all topics. check help for more options # use Ctrl + C to stop
Accessing the data
The data that has been logged can be accessed via may ways, directly using terminal mongo client or via the language APIs. These are each shown below;
Via the mongo terminal client
This is installed when you get the mongodb package installed on the system.
mongo # alternatively, use the ros version with rosrun mongodb mongo # you should see an interface like the following MongoDB shell version: 2.0.4 connecting to: test # change to the ros database using > use roslog switched to roslog # see a list of databases using > show dbs local (empty) roslog 0.203125GB # see the list of items stored using the following > db.getCollectionNames() [ "system.indexes", "turtle1_color_sensor", "turtle1_command_velocity", "turtle1_pose" ] # further commands are given in standard mongo cheatsheets >
Via a python API
The full documentation of the python API is available online at http://api.mongodb.org/python/current/. Below is a simple example usage:
import pymongo mclient = pymongo.Connection() db = mclient['roslog'] # get the collections db.collection_names() [u'turtle1_color_sensor', u'system.indexes', u'turtle1_pose', u'turtle1_ command_velocity'] # show all the data in the database docs = db['turtle1_pose'].find() for d in docs: print d # this displays a long list with elements like these {u'__topic': u'/turtle1/pose', u'linear_velocity': 0.0, u'theta': 1.9824 440479278564, u'y': 8.26992130279541, u'x': 4.029432773590088, u'_id': O bjectId('51c98fcca6c646570b000901'), u'angular_velocity': 0.0, u'__recor ded': 1372164044.44448} {u'__topic': u'/turtle1/pose', u'linear_velocity': 0.0, u'theta': 1.9824 440479278564, u'y': 8.26992130279541, u'x': 4.029432773590088, u'_id': O bjectId('51c98fcca6c646570b000902'), u'angular_velocity': 0.0, u'__recor ded': 1372164044.460494} # querying can be done directly on these. e.g. q = db['turtle1_pose'].find({'__recorded':{'$gt' : 1372164044.44448}}) q.count() 1 # which is exactly the last recording as shown in the data snippet above
logging_tutlesim.txt · Last modified: 2016/05/19 09:19 by 127.0.0.1