-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Fix raytracing origin #1850
base: master
Are you sure you want to change the base?
Fix raytracing origin #1850
Conversation
4020ebb
to
07c7d28
Compare
@ValerioMa this is great to see! One question though, do you have a matching version of cartographer-ros that works with these changes? Maybe I did something wrong, but I failed to build the assets_writer.cc while trying this change. |
Thanks @ValerioMa I was using a very similar fix. I am not very familiar with cartographer code, however, I was wondering why you choose to not add the origin to Also, it looks like you should updated |
Adds the laser ray origin to `RangefinderPoint` to enable correct raytracing of range data misses into a 2D probability grid also after scan accumulation. Previously, all rays were casted from their hit point to the tracking frame. This is wrong for any setup where the tracking frame is not the sensor frame and leads to artifacts in the map. Fixes: cartographer-project#947 Signed-off-by: Valerio Magnago <[email protected]>
Before the origin of the RangefinderPoint was not always initialized. This generate instable test results. This commit fixes this problem by initializing properly the origin to (0,0,0). Signed-off-by: Valerio Magnago <[email protected]>
Before the origin was not taken into account when comparing RangefinderPoint. This commit add the comparison of the origin when comparing two RangefinderPoint. Signed-off-by: Valerio Magnago <[email protected]>
4064c22
to
611a5fc
Compare
@tulku thanks for your suggestion and sorry delay! Regarding the TimedPointCloud I left it without the origin because for that purpose we have the TimedPointCloudOridinData. |
Adds the laser ray origin to
RangefinderPoint
to enablecorrect raytracing of range data misses into a 2D probability
grid also after scan accumulation.
Previously, all rays were casted from their hit point to the
tracking frame. This is wrong for any setup where the tracking
frame is not the sensor frame and leads to artifacts in the map.
Fixes: #947
Below an example of a map generated from a multiple 2D laser scanners configuration, which are not centered in the tracking frame, before and after the proposed fix. It can be seen clearly that the previous version of the software was cutting and cleaning the corners of the map due to the imprecise origin used for raytracing. This caused the exclusion of large structures from the map.