Force Feedback Trackball
Teilnehmer
- Benjamin Brombach email
- brombach[at]uni-weimar.deOnno Haak email
Idee
Der weit verbreitete "Explorer " Trackball von Microsoft (Bild 1) wurden von uns mit Aktoren ergänzt (Bild 2 und Bild 3) Der Trackball sollte mit Hilfe zweier Motoren aktiv bewegt werden können. Durch die Ansteuerung der Motoren ist es möglich, den Trackball um 2 Achsen zu bewegen (also auf einer 2 dimensionalen Ebene) und somit eine Richtung für den Benutzer vorzugeben.
An dem jeweils gegenüberliegenden Fixationspunkt zu den Motoren wurden zwei Zugrelais angebracht. Werden diese einzeln angesteuert (sprich ausgefahren), blockieren sie den Trackball entlang einer der 2 Achsen. Werden beide angesteuert, so wird der Trackball komplett blockiert.
zusätzlich war noch angedacht, den Trackball um einen Vibrationsmotor und ein Wärmelement zu erweitern. Aus zeitlichen gründen wurde dies aber nicht verwirklicht.



Anwendung Primär

Der Anwendungsbereich sollte primär im Virtual Reality Bereich liegen. Mit Hilfe von haptischen Ein- und Ausgabegeräten soll die Interaktion in bzw. mit der virtuellen Umgebung geschehen. Der Benutzer erfährt also nicht nur ein visuelles oder akustisches Feedback, sondern auch ein haptisches. Das System wird so für den Benutzer intuitiver bedienbar und schneller erlernbar sein. So kann Kollision innerhalb der Simulation durch das Blockieren des Trackballs spürbar gemacht werden. Die Kollision ist bedingt durch den Aufbau in 3 Varianten möglich:
1. Achse 1
2. Achse 2
3. Beide Achsen
Des Weiteren ist es möglich, durch die Motoren eine Bewegung des Trackballs vorzugegeben und/oder die Bewegung zu beeinflussen. Theoretisch ist diese Vorgabe in jede beliebige Richtung mögich. So kann eine im System entstandene Bewegung eine Bewegung des Trackballs induzieren oder es können bestimmte Beschränken für die Trackball-Bewegung vorgegeben werden.
In unserer Applikation steuert man nach dem Prinzip "WYSIWYG" (What You See Is What You Get") einen Ball durch eine virtuelle Umgebung. Würde der Ball mit einer Wand kollidieren, so wird des entsprechende Zugrelais aktiviert und eine Bewegung ist nur noch um eine Achse möglich. Befindet sich der Ball beispielsweise auf einer Schräge, so ist die Bewegung des Trackballs je nach Richtung einfacher oder schwieriger.
Anwendung Sekundär

Das zweite Anwendungsgebiet wären Betriebssysteme. Die Bedienung von "Benutzeroberflächen" ist ein wichtiger Aspekt des Forschungsgebietes HCI ("Human Computer Interaction"). Durch ein haptisches Feedback erhält der Benutzer Informationen auf bestimmte Ereignisse oder Vorgaben. So kann zum Beispiel mit dem Force-Feedback-Trackball vorgegeben werden, dass der Mauszeiger nur innerhalb eines Fensters bewegt werden kann (Alarm-Fenster, Ordner-Fenster, Bildschirmbereich etc.). Versucht der Benutzer ein vorgegebenes Gebiet zu verlassen, wird der Trackball blockiert. Des Weiteren kann eine Bewegung erzwungen werden, um die Aufmerksamkeit des Benutzers zu forcieren. So kann zum Beispiel in einem "haptischen Hilfsmodus" der Trackball so bewegt werden, dass der Mauszeiger im Betriebssystem zu den relevanten Stellen wandert und der Benutzer - durch das Ansprechen meherer Sinne - die Aktion besser nachvollziehen kann. Beim Eintreffen einer Email kann so auf unterschiedliche Weise reagiert werden:
1. Der Vibrationsalarm könnte ausgelöst werden.
2. Der Trackball könnte für kurze Zeit blockiert werden.
3. Der Trackball könnte sich und damit den Mauszeiger zum Email-Programm-Icon bewegen
Video & Präsentationen
Der Mikrokontroller ATMega32

Hersteller: Atmel
Eigenschaften:
- ~5V/8Mhz
- RISC-Architektur mit ca. 150 Befehlen
- 1k Datenspeicher
- 2K Arbeitsspeicher
- 32k Programmspeicher
- ADC
- UART für Datenkommunikation
- Interrupts
- Timer z.B. für die Pulsweitenmodulation zur Steuerung der Motoren
- etc.
Eine detailierte Beschreibung finden sie in der vollständigen Dokumentation
Framework
Die Beispielapplikation sollte in Avango erstellt werden. Avango ist ein Framework für interaktive verteilte virtuelle Umgebungen und wurde am Frauenhofer Institut für Medienkommunikation entwickelt. Es bietet eine Vielzahl an möglichen Eingabegeräten mit unterschiedlichen Freiheitsgrade (DOF) an und ebenfalls eine große Vielzahl an Ausgabegeräten, vom einfachen Monitor über Stereoprojektionen bis zu "Cave"-Anwendungen. Avango setzt auf OpenPerformer auf und ist in C++ programmiert, bietet aber zusätzlich ein Scripting Interface in der Interpretersprache Scheme an. Dadurch können auch während der Laufzeit Modifkationen an dem Programm durchgeführt werden ("Rapid Prototyping").
Für die Kollisionserkennung und die Dynamik in Avango ist Vortex zuständig. Vortex ist eine vollständige Physik-Engine für Echtzeitsimulationen. Es stellt diverse Bibliotheken für Dynamikberechnungen und Kollisionserkennung von Festkörpern zur Verfügung. Die Einbindung in Avango ist durch einen "Wrapper" möglich.
Klicken Sie hier für zusätzliche Bilder!
Kommt es in der Simulation zu einer Kollision, so wird eine Callback-Funktion aufgerufen, die eine Ereignissnachricht an den Mikrokontroller schickt, der wiederum die entsprechende Aktion ausführt. Dazu wird der Kollisionswinkel in der Simulation berechnet und daraufhin die jeweilige Achse blockiert.
Eine detailierte Beschreibung finden sie in der vollständigen Dokumentation

Vollständige Dokumentation
Dokumentation (55 Seiten)
(Size: 2.6 MB)
Beispielprogramme
Zu Beginn des Projekts sollte der Umgang mit dem Mikrokontroller erlernt werden und sich mit der Programmierumgebung und -sprache beschäftigt werden. Dabei sind einige kleine Beispielprogramme entstanden, die Grundzüge von Mikrokontrollerprogrammierung enthalten.