Experimente mit Blender

Blender ist eine freie Software zur Erstellung von 3D-Computergrafiken und Animationen. Die Software unterstützt die Modellierung von 3D-Objekten, die Texturierung, Animation und auch die Simulation verschiedener physikalischer Effekte wie zum Beispiel Starrkörperphysik, Rauch oder Flüssigkeiten. In den letzten Wochen sind ein paar kleinere Videos entstanden um die Möglichkeiten der Software zu erkunden.

Eurobot 2012

Und wieder einmal geht das Eurobot-Fieber um. Das Leipziger Leobots-Team bereitet sich momentan intensiv auf dem Wettbewerb 2012 vor. Hier ein kurzes Video:

Eurobot 2011 Testfahrt

In Leipzig wird momentan kräftig am neuen Roboter für den Eurobot 2011 gearbeitet. Viele Konzepte für die Elektronik und Programmierung sind aus dem letzten Jahr übernommen und verbessert wurden. Hier sieht man unseren 2010er Roboter auf der neuen Spielplatte bei einer autonomen Testfahrt.

Hardware-PWM für Foxboard G20

Für bestimmte Anwendung, wie zum Beispiel die Steuerung von Gleichstrommotoren über einen Motortreiber, werden häufig PWM-Signale benötigt. Sollen diese mit Mikroprozessoren erzeugt werden ist die Umsetzung meist relativ einfach, da direkt PWM-Ausgänge genutzt werden können und diese einfach zu programmieren sind. Wenn das erzeugende System (z.B. Foxboard G20 mit ARM9) mit einem Betriebssystem wie Linux versehen ist, dann ist die Umsetzung von PWM-Ausgängen meist aufwendiger. Viele Lösungen nutzen dann das GPIO-Interface und erzeugen das PWM-Signal über ein Programm im Userspace. Diese Technik wird auch als Bit-Banging bezeichnet, da hier jede Veränderung am Pin in Software realisiert werden muss. Damit kann allerdings das Timing nur unzureichend eingehalten werden und es sind auch nur geringe Träger-Frequenzen möglich.

Besser Ergebnisse erzielt man mit einem PWM-Treiber, der die Timer-Einheiten des ARM9-Prozessors, in diesem Fall des Atmel AT91SAM9G20 nutzt. Im vorliegenden Kernel-Modul für das Foxboard G20 wird ein zwei-kanaliger 12-Bit-PWM-Generator mit Trägerfrequenz um die 10 kHz prototypisch umgesetzt. PWM0 ist an J7 Pin 9 verfügbar, PWM1 liegt an J7 Pin 10 an. Für die Signalmasse kann jeder Massepin genutzt werden.

Zum Kompilieren des Moduls muss das richtige Verzeichnis mit den Kernelquellen (vorkonfiguriert und kompiliert) in make_modul.sh eingetragen werden, momentan ist der Quellcode für Kernel 2.6.31 angepasst und es wird ein Cross-Compiler genutzt. Nach dem Kompilieren kann das Kernel-Modul auf das Zielsystem aufgespielt werden, das Laden erfolgt mit insmod.

Das Setzen des Duty-Cycle kann dann mit

echo 2048 > /sys/devices/platform/atmel_pwm/pwm0

beziehungsweise

echo 2048 > /sys/devices/platform/atmel_pwm/pwm1

durchgeführt werden. Für den Duty-Cycle können Werte im Bereich 1-4096 genutzt werden, dies entspricht einem Duty-Cycle zwische 0% und 100%.

Der Quellcode für den Hardware-PWM-Treiber steht unter at91_g20_pwm.tar.gz zur Verfügung.

Netzwerkverkehr aufzeichnen mit Netsniff-ng

Manche Programme sind bei der Analyse von Netzwerkproblemen wirklich nützlich, sind allerdings wenig bekannt und sollten deshalb weiterempfohlen werden. Netsniff-ng ist ein solches freies Werkzeug für Linux, welches dazu dient Netzwerkverkehr aufzuzeichnen, zu analysieren und wieder abzuspielen. Im Gegensatz zu Anwendungen wie tcpdump, ettercap oder wireshark nutzt Netsniff-ng allerdings eine relativ neue Technik um die Pakete von der Netzwerkkarte über den Betriebssystemkern in den Userspace zu befördern. Durch die Nutzung der Linux-eigenen RX_RING-Infrastruktur können Netzwerkpakete unter Vermeidung von unnötigen Kopieroperationen zügig weitergeleitet und weiterverarbeitet werden. Bei diesem Ansatz spricht man deshalb auch vom Zero-Copy-Ansatz, da zur Übergabe von Daten zwischen Betriebsystemkern und Applikation durch Memory-Mapping keine zusätzlichen Speicheroperationen notwendig sind. Die dazu erforderlichen Kernelanpassungen für Senden und Empfangen sind in aktuellen Versionen des Linux-Kernels (2.4.X und 2.6.X) bereits integriert.

