- IEEE UAV Competition 2022 - Low Power Computer Vision Challenges (LPCVC): Chase
- E. Lee, D. Lee, H. Lim, S. Song, and H. Myung, "
Non-uniform motion target tracking system for UAVs
," Korea Robotics Society Conference (KRoC), 2022. - Video - https://youtu.be/zObqq5_M4UA
- CPU: i9-10900K, GPU: RTX3080
CUDA
version 11.5.119cuDNN
8.3.1 forCUDA
11.5OpenCV
version 4.5.2 withCUDA
enabled (not ROS default version) - reference- with the options below
$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_C_COMPILER=gcc-6 \
-D CMAKE_CXX_COMPILER=g++-6 \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_GENERATE_PKGCONFIG=YES \
-D WITH_CUDA=ON \
-D OPENCV_DNN_CUDA=ON \
-D WITH_CUDNN=ON \
-D CUDA_ARCH_BIN=8.6 \
-D CUDA_ARCH_PTX="" \
-D ENABLE_FAST_MATH=ON \
-D CUDA_FAST_MATH=ON \
-D WITH_CUBLAS=ON \
-D WITH_LIBV4L=ON \
-D WITH_GSTREAMER=ON \
-D WITH_GSTREAMER_0_10=OFF \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D BUILD_opencv_cudacodec=OFF \
-D CUDA_NVCC_FLAGS="--expt-relaxed-constexpr" \
-D WITH_TBB=ON \
-D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib-4.5.2/modules \
../
cv_bridge
manually built with newOpenCV
version 4.5.2 (not ROS default version) - reference- ROS
melodic
with Ubuntu 18.04 LTS
- Assuming
PX4-SITL
simulator is already installed through following instructions to installPX4-Avoidance
package - Clone the repository
$ git clone --recursive https://github.com/engcang/ieee_uav_2022
- Setup
UAVCC-simulator
$ cd ieee_uav_2022/uavcc-simulator/trial_1_setup
$ mkdir build && cd build
$ cmake ..
$ make
$ cd ieee_uav_2022/uavcc-simulator/trial_2_setup
$ mkdir build && cd build
$ cmake ..
$ make
$ cd ieee_uav_2022/uavcc-simulator
$ echo "export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:$(pwd)/trial_1_setup:$(pwd)/trial_2_setup" >> ~/.bashrc
$ source ~/.bashrc
$ cd ieee_uav_2022/uavcc-simulator
$ echo "export GAZEBO_PLUGIN_PATH=$GAZEBO_PLUGIN_PATH:$(pwd)/trial_1_setup/build:$(pwd)/trial_2_setup/build" >> ~/.bashrc
$ source ~/.bashrc
-
Setup
OOQP
- Dependencies.
$ sudo apt-get install gfortran $ sudo apt-get install doxygen $ sudo apt-get install texlive-latex-base
- Install
ma27
and type below commands in MA27's folder.
$ cd ieee_uav_2022/ma27-1.0.0 $ ./configure $ make $ sudo make install
- Install
OOQP
and type below commands in OOQP's folder.
$ cd ieee_uav_2022/OOQP $ ./configure $ make $ sudo make install
-
Build this Repo
$ cd ieee_uav_2022/
$ echo "export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:$(pwd)/drone_models" >> ~/.bashrc
$ source ~/.bashrc
$ cd ..
$ catkin build -DCMAKE_BUILD_TYPE=Release
- Run
roscore
$ roscore
- Run
rviz
for debugging
$ roscd ieee_uav
$ rviz -d rviz.rviz
- Run
rqt_plot
to see distance between rover and the UAV
$ rqt_plot
add /distance/data
- Launch Gazebo world
$ roslaunch ieee_uav trial1.launch
or
$ roslaunch ieee_uav trial2.launch
- Run
ieee_uav
$ roslaunch ieee_uav main.launch
- UAV starts to track the rover
- Paths and debugging images should be visualized in
rviz
YOLO
detection should work at least at 100Hz, if you setupCUDA
,cuDNN
,OpenCV
, andcv_bridge
properly- Note, the inference can work upto at 100Hz purely, but it works at fixed 15Hz actually, considering limited computational resource of the UAV.
- Targer motion prediction (Bezier curve) - Fast Tracker
- YOLO - ROS code
- MPC - Googling...