Implement NDT Map Publisher
Description
Purpose
Management of the reference map is a separate concern from NDT as a localization method. This should just be a separate node which reads in a point cloud map, appropriately preprocesses it, and sends it to the NDT node.
The implementation satisfying this can eventually be used as some kind of translator for general 3D point clouds into an NDT representation once a proper map manager is implemented.
Desired Behavior
The following behaviors should be satisfied:
-
A class that can read a .pcd
file into aPointCloud2
message should be implemented -
The resulting PointCloud2
message should have the following format:
// PointCloud2
fields = {
// centroid
PointField{"x", 8, FLOAT64, 1},
PointField{"y", 8, FLOAT64, 1},
PointField{"z", 8, FLOAT64, 1},
// covariance, row major
PointField{"cov_xx", 8, FLOAT64, 1},
PointField{"cov_xy", 8, FLOAT64, 1},
PointField{"cov_xz", 8, FLOAT64, 1},
PointField{"cov_yy", 8, FLOAT64, 1},
PointField{"cov_yz", 8, FLOAT64, 1},
PointField{"cov_zz", 8, FLOAT64, 1},
}
-
A node that wraps the above class should be implemented - This node may wait for some signal before publishing once, or it might just publish once after a pause, or just periodically publish
Definition of Done
-
The above behaviors should be satisfied
Edited by Yunus Emre Çalışkan