Herunterladen Inhalt Inhalt Diese Seite drucken
Vorschau ausblenden Andere Handbücher für rc visard:
Inhaltsverzeichnis

Werbung

rc_visard
Release 1.0.5
Roboception GmbH
10.11.2017

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für Roboception rc visard

  • Seite 1 Release 1.0.5 Roboception GmbH 10.11.2017...
  • Seite 2: Inhaltsverzeichnis

    Inhaltsverzeichnis 1 Einführung Überblick ..........Garantie .
  • Seite 3 Reinigung der Kameralinsen ........109 Kamerakalibrierung .
  • Seite 4: Einführung

    1 Einführung Revisionen Roboception kann dieses Produkt bei Bedarf jederzeit ohne Vorankündigung ändern, um es zu verbessern, zu optimieren oder an eine überarbeitete Spezifikation anzupassen. Werden solche Änderungen vorgenommen, wird auch das vorliegende Handbuch überarbeitet. Beachten Sie die angegebenen Revisionshinweise.
  • Seite 5: Überblick

    Hinweis: Sofern nicht anders angegeben, gelten die in diesem Handbuch enthaltenen Informationen für beide Versionen des Roboception-Sensors, d. h. für den rc_visard 65 und den rc_visard 160. Hinweis: Das vorliegende Handbuch nutzt das metrische System und verwendet vorrangig die Maßeinhei- ten Meter und Millimeter.
  • Seite 6: Garantie

    1.2 Garantie Jede Änderung oder Modifikation des Produkts, die nicht ausdrücklich von Roboception genehmigt wurde, kann zum Verlust der Gewährleistungs- und Garantierechte führen. Achtung: Der rc_visard arbeitet mit komplexer Hardware- und Software-Technologie, die ggf. nicht immer wie vorgesehen funktioniert. Der Käufer muss seine Anwendung so gestalten, dass eine Fehlfunktion des rc_visard-Sensors nicht zu Körperverletzungen, Sachschäden oder anderen Verlusten führt.
  • Seite 7: Schnittstellen, Zulassungen Und Normen

    1.3 Schnittstellen, Zulassungen und Normen 1.3.1 Schnittstellen Der rc_visard unterstützt folgende Standardinterfaces: Der generische Schnittstellenstandard für Kameras ist die Grundlage für die Plug-&-Play-Handhabung von Ka- meras und Geräten. GigE Vision® ist ein Interfacestandard für die Übermittlung von Hochgeschwindigkeitsvideo- und zugehörigen Steuerdaten über Ethernet-Netzwerke.
  • Seite 8: Glossar

    1.4 Glossar DHCP Das Dynamic Host Configuration Protocol (DHCP) wird verwendet, um einem Netzwerkgerät automa- tisch eine IP-Adresse zuzuweisen. Einige DHCP-Server akzeptieren lediglich bekannte Geräte. In diesem Fall muss der Administrator die feste eines Gerätes im DHCP-Server erfassen. MAC-Adresse mDNS Das Domain Name System (DNS) verwaltet die Host-Namen und IP-Adressen aller Netzwerkgeräte. Es dient dazu, den Host-Namen zur Kommunikation mit einem Gerät in die IP-Adresse zu übersetzen.
  • Seite 9 nutzt UDP zum Übertragen seiner Dynamik-Zustandsschätzungen (Abschnitt 6.3.2) über die rc_dynamics- Schnittstelle (Abschnitt 7.3). Um diese Daten zu empfangen, kann einer Anwendung ein Datagram Socket (Endpunkt der Datenübertragung) zugeordnet werden, der aus einer Kombination aus IP-Adresse und ei- ner Service-Port-Nummer besteht (z. B. ).
  • Seite 10: Sicherheit

    2 Sicherheit Achtung: Vor Inbetriebnahme des rc_visard-Sensors muss der Bediener alle Anweisungen in diesem Hand- buch gelesen und verstanden haben. Hinweis: Der Begriff „Bediener“ bezieht sich auf jede Person, die in Verbindung mit dem rc_visard mit einer der folgenden Aufgaben betraut ist: •...
  • Seite 11: Risikobewertung Und Endanwendung

    Achtung: Der rc_visard muss an gesicherte interne Netzwerke angeschlossen werden. Der rc_visard darf nur im Rahmen seiner technischen Spezifikation verwendet werden. Jede andere Verwendung des Sensors gilt als nicht bestimmungsgemäße Verwendung. Roboception haftet nicht für Schäden, die aus un- sachgemäßer oder nicht bestimmungsgemäßer Verwendung entstehen.
  • Seite 12: Hardware-Spezifikation

    • Netzteil, Kabel und Sicherungen; • Netzwerkkabel. In Abschnitt Zubehör (Abschnitt 9) ist angegeben, welche Kabelanbieter Roboception empfiehlt. Für den rc_visard ist ein Anschlussset verfügbar. Dieses Set umfasst das M12/RJ45-Netzwerkkabel, ein 24-V- Netzteil und einen DC/M12-Adapter. Für nähere Informationen siehe Zubehör (Abschnitt 9).
  • Seite 13: Technische Spezifikation

    3.2 Technische Spezifikation Tab. 3.1 enthält die gemeinsame technische Spezifikation für beide rc_visard-Varianten. Tab. 3.1: Gemeinsame technische Spezifikation für beide rc_visard- Modelle rc_visard 65 / rc_visard 160 Bildauflösung 1280 x 960 Pixel, farbig oder monochrom Sichtfeld Horizontal: 61°, Vertikal: 48° Tiefenbild (Auflösung) 640 x 480 Pixel (High) bei 3 Hz 320 x 240 Pixel (Medium) bei 15 Hz...
  • Seite 14 21.5 32.5 74.5 (96) Abb. 3.2: Abmessungen des rc_visard 65 21.5 62.5 (84) Abb. 3.3: Abmessungen des rc_visard 160 3.2. Technische Spezifikation...
  • Seite 15: Umwelt- Und Betriebsbedingungen

    CAD-Modelle des rc_visard können von der Roboception-Homepage heruntergeladen werden: http://www. roboception.com/download. Die CAD-Modelle werden nach bestem Wissen und Gewissen, aber ohne Garantie für die Richtigkeit bereitgestellt. Wird als Materialeigenschaft Aluminium zugewiesen (Dichte: 2.76 ), weicht das CAD-Modell in Bezug auf Gewicht und Massenschwerpunkt nicht mehr als fünf Prozent und in Bezug auf das Trägheitsmoment nicht mehr als zehn Prozent vom Produkt ab.
  • Seite 16: Verkabelung

    Tab. 3.4: Grenzwerte für die Stromversorgung Minimum Bemessungswert Maximum Versorgungsspannung 18 V 24 V 30 V Max. Leistungsaufnahme 25 W Überstromschutz Schutz der Stromversorgung mit einer 2-A-Sicherung Erfüllung der EMV-Anforderungen Industrielles Gerät gemäß EN 55011 Klasse A Achtung: Die Überschreitung der maximalen Bemessungswerte kann zu Schäden am rc_visard, am Netzteil und an angeschlossener Ausrüstung führen.
  • Seite 17: M12 8-Pin Buchse A-Kodiert, Blick Auf Die Kamera

    Die Anschlüsse sind so gedreht, dass die üblicherweise 90° abgewinkelten Stecker horizontal abgehen und von der Kamera (und den Kühlrippen) wegzeigen. Ethernet M12 8-Pin Buchse A-kodiert, Blick auf die Kamera Power/GPIO M12 8-Pin Stecker A-kodiert, Blick auf die Kamera Abb. 3.5: Steckerbelegung für den Strom- und Ethernetanschluss Die Steckerbelegung für den Ethernetanschluss ist in Abb.
  • Seite 18: Mechanische Schnittstelle

    Achtung: Es ist besonders wichtig, dass GPIO Eingang 1 während des Boot-Vorgangs ungeerdet oder auf LOW gesetzt ist. Der rc_visard fährt nicht hoch, wenn der Pin während des Boot-Vorgangs auf HIGH gesetzt ist. GPIO Ausgang 1 bietet standardmäßig ein Signal zur Belichtungssynchronisierung und hat für die Dauer der Belichtung einen logischen HIGH-Pegel.
  • Seite 19: M4 Montagegewinde Für Dynamische Anwendungen

    UNC 1/4"-20, Gewindetiefe = 5 3x M4 Montage- +0.05 gewinde für dynamische Anwendungen Optische Achse Abb. 3.8: Montagepunkt für den Anschluss des rc_visard an Roboter oder andere Vorrichtungen Zur Fehlerbehebung sowie zu Konfigurationszwecken kann der Sensor über die am Koordinatenursprung angege- bene, genormte Stativaufnahme (Gewinde: 1/4 Zoll x 20) montiert werden.
  • Seite 20 ~31.5 21.5 32.5 74.5 (96) Abb. 3.9: Ungefähre Position des Sensor-/Kamerakoordinatensystems (in der linken Kameralinse) und des Montagepunkt-Koordinatensystems (am Stativgewinde) für den rc_visard 65 Die ungefähre Position des Sensor-/Kamerakoordinatensystems und des Montagepunkt-Koordinatensystems für den rc_visard 160 ist in Abb. 3.10 angegeben.
  • Seite 21: Installation

    4 Installation Achtung: Vor Installation des Gerätes müssen die Hinweise zur Sicherheit (Abschnitt 2) des rc_visard gelesen und verstanden werden. 4.1 Installation und Konfiguration Für den Anschluss an ein Computernetzwerk verfügt der rc_visard über eine Gigabit-Ethernet-Schnittstelle. Die gesamte Kommunikation mit dem Gerät wird über diese Schnittstelle abgewickelt. Der rc_visard besitzt zudem eine eigene Prozessierungseinheit welche nach dem Starten des Geräts eine gewisse Zeit für den Boot-Vorgang benötigt.
  • Seite 22: Automatische Konfiguration (Werkseitige Voreinstellung)

    Windows und Linux kostenlos von der Roboception-Homepage heruntergeladen werden: http://www.roboception.com/download. Dieses Tool besteht für Windows 7 und Windows 10 aus einer einzigen ausführbaren Daten, die ohne Installation direkt ausgeführt werden kann. Für Linux ist ein Installationspaket für Ubuntu 14.04 und 16.04 erhältlich. Nach dem Start wird jeder ver- fügbare rc_visard mit seinem Namen, seiner Seriennummer, der aktuellen IP-Adresse und der eindeutigen MAC-...
  • Seite 23: Zurücksetzen Der Konfiguration

    Abb. 4.2: -Tool zum Aufspüren angeschlossener rc_visard-Geräte rcdiscover-gui Wurde das Gerät erfolgreich gefunden, öffnet sich nach einem Doppelklick auf den Geräteeintrag die Web GUI (Abschnitt 4.5) des Geräts im Standard-Browser des Betriebssystems. Wir empfehlen, Mozilla Firefox als Web- browser zu verwenden. 4.4.1 Zurücksetzen der Konfiguration Ein falsch konfiguriertes Gerät lässt sich über die Schaltfläche Reset rc_visard im Discovery-Tool zurücksetzen.
  • Seite 24: Web Gui

    4.5 Web GUI Die Web GUI des rc_visard dient dazu, das Gerät zu testen, zu kalibrieren und seine On-Board-Verarbeitung zu konfigurieren. Auf die Web GUI kann über die IP-Adresse des Sensors von jedem Webbrowser aus zugegrif- fen werden, z. B. Firefox, Google Chrome oder Microsoft Edge. Am einfachsten lässt sich die Web GUI über rcdiscover-gui aufrufen, wenn, wie in Aufspüren von rc_visard-Geräten...
  • Seite 25 • Tiefenbild bietet einen Live-Stream der rektifizierten Bilder der linken Kamera sowie Tiefen- und Konfi- denzbilder. Auf der Seite lassen sich verschiedene Einstellungen zur Berechnung und Filterung von Tiefen- bildern vornehmen. Für nähere Informationen siehe Parameter (Abschnitt 6.2.4). • Dynamik zeigt die für die Schätzung der Eigenbewegung des rc_visard relevante Position und Bewegung visueller Merkmale.
  • Seite 26: Der Rc_Visard Auf Einen Blick

    5 Der rc_visard auf einen Blick Der rc_visard ist eine selbstregistrierende 3D-Kamera. Sie erstellt rektifizierte Bilder sowie Disparitäts-, Konfidenz- und Fehlerbilder, mit denen sich die Tiefenwerte der Aufnahme berechnen lassen. Zusätzlich werden intern gemessene Beschleunigungs- und Drehraten mit Bewegungsschätzungen aus den Kamerabildern kombi- niert, um Echtzeit-Schätzungen der aktuellen Pose (Position und Orientierung), Geschwindigkeit und Beschleuni- gung des Sensors anbieten zu können.
  • Seite 27: Sensordynamik

    Muster oder Oberflächenstrukturen der Objekte verursachten Schwankungen in der Bildintensität. Das Stereo- Matching-Verfahren kann bei Oberflächen ohne jede Textur, wie z. B. bei flachen weißen Wänden, keine Werte liefern. Das vom rc_visard genutzte Verfahren (SGM) bietet – selbst bei feineren Strukturen – den bestmöglichen Kompromiss aus Laufzeit und Genauigkeit.
  • Seite 28: Kalibrierung Zu Einem Roboter

    Ansicht A 3D Positionen Ansicht A Ansicht B Pose B Pose A beobachtete Bewegung 3D Positionen berechnete Ansicht B Kamerabewegung Abb. 5.2: Vereinfachte schematische Darstellung der stereobasierten visuellen Odometrie für 2D-Bewegungen: Die Kamerabewegung wird auf Grundlage der beobachteten Bewegung charakteristischer Bildpunkte berechnet. Da die visuelle Odometrie auf eine gute Qualität der Bilddaten angewiesen ist, verschlechtern sich die Bewe- gungsschätzungen, wenn Bilder verschwommen oder schlecht beleuchtet sind.
  • Seite 29 zu berechnen, bietet der Sensor die Möglichkeit einer Hand-Auge Kalibrierung (Abschnitt 6.8). Die Kalibrierrou- tine lässt sich entweder programmgesteuert über die REST-API-Schnittstelle (Abschnitt 7.2) oder manuell über die Web GUI (Abschnitt 4.5) ausführen. 5.3. Kalibrierung zu einem Roboter...
  • Seite 30: Softwaremodule

    6 Softwaremodule Der rc_visard wird mit verschiedenen integrierten Softwaremodulen ausgeliefert, mit denen sich Kamerabilder, 3D-Informationen und Dynamik-Zustandsschätzungen bereitstellen und Kalibrierungen vornehmen lassen. Jedes Softwaremodul entspricht einem node in der REST-API-Schnittstelle (Abschnitt 7.2). Abb. 6.1 gibt einen Über- blick über die Beziehungen zwischen den verschiedenen Softwaremodulen und den Daten, die sie über die ver- schiedenen Schnittstellen (Abschnitt 7) des rc_visard bereitstellen.
  • Seite 31: Stereokamera

    tinuierliche Datenströme über die rc_dynamics-Schnittstelle übertragen. Zu diesem Zweck verwaltet und verknüpft das Dynamik-Modul Daten aus den folgenden Submodulen: rc _ stereovisodo – Visuelle Odometrie , Abschnitt 6.4) schätzt die Bewegung des rc_visard auf der Grundlage der Bewegungen charakteristischer Merkmale in den Bildern der linken Ka- mera.
  • Seite 32: Übersicht Über Die Parameter

    in beiden Aufnahmen immer auf die gleiche Bildzeile projiziert wird. Die Sichtachsen der Kameras liegen genau parallel zueinander. Dies bedeutet, dass Objektpunkte in unendlicher Distanz in beiden Aufnahmen auf die glei- che Bildspalte projiziert werden. Je näher ein Objektpunkt liegt, desto größer ist der Unterschied zwischen den Bildspalten im rechten und linken Bild.
  • Seite 33 rc _ stereocamera Tab. 6.1: Laufzeitparameter des -Moduls Name Min. Max. Default Beschreibung exp _ auto bool Umschalten zwischen automatischer und manueller Belichtung exp _ max float64 6.6e-05 0.018 0.007 Maximale Belichtungszeit in Sekunden, wenn exp_auto auf TRUE gesetzt ist exp _ value float64 6.6e-05...
  • Seite 34: Beschreibung Der Laufzeitparameter

    Beschreibung der Laufzeitparameter Abb. 6.2: Registerkarte Kamera in der Web GUI (Bildwiederholrate) Dieser Wert bezeichnet die Bildwiederholrate der Kamera in Bildern pro Sekunde. Er gibt die obere Frequenz an, mit der Tiefenbilder berechnet werden können. Dies entspricht auch der Fre- quenz, mit der der rc_visard Bilder über GigE Vision bereitstellt.
  • Seite 35: Stereo-Matching

    Verstärkung auch zu mehr Bildrauschen. Welcher Kompromiss der beste ist, hängt immer auch von der Anwendung ab. wb _ auto Dieser Wert kann auf 1 gesetzt werden um den automatischen Weißabgleich anzuschalten. Bei 0 kann wb _ ratio _ red wb _ ratio _ blue das Verhältnis der Farben manuell mit gesetzt werden.
  • Seite 36: Berechnung Von Tiefenbildern Und Punktwolken

    zwischen ungültigen Disparitätsmessungen und Messungen, bei denen die Disparität aufgrund der unendlich weit entfernten Objekte 0 beträgt, unterscheiden zu können, wird der Disparitätswert für den letztgenannten Fall auf den kleinstmöglichen Disparitätswert über 0 gesetzt. Um Disparitätswerte zu berechnen, muss der Stereo-Matching-Algorithmus die zugehörigen Objektpunkte im linken und rechten Kamerabild finden.
  • Seite 37: Konfidenz- Und Fehlerbilder

    Hinweis: Auf der Homepage von Roboception (http://www.roboception.com/download) stehen Software und Beipiele zur Verfügung, um Disparitätsbilder welche über GigE Vision vom rc_visard empfangen werden, in Tiefenbilder und Punktwolken umzuwandeln. 6.2.3 Konfidenz- und Fehlerbilder Für jedes Disparitätsbild erstellt der rc_visard ein Fehler- und ein Konfidenzbild, um die Unsicherheit jedes ein- zelnen Disparitätswerts anzugeben.
  • Seite 38 Übersicht über die Parameter Dieses Softwaremodul bietet folgende Laufzeitparameter. rc _ stereomatching Tab. 6.3: Laufzeitparameter des -Moduls Name Min. Max. Default Beschreibung int32 Disparitätsbereich in Pixeln disprange fill int32 Disparitätstoleranz (für das Füllen von Löchern) in Pixeln force _ on bool Verarbeitung auch ohne Empfänger erzwingen float64...
  • Seite 39 Abb. 6.4: Registerkarte Tiefenbild der Web GUI (Qualität) Disparitätsbilder lassen sich in drei verschiedenen Auflösungen berechnen: Hoch (640 x 460 quality Pixel), Mittel (320 x 240 Pixel) und Niedrig (214 x 160 Pixel). Je niedriger die Auflösung, desto höher die Bildwiederholrate des Disparitätsbilds. Eine Bildwiederholrate von 25 Hz lässt sich nur bei niedriger Auflösung erreichen.
  • Seite 40 den ein Pixel in einem Disparitätsbild annehmen kann. Wird der Disparitätsbereich erhöht, wird der mess- bare Mindestabstand kleiner, da größere Disparitätswerte mit geringeren Messabständen einhergehen. Der Disparitätsbereich ist in Pixeln angegeben und kann auf einen Wert zwischen 32 und 512 Pixeln eingestellt werden.
  • Seite 41: Sensordynamik

    Für diesen Service sind keine Argumente nötig. Dieser Service liefert keine Rückgabewerte. reset _ defaults (Zurücksetzen) Hiermit werden die Werkseinstellungen der Parameter dieses Moduls wieder- hergestellt und angewandt („factory reset“). Achtung: Der Benutzer muss bedenken, dass beim Aufruf dieses Services die aktuellen Parameterein- stellungen für das Stereo-Matching-Modul unwiderruflich verloren gehen.
  • Seite 42: Verfügbare Zustandsschätzungen

    Pose bei t=0 aktuelle Pose Abb. 6.5: Koordinatensysteme für die Zustandsschätzung: Das IMU-Koordinatensystem liegt im Gehäuse des rc_visard, das Kamera-Koordinatensystem in der Austrittspupille der linken Kamera (siehe auch Koordinatensys- teme, Abschnitt 3.7) Die Transformation zwischen dem IMU-Koordinatensystem und dem Kamera/Sensor-Koordinatensystem wird ebenfalls geschätzt und über die rc_dynamics-Schnittstelle im Echtzeit-Dynamik-Datenstrom bereitgestellt (siehe Schnittstellen, Abschnitt 7).
  • Seite 43 pose _ ins Kameraposen-Datenströme ( pose pose _ ins Die Kameraposen-Datenströme heißen und sie werden mit einer Frequenz von 25 Hz mit pose Zeitstempeln bereitgestellt, die den Bildzeitstempeln entsprechen. pose bietet eine Best-Effort-Schätzung, für die rc _ slam rc _ stereo _ ins kombiniert werden, wenn eine Lizenz für das SLAM-Modul vorliegt.
  • Seite 44 IMU-Datenstrom ( Der IMU-Datenstrom heißt und wird mit der IMU-Frequenz von 200 Hz bereitgestellt. Er umfasst die Be- schleunigungen in X-, Y- und Z-Richtung sowie die Winkelgeschwindigkeiten um diese drei Achsen. Diese Werte sind kalibriert, aber nicht bias- und gravitationskompensiert, und werden im IMU-Koordinatensystem angegeben. Die Transformation zwischen dem IMU-Koordinatensystem und dem Sensorkoordinatensystem wird im Echtzeit- Dynamik-Datenstrom bereitgestellt.
  • Seite 45: Visuelle Odometrie

    6.4 Visuelle Odometrie Die visuelle Odometrie ist Teil des Sensordynamik-Moduls. Sie dient dazu, die Bewegung der Kamera aus der Bewegung charakteristischer Bildpunkte (sogenannter Bildmerkmale) im linken Kamerabild zu schätzen. Bild- merkmale werden auf Basis von Eckpunkten, Bildbereichen mit hohen Intensitätsgradienten, errechnet. Mithilfe von Bildmerkmalen lassen sich Übereinstimmungen zwischen aufeinanderfolgenden Bildern finden.
  • Seite 46 Beschreibung der Laufzeitparameter Laufzeitparameter beeinflussen die Anzahl an Bildmerkmalen, auf deren Grundlage die Berechnungen für die vi- suelle Odometrie vorgenommen werden. Ein Mehr an Bildmerkmalen erhöht die Robustheit der visuellen Odome- trie, geht jedoch zu Lasten einer längeren Laufzeit, was wiederum die Frequenz der visuellen Odometrie verringern kann.
  • Seite 47 werden. Längere Ausfälle sollten vermieden werden, da sie zu größeren Posenunsicherheiten und zu Fehlern in der Zustandsschätzung führen können. Jeder Laufzeitparameter ist durch eine eigene Zeile auf der Registerkarte Dynamik der Web GUI repräsentiert. Der Name der Zeile ist in Klammern hinter dem Namen des Parameters angegeben und die Parameter werden in der Reihenfolge, in der sie in der Web GUI erscheinen, aufgelistet: (Dynamik) Dieser Parameter startet die Module für die Schätzungen zur Sensordynamik (siehe Services, start...
  • Seite 48: Stereo-Ins

    Das Modul bietet keine eigenen Funktionen zum Starten bzw. Stoppen, da es über das Dynamik-Modul (Abschnitt 6.3) gestartet bzw. gestoppt wird. 6.5 Stereo-INS Die stereobildgestützte inertiale Navigation (INS) ist Teil des Dynamik-Moduls. Das System kombiniert die Mess- werte der visuellen Odometrie mit den Daten aus der inertialen Messeinheit (IMU), um so robuste und hochfre- quente Echtzeit-Zustandsschätzungen mit geringer Latenz anbieten zu können.
  • Seite 49: Kamerakalibrierung

    Für die Kalibrierung bedarf es eines präzisen Kalibriermusters. Das Muster lässt sich ausdrucken und muss auf eine flache Oberfläche geklebt werden. Eine Vorlage mit zugehörigen Anweisungen kann http://www. hier roboception.com/download heruntergeladen werden. Die Anweisungen sind genau zu befolgen, da die Kalibrier- qualität in hohem Maße von der Genauigkeit des Kalibriermusters abhängt. 6.7. Kamerakalibrierung...
  • Seite 50: Schritt 2: Kalibrierung Überprüfen

    Abb. 6.7: Kalibriereinstellungen Um die Kalibrierung der Kamera überprüfen bzw. neu durchführen zu können, muss in der Web GUI (Abschnitt 4.5) das Modul Kamera-Kalibrierung ausgewählt werden. Dafür sind im ersten Schritt, wie im Screenshot oben gezeigt, die Breite und Höhe des Kalibriermusters anzugeben. Mit Klick auf Weiter gelangt der Benutzer zum nächsten Schritt.
  • Seite 51 Abb. 6.8: Überprüfung der Kalibrierung Werden einige der Quadrate nicht oder nur für kurze Zeit erkannt, so kann dies an einem unpräzisen oder beschä- digten Kalibriermuster oder an schlechten Lichtverhältnissen liegen. Hinweis: Um einen aussagekräftigen Kalibrierfehler berechnen zu können, muss das Muster so nah wie mög- lich an die Kameras gehalten werden.
  • Seite 52: Schritt 3: Durchführung Der Kalibrierung

    Schritt 3: Durchführung der Kalibrierung Bevor die Kalibrierung vorgenommen wird, sollte die Belichtungszeit der Kamera richtig eingestellt werden. Um ein gutes Kalibrierergebnis zu erzielen, sollten die Bilder gut belichtet und Bildrauschen vermieden werden. Die maximale Belichtungszeit im automatischen Modus sollte groß genug sein, um einen sehr kleinen Verstärkungs- faktor zu erzielen, idealerweise um 0,0 dB.
  • Seite 53: Monokalibrierung

    Abb. 6.10: Wird das Kalibriermuster falsch herum gehalten, kreuzen sich die grünen Linien. Hinweis: Die Kalibrierung mag umständlich erscheinen, da das Muster hierfür in bestimmten vordefinierten Stellungen gehalten werden muss. Dieses Vorgehen ist jedoch zwingend einzuhalten, soll ein qualitativ hoch- wertiges Kalibrierergebnis erzielt werden.
  • Seite 54: Schritt 4: Kalibrierergebnis Speichern

    Zunächst sollte das Muster in einem Abstand von weniger als 40 cm vor den Sensor gehalten werden. Es muss auf beiden Bildern vollständig sichtbar sein und die Blickrichtung der Kameras sollte senkrecht zum Muster stehen. Ist im Bild eine grüne Umrandung zu sehen, so bedeutet dies, dass die Bilder für die Kalibrierung akzeptiert wurden.
  • Seite 55: Hand-Auge-Kalibrierung

    (Abschnitt 6.8.3) ist ein benutzerfreundliches dreistufiges Verfahren, für das mit einem Kali- briermuster gearbeitet wird. Das Muster lässt sich ausdrucken und muss auf eine flache Oberfläche geklebt werden. Eine Vorlage mit zugehörigen Anweisungen kann http://www.roboception.com/download heruntergeladen hier werden. Die Anweisungen sind genau zu befolgen, da die Kalibrierqualität in hohem Maße von der Genauigkeit des Kalibriermusters abhängt.
  • Seite 56 2. Für Anwendungsfälle, bei denen sich die Roboterposen nicht programmgesteuert an das Modul zur Hand- Auge-Kalibrierung des rc_visard übertragen lassen, sieht die Registerkarte Hand-Auge-Kalibrierung der (Abschnitt 4.5) einen geführten Prozess vor, mit dem sich die Kalibrierroutine manuell durch- Web GUI führen lässt.
  • Seite 57 Kamera robot camera Roboter robot Kalibriermuster Abb. 6.14: Wichtige Koordinatensysteme und Transformationen für die Kalibrierung eines robotergeführ- ten rc_visard: Der Sensor wird mit einer festen relativen Position zu einem benutzerdefinierten Roboter- Koordinatensystem (z. B. Flansch oder Werkzeugmittelpunkt) montiert. Es ist wichtig, dass die Pose T robot Roboter-Koordinatensystems in Bezug auf ein benutzerdefiniertes externes Referenzkoordinatensystem (ext) wäh- rend der Kalibrierroutine gemessen werden kann.
  • Seite 58 Kamera Kalibriermuster Roboter camera robot Abb. 6.15: Wichtige Koordinatensysteme und Transformationen für die Kalibrierung eines statisch montierten rc_visard: Der Sensor wird mit einer festen Position relativ zu einem benutzerdefinierten externen Referenzkoor- dinatensystem ext (z. B. Weltkoordinatensystem oder Roboter-Montagepunkt) montiert. Es ist wichtig, dass die Pose T des benutzerdefinierten Roboter-Koordinatensystems in Bezug auf dieses Koordinatensystem während robot...
  • Seite 59 Setze Parameter Slots mit Roboterposen und zugehörigen Kamerabildern z.B. Musterbreite, -höhe (unterschiedliche Ansichten des Kalibriermusters) Bewege Roboter (x,y,z) (qx,qy,qz,qw) (x,y,z) (qx,qy,qz,qw) zu neuer Kalibrierposition (x,y,z) (qx,qy,qz,qw) slot_0 mind. 3x wiederholen slot_1 slot_2 Sende Roboterpose an Hand-Auge- Kalibriermodul (Slots füllen) Berechne Kalibrierungs- transformation Abb.
  • Seite 60: Schritt 2: Auswahl Und Übertragung Der Kalibrierpositionen Des Roboters

    Abb. 6.18: Erfassung der Parameter zur Hand-Auge-Kalibrierung in der Web GUI des rc_visard Schritt 2: Auswahl und Übertragung der Kalibrierpositionen des Roboters In diesem Schritt (2a.) definiert der Benutzer verschiedene Kalibrierpositionen, die der Roboter anfahren muss. Dabei ist sicherzustellen, dass das Kalibriermuster bei allen Positionen im linken Kamerabild des rc_visard voll- ständig sichtbar ist.
  • Seite 61 Werden sehr ähnliche Ansichten ausgewählt, d. h. werden die Positionen des Roboters bei den verschiedenen Wiederholungen von Schritt 2a nur leicht variiert, kann dies zu einer ungenauen Schätzung der gewünschten Kalibriertransformation führen. Nachdem der Roboter die jeweilige Kalibrierposition erreicht hat, muss die entsprechende Pose T des benut- robot zerdefinierten Roboter-Koordinatensystems im benutzerdefinierten externen Referenzkoordinatensystem ext an...
  • Seite 62 Abb. 6.20: Erstes Beispielbild für den Hand-Auge-Kalibriervorgang eines statisch montierten rc_visard Sobald das tatsächliche Bild der empfohlenen Ansicht entspricht, sind die Posen des benutzerdefinierten Roboter-Koordinatensystems manuell in den entsprechenden Textfeldern zu erfassen und das Kamerabild mit der Schaltfläche Bild aufnehmen aufzunehmen. Hinweis: Der Zugriff auf die Posendaten des Roboters hängt vom Modell des Roboters und seinem Hersteller ab.
  • Seite 63: Schritt 3: Berechnen Und Speichern Der Kalibriertransformation

    Abb. 6.21: Kamerabilder, die zum Zwecke der Kalibrierung aufgezeichnet wurden Schritt 3: Berechnen und Speichern der Kalibriertransformation Der letzte Schritt in der Hand-Auge-Kalibrierroutine besteht darin, die gewünschte Kalibriertransformation auf Grundlage der erfassten Posen und Kamerabilder zu berechnen. Die REST-API bietet hierfür den Service (siehe Services, Abschnitt 6.8.5).
  • Seite 64 Abb. 6.22: Ergebnis der Hand-Auge-Kalibrierung, dargestellt in der Web GUI 6.8.4 Parameter rc _ hand _ eye _ calibration Das Modul zur Hand-Auge-Kalibrierung wird in der REST-API als bezeichnet und in der Web GUI (Abschnitt 4.5) auf der Registerkarte Hand-Auge-Kalibrierung dargestellt. Der Benutzer kann die Kalibrierparameter entweder dort oder über die REST-API-Schnittstelle (Abschnitt 7.2) ändern.
  • Seite 65 Beschreibung der Laufzeitparameter Für die Beschreibungen der Parameter sind die in der Web GUI gewählten Namen der Parameter in Klammern angegeben. grid _ width (Breite des Musters (m)) Breite des Kalibriermusters in Metern. Die Breite sollte mit sehr hoher Genauigkeit, vorzugsweise im Submillimeterbereich, ermittelt werden. grid _ height (Höhe des Musters (m)) Höhe des Kalibriermusters in Metern.
  • Seite 66 "slot": "int32" Dieser Service liefert folgenden Rückgabewert: "message": "string", "status": "int32", "success": "bool" slot -Argument wird verwendet, um den verschiedenen Kalibrierpositionen Ziffern zuzuordnen. Wann set _ pose immer der Service aufgerufen wird, wird ein Kamerabild aufgezeichnet. Dieser Service schlägt fehl, wenn das Kalibriermuster im aktuellen Bild nicht erkannt werden kann. reset _ calibration Hiermit werden alle zuvor aufgenommenen Posen mitsamt der zugehörigen Bilder ge- löscht.
  • Seite 67 Für diesen Service sind keine Argumente nötig. Dieser Service liefert folgenden Rückgabewert: "message": "string", "status": "int32", "success": "bool" get _ calibration Hiermit wird die derzeit auf dem rc_visard gespeicherte Hand-Auge-Kalibrierung abgerufen. Für diesen Service sind keine Argumente nötig. Dieser Service liefert folgenden Rückgabewert: "error": "float64", "message": "string", "pose": {...
  • Seite 68: Schnittstellen

    Hinweis: Der rc_visard unterstützt Jumbo-Frames mit einer Größe bis 9000 Byte. Für höchste Leistung wird empfohlen, die maximale Übertragungseinheit (MTU) des GigE-Vision-Clients auf 9000 zu stellen. Hinweis: Über seine Homepage stellt Roboception (http://www.roboception.com/download) Tools und eine C++-Programmierschnittstelle mit Beispielen zum Discovery-Mechanismus, zur Konfiguration und zum Bild-...
  • Seite 69: Wichtige Parameter Der Genicam-Schnittstelle

    7.1.1 Wichtige Parameter der GenICam-Schnittstelle Die folgende Liste enthält einen Überblick über relevante GenICam-Parameter des rc_visard, die über die GenICam-Schnittstelle abgerufen und/oder geändert werden können. Neben den Standardparametern, die in der Standard Feature Naming Convention (SFNC, siehe http://www.emva.org/standards-technology/genicam/ genicam-downloads/) definiert werden, bietet der rc_visard zudem eigene Parameter, die sich auf spezielle Ei- genschaften der Module Stereokamera (Abschnitt 6.1) und...
  • Seite 70 • Voreinstellung: Continuous • Beschreibung: Lässt sich für die manuelle Belichtung auf bzw. für die automatische Belichtung Continuous setzen (Belichtung, Abschnitt 6.1.3). ExposureTime • Typ: Float, Wertebereich: 66–18000 µs • Voreinstellung: 5000 µs • Beschreibung: Belichtungszeit der Kamera für den manuellen Belichtungsmodus, ausgedrückt in Mi- krosekunden (Manual, Abschnitt 6.1.3).
  • Seite 71 • Typ: Aufzählung, Wert: ist immer DisparityC • Beschreibung: Modus für die Tiefenmessungen, ist immer DisparityC (schreibgeschützt) Scan3dCoordinateScale • Typ: Float • Beschreibung: Der Skalierungsfaktor, der mit den Disparitätswerten im Disparitätsbild-Stream zu mul- tiplizieren ist, um die tatsächlichen Disparitätswerte zu erhalten. Der Wert beträgt immer 0,0625. (schreibgeschützt) Scan3dCoordinateOffset •...
  • Seite 72 • Typ: Integer, Wertebereich: 32–512 Pixel • Voreinstellung: 256 Pixel • Beschreibung: Maximaler Disparitätswert in Pixeln (Disparitätsbereich, Abschnitt 6.2.4). DepthFill • Typ: Integer, Wertebereich: 0–4 Pixel • Voreinstellung: 3 Pixel • Beschreibung: Wert in Pixeln für Füllen (Abschnitt 6.2.4). DepthSeg •...
  • Seite 73: Umwandlung Von Bild-Streams

    Name der Kompo- PixelFormat Breite × Höhe Beschreibung nente Intensity 1280 × 960 Rektifiziertes Bild der lin- ken Kamera (monochrome Mono8 Sensoren) YCbCr411 _ 8 (Farbsensoren) IntensityCombined 1280 × 1920 Rektifiziertes Bild der lin- ken Kamera, gestapelt auf (monochrome Mono8 das rektifizierte Bild der Sensoren) rechten Kamera...
  • Seite 74: Rest-Api-Schnittstelle

    lässt sich der Tiefenfehler �� (in Metern) mit den GenICam-Parametern wie folgt berechnen: ������ �� Scan3dCoordinateScale FocalLengthFactor �� Baseline ���� �� ������ (�� Scan3dCoordinateScale) ���� Für nähere Informationen zu Disparitäts-, Fehler- und Konfidenzbildern siehe Stereo-Matching (Abschnitt 6.2). 7.2 REST-API-Schnittstelle Neben der GenICam-Schnittstelle (Abschnitt 7.1) bietet der rc_visard eine umfassende RESTful-Web- Schnittstelle (REST-API), auf die jeder HTTP-Client und jede HTTP-Bibliothek zugreifen kann.
  • Seite 75 Je nach der Art der Anfrage und Datentyp können die Argumente für HTTP-Anfragen als Teil des Pfads (URI) zur Ressource, als Abfrage-Zeichenfolge, als Formulardaten oder im Body der Anfrage übertragen werden. Die folgenden Beispiele nutzen das Kommandozeilenprogramm curl, das für verschiedene Betriebssysteme verfügbar ist.
  • Seite 76: Verfügbare Ressourcen Und Anfragen

    "type": "float64", "Minimum confidence" "description": Hinweis: Das tatsächliche Verhalten, die zulässigen Anfragen und die speziellen Rückgabecodes hängen in ho- hem Maße von der gewählten Ressource, vom Kontext und von der Aktion ab. Siehe die verfügbaren Ressour- (Abschnitt 7.2.2) des rc_visard und einzelnen Parameter und Services jedes Softwaremoduls (Abschnitt 7.2.2 Verfügbare Ressourcen und Anfragen...
  • Seite 77 median -Parameter dieses Moduls könnte wie folgt auf den Wert 3 gesetzt werden: curl -X PUT --header 'Content-Type: application/json' '{ "value": 3 }' http://<rcvisard>/ api/v1/nodes/rc _ stereomatching/parameters/median Hinweis: Laufzeitparameter sind modulspezifisch und werden in dem jeweiligen Softwaremodul (Abschnitt 6) dokumentiert. Hinweis: Die meisten Parameter, die die Module über die REST-API anbieten, lassen sich auch über die benutzerfreundliche (Abschnitt 4.5) des rc_visard erkunden und austesten.
  • Seite 78 "reset _ defaults", "change _ state" "stale" "status": "rc _ stereocamera", "name": "parameters": [ "fps", "exp _ auto", "exp _ value", "exp _ max" "services": [ "save _ parameters", "reset _ defaults" "status": "running" "rc _ hand _ eye _ "name": calibration", "parameters": [...
  • Seite 79 "rc _ stereovisodo", "name": "parameters": [ "disprange", "nkey", "ncorner", "nfeature" "services": [ "save _ parameters", "reset _ defaults" "stale" "status": Antwort-Headers • Content-Type – application/json Statuscodes • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: NodeInfo-Array) Referenzierte Datenmodelle • NodeInfo (Abschnitt 7.2.3) GET /nodes/{node} Abruf von Informationen zu einem einzelnen Modul.
  • Seite 80 • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: NodeInfo) • 404 Not Found – Modul nicht gefunden Referenzierte Datenmodelle • (Abschnitt 7.2.3) NodeInfo GET /nodes/{node}/parameters Abruf von Parametern eines Moduls. Musteranfrage /api/v1/nodes/<node>/parameters?name=<name> HTTP/1.1 Host: <rcvisard> Musterantwort HTTP/1.1 200 Content-Type: application/json "default": 25, "Frames per second in Hz", "description":...
  • Seite 81 • 404 Not Found – Modul nicht gefunden Referenzierte Datenmodelle • Parameter (Abschnitt 7.2.3) PUT /nodes/{node}/parameters Aktualisierung mehrerer Parameter. Musteranfrage /api/v1/nodes/<node>/parameters HTTP/1.1 Host: <rcvisard> Accept: application/json "name": "string", "value": {} Musterantwort HTTP/1.1 200 Content-Type: application/json "default": 25, "Frames per second in Hz", "description": "max": 25,...
  • Seite 82 Anfrage-Header • Accept – application/json Antwort-Headers • Content-Type – application/json Statuscodes • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: Parameter-Array) • 404 Not Found – Modul nicht gefunden • 403 Forbidden – Aktualisierung des Parameters verboten, z. B. weil er aufgrund einer laufenden GigE Vision-Anwendung gesperrt ist.
  • Seite 83 /api/v1/nodes/<node>/parameters/<param> HTTP/1.1 Host: <rcvisard> Accept: application/json "name": "string", "value": {} Musterantwort HTTP/1.1 200 Content-Type: application/json "default": "H", "description": "Quality, i.e. H, M or L", "max": "", "min": "", "name": "quality", "type": "string", "value": "M" Parameter • node string ) – Modulname (obligatorisch) •...
  • Seite 84 HTTP/1.1 200 Content-Type: application/json "args": {}, "Restarts the component.", "description": "name": "restart", "response": { "accepted": "bool", "uint8" "enteredState": "args": {}, "description": "Starts the component.", "name": "start", "response": { "accepted": "bool", "enteredState": "uint8" "args": {}, "description": "Stops the component.", "name": "stop", "response": { "accepted": "bool", "enteredState":...
  • Seite 85 "args": { "pose": { "orientation": { "w": "float64", "x": "float64", "y": "float64", "float64" "z": "position": { "x": "float64", "y": "float64", "float64" "z": "slot": "int32" "description": "Save a pose (grid or gripper) for later calibration.", "set _ "name": pose", "response": { "message": "string", "status": "int32", "success":...
  • Seite 86 "set _ pose", "name": "response": { "Grid detected, pose stored.", "message": "status": 1, "success": true Parameter • string ) – Modulname (obligatorisch) node • ) – Name des Service (obligatorisch) service string JSON-Objekt zur Anfrage • ) – Beispielargumente (obligatorisch) service args Service Anfrage-Header...
  • Seite 87 Parameter • string ) – Modulname (obligatorisch) node Antwort-Headers • Content-Type – application/json Statuscodes • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: NodeStatus) • 404 Not Found – Modul nicht gefunden Referenzierte Datenmodelle • NodeStatus (Abschnitt 7.2.3) Datenströme Über die folgenden Ressourcen und Anfragen ist es möglich, auf die Streams der Die rc_dynamics-Schnittstelle (Abschnitt 7.3) zuzugreifen und diese zu konfigurieren.
  • Seite 88 "Pose of left camera (RealTime 200Hz)", "description": "destinations": [ "192.168.1.100:20000", "192.168.1.42:45000" "pose _ rt", "name": "protobuf": "Frame", "UDP" "protocol": "Raw IMU (InertialMeasurementUnit) values (RealTime 200Hz)", "description": "destinations": [], "name": "imu", "protobuf": "Imu", "protocol": "UDP" "Dynamics of rc _ visard (pose, velocity, acceleration) (RealTime "description": 200Hz)", "destinations": [...
  • Seite 89 Parameter • ) – Name des Streams (obligatorisch) stream string Antwort-Headers • Content-Type – application/json Statuscodes • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: Stream) • 404 Not Found – Datenstrom nicht gefunden Referenzierte Datenmodelle • Stream (Abschnitt 7.2.3) PUT /datastreams/{stream} Aktualisierung einer Datenstrom-Konfiguration.
  • Seite 90: System Und Logs

    DELETE /datastreams/{stream} Löschen eines Ziels aus der Datenstrom-Konfiguration. Musteranfrage DELETE /api/v1/datastreams/<stream>?destination=<destination> HTTP/1.1 Host: <rcvisard> Musterantwort HTTP/1.1 200 Content-Type: application/json "description": "Pose of left camera at VisualOdometry rate (~10Hz)", "destinations": [], "name": "pose", "protobuf": "Frame", "protocol": "UDP" Parameter • ) – Name des Streams (obligatorisch) stream string Anfrageparameter...
  • Seite 91 HTTP/1.1 200 Content-Type: application/json "date": 1503060035.0625782, "name": "rcsense-api.log", "size": "date": 1503060035.741574, "name": "stereo.log", 39024 "size": "date": 1503060044.0475223, "name": "camera.log", "size": 1091 "date": 1503060035.2115774, "name": "dynamics.log" Antwort-Headers • Content-Type – application/json Statuscodes • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: LogInfo-Array) Referenzierte Datenmodelle •...
  • Seite 92 "rc _ stereo _ ins", "component": "level": "INFO", "Autostart disabled", "message": 1503060034.098 "timestamp": "rc _ stereo _ ins", "component": "level": "INFO", "Initializing realtime communication", "message": 1503060034.209 "timestamp": "rc _ stereo _ "component": ins", "level": "INFO", "message": "Startet state machine in state IDLE", "timestamp": 1503060034.383...
  • Seite 93 Statuscodes • 200 OK – Erfolgreiche Verarbeitung (Rückgabe: Log) • 404 Not Found – Log nicht gefunden Referenzierte Datenmodelle • (Abschnitt 7.2.3) GET /system Abruf von Systeminformationen zum rc_visard. Musteranfrage /api/v1/system HTTP/1.1 Host: <rcvisard> Musterantwort HTTP/1.1 200 Content-Type: application/json "firmware": { "active _ image": { "rc _ visard _ v0.6.3"...
  • Seite 94 GET /system/license Abruf von Informationen zu den auf dem rc_visard installierten Lizenzen. Musteranfrage /api/v1/system/license HTTP/1.1 Host: <rcvisard> Musterantwort HTTP/1.1 200 Content-Type: application/json "components": { "calibration": true, "fusion": true, "hand _ eye _ calibration": true, "rectification": true, "self _ calibration": true, "slam": false, "stereo": true, "svo":...
  • Seite 95 /api/v1/system/reboot HTTP/1.1 Host: <rcvisard> Statuscodes • 200 OK – Erfolgreiche Verarbeitung GET /system/rollback Abruf von Informationen zu Firmware/System-Images, die aktuell auf dem rc_visard aktiv oder inaktiv sind. Musteranfrage /api/v1/system/rollback HTTP/1.1 Host: <rcvisard> Musterantwort HTTP/1.1 200 Content-Type: application/json "active _ image": { "image _ "rc _ visard _ v0.6.1"...
  • Seite 96 Musteranfrage /api/v1/system/update HTTP/1.1 Host: <rcvisard> Musterantwort HTTP/1.1 200 Content-Type: application/json "active _ image": { "image _ "rc _ visard _ v0.6.1" version": "fallback _ booted": false, "inactive _ image": { "image _ "rc _ visard _ v0.6.0" version": "next _ boot _ "active _ image"...
  • Seite 97 FirmwareInfo: Informationen zu aktuell aktiven und inaktiven Firmware-Images und dazu, welches Image für den Boot-Vorgang verwendet wird. Ein Objekt des Typs FirmwareInfo besitzt folgende Eigenschaften: • active_image (ImageInfo): siehe Beschreibung von ImageInfo. • fallback_booted (boolean): TRUE, wenn das gewünschte Image nicht hochgefahren werden konnte und ein Fallback auf das zuvor genutzte Image vorgenommen wurde.
  • Seite 98 "calibration": false, "fusion": false, "hand _ eye _ calibration": false, "rectification": false, "self _ calibration": false, "slam": false, "stereo": false, "svo": false LicenseComponents-Objekte sind in LicenseInfo enthalten. LicenseInfo: Informationen zur aktuell auf dem rc_visard angewandten Softwarelizenz. Ein Objekt des Typs LicenseInfo besitzt folgende Eigenschaften: •...
  • Seite 99 "message": "string", "timestamp": "name": "string", "size": Log-Objekte werden in folgenden Anfragen verwendet: • GET /logs/{log} LogEntry: Darstellung eines einzelnen Logeintrags in einer Logdatei. Ein Objekt des Typs LogEntry besitzt folgende Eigenschaften: • component (string): Name des Moduls, das diesen Eintrag angelegt hat. •...
  • Seite 100 "name": "string", "parameters": [ "string", "string" "services": [ "string", "string" "string" "status": NodeInfo-Objekte werden in folgenden Anfragen verwendet: • GET /nodes • GET /nodes/{node} NodeStatus: Detaillierter aktueller Status des Moduls, einschließlich Laufzeitstatistik. Ein Objekt des Typs NodeStatus besitzt folgende Eigenschaften: •...
  • Seite 101 • max (Typ nicht definiert): Höchstwert, der diesem Parameter zugewiesen werden kann. • min (Typ nicht definiert): Mindestwert, der diesem Parameter zugewiesen werden kann. • name (string): Name des Parameters. • type (string): als Zeichenfolge dargestellter primitiver Datentyp des Parameters (mögliche Wer- bool int8 uint8...
  • Seite 102 • response (ServiceResponse): siehe Beschreibung von ServiceResponse. Musterobjekt "args": {}, "description": "string", "name": "string", "response": {} Service-Objekte werden in folgenden Anfragen verwendet: • GET /nodes/{node}/services • GET /nodes/{node}/services/{service} • PUT /nodes/{node}/services/{service} ServiceArgs: Argumente, die für den Aufruf eines Services benötigt werden: Diese Argumente werden in der Regel in einem (verschachtelten) Dictionary (Schlüssel-Werte-Auflistung) dargestellt.
  • Seite 103 StreamDestination-Objekte sind in Stream enthalten. StreamType: Beschreibung eines Datenstromprotokolls. Ein Objekt des Typs StreamType besitzt folgende Eigenschaften: • protobuf (string): Datenformat zur Serialisierung, d. h. Name der ProtoBuf-Nachrichtendefinition. • protocol (string): Netzwerkprotokoll des Streams (UDP). Musterobjekt "protobuf": "string", "string" "protocol": StreamType-Objekte sind in Stream enthalten.
  • Seite 104 "ready": false, "serial": "string", "time": 0, "uptime": SysInfo-Objekte werden in folgenden Anfragen verwendet: • GET /system 7.2.4 Swagger UI Swagger UI des rc_visard ermöglicht es Entwicklern, die REST-API – beispielsweise zu Entwicklungs- und Testzwecken – leicht darzustellen und zu verwenden. Der Zugriff auf oder auf http://<rcvisard>/api/ http:/...
  • Seite 105 Abb. 7.1: Startansicht der Swagger UI des rc_visard, bei der die Ressourcen und Anfragen in nodes datastreams logs system gruppiert sind. Mithilfe dieser Schnittstelle können alle verfügbaren Ressourcen und Anfragen erprobt werden, indem diese durch Klick auf- und zugeklappt werden. Die folgende Abbildung zeigt ein Beispiel dafür, wie sich der aktuelle Zustand eines Moduls abrufen lässt, indem der erforderliche Parameter ( -Name) ausgefüllt und anschließend die node...
  • Seite 106 rc _ stereomatching Abb. 7.2: Ergebnis nach Abfrage des Status des -Moduls Einige Aktionen, wie das Setzen von Parametern oder der Aufruf von Services, bedürfen komplexerer Parameter als eine HTTP-Anfrage. Die Swagger UI erlaubt es Entwicklern, die für diese Aktionen benötigten Attribute, wie im nächsten Beispiel gezeigt, während der Laufzeit zu erkunden.
  • Seite 107 set _ pose Abb. 7.3: Ergebnis der -Anfrage zum -Service zeigt die für diesen Service benötigten Argumente Der Benutzer kann diesen vorformatierten JSON als Muster für die Argumente nutzen, um damit den Service tatsächlich aufzurufen: 7.2. REST-API-Schnittstelle...
  • Seite 108: Die Rc_Dynamics-Schnittstelle

    set _ pose Abb. 7.4: Ausfüllen der Argumente des -Services 7.3 Die rc_dynamics-Schnittstelle Die rc_dynamics-Schnittstelle bietet über Echtzeit-Datenströme kontinuierlichen Zugang zu verschiedenen Dynamik-Zustandsschätzungen (Abschnitt 6.3.2). Die Schnittstelle ermöglicht es, Zustandsschätzungen aller Art so zu konfigurieren, dass sie an einen beliebigen Host im Netzwerk gestreamt werden. Das dafür eingesetzte Datenstromprotokoll unterstützt alle gängigen Betriebssysteme und Programmiersprachen.
  • Seite 109 ne Liste aller verfügbaren Datenströme abrufen. Für eine detaillierte Beschreibung der im Folgenden benannten Datenströme siehe Verfügbare Zustandsschätzungen (Abschnitt 6.3.2). Tab. 7.1: Datenströme, die über die rc_dynamics-Schnittstelle verfügbar sind Name Protokoll ProtoBuf Beschreibung Dynamik des rc_visard (Pose, Geschwindigkeit, dynamics Dynamics Beschleunigung), in Echtzeit (IMU-Frequenz) bereitgestellt vom INS- oder SLAM-Modul (Best-Effort-Prinzip) dynamics _ ins...
  • Seite 110 Netzwerkprotokoll: Derzeit wird ausschließlich das Netzwerkprotokoll unterstützt, was bedeutet, dass Da- ten als UDP-Datagramme versandt werden. Datenserialisierung: Die gesandten Daten werden über Google protocol buffers serialisiert. Dabei werden fol- gende Nachrichtentyp-Definitionen verwendet. • Die Kameraposen-Datenströme Echtzeit-Datenströme der Kamerapose (Abschnitt 6.3.2) werden mithilfe des Nachrichtentyps serialisiert: Frame...
  • Seite 111 Vector3d optional double optional double optional double 7.3.4 Die rc_dynamics-Programmierschnittstelle rc _ dynamics _ api Das Open-Source- -Paket bietet einen einfachen, benutzerfreundlichen C++-Wrapper, mit dem rc_dynamics-Datenströme angefragt und geparst werden können. Siehe http://www.roboception.com/download. 7.3. Die rc_dynamics-Schnittstelle...
  • Seite 112: Wartung

    8 Wartung Achtung: Das Gehäuse des rc_visard muss für Wartungsarbeiten nicht geöffnet werden. Das unbefugte Öff- nen des Produkts führt zum Erlöschen der Garantie. 8.1 Reinigung der Kameralinsen Glaslinsen sind mit einer Anti-Reflex-Beschichtung versehen, um Spiegelungen zu verringern. Bei der Reinigung der Linsen ist besonders vorsichtig vorzugehen.
  • Seite 113 .mender -Suffix erkennbar ist. Ist ein neues Firmware-Update für den rc_visard erhältlich, kann die Datei von der Roboception-Homepage (http://www.roboception.com/download) auf den lokalen Rechner heruntergeladen werden. Schritt 2: Hochladen der Update-Datei Soll das Update über die REST-API des rc_visard vorgenommen wer- den, kann der Benutzer auf die Anfrage zurückgreifen.
  • Seite 114: Wiederherstellung Der Vorherigen Firmware-Version

    Bedarf wiederhergestellt werden. Dieses Verfahren wird auch als Roll- back bezeichnet. Hinweis: Es wird dringend empfohlen, die neueste Firmware-Version zu verwenden, die von Roboception zur Verfügung gestellt wurde. Auf das Rollback sollte nur dann zurückgegriffen werden, wenn es mit der aktualisierten Firmware-Version große Probleme gibt.
  • Seite 115: Neustart Des Rc_Visard

    (Abschnitt 4.5) vornehmen. Der Neustart ist abgeschlossen, wenn die LED wieder grün leuchtet. 8.6 Aktualisierung der Softwarelizenz Lizenzen, die von Roboception zur Aktivierung zusätzlicher Funktionen erworben werden, können über die Re- gisterkarte System der Web GUI (Abschnitt 4.5) installiert werden.
  • Seite 116: Zubehör

    9 Zubehör 9.1 Anschlussset Roboception bietet ein optional erhältliches Anschlussset an, um Kunden bei der Einrichtung des rc_visard zu unterstützen. Es besteht aus folgenden Elementen: • Netzwerkkabel mit gerader M12-Buchse und geradem RJ45-Stecker, Länge: 2 m oder 5 m; • Netzteilkabel mit gerader M12-Buchse und DC-Stecker, Länge: 30 cm;...
  • Seite 117: Stromanschluss

    • Gerader M12-Stecker/Gerader RJ45-Stecker; Kabellänge: 10 m; Phoenix Contact; NBC-MS/10,0- 94B/R4AC SCO; Art.-Nr.: 1407417 • Gerader M12-Stecker/Gerader RJ45-Stecker; Kabellänge: 10 m; MURR Elektronik; Art.-Nr.: 7700-48521- S4W1000 • Gewinkelter M12-Stecker/Gerader RJ45-Stecker; Kabellänge: 10 m; MURR Elektronik; Art.-Nr.: 7700- 48551-S4W1000 9.2.2 Stromanschluss Für den Stromanschluss und die GPIO-Konnektivität ist ein achtpoliger M12-Stecker mit A-Kodierung vorge- sehen.
  • Seite 118: Fehlerbehebung

    10 Fehlerbehebung 10.1 LED-Farben Während des Boot-Vorgangs wechselt die LED mehrmals die Farbe, um die verschiedenen Boot-Phasen anzuzei- gen: Tab. 10.1: LED-Farbcodes LED-Farbe Boot-Vorgang Weiß Stromversorgung OK Gelb Normaler Boot-Vorgang Violett Blau Grün Boot-Vorgang abgeschlossen, rc_visard einsatzbereit Die LED dient ferner dazu, Probleme oder Fehlerzustände zu signalisieren, um den Benutzer im Rahmen der Problembehandlung zu unterstützen.
  • Seite 119: Probleme Mit Der Konnektivität

    • Reinigen Sie die Kühlrippen und das Gehäuse. • Stellen Sie sicher, dass in alle Richtungen um die Kühlrippen 10 cm Platz sind, damit die konvektive Küh- lung ordentlich funktioniert. • Vergewissern Sie sich, dass die Umgebungstemperatur der Spezifikation entspricht. Probleme mit der Zuverlässigkeit und/oder mechanische Schäden Dies kann darauf hinweisen, dass die Umgebungsbedingungen (Vibrationen, Erschütterungen, Schwingungen und Temperatur) außerhalb der Spezifikation liegen (siehe...
  • Seite 120: Probleme Mit Den Kamerabildern

    Kameralinsen, Abschnitt 8.1). • Trifft keiner der vorstehenden Punkte zu, kann es sein, dass ein schweres Hardware-Problem vorliegt. Bitte wenden Sie sich an Roboception (Kontakt, Abschnitt 11). Bildwiederholrate ist zu niedrig • Erhöhen Sie die Bildwiederholrate gemäß den Anweisungen in Parameter (Abschnitt 6.1.3).
  • Seite 121 • Überprüfen Sie, ob die Kamerabilder gut belichtet und scharf sind. Befolgen Sie bei Bedarf die Anweisun- gen in Probleme mit den Kamerabildern (Abschnitt 10.4). • Überprüfen Sie, ob die Szene genügend Textur hat (siehe Stereo-Matching, Abschnitt 6.2) und installieren Sie bei Bedarf einen Musterprojektor.
  • Seite 122: Probleme Mit Der Zustandsschätzung

    Disparitätsbild ist zu glatt • Senken Sie den Median-Filter-Wert (Abschnitt 6.2.4). • Senken Sie den Füllen-Wert (Abschnitt 6.2.4). Disparitätsbild zeigt keine feinen Strukturen • Senken Sie den (Abschnitt 6.2.4). Segmentierungs-Wert • Senken Sie den Füllen-Wert (Abschnitt 6.2.4). 10.6 Probleme mit der Zustandsschätzung Keine Zustandsschätzungen verfügbar •...
  • Seite 123: Kontakt

    11 Kontakt 11.1 Support Support-Anfragen können Sie uns entweder über die Seite http://www.roboception.com/support oder per E-Mail support@roboception.de zukommen lassen. 11.2 Downloads Software-SDKs usw. können von der Roboception-Homepage heruntergeladen werden: http://www.roboception. com/download. 11.3 Adresse Roboception GmbH Kaflerstraße 2 81241 München Deutschland Web: http://www.roboception.com...
  • Seite 124: Anhang

    12 Anhang 12.1 Formate für Posendaten 12.1.1 XYZABC-Format Das XYZABC-Format wird verwendet, um eine Pose mit sechs Werten auszudrücken. ���� �� gibt die Positi- onskoordinaten in Millimetern an. ������ sind Eulersche Winkel in Grad. Die für Eulersche Winkel eingesetzte Konvention lautet ZYX, d. h. �� rotiert um die ��-Achse, �� rotiert um die �� -Achse und �� rotiert um die ��-Achse. Die Elemente der Drehmatrix lassen sich wie folgt berechnen: ��...
  • Seite 125 Die Transformation lässt sich wie folgt auf einen Punkt �� anwenden: �� = ���� + ��. Hinweis: Im XYZ+Quaternion-Format werden die Posendaten in Metern, im XYZABC-Format in Millimetern angegeben. 12.1. Formate für Posendaten...
  • Seite 126: Http Routing Table

    HTTP Routing Table /datastreams GET /datastreams GET /datastreams/{stream} PUT /datastreams/{stream} DELETE /datastreams/{stream} /logs GET /logs GET /logs/{log} /nodes GET /nodes GET /nodes/{node} GET /nodes/{node}/parameters GET /nodes/{node}/parameters/{param} GET /nodes/{node}/services GET /nodes/{node}/services/{service} GET /nodes/{node}/status PUT /nodes/{node}/parameters PUT /nodes/{node}/parameters/{param} PUT /nodes/{node}/services/{service} /system GET /system GET /system/license GET /system/rollback GET /system/update...
  • Seite 127: Index

    Index Symbols ComponentEnable GenICam, 3D-Koordinaten, ComponentIDValue Disparitätsbild, GenICam, 3D-Modellierung, 33, ComponentSelector GenICam, Confidence Abmessungen GenICam Bild-Stream, rc_visard, AcquisitionFrameRate GenICam, Daten aktive Partition, IMU, Anschlussset, Inertialmesseinheit, automatische Belichtung, Datenmodell REST-API, Datenstrom Baseline IMU, GenICam, Pose, Basisabstand, pose_rt, GenICam, REST-API, Baumer Sensordynamik, 39, IpConfigTool, Datentyp Belichtung,...
  • Seite 128 Disparitätsbild, 23, Bildwiederholrate, 3D-Koordinaten, Brennweitenfaktor, Bildwiederholrate, ComponentEnable, Parameter, ComponentIDValue, Qualität, ComponentSelector, Web GUI, DepthDispRange, Disparitätsfehler, DepthFill, DNS, DepthMaxDepth, Download DepthMaxDepthErr, Logdateien, DepthMedian, Dynamik DepthMinConf, REST-API, DepthMinDepth, Web GUI, DepthQuality, Dynamik-Datenstrom, 39, DepthSeg, dynamischer Zustand, Disparitätsbereich, ExposureAuto, ExposureTime, ExposureTimeAutoMax, Echtzeit-Pose, 39, Füllen, Ecken FocalLengthFactor,...
  • Seite 129 GPIO Transformation, Pin-Belegung, Kamerakalibrierung Monokalibrierung, Parameter, Services, Hand-Auge-Kalibrierung Stereokalibrierung, externes Referenzkoordinatensystem, Kameramodell, Fehler, Keyframes, Kalibrierung, 25, visuelle Odometrie, 42, Parameter, Komponenten Roboterkoordinatensystem, rc_visard, Sensormontage, Konfidenz, Slot, Minimum, Height Koordinatensysteme GenICam, Montage, HeightMax Sensordynamik, GenICam, Zustandsschätzung, Host-Name, Korrespondenzen visuelle Odometrie, IMU, 5, Daten, LED, Datenstrom,...
  • Seite 130 Einstiegspunkt, Logs, Netzteil, node, Netzwerkkabel, Parameter, Netzwerkkonfiguration, Services, Neustart, Statuswert, node System, REST-API, Version, Roboterkoordinatensystem Hand-Auge-Kalibrierung, Parameter Rollback Disparitätsbild, Firmware, Hand-Auge-Kalibrierung, Rotation Kamera, 29, Quaternion, Kamerakalibrierung, REST-API, Services, Scan3dCoordinateOffset visuelle Odometrie, GenICam, Pin-Belegung Scan3dCoordinateScale Ethernet, GenICam, GPIO, Scan3dDistanceUnit Stromzufuhr, GenICam, PixelFormat Scan3dInvalidDataFlag GenICam, 66,...
  • Seite 131 Hand-Auge-Kalibrierung, Spezifikationen Web GUI, rc_visard, Disparitätsbild, Stativ, Dynamik, Statuswert Kamera, REST-API, Logs, Stereo-Matching, SLAM, Stereokalibrierung Tiefenbild, Kamerakalibrierung, Update, Stereokamera, visuelle Odometrie, Stromkabel, 113, Weißabgleich, Stromversorgung, Width Stromzufuhr GenICam, Pin-Belegung, WidthMax Swagger UI, GenICam, Synchronisierung, Winkel- System Geschwindigkeit, 40, REST-API, XYZ+Quaternion, Temperaturbereich, XYZABC-Format, Textur,...

Inhaltsverzeichnis