GithubHelp home page GithubHelp logo

duyongquan / ltslam Goto Github PK

View Code? Open in Web Editor NEW
371.0 7.0 64.0 502.26 MB

You can learn slam step by step,there are lot of tutorials

CMake 0.12% Lua 0.01% C++ 2.80% Jupyter Notebook 93.55% Python 0.63% CSS 0.01% Batchfile 0.01% Shell 0.06% C 2.81% Dockerfile 0.01%
vslam slam tutorial

ltslam's Introduction

X-SLAM

1 Introduction

I hope you can learn slam step by step, you will can learn online X-SLAM documents tutorial. What you choose today determines your tomorrow's life path. Diligence will not make up for your indecision.

You can learn slam knowledge by 哔哩哔哩 bilibili . This video website has a detailed explanation of the code and the corresponding SLAM technology principle. Let's start a happy journey. enjoy....

X-SLAM is an open source C++ demo for learn vision slam and lidar slam. Through open source engineering, we can learn the following knowledge content:

开源社区文档

哔哩哔哩 bilibili 视频教程

1.1 Download LTSLAM source:

git clone https://github.com/quanduyong/LTSLAM.git

1.2 Project directory:

xlsam_ros (2D lidar SLAM)

# step 1 下载 rosbag 数据集
# https://github.com/cartographer-project/cartographer_ros/blob/master/docs/source/data.rst

wget https://storage.googleapis.com/cartographer-public-data/bags/backpack_2d/b2-2015-05-26-13-15-25.bag

# step 2 run
roslaunch xslam_ros demo_slam2d.launch
# step 3 rosbag play

rosbag play b2-2015-05-26-13-15-25.bag

xslam_ros_2d

2 安装x-slam

2.1 推荐:docker方式安装

2.1.1 docker安装

cd docker
./scripts/install_docker.sh

2.1.2 X-SLAM环境部署和安装

cd docker
./build_dev.sh standalone.x86_64.dockerfile

2.1.3 运行X-SLAM的demos案例

X-SLAM的demo有很多,一下简单运行几个demo

docker run -it xslam/ltslam

运行每个模块的demo

  • run ceres

    ./xslam.ceres.helloworld_numeric_diff_test
    
  • run g2o

    ./xslam.g2o.curve_fitting_test
  • run dbow3

     ./xslam.dbow3.loop_closure_detect_test
    
  • run opencv

    ./xslam.opencv.feature_detection.orb_feature_detector_test
    
  • run Sophus

    ./xslam.sophus.basic_test
    

2.2 源码安装(不推荐)

2.2.1 Generate study documents

主要目的实现本地帮助文档doc下,以html网页的格式方便查看

  • 安装Sphinx

    pip install -U sphinx
  • 安装主题

    pip install sphinx_rtd_theme
  • 安装markdown插件

    pip install recommonmark
    pip install myst-parser
    pip install sphinx_markdown_tables

2.2.2 Third party library

(推荐)我已经提供了第三方库源码文件3rdparty目录下,执行以下命令安装,不然会出现版本不匹配问题:

mkdir build && cd build
cmake ..
make -j6 
sudo make install

​ (不推荐)如果你想自己源码安装第三方库请使用以下步骤:

  • 安装Eigen

    git clone https://gitlab.com/libeigen/eigen.git
    cd eigen
    git checkout 3.3.8
    mkdir build && cd build
    cmake ..
    make -j6 
    sudo make install
    
  • 安装Sophus

    git clone https://github.com/strasdat/Sophus.git
    cd Sophus
    mkdir build && cd build
    cmake ..
    make -j6 
    sudo make install
  • 安装abseil

    在abseil项目的CMakeLists.txt的project(absl LANGUAGES CXX) 下添加以下命令:

    add_compile_options(-fPIC)

    git clone https://github.com/abseil/abseil-cpp.git
    cd abseil-cpp
    mkdir build && cd build
    cmake ..
    make -j6 
    sudo make install
  • 安装 DBow3

    git clone https://github.com/rmsalinas/DBow3.git
    cd abseil-cpp
    mkdir build && cd build
    cmake ..
    make -j6 
    sudo make install  
    
  • 安装googletest

    git clone https://github.com/google/googletest.git
    cd googletest
    mkdir build && cd build
    cmake ..
    make -j6 
    sudo make install  
    
  • 安装g2o

    git clone https://github.com/rmsalinas/DBow3.git
    cd abseil-cpp
    git checkout 9b41a4ea
    mkdir build && cd build
    cmake ..
    make -j6 
    sudo make install  
    
  • 安装opencv & opencv_contrib (4.5-x)

    git clone https://github.com/opencv/opencv.git
    git clone https://github.com/opencv/opencv_contrib.git
    
    cd opencv
    mkdir build && cd build
    cmake-gui .. # 选择extra module opencv_contrib
    make -j6 
    sudo make install
    

3 工程编译

cd LTSLAM
mkdir build
cd build 
cmake ..
make -j6

4 如何运行工程demo

在工程的build/bin目录中,你可以看到对应的每个可执行二进制文件

如何运行参考如下:

[bin] ./xslam.opencv.camera_calibration.perspective_correction_test

运行结果如下:

5 Contact Me

我们有微信群和QQ群: 710288823 ,你可以加入我们一起成长,所有代码和教学视频免费。

加入我们吧!!!

6 Github贡献者

  • 123mrchen
  • Ze
  • Minghao HU
  • onwaying

github_gxz

ltslam's People

Contributors

duyongquan avatar hu-minghao avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

ltslam's Issues

missing file in ./3rdparty/abseil-cpp

CMake Error: The source directory "/x-slam/3rdparty/abseil-cpp" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.

编译错误

您好,感谢您的开源,但是我编译时出现了以下错误,
error: no matching function for call to ‘xslam_ros::vins_mono::ScopedRosLogSink::ToString(const LogSeverity&, const char*, const int&, const tm* const&, const char* const&, const size_t&)’
severity, GetBasename(filename), line, tm_time, message, message_len);
^
In file included from /home/liuxin/laser_slam/my_code/LTSLAM/xslam_ros/xslam_ros/xslam_ros/vins_mono/ros_log_sink.h:6:0,
from /home/liuxin/laser_slam/my_code/LTSLAM/xslam_ros/xslam_ros/xslam_ros/vins_mono/ros_log_sink.cpp:1:
/usr/local/include/glog/logging.h:1776:22: note: candidate: static std::__cxx11::string google::LogSink::ToString(google::LogSeverity, const char*, int, const google::LogMessageTime&, const char*, size_t)
static std::string ToString(LogSeverity severity, const char* file, int line,
^~~~~~~~
/usr/local/include/glog/logging.h:1776:22: note: no known conversion for argument 4 from ‘const tm* const’ to ‘const google::LogMessageTime&’
xslam_ros/xslam_ros/CMakeFiles/xslam_ros.dir/build.make:140: recipe for target 'xslam_ros/xslam_ros/CMakeFiles/xslam_ros.dir/xslam_ros/vins_mono/ros_log_sink.cpp.o' failed

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.