Inbetriebnahme der VRmagic Kamera

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autoren: Luca_Di-Lillo, Tim Leonard Bexten
Bearbeitet von: Hendrik Steffen, Sven Posner, Florian Brinkmann, Marc Ebmeyer
Betreuer: Prof. Schneider

Hardware

Hardware Fehler

Fehlermeldung:

EXCEPTION: received ERROR 1: VethControlPipe::dispatchCmd command CMD_INIT failed: Sensor/Frontend-board PnP failed!, device: , device:

See logfile for further details: file:///C:/Users/HSHL-U~1/AppData/Local/Temp/vrmcamlab_2024-01-08_14h25.12096.log

Logfile:

(VuLog::init logfile "C:\Users\HSHL-U~1\AppData\Local\Temp\vrmcamlab_2024-01-08_14h25.12096.log") logfile date time: 2024-01-08, 14:25:10 (GMT+1) VRmagic CamLab v3.5.0.0 Win x86 (Qt 4.7.4) built on May 19 2015 11:40:34 VhwPnpManager: create loaded preferences:6709EAB0<VuPropertyInterface> STAY_ON_TOP_B=false ASK_FILENAMES_B=true SUPPRESS_ERROR_BOX_B=false AVI_CODEC_I=vrmm RENDERER_E=D3D9 RENDERER_VSYNC_B=false RENDERER_INTERPOLATION_E=OFF SUPPRESS_SETTINGS_CONFIRM_BOXES_B=false CONTROL_WINDOW_POS_POINT_I=[736,383] DEFAULT_DATA_PATH_S="" AUTO_OPEN_DEVICES_B=false AUTO_START_GRABBING_B=false LIST_DEVICES_USB_B=true LIST_DEVICES_ETHERNET_B=true </VuPropertyInterface> VgrbDevicePnpConfig::load from "C:\Program Files (x86)\Common Files\VRmagic\vgrbdevice.ini" loaded config: device support LOC USB ETH VethPnpCamera: CHANGE_INIT VethPnpCamera: binding to: 127.0.0.1 169.254.157.251 192.168.1.101 VusbPnpWin32::scan 0 device(s) found: VethPnpCamera::scan waiting 242ms for replies VethPnpCamera::scan 0 device(s) found: VethPnpCamera: binding to: (127.0.0.1) (192.168.1.101) VethPnpCamera: binding to: (127.0.0.1) 169.254.157.251 (192.168.1.101) VethPnpCamera: CHANGE_ARRIVAL VethPnpCamera::scan 1 device(s) found: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:49398> VrmCamLab::handlePnpEvent EVENT_LISTCHANGE: <INV> VrmCamLab::handlePnpEvent EVENT_APPEARED: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:49398> Switching device ++ VethCamera::VethCamera <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:49398> CamProtocol version local : 20014 VethPnpCamera: CHANGE_BUSY (this application) CamProtocol version remote: 20013 <W/14:27:17> Server protocol version is older than local version! -- VethCamera::VethCamera ++ VethCamera::init initializing remote device... VrmCamServer v2.9.1.7 built on Oct 19 2012 12:09:45 CamProtocol version remote: 20014 VethCamera client built on May 19 2015 11:38:29 Found vidin driver version 1.01 ++ VdavCamera::init ++ VdavCameraBase::uninit -- VdavCameraBase::uninit ++ VdavCamera::uninit -- VdavCamera::uninit ++ VdavCameraBase::init Clock generator found! VhwCY22393::clearConfiguration disabled all outputs -- VdavCameraBase::init Probing port #1 initSensorEeprom() failed -- VdavCamera::init ++ VdavCameraBase::uninit -- VdavCameraBase::uninit ++ VdavCamera::uninit -- VdavCamera::uninit VdavCameraImageIo::cancelPendingIO <E/14:27:17/server> VethControlPipe::dispatchCmd command CMD_INIT failed: Sensor/Frontend-board PnP failed!, device: <LOC><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59> -- VethCamera::init ++ VethCamera::~VethCamera <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:49398> VethPnpCamera: CHANGE_BUSY (this application) -- VethCamera::~VethCamera ++VethInterface::closeIoObjects <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:49398> --VethInterface::closeIoObjects <E/14:27:17> EXCEPTION: received ERROR 1: VethControlPipe::dispatchCmd command CMD_INIT failed: Sensor/Frontend-board PnP failed!, device: <LOC><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59>, device: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:49398> VethPnpCamera: CHANGE_INIT VethPnpCamera::scan waiting 250ms for replies VethPnpCamera::scan 1 device(s) found: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:49398> VethPnpCamera: binding to: (127.0.0.1) (192.168.1.101) VethPnpCamera: CHANGE_REMOVAL VethPnpCamera::scan 0 device(s) found: VrmCamLab::handlePnpEvent EVENT_LISTCHANGE: <INV> VrmCamLab::handlePnpEvent EVENT_DISAPPEARED: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:49398> VethPnpCamera: binding to: (127.0.0.1) 169.254.157.251 (192.168.1.101) VethPnpCamera: binding to: (127.0.0.1) (192.168.1.101) VethPnpCamera: binding to: (127.0.0.1) 169.254.157.251 (192.168.1.101) VethPnpCamera: CHANGE_ARRIVAL VethPnpCamera::scan 1 device(s) found: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:50624> VrmCamLab::handlePnpEvent EVENT_LISTCHANGE: <INV> VrmCamLab::handlePnpEvent EVENT_APPEARED: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:50624> Switching device ++ VethCamera::VethCamera <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:50624> CamProtocol version local : 20014 VethPnpCamera: CHANGE_BUSY (this application) CamProtocol version remote: 20013 <W/14:30:46> Server protocol version is older than local version! -- VethCamera::VethCamera ++ VethCamera::init initializing remote device... VrmCamServer v2.9.1.7 built on Oct 19 2012 12:09:45 CamProtocol version remote: 20014 VethCamera client built on May 19 2015 11:38:29 Found vidin driver version 1.01 ++ VdavCamera::init ++ VdavCameraBase::uninit -- VdavCameraBase::uninit ++ VdavCamera::uninit -- VdavCamera::uninit ++ VdavCameraBase::init Clock generator found! VhwCY22393::clearConfiguration disabled all outputs -- VdavCameraBase::init Probing port #1 initSensorEeprom() failed -- VdavCamera::init ++ VdavCameraBase::uninit -- VdavCameraBase::uninit ++ VdavCamera::uninit -- VdavCamera::uninit VdavCameraImageIo::cancelPendingIO <E/14:30:46/server> VethControlPipe::dispatchCmd command CMD_INIT failed: Sensor/Frontend-board PnP failed!, device: <LOC><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59> -- VethCamera::init ++ VethCamera::~VethCamera <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:50624> VethPnpCamera: CHANGE_BUSY (this application) -- VethCamera::~VethCamera ++VethInterface::closeIoObjects <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:50624> --VethInterface::closeIoObjects <E/14:30:46> EXCEPTION: received ERROR 1: VethControlPipe::dispatchCmd command CMD_INIT failed: Sensor/Frontend-board PnP failed!, device: <LOC><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59>, device: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:50624> VethPnpCamera::scan 1 device(s) found: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:50624> VethPnpCamera: CHANGE_REMOVAL VethPnpCamera: binding to: (127.0.0.1) (192.168.1.101) VethPnpCamera::scan 0 device(s) found: VrmCamLab::handlePnpEvent EVENT_LISTCHANGE: <INV> VrmCamLab::handlePnpEvent EVENT_DISAPPEARED: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:50624> VethPnpCamera: binding to: (127.0.0.1) 169.254.157.251 (192.168.1.101) VethPnpCamera: binding to: (127.0.0.1) (192.168.1.101) VethPnpCamera: binding to: (127.0.0.1) 169.254.157.251 (192.168.1.101) VrmCamLabPrefs: applying new preferences: <VuPropertyInterface> STAY_ON_TOP_B=false ASK_FILENAMES_B=true SUPPRESS_ERROR_BOX_B=false AVI_CODEC_I=vrmm RENDERER_E=D3D9 RENDERER_VSYNC_B=false RENDERER_INTERPOLATION_E=OFF SUPPRESS_SETTINGS_CONFIRM_BOXES_B=false CONTROL_WINDOW_POS_POINT_I=[736,383] DEFAULT_DATA_PATH_S="" AUTO_OPEN_DEVICES_B=false AUTO_START_GRABBING_B=false LIST_DEVICES_USB_B=false LIST_DEVICES_ETHERNET_B=true </VuPropertyInterface> VethPnpCamera: CHANGE_ARRIVAL VethPnpCamera::scan 1 device(s) found: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:46028> VrmCamLab::handlePnpEvent EVENT_LISTCHANGE: <INV> VrmCamLab::handlePnpEvent EVENT_APPEARED: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:46028> Switching device ++ VethCamera::VethCamera <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:46028> CamProtocol version local : 20014 VethPnpCamera: CHANGE_BUSY (this application) CamProtocol version remote: 20013 <W/14:35:16> Server protocol version is older than local version! -- VethCamera::VethCamera ++ VethCamera::init initializing remote device... VrmCamServer v2.9.1.7 built on Oct 19 2012 12:09:45 CamProtocol version remote: 20014 VethCamera client built on May 19 2015 11:38:29 Found vidin driver version 1.01 ++ VdavCamera::init ++ VdavCameraBase::uninit -- VdavCameraBase::uninit ++ VdavCamera::uninit -- VdavCamera::uninit ++ VdavCameraBase::init Clock generator found! VhwCY22393::clearConfiguration disabled all outputs -- VdavCameraBase::init Probing port #1 initSensorEeprom() failed -- VdavCamera::init ++ VdavCameraBase::uninit -- VdavCameraBase::uninit ++ VdavCamera::uninit -- VdavCamera::uninit VdavCameraImageIo::cancelPendingIO <E/14:35:16/server> VethControlPipe::dispatchCmd command CMD_INIT failed: Sensor/Frontend-board PnP failed!, device: <LOC><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59> -- VethCamera::init ++ VethCamera::~VethCamera <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:46028> VethPnpCamera: CHANGE_BUSY (this application) -- VethCamera::~VethCamera ++VethInterface::closeIoObjects <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:46028> --VethInterface::closeIoObjects <E/14:35:16> EXCEPTION: received ERROR 1: VethControlPipe::dispatchCmd command CMD_INIT failed: Sensor/Frontend-board PnP failed!, device: <LOC><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59>, device: <ETH><V11A6><PDE00><G80><VRmagic><VRmDC-X-E><XEM7AR><#002846><v1.59><169.254.3.166:46028>

