I have been recently studying about the SLAM family of algorithms, with the idea of implementing some for a multi-robot framework I have. With regards to the concept, I have a couple of related questions. For the sake of the questions, I am assuming a camera based SLAM framework.

  1. I read that bundle adjustment in SLAM is usually performed in the pose graph formulation of the problem (say, when a loop closure is detected, or when keyframes are added), as opposed to the EKF type of SLAM. Is that correct? How can a pose graph formulation/BA framework keep track of the covariances of the robot(s)? Assuming I am not interested in the uncertainty of the map points, but only the quality of the poses of the robot(s).

  2. Assuming I have a known map of 3D points, and a robot that is navigating by observing these points, while computing its pose through the PNP algorithm or an equivalent. Is it possible to refine each pose individually by solving the non linear least squares problem of minimizing the reprojection error?

  3. If I have multiple sensors on the robot, or if I have multiple robots with access to relative measurements, the conventional way of performing sensor fusion or fusion between relative and individual measurements (covariance intersection etc.) is usually geared towards a Kalman filter framework. Can additional information such as this be incorporated in a graph based SLAM as well?


An answer to Question 2: Yes, you can refine each pose individually. PNP algorithm needs 3D-2D correspondences. Since your 3D points are known, if their corresponding pixel positions in one particular image are known, then the camera pose for that image can be solved by PNP. It is used by the researchers of this paper: https://www.graphics.rwth-aachen.de/publication/0315/

The way to find the correspondence in your case in a computer vision problem. You can compute 2D image feature descriptors while forming the 3D map and assigning these features to the 3D points. Let's call them $F_1$. Compute descriptors $F_2$ for any new image, whose pose you need to compute. Match these descriptors and then you have correspondences.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.