Technik
Langfristiges Ziel des Projektes ist, den Humanoiden mit höchstbelasteten Linearaktoren anzutreiben, die auf Grund der extremen Wärmeentwicklung aktiv gekühlt werden. Diese Kühlung basiert auf dem einfachen Prinzip der Verdunstung.
Die Fertigung der Stützstruktur erfolgt im hochmodernen Maschinenpark der Hochschule Offenburg auf einer Rapid- Prototyping- Maschine. Auf dieser werden die Teile aus den Werkstoffen Titan, Aluminium und Werkzeugstahl gefertigt.
Bei diesem Fertigungsverfahren wird durch Integralbauweise die Gesamtanzahl der Bauteile reduziert. Da die Geometrie den Anforderungen sehr genau angepasst werden kann, wird eine sehr hohe Materialauslastung erreicht, wodurch sich das Gesamtgewicht auf ein Minimum reduziert. In einem iterativen Prozess zwischen Konstruktion und Simulation wird die Positionierung und Auslastung der Motoren an die Anforderungen angepasst.
Das autonome Verhalten des Roboters basiert auf den Algorithmen des Hochschul-Teams Magma, welches seit Jahren erfolgreich in der Simulationsliga des RoboCup´s teilnimmt. Bewegungssimulationen des Roboters sind in der Fotogalerie hinterlegt.
Zur Orientierung auf dem Feld verfügt der Roboter über zwei Kameras in seinem Kopf, Kraft- und Magnetfeldsensoren sowie über ein Gyroskop.
Eckdaten
Robotername | Sweaty (2017) |
Größe des Roboters | 172 cm |
Gewicht des Roboters | 24 kg |
Schrittgeschwindigkeit | 0,2 m/s |
Anzahl der Freiheitsgrade | 32 |
Motortyp | Maxon BLDC, Dynamixel MX-106 |
Sensortypen | 3x IMU XSense 2x 6-Achs-Kraftmomentsensoren (FT-Sensor, Eigenentwicklung) 32x Positionssensoren 32x Kraftsensoren 22x Geschwindigkeitssensoren 36x Spannungssensoren 70x Temperatursensoren 2x IDS UEye 3242LE-C, Brennweite 1,8 mm, Sichtfeld 160° |
Rechner | 1x i7 BRIX-CORE-4770R / 3.9 GHz 27x STM32F4 |
Schulterhöhe | 150 cm |
Schulterbreite | 60 cm |
Hüfthöhe | 82 cm |
BUS-Systeme | Ethernet 2x CAN 1x RS485 4x USB |
Batterie | 2 LiPo 7S1P 4Ah 80C |
Eckdaten
Roboter Name: | Sweaty |
Größe des Roboters: | 165 cm |
Gewicht des Roboters: | 21 kg |
Schrittgeschwindigkeit | 0,2 m/s |
Anzahl der Freiheitsgrade: | 23 |
Motortyp: | Dynamixel MX-106, MX-64, Volz |
Benutzer Sensortyp: | Logitech C905, modifizierte Linse: 1,5” / Brennweite 1,55 mm, Sichtfeld 185° (teilweise verdeckt, letztlich 180°) |
Rechner: | 2x i7 BRIX-CORE-4770R / 3.9 GHz 23x STM32F4 |
Schulterhöhe: | 117 cm |
Schulterbreite: | 54 cm |
Hüfthöhe: | 75 cm |
Rumpfgröße: | 38 cm |
Armlänge: | 50 cm |
BUS-Systeme: | Ethernet 2x CAN 1x USB, I2C und SPI 1x RS-485 |
Batterie: | 2 LiPo 7S1P 4Ah 80C |
Für die optische Erkennung von Objekten auf dem Spielfeld (Ball, Tore, Linien, Gegner) wurden zwei Konfigurationen entwickelt. Eine erste Variante wurde vom Nimbro-Team der Universität Bonn bereitgestellt. Sie besteht aus einer Logitech Kamera mit einem Fischaugenobjektiv (ca. 185° Blickfeld), welche auf einem kleinen Motor für die Kopfdrehung befestigt wurde. Unabhängig davon wurde ein komplexeres stereoskopisches Erkennungssystem mit zwei USB-RGB-Kameras (1280x1024 Pixel), welche in einem Abstand von 12 cm auf einer festen Halterung platziert sind, gebaut. Die Halterung kann man schwenken, kippen und um die Mittelachse des Blickfelds drehen.
Als Ausgangspunkt wurde der Objekterkennungsteil der Software des Nimbro-Teams für das Ubuntu-Linux, welches auf dem Odroid-XU läuft, adaptiert. Mit dieser Konfiguration liefert es eine einfache Farbkalibrierung und erkennt danach verlässlich den Ball, das Spielfeld und die Tore. Ein anderer wichtiger Aspekt dieser Arbeit war es, mit dem ROS-Framework vertraut zu werden.
Auf diese Art und Weise konnte die Kommunikation mit der Java-Software, welche die Anpassung und den Entscheidungsprozess bereitstellt, eingerichtet werden. Die Weltkoordinaten des Balls konnten mit Zentimeter-Auflösung ermittelt werden. Ohne jede Optimierung konnte eine Bildfrequenz von 10 Hz erreicht werden.
Unabhängig von der Nimbro- und ROS-basierten Ermittlungen auf dem Odroid-XU wurde die weiterführenden Arbeiten mit OpenCV ausgeführt. Dies war zum Beispiel bei der geometrischen Kalibrierung des Fischaugenobjektivs mit dem klassischen Schachbrett Ansatz oder bei den Linienerkennungsmethoden, welche mehr auf Form als auf Farbmerkmalen beruhen, der Fall. Für grundlegende Fragen ist ein komplettes verkleinertes Spielfeld mit guten Möglichkeiten zur Kontrolle der Lichtverhältnisse verfügbar. In der vollen Größe wurde ein halbes Spielfeld aufgebaut, welches abhängiger von den Umgebungslichtverhältnissen ist.
Das Drehmoment von herkömmlichen Antrieben bei einer gegebenen Masse ist durch die Wärmeabgabe begrenzt. Eine Erhöhung der Wärmeübertragung hilft automatisch bei der Erhöhung des mittleren Drehmoments eines Antriebs, solange die magnetische Sättigung nicht erreicht ist. Dies ist der Fall bei den meisten konventionellen Antrieben. Einer der möglichen Antriebe ist zum Beispiel der Dynamixel MX-28R, welcher von einem RE-max-17-Motor angetrieben wird (Hersteller: Maxon) hergestellt wird. Der thermische Widerstand zwischen Gehäuse und Luft beträgt bei diesem Motor 35 K/W, außerdem ist ein zusätzlicher thermischer Widerstand durch das Gehäuse des Antriebs vorhanden. Der thermische Widerstand zwischen der Wicklung und dem Gehäuse des Motors beträgt nur 12 K/W. Die Reduzierung des thermischen Widerstandes zwischen der Luft, um zwei Drittel, würde die erlaubte Wärmeabgabe verdoppeln. Diese Reduktion kann durch einen-verbesserte Wärmetransport zur Luft realisiert werden. Eine feuchte Oberfläche ermöglicht eine zusätzliche Wärmeabgabe durch Wasserverdunstung. Der erwähnte Antrieb hat einen Blockierstrom von 1,7 A und eine Wärmeentwicklung von rund 25 W bei maximalem Strom. Der Motor kann nur kurzzeitig mit einem hohen Strom betrieben werden und auch nur bei längeren Pausen, anderenfalls überhitzt er und wird zerstört. Die Pausen können durch eine effiziente Kühlung des Motors [HD1] verkürzt werden. Die Menge des verdampften Wassers im Bezug auf die abgegebene Wärme kann durch den Massenstrom berechnet werden, wobei die abgegebene Wärme und die spezifische Verdampfungswärme ist. Wenn man dieses Verhältnisse für den genannten Antrieb auswertet, ergibt das ungefähr 1 g Wasserverdampfung auf 100 s bei Blockierstrom, welcher natürlich nicht ohne Pausen aufgebracht werden kann.
Die Rechen- und die Kommunikationsarchitektur von Sweaty umfasst drei Stufen:
Als Hauptrechner wird ein leistungsstarker Mini-PC mit Intel i7 Prozessor eingesetzt. Das Betriebssystem ist Linux. Die Programme zur Entscheidungsfindung sind in Java und die Programme zur visuellen Erkennung der Umgebung in C++ und Python erstellt.
Ein Haupt-Kommunikationscontroller sammelt und verteilt Daten zwischen dem Hauptrechner den verteilten Mikrocontrollern und wertet die Daten vorab aus. Der Haupt-Kommunikationscontroller basiert auf 32-Bit ARM Cortex-M4 und wurde selbst entwickelt und hergestellt.
Die verteilten Mikrocontroller (ECUs) basieren ebenfalls auf 32-Bit ARM Cortex-M4 Mikrocontrollern. Sie sind in den Servos eingebaut, weitere sind in den Füßen und in der Nähe des Kopfes vorgesehen.
Die Kommunikation zwischen dem Hauptrechner und dem Haupt-Kommunikationscontroller wird über USB 2.0 realisiert, die Kommunikation zwischen dem Haupt-Kommunikationscontroller und den verteilten ECUs erfolgt über EIA-485 bei einer Taktfrequenz von 2 MHz. Ein zugehöriges Kommunikationsprotokoll wird für einen vereinheitlichten Informationsaustausch genutzt um zu beschreiben unter anderem, wie jede ECU die Zentraleinheit über ihren aktuellen Zustand informiert.
Zwei physische EIA-485 Kommunikationsnetzwerke sind notwendig für einen ausreichenden Datendurchsatz.
Insgesamt sind neben den ECUs der Servos 4 ECUs vorgesehen: eine pro Fuß, eine in der Nähe des Masseschwerpunkts und eine im Kopf. Das Verhalten der ECUs wird mit LTSpice simuliert und mit EAGLE entworfen. Alle ECUs basieren auf 32-bit ARM Cortex-M4 Mikro-Controllern.
In unserem aktuellen Sweaty werden verschiedene Servos eingesetzt:
12x Maxon BLDC Motor mit Spindelgetriebe (Füße, Knie, Hüfte, Rücken)
4x Maxon BLDC Motor mit Planetengetriebe (Drehung Arm, Drehung Hüfte)
8x Dynamixel Servos (Arme und Kopf)
8x Linaer-Servos (Finger)
Bis auf die verwendeten Dynamixel-Servos, sind alle Servoantriebe (Elektronik und Software) Eigenentwicklungen des Sweaty-Teams.
Bei unserem Vorgängermodell verwendeten wir ausschließlich kommerziell erhältliche Servos (Hersteller: Dynamixel, Volz).
Um ausreichende Bewegungsgeschwindigkeit bei einem hohen Drehmoment zu erreichen, wurden die Digital-Servos überlastet. Die Spulen des Motors sind freitragend, eine Überhitzung führt daher zum unmittelbaren Versagen des Motors.
Es wurde ein thermisches Modell der Motoren entwickelt, mit der die Temperatur der Spulen jedes einzelnen Motors fortlaufend berechnet werden. Sobald eine Grenztemperatur erreicht wird, werden die Bewegungen von Sweaty auf ein Minimum reduziert oder er steht so lange still, bis die Motoren wieder heruntergekühlt sind – das Verhalten von Sweaty ist daher vergleichbar mit dem Verhalten eines richtigen Fußballspielers.
Die Kraftsensoren sollen unter den Füßen montiert werden. Von den 3 Inertialsystemen befindet sich ein Sensor in Nähe des Schwerpunktzentrums und die beiden anderen in den Füßen, um die Erdoberfläche zu erkennen. Zur Vereinfachung entsprechen alle 3 Inertialsysteme dem gleichen Design. Jedes der 3 Inertialsysteme besteht aus 3 Beschleunigungssensoren, 3 Kreiseln und 3 Magnetfeldmessgeräten von STMicroelectronics. Die Datenerfassung und Analyse werden von unseren elektronischen Steuereinheiten durchgeführt (siehe Komponentenarchitektur).
Das Hauptziel des Softwareteams besteht darin, so viel wie möglich Programmcode der 3D Simulation wieder zu verwenden. Die Komponenten-basierte Architektur des Codes vereinfacht dies sehr. Um eine grobe Aussage über den Erfolg geben zu können kann man sagen, dass ca. 50 Klassen für Sweaty in das Framework eingefügt wurden. Diese beinhalten unter anderen eine spezielle, inverse Kinematik Berechnung, Verbindungsklassen für ROS, eine spezielle Komponentenerstellung und Parametrisierung einiger Verhalten. Weiter gibt es ein spezielles Feld-Meta-Modell für die unterschiedliche Feldgröße in der humanoid Liga.
Die Anzahl der Nao-spezifischen Klassen ist ebenfalls ca. 50 und die Anzahl der gemeinsam genutzten Klassen beträgt deutlich über 500 (keine Tools, lediglich Runtime). Natürlich mussten während des Entwicklungsprozesses einige der 500 Klassen angepasst und verändert werden, um diese für einen humanoiden Roboter nutzen zu können.
Durch die Verwendung der Code-Komponenten der 3D Simulation, konnten ebenfalls etliche Vorteile in Bezug auf das Toolset gezogen werden. Es konnte der magmaDeveloper, der Verhaltens-Editor und noch mehrere, kleinere Tools übernommen werden, welche für die Entwicklung und Tests solch einer Software für einen zweibeinigen Roboter gebraucht werden.
Sweaty wird im „Simspark Simulator“ simuliert. Dieser Simulator wird für die 3D Fußball Simulationsliga verwendet. Er basiert auf ODE und unterstützt Erdanziehungskraft, Steifheit, Körperdynamik, Gelenkverbindungen, maximale Drehkraft der Gelenke, Lagekreisel, Kraft-Widerstand-Sensoren, Beschleunigungen, Stör-Modelle, Kamerasimulationen und vieles mehr.
Um Gewicht zu reduzieren wurde die tragende Struktur des Roboters aus Aluminium und Kohlefaser-Verbundwerkstoffen hergestellt. Eine weitere Gewichtsreduktion war möglich durch ein besonderes Fertigungsverfahren: so wurden beispielsweise der Kopf und die Füße durch Selektives Lasersintern (SLS) hergestellt, ein Verfahren, das ermöglicht, auch komplizierte dreidimensionale Strukturen zu fertignn.Als CAD-System wurde Creo 2.0 eingesetzt und für FEM-Analysen Creo 2.0 und ANSYS.