Starten der Hardware

Zum Starten der Kammera wir eine 5V Stromversorgung benötigt. Der Rundpin hat Außen Gnd und Innen +5V mindestens 3A.

Sobald die Spannung anliegt solte eine grüne LED leuchten. Nach etwa 1 min ist die Platine hochgefahren und die LED neben der Stromversorgungsbuchse solte rot leuchten, tut sie dieses nicht liegt ein Fehler vor und die Kammera kann nicht arbeiten und wird von amLab nicht erkannt.


  • device type: ETH
  • product: VRmDC-X-E
  • serial: #VEM8QX (8392550)
  • IP: 169.254.5.30:57786


Port Scann mit PortScan: Host 169.254.5.30 MAC Adresse 00:21:21:80:0F:66[VRMAgic GMbH] offener Port SSH22 Telenet 23 sunrpc 111 offener Port 42589 offener Port 57786

matlab instrumentencontrol kein zugriff

Klickt man bei VRmagic CamLab auf das Logo, öffnet sich eine Zusatz Info, unter anderem ein Logfile. Dieses beinhaltet die internen Prozesse, damit müste sich über Matlab instrumentenControl test & mesurment eine Verbindung aufbauen lassen.

Ansteuerung mit CamLab am Fahrzeug

Autor: Tim Bexten

