From f0c49b987c30d27534d5eda68d69135acc39e4d3 Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Wed, 25 Jun 2025 19:08:39 +0000 Subject: [PATCH 1/5] os: Do not use Docker for the segmenter --- os/forklift/forklift-pallet-version | 2 +- .../system/planktoscope-org.segmenter.service | 19 +++++++++++++++++++ os/python-hardware-controller/install.sh | 9 ++++++++- segmenter/README.md | 9 +++------ segmenter/apt-packages | 3 --- 5 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 os/python-hardware-controller/etc/systemd/system/planktoscope-org.segmenter.service diff --git a/os/forklift/forklift-pallet-version b/os/forklift/forklift-pallet-version index 4a27619a0..3ab09f18e 100644 --- a/os/forklift/forklift-pallet-version +++ b/os/forklift/forklift-pallet-version @@ -1 +1 @@ -a4ec796 +5e2281f diff --git a/os/python-hardware-controller/etc/systemd/system/planktoscope-org.segmenter.service b/os/python-hardware-controller/etc/systemd/system/planktoscope-org.segmenter.service new file mode 100644 index 000000000..baf1f7000 --- /dev/null +++ b/os/python-hardware-controller/etc/systemd/system/planktoscope-org.segmenter.service @@ -0,0 +1,19 @@ +[Unit] +Description=Run the PlanktoScope segmenter +# Wait for Forklift to bring up mosquitto, in case the segmenter needs to start after mosquitto +Wants=forklift-apply.service +After=forklift-apply.service +# Start after Node-RED so that Node-RED can catch all MQTT messages emitted at startup +After=nodered.service + +[Service] +Type=simple +Environment=HOME=/home/pi +Environment=SEGMENTER_PIPELINE_SUBTRACT_CONSECUTIVE_MASKS=true +WorkingDirectory=/home/pi/PlanktoScope/segmenter +ExecStart=/home/pi/.local/bin/poetry run python -u main.py +User=pi +Group=pi + +[Install] +WantedBy=multi-user.target diff --git a/os/python-hardware-controller/install.sh b/os/python-hardware-controller/install.sh index dd4daba77..1eee20951 100755 --- a/os/python-hardware-controller/install.sh +++ b/os/python-hardware-controller/install.sh @@ -18,7 +18,7 @@ pipx install poetry==2.1.3 pipx ensurepath PATH="$PATH:/home/pi/.local/bin" -# Set up the hardware controllers +# Set up the hardware controller sudo -E apt-get install -y --no-install-recommends -o Dpkg::Progress-Fancy=0 \ i2c-tools libopenjp2-7 python3-picamera2 poetry --directory "$HOME/PlanktoScope/controller" install \ @@ -26,3 +26,10 @@ poetry --directory "$HOME/PlanktoScope/controller" install \ file="/etc/systemd/system/planktoscope-org.controller.service" sudo cp "$config_files_root$file" "$file" sudo systemctl enable "planktoscope-org.controller.service" + +# Set up the segmenter +poetry --directory "$HOME/PlanktoScope/segmenter" install \ + --compile +file="/etc/systemd/system/planktoscope-org.segmenter.service" +sudo cp "$config_files_root$file" "$file" +sudo systemctl enable "planktoscope-org.segmenter.service" diff --git a/segmenter/README.md b/segmenter/README.md index 6456606f5..e88ed9ea0 100644 --- a/segmenter/README.md +++ b/segmenter/README.md @@ -22,13 +22,10 @@ Install all dependencies including development tooling: poetry install --with dev ``` -Start controller for development: +Start segmenter for development: ```sh -docker ps -# copy the container id of the segmenter -docker stop - +sudo systemctl stop planktoscope-org.segmenter.service poetry run python -u main.py # make changes and restart ``` @@ -51,7 +48,7 @@ We recommand using [https://code.visualstudio.com/docs/remote/ssh](https://code. To use this project, you'll need: -- Python >= 3.9 +- Python >= 3.11.2 - Poetry 2.1.3 ## Licensing diff --git a/segmenter/apt-packages b/segmenter/apt-packages index c5d47e117..8e67f18d4 100644 --- a/segmenter/apt-packages +++ b/segmenter/apt-packages @@ -1,6 +1,3 @@ -# numpy/scipy dependencies -libatomic1 - # opencv dependencies libopenjp2-7 libavcodec59 From 4e076410a6675ec0abb6ce0a3303da23a9f497ee Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 30 Jun 2025 11:53:08 +0200 Subject: [PATCH 2/5] f --- os/forklift/forklift-pallet-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/forklift/forklift-pallet-version b/os/forklift/forklift-pallet-version index 3ab09f18e..76338f884 100644 --- a/os/forklift/forklift-pallet-version +++ b/os/forklift/forklift-pallet-version @@ -1 +1 @@ -5e2281f +a626ac20ceef1cae76f98fa2b02b38295a120519 From 061bf0f4b5bdd7cd07843cdd76432f42edfd0b20 Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 30 Jun 2025 12:06:16 +0200 Subject: [PATCH 3/5] f --- os/forklift/forklift-pallet-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/forklift/forklift-pallet-version b/os/forklift/forklift-pallet-version index 76338f884..ab6e928b2 100644 --- a/os/forklift/forklift-pallet-version +++ b/os/forklift/forklift-pallet-version @@ -1 +1 @@ -a626ac20ceef1cae76f98fa2b02b38295a120519 +3b2cee38fe3862cfd58bb3ec6c6b91203f3201c8 From 02d1fff3a9175a787277fb9bb2c0f78822a17824 Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 30 Jun 2025 12:16:34 +0200 Subject: [PATCH 4/5] f --- os/forklift/forklift-pallet-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/forklift/forklift-pallet-version b/os/forklift/forklift-pallet-version index ab6e928b2..6ed4009a1 100644 --- a/os/forklift/forklift-pallet-version +++ b/os/forklift/forklift-pallet-version @@ -1 +1 @@ -3b2cee38fe3862cfd58bb3ec6c6b91203f3201c8 +2459908691b472cb2a156255b23e8946387093f6 From 4b52e773f77f65d1fd57f45a1ce39f032f18c545 Mon Sep 17 00:00:00 2001 From: Sonny Piers Date: Mon, 30 Jun 2025 12:21:32 +0200 Subject: [PATCH 5/5] f --- os/forklift/forklift-pallet-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/os/forklift/forklift-pallet-version b/os/forklift/forklift-pallet-version index 6ed4009a1..a21a484d4 100644 --- a/os/forklift/forklift-pallet-version +++ b/os/forklift/forklift-pallet-version @@ -1 +1 @@ -2459908691b472cb2a156255b23e8946387093f6 +3776e964ba612ea88edb9afc92969c165735afff