ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Combine position estimates from Lidar SLAM and PTAM

asked 2016-04-10 15:20:37 -0600

andythepandy93 gravatar image

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 flag offensive 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) ?

al-dev gravatar image al-dev  ( 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)

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

2 Answers

Sort by ยป oldest newest most voted

answered 2016-04-11 01:03:38 -0600

al-dev gravatar image

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.

edit flag offensive delete link 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!

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

answered 2016-04-11 16:21:58 -0600

davelkan gravatar image

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

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2016-04-10 15:20:37 -0600

Seen: 648 times

Last updated: Apr 11 '16