Bereich zum Download der Software

Um einen ersten Funktionstest der Kamera durchzuführen, wurde die Kamera über einen Ethernetkabel mit dem Laborrechner verbunden und das zugehörige Netzteil für die Stromversorgung angeschlossen. Als Netzteil wird dabei ein 5V und 4A Netzteil von Phigong verwendet.
Das VRmagic Programm zum ausgeben des Kamerabildes "CamLab" ist auf allen Laborrechnern bereits installiert.
Falls es nicht installiert sein sollte, kann das Programm von der VRmagic Homepage heruntergeladen werden: VRMagic Homepage. Außerdem ist die Software im SVN-Repository unter Tools abgelegt.

 https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Tools/VRmagic_Kamera_Bibliothek_und_Treiber/VRmUsbCam%20DevKit%20for%20Windows%20(x86)%204.1.0/setup.exe


Der richtige Typ der Software, für den entspechenden Rechner kann unter dem Punkt "USBPlattform/Software" ausgewählt und heruntergeladen werden, siehe Bild.
Nachdem das Programm heruntergeladen wurde, muss die ZIP-Datei entpackt werden und die "Setup"-Datei ausgeführt werden. Für nähere Informationen zur Installation, ist in der ZIP-Datei eine README-Dokument enthalten.
"WICHTIG: Admin-Rechte von Nöten!!!"
Nachdem die Installation erfolgreich abgeschlossen wurde, kann das Programm "CamLab" ausgeführt werden.
Oberfläche des CamLab Programms
Nachdem das Programm geöffnet wurde kann die VRmagic Kamera mit dem CamLab kommunizieren. Die angeschlossene Kamera kann in dem Dropdown-Menü ausgewählt werden. Dies kann nach dem ersten mal anschließen etwas dauern, bis das Programm die Ethernetverbindung zur Kamera findet. Im Anschluss daran kann die Bildausgabe gestartet werden.

