32/64 Bit Bug gefixt

 Interessanter Fehler, der bereits die ganze Zeit in der GUI angezeigt wurde: Unter zufälligen Umständen wurden "zufällige" Laserlinien in der GUI angezeigt (im Simulationsmodus. Zusätzlich wurde auch nur jede zweite Laserlinie dargestellt. So stellte sich dieses dar:

Nach längerem Debuggen stellte sich heraus, dass alle Laserlinienelemente in allen Schleifen vollständig vorhanden waren. Einzig in der Darstellung wurden sie nicht angezeigt… Ursache schien hier ein 32/64 Bit-Problem zu sein, denn beim Auslösen des Events des LaserThreads, dass alle Daten für die GUI zur Verfügung stehen, wurde ein Zeiger auf das erste Element einer QList übergeben. Da nur jeder zweite Wert angezeigt wurde macht deutlich, dass die Ablage der Werte im Speicher offensichtlich jeden zweiten "übersprungen" hat. Denn das jetzige System (ein Apple iMac) ist ein 64 Bit-System!

Da die QList ohnehin bereits 360 Elemente enthielt – unabhängig davon, wie viel Grad der Laserscanner abdeckt, wurde hier kurzerhand (Und um mehr Zeit für Wichtigeres im Projekt zu verwenden) einfach auf ein normales good-old float-Array umgestellt. Nun werden alle Werte korrekt an die GUI emmited und damit auch wieder dargestellt.

Anzeige der Durchfahrtsweite in der GUI

 In der Zwischenzeit wurde die GUI um die Anzeige der Durchfahrtsweite des Roboters erweitert. Das heißt, die hier blau angezeigte Linie stellt die gemessene (errechnete) lichte Weite dar. Anhand dieser kann später ermittelt werden, ob der Roboter dort überhaupt durchfahren kann (durch passt) oder nicht. Zusätzlich wird diese Breite als Text – anstatt wie sonst in Labels – direkt in der Laserview, also oberhalb der blauen Linie angezeigt:

Auf den folgenden Screenshots ist gut zu erkennen, wie sich die anzeige dynamisch anpasst, wenn der Regler Obstacle Alarm verändert wird. Dieser Regler legt fest, bei welcher Entfernung ein Hindernis als solches betrachtet wird.

 

Screenshots direcs

 

Zwei aktuelle Screenshots – einmal der erste Test mit dem neuen ARM-Board unter Linux in der Debian-VM (Parallels unter Mac OS X), der zweite nativ auf dem Mac.
15.04.2012

Erste Experimente mit der Microsoft Kinect Kamera und dem OpenKinect / libfreenect Sourcecode.
30.12.2010

Größeres Redesing: Grafischen Heartbeat korrigiert, Roboter-Motor-Status wird nun grafisch rechts oben angezeigt (mit GUI LEDs), Änderung der Hauptfenstergröße zur Anzeigen auf dem MacBook Pro.
30.11.2010

Kleine Verbesserungen in der GUI: Grafische LEDs über den Zustand diverser Module im „state“ Bereich rechts oben, Gitternetzlinien innerhalb der Plot-Fenster (Batteriespannungen) und ein grafischer Heartbeat (rot).
14.11.2010