This repository includes a library for transforming point clouds (XYZRGBA), as well as point clouds (XYZ) with a constant velocity and radius. Additionally, it includes a library to generate a grid in which a pointcloud is constrained, and implements some collision handling between point-wall and poin-point. The repo includes two examples:
- Transform and visualize a point cloud.
- Generate a grid and simulate points moving within it with collisions.
Before building the library and examples, install the following dependencies:
- Eigen
- Boost
- VTK
- Flann
- Nanoflann
- OpenMP
- PCL (latest release)
In ubuntu 22.04, these can be installed with:
sudo apt install \
libeigen3-dev \
libboost-all-dev \
libgmp3-dev \
libflann-dev \
libnanoflann-dev \
openmpi-bin \
openmpi-common \
libvtk9-dev
PCL needs to be built from source to use the latest release (for visualization purposes). In ubuntu 22.04, it can be install with:
git clone https://github.com/PointCloudLibrary/pcl.git --tag pcl-1.14.0
cd pcl
mkdir build
cd build
cmake ..
make -j5
make install
This repo uses CMake to build.
[email protected]:albertgassol1/pcl_lib.git
git lfs pull
mkdir build
cd build
cmake ..
make
The examples executables are stored in build/bin
. To run the examples (and see the arguments that they suport) simply run:
./build/bin/transform_points --input [path_to_input_pcl] --output [path_to_output_folder] --help
./build/bin/grid_viewer --help
A nice set of parameters for the grid viewer are:
./build/bin/grid_viewer --x_min -10 --y_min -10 --z_min -10 --x_max 10 --y_max 10 --z_max 10 --point_radius 0.3 --update true --max_velocity 1 --point_collisions true --viz_point_size 5 --dt 0.01 --num_points 800
This repo provides a docker file to build the libraries, however it does not work well for visualization. If one wants to visualize pointclouds, this library needs to be built locally.