Artificial Intelligence Based Multipurpose Autonomous Agricultural Robot

This article is a complete guideline for developing Autonomous Agricultural Robot using Arduino. The thesis are written on the basis of research as it was our final year project which got second position so if you are new and want to create something new then you are at the right place. Read the guideline and create your own Autonomous pick and place robot using arduino. lets get started with project.

How Autonomous Agricultural Robot Work?

As with the Roomba, most autonomous robots come with devices that let them detect their surroundings, make choices and take actions (also called acting).

Autonomous robots can sense their environment with a range of technology like laser scanners, cameras, microphones, sensors for force, and spectrometers. Simpler autonomous robots, such as Roomba Roomba, rely on ultrasound or infrared sensors to aid to “see” obstacles in their route. More advanced robots, like autonomous vehicles, use more advanced sensors such as radar, cameras, and lidar (a detection system similar to radar that uses laser light). Together with image recognition software, these sensors allow robots to accurately identify and classify what objects they “see” and make real-time “decisions”.

Some autonomous robots are made to operate in restricted areas. For example, lawn-mowing machines could employ borders buried in marking the boundaries of a yard, so they don’t mow the entire neighbourhood (or get into the path of the neighbour’s cats). For example, a cleaner robot could use the GPS to track an area and then move across the area from one point. Robots created to explore different realms could use sensors to “build” a region map when they move.

Autonomous robots come with onboard computers. However, they can be connected to the Internet to download data and upload updates. “Self-learning” robots, also known as intelligent or adaptive robots, use AI software on board to learn from their surroundings and alter their behaviour. One instance of this type of robot is Aibo, a pet robot from Japan that adapts to its surroundings. Aibo can learn to shake.


In this project GPS and machine vision fused together to become a trending development for Agriculture Robot guidance systems. Robotic harvesting gives innovative solutions in robot mechanics to overcome environmental challenges. 
This research develops an Autonomous Agricultural Robot vehicle using a GPS controllable app to set the field location and self-harvest without human interaction. An image processing algorithm has been designed to identify the desired crops for harvesting. The harvested plants are transferred into a basket using a conveyer belt mechanism.


Autonomous Robot
Autonomous robot

Components used in Autonomous Agricultural Robot

  • Arduino Mega
  • Power Window Motors For tires. (these are those motors which are used in car window you can google it as well)
  • Bluetooth module HC-06.
  • HMC5883L Compass.
  • Ublox NEO-6M GPS Module.
  • 4-channel Relay Module.
  • Breadboard power supply 5v.
  • Reel movers Blades are used for cutting purposes.
  • Self-made conveyor belt system, as shown in the video.
  • Load cell for weight measurement. 
  • Hx711 Load cell Amplifier.
  • Ultrasonic sensor for collision avoidance.
  • power supply  12-volt
  • car battery if you want to design like the same and use same motors, i.e., window motors.

Requirement Specification of Autonomous Agricultural Robot Using Arduino

Auto Mode

In order, GPS coordinates are first given, which define the desired field for harvesting. The GPS module collects the entered coordinates from the satellite. These coordinates are responsible for the movement of Agriculture robots. Along with the change of Agriculture Robot, there is another action being performed in parallel; image processing.
The harvesting of any desired crop can be done using image processing. Once the desired plant is detected, the access of GPs coordinates is cut-off right away. The Agriculture Robot then follows the crop, and a signal is given to the motor controlling the harvesting blades. The blades start as well as the conveyor belt. When the plants are being harvested, they are also being transferred into a basket simultaneously. The load in the basket is being checked continuously through a load cell. When the bucket is half, one pair of LED’s glow and when the basket is full, the other couple of LED’s light, indicating the need to unload the basket. 
Autonomous Robot
System Block Diagram

Manual mode in Autonomous Agricultural Robot

“How to build Autonomous Pick and place Robot Using Arduino” The Agribot can be controlled manually as well, using the developed mobile application. The mobile application contains options like ‘Forward,’ ‘Reverse,’ ‘Left’, ‘Right’, ‘Start Harvesting’, ‘GPS info’, ‘Go to waypoint’ etc. Using these options, the user can control the Agribot. The Bluetooth module used gives a range of 100 meters. So, within 100 meters, Agribot can be controlled through the mobile application.

