Giter Club home page Giter Club logo

interactive_slam's Introduction

interactive_slam

interactive_slam is an open source 3D LIDAR-based mapping framework. In contrast to existing automatic SLAM packages, we aim to develop a semi-automatic framework which allows the user to interactively and intuitively correct mapping failures (e.g., corrupted odometry, wrong loop detection, distorted map, etc) with minimal human effort. This framework provides several map correction features:

  • [Manual & Automatic] Loop closing
  • [Manual] Plane-based map correction
  • [Manual] Multiple map merging
  • [Automatic] Pose edge refinement

Screenshot_20191016_182424 [video]

This package is built on top of the ROS ecosystem. You can start building a map with a pose graph constructed by hdl_graph_slam or a customized LeGO-LOAM, or odometry data generated by any ROS package. If you are interested in a ROS-independent cross platform version (Ubuntu/Windows), see here.

This package has been tested on Ubuntu 18.04 & ROS melodic.

Codacy Badgeใ€€Build Status

Installation

interactive_slam depends on the following libraries:

# for ROS melodic
sudo apt-get install libglm-dev libglfw3-dev
sudo apt-get install ros-melodic-geodesy ros-melodic-pcl-ros ros-melodic-nmea-msgs ros-melodic-libg2o
cd ~/catkin_ws/src
git clone https://github.com/koide3/ndt_omp
git clone https://github.com/koide3/hdl_graph_slam
git clone https://github.com/koide3/odometry_saver
git clone https://github.com/SMRT-AIST/interactive_slam --recursive

cd ~/catkin_ws
catkin_make -DCMAKE_BUILD_TYPE=Release

ROS Kinetic users
This package cannot be built using gcc and ld on Ubuntu 16. If you are on Ubuntu 16 and ROS kinetic, try the LLVM toolchain. Note: we recommend to use this package on melodic because we do only build-test but not run-test on kinetic.

sudo apt install clang-6.0 lld-6.0
sudo update-alternatives --install /usr/bin/ld ld /usr/bin/ld.lld-6.0 50
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-6.0 50
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-6.0 50
cd ~/catkin_ws && rm -rf build devel    # be aware of that this command removes build and devel directories
CC=clang CXX=clang++ catkin_make -DCMAKE_BUILD_TYPE=Release

Examples

Example1 - Basic usage with hdl_graph_slam

In this example, we edit a map (pose graph) constructed by hdl_graph_slam. See more. Screenshot_20191016_175924 png

Example2 - Generating odometry with external ROS package

In this example, we create a map with odometry data generated from a rosbag file with LeGO-LOAM. See more.

Example3 - Plane-based map correction & Map merging

In this example, we correct a largely bent map with plane constraints and merge it with another map. See more.

Screenshot_20191016_182955 png

Graph/Odometry file format

You can feed graph/odometry files generated by your program to interactive_slam. See more

FAQ

FAQ

License

interactive_slam is released under GPLv3 license. If you are interested in a closed-source version or you need technical support, see here and contact us.

Related packages

Contact

Kenji Koide, [email protected]

Human-centered Mobility Research Center, National Institute of Advanced Industrial Science and Technology, Japan [URL]

interactive_slam's People

Contributors

koide3 avatar

Watchers

James Cloos avatar

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.