Functions |
void | CreateMarkers (vector< visualization_msgs::Marker > &marker_vector, vector< t_clusterPtr > &clusters) |
| Create markers for Rviz.
|
void | CreateMarkersFromTreeLeafs (vector< visualization_msgs::Marker > &marker_vector) |
void | CreateObjects (vector< t_pointPtr > &data, vector< t_clusterPtr > &clusters, double clustering_distance) |
| This function converts a set of points into groups (aka clusters).
|
void | CreateTreeMarker (vector< visualization_msgs::Marker > &mrk, tree< t_nodePtr >::iterator root) |
void | DataHandler (const sensor_msgs::PointCloud2 &msg) |
| Handler for the incoming data.
|
MatrixXd | EllipseParametric (Matrix2d &cov, Vector2d &mu, double MahThreshold) |
| Create a parametric ellipse from covariance matrix.
|
vector< vector< t_clusterPtr >
::iterator > | GateMeasurements (t_nodePtr &node, vector< t_clusterPtr > &clusters, double max_gating) |
vector< t_clusterPtr >::iterator | GetClosestCandidate (t_nodePtr &node, vector< t_clusterPtr > &clusters) |
| Get the closest candidate to the node from all the clusters.
|
void * | GraphicalThread (void *data) |
double | Mahalanobis (Vector2d &y, Vector2d &mean, Matrix2d &cov) |
| Calculate the Mahalanobis distance.
|
double | Mahalanobis_distance (t_nodePtr &node, t_clusterPtr &cluster) |
| Calculate the distance between a node and a cluster.
|
int | main (int argc, char **argv) |
void | nthPruning (int size) |
void | PointCloud2ToVector (const sensor_msgs::PointCloud2 &cloud, vector< t_pointPtr > &data) |
| Convert from a point cloud representation to a stl vector of shared pointers to the class t_point.
|
void | ReAgeTree (void) |
void | RemoveOld (int size) |
| Remove old nodes from the tree.
|
Variables |
tree< t_nodePtr > | global_tree |
| Main super hyper tree.
|
GVGraph * | graph_context |
| Graph context pointer, used in the xgtk plug-in.
|
pthread_t | graph_thread |
| Additional thread to run the graphviz plug-in.
|
gvplugin_library_t | gvplugin_xgtk_LTX_library |
| Xgtk external graphviz library/plugin (only plugin, there's no need to create a library since it can be linked internally.
|
long | iteration = 0 |
| Current iteration counter, used in the naming of tree nodes.
|
Publisher | markers_publisher |
| Marker publisher.
|
Publisher | markers_tree_publisher |
| Tree marker publisher, only leafs.
|
double | max_mahalanobis = 7 |
| Max Mahalanobis distance used in gating.
|
string | tracking_frame |
| Tracking frame, frame id of the current tracking frame.
|
Source code for the Multi-Hypothesis Tracking data association algorithm.
void DataHandler |
( |
const sensor_msgs::PointCloud2 & |
msg |
) |
|
Handler for the incoming data.
- Parameters:
-
Convert from the pointcloud unsorted structure to a scan like sorted structure
Create objects, for now is simple clustering
New nodes are created from clusters, maybe in the future they will be created from other type of data
Insert into the tree the start clusters, at root
Definition at line 711 of file pmht.cpp.
MatrixXd EllipseParametric |
( |
Matrix2d & |
cov, |
|
|
Vector2d & |
mu, |
|
|
double |
MahThreshold | |
|
) |
| | |
Create a parametric ellipse from covariance matrix.
This function creates a parametric ellipse from a covariance matrix, the mean values and a threshold. The main axes directions are calculated using the eigenvectors of the covariance matrix, then a crawling algorithm detects the threshold points obtaining the lengths of the axes. After that the generic parametric equation is used to calculate points in the threshold boundary.
- Parameters:
-
| cov | covariance matrix |
| mu | mean values |
| MahThreshold | Mahalanobis threshold to use |
- Returns:
- the xy points of the ellipse, the last points is equal to the first so the ellipse closes
Definition at line 125 of file pmht.cpp.
Xgtk external graphviz library/plugin (only plugin, there's no need to create a library since it can be linked internally.
Xgtk external graphviz library/plugin (only plugin, there's no need to create a library since it can be linked internally.
Xgtk external graphviz library/plugin (only plugin, there's no need to create a library since it can be linked internally).
Definition at line 256 of file gvplugin_xgtk.cpp.