Power Window Motor

“How to build to Autonomous Pick And place Robot Using Arduinouses power window motors Power window motors are also called electronic engines as they are being used in many robotic applications despite in automobiles. It is basically controlled by a start and stop switch circuit when the button is pressed the motor comes to action. As a result, it can move either in clockwise or anti-clockwise so by this method the car window can either be up or down.
Autonomous Robot
power window motor


Bluetooth Module HC-06 for Autonomous Agricultural Robot

HC-06 is a module used for short-range wireless communication between microcontrollers. It uses protocol: 2.0 Communication. So far, it is the cheapest method for wireless communication  HC-06 module uses a a technique called ‘Frequency hopping speed spectrum technique (FHSS) to avoid interference and have full-duplex transmission.
Autonomous Robot
Bluetooth module HC-06


HC-06 Bluetooth module communicates using ‘UART Interface’. Through this interface, the data is either sent to or received from the blade. Fig 3.5 shows a typical interface circuit to Arduino.
Autonomous Robot
Interfacing HC-06 to Arduino

HC-06 is a slave module. For establishing a wireless interface, a master would be required   which can be achieved from setup of Arduino and master module or using a smartphone as a master. When the HC-06 the module receives data from the master, and data is transmitted to Arduino through UART serial communication

HMC5883L Compass for Autonomous Agricultural Robot

HMC588L is a 3-axis digital compass that uses a magneto-resistive sensor, made of Ni-Fe material. Its resistance changes as the applied magnetic field changes. The movement of Ni-Fe material experiences the magnetic field of Earth in space, which in turn changes the resistance of the material. As a result, output voltage changes across the bridge circuit. The voltage changes help in obtaining the direction of the magnetic field in space.
A magnetometer is used as a compass in practical applications like mobile phones, navigation systems in vehicles for direction indication purposes.
Autonomous Robot
HMC588L 3-axis Digital Compass


Autonomous Robot
Earth’s magnetic field
HMC588L compass can acquire data even in the presence of the low magnetic field. As the name implies, data is distributed over three axes and converted into the differential voltage of 2.7V to 6.5V DC. This voltage serves as input to micro-controllers operating at different voltages.

For more info HMC5883L specification

Ublox NEO-6M GPS Module for Autonomous Agricultural Robot

The NEO-6M GPS module is a GPS receiver with a built-in antenna (25 x 25 x 4mm) used for potent satellite search purposes. The module is even capable of storing the data when the main power is off, due to its data backup battery.
Autonomous Robot
Earth’s magnetic field

Introduction of Neo-6M GPS Module

NEO-6M is a complete GPS module with an integrated ceramic antenna and an inbuilt EEPROM (Electronically Erasable Programmable Read-Only Memory) to save configured data. The status of the module can be monitored with the help of power and signal indicators. The green indicator on GPS module blinks when the module starts working, whereas the red indicator blinks when the module is powered on. The GPS module uses the ‘RS232 TTL.’ interface.
The NEO-6M GPS module assembled on a robot / the vehicle can make it move to a fixed position and return to its initial position automatically by giving waypoints.

for more info, you can find Data sheet of U-Blox

Reel Mover Blades

The blades in a reel mover spin in a direction perpendicular to the ground. The rotation of the blades cut the crops as scissors would do so. The rotation of blades makes it easier to cut the plants. The method of scissors-like-cutting is better for plants. These blades are more beneficial to be used for small vegetables like spinach, cabbage, etc.

Autonomous Robot Reel Mower Blades
Reel Mower Blades

However, blades can be upgraded for other types of crops as well. If we want to harvest the wheat crop, then wheat reaper blades can be assembled accordingly.


Conveyer Belt

A conveyer belt is a medium used for carrying objects from one place to another. A conveyor belt mechanism usually consists of two or more pulleys, which forms an endless loop of rotation. Either of the lifts is powered to rotate the conveyer belt. We used the conveyor belt system in order to transfer the harvested crops from the cutter into a basket. The harvested plantsare inclined to fall at the conveyer belt, from where they can be moved further into a bucket.
Autonomous Robot Conveyer belt
Conveyer belt


