I am trying to implement the ekf_localization algorithm in page 217 (Table 7.3) of the probabilistic robotics book by Thrun.

From my previous post, I understand that I need to extract observed features on step 9 of the algorithm given in the book. So I am planning to use a line extraction algorithm (https://github.com/kam3k/laser_line_extraction) to extract lines, then find the center point of the line and use that point as my observed feature in step 9.

Click part1 part2 to see table 7.3.

Now, I am having trouble understanding what is the map (m) input.

Since, the ekf_localization algorithm assumes that the map is already giving, and let’s say figure 1 is the actual map that my robot will navigate in. Does this mean, that m consist of points in the world coordinate frame and that I can manually choose them? For example, the dots in figure one are my point landmarks that I provide for the algorithm (m = {(2,2), (2,4), 5,1), (5,2), (5,3), (6,2)}). If so, how many points should I provide?

Be great if you could help C.O Park.

  • I recommend you to run an ekf slam tutorial code and analyse it. There is a perfect one for you: robots.ox.ac.uk/~SSS06/Website/index.html It is the simplest EKF SLAM but quite well coded and easy to read if you know matlab. I am sure the most of your implementational questions will be easily answered by looking at this code. – C.O Park Aug 9 at 22:11
  • By the way, the center point of the line is not a good feature as it changes when part of the line is not observed. – C.O Park Aug 9 at 22:17

I can manually choose them? -> Generally, that process is called as "matching" or "data association". You can do it manually as well. The simplest solution is finding closest map point of your estimated point by Euclidian distance. You will find other probabilistic methods in the later part of the book.

One point is the minimum but could be unstable or not that accurate. (I am not sure actually. You need to double check.) Two points will be sufficient to determine distance and rotation. The more, the better.

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.