|
Autoware.Auto
|
|
This is the design document for the voxel_grid_nodes package.
This package generally instantiates the objects and classes defined in the voxel_grid package for use with node constructs and general interprocess communication.
In short, this package exists to connect the voxel_grid family of objects to the larger ROS 2 infrastructure.
More concretely, the functionality in this package is needed because it allows us to downsample large point clouds into smaller point clouds, while still retaining a large amount of representational power.
This package has 3 parts:
PointCloud2 algorithm classThe use of a base "algorithm" class is motivated by the fact that the underlying VoxelGrid class is templated, and has a template-dependent API (insofar as types are concerned). This means in order to get runtime dispatching/polymorphism (to keep the code base lighter and usage simpler), we must wrap the data structure in a polymorphic base class.
The following limitations are present:
VoxelGrid data structurePointCloud2 header (due to a string frame_id)The "algorithm" API is generally straightforward, with a single method for input and a single method for outputs. See the following API docs for more details:
As a node, `VoxelCloudNode` has a standard set of public facing methods.
The inputs are a single PointCloud2 topic, and the outputs are another PointCloud2 topic.
Exceptions are generally thrown on errors.
The functionality in this package generally does not have error handling, as error handling is delegated to the underlying data structure.
TBD by a security specialist