SLAM

撰写于 2020-11-09 修改于 2021-07-07 标签 5 Minutes with Cyrill

SLAM

What is SLAM?

Slam stands for simultaneous localization and mapping. It’s a task of estimating a map of the environment and at the same time localizing your sensor or your robot in that map you’re currently building. And something that mobile robots need whenever they move into unknown or partially unknown environments. Because they need to build a map of the environment and localize itself within that map. If a map is given then things are much easier you just need to localize your self and if a pose estimate is given then mapping is also relatively easy but solving both problems together is much harder. And that’s something that has been investigated in robotics and let’s say at the beginning of the 1990s and we typically find different approaches in order to solve the slam problem.

We have to distinguish here between the frontend and backend . The frontend is the part which takes the raw sensor data and turns them into an intermediate representation such as constrains in an optimization problem or probability distribution about the location of landmark derived from sensor data. So transfering sensor data into an intermediate representation, that’s very task specific. And then the second part backend which takes this intermediate representation and solve the underlying state estimation or optimization problem. So estimating the parameters that describe me for example where objects on the environment or where my platform is in the world.

And in the backend we typically find three different categories of approaches. The first one is the extend kalman filter(EKF), this is how it started at least in robotics or the alternative is particle filters or least squares or so-called graph based slam approaches. Those graph based slam approaches are today the most popular ones. So if you build a new slam system, you most likely start with a graph based approach. In those graph based approaches we as the name says use the graph to represent the variables and the relations between those variables. And the different types of graphs which are out there are two most popular today are either a pose graph, which is the graph contains only the poses and marginalizes out the map information. Or factor graph which have vector sitting between nodes in between variables and the information coming from the frontend or from other sources prior information can be stored in those vectors. They are both kind of similar what you can do with it and different optimization tool boxes use in different internal representations. How to solve this least squares problem, this is typically done using optimization techniques and there’s a large variety of parameters options that you can choose. There are also two boxes out there you can use the three most popular ones for backend are probably g2o, gtsam or ceres, which are kind of three systems which help you to solve your optimization problem and these are the most popular ones today. They either use vector graph or they use for most slam graph or pose graph as a special form of these graphs.

So in pose graph for example, every node represents the pose of the sensor at a certain point of time and the edges between those nodes represent the spatial relations that are extracted from the sensor data. And then the optimization system basically tries to find a new configuration of the nodes. So the overall error that is introduced through the edges actually gets minimized until I find the minimum error configuration which is my least square solution and again this is an technique that is used whenever you need to build a map of the environment and localize yourself within that map. So something that mobile robot need to do, autonomous cars need to do. So every system which move through the environment potentially if it does it on its own. It’s also strong link between visual slam and bundle adjustment, bundle adjustment has been there for much longer so in the 1950s people from photogrammetry developed bundle adjustment, you can see as a special form of visual slam which has a special form constrain that is basically the reproduction error of pixel coordinates. But there are very strong similarities between those approaches the slam formulation is typically somewhat more general but basically came. That’s 30 to 40 years after this has been developed in photogrammetry

pose-graph

目录

  1. SLAM
Site by Luoadore using Hexo & Random