MonoSLAM Simulation – Unity3D [Part 0]

Immersive technologies have been my focus of work since my graduate studies. My thesis was on enabling passive haptics and point of interest synchronization in Redirectred Walking (let me know if you’d like me to talk about that) and my job has greatly been focused on improving AR technology. Naturally, I’ve been most fascinated by the way these technologies work. I learned the basics, on how immersive tech utilizes SLAM to track position and orientation in real world, but never really got into the roots of the problem. It’s like knowing the recipie, but never actually cooking the food. In my case, I dont know the recipie all that well either. So, I’ve been hungry for this a long time and want to implement SLAM once and for all! This is going to be amazingly fun and awesome!

My pick for implementing SLAM is this paper called MonoSLAM. It uses a single camera sensor to map and localize the camera in 3D space. I picked this paper as it has over 4000 citations! And also, its extremely well detailed and provides example code if I get lost.

SLAM is simultanious localization and mapping. Localization is knowing the position and orientation of camera in real world and mapping is storing information about the environment in memory, so it can be cross referenced. Implementing is not all that easy, atleast for me, as it depends mainly on statistics. More specifically the following topics:

  1. Gaussian/Normal Distribution
  2. Multiviarient Gaussian Distribution
  3. Kalman Filter
  4. Extended Kalman Filter

These are the ones I came across so far. It also requires good knowledge of 3D math, which, fortunately I’m a little well versed in. In order to give a complete view of theMonoSLAM process, I’ll be learning some of these concepts myself. Hence I’m dividing this into a multi part post, where I’ll post stuff as I learn them.

Expect the first couple of posts to be theory. I wont bore with the details, rather I’ll keep it as simple as possible and talk more about the pillars that need to be setup on which the algorithm works on. I’m currently thru my third read of the paper and starting to pick up on how to shape this in Unity3D. It’ll be much easier than real world implementation, as there is no distortions and camera calibrations that I need to deal with.

Anyway, I think that is all I have for this weeks post. Keep your eyes out for the next week’s post, It’s going to be a ride!

Leave a Reply

Your email address will not be published. Required fields are marked *