ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Improve quality of octomap with params

asked 2012-08-21 01:19:38 -0600

jep31 gravatar image

updated 2012-08-21 01:25:53 -0600


I have built a octomap with ocotmap_server. It's a map with mobile objects so it's necessary to actualize frequently. Unfortunately some octomap points doesn't remove themselves. So I look for better parameters in the launch file.

I have well set latch like true but anything change. I want modify "sensor_model/hit, sensor_model/miss, sensor_model/min and sensor_model/max". I have seen the topic Octomap_server but I don't understand descriptions of parameters.

what does you mean each of them and How I should modify this parameters to select fewer points ?

edit retag flag offensive close merge delete


There is the service reset, it's good but I would a same result without call this service in each loop. I don't want memory.

jep31 gravatar image jep31  ( 2012-08-21 22:30:24 -0600 )edit

If you want no map "memory", then why are you mapping at all? Why not simply converting the point cloud into a voxel grid?

AHornung gravatar image AHornung  ( 2012-08-22 04:48:07 -0600 )edit

Its true, so octomap is mainly used to a static map ? I should use somethings like collider package for find mobile objects ?

jep31 gravatar image jep31  ( 2012-08-28 20:46:35 -0600 )edit

@AHornug, is there a way to convert pointcloud to voxel grid?

Gazer gravatar image Gazer  ( 2013-07-10 14:30:41 -0600 )edit

@Gazer: You need to do that yourself

AHornung gravatar image AHornung  ( 2013-07-10 22:12:26 -0600 )edit

@AHornung: I am wondering could you please help me out on this question? thank you

Gazer gravatar image Gazer  ( 2013-07-11 05:29:23 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2012-08-22 04:46:58 -0600

AHornung gravatar image

For the map to react more quickly to changes, the sensor_model parameters are indeed the right ones to tune. For a detailed description, please read the OctoMap paper available at or an introduction on occupancy grid mapping.

Essentially, each endpoint increases the probability that a voxel is occupied by sensor_model/hit, each other voxel's probability along the ray to the endpoint is decreased by the probability of sensor_model/miss. The minimum and maximum probabilities are given by the thresholds sensor_model/min and sensor_model/max. All operations are performed in log-odds space, so the probabilities are added (hit) or subtracted (miss) until they reach min or max in log-space. If you increase the hit probability and decrease the miss probability, it will make the map trust the sensor more after one measurement. If you increase min and decrease max at the same time, this will enable fast updates at the cost of more sensor noise appearing in the map.

The latch parameter only affects the publishing of visualizations, if your map changes often best set it to false.

edit flag offensive delete link more


Thanks, I understand better. But I don't see a lot of difference.

jep31 gravatar image jep31  ( 2012-08-28 20:44:04 -0600 )edit

@jep31, so do you find a way to optimize the 3d map generated by octomap then? I am having the same issue as the 3d map published from octomap will never updated (never erased or self-correct iteself). Thank you for your contribution!

Gazer gravatar image Gazer  ( 2013-07-10 14:30:14 -0600 )edit

You need to ensure that there is actually something that can be used to clear, i.e. an obstacle (floor, table surface etc) is seen behind the voxel that you expect to disappear.

AHornung gravatar image AHornung  ( 2013-07-10 22:13:56 -0600 )edit

I'm not working on it for long time but you can maybe try this to remove NaNs:

jep31 gravatar image jep31  ( 2013-07-15 03:37:18 -0600 )edit

Question Tools



Asked: 2012-08-21 01:19:38 -0600

Seen: 3,720 times

Last updated: Aug 22 '12