Skip to content

Restructure the project to run locally on Raspberry Pi with computationally-intensive steps offloaded to another device on the same network #3

@eskutcheon

Description

@eskutcheon

Due to the planned obsolescence of the Jetson Nano line and the issues with using its GPIO headers, I've decided to do a major refactor to run the system on a Raspberry Pi while offloading any computationally-intensive parts (primarily everything involving object detection) on my desktop in a container. It's still being planned, so things are subject to change, but this will be done in a way to minimize additional costs and to keep it maintained primarily for my own personal use.

Currently, the refactor is planned to be something like

Purr-Patrol-Turret/
├── src/
│ ├── local/ # Code running on the Raspberry Pi
│ │ ├── controller.py # Manages modes and GPIO operations
│ │ ├── motion_tracking.py # Handles camera feed and frame capture
│ │ ├── turret.py # Turret control (GPIO and motor logic)
│ │ ├── server_messaging.py # NEW: Handles communication with desktop
│ │ └── requirements_pi.txt # Dependencies specific to the Raspberry Pi

│ ├── remote/ # Code running on the desktop
│ │ ├── server.py # NEW: Flask server to process frames
│ │ ├── object_detection.py # Detection logic with GPU acceleration
│ │ ├── requirements_desktop.txt # Dependencies specific to the desktop

│ ├── shared/ # Code common to both
│ │ ├── utils.py # Shared utilities for both systems
│ │ ├── config.py # Configuration (shared settings)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions