wrong localization when using multiple depth cameras

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

wrong localization when using multiple depth cameras

TOM_RB
This post was updated on .
Hi Mathieu,
I am very grateful for your assistance ..

I am sorry i should have explained more about what i am exactly trying to do. The plan is to map the entire environment, (the robot will operate in whole floor with dozen rooms) and then use the saved map for autonomous navigation to certain setpoints.
The 3 depth cameras  are placed in a pi configuration (front - left and right D435i cams). The problem I am facing now is that rtabmap is making false loop closure detection by comparing a current camera observations with observations recorded by another camera.
For example, if camera A is observing the same view previously recorded by camera B, a loop closure is detected without making any transformation. this results in wrong localization (I could tolerate few centimeters of error but the orientation now has an error of 90 or 180 degrees).
How can i configure the loop closure mechanism to make the correct transformation when this happens.

Also , I would really appreciate your advice  about these other issues:
-  3d to 2d mapping: does this have anything to do with rtabmap or should I look into other tools? do you have any recommendations regarding this matter? I am planning to use the 2D mapping for obstacle avoidance and path planning. I think it's much easier to do with 2D maps. Maybe I am wrong but most demos I checked online seem to use 2D maps for obstacle avoidance and path planning.

Thanks and best regards

note : i have changed and add some parameters after my last topic (new launch file in the link below) - if you can please take a look on them..

pi configuration of 3 D435 CAMERAS  :

my launch file : demo_3d_1t.demo_3d_1t

TOM SMITH
Reply | Threaded
Open this post in threaded view
|

Re: wrong localization when using multiple depth cameras

matlabbe
Administrator
Hi,

TOM_RB wrote
For example, if camera A is observing the same view previously recorded by camera B, a loop closure is detected without making any transformation. this results in wrong localization (I could tolerate few centimeters of error but the orientation now has an error of 90 or 180 degrees).
Normally, the resulting transformation should be in the reference frame if the TF between the cameras and base frame is ok. For example, if you come back in inverse direction, the right camera may loop on an image taken from the left camera previously, the resulting transform would be 180 deg in base frame (the robot is inverted 180 deg).

If you have a database to share with a wrong loop closure, I could take a look.

cheers,
Mathieu