Hello and welcome to Adam Berlier and I (Ian McElhenny)'s submission for the NXP Hover Game 2 Competition. This competition tasked us with "Helping people with drones during a pandemic." Below you can see a detailed description of our system, a set of links to our YouTube videos and wiki, as well as some pictures of the drone building process. We hope you enjoy our project. If you have any questions or issues with our project we suggest starting an issue on our projects Github page.
Thank you for taking the time to read over our project!
See our more in depth about page here!
Our system is designed to help farmers and ranchers with their crops and livestock. During a pandemic the last thing anyone should have to worry about is their next meal. We want to make sure farmers and ranchers have all the tools they need to be able to protect their livelihood especially during a pandemic.
Our system sits passively in a field, watches for intruders, and sends our NXP drone to scare away the threat that may appear. Once the intruder is no longer a threat, the drone returns home and waits for its next job.Our Wiki
Checkout our Project Wiki here. The wiki contains a full guide on running our software, and a overview of our architecture. I highly recommend reading through the whole wiki as most of our documentation lives there and is most up to date, there.Hardware Coupon
Check out our winning submission for a hardware coupon here!Videos
Below are the links to the videos we have produced for this project. There may be extra videos available about the project on my channel here.
Learn about our goals and project: What is SCAREcrow?
Understand the architecture: SCAREcrow - Architecture Overview
Learn about our project's dependencies: Setup your system for SCAREcrow development.
See it in action: Run the project yourself!
See a demo of our gym-scarecrow environment here.
See our update video submission for the $25 amazon gift card: December 17 2020 Update VideoSystem Description
Our system has three first class citizens:
- The Agent(s) (drone) - a node.
- The Base Station - the central, main, node.
- The Controller(s) - a node.
The scene consists of two players:
- Agents - drones to direct to herd animals out of zone.
- Subjects - animals to keep out of keep out zone.
There can be many
agents, and many
controllers, however there is only one centralized
base station. A controller runs the RL algorithm and
subject classifier, and is in ownership and control of the
agents in the
agent is owned by one
base station acts as a router/conduit and rule enforcer between the
controllers and the
base station is responsible for setting up a network on top of UDP/TCP over WiFi depending on the configuration. This network has a defined set of messages that can pass through it. When a new node is created, it asks the
base station for an ID and lets the base station know what type of node it is (Agent or controller). Once the agent has been assigned a
node ID it is able to begin its life.
The RL algorithm and the animal classifier/tracker run on the
controller node. As the classifier neural network detects
subjects (using humans as a stand in for testing) it fills the RL scene with
subjects. Additionally a
controller can share its
subjects with other
controllers by sending a message to the
base station. Meanwhile the drone is constantly broadcasting its location to the various controllers by way of the
base station. The RL algorithm runs over the scene, processing the locations of the
subjects and the
agents to optimize the commanded position of the
agents it owns. The
base station then generates a target location for the
agent and the
agent then takes off and flies to that location. As the
agent travels to the location our RL algorithm constantly tracks the
subjects and the
agent which enables the algorithm to change instructions on the fly. Then as the
agent approaches the
subjects they are scared away and out of the keep out zone. Once the
subject of interest has left the keep out zone the
agent lands back in its starting position and awaits new instructions.
We suggest visiting our wiki here to see the up to date instructions on getting the dev environment setup and executing our projects components.System Architecture
The most up to date view of this would be on our wiki at this page.Photos of the Build Process
Helping: Helping with viewing video from NavQ
Helping/Reporting Bug: Reporting offboard control bug to MavSDK repo