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.
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 existingpf-localization
CLI app into a C++ class inmrpt::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)