Loading...
 
Skip to main content

History: Farming Automation

Source of version: 139 (current)

Copy to clipboard
This page is to create a Road Map for Agricultural Farming Automation via 'Bots', single board computers and Tiki.

! Goals of Automation
*__Autonomous__ completion of tasks
*__Remote__ planning and control from a Tiki site
*__Swarm__ application (i.e. [https://en.wikipedia.org/wiki/Swarm_behaviour|swarms in nature])
**i.e. all drones working as one unit in real time
Notes: 
*these are long-term, macro goals which will take a substantial amount of time and steps to reach.  As of early 2019, no commercial companies (e.g. outside of military applications) have achieved this, therefore the path is still wide open
*Tiki has added Rubix ML for Tiki23, see the [https://doc.tiki.org/Machine%20Learning|Docs] page for details

! Types of Automation Bots
*__Aerial Drones__ (Unmanned Aerial Vehicles, UAV's)
**vertical, i.e. helicopters
**horizontal, i.e. planes
**'''Rough'' assumptions about cost:
***<$300: toy drone market
***$300 to $700: prosumers '(professional consumers)'
***>$700: serious enthusiast / professional market

*__Ground Bots__
**on wheels or tracks
**on 'legs' i.e. spider
*__Fixed Bots__
**stationary or on a track
**for small areas, i.e. small scale vegetable farming

!Applications
!!Aerial drones
*__Field perimeter boundaries__
**outlining and re-drawing field boundaries (via gps module)
*__Crop scouting__ (i.e. looking for problem areas in fields)
**with mapping so results can be compared from year to year
**Possible first steps:
***use esisting open source code for project bases
***focus on code that establishes communication and coordination between two drones to complete separate parts of one task, with the assumption that if one drone fails, the other can take over all tasks.
***a starting task would be to fly over one agriculture field in straight lines using GPS while taking photos of each part of the field, than the photos would need to be combined into one  'map' of the field ''(see [https://dev.tiki.org/Farming-Automation#Drone_Video_Editing_Tools|Video Editing Software] below )''.  This will be a basis for all ariel drone operations, i.e. spraying crop protection, fertilizers, etc.
*__Applying crop protection__ (insecticides/ pesticides, herbicides, fertilizers, etc.) either:
**only where necessary, i.e. herbicides, to reduce quantities sprayed, fertilizer according to where needed (per [https://www.satimagingcorp.com/applications/natural-resources/agriculture/|vegetation or soil maps)], etc.
**full field, i.e. pesticides, fertilizers, herbicides, etc.
**current examples include a drone by DJI called [https://www.dji.com/mg-1|Agras MG-1] and one by [https://kray.technology/|Kray Technologies]
***note issues they experienced by DJI with engines due to dust
*__Vegetation Maps__
**provides a type of 'heat map' so that a map can be produced to determine health of a field
**via infrared cameras (though expensive, from $10,000) and horizontal take off drones at a height of 300 - 1000m

!!Ground bots
*__Mechanical elimination of weeds (i.e. cutting)__
**small bots,  designed like a lawn mower, as the width of rows is standard in commercial farming (from 30 - 70 cm)
**the initial focus should be on the 95% of weeds that grow in between the rows of crops and can realistically be mechanically eliminated.  Later stages can focus on the remaining 5% of weeds that grow right up against the stem of the plant, particularly vines that wrap around the stem and grow upwards, which would take very advanced levels of AI/ML in combination with a high level of robot construction to eliminate.
**Good example from the University of Illinois program: {youtube movie="https://www.youtube.com/watch?v=eof99XfoFfY&feature=emb_logo"} 
*__Chemical elimination of weeds__
**similar to mechanical, in that a bot on wheels moves down a row  (based on a field map  'A-B lines' + GPS) and individually sprays weeds, example [https://www.ecorobotix.com/en/autonomous-robot-weeder/|here]
**this would solve the above issue of mechanical elimination of weeds when* the weed grows right up against the stem of the plant
*__Planting (with fertilizers)__ 
**an application for bots with good potential - bots are extremely light weight (vs. a very heavy tractor + seeder + seeder tanks) so there would be no significant soil compaction during the planting phase if a swarm of bots was used.

!!Single Board Computers (SBC's) and Microcontrollers
*__Connection between IoT devices and Tiki__
**Open Source computers, such as the [https://www.raspberrypi.org/|Raspberry Pi],  [https://www.arduino.cc/|Arduino], [https://beagleboard.org|Beagleboard] and many others that will be used to connect drones, bots and other types of automation to Tiki Trackers for analyzing and graphically displaying data.
**Note: as of 2020, the ecosystems for Raspberry Pi and Arduino are significantly more comprehensive than all others, therefore will provide much better compatibility and ease of integration when general testing and design is needed.  If a specific application is needed, other platforms may provide better usability, quality, features or pricing. 
*__Applications for SBCs__ 
**actuating servo motors and sensors - to turn applications on/ off, e.g. irrigation, fans, lights, etc.
**cameras:  time lapsed photography (crops), security, etc.
**RFID Controllers: magnetic door locks, livestock monitoring

!!Tiki Features that will be necessary:
*[https://doc.tiki.org/PluginTracker|PluginTracker] - databases for storage and manipulation of data gathered
*[https://doc.tiki.org/Tracker-Tabular|Tracker Tabular] - for setting up custom import (/export) of data from external sources
*[https://doc.tiki.org/PluginWebservice|PluginWebService] -  to pull data from any JSON or SOAP enabled web service, e.g. Raspberry Pi, ROS2, ArduPilot, etc.
*[https://doc.tiki.org/Machine%20Learning|Machine Learning] - to automate learning processes
*[https://doc.tiki.org/PluginListExecute|Plugin List Execute ]- to set-up custom actions that can be executed on objects,
*[https://doc.tiki.org/Scheduler|Scheduler] - to schedule actions (e.g. Plugin ListExecute) to be run

!Open source code
!!Drone Software Standards
*[http://ardupilot.org/|ArduPilot] and [https://www.dronecode.org/|DroneCode] worked together to promote open sources standards, however, in 2016, they split for the following reason:
**"Unfortunately DroneCode has a built-in flaw. The structure and bylaws of DroneCode are built around exceptional power for the Platinum members, giving them extraordinary control over the future of DroneCode. This is a fundamental flaw in a project meant to promote free and open source software as it means that the business interests of a very small number of members can override the interests of the rest of the members and the community."  (see [https://discuss.ardupilot.org/t/ardupilot-and-dronecode/11295|full explanation] on the ArduPilot site)

!!Flight Control Software
*[http://ardupilot.org/|Ardupilot.org] is based on the [https://www.arduino.cc/|Arduino] single board computer, their site is current, well maintained and fully complies with FOSS standards.
**''"It is the only autopilot software capable of controlling any vehicle system imaginable, from conventional airplanes, multirotors, and helicopters, to boats and even submarines. And now being expanded to feature support for new emerging vehicle types such as quad-planes and compound helicopters."''
**their [http://ardupilot.org/copter/docs/common-autopilots.html|wiki] is extremely detailed
*[https://www.dronecode.org/| Dronecode.org] ''"promotes standardization of OS drone software"''
**''"The Dronecode Project hosted under the Linux Foundation serves as the vendor-neutral home for PX4, MAVLink, QGroundControl, and the Dronecode SDK."''
**Links to all GitHub pages for development on [https://www.dronecode.org/contribute/|this page], which include the Dronecode Project, Flight Stack, GCS, Coms, API's, Firmware/Hardware.
*[https://px4.io/|PX4 Autopilot] - PX4 ''"is an open source flight control software for drones and other unmanned vehicles."''
**this is another link directly to the [https://docs.px4.io/en/|PX4 Autopilot User Guide] ([https://opensource.org/licenses/BSD-3-Clause|BSD 3-clause license])
*[https://en.wikipedia.org/wiki/Linaro|Linaro] is 'open source software for ARM architecture
*[https://blog.ubuntu.com/tag/drones|Ubuntu blog for drones]

!!Bots
*[http://ardupilot.org/rover/|ArduRover] - similar to ArduPiilot for drones, ArduRover is open source software dedicated to rovers and boats
*[https://www.ros.org/|Robot Operating system] or, ROS - per [https://en.wikipedia.org/wiki/Robot_Operating_System|wikipedia] is "robotics middleware (i.e. collection of software frameworks for robot software development).  Although ROS is not an operating system, it provides services designed for a heterogeneous computer cluster such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management."
**a ROS Discourse channel/forum for Agriculture can be found [https://discourse.ros.org/c/ros-agriculture/63|here] while their full Discourse channel is [https://discourse.ros.org/|here]
*[https://developer.qualcomm.com/qualcomm-robotics-rb3-kit|Robotics RB3 Platform] is offered by Qualcom.  This is a hybrid product (hardware/software), per a Linux Gizmos [http://linuxgizmos.com/robotics-kit-runs-linux-on-new-dragonboard-845c-96boards-sbc/|article]  - "this makes starting easier (vs. 100% DIY).  It runs Linux with 'Robot Operating System (ROS)"..."Ubuntu suport is planned in the near future" (Feb. 2019)"

!!Resources
*[https://diydrones.com/|DIYdrones.com] is a strong source of information for all DIY drone projects
*[http://linuxgizmos.com/|LinuxGizmos.org] is an excellent resource that covers all types of 'Things', but predominately SBC's 
*[https://dronegarageblog.wordpress.com/|DroneGarageBlog] is a --good 'Open Source Drone Hardware and Software Reference'-- there is very little 'open source' to this site other than the title, it's just some guy who gets paid to do reviews on low end Chinese drones
**there are many thorough reviews of hackable drones, for example, the [https://dronegarageblog.wordpress.com/2017/12/27/m285-affordable-inmersionrc-vortex-quadcopter-clone-running-open-source/|Mana M285] and [https://dronegarageblog.wordpress.com/2018/05/04/dji-spark-an-open-source-drone-hacker-review/|DJI Spark]
**GitHub page of [https://github.com/Bin4ry/deejayeye-modder|Deejayeye modder] for code to modify the DJI Spark series

!!Private Companies but Support Open Source
*[https://auterion.com/about/|Auterion] is the creator of PixHawk, [https://en.wikipedia.org/wiki/MAVLink|MAVLink], [http://qgroundcontrol.org|QGC] and PX4 and is currently the largest contributor to PX4 open source code.
*Nvidia - has a series of SBC's called '[https://en.wikipedia.org/wiki/Nvidia_Jetson|Jetson]'
**Project Example:  [https://hackaday.io/project/175387-jetson-nano-robot-realsense-rplidar-joysticks|this project] featured on Hackaday.io, is a 4-wheeled bot based on Ubuntu 20.04 + ROS2 (Robot Operating System 2), per the description: "Nvidia Jetson Nano control and vision with 4-Wheel Steering, ROS2 RealSense2, RPlidar, BNO055, Python3, Pygame and ModBus to drive the Jetson Nano using modbus joystick commands"
*Qualcomm - has been active in the drone market since 2015 promoting Linux on their boards
**Ubuntu based [http://linuxgizmos.com/qualcomm-unveils-linux-based-uav-reference-platform/|'Snapdragon Flight' ](2015)
**Linux based [http://linuxgizmos.com/qualcomms-second-gen-drone-board-has-snapdragon-820-and-four-cameras/|'Qualcomm Flight Pro'] (2018)
*[https://www.intel.com/content/www/us/en/technology-innovation/aerial-technology-overview.html|Intel] has been involved with UAV's since about 2015
**[https://click.intel.com/intel-aero-platform-developer-kit.htm|Intel Aero Platform Developer Kits] page
*While DJI is one of the most recognized names in drones, most drones are not open source, e.g. 'hackable' - though in 2015 they introduced the [http://linuxgizmos.com/new-dji-drone-computer-runs-ubuntu-on-tegra-has-open-sdk/|'Manifold'] based on Ubuntu and claims to be for developers; at the time of the article (2015) is was only available for several of their high end Matrice 100 drone ($3500 - $4000) and some Mavic models ($700+
*[https://www.parrot.com/uk/|Parrot] seems to occupy the lower end 'toy drone market' but according to LinuxGizmos.com can be [http://linuxgizmos.com/parrot-unleashes-13-new-linux-based-mini-drones/|programmed with Linux SDK's].
*[https://3dr.com/solo-drone/|3DR] focus more on construction, mining and engineering, but claims to have open source drones (though their GitHub page is 'private')
**their [http://linuxgizmos.com/linux-based-3dr-drone-features-gopro-camera-tricks/|Solo quadcopeter] is priced from $1000 - $2000
*[http://www.hex.aero/#aboutus|Hex]  (private company)  is an "open source hardware manufacturer which produces open source drone autopilots" based on PixHawk which are accessible on their [http://www.hex.aero/?page_id=236|Download] page
**Link to an article on ArduPilot which demonstrates [https://discuss.ardupilot.org/t/zigzag-mode-for-copter-3-7/33717|'Zig-Zag' mode] for piloting a drone back and forth across a field, e.g. crop spraying, which was done with the company listed above, Hex

!!Other Open Source Options
*Mozilla offers [https://iot.mozilla.org/gateway/|'Things Gateway'] for IoT projects

!!Other Open Source Tools
!!! Drone Video Editing Tools
*[https://www.digikam.org/about/|digiKam] is an open source digital photo and video management application which is reported to support DJI drones
*[https://www.blender.org/|Blender] is a leading open source tool
*[https://www.openshot.org/|OpenShot] is one more
!!!Mapping
*[A Free and Open Source Geographic Information System |QGIS] - A Free and Open Source Geographic Information System 

!Obstacles and Limitations
!!Artificial Intelligence (AI) / Machine Learning (ML)
*__Autonomy:__ necessary for tasks and problems to be completed autonomously 
*__Continual contact:__ contact between drones to work as one unit in real time
**to be able to complete the task despite the loss of one or more drones
*__Resolving problems:__ numerous 'problems' will be encountered in the field on a daily basis, it will be necessary to create and prioritize these problems for developers to resolve such as:
**evacuation and replacement when a drone breaks (power supply expires, environmental factors, like a tree falls on 10 - 20 planting bots), etc.)
**re-programming remaining drones so task can be completed with remaining drones until the new one(s) arrive
**visual recognition of problems
***differentiating between the crops and weeds
***differentiating problem areas of a field,, i.e. so additional liquid fertilizer can be applied only in those areas
*Tiki ((Machine Learning|Machine Learning ))and ((Rubix ML)) will be used in resolving these issues

!!Agriculture Environment
*Agriculture is a very difficult working environment.  Unlike, for example, an automobile factory, farming has:
**a wide range of humidity, temperature and wind
**significant dust, vibration, harshness
**lack of easily accessible power
**limited or no internet
!!Limitations of Drones / Bots
*small farm bots cannot complete some farming operations such as 'Cultivation' and 'Harvesting' (see 'Sequence of Farming Operations ' at bottom of page)
**Cultivation -  will always require heavy equipment to dig into the ground, with one possible exception: no-till or low-till farming
**Harvesting - combines are extremely complex pieces of equipment with thousands of moving parts, most likely it will not be economically possible to reproduce this on the scale of a small bot


!Similar Open Source Code for Integration with Tiki
*[https://blynk.io/|Blynk.io] has some possible modules that could be of benefits (libraries, Arduino IDE, app for IoS/Android)
**GitHub [https://github.com/blynkkk/blynk-library|page]
**[https://www.youtube.com/watch?v=YULg0IoqoZM|YouTube video] explaining Blynk


{FADE(label="Sequence of Farming Operations" icon="y")}
This is the order of steps, regardless of whether a planting season starts in spring or fall:
#Tillage - Plowing (very deep), Discing (deep), Cultivation (light), etc.
#Spraying - crop protection application (liquid)
#Planting - planting crops
#Fertilizing  and Spraying (many times)- spreading (pellets) or spraying (liquid)
#Harvesting - gathering the crop{FADE}


See also: 
* http://wikisuite.org/Building
* https://farmhack.org/tools
* https://medium.com/included-vc/there-is-enormous-potential-for-investment-in-african-agritech-and-heres-why-be25dd6c4605
* https://farmos.org/
* https://agstack.org/
Show PHP error messages