mrpt-ros-pkg / mrpt_slam

ROS wrappers for SLAM algorithms in MRPT
http://wiki.ros.org/mrpt_slam
BSD 3-Clause "New" or "Revised" License
114 stars 49 forks source link

RPBF slam with landmarks as input #74

Closed BrunoBerger closed 1 month ago

BrunoBerger commented 1 month ago

Is it possible to build to run the rbpf slam with only Landmarks? The rbpf documentation only considers input from laserscans or beacons , but this the wording in issue #33 and the ini file makes it seem like it might be possible.

So I took the RO-SLAM_demo.ini and changed these parameters

# Creation of maps:
occupancyGrid_count=0
gasGrid_count=0
landmarksMap_count=1
pointsMap_count=0
beaconMap_count=0
# Selection of map for likelihood: (FuseAll=-1,occGrid=0, points=1,landmarks=2,gasGrid=3,beaconMap=4)
likelihoodMapSelection=2
# Enables (1) / Disables (0) insertion into specific maps:
enableInsertion_pointsMap=0
enableInsertion_landmarksMap=1
enableInsertion_gridMaps=0
enableInsertion_gasGridMaps=0
enableInsertion_beaconMap=0
pfOptimalProposal_mapSelection=1

But I get an error that roughly says: Client [/mrpt_rbpf_slam] wants topic /sensor_source-topic to have [sensor_msgs/LaserScan/], but our version has [mrpt_msgs/ObservationRangeBearing] It would be fine if I also need a laserscan message as my main goal is to get a landmark map as output, but loading them both into sensor_source, separated by a comma did not work.

Did I miss any configuration options or is it not possible to input landmarks?

jlblancoc commented 1 month ago

It's possible for EKF 2D and 3D versions. But RBPF with landmarks was never implemented upstream in MRPT, for the reasons in #35. There you could see ideas on how to make it, if feel interested...

At present I don't have bandwidth for that task with so many other more modern SLAM packages in active development...

If you want to implement them, ping me if in doubt, and of course, PRs are welcome!

Also, note that this whole mrpt_slam ROS repository was not ported to ROS 2, so everything here is for ROS 1 only...

BrunoBerger commented 1 month ago

Ah okay, thank you for the clarification