Pick & Place

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen

Autor: Daniel Block
Betreuer: Prof. Schneider

www.lego.de

Motivation

Ein Roboterarm ist ein tolles Anschauungsobjekt, um etwas über Koordinatentransformation zu lernen.

Ziel

Programmieren Sie einen Roboterarm so, dass er sich ein Zuckerstück von einem Haufen nimmt und dieses in eine HSHL-Tasse fallen lässt.

Aufgabe

  1. Erkennen Sie mit einer Webcam einen Zuckerwürfel.
  2. Konstruieren Sie den Standard Lego Roboterarm so, dass er den Zuckerwürfel greifen kann.
  3. Analysieren Sie die Videoszene und steuern Sie den Roboterarm, so dass er den Zucker Greift und diesen kollisionsfrei in die Tasse fallen lässt.

Vorbereitungen

Vor der Bearbeitung der Aufgabe sind einige Vorbereitungen zu treffen. Zum einen wird ein Grundverständnis für die Bildverarbeitung und die Koordinatentransformation vorausgesetzt. Dieses wurde im Rahmen der Veranstaltung Digitale Signal- und Bildverarbeitung während des Sommersemesters 2014 im Studiengang Mechatronik der HSHL erlangt. Eine weitere Recherche in Literatur und im Internet erwies sich jedoch als sehr zielführend. Besonders zur Umsetzung in Matlab konnten hier einige hilfreiche Hinweise gefunden werden. Zum anderen sind einige Hardware- und Softwarekomponenten erforderlich. Diese werden im Folgenden kurz dargestellt.

Erforderliches Equipment

  • Lego NXT Roboter
    • Lego Mindstorms Basisset 9797
    • Lego Mindstorms Ergänzungsset 9648/9695
  • Webcam (z. B. Logitech C310)
  • HSHL-Tasse
  • Zuckerstücke
  • Tesafilm
  • Notebook oder Rechner mit Matlab

Erforderliche Software

Die Hyperlinks führen jeweils zur Download-Seite. Matlab ist über das ZfW (Zentrum für Wissensmanagement) der HSHL zu bekommen.

Installation der Treiber

Diese Schritt-für-Schritt-Anleitung orientiert sich an der Beschreibung der RTWH Aachen [1].

  1. Toolbox der RWTH Aachen
    1. Toolbox der RWTH Aachen herunterladen.
    2. Heruntergeladene Datei extrahieren.
    3. Toolbox als Matlab-Pfad hinzufügen.
      1. Set Path in Matlab aufrufen.
      2. Add with subfolders aufrufen und Verzeichnis der Toolbox auswählen.
      3. Speichern nicht vergessen.
  2. Firmware des NXT
    1. Version der Firmware auf dem NXT überprüfen. Die Version lässt sich im Menü des NXT einsehen.
    2. Wenn die Version älter ist als 1.28 bzw. 1.29, die Firmware herunterladen.
    3. Die Firmware auf den NXT laden, z. B. mit der Funktion FlashNXTWithFirmware1.29.bat in /tools/MotorControl im Verzeichnis der Toolbox.
  3. Laden von MotorControl auf NXT
    1. NeXTool herunterladen und im Verzeichnis /tools/MotorControl der Toolbox speichern.
    2. In Windows-Systemen nun die Funktion TransferMotorControlBinaryToNXT.bat aufrufen, um mit NeXTool die MotorControl*.rxe auf den NXT zu laden.
    3. Den Schritten im Command-Fenster folgen.
  4. Treiber Wird beispielhaft für Windows 32 bit mit USB-Verbindung erklärt. Das Vorgehen für andere Betriebssysteme oder die Bluetooth-Verbindung kann auf der Internetseite der RWTH Aachen[2] nachgesehen werden unter Check other software requirements.
    1. NXT Fantom-Treiber herunterladen und installieren.
    2. Treiber auf den NXT laden mit TransferMotorControlBinaryToNXT
  5. Funktionstext
    1. USB-Verbindung zwischen NXT und Rechner bzw. Notebook herstellen.
    2. NXT einschalten.
    3. Matlab starten.
    4. Im Command Window von Matlab COM_OpenNXT ausführen (einfach eintippen und mit Enter ausführen).
    5. Wird der Aufruf ohne Fehler ausgeführt, ist die Installation erfolgreich abgeschlossen.

