Welcome to the SoiledIt project page, created for the BudLabs hackathon 2016. The idea is to provide a solution for farmers who want surveys of their land using drone technology, but tries to greatly improve upon the current methods by using historical land data and software. When you have information on the quality of the soil and land, combine it with precipitation data, and add a healthy dose of computing power, it becomes possible to target "problem areas" of a field. This means that you only have to investigate a handful of points versus blindly scanning the entire field, and you can thereby save time, energy, and most importantly, money.
How did we do it?
We estimated costs of traditional land surveying and SoiledIt method. We created the overall business plan and presentation.
We used an arduino to control our drone. It was equipped with an ultrasonic sensor to detect altitude and cut the motors when the drone landed and a soil moisture sensor to gather soil moisture data. The moisture sensor collected 50 data points and calculated the average of them at each geo-location then stored that final data point into the Arduino's EEPROM for permanent storage. After traveling to 2-4 trouble spots in a given farm, it would return to the truck to transfer the data from the Arduino to the central computer and be used on the web app.
Using the powerful CAD software, NX 10, Edgar designed a 3D model of a flying hexacopter drone from scratch. This model was built as an assembly of separatel -designed components. The propellers were put upon an axis so that using advanced animation techniques in NX he was able to animate the propellers to spin, simulating its flight over a field. For the graphic design, Edgar also pieced together the team project's logo for "soiled.it".
Cameron and George worked on the web app frontend and backend. Data was gathered from various provided resources, extracted into a usable format, and then loaded into a Python server (using Flask as a web server framework). From there, users can access the hackathon's website and select an area to investigate, and observe a clear red-to-green heat map showing off problem areas in the soil. We created a fitness function that analyzed what we thought were significant factors based on conversations we had with the employees from AB InBev: the water table depth, the drainage rates of the different soils at every position, and the quantity of water that is available to plants. Malt barley requires more water than the average plant, and water is further essential for life. Hence, we chose many water-based data points as our largest considerations. We also considered temperature and precipitation data and factored it in as best we could.
The actual data is rendered using heat maps from the Google Maps API, and the line of best fit is calculated using a simplified 2-opt local search to solve the Traveling Salesman problem. Optimizations could be easily made to improve the speed of loading in the data via caching the entire dataset on initial load, and reading locally rather than re-requesting upon every reload. Furthermore, the dataset could be searched much more efficiently using a slightly modified binary search (for small enough data sets), or a K-D tree for larger data sets. It would also have been interesting to investigate different datasets, different fitness functions, and different rendering styles for the heat map to provide more even coverage even in the absence of data.