GithubHelp home page GithubHelp logo

catree / dre_slam Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ydsf16/dre_slam

0.0 2.0 0.0 38.06 MB

RGB-D Encoder SLAM for a Differential-Drive Robot in Dynamic Environments

Home Page: https://www.mdpi.com/2072-4292/11/4/380

License: GNU General Public License v3.0

CMake 0.90% C++ 99.10%

dre_slam's Introduction

DRE-SLAM

Dynamic RGB-D Encoder SLAM for a Differential-Drive Robot

Authors: Dongsheng Yang, Shusheng Bi, Wei Wang, Chang Yuan, Wei Wang, Xianyu Qi, and Yueri Cai

image

DRE-SLAM is developed for a differential-drive robot that runs in dynamic indoor scenarios. It takes the information of an RGB-D camera and two wheel-encoders as inputs. The outputs are the 2D pose of the robot and a static background OctoMap.

Video: Youtube or Dropbox or Pan.Baidu

DRE-SLAM

Paper: DRE-SLAM: Dynamic RGB-D Encoder SLAM for a Differential-Drive Robot, Dongsheng Yang, Shusheng Bi, Wei Wang, Chang Yuan, Wei Wang, Xianyu Qi, and Yueri Cai. (Remote Sensing, 2019) PDF, WEB

Prerequisites

1. Ubuntu 16.04

Follow the instructions in: http://wiki.ros.org/kinetic/Installation/Ubuntu

3. ROS pacakges

sudo apt-get install ros-kinetic-cv-bridge ros-kinetic-tf ros-kinetic-message-filters ros-kinetic-image-transport ros-kinetic-octomap ros-kinetic-octomap-msgs ros-kinetic-octomap-ros ros-kinetic-octomap-rviz-plugins ros-kinetic-octomap-server ros-kinetic-pcl-ros ros-kinetic-pcl-msgs ros-kinetic-pcl-conversions ros-kinetic-geometry-msgs

We use the YOLOv3 implemented in OpenCV 4.0.

Follow the instructions in: https://opencv.org/opencv-4-0-0.html

5. Ceres

Follow the instructions in: http://www.ceres-solver.org/installation.html

Build DRE-SLAM

1. Clone the repository

cd ~/catkin_ws/src
git clone https://github.com/ydsf16/dre_slam.git

2. Build DBow2

cd dre_slam/third_party/DBoW2
mkdir build
cd build
cmake ..
make -j4

3. Build Sophus

cd ../../Sophus
mkdir build
cd build
cmake ..
make -j4

4. Build object detector

cd ../../../object_detector
mkdir build
cd build
cmake ..
make -j4

5. Download the YOLOv3 model

cd ../../config
mkdir yolov3
cd yolov3
wget https://pjreddie.com/media/files/yolov3.weights
wget https://github.com/pjreddie/darknet/blob/master/cfg/yolov3.cfg?raw=true -O ./yolov3.cfg
wget https://github.com/pjreddie/darknet/blob/master/data/coco.names?raw=true -O ./coco.names

6. Catkin_make

cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash

Example

Dataset

We collected several data sequences in our lab using our Redbot robot. The dataset is available at Pan.Baidu or Dropbox.

Run

1. Open a terminal and launch dre_slam

roslaunch dre_slam comparative_test.launch

2. Open a terminal and play one rosbag

rosbag play <bag_name>.bag

Run on your own robot

You need to do three things:

  1. Calibrate the intrinsic parameter of the camera, the robot odometry parameter, and the rigid transformation from the camera to the robot.

  2. Prepare a parameter configuration file, refer to the config folder.

  3. Prepare a launch file, refer to the launch folder.

Contact us

For any issues, please feel free to contact Dongsheng Yang: [email protected]

dre_slam's People

Contributors

ydsf16 avatar

Watchers

James Cloos avatar  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.