Ernte Elite is an AI-driven agricultural automation system running on Raspberry Pi.
It integrates AI vision, OCR, and robotic arm control for intelligent field and lab automation.
| Folder | Description |
|---|---|
| app/ | Backend web service (API + frontend serving). |
| libs/ | AI model libraries, OCR utilities, and SDKs (e.g., Igus robotic arm). |
| robot/ | Robotic arm control logic and Jupyter notebooks. |
| web/ | Frontend web interface source code. |
| daten/ | Collected AI and experiment data. |
- Real-time AI inference using TensorFlow Lite (
tflite-runtime) - OCR recognition with PaddleOCR
- Image processing via OpenCV
- Robotic arm control through Igus CRI SDK
- Auto-starting JupyterLab for web monitoring and control
- Built-in Wi-Fi hotspot for local access
- Direct Ethernet connection with the robotic arm
| Component | Specification |
|---|---|
| Hardware | Raspberry Pi 4 (4GB/8GB) |
| Operating System | Debian GNU/Linux 12 (Bookworm) — 64-bit |
| Python Version | 3.11.2 only |
| Optional | Camera module for AI vision |
| Required | Igus robotic arm and Yahboom gripper module |
- Open Raspberry Pi Configuration:
sudo raspi-config
- Enable VNC under
Interface Options → VNC → Enable - Enable I2C under
Interface Options → I2C → Enable
- Open Wi-Fi Settings and configure Raspberry Pi as a hotspot (e.g., name:
pi_hotspot). - Choose WPA & WPA2 Personal and choose a password
- Enable auto-connect on boot:
sudo nmcli connection modify pi_hotspot connection.autoconnect yes
- Open Network Settings → Wired Connection
- Set the static IP configuration:
- priority:
99 - Method:
manuel - IP Address:
192.168.3.10 - Subnet Mask:
255.255.255.0 - Gateway:
192.168.3.1 - DNS:
192.168.3.1
- priority:
- This ensures the robotic arm and Raspberry Pi are on the same network.
sudo nano /etc/ssh/sshd_configUpdate the following lines:
PermitRootLogin yes
PasswordAuthentication yes
Then restart SSH:
sudo systemctl restart sshpip install jupyterlab --break-system-packageIf you see a PATH warning:
echo 'export PATH=$PATH:~/.local/bin' >> ~/.bashrc
source ~/.bashrcThen deploy "ernte_elite" Programm code
in Pycharm, click on the Programm --> Deployment --> deploy to ernte_eliteCreate the service:
sudo nano /etc/systemd/system/jupyterlab.servicePaste:
[Unit]
Description=JupyterLab
After=network.target
[Service]
User=pi
ExecStart=/home/pi/.local/bin/jupyter-lab --ip=0.0.0.0 --port=8888 --no-browser
WorkingDirectory=/home/pi/ernte_elite
Restart=always
[Install]
WantedBy=multi-user.targetThen enable and start:
sudo systemctl daemon-reload
sudo systemctl enable jupyterlab
sudo systemctl start jupyterlabcurl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker pi
sudo rebootpip install tflite-runtime --break-system-packages
pip install opencv-python --break-system-packages
pip install paddleocr --break-system-packages
pip install paddlepaddle==2.6.2 --break-system-packagespip install -U numpy==1.26.4 --break-system-packagescd /home/pi/ernte_elite/libs/igus-cri-python-lib
pip install . --break-system-packagescd /home/pi/ernte_elite/libs/py_install
sudo python3 setup.py installcd ernte_elite
docker compose build --no-cache
docker compose up -dcd web
npm run buildAfter reboot, JupyterLab will auto-start.
Access it from any device connected to the hotspot:
http://(ip-adress):8888
copy the token from:
sudo systemctl status jupyterlaband past it into jupyterlab Interface and set the new password
Restart JupyterLab manually:
sudo systemctl restart jupyterlabView logs:
journalctl -u jupyterlab -n 301. Upload and annotate the image in Roboflow
2. Anootate Every Picture
3. Move them to "Dataset"
4. Click "Version"
5. Run through the steps
6. Click "Download Dataset"
7. Choose "Show download code"
8. Copy the URL that is shown
9. Train the YOLOv8s model with the Ultralytics library(https://colab.research.google.com/drive/10UOMV4dm-H_-0qPE-noP1Q4AdeQOFWek#scrollTo=4HNIA3TT0-5J)
10. Exchange the URL© 2025 Ernte Elite Project — All rights reserved.
Developed by Ao Sheng for AI and robotic automation research.