Load Cell

A load cell is a transducer that produces an electrical signal by force being measured. There are various types of load cells, including hydraulic, pneumatic, and strain gauge load cells. Load cells are a form of force transducers for use in weight measurement systems. The calibration can be made in grams, kilograms, etc. The load cells are of various ranges starting from 1 kg up to tons.
Autonomous Robot Load Cell
Load Cell

Introduction of load cell

Load cells are kind of sensors that are used for the detection of force, mass, torque, etc. They can measure weight in grams, kilograms, and even tons.
When a force is applied on the load cell, it senses the weight and converts the corresponding pressure into an electrical signal. Hence, they are also known as load transducers since they turn a force into current/voltage.


A load cell usually has four wires; red, black, green, and white. The red wire is generally used for proving power supply (VCC); the black wire is used for grounding purposes (GND). The green and white wires are used for providing data and clock (CLK).
A load cell usually produces output in millivolts, which are not possible to be read by the micro-controller. Hence, an amplifier is needed for that purpose.
We used a 1kg load cell for the weight measurement process. However, it can be replaced by large load cells; 20, 50 kg, etc.

System design And the implementation of Autonomous Agricultural Robot Using Arduino Image Processing

work on image processing technique. The image processing is carried out in order to detect the desired crops for harvesting. The image processing is based on the object following procedure. A mobile application was developed for this purpose. The camera was then later assembled on the front of Agribot. The form developed for image processing that could identify the shape, color, and size of the desired object was made in ‘Python’ using the ‘OpenCV‘ library.’ OpenCV‘ is a programming library of functions developed by Intel, used primarily for real-time computer vision.
Autonomous Robot
Image Processing application


Autonomous Robot Image Processing (Object following technique)
Image Processing (Object following technique)


Mobile Application for Autonomous Agricultural Robot
The mobile application for manually controlling the Agriculture Robot has been developed on the ‘App Inventor.’ ‘App Inventor’ provides a user-friendly environment for developing mobile applications compatible with android.
The the application covers all the aspects for controlling Agriculture robots. It has two modes of control. Auto mode: This mode can be used by selecting the ‘Auto mode’ option in the application. The Bluetooth is connected to the Agribot, and the user is asked to enter the desired coordinates of the field. As soon as the coordinates are entered, the GPS Compass HMC5883L receives the entered coordinates from the satellites within 100 meters range and then gives the coordinates to GPS Module. A signal is generated from the GPS module and transmitted to Bluetooth module HC 06, which afterward sends to the L298 motor driver. The signal received on the motor driver starts the motor due to which Agribot starts.
Manual:In this mode, the mobile application is already disconnected from the Bluetooth. The user can now control the Agriculture Robot as he wants. There are different options like forwarding, Reverse, Left, Right for controlling the direction. The user has to first enter the coordinates and then select ‘Go to Waypoints’ option. The user can also control the process of harvesting by choosing the ‘Harvesting blades’ option.


Brake Control Circuit

The brake control circuit is developed to control the Agriculture Robot. It is done using a 4 channel relay module of 5V. This relay module is generally compatible with most of the micro-controllers like Arduino, Raspberry Pi, AVR, etc. to control heavy loads like DC motors, solenoids, electromagnets, etc.
The four-channel relay module consists of four high current relays. It requires a minimum of 15-20mA of driver current in order to function correctly. This relay module is a good option due to its compact structure, protected circuitry, reliability, and secure handling.
The four-channel relay module is selected by keeping the power requirements in view.
Autonomous Robot
Brake control through Relay

Mobile Application:

The mobile application is developed using the ‘App Inventor.’ The mobile application was developed on the basis of the following flowchart.

