I am working with ROS indigo and clearpath huskyA200 and wanted to implement the EKF localization with unknown correspondences with my own hokuyo lidar data for a school project. Giving the algorithm in page 217 of the probabilistic robotics book by Thrun. (Picture of the algorithm is given below), what does step 9 mean by “for all observed features”, does it mean all the raw data in a lidar scan? Or does it mean to process the raw data first to find the features? If it’s the latter, what would be some technique to process the raw data to find features?

This stackoverflow post helped me understand this algorithm a lot better, but now, i am just not sure how to provide the observed feature with my own lidar scan data.

Any help is appreciated, thank you.

table 7.3 part 1 part 2

  • Welcome to Robotics, BOB! This is a great question and I'm excited to see the answers that are given. – Chuck Aug 7 at 20:35
  • Please upload images via StackOverflow. – CroCo Aug 7 at 21:33
  • @CroCo I re-uploaded the pics using google drive. It's table 7.3 from the book, also, it's the images from this robotics.stackexchange.com/q/3073/20881 post – BOB Aug 7 at 22:11
  • @CroCo would you mind sharing on how you obtained the observed feature when you implemented this algorithm? – BOB Aug 7 at 22:35
  • @CroCo - I put the pictures in the post. – Chuck Aug 8 at 12:47
up vote 0 down vote accepted

It should be processed features. Extracting features from raw data is usually called as front-end in SLAM. The easiest forms of features in cased of 2D LiDAR are corners, edges, and lines. You can run RANSAC algorithm to find line segments. Corners are found by intersection of lines and edges are ends of lines. Corners should be enough for a uni project.

ICP can be utilized to register raw scans but that becomes a different type of SLAM.

  • Thank you for your answer. Currently, there are 6 landmarks in my simulation and they all have (x, y) coordinates, and that's my m input for this ekf algorithm. Say I do use the RANSAC to find line segments, then how would I provide the given map (m)? – BOB Aug 7 at 22:26
  • All the observations at $i$th frame are represented in that local robot frame. If you have a prediction of the robot location of that frame then you can transform these m points in the world map to the local $i$th frame. This operation should be equation 12. If your prediction of the robot location is accurate then the transformed global features are located very close to your local features. – C.O Park Aug 8 at 0:14

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.