Wenn die Kamera ausgewählt wurde, öffnet sich ein erweiteretes Menü. In diesem Menü können alle möglichen Konfigurationen vorgenommen werden, die die VRmagic Kamera anbietet (Format, Timing, Sensor, Filter etc.). Mit einem Klick auf den Button "Grab" kann die Bildwiedergabe gestartet werden. Es können auch Snapshots erstellt werden, die auf dem Rechner gespeichert werden können.
Mit diesem Programm wurde ein erster Funktionstest der Kamera durchgeführt, welcher Grundlage für weitere Ansterungskonzepte mit Visual Studio ist.

Implementierung der Kamera in Visual Studio

Autor: Luca Di-Lillo
Bearbeitet von: Florian Brinkmann

Die Kamera stellt Librarys für die Programmierung in C/C++ bereit, diese sind im SVN Ordner hinterlegt und müssen in die aktuelle Projektmappe im Explorer hinzugefügt werden.

 https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/Kamera_VRmagic/Cpp%20Dateien

In Visual Studio wählt man in dem Dropdown Menü in der oberen Leiste neben Debug x86 aus (siehe Abbildung Visual Studio auf x86 einstellen rotes Rechteck), ohne diese Einstellung lässt sich das Programm nicht kompilieren. Im nächsten Schritt wählt man in dem Fenster Projektmappen-Explorer mit einem Rechtsklick die Projektmappe aus und öffnet Eigenschaften.

Die Konfiguration des Eigenschaftsfensters muss auf Debug eingestellt sein und die Plattform auf Aktiv(Win32) (siehe Abbildung Zusätzliche Includeverzeichnisse rote Rechtecke). In diesem Fenster wählt man als erstes die Registerkarte C/C++ aus (blaues Rechteck), dort fügt man jetzt unter dem Punkt Zusätzliche Includeverzeichnisse (grünes Rechteck), den Dateipfad $(SolutionDir)\VRMagic\include hinzu.

