save_contact_cloud.cpp
Go to the documentation of this file.
00001 #include <ros/ros.h>
00002 
00003 #include <hrl_phri_2011/pcl_basic.h>
00004 #include <hrl_phri_2011/utils.h>
00005 #include <hrl_phri_2011/ForceProcessed.h>
00006 #include <hrl_phri_2011/hsl_rgb_conversions.h>
00007 
00008 int main(int argc, char **argv)
00009 {
00010     ros::init(argc, argv, "save_contact_cloud");
00011     ros::NodeHandle nh;
00012 
00013     if(argc < 2 || argc > 4) {
00014         printf("Usage: save_contact_cloud forces_bag output_bag [frame]\n");
00015         return 1;
00016     }
00017 
00018     // load forces
00019     vector<hrl_phri_2011::ForceProcessed::Ptr> forces;
00020     readBagTopic<hrl_phri_2011::ForceProcessed>(argv[1], forces, "/force_processed");
00021 
00022     PCRGB fpc;
00023     for(uint32_t i=0;i<forces.size();i++) {
00024         PRGB pt;
00025         pt.x = forces[i]->tool_frame.transform.translation.x;
00026         pt.y = forces[i]->tool_frame.transform.translation.y;
00027         pt.z = forces[i]->tool_frame.transform.translation.z;
00028         pt.rgb = forces[i]->force_magnitude;
00029         fpc.points.push_back(pt);
00030     }
00031     if(argc > 3)
00032         fpc.header.frame_id = argv[3];
00033     else
00034         fpc.header.frame_id = "/base_link";
00035     
00036     rosbag::Bag bag;
00037     bag.open(argv[2], rosbag::bagmode::Write);
00038     bag.write("/contact_cloud", ros::Time::now(), fpc);
00039     bag.close();
00040 
00041     return 0;
00042 }


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