Line fitting experimental code. More...
#include <ros/ros.h>
#include <visualization_msgs/Marker.h>
#include <visualization_msgs/MarkerArray.h>
#include <mtt/TargetListPC.h>
#include <tf/transform_listener.h>
#include <laser_geometry/laser_geometry.h>
#include <iostream>
#include <pcl/point_types.h>
#include <pcl/io/pcd_io.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <pcl/surface/mls.h>
#include <pcl_conversions/pcl_conversions.h>
#include <mtt/mtt_common.h>
Go to the source code of this file.
Functions | |
void | calcClusterProps (vector< t_clustersPtr > &clusters, t_data &data) |
void | calcObjectProps (vector< t_objectPtr > &objects) |
void | cleanMarkers (void) |
void | cleanObjets (vector< t_objectPtr > &objects) |
bool | clustering (t_data &data, vector< t_clustersPtr > &clusters) |
bool | clustersToObjects (vector< t_clustersPtr > &clusters, t_data &data, vector< t_objectPtr > &objectsPtr) |
void | convertObjectsToTargetListPC (vector< t_objectPtr > &objects, mtt::TargetListPC &targets) |
void | createMarkers (mtt::TargetListPC &targets) |
void | free_lines (vector< t_objectPtr > &objects) |
Removes lines from memory. More... | |
int | main (int argc, char **argv) |
void | maintenanceMarkers (vector< visualization_msgs::Marker > &markers) |
void | markersFromData (t_data &data) |
double | point2line_distance (double alpha, double ro, double x, double y) |
Calculates the line to point distance. More... | |
double | point2point_distance (double xi, double yi, double xf, double yf) |
Calculates the distante between two points. More... | |
void | pointCloud2ToData (const sensor_msgs::PointCloud2 &cloud, t_data &data) |
void | pointsHandler (const sensor_msgs::PointCloud2 &points) |
void | recursive_IEPF (t_objectPtr &object, t_data &data, int start, int end) |
void | recursive_line_fitting (t_objectPtr &object, t_cluster &cluster, t_data &data) |
Variables | |
double | angular_resolution =3*M_PI/180. |
double | clustering_threshold =0.3 |
string | frame_id |
int | marker_id =0 |
map< pair< string, int >, pair < visualization_msgs::Marker, int > > | marker_map |
ros::Publisher | markers_publisher |
double | max_mean_variance =0.03 |
ros::Time | message_stamp |
ros::Publisher | target_publisher |
Line fitting experimental code.
Definition in file line_fitting.cpp.
void calcClusterProps | ( | vector< t_clustersPtr > & | clusters, |
t_data & | data | ||
) |
Definition at line 196 of file line_fitting.cpp.
void calcObjectProps | ( | vector< t_objectPtr > & | objects | ) |
Definition at line 80 of file line_fitting.cpp.
void cleanMarkers | ( | void | ) |
Definition at line 421 of file line_fitting.cpp.
void cleanObjets | ( | vector< t_objectPtr > & | objects | ) |
Definition at line 75 of file line_fitting.cpp.
bool clustering | ( | t_data & | data, |
vector< t_clustersPtr > & | clusters | ||
) |
Definition at line 220 of file line_fitting.cpp.
bool clustersToObjects | ( | vector< t_clustersPtr > & | clusters, |
t_data & | data, | ||
vector< t_objectPtr > & | objectsPtr | ||
) |
Definition at line 173 of file line_fitting.cpp.
void convertObjectsToTargetListPC | ( | vector< t_objectPtr > & | objects, |
mtt::TargetListPC & | targets | ||
) |
Definition at line 349 of file line_fitting.cpp.
void createMarkers | ( | mtt::TargetListPC & | targets | ) |
Definition at line 453 of file line_fitting.cpp.
void free_lines | ( | vector< t_objectPtr > & | objects | ) |
Removes lines from memory.
objects | list of objects |
Definition at line 69 of file line_fitting.cpp.
int main | ( | int | argc, |
char ** | argv | ||
) |
Definition at line 619 of file line_fitting.cpp.
void maintenanceMarkers | ( | vector< visualization_msgs::Marker > & | markers | ) |
Definition at line 432 of file line_fitting.cpp.
void markersFromData | ( | t_data & | data | ) |
Definition at line 531 of file line_fitting.cpp.
double point2line_distance | ( | double | alpha, |
double | ro, | ||
double | x, | ||
double | y | ||
) |
Calculates the line to point distance.
alpha | polar coordinates of the line |
ro | polar coordinates of the line |
x | cartesian coordinates of the point |
y |
Definition at line 66 of file line_fitting.cpp.
double point2point_distance | ( | double | xi, |
double | yi, | ||
double | xf, | ||
double | yf | ||
) |
Calculates the distante between two points.
xi | |
yi | |
xf | |
yf |
Definition at line 63 of file line_fitting.cpp.
void pointCloud2ToData | ( | const sensor_msgs::PointCloud2 & | cloud, |
t_data & | data | ||
) |
Definition at line 284 of file line_fitting.cpp.
void pointsHandler | ( | const sensor_msgs::PointCloud2 & | points | ) |
Definition at line 567 of file line_fitting.cpp.
void recursive_IEPF | ( | t_objectPtr & | object, |
t_data & | data, | ||
int | start, | ||
int | end | ||
) |
This functions malloc a line to work with, each time it mallocs a line it increments the number of lines object data
Definition at line 120 of file line_fitting.cpp.
void recursive_line_fitting | ( | t_objectPtr & | object, |
t_cluster & | cluster, | ||
t_data & | data | ||
) |
Definition at line 165 of file line_fitting.cpp.
double angular_resolution =3*M_PI/180. |
Definition at line 61 of file line_fitting.cpp.
double clustering_threshold =0.3 |
Definition at line 60 of file line_fitting.cpp.
string frame_id |
Definition at line 55 of file line_fitting.cpp.
int marker_id =0 |
Definition at line 58 of file line_fitting.cpp.
map<pair<string,int>, pair<visualization_msgs::Marker,int> > marker_map |
Definition at line 57 of file line_fitting.cpp.
ros::Publisher markers_publisher |
Definition at line 54 of file line_fitting.cpp.
double max_mean_variance =0.03 |
Definition at line 59 of file line_fitting.cpp.
ros::Time message_stamp |
Definition at line 56 of file line_fitting.cpp.
ros::Publisher target_publisher |
Definition at line 53 of file line_fitting.cpp.