I have run a code to extract features from lidar scans like poles and facades, and I created the reference map just concatenating results from each scan (i.e local map) now my question is; How can I run map matching algo to get the robots poses?
1 Answer
Concatenation will work only if your positioning/localization is super precise which is seldom the case. What you want to be doing is scan registration. ICP and NDT are the two most widely used registration techniques which you can speed up by matching only the features you are extracting. In scan registration, your sensor gets a scan (from which you will extract features) and match them to the next scan which will give you a pose between them. So if you know your starting pose, you can get your new pose!
Of course you will find a lot of resources using C/C++, but PCL has a python version of icp which I haven't used. So if you do end up using it, please let us know!
Finally, if you are working within ROS, there are several packages/projects that can perform SLAM for you like rtabmap, hector_mapping, etc.
-
$\begingroup$ thanks a lot you feed me, but what is the difference between scan registration and map matching $\endgroup$– ANAS.CApr 28, 2021 at 0:52
-
$\begingroup$ scan registration is one (and the most widely used) technique to achieve map matching. Map matching is a generic term $\endgroup$ Apr 28, 2021 at 17:55
-
$\begingroup$ oh, now it's clear for me, scan registration is a method from the concept of map matching $\endgroup$– ANAS.CApr 29, 2021 at 14:58