convert_data_to_mat.py
Go to the documentation of this file.
00001 #! /usr/bin/python
00002 
00003 import sys
00004 import numpy as np
00005 import scipy.io
00006 
00007 import roslib
00008 roslib.load_manifest('hrl_phri_2011')
00009 import rospy
00010 
00011 import rosbag
00012 
00013 def main():
00014 
00015     field_map = {
00016         "time_offset" : "time_offset",
00017         "tool_frame.transform.translation.x" : "pos_x",
00018         "tool_frame.transform.translation.y" : "pos_y",
00019         "tool_frame.transform.translation.z" : "pos_z",
00020         "tool_frame.transform.rotation.x" : "rot_x",
00021         "tool_frame.transform.rotation.y" : "rot_y",
00022         "tool_frame.transform.rotation.z" : "rot_z",
00023         "tool_frame.transform.rotation.w" : "rot_w",
00024         "pc_pt.x" : "pc_pt_x",
00025         "pc_pt.y" : "pc_pt_y",
00026         "pc_pt.z" : "pc_pt_z",
00027         "pc_normal.x" : "pc_norm_x",
00028         "pc_normal.y" : "pc_norm_y",
00029         "pc_normal.z" : "pc_norm_z",
00030         "pc_dist" : "pc_dist",
00031         "wrench.force.x" : "force_x",
00032         "wrench.force.y" : "force_y",
00033         "wrench.force.z" : "force_z",
00034         "wrench.torque.x" : "torque_x",
00035         "wrench.torque.y" : "torque_y",
00036         "wrench.torque.z" : "torque_z",
00037         "force_magnitude" : "force_mag",
00038         "force_normal" : "force_norm",
00039         "force_tangental" : "force_tan",
00040         "contact_period" : "contact_period",
00041         "time_from_contact_start" : "time_contact",
00042         "ell_coords.x" : "lat",
00043         "ell_coords.y" : "long",
00044         "ell_coords.z" : "height",
00045     }
00046     data = {}
00047     for field in field_map:
00048         data[field_map[field]] = []
00049 
00050     bag = rosbag.Bag(sys.argv[1], 'r')
00051     for topic, fp, t in bag.read_messages(topics=["/force_processed"]):
00052         for field in field_map:
00053             exec("data['%s'].append(fp.%s)" % (field_map[field], field))
00054     bag.close()
00055 
00056     output_file = ".".join(sys.argv[1].split(".")[:-1] + ["mat"])
00057     scipy.io.savemat(output_file, data)
00058     print "Saved mat file to:", output_file
00059 
00060 if __name__ == "__main__":
00061     main()


hrl_phri_2011
Author(s): Kelsey Hawkins
autogenerated on Wed Nov 27 2013 12:22:39