Installation der Camera Calibration Toolbox

Diese Beschreibung ist angelehnt an die Erläuterungen von Jean-Yves Bouguet [3].

  1. Toolbox herunterladen.
  2. Heruntergeladene Datei extrahieren.
  3. Den Ordner TOOLBOX_calib als Matlab-Pfad hinzufügen (Vorgehen vgl. RWTH-Toolbox s. o.).
  4. Starten mit ausführen von calib_gui in Matlab.

Die genaue Vorgehensweise bei der Kalibrierung der Kamera wird an dieser Stelle nicht erläutert. Ich verweise an dieser Stelle auf die Homepage zur Toolbox und den Artikel von Herrn Deitel zu diesem Thema [4].

Hardware

Der Aufbau des Roboters erfolgt mit den Komponenten der Lego Mindstorms Kästen. Die Teile entsprechen dem Lego Technik Sortiment. Die wesentlichen Komponenten sind der intelligente Stein Brick, drei Motoren und die Webcam. Desweiteren werden diverse Konstruktions-, Verbindungs- und Getriebe-Teile benötigt. Da mit dem NXT nur drei Motoren betrieben werden können, wurde die Bewegung des Roboters auf folgende drei Dimensionen festgelegt:

  • Drehen des Roboterarms auf dem Unterbau
  • Heben und Senken des Greifers
  • Öffnen und Schließen des Greifers

Der drehbare Arm wird von einem Drehkranz getragen, der von einem Motor angetrieben wird. Der Motor für das Heben und Senken ist zugleich tragendes Element des Armes auf dem Drehkranz. Der Greifer ist so konstruiert, dass ein Schenkel fest montiert ist und der zweite von einem weiteren Motor angetrieben wird. Für das Öffnen des Greifers und für das Drehen des Armes werden mehrstufige Übersetzungs-Getriebe eingesetzt. Dies ermöglicht langsame Bewegungen bei zugleich hohem Drehmoment. Der intelligente Stein ist am Rahmen montiert und bildet somit einen Teil des Gegengewichtes für den Roboterarm. Der Aufbau im Einzelnen ist in den Fotos zu sehen, die im Projekt-Ordner im SVN gespeichert sind. Desweiteren ist dort ein Lego-Designer-Modell des Roboters hinterlegt, dass dem Aufbau sehr nahe kommt. Die Abweichungen ergeben sich durch Verwendung etwas anderer Teile oder die Montage von Zahnrädern in den genannten Getrieben, die im Modell nicht möglich ist. Desweiteren ist ein Verbindungsstein im Modell nicht integriert, weil die Lage vom Lego-Standard abweicht. Diese Teile können aber in den Fotos des Roboters gut wiedererkannt werden. Der Vollständigkeit halber sind diese Teile im Lego-Designer-Modell als lose Teile beigefügt.

Software

Im Folgenden wird die Implementierung in Matlab zur Erkennung der Zuckerstücke und der Tasse sowie die Ansteuerung der Motoren dargestellt.

Bilderkennung

Hardware-Ansteuerung

Reflexion - Lessons Learned

Einzelnachweise

  1. Homepage der RTWH Aachen zur Mindstorms NXT Toolbox (letzter Aufruf 19.6.2014)
  2. Internetseite der RWTH Aachen
  3. Jean-Yves Bouguet: Camera Calibration Toolbox for Matlab. (Homepage, letzter Aufruf 19.6.2014)
  4. Deitel, M.: Extrinsische und Intrinsische Kameraparameter. Lippstadt, Bericht Seminarvortrag, 2013. Link

Siehe auch

Weblinks


→ zurück zum Hauptartikel: Digitale Signal- und Bildverarbeitung SoSe2014