Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question about monosub parameters #10

Open
cdondrup opened this issue Nov 2, 2018 · 1 comment
Open

Question about monosub parameters #10

cdondrup opened this issue Nov 2, 2018 · 1 comment

Comments

@cdondrup
Copy link

cdondrup commented Nov 2, 2018

Hi,

We are currently looking into navigation for our robot and came upon your code. It looks very promising and might do exactly what we need to do. The ORB SLAM works just fine but we are currently struggling to generate the 2D map. Could you elaborate a bit on the parameters used by monosub, i.e.: scale_factor, resize_factor, cloud_max, cloud_min, free_thresh, occupied_thresh, use_local_counters, visit_thresh, grid_max, grid_min, grid_size, output_size, norm_factor_x, norm_factor_z? Information about what they represent exactly and how they correspond to the properties of the used camera would be most helpful. Thank you!

@jahaniam
Copy link
Collaborator

jahaniam commented Nov 3, 2018

Hi,
Glad it might be helpful for you. If your robot has lidar/RGBD camera I suggest using it and do gmapping instead. If your only sensor is monocular camera then I'd suggest to look into this project or write your own 2d map generation.
I can't quite remember exactly but I think some of them are as follow, which might be help to you. It is always better to go and check the code:

scale_factor since it is monocular, information about scale is not provided orbslam. This is the variable that you can adjust wrt to the scale of the real points! In other words, it is theactual scale you convert from orbslam units to meter.
resize factor is just a resizing of the final 2d grid map image! (it won't affect the 2d mapping process. you can use it when the map is so big for your screen to be shown)
cloud_max, cloud_min was the min and max height of the 3d point cloud! This is to find out the size of the grid map !

x = cloud_max_x*scale_factor;
grid_min_x = cloud_min_x*scale_factor;
grid_max_z = cloud_max_z*scale_factor;

grid_min, grid_max will be calculated usingmax point cloud values in your 3d point clouds! It basically is a measure of how big is your map (by using scale factor you can actually change it into meter or you can change the resolution of the grid map)

**free_thresh, occupied_thresh** This method is based on gmapping idea. for each cell we have the ration of how many times a cell has been seen as an occupied cell over how many times it has been seen. a cell is considered free cell, if that ratio is below the free_threshold and it is considered occupied if the ratio is more than occupied_thresh and if it is between it will be considered as an unknown(not descided yet).
use_local_counters There is an issue in projecting 3D points into 2d plane which was discussed in section 3.2.2 of report
it is better to use this approach.
'visit_thresh' since the points are noisy in orbslam and some of them are being removed in latter frames we used this theshold not to account for cells that has low visiting times. In order to decide if a cell is occupied or not no matter what is the ratio, it needs to be seen as many as 'visit_thesh' to take into consideration.

'grid_size': grid size is just a grid size of the 2d map at the end.

double grid_res_x = grid_max_x - grid_min_x, grid_res_z = grid_max_z - grid_min_z;
 h = grid_res_z;
 w = grid_res_x
 printf("grid_size: (%d, %d)\n", h, w);

'output_size' : is just the size after applying 'resize_factor'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants