OctoMap / octomap

An Efficient Probabilistic 3D Mapping Framework Based on Octrees. Contains the main OctoMap library, the viewer octovis, and dynamicEDT3D.
http://octomap.github.io
1.92k stars 658 forks source link

Ground removal and dynamic objects #317

Open aled96 opened 3 years ago

aled96 commented 3 years ago

Hi,

I am using octomap to obtain the map of the environment from a Velodyne sensor. I need also to consider the occupancy grid generated but, the points of the ground are considered as obstacles, so the area around the robot is "occupied":

Screenshot from 2021-01-22 10-37-42

I thought to define occupancy_min_z and pointcloud_min_z in order to not consider the ground but, I read that the ground is needed to deal with dynamic/moving objects.. otherwise they remain in the cloud even if they are moved from the scene.

So, how can I be able to obtain a map and a 2D grid that do not consider the ground points as obstacles and updates fast with moving elements?

Thank you !

ahornung commented 3 years ago

The parameter you mention is specific for the octomap_server ROS node, so I think you're using that one and not a "vanilla" OctoMap?

The mentioned filter quickly filters the point cloud (end points) based on their z value, so the corresponding rays are no longer available also for clearing. You should use the ground filter (enable filter_ground) instead, as described here: http://wiki.ros.org/octomap_server

aled96 commented 3 years ago

Yes, I am working with octomap_server in ROS. I tried to use filter_ground but I always obtain errors like "no plane can be found" or "not enough inliers", even if I defined ground_filter/distance and ground_filter/plane_distance in order to match the actual position of the ground