Giter Club home page Giter Club logo

pose-graph-slam's Introduction

Pose-Graph-SLAM

2D Graph SLAM

1.A

We first develop a customized function to read 2D Intel dataset from G2O format and output poses and edges. These poses and edges are used in later parts for 2D and 3D SLAM.

Below information summarizes the file format for the 2D SLAM vertices and edges, which is helpful to start with reading and understanding the data.

Vertices

The vertex information represents the current state of the parameters.

2D Robot Pose

VERTEX_SE2 i x y theta

Specifies a 2D robot pose x_i = (x, y, theta)^T where (x,y) represents the translation and theta the rotation.

2D Landmarks / Features

VERTEX_XY i x y

Specifies a 2D landmark which is located at p_i = (x, y)^T.

Edges

The edges encode the measurements obtained by the robot.

Odometry or Loop Closures

The odometry of a robot connects subsequent vertices with a relative transformation which specifies how the robot moved according to its measurements. Additionally, non sequential poses can be related to each other by matching their observations.

EDGE_SE2 i j x y theta info(x, y, theta)

Where z_ij = (x, y, theta)^T is the measurement moving from x_i to x_j, i.e. x_j = x_i \oplus z_ij

Basically:
image

1.B

Batch Solution: A batch solution means when we construct the entire graph and solve it at the end altogether. We first load data/input_INTEL_g2o.g2o and construct a 2D nonlinear factor graph using GTSAM, using the Gauss-Newton solver.

1.C

Incremental Solution: Here, we use ISAM2 solver to optimize the trajectory incrementally i.e. as we build the graph gradually.

3D Graph SLAM

2.A

Here we first develop a function to read 3D Garage G2O file from G2O format and output poses and edges. Basically:
image

2.B

Batch Solution: We first load data/parking-garage.g2o and then construct a 3D nonlinear factor graph using GTSAM. Use the Gauss-Newton solver.

View 1 View 2 View 3

2.C

Incremental Solution: We Use ISAM2 solver to optimize the trajectory incrementally, then we visualize and compare the optimized trajectory against the initial trajectory.

View 1 View 2 View 3

pose-graph-slam's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

neelkamal18

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.