Motivation

FarmBot OS provides all the tools necessary for controlling and supervising the Farmbots in their farming tasks. However, it is not always as easy to use in custom builds and collaborative multi-robot environments.

ROS2 is built on modern industry standards and practices, ensuring compatibility and future proofing for robotics applications. The framework provides the means for robot control, data collection, network communication, robot collaboration and many more. Alongside all those reasons, the modularity and flexibility of ROS2 makes research and versioning significantly easier.

Keeping true to the mission of Farmbot, the ROS2 control platform developed by the AURA Team, named ROS2-FB or ROS2 FarmBot, is shared as an open-source alternative to the original control software.


Outline

ROS2-FB was designed as a research platform for the AURA project. Therefore the features were ported based on a team research priority system. Most of the functionalities of the original OS were transfered, but the ROS2 variant might be harder to use for people who are not well versed into programming or ROS2.

The two main examples of this are: the lack of a GUI for control, requiring config manipualtion and terminal control for the robots; the command interface, while built to handle the low-level commands behind Farmbot OS, many high level commands are not implemented and need to be accessed through node calls.

The aim is for a full feature port in the future, however as the project requirements are met by the current version, the developement is treated as a side project for the team.

If you are intereseted in checking the software out for yourself, you can find it here.


Implementation

The hardware does not need to be adapted in any way for running ROS2 Farmbot. Make sure that the Farmduino has the latest firmware installed on it and install Ubuntu 22.04 Server on the Raspberry Pi (Desktop version is not needed as the farmbots can be controlled over SSH). If you are not using a LAN Cable, ensure that you are adding the network details when installing Ubuntu. Once Ubuntu is installed, install ROS2 Humble following the tutorial on the official page.

The implementation follows a modular design, splitting the codebase into multiple packages representing the main functionality blocks in the codebase. Those packages can be updated or changes without affecting the functionality of other packages. This also enables for easier versioning and debugging.

The documentation of the codebase can be found on the GitHub together with other information that might be of use.


Results

The ROS2 Farmbot software proved successful in managing multiple robots on the same network, enabling both robot to robot communication and robot to control hub communication.

Also, as the code is written in Python over the ROS2 interface, versioning and modular design became considerably easier.


Support and utilization

If you require any support in the utilization of the farmbots, please read the documentation provided on the GitHub. If you still require assistance, feel free to contact us through GitHub or by email.