📄 readme
字号:
*********************************************************************** gridsim2 -- occupancy mapping simulation with a generic sensor model* Kris Beevers* beevek@cs.rpi.edu* 11/08/2006**********************************************************************This code implements a simulation for the environment, robot, andsensor models described in the following publications:K. Beevers and W. Huang. How sensing capabilities influence mapquality. Submitted to ICRA 2007.K. Beevers. Mapping with limited sensing. PhD thesis, RensselaerPolytechnic Institute, January 2007.The main purpose of the simulations is to validate our analyticalbounds.Too see some of the parameters you can set, run ./sim --help aftercompiling. (To compile, just run make.) Most of the parameters arefor the sensor model. You can also specify an existing environmentfile (pgm format), or set some parameters for how to generate theenvironment, e.g., independent cell occupancy probabilities, or MRFmodel with Gibbs sampling. There are some example MRF models (*.mrf).You can also specify the type of trajectory, either is a pre-generatedpose sequence, a waypoint file to be fed to a simple controller, orrandom generation of either a realistic trajectory (based on thesimple controller) or just a set of random poses. Our analyticalmodel uses random poses but the simulations show that there isgenerally not much difference in map error between random poses and amore realistic trajectory.There are a variety of configuration files with different sensor modelparameters. These correspond to the synthetic sensors described inthe paper.Unless the --nofiles option is specified, the simulation outputsseveral images in pgm format: * grid.pgm: the ground truth map * map.pgm: the occupancy map produced by the sensor model * map-ml.pgm: the maximum likelihood map * possible.pgm: the best possible map (recognizes occluded cells) * real-freq.pgm: the true frequency of observations of each cell * update-freq.pgm: the frequency of updates of each cellThe simulation also prints out several numbers. In order these are: * the actual ground truth grid density * the entropy of the ground truth grid with respect to 4-neighbors * squared error of map.pgm wrt grid.pgm, i.e. sum(abs(map[i]-grid[i])^2) * squared error of map-ml.pgm wrt grid.pgm * mean num. real observations of each cell * mean num. updates of each cell * mean ratio of real observations to updatesNote that in computing the squared error of the maximum likelihoodmap, a fair coin is flipped for cells with likelihood ~1/2 todetermine the ML occupancy.As the code is fairly short and simple, the best way to get an idea ofwhat is going on is to simply browse it.There are also a few simple utility programs: * diff: compute the difference between two pgm grids * gridstats: compute density and 4-entropy of a pgm grid * maxmap: compute the ML map from an occupancy grid * montecarlo.pl: run a bunch of simulations (see the code) * model_error3.m: matlab implementation of the bounds from the paper * makefigs2.m: makes some plots from simulated data * real_sensors.m: applies analytical model to realistic sensors * makerobot.m: makes a picture of the sensor for given parameters(Other matlab scripts are mainly supporting code.)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -