rc_cloud_accumulator

This project demonstrates how to create a registered point cloud map using the roboception rc_visard with the ROS driver.

What it does

The rc_cloud_accumulator ROS node subscribes to the following topics of the rc_visard_driver

The received information is stored, such that a registered point cloud can be computed and saved to disk. For performance reasons, the point clouds are preprocessed. See Filters below for more details.

The node displays point clouds received on the first topic using the live pose (/pose) to position them in the global coordinate frame.

The trajectory topic can be used to feed an optimized trajectory from the SLAM module into the rc_cloud_accumulator. The easiest way is to start the rc_visard_driver with the parameter autopublish_trajectory set to True and call the service */rc_visard_driver/get_trajectory*. The rc_visard_driver will then send the trajectory on */trajectory*.

Building

Compilation follows the standard build process of ROS. You can also do the regular cmake cycle:

To build a debian package replace the last two steps with

Running

After starting the rc_visard_driver, execute

rosrun rc_cloud_accumulator rc_cloud_accumulator

Example with parameter:

rosrun rc_cloud_accumulator rc_cloud_accumulator _voxel_grid_size_display:=0.01

Known Bugs

Point Cloud Filters

For performance reasons the point clouds are by default filtered in several stages. The filters are parameterized via ROS parameters. All filters can be turned off using appropriate settings. See ROS Parameters for a detailed description of the parameters.

When a point cloud is received, the points will first be filtered by a minimum and maximum distance along the optical axis.

A copy of the resulting cloud will be stored in memory for later use.

The point cloud will then be transformed to the global coordinate frame and merged into the currently displayed point cloud. To keep the visualization snappy, the displayed point cloud will be filtered with a voxel grid using the parameter voxel_grid_size_display.

When the save_cloud service (see below) is used, the stored point clouds will be merged (considering pose updates received in the meantime). The result will also be be filtered with a voxel grid using the parameter voxel_grid_size_save.

ROS Services

The rc_cloud_accumulator provides the following services

ROS Parameters



rc_cloud_accumulator
Author(s): Felix Endres
autogenerated on Mon Feb 28 2022 23:24:00