• Stars
    star
    181
  • Rank 210,774 (Top 5 %)
  • Language
    C++
  • License
    GNU General Publi...
  • Created almost 4 years ago
  • Updated about 3 years ago

Reviews

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

Repository Details

Fast-Tracker

A Robust Aerial System for Tracking Agile Target in Cluttered Environments

0. Overview

Fast-Tracker is a systematic solution that uses an unmanned aerial vehicle (UAV) to aggressively and safely track an agile target.

Author: Zhichao Han*, Ruibin Zhang*, Neng Pan*, Chao Xu and Fei Gao from the ZJU Fast Lab.

Related Paper: Fast-Tracker: A Robust Aerial System for Tracking AgileTarget in Cluttered Environments, Zhichao Han*, Ruibin Zhang*, Neng Pan*, Chao Xu, Fei Gao, International Conference on Robotics and Automation (ICRA 2021)

Video Links: youtube or bilibili

Contributions

  • A lightweight and intent-free target motion prediction method.
  • A safe tracking trajectory planner consisting of a target informed kinodynamic searching front-end and a spatial-temporal optimal trajectory planning back-end.
  • The integration of the proposed method with sensing and perception functionality and the presentation of the systematic solution with extensive evaluations.

1. Prerequisites

Our software is developed and tested in Ubuntu 18.04, ROS Melodic. Other version may require minor modification.

ROS can be installed here: ROS Installation.

Step 1

Install Armadillo, which is required by uav_simulator.

sudo apt-get install libarmadillo-dev

Step 2

Install ompl, which is required by car_planner.

sudo apt-get install libompl-dev

Step 3

In target prediction part, we use OOQP for quadratic programming.

  1. Type the following commands to install dependencies.

    sudo apt-get install gfortran
    sudo apt-get install doxygen
    
  2. Get a copy of MA27 from the HSL Archive. Just select the Personal Licence (allows use without redistribution), then fill the information table.

​ Then you can download it from an e-mail sent to you. Next, un-zip MA27, and follow the README in it, install it to your Ubuntu.

Actually, you only need to type 3 commands in MA27's folder to finish the installation.

./configure
make
sudo make install
  1. Manually un-zip packages OOQP.zip in the repo and install it to your Ubuntu.

As above, you can just type 3 commands in OOQP's folder :

./configure
make 
sudo make install

2. Build on ROS

You can create an empty new workspace and clone this repository to your workspace:

cd ~/your_catkin_ws/src
git clone https://github.com/ZJU-FAST-Lab/Fast-tracker.git
cd ..

Then, compile it.

catkin_make

3. Run the Simulation

source devel/setup.bash
./simulation

Then you can follow the gif below to enjoy it.

4. Use GPU or Not

Packages in this repo, local_sensing have GPU, CPU two different versions. By default, they are in CPU version for better compatibility. By changing

set(ENABLE_CUDA false)

in the CMakeList.txt in local_sensing packages, to

set(ENABLE_CUDA true)

CUDA will be turned-on to generate depth images as a real depth camera does.

Please remember to also change the 'arch' and 'code' flags in the line of

    set(CUDA_NVCC_FLAGS 
      -gencode arch=compute_70,code=sm_70;
    ) 

in CMakeList.txt, if you encounter compiling error due to different Nvidia graphics card you use. You can check the right code here.

Don't forget to re-compile the code!

local_sensing is the simulated sensors. If ENABLE_CUDA true, it mimics the depth measured by stereo cameras and renders a depth image by GPU. If ENABLE_CUDA false, it will publish pointclouds with no ray-casting. Our local mapping module automatically selects whether depth images or pointclouds as its input.

For installation of CUDA, please go to CUDA ToolKit

5. Licence

The source code is released under GPLv3 license.

6. Maintaince

For any technical issues, please contact Zhichao Han ([email protected]), Ruibin Zhang ([email protected]), Neng Pan([email protected]) or Fei GAO ([email protected]).

For commercial inquiries, please contact Fei GAO ([email protected]).

More Repositories

1

ego-planner

C++
1,376
star
2

Fast-Drone-250

hardware and software design of the 250mm autonomous drone
C++
1,358
star
3

ego-planner-swarm

An efficient single/multi-agent trajectory planner for multicopters.
C++
1,178
star
4

GCOPTER

A General-Purpose Trajectory Optimizer for Multicopters
C++
697
star
5

Swarm-Formation

Formation Flight in Dense Environments
C++
382
star
6

EGO-Planner-v2

Swarm Playground, the codebase of the paper "Swarm of micro flying robots in the wild"
C++
355
star
7

Dftpav

A lightweight differential flatness-based trajectory planner for car-like robots
C++
324
star
8

LBFGS-Lite

LBFGS-Lite: A header-only L-BFGS unconstrained optimizer.
C++
314
star
9

sampling-based-path-finding

C++
212
star
10

Fast-Racing