Im Vergleich zu bewährten Programmen wie tcpdump erhöht sich die mögliche Aufzeichnungsrate mit Netsniff-ng dadurch deutlich. Wer erste Experimente mit der Software durchführen möchte sollte die stabile Version 0.5.5.0 benutzen. Das nächste Release durch die Entwickler ist im April 2011 geplant und wird unter anderem eine neue Parametersyntax für Kommandozeilenparameter und eine weitergehende Modularisierung der Quellcodebasis bieten um zusätzliche Werkzeuge mit der Technologie zu ermöglichen.

Die Installation von Netsniff-ng 0.5.5.0 erfolgt einfach mit

make
sudo make install

im src/-Verzeichnis des Programms.

Nach erfolgreicher Installation ist es möglich mit:

sudo netsniff-ng --dev eth0 --dump out.pcap --silent

Netzwerkverkehr aufzuzeichnen.

Eurobot 2011 in Ludwigshafen

Nach dem Eurobot-Wettbewerb in Leipzig 2010 steht nun der Austragungsort für die deutsche Meisterschaft im Eurobot-Wettbewerb 2011 fest. Dieses mal verschlägt es die Teilnehmer nach Ludwigshafen. Ausgerichtet wird der Wettkampf vom Team Green Birds. Vom 27.05.2011 bis 28.05.2011 kämpfen dann wieder autonome Roboter um die deutsche Eurobot-Meisterschaft und eine Qualifikation für die Weltmeisterschaft.

Der Wettbewerb steht diese Jahr unter dem Motto “Chess’up!”, die Eurobot-Regeln und eine FAQ können auf den Veranstalterseiten heruntergeladen werden.

Bookmarks sychronisieren mit Firefox Sync

Ein Rechner am Arbeitsplatz, einer am privaten Schreibtisch und dann noch ein Handy: die Geräte mit welchen man das Internet nutzen kann sind vielfältig und verteilt. Möchte man dann beim Surfen die gleiche Lesezeichensammlung auf allen Geräten nutzen ist guter Rat teuer.

Aus diesem Grund ist für Firefox 3.6 seit einiger Zeit der Dienst Firefox Sync (ehemals Weave) verfügbar. Damit ist es möglich Lesezeichen, Passwörter, Einstellungen, die Browser-History und auch geöffnete Tabs zwischen unterschiedlichen Rechnern zu sychronisieren. Die Technologie, die für Firefox in der Version 3.6 noch ein Plugin erfordert, soll in Firefox 4.0 direkt integriert sein. Die Daten werden dann entweder in einer Mozilla-Datenbank oder auch auf dem eigenen Server gespeichert. Hierfür existiert eine freie Implementierung mit PHP und Mysql als Datenbank. Dabei sind zwei Dienste zu installieren, zum einen ein Dienst zur Nutzerverwaltung und dann noch der eigentliche Synchronierungsdienst. Notwendige Dokumentation findet sich unter Weave-API.

‘Bookmarks sychronisieren mit Firefox Sync’ weiterlesen

Eurobot in Leipzig

Am nächsten Wochenende findet in Leipzig der nationale Robotik-Wettkampf im Eurobot-Wettbewerb statt. Nähere Informationen zum Austragungsort (HTWK Leipzig, Karl-Liebknecht-Str. 132, Geutebrückbau) und zum Terminplan finden sich auf einer Informationsseite der Leipziger Leobots. Für Besucher interessant wird es am Samstag, dem 08.05.2010 ab ungefähr 10.30 Uhr mit der Veröffentlichung des Spielplans und dem anschließenden Kampf in der Arena. Unter dem Motto “Feed the World” wetteifern dann jeweils zwei Roboter 90 Sekunden auf einer Spielplatte um den Sieg. Die acht teilnehmenden Hochschul-Mannschaften kommen aus ganz Deutschland.

feed_the_world2

Mit guter Navigation, Umsicht und hoher Geschwindigkeit müssen die Roboter ohne menschliche Steuerung farbige Spielelemente einsammeln und an einer vorgegebenen Stelle wieder ablegen. Was für einen Menschen kein Problem ist, stellt Elektronik und Software vor große Herausforderungen. Eine Kollision mit dem gegnerischen Roboter oder mit starren Spielfeldelemente sollte zum Beispiel vermieden werden, riskiert man doch Defekte an der wertvollen Technik und einen Ausfall. Am Ende des Wettbewerbs werden dann die deutschen Kandidaten für die Eurobot-Weltmeisterschaft in der Schweiz feststehen. Interessant könnte der Wettbewerb auch für Besucher des am selben Tag stattfindenden Alumni-Tages an der HTWK Leipzig sein.

FOX Board G20

Für die Nutzung in Robotik-Experimenten war ich einige Zeit auf der Suche nach einem Starter-Kit als Kontrollplatine. Das System sollte rechenstark sein, wichtige Standardschnittstellen wie USB und Ethernet unterstützen, mit Linux laufen und mehrere, frei nutzbare Ein- und Ausgänge besitzen. Mit dem FOX Board G20 habe ich jetzt ein solches System gefunden.

Trotz des modularen Aufbaus aus dem Netus G20 CPU-Modul und einer Basisplatine mit Schnittstellen kann man das FOX Board G20 als Single Board Computer (SBC) auffassen. Single Board Computer sind Computersysteme, bei welchen alle notwendigen elektronischen Komponenten auf einer Leiterplatte zusammengefasst sind. Sie werden zumeist für Mess-, Steuer- oder Regelungszwecke genutzt. Der Sandwich-Aufbau des FOX Board ermöglicht den Neuentwurf der Basisplatine für spezifische Anwendungen und bietet damit eine erhöhte Flexibilität.

foxg20

Das Netus G20 CPU-Modul beinhaltet eine ARM9-basierte CPU, genauer den Mikrocontroller AT91SAM9G20 von Atmel mit einer Taktfrequenz von 400Mhz. Mit 64 MByte RAM und 8 MByte Flashspeicher ist das CPU-Modul gut ausgestattet. Bei Abmessungen von 40x40mm für das CPU-Modul und 66×72 mm für die Trägerplatine ist das Board sehr kompakt. Die Möglichkeit microSD-Karten direkt einzustecken erlaubt die flexible Verwendung in vielen Anwendungen. Für die Nutzung in Robotik-Projekten spricht die Tatsache, dass auf der Trägerplatine viele Signale über nachbestückbare Stiftleisten direkt zugänglich sind. Bei Nutzung der Standard-Software sind von den 80 Pins dann 28 vollständig frei als Ein- oder Ausgang (GPIO) nutzbar, die restlichen Pins stellen Schnittstellenfunktionen wie SPI oder I2C zur Verfügung. Natürlich kann das Board aber auch anders konfiguriert werden.

Die Softwareunterstützung für das System ist gut, der verwendete Mikrocontroller wird vom Linux-Kernel standardmäßig unterstützt. Als Laufzeitsystem sind auf Debian und Gentoo basierende Images für die microSD-Karte verfügbar. Mit 150 Euro für Basisplatine und CPU-Modul ist es auch gerade so noch erschwinglich, das komplette Starterkit mit ein paar Zusatzteilen wie Netzteil, Gehäuse und microSD-Karte und ähnlichen Dingen ist für ungefähr 240 Euro erhältlich. Ein besonderes Plus ist die aktuelle Dokumentation im Wiki von ACME Systems, welche die wichtigsten Fragen zum Start mit dem Modul klärt.

Termine im Eurobot-Wettbewerb 2010

Mit dem Jahreswechsel stehen nun einige wichtige Termine für den Eurobot-Wettbewerb fest. Die Anmeldung zum Wettbewerb ist noch bis zum 31. Januar 2010 möglich. Anmelden können sich Teams von mindestens zwei Personen, die alle höchstens 30 Jahre alt sind. Dabei sind sowohl Studenten als auch Nicht-Studenten zugelassen. Jedes Team kann von einer Person unterstützt werden die älter als 30 Jahre ist.

Der nationale Wettbewerb für Deutschland findet dann vom 7.-8. Mai 2010 in Leipzig statt. Dabei wird der erste Tag zur Anreise und Vorbereitungen dienen, der eigentliche Wettbewerb findet dann am zweiten Tag statt. Ein weiteres, ausführlicheres Programm wird sicherlich noch verfügbar gemacht werden.

Der internationale Endausscheid findet vom 26.-30. Mai 2010 in Rapperswil in der Schweiz statt.

Als kleinen Vorgeschmack gibt es noch ein gut gemachtes Promo-Video des Dresdner Teams TURAG aus dem letzten Jahr.