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.
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.
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.
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.
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. ).
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: •...
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.
• 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).
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.
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.
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.
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.
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.
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.
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-...
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.
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.
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.
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.
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...
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.
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.
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...
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.
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.
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.
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.
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.
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.
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...
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.
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...
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.
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.
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.
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.
(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.
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.
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": {...
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-...
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 •...
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...
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.
"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 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 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 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 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...
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...
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.
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.
(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.
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;...
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.
• 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...
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.
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 •...
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...
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...
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...