#include #include #include #include #include #include using namespace std; using namespace track_manager; using namespace sensor_msgs; string usageString() { ostringstream oss; oss << "Usage: " << endl; oss << " track_stats TRACK_MANAGER [TRACK_MANAGER ...]" << endl; oss << " track_stats --track-length-histogram TRACK_MANAGER [TRACK_MANAGER ...]" << endl; return oss.str(); } void computeCentroid(const PointCloud& pc, float* x, float* y, float* z) { *x = 0; *y = 0; *z = 0; for(size_t i=0; i hist; size_t max_length = 0; for(int i=2; i max_length) max_length = tr.frames_.size(); } } size_t cum = 0; for(size_t i = max_length; i > 0; --i) { cum += hist[i]; cout << i << " " << hist[i] << " " << cum << endl; } } void outputStats(int argc, char** argv) { map num_clouds; map num_tracks; for(int i=1; i::iterator it = num_tracks.begin(); it!=num_tracks.end(); ++it) { cout << it->first << " tracks: " << it->second << endl; total_tracks += it->second; } cout << "Total tracks: " << total_tracks << endl << endl; cout << "Cloud Statistics: " << endl; for(map::iterator it = num_clouds.begin(); it!=num_clouds.end(); ++it) { cout << it->first << " clouds: " << it->second << endl; total_clouds += it->second; } cout << "Total clouds: " << total_clouds << endl << endl; } int main(int argc, char** argv) { if(argc > 2 && strcmp(argv[1], "--track-length-histogram") == 0) trackLengthHistogram(argc, argv); else if(argc > 1 && strcmp(argv[1], "--track-length-histogram") != 0) outputStats(argc, argv); else cout << usageString() << endl; return 0; }