• Stars
    star
    317
  • Rank 128,049 (Top 3 %)
  • Language
    Python
  • License
    GNU Lesser Genera...
  • Created about 3 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A 3D Dense mapping backend library of SLAM based on taichi-Lang designed for the aerial swarm.

TaichiSLAM

This project is a 3D Dense mapping backend library of SLAM based Taichi-Lang, designed for the aerial swarm.

Demo video

Intro

Taichi is an efficient domain-specific language (DSL) designed for computer graphics (CG), which can be adopted for high-performance computing on mobile devices. Thanks to the connection between CG and robotics, we can adopt this powerful tool to accelerate the development of robotics algorithms.

In this project, I am trying to take advantages of Taichi, including parallel optimization, sparse computing, advanced data structures and CUDA acceleration. The original purpose of this project is to reproduce dense mapping papers, including Octomap, Voxblox, Voxgraph etc.

Note: This project is only backend of 3d dense mapping. For full SLAM features including real-time state estimation, pose graph optimization, depth generation, please take a look on VINS and my fisheye fork of VINS.

Demos

Octomap/Occupy[1] map at different accuacy:

drawing

drawing

drawing

Truncated signed distance function (TSDF) [2]: Surface reconstruct by TSDF (not refined) Occupy map and slice of original TSDF

Usage

Install taichi via pip

pip install taichi

Download TaichiSLAM to your dev folder and add them to PYTHONPATH

git clone https://github.com/xuhao1/TaichiSLAM

Integration with ROS

Running TaichiSLAMNode (require ROS), download dataset at this link.

# Terminal 1
rosbag play taichislam-realsense435.bag
# Terminal 2
roslaunch launch/taichislam-d435.launch show:=true

Generation topology skeleton graph [4]

This demo generate topological skeleton graph from TSDF This demo does not require ROS. Nvidia GPU is recommend for better performance.

pip install -r requirements.txt
python tests/gen_topo_graph.py

This shows the polyhedron

De-select the mesh in the options to show the skeleton

Bundle Adjustment (In development)

Roadmap

Paper Reproduction

  • Octomap
  • Voxblox
  • Voxgraph

Features

Mapping

  • Octotree occupancy map [1]
  • TSDF [2]
  • Incremental ESDF [2]
  • Submap [3]
    • Octomap
    • TSDF
    • ESDF
  • Topology skeleton graph generation [4]
    • TSDF
    • Pointcloud/Octomap
  • Loop Detection

MISC

  • ROS/RVIZ/rosbag interface
  • 3D occupancy map visuallizer
  • 3D TSDF/ESDF map visuallizer
  • Export to C/C++
  • Benchmark

Know issue

Memory issue on ESDF generation, debugging...

References

[1] Hornung, Armin, et al. "OctoMap: An efficient probabilistic 3D mapping framework based on octrees." Autonomous robots 34.3 (2013): 189-206.

[2] Oleynikova, Helen, et al. "Voxblox: Incremental 3d euclidean signed distance fields for on-board mav planning." 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). IEEE, 2017.

[3] Reijgwart, Victor, et al. "Voxgraph: Globally consistent, volumetric mapping using signed distance function submaps." IEEE Robotics and Automation Letters 5.1 (2019): 227-234.

[4] Chen, Xinyi, et al. "Fast 3D Sparse Topological Skeleton Graph Generation for Mobile Robot Global Planning." arXiv preprint arXiv:2208.04248 (2022).

LICENSE

LGPL

More Repositories

1

FOXTracker

Facial Head Pose Tracker for Gaming
Jupyter Notebook
425
star
2

VINS-Fisheye

Fisheye version of VINS-Fusion
C++
283
star
3

Unreal-ROS-Plugin

An ROS plugin for unreal engine which let us work robot os with unreal engine.
C++
59
star
4

DCSNoJoy

Fly DCS without a joystick
Python
42
star
5

OliviaVideo

C++
34
star
6

airsim_ros_pkgs

An adapter for airsim for SITL or HIL simulation drone app built on DJI-SDK
C++
26
star
7

pyAircraftIden

An open-source aircraft identification library in python
Python
23
star
8

dSim

A simulation program base on PhysX for drone,use for testing KF,EKF and control system
Mathematica
9
star
9

RapidFDM

An easy to use, rapid and fast flying dynamics model for slow and small aircraft.
JavaScript
9
star
10

firmware_heli

My modification of px4 for helicopter
C++
8
star
11

RealFlightBridge

A bridge for hardware to realflight simulator.
Python
7
star
12

Topology

JavaScript
7
star
13

Moriturus

JavaScript
4
star
14

Jesse

Jesseๆ— ไบบๆœบ้กน็›ฎ
Java
4
star
15

imu_error_comp

IMU COMP and filter for vins-fusion
C++
2
star
16

LazyHawk

Python
2
star
17

eternity_vtol_firmware

A VTOL firmware based on ROS & DJI SDK
C++
2
star
18

ThunderDash

A external dashboard and control center for flight simulation software and games like WarThunder
JavaScript
2
star
19

CUDA_Learning

CUDA,learning.....
C++
2
star
20

gcode2dotmakebot

Convert GCODE tool path into .makerbot.
Python
2
star
21

pl0_homework

PL0Codes
C
1
star
22

QuantumLearn

Learning quantum computing basics.....
Jupyter Notebook
1
star
23

uwb_mocap_broadcast

UWB mocap broadcast module
C++
1
star
24

mavasync

Mavlink proxy with asynchronous that build with twisted
Python
1
star
25

gimbal-remoter

dji remote gimbal
Python
1
star