SLAM Series: Getting Started Introduction

Linger for a long time and finally began to write a series SLAM Bank. Although I generally current levels, but the next few years will continue the research in this direction, so we plan to do my best to write a full SLAM pass (qi) series from entry to the fine (fang). Content of the article will be divided into roughly three most
1: SLAM system 2-dimensional plane
2: Visual SLAM
3: visual SLAM inertia
of each theory and most will be divided into two small portions of code to help you understand how to achieve.
The vast majority of the code will be completed with the help of ROS, which also facilitates the use of ROS we look a little bigger write a program After reading the entry ROS series what it was like.
The main reference two-dimensional plane of the SLAM system <probabilistic robotics>
visual SLAM will be the main reference <multiple view geometry>, a number of books on nonlinear least squares optimization and <visual SLAM fourteen speak>. Code reference ORBSLAM2 like. Teaching the code of visual SLAM Dr. Gao Xiang <together to do the RGB-D SLAM>, but there are some years, you can use the update.
The main visual SLAM inertial reference number of the papers, for example, and VINS-Fusion, OKVIS pre-integration and related papers, we will talk later.
A lot of people might want to engage in a direct visual SLAM part and do not want to learn from the 2d section, but for starters, 2d theory and code will be simpler, easy to understand for the later advanced to pave the way.
Finally, talk about the author is updated interest dictates, the update time is very long, maybe more broken, do not expect too much hhhh.

basic requirements

In theory you need to have some basic high number of knowledge, such as how to integrate how the partial derivative of what basic knowledge of what is, and probability theory of basic linear algebra, such as primary operating matrix inversion, Gaussian distribution, and more variable Gaussian distribution, total probability formula, Bayes' rule or something, you need to have a basic understanding of C ++ programming, to know and be able to write a simple function, class. I do not understand, do not worry, I will place a little deeper mentioned.

basic concept

Full SLAM Simultaneous Localization and Mapping, i.e. simultaneous localization and mapping. The concept of positioning is well understood, if a robot came to a strange environment, it needs to know where he was, mathematically speaking is to know your coordinates, if the mobile robot, you need time to coordinate updates. Mapping means that knowledge of the surrounding environment, knowledge of the surrounding environment can help you better position yourself. Cartography cartography into sparse (sparse mapping) and dense construction diagram (dense mapping). Sparse cartographic representation of your understanding of the surrounding environment is only part of, and dense construction plans represent you on every point of the surrounding environment are clear. Analogy, you and your parents travel together, the results got separated, you call my parents, they ask where you are, this time you need to locate a (Ahem suppose you can not locate sent directly to them), you tell them: "I'm on the road xx, xx behind a building that read xxx." you say the contents are extracted part of the current environment characterized by comparison, and these portions comparison feature, which is enough to help you determine the location of a live, This type of sparse map building. If you tell your parents: "I am the way xx, xx in front, followed by xx, xx is left, the right is xx, xx is a diagonal front, rear ramp is xx ....." In short you put everything around you We describe it, which is densely built map. Figure dense construction can certainly help you locate, but obviously, if you just want to simply locate the information you gave up too redundant. The positioning of SLAM only sparse map building on it, you know some of the characteristics of the surrounding environment, it is sufficient to determine the coordinates of your.
The actual construction of the sparse map is extracted environment at some point of comparison feature. If you have a camera, after obtaining a photograph, according to a specific algorithm, able to photograph some of the more distinctive point to find out, compare the characteristics of these points can help you locate. Overall SLAM in the map is not everyone imagined Baidu map google map as a high moral map, but a number extracted from the environment sparse compared the characteristics of the point .
About positioning, positioning method had to tell us about indoor and outdoor. Outdoors, then positioning using GPS is a good choice directly, but ordinary civilian GPS accuracy generally, there may be an error of about 3 meters, but also high-precision GPS, an error can reach centimeters, but expensive. About SLAM outdoor applications, a lot of people must be very interested in technical aspects of the unmanned vehicle. Unmanned vehicles are now graded L0 ~ L5 believe that a lot of people have heard about. Some of which the company reached a level L4 unmanned vehicle system, which means providing a supplementary conditions, the car can drive automatically. And this auxiliary conditions, for example, there are ready-made map. Examples of the front and then you need to provide your location information to parents, the parents, if you are familiar with the local, that is, their minds already have a map, you might call more content omitted: "I XX next to the House, "they will be able to find you. No more back to the car example, if the surrounding environment has been before departure was known, no vehicle will be able to save part of the computing power and positioning accuracy. How to know in advance the environment? In reality, there may be a special car, using a laser radar (lidar) to open once in a way, to acquire 3D point cloud surrounding environment, stored, this map is a pre-built well, can save a lot of computing (can be less talk time before you would like to provide an example of location information to parents) force. So strictly speaking, most companies currently unmanned vehicles in the outdoor use is not completely SLAM technology, they not only have the shadow of SLAM (using laser radar or cameras to help locate and extract pedestrians, cars and other characteristics), as well as aid a ready-made maps and other sensors such as GPS assisted positioning, in order to achieve the best possible results. Although not completely automated, unmanned level L4 but still meaningful. For example, used in buses or other vehicles moving in only a limited range, we can road around the pre-drawing thereby saving computation in real car driving course. Even ordinary family cars, most of the time if you only what a city driving, but also can have a special company to advance mapping.
The unmanned L5 level, in fact, is the real SLAM applications. L5 level unmanned limited environment and conditions, which means there is no pre-established map, we really have to be simultaneous localization and mapping. Generally require assisted GPS positioning. Of course, in addition to unmanned SLAM also we need to have a lot of other technologies, such as control, decision-making, the use of passers-depth study to extract information such as what, they should integrate very complex. L5 level unmanned As far as I know of no company reached SLAM outdoor applications are not so mature (do not wait to feed on their own jobs ah !!), although the theory is very mature, but the face of the actual environment of strange those algorithms are also some very fancy stretched. L3, L4 level unmanned drone can meet many needs, they need but not totally dependent on SLAM. As L5 level is now a target, red duck! !
Indoor GPS positioning will be no arena, and complete the SLAM site. What well-known applications such as cleaning robot.

Symbol Conventions

When theory to explain, it involves many symbols description. Sign this thing, some unify some trouble really is not unified. We explain the following sign convention, not ordinary bold Greek letters represent a number, or English, mathematics often said scalar, such as; bold lowercase characters represent vector; uppercase bold represents the matrix; hollow represents a collection of bold capital, such as real numbers.

Guess you like

Origin blog.csdn.net/weixin_33670713/article/details/90921777