MRwangmaomao / LiDAR_ArUco_EKFSLAM

Feature-based EKF-SLAM on Turtlebot3 with landmark detection

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LiDAR ArUco EKF SLAM

Project Overview

This repository builds feature-based EKF SLAM on Turtlebot3 from scratch. The core modules are:

  • Odometry - odometry calculations are performed by Differential Drive Kinematics
  • Measurement - both LiDAR and ArUco measurements are implemented
    • LiDAR measurement - unknown data association in lidar_ekf_slam package
    • ArUco measurement - known data association in aruco_ekf_slam package

Please navigate to the respective directories for a detailed description of each component.

LiDAR EKF SLAM - LiDAR measurement

Core Component

  • turtlelib - contains 2D Lie Group operations for Transforms, Vectors and Twists as well as differential drive robot kinematics for odometry updates
  • nuturtle_description - houses the description of a differential drive robot with a caster wheel for support
  • nuturtle_control - develops some nodes that are useful in both simulation and on the real robot
  • nusim - includes functions of position tracking and obstacle setting
  • nuslam - introduces LiDAR feature detection and EKF SLAM implementation

Animation & Video

ezgif com-gif-maker(2)

ezgif com-gif-maker

Start Guide

  • catkin_make - build the package
  • roslaunch nuslam unknown_data_assoc.launch - launch LiDAR EKF SLAM algorithm with unknown data association

ArUco EKF SLAM - ArUco measurement

Dataset

Dataset Link: https://pan.baidu.com/s/10crRfgGcZ-XgcBjefxAPDg Password: pqby

  • The launch file (slam.launch) should be modified to the correct download path

Animation

aruco_ekf_slam_gif

Start Guide


  • catkin_make - build the package
  • roslaunch aruco_ekf_slam slam.launch - launch ArUco EKF SLAM algorithm with known data association
  • rosbag play aruco_slam_data_qhd1.bag -r 5 - play the rosbag

Prerequisites

Ubuntu20.04, OpenCV 3.1, Eigen, ROS

References

  1. OpenCV library for the fundamental functions of Aruco codes: https://docs.opencv.org/3.3.0/d9/d6d/tutorial_table_of_content_aruco.html
  2. Probalisitic Robotics -- by Thrun, S., Burgard, W., Fox, D. The MIT Press (2005)

About

Feature-based EKF-SLAM on Turtlebot3 with landmark detection


Languages

Language:C++ 76.0%Language:CMake 20.8%Language:Python 3.2%Language:Shell 0.1%