The Decentralized Microservice Drone System for Digital Agriculture is a distributed, scalable platform designed to orchestrate autonomous drone operations for agricultural field missions. The system captures, processes, and analyzes aerial imagery and video data to support precision agriculture, crop monitoring, and field management operations.
- Software
- Digital-Agriculture
- Animal-Ecology
National Science Foundation (NSF) funded AI institute for Intelligent Cyberinfrastructure with Computational Learning in the Environment (ICICLE) (OAC 2112606)
- Ubuntu (22.01 or higher)
- Libraries using apt-get: bash, curl, python3, git, and docker.
- Hardware: at least (1) 4 1.2 Ghz CPU cores, (2) 8 GB Ram, and (3) 256 GB storage.
- Parrot Anafi Drones
- K3s (Lightweight Kubernetes)
The installation requires an Ubuntu-based edge device with the following configurations:
User Configuration: The system must have a user account named "icicle" with passwordless sudo privileges to root access. This user account serves as the primary operator for the OpenPASS installation and ongoing operations.
Directory Structure: The installation expects the /home/icicle
directory to exist and be accessible by the current user. Any existing icicleEdge
directory will be removed and recreated during the installation process.
Network Access: The device requires internet connectivity for package downloads, Git repository access, and DNS resolution configuration.
# Clone the git repository
git clone https://github.com/ICICLE-ai/OpenPass.git
# Search for the cloned repository
cd OpenPass
# Run install.sh script inside the same directory
bash install.sh
# ⚠️Note: Don't worry if the application displays this error: error: Internal error occurred: unable to upgrade connection: container not found ("apache"). It will take some time and application will automatically processed with futher installation.
# ⚠️Note: OpenPass directory is only for installation. Once done the application must be controlled and runned from icicleEdge folder created inside the /home/icicle/icicleEdge/
# Check if pods are READ and in RUNNING state
kubecmd get pods
cd icicleEdge/ea1openpass/
# One all the pods are RUNNING
bash restartASU.sh
#Once all pods are in READY state run
bash home/icicle/icicleEdge/ea1openpass/startWebsite.sh
# If application already installed
cd icicleEdge
cd ea1openpass/restartMicroservices.sh
# Check if pods are READ and in RUNNING state
kubecmd get pods
# One all the pods are RUNNING
bash restartASU.sh
#Once all pods are in READY state run
bash home/icicle/icicleEdge/ea1openpass/startWebsite.sh
After running the startWebsite.sh you can see this dashborad:
Note: OpenPass offers several missions that can be used for data collection. These include missions utilizing GPS as well as movement-based (X,Y,Z axis) missions. OpenPass also provides an Orthomosaic Mission, which generates an orthomosaic of one acre of land. Each mission has its own description displayed on its respective button. Once you click on the mission button you can also have a look at the detailed description of the mission.
We are currently working on and testing missions that support YOLO libraries, enabling real-time object detection during mission execution on OpenPass.
This installation script automates the deployment of OpenPASS and its required dependencies on edge computing devices, specifically configured for laptop-based implementations. The system establishes a complete microservice environment with containerized applications, networking configuration, and essential development tools.
The installation begins by configuring the Ubuntu system to optimize performance for edge computing operations. The script disables system hibernation, sleep modes, and screen locking features that could interfere with continuous microservice operations. These modifications ensure uninterrupted service availability during extended operational periods.
The script installs a comprehensive set of software packages required for the OpenPASS ecosystem. Core components include Docker for containerization, Python 3 for application development, Git for version control, and various networking utilities. Additional packages support database connectivity through MariaDB libraries and multimedia processing capabilities via SDL2 libraries.
A critical component of the installation involves DNS resolution configuration. The script replaces the default systemd-resolved service with traditional resolv.conf configuration, pointing to Google's public DNS servers (8.8.4.4). This change ensures reliable network connectivity for containerized services and external API communications.
The installation configures Git with default user credentials and repository settings, establishing a standardized development environment. Helm package manager installation through Snap provides Kubernetes application deployment capabilities essential for microservice orchestration.
The script clones the OpenPASS repository from GitHub and establishes a structured directory hierarchy within the icicleEdge folder. This includes separate directories for binary executables, OpenPASS applications, and Helm configuration files. The installation creates convenient aliases for Kubernetes command-line operations.
A virtual network interface (icl231) is created using Linux dummy network drivers, configured with a specific MAC address and IP address (192.168.231.231/24). This interface provides isolated networking capabilities for testing and development scenarios without requiring physical network hardware.
The installation configures Python dependencies through pip3, installing specialized packages for software pilot operations, multimedia processing, and API development. These packages support the core functionality required for drone operations and data processing workflows.
SSH key management is automated through the installation script, copying necessary authentication credentials from the OpenPASS repository to the user's SSH directory. Proper file permissions are set to ensure secure access to remote repositories and services.
The installation concludes by executing the microservice startup script, which initializes the core OpenPASS services and establishes the runtime environment. This automated startup ensures that all components are properly configured and ready for operational use.
Following successful installation, users should verify that Docker services are running, Kubernetes cluster is accessible through the kubecmd alias, and the virtual network interface is properly configured. The OpenPASS web interface should be accessible for mission planning and system monitoring.
The installation uses the "stage" Git repository by default, providing read-only access to stable releases. This configuration ensures operational stability while preventing unauthorized modifications to core system components.
Alternative repository access can be configured by passing parameters to the installation script, enabling development repository access with write permissions for system administrators and developers.
Regular updates should be performed through the established Git workflow, ensuring that security patches and feature enhancements are properly integrated. The modular architecture allows for selective component updates without full system reinstallation.
Common installation issues typically relate to user permissions, network connectivity, or conflicting software packages. The script includes error checking for critical prerequisites, providing clear diagnostic messages when installation requirements are not met.
This installation framework provides a robust foundation for deploying OpenPASS on edge computing devices, supporting scalable drone operations and agricultural data processing workflows.