fischertechnik ROBOTICS TXT Discovery Set

0
(0)

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.

[joomdev-wpc-pros-cons disable_title=”yes” title=”Title Here” button_text=”Get it now” disable_button=”yes” button_link=”” button_link_target=”_SELF” button_rel_attr=”dofollow”][joomdev-wpc-pros]

Pros

  • leistungsstarker TXT Controller
  • hoher Lernfaktor
  • einsteigerfreundlich
  • Abbildung großer Anlagen für Produktionsfirmen möglich
  • 14 Robotermodelle
  • USB-Kamera
  • viele Erweiterungsmöglichkeiten
  • Open Source (C/C++, Java und Matlab)
  • I²C-Bus
  • WLAN/Bluetooth

[/joomdev-wpc-pros][joomdev-wpc-cons]

Cons

  • Akku nicht im Lieferumfang enthalten

[/joomdev-wpc-cons][/joomdev-wpc-pros-cons]

Fazit

Das fischertechnik ROBOTICS TXT Discovery Set hat es wahrlich in sich. Es besteht aus 310 Teilen, einem ROBOTICS TXT Controller und der erweiterten Software ROBO Pro zur Programmierung und Steuerung der 14 Robotermodelle. Für Einsteiger und Fortgeschrittene stellt fischertechnik eine grafische Programmieroberfläche bereit, über die die Modelle angesteuert werden können. Darüber hinaus profitieren Anwender von den Vorteilen des Linux-basierten Open-Source-Betriebssystems. Die Robotermodelle können demnach auch mit anderen Programmiersprachen wie C/C++, Java, Python oder MATLAB programmiert werden und zu Höchstleistungen ausgereizt werden.

Wer über ein gewisses Maß an technischem Grundverständnis und Geduld verfügt, wird mit dem ROBOTICS TXT Discovery Set nicht nur viel Spaß haben, sondern auch sehr viel über die Konstruktion und Programmierung von Robotern erfahren. Das umfangreiche Lernpaket mit den zahlreichen Erweiterungsmöglichkeiten ist eine lohnende Investition und bekommt von uns ganz klar eine Kaufempfehlung.

Bewerte diesen Artikel

0 / 5. 0


Vorheriger

PCPointer.de-Jubiläum – Gewinne ein Toshiba-Paket

DOOM

Nächster

Schreibe einen Kommentar