Seite 1 von 1

FIX: Kameras vertauscht / unkalibriert nach neustart - Feste Zuweisung der Cams unter Linux

Verfasst: 15. Jan 2025 09:43
von Frankomio
um die Kameras in Autodarts immer in der gleichen Reihenfolge zu verwenden (damit die Kalibrierung nicht verloren geht)
kann man so vorgehen:


Für Autodarts 0.26.x Man ordnet also z.b.:
USB-Buchse 1 fest der cam1 in Autodarts zu
USB-Buchse 2 fest der cam2 in Autodarts zu
USB-Buchse 3 fest der cam3 in Autodarts zu

Grund:
Weil der Rechner zufällig (..und zu oft..) mal die Kameras anders anordnet.
Die Zuordnung von "video0", "video2", und "video4" geschied also "zufällig".
Dadurch scheint es so, das die Kalibrierung verloren geht.

Lösungsmöglichkeit für Linux:

bash-Installationsversion:
  • Feste Zuweisung in der /home/$User/.config/autodarts/config.toml
Linux Autodarts Desktop
  • Feste Zuweisung in der /home/$User/.config/Autodarts Desktop/autodarts/config.toml

Nachteil:
  • Die "config.toml" kann kaputt gehen, dann muss man ALLES neu machen
    (Board-ID, API-Key, Kalibrierung, etc... alles)
  • Keine Änderung der Kamerapositionen möglich im Boardmanager. Die Kameras müssen dann immer
    an der gleichen USB-Buchse sein, sonst muss man wieder die "config.toml" händisch/manuell
    mit einem Editor bearbeiten/manuell in einem Terminal/Konsole.
  • Im Boardmanager steht dann auch immer nur "select cam", als ob keine ausgewählt ist.
    Es ist aber -- direkt -- also nicht mehr auswählen !! sonst wird die "config.toml" überschrieben, und ohne Sicherung,
    wieder viel "Tipp-Arbeit"
  • Auflösung kann nicht mehr im Boardmanager geändert werden, nur in der config.toml direkt
Resourcen: 
  • Zugang zu einem Teminal/Konsole am Autodarts-Rechner ( direkt, putty, gedit, etc.)
  • Linux Kenntnisse, oder keine Angst, das man eventuell Autodarts neu installieren muss :)
  • ein Editor unter Linux am Autodarts-Rechner ( mc, nano, gedit etc.)
Ablauf der Zuweisung:
  • man sollte die config.toml sichern, wenn es nicht klappt ...
  • Kameras müssen an den funktionierenden USB-Buchsen hängen
  • man muss raus bekommen, wie der Rechner die Usb-Ports mit der Kamera intern bezeichnet
  • Diese interne Bezeichnungen der drei Kameras, muss man dann in der "config.toml" Datei eintragen, speichern
    und hoffen das der Rechner dann nicht explodiert :)
  • viel tippen, kopieren, Fotos machen, unsicher sein...etc...Mit Linux mit einer Desktop-Oberfläche aber mit z.B. gedit sehr schnell
Befehle in der Konsole/Terminal:
  • sudo systemctl stop autodarts      - autodarts erstmal stoppen (bei der bash-Installationsversion)
  • Autodarts Desktop schliessen      - Autodarts Desktop erstmal stoppen (bei der AutodartsDesktop Version)
  • ls -l /dev/v4l/by-path/                  - interne Bezeichnung der benutzten Usb-Buchsen finden
  • sudo apt install mc                          - Einen Editor der Wahl installieren hier als Beispiel "mc editor" 
  • mc                                                      - mc editor öffnen
Bearbeiten mit mc z.B.
Browsen mit der Maus/Tastatur ..wie es einem gefällt..
zu    /home/$User/.config/autodarts/                                         (bash Installations-Version)
oder /home/$User/.config/Autodarts Desktop/autodarts/    (Autodarts Desktop Version)
  • $User steht für euren, persönlich anlegten User
config.toml markieren und mit "F4" zum bearbeiten öffnen (oder unten auf "4 bearbeiten" mit der Maus klicken)
mit "F2" speichern (oder unten auf "2 Speichern" mit der Maus klicken)

Nach dem editieren und speichern:
  • sudo systemctl start autodarts    -autodarts wieder starten (bei der bash-Installationsversion)
  • Autodarts Desktop Starten          -autodarts wieder starten (bei der AutodartsDesktop Version)
und mal schauen ob es geklappt hat.

Mal ein Beispiel, wie das dann aussehen könnte in der Konsole:

Befehl und Ausgabe:

dart@dart1:~$ ls -l /dev/v4l/by-path/
total 0
root root 12 Mär 11 16:50 pci-0000:00:15.0-usb-0:1.1.1:1.0-video-index0 -> ../../video2    <---das ist cam1 bei mir
root root 12 Mär 11 16:50 pci-0000:00:15.0-usb-0:1.1.1:1.0-video-index1 -> ../../video3
root root 12 Mär 11 16:50 pci-0000:00:15.0-usb-0:1.1.4:1.0-video-index0 -> ../../video4    <---das ist cam2 bei mir
root root 12 Mär 11 16:50 pci-0000:00:15.0-usb-0:1.1.4:1.0-video-index1 -> ../../video5
root root 12 Mär 11 16:50 pci-0000:00:15.0-usb-0:4:1.0-video-index0 -> ../../video0         <---das ist cam3 bei mir
root root 12 Mär 11 16:50 pci-0000:00:15.0-usb-0:4:1.0-video-index1 -> ../../video1
dart@dart1:~$

Also als Beispieleintrag in der config.toml für cam1 dann:
/dev/v4l/by-path/pci-0000:00:15.0-usb-0:1.1.1:1.0-video-index0

Vor der Arbeit (also das original), teil von config.toml:

Code: Alles auswählen

[cam]
cams = ['/dev/video2', '/dev/video4', '/dev/video0']
width = 1280
height = 720
fps = 25


Nach der Arbeit, teil von config.toml:

Code: Alles auswählen

[cam]
cams = ['/dev/v4l/by-path/pci-0000:00:15.0-usb-0:1.1.1:1.0-video-index0', '/dev/v4l/by-path/pci-0000:00:15.0-usb-0:1.1.4:1.0-videoindex0', '/dev/v4l/by-path/pci-0000:00:15.0-usb-0:4:1.0-video-index0']
width = 1280
height = 720
fps = 25