Seitenüberschrift

Artikel: fischertechnik ROBOTICS TXT Discovery Set

    Roboterbausatz im Test | Hardware | TigerClaw | User-Wertung: Wertung

    Roboter für Profis

    Die leistungsstarke, leicht zu erlernende und benutzerfreundliche ROBO Pro Software funktioniert auch bei größeren Projekten sehr stabil und ohne Aussetzer. Das Linux-basierte Open-Source-Betriebssystem erlaubt aber auch eine individuelle Programmierung. Für die gängigen Programmiersprachen bietet der Hersteller auf seiner offiziellen Webseite Datenpakete für die Programmierung mit C/C++, Visual Basic und Java an. Die Steuerung der Modelle via SPS ist ebenfalls möglich, wobei hierfür kein TXT Controller mehr benötigt wird. Der Steuerungsspezialist Staudinger hat hierfür komplexe Industrie-Projekte auf Basis von fischertechnik detailliert nachgebaut. Damit eignen sich die Baukästen auch optimal für die Aus- und Weiterbildung.

    Die Programmierung mit der unter Studenten beliebten Software MATLAB ist ebenfalls möglich. Jedoch funktionierte dies in unserem Test lediglich im sogenannten Online-Modus über die IP-Adresse. MATLAB ist ein mächtiges Entwicklungs-Werkzeug, das bei der Umsetzung von Methoden zur Objekterkennung oder anderen Berechnungen einfach genutzt werden kann. Mithilfe der Kamera könnte man beispielsweise eine farbbasierte Objekterkennung und -verfolgung entwickeln, indem man auf verschiedene Bildverarbeitungs-Algorithmen zurückgreift. Die einzelnen Objektkoordinaten können anschließend an die Motoren übermittelt werden. Dadurch wird der Roboter in die Lage versetzt, bewegliche Objekte zu verfolgen. Für die Abstandsmessung der Objekte kann ein Ultraschallsensor verwendet werden, der über den I²C-Bus angeschlossen wird.

     

    Objekterkennung mit MATLAB

    Die Umsetzung einer einfachen, farbbasierten Objekterkennung mit der 1,3 Megapixel-Kamera aus dem fischertechnik ROBOTICS TXT Discovery Set ist im Prinzip einfach. Hierzu wird mittels der mitgelieferten Webcam jedes einzelne Bild (engl.: Frame) analysiert, um eine Farbe zu detektieren und zu verfolgen.

    Mit dem Befehl vision.VideoPlayer kann das entsprechende Objekt erzeugt werden, um einzelne Bilder abzubilden:

    VideoIn = vision.VideoPlayer;
    VideoIn.Name = 'Tracking Color Videoplayer';
    VideoIn.Position = [100 100 vidInfo.MaxWidth+20 ... 
                        vidInfo.MaxHeight+30];

    Anschließend wird mit jedem Aufruf der step-Methode ein anderes Bild gelesen und nach Beenden des Programms der Videoplayer geschlossen:

    while(nFrame <= 200)
    rgbFrame = step(vidObj)
    end
    release(videoPlayer);

    Nach dem Einlesen jedes einzelnen Binärbilds wird eine entsprechende Farbkomponente wie beispielsweise "ROT" (Rot=(:,:,1)) vom Grauwertbild subtrahiert, um die Farbe zu extrahieren (Segmentation). Anschließend wird ein nichtlinearer Glättungsfilter ausgeführt.

    sub_imgObj = imsubtract(imgObj(:,:,1), rgb2gray(imgObj));
    sub_imgObj = medfilt2(sub_imgObj, [3 3]);

    Das Grauwertbild wird danach wieder in ein Binärbild umgewandelt:

    im2bw(I, Schwellwert_Level)

    Zur eigentlichen Detektion einzelner Objekte eines Videoframes und zur Ermittlung der Objekteigenschaften wie Position, Durchmesser oder Schwerpunkt kann die Blob Analyse verwendet werden. Dabei werden Bildbereiche, in denen benachbarte Pixel gleiche oder ähnliche Grauwerte aufweisen, analysiert:

    blobAnalysis = vision.BlobAnalysis;
    blobAnalysis.AreaOutputPort = false;
    blobAnalysis.CentroidOutputPort = true;
    blobAnalysis.MinimumBlobArea = 700;
    blobAnalysis.MaximumBlobArea = 4000;
    blobAnalysis.MaximumCount = 5; 
    shapeinsRedBox = vision.ShapeInserter;
    shapeinsRedBox.BorderColor = 'Custom';
    shapeinsRedBox.CustomBorderColor = [1 0 0];
    shapeinsRedBox.Fill = true;
    shapeinsRedBox.FillColor = 'Custom';
    shapeinsRedBox.CustomFillColor = [1 0 0];
    shapeinsRedBox.Opacity = 0.6;

    Nun können wir mit dem ShapeInserter sogenannte Bounding Boxes zeichnen, um die detektierten Objekte zu markieren. Die Eigenschaften Rand, Füllmenge und Farbe des Randes können  darüber bestimmt werden. Für identifizierten Objekte können die Schwerpunktkoordinaten sowie die Maße der BoundingBox wie folgt ermittelt werden:

    [centroid, bbox] = step(blobAnalysis, binFrame);
    centroid = uint16(centroid);
    rgbFrame(1:20,1:165,:) = 0;
    vidIn = step(shapeinsRedBox, rgbFrame, bbox);

    Die Ausgabe dieser Schwerpunktkoordinaten in Textform erfolgt über eine for-Schleife, die alle detektierten Objekte durchläuft:

    for object = 1:1:length(bbox(:,1))
    centX = centroid(object,1); centY = centroid(object,2);
    vidIn = step(textinsCent, vidIn, [centX centY],
    [centX-6 centY-9]);
    end

    Das Ergebnis eines Frames zeigt untenstehendes Bild (rechts Objekte, links detektierte Objekte gespiegelt).

    Nach der eigentlichen Objekterkennung, die abhängig von äußeren Faktoren wie Licht und Schatten ist (siehe Schwellwert), könnte man die Objektpositionen ermitteln und an den TXT Controller übermitteln. Zwar sind ähnliche Funktionen bereits implementiert, aber eben nur in Zusammenhang mit der mitgelieferten Software. Im Prinzip sind mit dem Baukasten keine Grenzen gesetzt und wer Herausforderungen sucht, sollte sich an die Programmierung mit MATLAB, Eclipse oder Visual Studio machen.

Produktinformationen

  • ft ROBOTICS TXT Discovery Set

    Boxshot

    Hersteller: Fischertechnik

    Produkttyp: hardware

    n/a

    Release: 2014

    Produktbewertung: Wertung

Screenshots

Kommentare


  •  

    Seiten (0):

    Name Text
    Es wurden noch keine Kommentare abgegeben!


Impressum | Kontakt | Disclaimer
Partner: DNZone.de | OutcastZone.de | Playmore.de | Cheaten.com | GTAvision.com | Mafia-Daily.net
Copyright © 2001-2017 PCPointer.de. | Content & Design © by PCPointer.de

Empfohlen vom WeTEST-Webkatalog...spamfree