Hi Derek,
With subscribe_scan_cloud=true and topic scan_cloud remapped to your unfiltered pointcloud, rtabmap could use it for mapping/localization.
For the occupancy grid, there are currently no input topics for this. This could be indeed a convenient new option when the current segmentation approaches (based on normals (default) or by passthrough filter) cannot be used or are not appropriate for the application. We would need however to think what is the best approach to input that kind of info. My first thought would be to extend
RGBDImage topic with PointCloud2 msgs for obstacles, ground and empty cells. The idea is to avoid another layer of optional topics to be synchronized for rtabmap node. The user would have to synchronize himself the topics into a RGBDImage msg and provide that RGBDImage to rtabmap node.
The above however destroys the purpose of RGBDImage that is visual-only. To avoid the user to have to synchronize himself the topics, we would need to add a new msg type "rtabmap_ros/LocalOccupancyGrid" and add it to
all possible subscribers of rtabmap node (when a parameter called subscribe_local_grid=true). This requires significantly more works to implement but it would be more general I think. The msg could be:
Header header
sensor_msgs/PointCloud2 obstacles
sensor_msgs/PointCloud2 ground
sensor_msgs/PointCloud2 empty
float32 cell_size
# the grid viewpoint would be computed from the frame_id set in the main header
On rtabmap library side,
this would have to be moved up before the first if so that if the input SensorData has already occupancy grid set, we don't regenerate it.
cheers,
Mathieu