Improving RTAB-Map accuracy with a scale bar

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Improving RTAB-Map accuracy with a scale bar

mlong
We are using RTAB-Map for a high precision object scanning application, and we're looking for ways to increase the accuracy.

Recently we've been looking at adding a known-length scale bar in the scene during our scan. This is a technique that laser scanning systems often use (see here). Our hope is that it could help mitigate errors that exist in our calibration. Our current setup involves multiple OpenNI sensors with manually registered RGB cameras, so calibration is becoming increasingly difficult. Filling the scene with known-length objects should allow us fix the final point cloud when we detect that a scale bar has incorrect length.

Anyone have any experience with this? Suggestions are appreciated.
Reply | Threaded
Open this post in threaded view
|

Re: Improving RTAB-Map accuracy with a scale bar

matlabbe
Administrator
Hi,

Which kind of cameras are you using? Are you using the automated calibration tool included in RTAB-Map to calibrate each camera (each pair of depth and RGB cameras)? If the depth and RGB cameras are independent (not a standalone RGB-D camerawith driver compatible with rtabmap), you can look at this ROS tutorial registering a depth camera with an external RGB camera. If better calibration doesn't fix the scale problem, you can indeed add a scale bar or a tape measure in the scanning area. Afterward, when generating the point cloud, you can measure in a 3D software (e.g., MeshLab) and re-scale the point cloud.

cheers,
Mathieu
Reply | Threaded
Open this post in threaded view
|

RE: Improving RTAB-Map accuracy with a scale bar

mlong
This post was updated on .
Mathieu,

Thanks for the response. We're using Occipital's Structure Sensor
<https://structure.io/>  paired with a Point Grey RGB Camera. We tested
several other OpenNI devices and found this to have the best accuracy. The
cameras are registered using your calibration tool (slightly modified).

 

Everything works great with one sensor (Structure + RGB). The problems start
when I add another unit. The variation in the measurements I take on the
resulting point cloud grows significantly. It seems like small errors in my
calibrations of the individual sensors are getting magnified.

 

I'll try the scale bar and let you know how it goes.

 

Thanks,

Mike

 
Reply | Threaded
Open this post in threaded view
|

RE: Improving RTAB-Map accuracy with a scale bar

nufanDK2
I'm very interested in this post.
I'm using rtab-map with Asus Zenfone AR at the moment (GREAT piece of software by the way!!) but I also have a structure sensor which I gave up on because of the missing rgb.
Can you share any insights to the process of registering, pairing and calibrating the structure with the rgb and getting it to work with rtabmap?
Reply | Threaded
Open this post in threaded view
|

RE: Improving RTAB-Map accuracy with a scale bar

mlong
This post was updated on .
Well, you will have to write your own driver that captures both images and
registers them. It's easier than it sounds if you follow Mathieu's example.
I suggest you start here:
https://github.com/introlab/rtabmap/blob/master/corelib/src/CameraRGBD.cpp#L
368

 

Calibrating your custom camera set is also exactly the same as calibrating a
Kinect/Asus Xtion/etc. You can use Mathieu's existing calibration UI.

 
Reply | Threaded
Open this post in threaded view
|

RE: Improving RTAB-Map accuracy with a scale bar

nufanDK2
That sounds really promising. Thank you so much for the link, and the info. I'll look into it as soon as I get a moment to spare 😊