# Combine position estimates from Lidar SLAM and PTAM

Hi all,

I have an AR drone with a Lidar attached. I have hector_slam running giving out a position estimate for the drone which is working fine. I also have a PTAM node running which is also spitting out a position estimate.

What is the best way to combine these position estimates to give a best guess for the location of the drone?

edit retag close merge delete

Are you using these 2 SLAM algorithms to estimate motion increments (local pose estimation) or to estimate a "fused map"+pose within the fused map (map+global pose estimation) ?

( 2016-04-10 17:15:12 -0600 )edit

hector_slam is building up a map as it goes along and giving out that map and a pose estimate. The PTAM slam is working out increments I think as it gets its key points when it starts up and then goes from there, (it also uses control inputs for the drone for the pose estimate)

( 2016-04-10 18:17:08 -0600 )edit

Sort by » oldest newest most voted

It seems that you are running 2 SLAM algorithms in parallel which is a bit confusing, but you could still try one of the following :

1) The output of SLAM is {map+global pose estimate} so you actually have 2 different maps with 2 different global pose estimates. There is no trivial way to fuse all these directly AFAIK. I guess if you are not interested in fusing the maps, you could take one of them as a reference and then just fuse the global pose estimates through an EKF/UKF via the robot_localization package.

2) If one of these 2 SLAM algorithms was using odometry as an input and you already had a source of odometry (e.g wheel odometry, visual odometry...) you could try to use the other SLAM algorithm to provide an alternative odometry estimate, and then fuse it through an EKF/UKF with your existing odometry. Then give the "improved" (?) odometry estimate to your second SLAM algorithm.

For instance, hector_slam can provide such an odometry estimate via the undocumented pub_odometry parameter, see this question

The problem here is that none of the two SLAM algorithms you mentioned - I am less familiar with PTAM though - use any source of odometry... You could try to modify hector_slam to use odometry but that requires some work, see this question. As for PTAM, I don't know.

more

Okay great there's lots to think about in there, thanks. I had heard of the pub_odometry parameter but not looked into it so will give that a look. Also just looked at the robot_localization package and it looks good. Cheers!

( 2016-04-11 17:19:23 -0600 )edit

Not sure about this situation specifically, but in general robot localization is a great tool for fusing pose estimates

more