Dienstag, 29. Juli 2014

Dank ein paar queueing und multithreading Tricks läuft der Stream jetzt mit 15-17 fps. Der Unterschied ist vor allem bei Bewegungen des Kamerasystems deutlich zu sehen, da auch die Latenzzeit der Übertragung selbst noch etwas abgenommen hat. Leider hat sich jetzt ein Fehler eingeschlichen der das Bild ab und zu flackern lässt. Diesen Bug werde ich jetzt noch suchen müssen.

In diesem kurzen Video zeige ich euch die optischen Einstellungsfunktionen. Man kann den Augenabstand, den Bildabstand und die Linsenstellung während der Übertragung auf die eigenen Bedürfnisse anpassen. Mein kleiner Plüsch Tux durfte Modell stehen.

Dienstag, 22. Juli 2014

Endlich sind die Dynamixel angekommen. Sagt Hallo zu "Number 6". Etwas kompakter, aber wesentlich flexibler als der erste Prototyp. Im Moment noch an Bildschirm und Tastatur angeschlossen, sollte er bald im Headless Betrieb arbeiten können. D.h. kompletter Autostart aller benötigten Programme und des Netzwerkaufbaus. Im Moment arbeite ich am Stream für Kontrolleingaben. Damit werden Änderungen im Bildverarbeitungsalgorithmus während der Übertragung möglich.

Was haltet Ihr vom Design ? Wer fand das Doppelkamera System von "Number 5" cooler ?
Vielleicht sollte ich wieder Augenbrauen befestigen :)


Donnerstag, 17. Juli 2014

VideoStreaming in HD. Immer wieder ein gutes Gefühl, wenn ein Programm schließlich funktioniert. Das Bild wird in HD aufgenommen, jpg komprimiert und per WLAN übertragen. Beim Client schließlich wieder dekomprimiert und auf volle 1920-1080 Pixel skaliert. Der Stream läuft mit 10-12fps. Gar nicht so schlecht. Damit schlage ich sogar Nummer5 der eine niedrigere Auflösung hatte.


Mittwoch, 9. Juli 2014

Das Arbeiten mit OpenCV ist wie ein Martial Arts fight, es wird um jede Millisekunde gekämpft. Es wird schwieriger als gedacht, Bilder in Full-HD zu bearbeiten. Es dauert schon fast 200 MS nur um ein Frame von der Webcam abzurufen. Das muss man doch irgendwie beschleunigen können.

Freitag, 4. Juli 2014

Die Hardware für den Prototypen Zwei steht fest. Er wird auf einem Zotac ZBox Mini PC operieren. Dazu kommt eine Full-HD Webcam. Ich hoffe das Oculus Rift Development Kit 2 wird tatsächlich im frühen August ausgeliefert. Jetzt muss ich mich um Bildkomprimierung kümmern um das WLAN nicht in die Knie zu zwingen. Es wird super aussehen, wenn die Hardware zusammengebaut ist. Mir zucken jetzt schon die Finger.



Eine erfreuliche Nachricht kam die letzte Woche noch bei uns an. Das c't Magazin wird einen Artikel über unsere Arbeit und den Prototypen 1 schreiben. Ich darf mit meinem Kollegen zusammen nach Hannover fahren und unsere Arbeit vorführen. Es ist schön das rennomierte Technik Magazine auch jungen Entwicklern solche Chancen geben. Vielen Dank.

Mittwoch, 2. Juli 2014

Die Bachelorarbeit wurde am 01.07.2014 abgegeben. Ich werden nun fortführend berichten über die Entwicklung des Prototypen 2. Dieser soll sich vor allem durch eine verbesserte Kommunikation und damit niedrigere Latenzzeiten auszeichnen. Die Hardware Spezifikationen erhalten mit dem Oculus Rift (Development Kit 2) ein Upgrade von HD auf Full-HD.

Im Moment bin ich beschäftigt mit der Entwicklung der neuen Socket-API die direkt auf die von Microsoft bereitgestellte WINSOCK-2 Schnittstelle aufsetzen soll. Da Client und Server zwei unabhängige Programmteile sind, müssen sie fähig sein die Kommunikation selbstständig aufrecht zu erhalten, und im Notfall wiederherzustellen.
In diesem Blog geht es um Moved Reality. Damit werden Systeme beschrieben, die Sinnesreize aufzeichnen und auf einen Menschen übertragen können. Unser erster Prototyp wurde von mir und einem Studienkollegen, als Bachelorarbeit, an der HTWG Konstanz entwickelt.

Die Moved Reality ist eine Mischung aus Virtual Reality Technologie, Bildverarbeitung, Augmented Reality und einiges an Kreativität. Der Bereich ist in sechs Stufen eingeteilt, die den menschlichen Wahrnehmungsmöglichkeiten entsprechen (Sehen, Hören, Riechen, Schmecken, Fühlen/Tasten, Gleichgewicht).

Der erste Prototyp, Codename: Nummer 5, erreicht Stufe Zwei. Das bedeutet, dass er zwei dieser Möglichkeiten erfüllt hat (Sehen, Hören). Das System besteht aus einem Kamerasystem mit drei Freiheitsgraden, das durch die Kopfbewegungen des Anwenders synchronisiert wird. Der Anwender kann sozusagen seinen Sehsinn temporär auf die Maschine auslagern. Dazu kam ein Oculus Rift (Development Kit 1) zum Einsatz. Das Motorsystem besteht aus drei Dynamixel Motoren.



 Die Software ist als Client/Server-Architektur aufgebaut. Ein leistungsstarker PC fungiert als Server. Hier werden die zwei Webcam Streams entgegengenommen, für die Darstellung auf dem Oculus Rift bearbeitet und zusammen mit dem Audio Frames per WLAN zum Client geschickt. Der Client empfängt die Daten, stellt sie am Oculus Rift dar und sendet seinerseits die Head-Tracking-Daten zurück, mit denen die Position der Kameras, entsprechend zur Kopfbewegung des Anwenders, angepasst werden. Falls Augmented-Reality-Algorithmen eingesetzt werden, sollten diese ebenfalls direkt am Server ausgeführt werden. Der Client wird also nur minimal belastet. Es kann sich um ein Laptop oder ein Tablet handeln, falls eine HDMI Schnittstelle vorhanden ist, oder gar ein Embedded Board.