Im nächsten Schritt muss man die Library Dateien mit dem Linker verlinken, dazu bleibt man in dem Eigenschaftsfenster und wählt die Registerkarte Linker aus und öffnet dort Allgemein (siehe Abbildung Zusätzliche Bibliotheksverzeichnisse rotes Rechteck). Dort wählt man jetzt den Punkt Zusätzliche Bibliotheksverzeichnisse (siehe grünes Rechteck) und fügt den Dateipfad $(SolutionDir)\VRMagic\lib hinzu. Nun öffnet man auch unter der Registerkarte Linker den Punkt Eingabe (siehe Abbildung Zusätzliche Abhängigkeiten rotes Rechteck), dort fügt man unter dem Punkt Zusätzliche Abhängigkeiten (siehe grünes Rechteck) folgendes hinzu:

  • vrmusbcam2.lib

Um die Funktionen der Kamera nutzen zu können, müssen in der der .cpp Datei, in der die Kamera eingebunden werden soll, die folgende Header hinzugefügt werden:

  • vrmusbcam2.h
  • VRMagicConfig.h
  • vrmusbcam2win32.h
Visual Studio auf x86 einstellen
Zusätzliche Includeverzeichnisse
Zusätzliche Bibliotheksverzeichnisse
Zusätzliche Abhängigkeiten

















Aktueller Softwarestand Visual Studio zum Testen

Der aktuelle und lauffähige Stand einer Software, für die Bild- und Spurerkennung ist unter dem folgenden Link zu finden: https://svn.hshl.de/svn/MTR_SDE_Praktikum/trunk/Software/OSE_Draufsicht_Spurpolynom_RS232
Wichtig: Es muss immer die opencv Version verwendet werden, die auch bei der Implementierung des Programms verwendet wurde.

Aufnahme eines Videos

Autor: Florian Brinkmann

Videoaufzeichnung

Um ein Video mit der VRmagic Kamera auf dem Fahrzeug aufzuzeichnen, eignet sich folgender Workflow auf dem Fahrzeug-PC:

  1. CamLab (x86) starten
  2. Warten bis die Kamera erkannt wurde
  3. Unter Device die Kamera auswählen
  4. Anzeige des Kamerabildes durch Auswahl von Grab
  5. Einstellung des Videoformats
    1. Preferences öffnen
    2. Unter AVIi codec select auswählen
    3. Volle Einzelbilder (unkomprimiert) auswählen
    4. 2x mit Ok bestätigen
  6. Aufnahme starten: Record Avi...
  7. Dateinamen und -speicherort wählen
  8. Aufzeichnung stoppen

Das aufgezeichnete Video kann problemlos in die Simulation der Spurerkennung (Visual Studio Projekt) eingebunden werden.

Video kürzen

Falls das Video gekürzt werden soll, kann dies mit dem folgenden (ausklappbaren) MATLAB-Code getan werden. Die Einstellung der Videolänge erfolgt über den zweiten Wert in der Bedingung der for-Schleife.

%% MATLAB initialisieren
clear all; close all; clc;

%% Videonamen angeben
stQuellVideo = "langesVideo.avi";
stZielVideo  = "kurzesVideo.avi";

%% Quell-Video laden
hQuellVideo = VideoReader(stQuellVideo);

%% Ziel-Video erstellen
hZielVideo = VideoWriter(stZielVideo);
open(hZielVideo);

%% Video kürzen
for i = 1:100
    % Prüfen, ob Frames vorhanden sind
    if ~hasFrame(hQuellVideo)
        break
    end
    
    % Frame lesen
    frame = readFrame(hQuellVideo);
    
    % Frame schreiben
    writeVideo(hZielVideo,frame);
end

%% Ziel-Video schließen
close(hZielVideo);



→ zurück zum Hauptartikel: OSE - Objekt - und Spurerkennung
→ zurück zum Hauptartikel: Praktikum SDE