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 WikiCheckout 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 CouponCheck out our winning submission for a hardware coupon here!
VideosBelow 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 Video
System DescriptionOur 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 scene
. An agent
is owned by one controller
. The base station
acts as a router/conduit and rule enforcer between the controllers
and the agents
. 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 ArchitectureThe most up to date view of this would be on our wiki at this page.
Photos of the Build ProcessHelping: Suggesting enabling Mavlink2 for messaging - Related Link to my write up
Helping: Helping with viewing video from NavQ
Clarifying a rule about Forking
Helping: Making a suggestion for camera stability
Helping/Reporting Bug: Reporting offboard control bug to MavSDK repo
Comments