All Projects → sieuwe1 → Autonomous-Ai-drone-scripts

sieuwe1 / Autonomous-Ai-drone-scripts

Licence: other
State of the art autonomous navigation scripts using Ai, Computer Vision, Lidar and GPS to control an arducopter based quad copter.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Autonomous-Ai-drone-scripts

Autonomus Indoor Drone
Final year project, autonomus indoor drone developed in ROS using DWM1001 dev-board
Stars: ✭ 26 (-42.22%)
Mutual labels:  autonomous-quadcoptor, ardupilot
opendlv
OpenDLV - A modern microservice-based software ecosystem powered by libcluon to make vehicles autonomous.
Stars: ✭ 67 (+48.89%)
Mutual labels:  gps, lidar
Staticmapping
Use LiDAR to map the static world
Stars: ✭ 191 (+324.44%)
Mutual labels:  gps, lidar
orange3-geo
🍊 🌍 Orange add-on for dealing with geography and geo-location
Stars: ✭ 22 (-51.11%)
Mutual labels:  gps
nrf9160
LTE 4G link on nRF9160-DK (ARM Cortex-M33)
Stars: ✭ 20 (-55.56%)
Mutual labels:  gps
fusion-ekf
An extended Kalman Filter implementation in C++ for fusing lidar and radar sensor measurements.
Stars: ✭ 113 (+151.11%)
Mutual labels:  lidar
PyLidar3
PyLidar3 is python 3 package to get data from Lidar devices from various manufacturers.
Stars: ✭ 35 (-22.22%)
Mutual labels:  lidar
whiteboxgui
An interactive GUI for WhiteboxTools in a Jupyter-based environment
Stars: ✭ 94 (+108.89%)
Mutual labels:  lidar
gnssIR python
Python scripts for GNSS interferometric reflection applications
Stars: ✭ 19 (-57.78%)
Mutual labels:  gps
Qwiic Ublox Gps Py
No description or website provided.
Stars: ✭ 38 (-15.56%)
Mutual labels:  gps
gpsCalibration
GPS calibration using points cloud slam and other sensors
Stars: ✭ 80 (+77.78%)
Mutual labels:  lidar
rikitraki
This repository contains the client code of RikiTraki.com, a map-centric hiking log web application.
Stars: ✭ 16 (-64.44%)
Mutual labels:  gps
Object-Detection-using-LiDAR
This repo detect objects automatically for LiDAR data
Stars: ✭ 38 (-15.56%)
Mutual labels:  lidar
aic-mobile-ios
Art Institute of Chicago Official Mobile App
Stars: ✭ 29 (-35.56%)
Mutual labels:  gps
MultiOSD
MinimOSD firmware for OpenPilot/LibrePilot CC/CC3D/Atom/Revolution/Revo Nano, MAVLink (APM/Pixhawk PX4/Paparazzi/generic MAVLink), GPS u-blox, TauLabs, dRonin
Stars: ✭ 42 (-6.67%)
Mutual labels:  ardupilot
Low power TTGO T-beam
Low power consumption for TTGO t-beam
Stars: ✭ 45 (+0%)
Mutual labels:  gps
AndroidGNSS
Code supporting raw ranges for the Android
Stars: ✭ 40 (-11.11%)
Mutual labels:  gps
roam-reactnative
React Native Location SDK. High accuracy and battery efficient location SDK for iOS and Android by Roam.ai
Stars: ✭ 20 (-55.56%)
Mutual labels:  gps
gpx-builder
Builder of GPX files
Stars: ✭ 25 (-44.44%)
Mutual labels:  gps
lidar-buster
Collection of Python snippets for processing LiDAR point cloud.
Stars: ✭ 15 (-66.67%)
Mutual labels:  lidar

Fully autonomous AI powered drone

drawing

This repository pushes to create an state of the art fully autonomous navigation and obstacle avoidance system for multi rotor vehicles. Our approach is based on the novel idea of an fully END-2-END AI model which takes the sensor inputs and directly output the desired control commands for the drone. Currently we are working on creating the necessary code for training and running this approach.

This project also contains an fully autonomous system for tracking a moving target using an Camera and an LiDAR. This sytem uses an AI based object detection model for detecting the target. This system has already been fully tested in real flights and is fully functional!

Autonomous Point To Point Flight Demo

drawing

This video shows the performance of our End-2-End AI based pilot compared to a human pilot on a real flight. The blue dots represent the joystick commands from the human pilot and the red dots represent the joystick commands from our Ai pilot.

Just take a look at how the Ai pilot avoids threes just like the human pilot!

All tooling for gathering, training and validating Ai based pilots for pixhawk based multi rotors are avalible in this repo.

The Autonomous Point To Point navigation system based on End-2-End technology is currently become property of MRR drones. multirotorresearch.com. As MRR we are still dedicated to release awsome Open Source Software. However we do want to protect our software from being used by others to sell. This is why we will be working on creating a Open source version of our AI based pilot which anyone can use for free. However all tooling and method for creating these models will stay secret. But we will publish fully trained models for free!

Autonomous Person Following Flight Demo

drawing

This video shows the performance of our person following system. An AI model detects the person and a PID controller then follows the person.

Hardware

Our quadcopter is fitted with a Jetson Nano running advanced AI models and algorithms real time on the edge on the quadcopter itself. This makes our quadcopter able to work fully autonomsly without the need of a data connection to offload heavy workloads. Because of optimizations our algorithms can work in the computational limited environment of the Jetson Nano.

Drone image

Drone image

Setup

To setup and build the project on a NVIDIA Jetson Nano, please follow the instruction located at BUILD.md. These instructions should guide you towards a fully operational Jetson Nano, including all the required software to start flying autonomously.

Scripts

Follow person

The follow person script can autonomously follow a person using a live RGB camera feed and a MobileNet AI model. This model can detect a person and use the centerpoint to calculate the yaw commands for the drone. roll commands are calculated by using a TF Luna solid state LiDAR. This LiDAR can measure the distance between the person and the drone. Both axis commands are generated using PID controllers.

Usage

Ensure the ArduCopter is in guided mode, then execute the following command:

sudo python3 follow_person_main.py --mode=flight --debug_path=debug/flight1

For ArduPilot SITL simulator testing, you can have to set the mode to test, this can be done by changing the --mode parameter from flight to test.

Press Q to exit the script, the drone will automatically land. Note: this is currently not working in real flight! Switch ArduPilot to Loiter mode and then manually land the drone.

Data plotter

A script was also made to plot the debug data from the PID controllers.

Usage

Execute the following command to debug the data from the PID controllers:

python3 data_plotter.py

Ensure the file name in the script is set to the correct debug file. This can be done by editing the data_plotter.py script.

keras to tensorRT model

For faster execution tansform keras model to tensorRT. (models in repo have been converted already!) Use tf2onnx tool for this.

python -m tf2onnx.convert --saved-model tensorflow-model-path --output model.onnx

Note

This project is still under heavy development. All code is experimental so please use the code with caution! We are not responsible for damage to people or property from the usage of these scripts.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].