/on_g2o

Understanding how to use G2O library for project VIMAN

Primary LanguageC++

on_g2o

This package contains files to understand how to use the g2o library.

TO-DO

  • Use tutorial_slam2d along with python-helpers
  • Understand how to make 3D plots using matplotlib
  • Understand how to use g2opy
  • Generate robot path (without landmarks)
    • Ground truth data generation (visualize in matplot)
    • Convert ground truth data into g2o format
    • Generate sensor readings (visualize in matplot)
    • Convert sensor data into g2o format
  • Generate robot path (with landmarks)
  • Test the output for known correspondence
  • Integration with ROS

Repositories referred

  1. g2o
  2. g2opy
  3. GraphSLAM

Python modules used

  1. Spatial-Math
  2. Numpy
  3. Matplotlib
  4. g2o (from g2opy)
  5. getch (for linux) / msvcrt (for windows)

FAQs

  1. What is G2O library for?
    A: Provides tools to build a hyper graphs and algorithms to optimize these large large graphs.

  2. How do I go about implementing G2O library?
    A: The official documentation is very good in itself. You may check out the links given in the end to sharpen the basics required. The examples that come along with this library are a great starting point to understand it.

  3. What are odometry measurements?
    A: Difference between robot's pose at two consecutive timesteps. In 2D case simulated under sim_2d.py, it is represented as (delta x, delta y, theta).

Useful links to sharpen pre-requisites

  1. Solving matrices via linear least squares - YouTube link
  2. Solving via non-linear least squares - YouTube link
  3. Least squares by Cyrill Stachniss - YouTube link