Hi author,
Thanks for your hard work !
I have a question about dynamic_point_indexes returned by calcDescrepancyAndParseDynamicPointIdxForEachScan() function.
We use calcDescrepancyAndParseDynamicPointIdx() to parse dynamic points for each kscan. https://github.com/irapkaist/removert/blob/828753fed2aeb714b1af513eb06fd353cd4e0b5d/src/Removerter.cpp#L568
Every point in map_local_curr_, whose index in map_local_curr_ is stored in the corrresponding row and col pixel of map_rimg_ptidx. map_local_curr_ is the map points converted into the kscan's frame using transformGlobalMapToLocal(idx_scan);
Question:
It seems that when we call auto [map_rimg, map_rimg_ptidx] = map2RangeImg(map_local_curr_, kFOV, _rimg_shape); to calculate every point's index of map_local_curr_ point cloud, should be index of map_global_curr_ point cloud, not in
index of map_local_curr_ point cloud ?
first reason:
Because when we for_each scan Done, we use std::set<> to remove repeated indexes makes sense, otherwise, even if dynamic_point_indexes has duplicated number, they maybe different. For example point_a index comes from map_global_curr_ converted into mscan, point_b index comes from map_global_curr_ converted into nscan, their index are the same , but they are different points in map. Similarly, different index points may be the same point in the map.
https://github.com/irapkaist/removert/blob/828753fed2aeb714b1af513eb06fd353cd4e0b5d/src/Removerter.cpp#L582-L584
second reason:
When we parseDynamicMapPointcloudUsingPtIdx(), we use map_global_curr_, the line 441.
Sorry, it's a mistake, pcl::transformPointCloud(*map_global_curr_, *map_local_curr_, base_pose_inverse); , input point cloud and output point cloud's index do not change, so the code is correct, close it now.
Hi author, Thanks for your hard work ! I have a question about
dynamic_point_indexes
returned bycalcDescrepancyAndParseDynamicPointIdxForEachScan()
function. We usecalcDescrepancyAndParseDynamicPointIdx()
to parse dynamic points for eachkscan
.https://github.com/irapkaist/removert/blob/828753fed2aeb714b1af513eb06fd353cd4e0b5d/src/Removerter.cpp#L568 Every point in
map_local_curr_
, whose index inmap_local_curr_
is stored in the corrresponding row and col pixel ofmap_rimg_ptidx
.map_local_curr_
is the map points converted into thekscan
's frame usingtransformGlobalMapToLocal(idx_scan);
Question: It seems that when we call
auto [map_rimg, map_rimg_ptidx] = map2RangeImg(map_local_curr_, kFOV, _rimg_shape);
to calculate every point's index ofmap_local_curr_
point cloud, should be index ofmap_global_curr_
point cloud, not in index ofmap_local_curr_
point cloud ?Because when we for_each scan Done, we use
std::set<>
to remove repeated indexes makes sense, otherwise, even ifdynamic_point_indexes
has duplicated number, they maybe different. For examplepoint_a
index comes frommap_global_curr_
converted intomscan
,point_b
index comes frommap_global_curr_
converted intonscan
, their index are the same , but they are different points in map. Similarly, different index points may be the same point in the map. https://github.com/irapkaist/removert/blob/828753fed2aeb714b1af513eb06fd353cd4e0b5d/src/Removerter.cpp#L582-L584parseDynamicMapPointcloudUsingPtIdx()
, we usemap_global_curr_
, the line 441.I' m not sure i totally understand code correctly and not miss something, look forward to disscuss with you ! Thanks for your time! https://github.com/irapkaist/removert/blob/828753fed2aeb714b1af513eb06fd353cd4e0b5d/src/Removerter.cpp#L436-L448