How can I use the MRPT particle filter with 3D data instead of 2D?

137 views Asked by At

I am building a range-only localisation application that I would like to use an MRPT particle filter for. I am looking at the MRPT example applications:

ro-localization
pf-localization
rbpf-slam

All of these run fine on the sample data, but the resulting pose is returned in 2D only. The pf-localization sample has a use_3D_poses = true setting, but this just adds a 0 return for the Z axis.

I have tried adding Z values to the beacons, but the pose Z is always zero. How can I use the MRPT particle filter in 3D space, instead of 2D?

I am only interested in the XYZ position values of the mobile node.

How can I use my own live data? I have:

Anchor positions Distance from Anchor to Mobile node.

I am using MRPT on windows, built from source.

1

There are 1 answers

6
Jose Luis Blanco On

The different RO-SLAM and RO-localization possibilities are now better described in this page of MRPT docs.

On using pf-localization with your own data, you could directly use a custom program making use of mrpt::slam::CMonteCarloLocalization3D. Alternatively, you could stay tuned to the latest version of mrpt (git branch develop) where we'll very soon port the existing pf-localization CLI app into a C++ class in mrpt::apps. The advantage of the latter is to reuse all the log file writing, 3D scenes grabbing and online visualization, etc. But nothing prevents you to jump straight ahead and build your own app based on pf-localization as a starting point.

(Disclaimer: I'm the lead developer of MRPT)