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

  • 1
    $\begingroup$ Welcome to Robotics, BOB! This is a great question and I'm excited to see the answers that are given. $\endgroup$
    – Chuck
    Aug 7, 2018 at 20:35
  • $\begingroup$ Please upload images via StackOverflow. $\endgroup$
    – CroCo
    Aug 7, 2018 at 21:33
  • $\begingroup$ @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 $\endgroup$
    – BOB
    Aug 7, 2018 at 22:11
  • $\begingroup$ @CroCo would you mind sharing on how you obtained the observed feature when you implemented this algorithm? $\endgroup$
    – BOB
    Aug 7, 2018 at 22:35
  • $\begingroup$ @CroCo - I put the pictures in the post. $\endgroup$
    – Chuck
    Aug 8, 2018 at 12:47

1 Answer 1


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.

  • $\begingroup$ 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)? $\endgroup$
    – BOB
    Aug 7, 2018 at 22:26
  • $\begingroup$ 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. $\endgroup$ Aug 8, 2018 at 0:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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