Blackpicker: Pick&Place-Automat aus Maker-Komponenten (Teil 2)
Im zweiten Teil unseres Bauberichts eines Roboters geht es um die Objekterkennung ĂĽber OpenCV per RasPi und den Teensy, der die Bewegungen koordiniert.
- Ramon Hofer Kraner
Die Inbetriebnahme unseres Pick'n-Place-Automaten wurde durch die langwierige Installation von OpenCV mit Python auf dem RasPi ein wenig getrübt. Dazu wurde die Anleitung auf PyImageSearch zu Rate gezogen. Die Installation und der Build von OpenCV benötigte Stunden. Dabei werden auch relativ selten benötigte Libraries installiert, da zum Installationszeitpunkt noch nicht genügend klar war, was letztendlich alles gebraucht wurde. Nun hat sich gezeigt, dass eine Installation via pip auch möglich gewesen wäre und genügt hätte. Diese dauert einige Minuten und lässt sich im Netz leicht finden.
Videos by heise
Der Aufbau der Trackingsoftware kann grundsätzlich auf zwei Bilderkennungsmethoden reduziert werden. In einem ersten Durchgang werden aus dem Kamerabild mittels der Funktion Hough Transformation Kreise erkannt (die stehenden Hülsen). In einem zweiten Schritt werden dann die Konturen der restlichen Elemente (Contour Erfassung) gefunden. Hier steht und fällt natürlich alles mit der Einstellung der richtigen Parameter. Dazu wurden die Einstellungen mittels Slidern in einem Fenster herausgeführt, damit so im Betrieb die besten Einstellungen gefunden werden konnten
Virtuelle CV-Umgebung
Die schöne Idee, Python mit OpenCV eine eigene virtuelle Umgebung zu spendieren (Tipp von PyImageSearch) führte später zum Verhängnis. Die Maschine sollte beim Hochfahren automatisch das Python-Tracking-Programm starten. Nach vielen erfolglosen Versuchen auf die unterschiedlichsten Arten haben wir erkannt, dass das Erkennen und das Umschalten auf die virtuelle Umgebung mit Autostart doch nicht so einfach war. Einige Stunden recherchieren später konnten wir das Problem mit einer einfachen Pfadangabe im «Starten.sh» File beheben. Mit dem Editieren des Autostart-Files als Root User mit einem Editor kann man nun dieses Shell Script beim Aufstarten aufrufen. So wird das Programm bei jedem Hochfahren gestartet, was für den Betrieb in der Produktion zentral ist.
Autostart-File (Editieren als Root mit sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart)
@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
point-rpi
@lxterminal -e sudo /home/pi/Desktop/BlackP.sh
Datei Starten.sh (auf dem Desktop):
#!/bin/bash
echo "Tracker App wird gestartet"
source /home/pi/.virtualenvs/cv/bin/activate
cd Desktop
python Tracker.py
Autostart-File, um das Shell-Script auf dem Desktop zu starten und Shell-Script Starten.sh um die Tracker-App via Doppelklick vom Desktop aus zu starten. Starten.sh wird vom Autostart-File aus beim Hochfahren ausgefĂĽhrt. Das Aktivieren der virtuellen cv-Umgebung durch Pfadangabe mit dem Befehl source (aktuelle Shell benutzen) war der Knackpunkt.