Global Localization (Kidnapping)

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

Global Localization (Kidnapping)

koonhan
Hello,

I have been testing RTABMap's global localization as a solution to the kidnapping problem.

My robot is equipped with a D435i and a lidar.
Odometry is fused using robot_localization comprising of VO, IMU, wheels.

Our simple global localization (kidnapping) test is as follows:
1) Load the rtabmap db and localize the robot on rviz
2) Give a false pose to the robot on rviz (kidnapping)
3) Teleop the robot around to allow RTABMap to do global localization

Thus far, our observations are that the global localization does not seem to trigger.
We expect the global localization to "snap the robot" into the "true global pose" on the map, thus solving the kidnapping problem.
This behaviour is something we have been able to achieve using orb slam2 on the same robot.  

Could I get your advice on what I can tune to allow for this global localization behaviour?

The params used are as follows:

Grid:
  RayTracing: true
  MaxObstacleHeight: 1.5
  FromDepth: false
  3D: false

Odom:
  Strategy: 0 # F2M

Reg:
  Force3DoF: true

Vis:
  MinInliers: 30 #50
  FeatureType: 2   # ORB

Kp:
  DetectorStrategy: 2   # ORB

The db used is as follows:
https://drive.google.com/file/d/1AIqjZc5mHrlrpfVX9xtcuzfNZ3BtJmrn/view?usp=sharing

Output map is:
Reply | Threaded
Open this post in threaded view
|

Re: Global Localization (Kidnapping)

matlabbe
Administrator
Hi,

there could be warnings in the terminal that a loop closure has been rejected. This could tell at least that a localization has been detected, but for some reasons the transformation could not be computed (e.g., not enough matched features).

I assume that you restarted rtabmap in localization mode?

Mem:
  IncrementalMemory: false

Note also that global localizations will happen only if the robot passes close to a localization in the map with same orientation.