This Project is about autonomous navigation of an micro aerial vehicle (MAV) and part of my master thesis. The micro drone Tello EDU is used and controlled in ROS with a remote PC.
TO DO LIST
- Tello driver and messages
- RQT GUI implementation
- Uncompressed video topic
- Keybord control
- 3D positions as odom
- 3D positions and point cloud map with orbslam 2
- PID position controller and mission commander
- Object dection with costum data set and YOLOv4
- Object tracking with costum data set and YOLOv4
- Scale routine
- Object localization with YOLOv4 bounding box
- Object localization with pointclould and bounding box
- Plausability check and other tests
- Position drift hover, circle path with odom and slam position
- Bounding box 3D lines
- Size of training set
- Miss or no detections of a video sequenz
- Induce erros
This run this project several packages need to be downloaded and installed.
git clone --recursive mygit
To compile them run:
caktin_make
in from your workspace folder in your terminal.
The minimum required packages are:
- tello_driver Used for communication with drone (forked and extended)
- tello_description Used for visualization and links of drone (forked and extended)
- tello_controller Used to do missions and position control
- tello_rqt_gui Used to send commands, shoot videos and fotos display states
- darknet_ros_yolov4 Used to do detection of tomato plants and output bounding boxes (forked and extended)
- sort_track Used to track objects/bounding boxes (forked and extended)
- orb_slam_2_ros Used to map environment, output point cloud and pose estimation (forked and extended)
- localize_plants Used to calculate plant location with bonding box and/or point cloud
- pointcloud_editor Used to process point cloud
Some other useful packages are:
- environment_sensor Used to connect with sensor and publish sensor data
- environment_sensor_plot Used to create plots of sensor data
Visit each package for further instructions and explanations.
- Linux Ubuntu 18.04.4 LTS
- ROS Melodic
- Python 2.7
- python_qt_binding (Qt 5)
If you used miniconda for your environment you don't need to pip install libaries like numpy, qt, pyqt. All packages should be covered by creation.
For instruction on how to set up your machine, CUDA, Darknet and other useful tip visit the Wiki of this project.
Maintainer: Michael Wachl, michael.wachl@tum.de
This project is licensed under the MIT License - see the LICENSE file for details
- Hat tip to anyone whose code was used
- Inspiration
- etc
pip install empy