A Robust Aerial System for Tracking Agile Target in Cluttered Environments
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, accepted, International Conference on Robotics and Automation (ICRA 2021)
Video Links: youtube or bilibili
- 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.
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.
Install Armadillo, which is required by uav_simulator.
sudo apt-get install libarmadillo-dev
Install ompl, which is required by car_planner.
sudo apt-get install ros-melodic-ompl
In target prediction part, we use OOQP for quadratic programming.
- 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
- 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
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
Open a terminal and type the following commands.
cd ~/your_catkin_ws
source devel/setup.bash
./simulation
Then you can follow the gif below to enjoy it.
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
The source code is released under GPLv3 license.
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]).