This project is aimed at creating an autonomous drone to deliver static and/or dynamic payloads to a moving target. Advanced control methods, path planning algorithms, localization, AI/ML techniques and more will be deployed to achieve this goal. The engineering feats accomplished along the way are stepping stones for other exciting problems. The work done for this project can be expanded to protect crops from birds, home security, deliveries, or any other creative use.
arduPilot
- parameters, firmware and any other ardupilot and vehicle specific thingsdocs
- instructions on how to set up the workflow and various other thingsjetson
- specific libraries, headers, and other files already organized for you :scratch
- miscellaneous experimental code, a sandbox to try out code and save it to the reposcripts
- scripts to automatically install dependencies or do other tasksSquirrelDefender
- the main application codeThirdParty
- third party software included as submodulestools
- tools specific to operation squirrel for processing data or performing other useful taskswsl
- my recompiled WSL2 kernel that supports USBIPD (connecting usb devices to wsl) so if you follow the instructions in that folder you'll have that capability right awayDeveloper chat: https://discord.gg/Uxg9tpVMP9
Compiling the squirreldefender
program
If you DO NOT have a Jetson and are using WSL
If you have a raspberry pi or some other linux single board computer then this code should be pretty compatible, and the process to compile it will be similar to compiling for WSL. This is because compiling for the jetson requires some computer vision and other libraries that are jetson specific. The code should be compatible with C++11 and C++14. You will have to modify the CMakeLists.txt file and possibly the code to make it work. Though a friend did get it to compile on a raspberry pi with only changing the device name for the serial port code.
If you have some other microcontroller, never fear, it's mostly just C and C++ with some standard library code (trying to limit how much). You'll probably have to modify the CMakeLists.txt file and some of the code.
Running the squirreldefender
program with the simulation
Running the squirreldefender
program with a real vehicle