An Open-source Strong Baseline for SE(3) Planning in Autonomous Drone Racing
C++
206
star
11

large_scale_traj_optimizer

Fast (Fastest?) Minimum Snap Trajectory Generation with Analytical Gradient
C++
199
star
12

CMPCC

CMPCC: Corridor-based Model PredictiveContouring Control for Aggressive Drone Flight
C
192
star
13

am_traj

Alternating Minimization Based Trajectory Generation for Quadrotor Aggressive Flight
C++
185
star
14

Implicit-SDF-Planner

[IROS 2023] Continuous Implicit SDF Based Any-shape Robot Trajectory Optimization
C++
184
star
15

Elastic-Tracker

Elastic Tracker: A Spatio-temporal Trajectory Planner Flexible Aerial Tracking
C++
163
star
16

FAST-Dynamic-Vision

Detecting and Tracking Dynamic Objects with Event and Depth Sensing
C++
126
star
17

Implicit-SVSDF-Planner

[SIGGRAPH 2024 & TOG]
C++
119
star
18

VID-Fusion

VID-Fusion: Robust Visual-Inertial-Dynamics Odometry for Accurate External Force Estimation
C++
115
star
19

Car-like-Robotic-swarm

Source code for the decentralized car-like robotic swarm
C++
114
star
20

uneven_planner

An Efficient Trajectory Planner for Car-like Robots on Uneven Terrain
C++
103
star
21

EVA-planner

EVA-planner: an EnVironmental Adaptive Gradient-based Local Planner for Quadrotors.
C++
91
star
22

TGK-Planner

C++
90
star
23

FastSim

88
star
24

Terrestrial-Aerial-Navigation

An autonomous navigation framework that brings complete autonomy to terrestrial-aerial bimodal vehicles (TABVs)
C++
75
star
25

Fast-Perching

Real-Time Trajectory Planning for Aerial Perching
C++
73
star
26

kino_sampling_with_regional_opti

C++
73
star
27

3D2M-planner

C#
72
star
28

SDLP

Seidel's LP Algorithm: Linear-Complexity Linear Programming for Small-Dimensional Variables
C++
70
star
29

SDQP

Small-Dimensional Quadratic Programming in Linear Time
C++
61
star
30

visPlanner

C++
56
star
31

VID-Dataset

C++
55
star
32

OPNet

Learning Unknown Space for Autonomous Navigation in Clustered Environment
C++
55
star
33

VertexEnumeration3D

Fast Vertex Enumeration for 3D Polytopes
C++
52
star
34

forces_resilient_planner

External Forces Resilient Safe Motion Planning for Quadrotor
C
48
star
35

Radar-Diffusion

Python
48
star
36

EDG-TEAM

Enhanced Decentralized Autonomous Aerial Robot Teams with Group Planning
C++
42
star
37

std-trees

STD-Trees: Spatio-temporal Deformable Trees for Multirotors Kinodynamic Planning
C++
41
star
38

Auto-Filmer

A Videography Planner for Quadrotors
C++
38
star
39

CertifiableMutualLocalization

MATLAB
29
star
40

laser_simulator

lightweight laser simulator
C++
25
star
41

GPA-Teleoperation

C++
24
star
42

VID-Flight-Platform

The flight platforn for the VID-Dataset
19
star
43

UnityVisExample

C#
19
star
44

e2e_opt

JavaScript
18
star
45

TABV-Platform

A cusomized terrestrial-aerial bimodal vehicle (TABV) platform for terrestrial-aerial autonomous navigation.
16
star
46

Primitive-Planner

Primitive-Planner: An Ultra Lightweight Quadrotor Planner with Time-optimal Primitives
16
star
47

LMBM

Nonsmooth Unconstrained Optimization via Limited Memory Bundle Method
Fortran
15
star
48

mpc-car-tutorial

A tutorial of using MPC (both implementations of nonlinear MPC and linear time-varying MPC) for reference tracking with a bicycle model.
C
12
star
49

FACT-Coordinate-Initialization

Open source dode for paper FACT: Fast and Active Coordinate Initialization for Vision-based Drone Swarm
C++
11
star
50

OSQP_Interface

An Easy-to-Use OSQP Interface for Convex Quadratic Programming.
C++
7
star
51

Assistive-Racing

A Trajectory-based Flight Assistive System for Novice Pilots in Drone Racing Scenario
C++
7
star
52

Auto-Param-Adaption

Automatic parameter adaptation for quadrotor trajectory planning
6
star
53

Xsens_driver

Python
4
star
54

GLPK_Interface

An Easy-to-Use GLPK Interface for General-Dimension Linear Programming.
C++
3
star
55

LF-3PM

a LiDAR-based Framework for Perception-aware Planning with Perturbation-induced Metric
3
star
56

Active-Relative-Localization

Open source dode for paper Preserving Relative Localization of FoV-Limited Drone Swarm via Active Mutual Observation
1
star