Robotics in precision agriculture has the potential to improve competitiveness and increase sustainability compared to current crop production methods [
1], and has become an increasingly active area of research during the past decades. Tractor guidance using Global Navigation Satellite System (GNSS) based sensor systems for route following and local sensor systems for accurate in-row navigation in row crops and orchards have already reached the market. One example is the John Deere iTEC Pro which supports GNSS based steering in straight and curved rows and at headlands while controlling speed and performing active implement guidance. Another example is the Claas Cam Pilot system which navigates a tractor through row crops using 3D computer vision to detect the location of the crop rows. Early prototypes of smaller field robots performing precision agriculture tasks without human intervention also exist [
2,
3,
4,
5,
6]. But research in advanced cognitive [
7] perception and behaviour that are required to enable a more efficient, reliable and safe autonomy becomes increasingly demanding. The level of complexity in an unstructured, dynamic, open-ended and weather influenced environment like a crop field or an orchard is high, and the size and complexity of the software needed to perform experiments impose ever greater demands on research groups. A lack of collaboration between the research groups contributes to the problem. Scientific publications are published on findings and results in precision agriculture, but little field robot software has actually been released, published and documented for others to use. We hypothesize that a common open software platform tailored to field robots in precision agriculture will significantly decrease the development time and resources required to perform field experiments due to efficient reuse of existing work across projects and robot platforms. The aim of this work is to establish such a software platform and evaluate the performance when applied to different precision agriculture tasks and field robots.
Related Work
The literature contains numerous references to relevant proposals and implemented solutions within robot software architectures, frameworks, middlewares, development environments, libraries
etc. Below is a brief review of some of the best known and widely used solutions.
Table 1 compares the middleware specifications.
CARMEN Robot Navigation Toolkit from the Carnegie Mellon University (CMU) [
8] is a modular software library for mobile robot control. It provides interfaces to a number of robot platforms and sensors, a 2d simulator and algorithms for localization, mapping, path planning
etc. The architecture features 3 layers, the lowest layer contains hardware interfaces and collision detection, the middle layer localization and navigation, and the highest layer contains all high level tasks. Inter Process Communication (IPC), another project by CMU, is used for sending data between processes based on TCP/IP sockets.
CLARAty (Coupled Layer Architecture for Robotic Autonomy) [
9,
10] is a framework for generic and reusable software for heterogeneous robot platforms developed by the Jet Propulsion Laboratory. CLARAty is a two-tiered coupled layer (decision and functional) architecture. The functional layer is a modular software library which provides an interface to the robot system and contains algorithms for low- and mid-level autonomy. The decision layer builds on top of this adding high-level autonomy to achieve mission goals. CLARAty consists of a public and a private repository.
Table 1.
Comparison of middleware specification. The year listed under Update indicates the latest official release or substantial update.
Table 1.
Comparison of middleware specification. The year listed under Update indicates the latest official release or substantial update.
| CARMEN | CLARAty | MRDS | ORCA | Orocos | Player | ROS |
---|
Updated | 2008 | 2007 | 2012 | 2009 | 2014 | 2010 | 2014 |
Main Languages | C | C++ | C# VPL | C++ | C++ | C++ TCL Java Python | C++ Python Lisp |
Primary Platforms | Linux | VxWorks Linux Solaris | Windows | Linux | Linux Windows OSX | Linux Solaris BSD OSX | Linux |
Component Interface | IPC | Unknown | CCR, DSS | ICE | CORBA | TCP sockets | XMLRPC |
License | GPLv2 /BSD | Proprietary /Closed | Commercial /Academic | LGPL/ GPL | LGPL | GPLv3 | BSD 3-Clause |
MRDS (Microsoft Robotics Developer Studio) [
11] is a development environment for robot control and simulation. MRDS has support for a number of programming languages including it’s own platform specific language Visual Programming Language (VPL). It supports a wide range of robotics hardware platforms and integrates a fully featured simulation environment. The component interface is based on the .NET Concurrency and Coordination Runtime (CCR) library for managing asynchronous, parallel tasks using message-passing and Decentralized Software Services (DSS), a lightweight .NET-based runtime environment.
Orca [
12] is an open-source software framework for developing component-based robotic systems. The aim of Orca is to promote software reuse through definition of interfaces, providing component libraries and maintaining a public component repository. The intended use is for both commercial applications and research environments. The Orca project is a branch out from Orocos, one main difference is that Orca uses the Internet Communications Engine (ICE) [
13].
Orocos (Open Robot Control Software) [
14] contains portable C++ libraries for advanced machine and robot control. Orocos builds upon the open source Common Object Request Broker Architecture (CORBA) middleware. Orocos is in active development and contains extensions that support other frameworks including ROS.
Player [
15] is one of the most used robot control interfaces and supports a wide variety of robots and components. The Player architecture is based on a
network server which runs on the robot platform and provides a TCP socket interface to the robot. The
client program is thus able to read data from sensors, write commands to actuators
etc. by connecting to the socket. Player coexists with Stage which is a 2d multiple robot simulator and Gazebo which is 3d multiple robot simulator based on a physics engine.
ROS (Robot Operating System) [
16] is a flexible framework for writing robot software. It provides services, libraries and tools for building robotics applications. Examples are hardware abstraction and device control, interprocess communication, multi-computer environment support
etc. ROS is in active development and is maintained by Open Source Robotics Foundation who provides access to a large repository of available components and maintains a list of external repositories provided by the growing community. The ROS core code and most ROS packages are released under the BSD 3-Clause License which facilitates commercial use of the code.
In terms of robot software architectures the above mentioned Carmen and CLARAty each use their own architecture, wheres a MRDS, ORCA, Orocos and ROS don’t specify or endorse a certain architecture. Player does not specify an architecture beyond the two-layer Network server and Client program. Several relevant but lesser known robot software architectures are described in the literature:
Ref [
17] argues that the sense-model-plan-act paradigm used in most architectures is unable to react in a dynamical environment because it depends heavily on the model, and that a behaviour-based approach such as the subsumption architecture [
18] is limited by the purely reactive behaviours and does not perform well when carrying out complex tasks. A hybrid is thus presented containing three layers: Hardware layer, Reactive layer and Deliberative layer. The reactive layer is grouped into a perception module (localization and mapping) and an action module (navigation and actuation). The deliberative layer contains high level mapping and path planning.
Ref [
19] introduces Agricultural Architecture (
Agriture), a control architecture designed for teams of agricultural robots. Agriture consists of three layers, the physical layer which is either the robot or the Stage/Gazebo simulators, an Architecture middleware based on
Player,
Java Agent Development Framework and
High Level Architecture, and a Distributed application layer for the application software.
Ref [
20] proposed
Agroamara, a hybrid agent of behaviour architecture for autonomous farming vehicles. Here
agent of behaviour describes computational and control processes addressed to reach or to maintain a goal, with perceptual, deliberative and reactive abilities. The architecture groups the agents into perceptual and motor agents and uses layers to describe the information flow and hierarchy of activation of the agents. Data sharing is handled through shared memory and peer to peer message parsing. Multiprocessing is supported using winsocket.
Ref [
21] describes the software architecture of the Autonomous Mobile Outdoor Robot (
AMOR) which won the first price in autonomous driving in the European Land Robot Trial (ELROB) 2007 for urban and non-urban terrain. The robot software is not publicly available, however the paper does provide a good introduction to the design as well as the navigation modules. Intercommunication is handled by a
Virtual Sensor Actor Layer that use TCP sockets and unifies the access to all sensors and actors. The main modules of the high level software is
global model (map database),
global path planning (deciding plans for the indended behaviour),
local model (based on laser scanner and camera data),
local path planning and
basic reflexes.
Ref [
22] introduces
Mobotware, a plug-in based framwork for mobile robots. Mobotware is divided into a hard- and a soft realtime section. Each section is decomposed into layers of increasing abstraction: Hardware abstraction, reactive execution, deliberative perception and planning. The framework has three core modules, a
Robot Hardware Daemon providing hardware abstraction, a
Mobile Robot Controller handling real-time closed loop controlling, and
Automation Robot Servers handling sensor processing, mission planning and management.
Ref [
23,
24] propose a system architecture to enable behavioural control of an autonomous tractor based on the subsumption architecture [
18]. This work is related to the Software Architecture for Agricultural Robots (
SAFAR) project with the purpose to develop a set of designs, tools and resources to promote the development of agricultural robots. SAFAR is based upon MRDS and is closed source but supports a Python scripting engine.
In 2005 the Stanford robot
Stanley won the DARPA Grand Challenge by driving autonomously for 131 miles along an unrehearsed desert trail [
25]. The robot software is not publicly available, however the paper provides information on the software architecture and design considerations. Stanley contains approximately 30 software modules organized in 6 layers representing sensor interfaces, perception, planning and control, vehicle interface, user interface and global services. All modules are executed individually without interprocess synchronization and all data are globally time stamped. Interprocess communication is handled using publish-subscribe mechanisms based on the CMU IPC kit.
Table 2 compares some properties of the reviewed architectures with respect to this work. The data is based on the reviewed publications and information publicly available on the web. It should be noted that all the reviewed publications contains valuable and relevant knowledge, but at the same time the table underpins the need for collaboration between the research groups in precision agriculture with respect to software reuse as discussed in the problem description.
Table 2.
Comparison of robot software architectures with respect to the problem domain and hypothesis of this work. In the columns Agricultural applications, Multiple platforms and Multiple users Yes means that practical field trials have taken place. (Yes) in Open source means that not all software has been released and/or the license is not permissive free.
Table 2.
Comparison of robot software architectures with respect to the problem domain and hypothesis of this work. In the columns Agricultural applications, Multiple platforms and Multiple users Yes means that practical field trials have taken place. (Yes) in Open source means that not all software has been released and/or the license is not permissive free.
| Agricultural Applications | Multiple Platforms | Multiple Users | Open Source | Updated Recently |
---|
CARMEN | Yes | Yes | Yes | (Yes) | No |
CLARAty | No | Yes | Yes | (Yes) | No |
Agriture | No | No | No | No | No |
Agroamara | Yes | No | No | No | No |
AMOR | No | No | No | No | No |
Mobotware | Yes | Yes | Yes | No | Yes |
SAFAR | Yes | Yes | No | No | No |
Stanley | No | No | No | No | No |