1. Pi 3 B
  2. Mega
  3. 2x Encoder Motor 12VDC 299RPM
  4. MPU 6050
  5. 12V bat 2000mAh
  6. LIDAR or Kinect ?

I want to implement EKF SLAM. I have referred bot NOX ROS wandering robot, Hussarian CORE and Robotics weekend. I have achieved localisation and sensor fusion of MPU and Encoder on Mega.

For the Mapping part, I am confused as to which sensor should be used either LIDAR or KINECT? What is the advantage of using both of them?

  • $\begingroup$ Which kinect do you want to use. There is a non-neglectable differance between them... $\endgroup$ May 3, 2019 at 18:21
  • $\begingroup$ Just be aware that EKF slams are outdated these days. $\endgroup$ May 22, 2019 at 6:02
  • $\begingroup$ @ChanohPark you're joking right?? $\endgroup$
    – CroCo
    Oct 25, 2021 at 18:12
  • $\begingroup$ @CroCo Nope. Just look at the number of SLAM papers in ICRA, IROS, TRO. 90% of papers are using batch optimization-based framework. Not EKF. EKF SLAM is dying due to the difficulties in correctly estimating covariance and handling asynchronous estimations. The optimization-based framework is much more flexible and easy to do. $\endgroup$ Oct 26, 2021 at 5:22

3 Answers 3


Please see this link which will give you good idea about differences between LIDAR and Depth Cameras (Kinect is one example).


based on your SLAM application you can use LIDAR, Depth Camera, or both. Deciding factors are:

  • Cost of application; LIDAR is more expensive and higher performance
  • indoor, outdoor, or both
  • environment complexity; does it have walls only or many other objects
  • Required performance; LIDAR is faster in scanning
  • angle of scanning 360 or 120 or less ? LIDAR is wider coverage

This is a great question, as it speaks to a key design choice in robotics. For EKF, once we have odometry, another direct input is where features (landmarks) are.

For a hobbyist project, I'd say Lidar is easier to begin with. For EKF, one simple (and beginner-friendly) way is to assume everything has the same shape (cones), then use "circular regression" to recognize cones from the 2D lidar detections. The locations of the cones are ported to EKF as observations.

For more complex environment, consider particle filters. I started off with an $100 2D Lidar off of amazon, and I used ROS's navigation package (gmapping, particle filters,etc.) to get a small mobile platform running.

Depth Cameras (E.g, Intel Realsense, Microsoft Kinect) are more expensive, and 3D reconstruction can be tricky with regular cameras. I'd say for the proof of concept, Lidar is more beginner friendly and cheaper.


Using a raspberry pi you will not have enough computational power for dealing with a Kinect. Moreover, a Kinect is sensitive in general to more artifacts than a lidar.

So take the easy path and implement a LIDAR-based SLAM for now.

  • 1
    $\begingroup$ an RPi is able to process the data from a Kinect $\endgroup$
    – FooTheBar
    May 3, 2019 at 8:07
  • $\begingroup$ I meant not the Kinect itself but for the SLAM algorithm based on a kinect. $\endgroup$
    – guhur
    May 3, 2019 at 10:18
  • $\begingroup$ You can extract a single (horizontal) measurement plane from the pointcloud and use that as input for a laser-slam system. $\endgroup$
    – FooTheBar
    May 3, 2019 at 11:04
  • $\begingroup$ Is it a good idea? In my experience, the Kinect's pointcloud has a significant number of incorrect points. I guess that extracting one line would provide a wrong mapping no? $\endgroup$
    – guhur
    May 4, 2019 at 9:38
  • $\begingroup$ I would not recommend trying to use a slice of the Kinetic data as a laser unless highly experienced. The very limited field of view makes it much harder for SLAM algorithms to be effective. $\endgroup$
    – Tully
    Oct 25, 2021 at 23:11

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.