When the ‘Connect BT’ option is selected, the device starts searching for the available Bluetooth devices. If the device is found, the MAC address is checked whether it matches or not. If the address of both devices matches, then a successful pairing is done. If the address does not match, the devices search for Bluetooth again. After this, GPS coordinates are taken, and the satellites search those coordinates. If the coordinates are found, the Agribot starts to move. If no, then a message ‘Check wires’ is displayed on the screen. 
Agriculture Robot
mobile application


Image Processing:

A camera is mounted on the front of the Agriculture Robots, which performs image processing for the detection of plants. The camera is placed in such a position to get a clear view of the crop field. The crop line is the transition of cut and uncut area of the field.
First, the camera gets live images of the crops. Then, these images are converted into grayscale images. A ‘Gaussian Blur’ filter is then applied to remove the noises. After that, the boundaries are searched in the image to find the crop line. A line is passed through the most significant barrier, which shows the crop line. This crop line helps the Agriculture robot to keep its tires on the uncut part of the crop. Following is the flow chart for the image processing of plants.
Agriculture Robot
Block diagram
As soon as the crops are detected, a signal is sent to the motor controlling the harvesting blades and conveyor belt. The engine starts due to which the process of harvesting along with crop collection starts. When the crops are not detected, the Agribot keeps on moving by the given GPS coordinates and searches for the plants until they are found.


Path Planning for Autonomous Agricultural Robot:

Path planning was one of the significant and complicated tasks for the autonomous mode. The Autonomous Robot plans its path before movement. For this purpose, Arduino is used, which communicates and collects data from the GPS coordinates and HMC588L compass. The starting angle of the vehicle is also defined. The Agribot then generates a path according to the given coordinates.
The HMC588L compass is calibrated to 90 degrees initially. This is done so that the GPS can figure out the front and backside of the Agriculture robot. Similarly, if the compass is calibrated at 270 degrees, the GPS will find out that this is not the front side of Autonomous Robot, and it will try to align at 90 degrees. The following flowchart was developed for setting the Agribot in forwarding direction initially. 
Agriculture Robot
how it works

Position Mapping for Autonomous Agricultural Robot:

When “The Agriculture robot operates in autonomous mode,” it needs to perform autonomous navigation in the crop field. The main objective in this mode is to make the Agribot moves and harvests on its own without human interaction.
The position mapping of Agriculture robot to make it autonomous is done by the NEO 6-M GPS module and HMC588L compass.
The user must first give five coordinates of the desired crop field, which is to be harvested. After defining the coordinates, a virtual boundary is created by the GPS to complete the path of the crop field. The limit is defined such that the final coordinate touches the first parallel to make the Agriculture Robot goes to its initial position after completion.


Weight Measurement of Autonomous Agricultural Robot:

The weight measurement is done using a load cell. We used a load cell of 1kg, which can measure the weight up to 1 kg. The load cell measures the force being exerted on it and converts that force into an electrical signal. This electrical signal is usually in millivolts. To make it readable, HX711 the amplifier is connected between the load cell and Arduino. This amplifier amplifies the weak output signal from the load cell and gives it to the Arduino controller.
The range of weight to be measured can be increased by only using a broad range load cell. When the pressure in the basket reaches 0.5 kg (half full), one pair of LEDs turn ON. Similarly, when the weight in the basket reaches 1 kg (complete), another pair of LEDs turn ON to indicate that basket has reached its maximum storing capacity.


Weight Measurement System
Weight Measurement System


Collision avoidance:

The collision avoidance process is done using the ultrasonic sensor. We set the range for the sensor to detect the object when the Agriculture robot is 20 cm away from the purpose. Its range can be increased up to 500 cm. The ultrasonic sensor emits ultrasonic waves. When these waves hit and reflect the sensor, the presence of an object is detected.
Position of the ultrasonic sensor
Position of the ultrasonic sensor
Note: Make sure to test everything on prototype first 

Download the code from here for more info and more comment below


Related Stories


  1. What’s up, all is going sound here and ofcourse every one is
    sharing information, that’s really excellent, keep up writing.

  2. Everything is very open with a precise clarification of the challenges.
    It was truly informative. Your website is useful. Thanks for sharing!

Leave A Reply

Please enter your comment!
Please enter your name here

Stay on op - Ge the daily news in your inbox