A new floor sweeping robot was added to the house, and my mother was amazed at it: a machine the size of a plate, it started work as soon as it entered the door, it was hard work. So what technology has allowed the smart IQ of the sweeping robot to occupy the high ground? Looking at the product introduction of sweeping robots, you will find a term that is used by many sweeping robots-"Simultaneous Localization and Mapping" (Simultaneous Localization and Mapping, SLAM) technology.
What is SLAM? First of all, let us "traverse" to become a sweeping robot to start talking about. As a sweeping robot, after entering an unfamiliar space, if you want to complete an automatic sweeping task, what tasks need to be completed?
a) Who am I and where am I? How to quickly achieve positioning and understand your relative position in the environment;
b) Where do I come from and what is around? How to construct a map of the surrounding environment in real time, and perceive where there are obstacles and walls? Relying on the positioning of map information is meaningful;
c) Where do I go and how should I go? With a map and a location, how to achieve path planning without hitting the wall, repeating the road, or missing every corner?
The above three problems are the "ultimate philosophical problems" that a sweeping robot uses SLAM to solve (in fact, strictly speaking, SLAM only includes the first two problems, and some AR application scenarios do not include path planning problems. Here we use Sweeping robot introduces SLAM problem, let’s talk about it together.)
The essence of SLAM technology lies in "S"——Simultaneous, which means "on the other side..." in Chinese, while acquiring one's own position and answering the question of "where am I", while constructing a map and answering "where am I from" , What's around" question. In order to better let everyone understand the meaning of this "S", we are divided into two sides. First, let's take a look at the past and present of SLAM technology:
The technical thinking of SLAM can be traced back to the positioning of submarines in the military field. Unlike surface ships that can easily navigate and locate through GPS, visual observation, etc., submarines have to dive to deep sea activities without sunlight when performing tasks (this is well understood, floating on the surface or in shallow waters will lose the submarine’s Significance~), it is difficult to directly locate and navigate through traditional methods. Therefore, in order to carry out tasks normally, most submarines use INS (inertial navigation) and APS (underwater acoustic navigation) for joint positioning, plus track mapping and chart data to estimate the approximate ship Location, the process of positioning, adding, and drawing a map like this is the embryonic form of SLAM technical thinking.
Just like submarines, robots cannot always rely on GPS, especially sweeping robots used in indoor scenarios. GPS has an accuracy of a few meters outdoors. Relying on GPS cannot allow sweeping robots to safely avoid the legs of the coffee table and clean the sofa. bottom. Relying on SLAM technology, they can observe and map the surrounding environment on their own, build a navigation map through sensor data calibration, and then understand where they are, where they should go to sweep the floor or go back to the corner to charge. We can summarize the simple technical thinking of SLAM: Without prior knowledge, the surrounding environment information can be acquired through sensors, and the environment map can be constructed quickly and real-timely, and at the same time, it can solve its own position and complete subsequent tasks such as path planning on this basis. Does it sound simple? But in fact, SLAM is a complex multi-stage task, including collecting various types of raw data (laser scanning data, visual information data, etc.) in the actual environment through sensors, and calculating the relative position estimation of moving targets at different times through visual odometry (including features) Matching, direct registration, etc.), through the back-end module to optimize the cumulative error caused by the visual odometer (traditional filtering algorithm, map optimization algorithm, etc.), and finally generate a map through the mapping module (of course, it usually needs to be equipped with loop detection for Eliminate accumulated errors in space, etc.) to achieve the purpose of mapping and positioning.