Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Internet der Dinge-Technologie

Open-Source-Software erfüllt breite Anforderungen von Roboter-Vision-Entwicklern


Dieser Artikel ist Teil eines AspenCore-Sonderprojekts zu visuell gesteuerten Robotern.

Robot-Vision-Anwendungen können komplexe Anforderungen mit sich bringen, aber Open-Source-Bibliotheken sind bereit, Lösungen für fast jeden Bedarf bereitzustellen. Entwickler finden Open-Source-Pakete, die von grundlegender Bildverarbeitung und Objekterkennung bis hin zu Bewegungsplanung und Kollisionsvermeidung reichen, und mehr, als man vielleicht in einem kurzen Artikel in vollem Umfang erwähnen kann. Nichtsdestotrotz sind hier einige wichtige Open-Source-Bildverarbeitungspakete aufgeführt, die Entwicklern bei der Implementierung anspruchsvoller Robotersysteme helfen können. (Hinweis:Dieser Bericht konzentriert sich auf Bibliotheken für grundlegendere bildbasierte Algorithmen und schließt speziell Open-Source-Software für KI-basierte Robotersicht aus.)

Kein Artikel über Roboter-Vision-Software darf die Open Source Computer Vision Library (OpenCV) [Quelle] hervorheben. Unter den verfügbaren Open-Source-Softwarepaketen ist OpenCV vielleicht das am weitesten verbreitete und funktionsreichste. Die OpenCV-Distribution implementiert über 2.500 Algorithmen und adressiert die Anforderungen an die Bildverarbeitung in einer Reihe von Modulen, die unter anderem die folgenden umfassen:

In C++ geschrieben, ist OpenCV mit Schnittstellen für C++, Python, Java und Matlab verfügbar und unterstützt Windows, Linux, Android und Mac OS. Neben der Unterstützung von Single Instruction, Multiple Data (SIMD)-Befehlssätzen bietet OpenCV CUDA-basierte GPU-Beschleunigung für viele Funktionen durch sein GPU-Modul und OpenCL-Beschleunigung durch sein ocl-Modul. Das kürzlich veröffentlichte OpenCV 4.0 bietet eine Reihe von Leistungsverbesserungen und Funktionen, einschließlich der Implementierung des beliebten Kinect Fusion-Algorithmus.

Für seine Funktionalität kann OpenCV eine Lernkurve erfordern, die die Geduld von Entwicklern übersteigt, die mit Robot Vision schnell vorankommen möchten. Für diese Entwickler könnte das Python-basierte SimpleCV [Quelle] die Antwort sein. SimpleCV basiert auf OpenCV und bietet die Funktionalität, die von fortgeschrittenen Robot-Vision-Entwicklern benötigt wird, bietet jedoch ein zugängliches Framework, das weniger erfahrenen Entwicklern hilft, grundlegende Machine-Vision-Funktionen mit einfachen Python-Funktionsaufrufen zu erkunden. Entwickler können beispielsweise häufig verwendete Funktionen wie Bildschwellenwerte schnell implementieren, indem sie eine einfache integrierte Methode in der SimpleCV Image-Klasse verwenden (img.binarize() in der Liste unten) und schließlich die in Abbildung 1 gezeigten Ergebnisse anzeigen.

from SimpleCV import Image, Color, Display # Erstellen Sie eine Funktion, die ein halbes und halbes Bild ausführt.def halfsies(left,right):result =left # beschneiden Sie das rechte Bild auf die rechte Seite. crop =right.crop(right.width/2.0,0,right.width/2.0,right.height) # Füge nun den Zuschnitt in das linke Bild ein. result =result.blit(crop,(left.width/2,0)) # die Ergebnisse zurückgeben. return result# Laden Sie ein Bild von imgur.img =Image('http://i.imgur.com/lfAeZ4n.png')# Binarisieren Sie das Bild mit einem Schwellenwert von 90# und invertieren Sie die Ergebnisse.output =img.binarize( 90).invert()# erstelle die Seite an Seite image.result =halfsies(img,output)# zeige das Ergebnis image.result.show()# speichere die Ergebnisse in einer Datei.result.save('juniperbinary.png' )


Abbildung 1. Ergebnisse des oben aufgeführten Python-Codes (Quelle:SimpleCV)

Neben ihren grundlegenden Bildverarbeitungsfunktionen implementieren OpenCV und SimpleCV eine Reihe von High-Level-Bildverarbeitungsalgorithmen, die Robotersysteme benötigen, um mit Objekten zu arbeiten oder sicher in ihrer physischen Umgebung zu arbeiten. Eine der grundlegenden Datenstrukturen, die bei vielen dieser Berechnungen verwendet werden, ist die Punktwolke – eine Sammlung mehrdimensionaler Datenpunkte, die ein Objekt darstellen (Abbildung 2). Die von Kameras erfasste Punktwolke eines Objekts wird für grundlegende Roboteroperationen wie Objektidentifikation, Ausrichtung und Anpassung verwendet. Für die Arbeit mit Punktwolken implementiert die Point Cloud Library (PCL) [Quelle] Algorithmen zum Filtern, Anpassen, Extrahieren von Schlüsselpunkten, Segmentieren und vielem mehr.


Abbildung 2. Punktwolken-Datensatz für einen einfachen Torus. (Quelle:Wikimedia Commons/Kieff).


Internet der Dinge-Technologie

  1. Software-Updates im IoT:eine Einführung in SOTA
  2. GE gründet ein 1,2-Milliarden-Dollar-IIoT-Unternehmen
  3. Alles läuft IoT
  4. Altes trifft auf IoT, SaaS-Integration
  5. Software AG prognostiziert die Zukunft des IoT
  6. Im industriellen Bereich bedeutet vertrauenswürdige Software Sicherheit
  7. Tata preist die Vorteile des IIoT
  8. Die Herausforderungen beim Softwaretesten von IOT-Geräten
  9. 10 Anzeichen dafür, dass Ihre ERP-Software verbessert werden muss
  10. Einsatz von DevOps zur Bewältigung von Herausforderungen mit eingebetteter Software