Autonomous Urban Farming


During our third semester, we designed and constructed an autonomous robot for small-scale farming purposes. It consists out of a central pillar, attached to which is a scissor-like arm. The central pillar is able to rotate around it's z-axis, such that the tip of the arm is capable of reaching any given point in a radius of 1.5 meters.

Grobot is connected to a database which contains several data points to ensure the healthy growth of any given plant. It measures the ground moisture and waters the plants accordingly. It is also connected to a weather API, which allows Grobot to include expected rainfall in it's calculations.

Grobot is a redesign of FarmBot, which is based on a system of rails. In this fashion, the robot can reach any given point on a rectangular area, and additionally adjust the height of it's head.

We came to the conclusion that the application of rails in the Farmbot concept diminishes it's potential in private use as in large scale applications. Through a radical reduction in complexity we aimed at retaining Farmbot's functionality while reducing it's costs and designing it to be more visually pleasing. After a number of discarded ideas we realized that movements in all 3 axis are not necessary for most applications.

By assuming a fixed height of the head we relinquished one degree of freedom (vertical movements) in exchange for a reduced level of complexity. We realized that the remaining two degrees of freedom could be utilized by a simple scissor-shaped arm.


The robot is controlled by an Arduino, which is connected to a Node.js server. It has access to an SQL database which stores all relevant information necessary to dynamically generate the graphic representation of the field.

The database contains information such as the species and position of all plants in radial coordinates. These are transformed into carthesic coordinates in order to display the field in the frontend.


The frontend includes said representation of the field to grant the user a clear overview of his garden. The first prototype (left) was realized with P5.js (right).


The final prototype was capable of watering individual plants, included a functioning, dynamically generated frontend and a database, which contained all relevant information about the plants on the field. It was displayed at the 2019 "Make Ostw├╝rttemberg" convention and is continually being improved upon.

Next steps include a redesign of the software, and an increase of functionality of Grobot's head according to our concept.