Simultaneous Localization and Mapping Method (Part 1/3 of Robotics and AI Miniseries)

NVIDIA’s SLAM Powered Robot

Before I start talking about what SLAM is it is important to ask: “What problem is it we are trying to solve?” During my experience in FIRST Robotics, closed loop systems are easier to make function than open loop systems. That means that it is easier to make a robot do something without feedback or results. The term open loop tends to refer to a control system loop, such as PID (Proportional Integral Derivative), taking values from the outside world such as the map it is in and where it is relative to that map. You can do some complex mathematics using odometry and encoders to basically get a sense of where a robot is relative to it’s start point but this is also where you can use AI for a better solution; This is where mapping and SLAM come in, to solve this complex problem of where your robot is currently located.

Most of the implementations to solutions of these mapping problems require complex math and matrices which I do not feel confident explaining so I will leave all sources used below.

Several problems with simple odometry (the use of data from motion sensors to estimate change in position over time) is that if you move due to an outside system it is extremely hard to keep track of that movement. Let’s say you have a drone that has a gyroscope, accelerometer, and speed controllers on the rotors. Whenever you lean to move with the drone you could use the gyro and speed controllers to get an estimate of where you are pointed and how quickly you are moving in that direction. If a strong breeze comes in you might be able to use the accelerometer to tell you how much you drift but with all the possible outside factors it get’s really hard to keep track off. This is one of the reasons why the SLAM method for mapping is really so strong in my opinion. You wouldn’t have to worry nearly as much about these outside factors as long as you were working around a central landmark.

A Possible Render of a SLAM Map

Now for how SLAM basically works. The main principle behind SLAM is the simultaneous part, every time the robot does its localization and mapping procedures it does both in tandem; there is no prerequisite to running this process, the robot would learn while traversing its environment. And how it learns the environment is also why this method is so versatile. You could look for certain landmarks in the environment that the robot has a way to recognize and sense relative positioning and constantly check these landmarks. This reinforces their position and gives the robot a relative position to the environment. You could also implement a more complex version of SLAM that yields a wire map of your environment based off the edges from surfaces it can see or you could just map out faces like the image above. It’s worth noting that the robot is constantly updating the position of any landmarks, faces, edges, or features as the robot gains error and uncertainty in movement.

The SLAM method is still pretty underdeveloped relatively speaking in the robotics world, although one article I am referencing is from 2006. SLAM has a wealth of great implementations and uses. I mentioned briefly earlier that it can be used for drones that are mapping an object like a bridge or a crane while teaching the drone to avoid the bridge or crane. It could be used for any sort of automated robots, but specifically any robot that moves on a route could make use of this technology. It could be used to make Roomba’s more effective. You could use this to aid the processes, really, anywhere where computer vision is prominent.

Deviation from Odometry (Compounded Error)

Before I finish, one other interesting topic is sensor choice. There is a wide variety of options but three of the most popular would definitely be a single camera, a stereo camera system, or a LiDAR (Uses lasers to find a 3D version of the environment). All of them have their own uses and price points but I encourage any readers to look at the sensors and the differences between them because I find it very interesting.

Graph of Path and Map