Only released in EOL distros:
Package Summary
Contains the definitions of the 3D Normal Distributions Transform data structures, used for mapping, registration, etc.
- Author: Todor Stoyanov, Jari Saarinen, Henrik Andreasson
- License: BSD
- Source: svn http://oru-ros-pkg.googlecode.com/svn/trunk/perception_oru
Package Summary
Contains the definitions of the 3D Normal Distributions Transform data structures, used for mapping, registration, etc.
- Maintainer: Jari Saarinen <jari.p.saarinen AT gmail DOT com>, Todor Stoyanov <todor.stoyanov AT oru DOT se>, Henrik Andreasson <henrik.andreasson AT oru DOT se>
- Author: Todor Stoyanov, Jari Saarinen, Henrik Andreasson
- License: BSD
- Source: git https://github.com/tstoyanov/perception_oru-release.git (branch: upstream)
Package Summary
Contains the definitions of the 3D Normal Distributions Transform data structures, used for mapping, registration, etc.
- Maintainer: Jari Saarinen <jari.p.saarinen AT gmail DOT com>, Todor Stoyanov <todor.stoyanov AT oru DOT se>, Henrik Andreasson <henrik.andreasson AT oru DOT se>, Tomasz Kucner <tomasz.kucner AT oru DOT se>
- Author: Todor Stoyanov, Jari Saarinen, Henrik Andreasson
- License: BSD
- Source: git https://github.com/tstoyanov/perception_oru-release.git (branch: release-source)
Package Summary
Contains the definitions of the 3D Normal Distributions Transform data structures, used for mapping, registration, etc.
- Maintainer: Jari Saarinen <jari.p.saarinen AT gmail DOT com>, Todor Stoyanov <todor.stoyanov AT oru DOT se>, Henrik Andreasson <henrik.andreasson AT oru DOT se>, Tomasz Kucner <tomasz.kucner AT oru DOT se>
- Author: Todor Stoyanov, Jari Saarinen, Henrik Andreasson
- License: BSD
This package implements the NDT data structure. Several options for constructing an NDT map are available.
Documentation
For detailed documentation of the API, please refer to the doxygen generated documentation. The main class of interest is NDTMap, which provides several methods of constructing an NDT, given a point cloud of the environment. A sample node that generates and saves NDT maps is also provided.
Spatial Indexing
NDT maps can be created either using a regular grid data structure (LazyGrid) or using an irregular grid (OcTree). The recommended mode is to use LazyGrid, as most of the subsequent algorithms have been optimized for that data structure.
NDT Cell
Each cell in the NDT map is stored as an NDTCell object, which stores the mean and covariance of the point distribution in the cell. Points used for computing the distribution are deleted after the cell is created. Several update methods are available for adapting to new measurements in the cell.
Class API and usage
An example of how to create an NDT map from a point cloud:
1 #include <ndt_map.h>
2 #include <lazy_grid.h>
3 #include <pcl/point_cloud.h>
4
5 int main() {
6 //creates an empty grid with a resolution of 0.2 meters
7 lslgeneric::LazyGrid<pcl::PointXYZ> grid(0.2);
8 //the grid is only used as a prototype by the map
9 //which will allocate a new empty grid
10 lslgeneric::NDTMap<pcl::PointXYZ> nd(&grid);
11 //create a pcl point cloud (and load data)
12 pcl::PointCloud<pcl::PointXYZ> cloud;
13 //load the point cloud in the ndt map, allocates memory for the grid
14 nd.loadPointCloud(cloud);
15 //computes the distributions in each cell and deletes the points
16 nd.computeNDTCells();
17 //do something with the map ...
18 }