Skip to content

ianueph/strawberry-picking-rpi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Strawberry Picking Robot Arm

This project implements an autonomous robot arm capable of perceiving and picking strawberries along a ridgeline using a Raspberry Pi and computer vision.

Overview

The system combines visual perception with a robotic arm to locate and pick strawberries in a structured environment. It uses ROS 2 Jazzy for coordination, Docker for containerized development, and a combination of Raspberry Pi and Arduino for hardware control.

Hardware Overview
System Overview

Top Front Inside
Top view image Front view image Inside view image

Demo Videos

Not damaged, Successful Pick Not damaged, Partially Successful Pick Not damaged, Unsuccessful Pick Damaged, Successful Pick
ND S ND PS ND US D S

Requirements

Hardware

  • Raspberry Pi 5
  • 2× Pi Camera Module 3 (1 wide-angle, 1 normal)
  • Arduino Uno
  • 5-DOF Robotic Arm

Software

  • RaspberryPi OS
  • ROS 2 Jazzy (inside the dev container)
  • Git Bash or similar terminal

Installation

Prerequisites

Steps

  1. Clone the repository:

    git clone https://github.com/ianueph/strawberry-picking-rpi.git
    cd strawberry-picking-rpi
  2. Open the project folder in VS Code.

  3. When prompted by VS Code, "Reopen in Container".

  4. The container will build and install all dependencies automatically via:

    • installations.sh
    • postCreateCommand.sh

Deployment

After setup and connecting all hardware:

  1. Upload YOLO Model Weights

    Before launching the robot system, ensure the required YOLOv8 model weights are available. Place the following files in the specified directory:

    src/
    └── yolo_ros/
        ├── ...
        ├── yolo_bringup/
        │   ├── launch/
        │   │   ├── strawberry-object-tracking.pt
        │   │   ├── strawberry-image-class.pt
        │   │   └── ...
        │   └── ...
        ├── yolo_msgs/
        │   └── ...
        ├── yolo_ros/
        │   └── ...
        └── ...
  2. Grant access to the Arduino serial device:

    sudo chmod 666 /dev/ttyACM0
  3. Launch the robot system:

    ros2 launch sprpi_arm_bringup main_launch.launch.py

Note: Ensure you have X11 forwarding set up properly if running GUI apps like RViz2. This is handled via mounted volumes and environment variables in devcontainer.json.


Notes

  • Ensure both Pi Cameras are connected and recognized by the Raspberry Pi.
  • The Arduino should be flashed with the correct firmware for arm control.
  • This project assumes basic familiarity with ROS 2, Linux, and Docker.

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •