direcs mit optionaler kleiner GUI

 Um das direcs Hauptprogramm auf dem Roboter optimal nutzen zu können, wurde für den Roboter die GUI neu designt. Der Clou dabei: Wenn das Programm auf einem Gerät gestartet wird, welches im Hostnamen "robot" enthält, wird automatisch die "kleine" neue GUI verwendet. Klein deshalb, weil sie für die Auflösung des Touchscreens auf dem Roboter optimiert wurde (840×542 Pixel). Bisher wurde die GUI beim compile-Vorgang fest ausgewählt. Ferner kann die kleine GUI auf jedem anderen System erzwungen werden, wenn als Startparameter "small" übergeben wird (die große mit "large"). Verzichtet wurde in der kleinen GUI auf keines der bisherigen Elemente, sie wurde nur anders angeordnet – konkret wurde sie auf mehrere Tabs / Reiter verteilt. Und sieht das Ergebnis aus (nur einige Tabs dargestellt):

         

PS.: Die Kinect-Kamera und der Roboter warten zum Zeitpunkt der Screenshots nicht angeschlossen und nur der Simulationsmodus aktiviert.

 

direcs-avrsim – mein direcs Atmel-Simulator

 In der Vergangenheit gab es bekanntermaßen diverse Probleme mit der seriellen Schnittstelle. Um hier beim debuggen nicht immer auf den angeschlossenen Roboter angewiesen zu sein, fiel der Entschluss einen direcs1-Roboter-Simulator zu entwickeln. Ziel sollte es sein eine Software zu haben, die auf dem seriellen Port wie die Software auf dem Atmel Microcontroller Befehle entgegennimmt und genauso "antwortet", also regiert.Gesagt, getan, hier das Zwischenergebnis. Als Name des Simulators wurde direcs-avrsim gewählt. 

Vorher noch eine Erklärung, wie das ganze hardwaretechnisch gelöst wurde, denn es müssen ja dann im Betrieb die Daten zwischen zwei seriellen Ports miteinander ausgetauscht werden; also zwischen der direcs-Software und direcs-avrsim. Ganz einfach, man verbindet einfach zwei serielle Ports mit einem seriellen crossover cable, auch Nullmodem-Kabel genannt. Und wenn am Gerät keine seriellen Ports vorhanden sind, jeweils noch über zwei USB-Seriell-Wandler. Und so sieht das Ganze dann aus:

Von Vorteil ist es, wenn USB-Seriell-Wandler mit einem unterschiedlichen Chip verwendet, dann haben die seriellen Ports unterschiedlichere Namen, wie z.B. hier diese drei:

~/develop/direcs% ls /dev/tty*

crw-rw-rw-  1 root    wheel    2,   0 17 Jun 19:38 /dev/tty
crw-rw-rw-  1 root    wheel   11,  46 19 Jun 16:01 /dev/tty.PL2303-003014FA
crw-rw-rw-  1 root    wheel   11,  44 19 Jun 16:02 /dev/tty.SLAB_USBtoUART
crw-rw-rw-  1 root    wheel   11,  40 14 Jun 21:29 /dev/tty.USA19Hfa141P1.1

Um die grundsätzliche Funktionalität der Adapter und des Kabels sicherzustellen, bietet es sich an diese mit zwei Terminal-Programmen zu testen. Z.B. auf dem Mac mit goSerial oder in der Shell (Konsole) mit minicom:

Bei jedem Programm muss dann jeweils der passende serielle Port gewählt werden und jeden Befehl, den man auf "der einen Seite" dann eintippt, sollte "auf der anderen Seite" genauso erscheinen.

Hier die nun sehr einfache GUI von direcs-avrsim direkt nach dem Start:

Das abgebildete Relais, das Flashlight und die GUI-LEDs entsprechen Aufbauten auf dem realen Roboter. Als Code der hier zur Verwendung kommt, dient dabei natürlich zu 99% der, der ansonsten auf dem Atmel läuft (main.c). Dieser kann – da es ja Standard-C ist – weiterverwendet werden. Die Atmel-spezifischen Anweisungen (Setzen von Registern, Watchdog etc.) sind natürlich nicht implementiert.

Die GUI wartet nun auf die Entgegennahme von Befehlen auf dem seriellen Port – eben genau so, wie sonst der reale Roboter. Hier sieht man den Status nach Erhalt der ersten Befehle (*re# = Reset, Roboter antwortet mit *ok#):

Hier sieht man unter anderem wie das Flashlight eingeschaltet wurde (Befehl *f0on#, Roboter antwortet ebenfalls mit *f0on#):

 

Ebenfalls erkennbar ist die Abfrage zweier Sensoren (*s7# und *s8#). Hier antwortet die GUI zurzeit noch mit immer den gleichen Werten. Sie entsprechen den Werten des AD-Wandlers und ergeben umgerechnet dier 12 und 24. Dieses entspricht der Akku-Überwachung mit 12Volt und 24Volt-Akkus.

Diese Woche gibt es Updates…

 So, lange gab es keinen neuen Artikel… Hintergrund ist, das zurzeit an einer sehr umfänglichen Umstrukturierung an der direcs-Software gearbeitet wird. Hierzu wurde extra im Sourcecode-Repository ein separater Branch eröffnet, da die grundsätzliche Arbeitsweise rund um den seriellen Port geändert wird. Ursache waren diverse Probleme in der Vergangenheit mit der Kommunikation zwischen PC / Mac und dem Roboter. Aber dazu in den nächsten Tagen mehr…

RoboCup@Home 2011 – Team NimbRo – Die Gewinner 2011!

Hier nun das letzte Video des RoboCup@Home 2011 Finales. Es ist das Team NimbRo der Universität Bonn. Mit einer absolut beeindruckenden Leistung überzeugten sie auch die Jury und landeten darum als Ergebnis auch auf Platz 1.

Aber seht selbst:

 

RoboCup@Home 2011 – Team ToBI

Ein weiteres Video des RoboCup@Home 2011. Hier das Team ToBI der Uni Bielefeld:

Leider ist hier „nur“ der Vortrag zu dem Roboter zu sehen, da es Probleme mit der Kamera gab. Sorry.

Aber es gibt ja noch weitere Videos anderer Teams – einschließlich des Gewinners des RoboCup@Home 2011.

 

RoboCup 2011 – Video Standard Platform League (Nao)

Ein Video der RoboCup 2011 Standard Platform League; es spielen die Roboter der Teams HTWK und RoboEireann:

Der Roboter in der Standard Plattform Liga heißen Nao und sind vom Herstellers Aldebaran Robotics.

RoboCup@Home – Video vom Team homer

Ein Video des RoboCup@Home 2011; der Roboter des Team homer:

Der Roboter Lisa ist von der Universität Koblenz und hatte leider etwas Pech mit der Technik – schade.

 

PS.: Sorry, das Video ist im Intro noch falsch betitelt, wird noch mal korrigiert…

RoboCup 2011 – Erstes Video von DARwIn-OP

Ein netter, kleiner Roboter der „am Rande“ des RoboCup 2011 vorgestellt wurde, der DARwIn-OP:

Entwickelt wurde der Roboter von ROBOTIS. Laut Prospekt handelt es sich um eine offene Plattform. Alle Daten zu dem Roboter der zurzeit 12.000 US-$ (!) kostet (04.04.2011), gibt es hier verlinkt.

Update 08.09.2011: 10.250 EUR bei Robosavvy.