provide world map for ekf global localization problem

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 '18 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 '18 at 22:17

1) Convert the line to $$y = mx + c$$ form and include m and c values in the state matrix. However this doesn't provide the limits of the line.