Code Monkey home page Code Monkey logo

fast-tracker's Introduction

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]).

fast-tracker's People

Contributors

han-sin avatar ustfgaoaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fast-tracker's Issues

liblapack.so.3: undefined reference to `ATL_dgemoveT'

ubuntu 20.04 noetic. could you provide the sources for ast-tracker/src/plan_manage/lib/libOptraj.so

$ ldd libOptraj.so
linux-vdso.so.1 (0x00007ffea2582000)
libboost_system.so.1.65.1 => not found
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f55821f4000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f55820a5000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f558208a000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5581e98000)
/lib64/ld-linux-x86-64.so.2 (0x00007f558264d000)

$catkin_make

Base path: /home/robot/my_pj/track/fast_track_ws
Source space: /home/robot/my_pj/track/fast_track_ws/src
Build space: /home/robot/my_pj/track/fast_track_ws/build
Devel space: /home/robot/my_pj/track/fast_track_ws/devel
Install space: /home/robot/my_pj/track/fast_track_ws/install

Running command: "make cmake_check_build_system" in "/home/robot/my_pj/track/fast_track_ws/build"

Running command: "make -j20 -l20" in "/home/robot/my_pj/track/fast_track_ws/build"

[ 1%] Built target pose_utils
[ 2%] Built target car_search
[ 4%] Built target random_forest
[ 4%] Built target nav_msgs_generate_messages_cpp
[ 5%] Built target plan_env
[ 5%] Built target geometry_msgs_generate_messages_cpp
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_Replan
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_TRPYCommand
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_StatusData
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_ReplanCheck
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_SwarmInfo
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_SpatialTemporalTrajectory
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_AuxCommand
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_PositionCommand
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_SwarmOdometry
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_Odometry
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_Gains
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_PPROutputData
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_OutputData
[ 5%] Built target geometry_msgs_generate_messages_nodejs
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_SwarmCommand
[ 5%] Built target nav_msgs_generate_messages_nodejs
[ 5%] Built target geometry_msgs_generate_messages_py
[ 5%] Built target nav_msgs_generate_messages_py
[ 5%] Built target nav_msgs_generate_messages_eus
[ 5%] Built target geometry_msgs_generate_messages_lisp
[ 5%] Built target nav_msgs_generate_messages_lisp
[ 5%] Built target geometry_msgs_generate_messages_eus
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_Serial
[ 5%] Built target _quadrotor_msgs_generate_messages_check_deps_OptimalTimeAllocator
[ 6%] Built target sim_detect_node
[ 6%] Built target _quadrotor_msgs_generate_messages_check_deps_PolynomialTrajectory
[ 7%] Built target so3_disturbance_generator
[ 8%] Built target bezier_predict
[ 9%] Built target SO3Control
[ 9%] Built target _quadrotor_msgs_generate_messages_check_deps_TrajectoryMatrix
[ 9%] Built target _quadrotor_msgs_generate_messages_check_deps_Bspline
[ 10%] Built target grid_path_searcher
[ 10%] Built target _quadrotor_msgs_generate_messages_check_deps_SO3Command
[ 11%] Built target quadrotor_dynamics
[ 11%] Built target _quadrotor_msgs_generate_messages_check_deps_Corrections
[ 12%] Built target car_node
[ 15%] Built target rviz_plugins
[ 15%] Built target _multi_map_server_generate_messages_check_deps_VerticalOccupancyGridList
[ 17%] Built target _multi_map_server_generate_messages_check_deps_MultiSparseMap3D
[ 27%] Built target quadrotor_msgs_generate_messages_eus
[ 39%] Built target quadrotor_msgs_generate_messages_cpp
[ 51%] Built target quadrotor_msgs_generate_messages_nodejs
[ 62%] Built target quadrotor_msgs_generate_messages_py
[ 74%] Built target quadrotor_msgs_generate_messages_lisp
[ 75%] Built target sfc_generation
[ 75%] Built target _multi_map_server_generate_messages_check_deps_MultiOccupancyGrid
[ 76%] Built target encode_msgs
[ 76%] Built target _multi_map_server_generate_messages_check_deps_SparseMap3D
[ 77%] Built target decode_msgs
[ 77%] Built target quadrotor_msgs_generate_messages
[ 79%] Built target multi_map_server_generate_messages_nodejs
[ 81%] Built target multi_map_server_generate_messages_eus
[ 84%] Built target multi_map_server_generate_messages_lisp
[ 87%] Built target multi_map_server_generate_messages_cpp
[ 90%] Built target multi_map_server_generate_messages_py
[ 91%] Built target multi_map_visualization
[ 92%] Built target traj_server_node
[ 93%] Built target plan_manage
[ 94%] Built target odom_visualization
[ 95%] Built target control_example
[ 96%] Built target quadrotor_simulator_so3
[ 97%] Built target so3_control_nodelet
[ 98%] Built target pcl_render_node
[ 98%] Built target multi_map_server_generate_messages
[ 98%] Linking CXX executable /home/robot/my_pj/track/fast_track_ws/devel/lib/plan_manage/tracking_fsm_node
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_dgemoveT' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zgemoveT'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_strscal' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_sscal'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_ssqtrans' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zsqtrans'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_sgeset' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_sgemoveT'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_cGetNB' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_ctrscal'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zgemaxnrm' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_cgemaxnrm'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_dscal' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_cgezero'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_dgezero' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_dgemaxnrm'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_csqtrans' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_ccplxdivide'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_ccplxinvert' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_dger'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zcplxinvert' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_cgeru'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zGetNB' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_sgescal'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_dtrscal' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zgeset'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_sger' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_sgezero'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_sgemaxnrm' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_sGetNB'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zgeru' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_cgemoveT'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zcplxdivide' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_xerbla'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_dGetNB' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zgezero'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_cgeset' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_dgeset'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_zscal' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_dgescal'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_cscal' /usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to ATL_ztrscal'
/usr/bin/ld: /lib/x86_64-linux-gnu/liblapack.so.3: undefined reference to `ATL_dsqtrans'
collect2: error: ld returned 1 exit status
make[2]: *** [Fast-tracker/src/plan_manage/CMakeFiles/tracking_fsm_node.dir/build.make:520: /home/robot/my_pj/track/fast_track_ws/devel/lib/plan_manage/tracking_fsm_node] Error 1
make[1]: *** [CMakeFiles/Makefile2:4059: Fast-tracker/src/plan_manage/CMakeFiles/tracking_fsm_node.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

solve the problems when it runs on Ubuntu20.04

I use ubuntu20.04 and ros noetic to run the code,but it doesnot work。
I use the command “catkin_make”. and then it will report the problem :

/usr/bin/ld: warning: libboost_system.so.1.65.1, needed by /home/ran/catkin_ws/src/Fast-tracker/src/plan_manage/lib/libOptraj.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: /home/ran/catkin_ws/src/Fast-tracker/src/plan_manage/lib/libOptraj.so: undefined reference to boost::system::system_category()' /usr/bin/ld: /home/ran/catkin_ws/src/Fast-tracker/src/plan_manage/lib/libOptraj.so: undefined reference to boost::system::generic_category()'
collect2: error: ld returned 1 exit status
make[2]: *** [Fast-tracker/src/plan_manage/CMakeFiles/tracking_fsm_node.dir/build.make:520:/home/ran/catkin_ws/devel/lib/plan_manage/tracking_fsm_node] 错误 1
make[1]: *** [CMakeFiles/Makefile2:4059:Fast-tracker/src/plan_manage/CMakeFiles/tracking_fsm_node.dir/all] 错误 2
make: *** [Makefile:141:all] 错误 2
Invoking "make -j16 -l16" failed

The main problem is that the libOptraj.so requires libboost_system.so.1.65.1, but Ubuntu20.04 use libboost_system.so.1.71.0,
So how to deal with libOptraj.so to make it compatible with Ubuntu20.04?

can you give me some help?

Hi! i'm very appreciate your wonderful work.But i have a problem with the code .when i selecet 3D nav goal ,the terminal report an error:"[car_node-5] process has died [pid 26561, exit code -11, cmd /home/jy/Fast-tracker/devel/lib/car_planner/car_node ~global_map:=/global_map ~waypoints:".it seems like "car_node"has died. can you give me some help?
Thanks very much!!!!

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.