Aufbau eines Fahrsimulators
Transcription
Aufbau eines Fahrsimulators
Planung und Aufbau eines realistischen Fahrsimulators für die Untersuchung von kognitiven Dialogsystemen Schwerpunkt Software Studienarbeit am Cognitive Systems Lab Prof. Dr.-Ing. Tanja Schultz Fakultät für Informatik Universität Karlsruhe (TH) von cand. inform. Rikard Öxler Betreuer: Prof. Dr.-Ing. Tanja Schultz Dipl.-Inform. Felix Putze Tag der Anmeldung: 28. Dezember 2008 Tag der Abgabe: 28. April 2009 Ich erkläre hiermit, dass ich die vorliegende Arbeit selbständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Karlsruhe, den 28. April 2009 Zusammenfassung Die vorliegende Studienarbeit beschäftigt sich mit dem Aufbau eines Fahrsimulators zu Forschungszwecken. Der Schwerpunkt liegt dabei bei der dafür notwendigen Software. Das Dokument beschreibt, welche Anforderungen an solch ein System gestellt werden, welche bisherigen Lösungsansätze es gibt und wie unsere Lösung dafür aussieht. Mit Hilfe dieser Arbeit soll es später möglich sein, das System zu warten oder Erweiterungen vorzunehmen. Inhaltsverzeichnis 1 Einleitung 1.1 Zielsetzung der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Gliederung der Arbeit . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 2 Grundlagen 2.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Projektion . . . . . . . . . . . . . . . . . . . . . 2.1.2 Sound . . . . . . . . . . . . . . . . . . . . . . . 2.1.3 Eingabegeräte . . . . . . . . . . . . . . . . . . . 2.1.4 Kraftrückmeldung . . . . . . . . . . . . . . . . 2.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Was muss ein Simulationssystem für uns leisten 2.2.1.1 Szenarien . . . . . . . . . . . . . . . . 2.2.1.2 Verkehr . . . . . . . . . . . . . . . . . 2.2.1.3 Fahrverhalten . . . . . . . . . . . . . . 2.2.2 Mögliche Szenarien/Versuche . . . . . . . . . . . . . . . . . . . . . 3 3 3 4 4 4 4 4 5 5 5 5 3 Analyse bestehender Fahrsimulatoren 3.1 Virtual Environments Laboratory . . . 3.2 VDrift . . . . . . . . . . . . . . . . . . 3.3 Grand Theft Auto . . . . . . . . . . . 3.3.1 Multi Theft Auto . . . . . . . . 3.4 Silab . . . . . . . . . . . . . . . . . . . 3.5 AutoSim . . . . . . . . . . . . . . . . . 3.6 STISIM . . . . . . . . . . . . . . . . . 3.7 SCANeR™ . . . . . . . . . . . . . . . . 3.8 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 8 9 9 11 12 13 13 4 Arbeit mit GTA 4.1 Aufbau der Infrastruktur . . . . . . . . . . . . . . . . 4.2 Installation . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Lauffähiges Windows unter X Rechnern . . . . 4.2.2 GTA installieren . . . . . . . . . . . . . . . . 4.2.3 Downgrade . . . . . . . . . . . . . . . . . . . 4.2.4 Installation MTA . . . . . . . . . . . . . . . . 4.2.5 Installation unseres Versuchsszenarios . . . . . 4.2.6 Umgebung starten (mehrere Rechner / Server) 4.3 Szenario . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.1 Szenarioerstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 18 18 18 18 19 19 19 22 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii Inhaltsverzeichnis 4.4 4.5 4.3.1.1 Client . . . . . . . . . . . . . . . . . . . 4.3.1.2 Server . . . . . . . . . . . . . . . . . . . 4.3.2 Szenarioauswertung . . . . . . . . . . . . . . . . . Pre Open-Source . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Integration Lenkrad . . . . . . . . . . . . . . . . 4.4.2 Mehrere Ansichten integrieren . . . . . . . . . . . Open-Source . . . . . . . . . . . . . . . . . . . . . . . . . 4.5.1 Installation SourceCode . . . . . . . . . . . . . . 4.5.1.1 Installation der Entwicklungsumgebung 4.5.1.2 SVN Source Code . . . . . . . . . . . . 4.5.1.3 Patch . . . . . . . . . . . . . . . . . . . 4.5.1.4 Compile, Deploy and Run . . . . . . . . 4.5.2 Implementierung der Kameraansicht . . . . . . . 4.5.3 Joystick Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 23 24 25 25 25 27 27 27 28 29 29 30 31 5 Evaluierung 33 5.1 Ergebnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6 Zusammenfassung und Ausblick 43 Literaturverzeichnis 45 1. Einleitung Jeder, der schon einmal mit einem Navigationssystem im Straßenverkehr unterwegs war, weiß, dass diese Systeme bei weitem noch nicht ausgereift sind. Zwar findet man mittlerweile fast immer den Weg, jedoch reicht eine gute Streckenführung allein nicht aus. Die Eingabe des Zieles und jede weitere Kommunikation mit dem Gerät erfordert bisher eine hohe Konzentration des Fahrers, so dass sie nicht während der Fahrt erfolgen darf. Ansonsten könnte es zu gefährlichen Beeinträchtigungen kommen. Deshalb sollte sich das Gerät an den Benutzer anpassen. Für die Lösung dieses Problems bietet sich ein adaptives Dialogsystem an. Der Fahrer in einem Auto muss bis zu mehreren Stunden mit dem System interagieren und muss dabei die ganze Zeit auf den Verkehr und die Umgebung reagieren können. Der Benutzer darf hier nicht abgelenkt werden, da er somit zu einer Gefahr für sich und Andere auf der Straße werden könnte. Das Gleiche gilt natürlich auch, wenn das System einschläfernd wirkt und der Fahrer dadurch zu spät auf Ereignisse im Straßenverkehr reagiert. Um eine Evaluierung solcher adaptiver Dialogsystem zu ermöglichen sind Fahrsimulatoren vonnöten. Nur mit ihnen kann garantiert werden, dass niemand verletzt wird oder sogar Schlimmeres passiert. Hier können in einer sicheren Umgebung alle Funktionen erprobt und verbessert werden. Die Versuche sind beliebig oft reproduzierbar und alle auftretenden Parameter können aufgezeichnet und analysiert werden. Außerdem ist sichergestellt, dass die für die jeweilige Untersuchung notwendigen Situationen jederzeit erzeugt und kontrolliert werden können. Erst wenn die Sicherheit des Systems gewährleistet ist, können die Tests auch auf Fahrzeuge im realen Straßenverkehr ausgeweitet werden. 1.1 Zielsetzung der Arbeit Ziel unserer Arbeit war es, einen kompletten Fahrsimulator aufzubauen. Mit diesem sollen Versuche zur Evaluierung eines adaptiven Dialogsystems durchgeführt werden. Diese Arbeit beschäftigt sich primär mit der hierfür erforderlichen Software. Der Aufbau der Hardware wird in Frieder Reinholds Studienarbeit näher beschrieben [18]. 2 1. Einleitung Zusätzlich zu dem von uns fertiggestellten System soll es mit dieser Arbeit auch Anderen ermöglicht werden, den Fahrsimulator nachzubilden oder zu warten. 1.2 Gliederung der Arbeit Die folgenden Kapitel beschäftigen sich mit der Software für einen Fahrsimulator. Angefangen bei der Suche nach bereits erhältlichen Systemen bis hin zur Implementierung und Evaluierung des von uns entwickelten Systems. Das Kapitel “Grundlagen” befasst sich damit, was Fahrsimulatoren alles leisten müssen, um unseren Anforderungen Genüge zu tun und sich somit für unsere Versuche zu eignen. Im Kapitel “Analyse bestehender Fahrsimulatoren” werden verschiedene existierende Fahrsimulatoren begutachtet, mit welchen wir uns während unserer Arbeit eingehend beschäftigt haben. Das Kapitel “Arbeit mit GTA” beschäftigt sich mit dem letztendlich von uns verwendeten System GTA (Grand Theft Auto). Hier wird erklärt, wie sich die Software installieren und verwenden lässt. In der “Evaluierung” beschreiben wir Möglichkeiten, um den von uns aufgebauten Fahrsimulator auf seine Leistungsfähigkeit hin zu testen. Im letzten Teil wird eine Zusammenfassung unserer Arbeit und ein Ausblick auf zukünftige Projekte gegeben. 2. Grundlagen Immersion bezeichnet den Grad des Eintauchens in eine virtuelle Realität. Unser Ziel war es eine möglichst hohe Immersion zu ermöglichen, um z. B. Effekte wie erhöhte kognitive Auslastung unter realistischen Bedingungen untersuchen zu können. Doch welche Faktoren spielen dafür überhaupt eine Rolle und auf was ist dabei zu achten? Nachfolgend wird beschrieben welche Kriterien für die Wahl der Hard- und Software wichtig waren. 2.1 Hardware Um einen Fahrsimulator betreiben zu können, ist als erstes eine entsprechende Hardware erforderlich. Diese fungiert als Nahtstelle zwischen dem Mensch und der simulierten Welt. Außerdem kann die Software nicht unabhängig von der Hardware existieren. Die Hardware muss natürlich die Anforderungen (z. B. Performance) der Software erfüllen können, damit diese voll ausgenutzt werden kann. Zusätzlich muss sie auch unsere Anforderungen an den Realismus erfüllen. Ein einfacher DesktopRechner mit einem Bildschirm, Tastatur und Maus reicht nicht aus, um ein reales Fahrgefühl zu vermitteln. 2.1.1 Projektion Da die Benutzung nur einer, nach vorne ausgerichten, Ansicht ein vorausschauendes Fahren erschwert, strebten wir einen Aufbau mit mehreren Projektoren an. Zur Realisierung der, auf nicht nur einen Monitor, beschränkten Ansicht, gibt es prinzipiell zwei Möglichkeiten. Falls die Simulatorsoftware es unterstützt, können an einen Rechner mehrere Anzeigen angeschlossen werden. Die mögliche Anzahl variiert mit den verwendeten Grafikkarten. Da die meisten Simulatoren jedoch wegen Geschwindigkeitseinbußen darauf verzichten, müssen mehrere Rechner mit je einer Ansicht in einem Netzwerk verbunden werden. 4 2.1.2 2. Grundlagen Sound Der heutzutage in der Standardkonfiguration erhältliche 5.1 Sound reicht für unsere Zwecke. Dabei erzeugen fünf im Raum verteilte Boxen den mit der Soundkarte generierten Ton und sorgen so für einen Raumklang. Da tiefe Töne schwer zu lokalisieren sind, genügt ein einzelner Subwoofer. 2.1.3 Eingabegeräte Als Eingabegerät ist ein Lenkrad, wie es in einem normalen Auto verwendet wird, einer Tastatur- und Maussteuerung vorzuziehen, da Probanden mit einer solchen Steuerung vertraut sind und sie mehr Realismus bietet. Es stehen viele, für den Spielebereich entwickelte, Geräte zur Auswahl. Von einem Lenkrad, bis hin zu drei Pedalen und einer Sechs-Gang-Schaltung. 2.1.4 Kraftrückmeldung Für die Kraftrückmeldung gibt es verschiedene Ansätze. Zum einen kann ein einfaches Force-Feedback-Lenkrad verwendet werden, dass unter Windows über die DirectInput-Schnittstelle von Microsofts DirectX angesprochen wird. Es stehen jedoch auch ausgefeiltere Aufbauten wie Bewegungsplattformen zur Verfügung. Jedoch kommen diese für uns aus Ressourcen- und Platzmangel nicht in Frage. Eine einfache aber effiziente Lösung um die Motor- und Fahrbahnvirbrationen zu simulieren, ist es, den vorhandenen Sound abzugreifen und die tiefen Frequenzen mit einem Bassshaker wiederzugeben. Ein Bassshaker erzeugt, als Basslautsprecher ohne Membran, die gewünschten Vibrationen. 2.2 Software Zusätzlich zum Hardwareaufbau wird eine Software benötigt, die dem Aufbau“Leben einhaucht”. Diese muss über Unterstützung für die Hardwarekomponenten verfügen. Beispielsweise lässt sich das von uns gekaufte Logitech G25 Lenkrad noch nicht in vollem Funktionsumfang in allen Systemen nutzen. Die Rahmenbedingungen für unseren Simulator waren hauptsächlich durch den Realismus gesetzt, damit die erzielten Erkenntnisse auch auf den echten Straßenverkehr anwendbar sind. Aber auch die Kosten und die verfügbare Zeit waren sehr wichtige Faktoren, die zu beachten und einzuhalten waren. 2.2.1 Was muss ein Simulationssystem für uns leisten Ein Simulator muss natürlich so realistisch wie möglich erscheinen, da seine Hauptaufgabe darin besteht, ein Modell der Realität zu sein. Dieser Realismus ist deswegen wichtig, damit die Ergebnisse auch auf die Realität anwendbar sind. Versuche sollten wiederholbar sein, weswegen auch eine Skriptbarkeit erforderlich ist, um gleiche Bedingungen für die einzelnen Probanden zu ermöglichen. Ansonsten sind die Ergebnisse schwer miteinander vergleichbar. Es muss möglich sein, die Simulationsdurchläufe zu protokollieren um sie später auszuwerten. Auch erforderlich für diese Auswertung sind Sensordaten, wie z. B. die Auslenkung des Lenkrads, die synchron untereinander und gegebenenfalls mit externen Sensoren aufgezeichnet werden müssen. 2.2. Software 2.2.1.1 5 Szenarien Die virtuelle Umwelt sollte abwechslungsreich sein, um Versuche zu unterschiedlichen Gegebenheiten durchführen zu können. Eine lange monotone Landstraßenfahrt erfordert andere Fähigkeiten vom Fahrer als eine “Stop and go” Stadtfahrt. Auch ein direkter Übergang zwischen diesen Szenarien, ohne einen neuen Versuchslauf zu starten, ist wünschenswert. Vorteilhaft ist, wenn bereits viele gebräuchliche Szenarien mit der Software mitgeliefert werden. Dadurch entfällt eine womöglich langwierige Einarbeitungszeit. Noch nicht vorhandene Szenarien sollten sich ohne zu großen Aufwand erstellen lassen. Es ist unvorteilhaft, wenn dafür mehr Zeit verloren geht als mit den eigentlichen Tests. 2.2.1.2 Verkehr Damit die virtuelle Welt nicht leer und tot wirkt, sollte Verkehr existieren. Für den Probanden sollte dieser autonom erscheinen, um die Immersion nicht zu verschlechtern. Dies wird dadurch erreicht, dass die Verkehrsteilnehmer auf den Fahrer reagieren und sich ansonsten an die Verkehrsregeln halten. Um einen autonom scheinenden Verkehr zu verwirklichen, muss entweder eine künstliche Intelligenz (KI) die anderen Fahrzeuge steuern oder diese müssen mit Hilfe von Ereignissen über Skripte gelenkt werden. Der Vorteil von Skripten ist die Wiederholbarkeit der Versuche, der Nachteil der höhere Aufwand zur Erstellung. Mit Skripten können nur sehr schwer alle auftretenden Situationen abgedeckt werden, dafür jedoch auch bestimmte Situationen provoziert werden. 2.2.1.3 Fahrverhalten Die Fahrphysik sollte realistisch sein, um sich wie bei einem echten Auto anzufühlen. Von dieser ist unter anderem die Geschwindigkeitswahrnehmung betroffen. Wenn das Fahrzeug dem Probanden zu langsam vorkommt und er dadurch stärker beschleunigt, wird das Risiko eines Unfalls erhöht. Dies ist zwar ungefährlich, jedoch werden die Versuche im Allgemeinen dann abgebrochen. Ein hoher Realismus erleichtert den Probanden die Auswirkungen ihrer Taten besser einschätzen zu können, da sie so handeln können wie sie es aus der echten Welt gewohnt sind. Wie später in der Evaluation (siehe Kapitel 5) zu sehen sein wird, ist das Fahrverhalten ein nicht zu unterschätzender Faktor. 2.2.2 Mögliche Szenarien/Versuche Zu Beginn der Arbeit war es noch unklar, welche Software wir für unsere Versuche verwenden würden. Deshalb suchten wir zuerst generelle Szenarien und Versuche, mit denen wir, unabhängig von der Simulatorsoftware, das Dialogsystem evaluieren konnten. Damit unser System für später stattfindende Experimente vorbereitet ist, überlegten wir uns einige Versuche, die unter Umständen wirklich durchgeführt werden würden. 6 2. Grundlagen Hierdurch wollten wir herausfinden, ob unser Fahrsimulator unseren Anforderungen entsprach, wir also in der Lage wären alle Experimente durchzuführen. Ziel der Versuche war es, herauszufinden, wann der Fahrer durch Ablenkungen oder Störungen sein Fahrverhalten ändert. Zudem wollten wir wissen, ob diese Änderungen auch durch denkerische Leistungen stattfinden. Als mögliche Szenarien hatten wir folgende Ideen: Informationssystem simulieren Dem Fahrer werden automatische Hinweise zur Verkehrssituation gegeben und es wird gemessen, ob und in welchen Situationen er sie befolgt. Beispiele der Hinweise wären: “Links herum wäre schneller.” “Rechts ist Stau, fahren Sie besser links.” “Achtung, Ihr Vordermann bremst.” “Achtung, kleines Kind am Straßenrand” Memory Hier werden verschiedene Spielkarten an der Strecke verteilt. Die eine Hälfte der Karten sind rot umrandet, die anderen grün. Die grün umrandeten haben eine gut erkennbare Nummer (weiß in schwarzem Kreis) - diese muss sich der Proband merken. Kommt eine rotumrandete Karte, so muss er die Nummer der passenden grünen Karte sagen. Die Zuordnung erfolgt dabei durch das Spielkartenmotiv (z. B. Herz Dame). Zur Motivation kann das Ganze als Wettstreit funktionieren: z. B. wer braucht am wenigsten Runden, wer war am schnellsten etc. Fahrer erschrecken Das Dialogsystem gibt Anweisungen, die vom Probanden möglichst schnell befolgt werden sollen. Das System schreit z.B. öfters “Halt”. Gewöhnt sich der Fahrer daran und werden seine Reaktionszeiten schneller oder wird der Fahrer dadurch erschreckt oder verursacht sogar einen Unfall? Fahrer irritieren Ein Auto, welches Schlangenlinien oder extrem langsam fährt, soll den Fahrer irritieren. Verschiedene Sensoren messen dann die Bio-Signale des Fahrers um Stress und Wut zu messen. 3. Analyse bestehender Fahrsimulatoren Zu Beginn unserer Arbeit war es nötig, sich einen Überblick über bestehenden Lösungen für einen Fahrsimulator zu verschaffen. Es war zu dem Zeitpunkt noch nicht klar, ob wir ein Komplettsystem kaufen, ein bestehendes System erweitern, oder ein eigenes System entwickeln würden. Es mussten Kosten und Nutzen abgewägt werden. Wir entschieden uns, einen genaueren Blick auf die nachfolgenden Systeme zu werfen, da sie das meiste Potenzial versprachen. Einen Überblick über die Vor- und Nachteile der Systeme bietet Tabelle 3.2. 3.1 Virtual Environments Laboratory Der, von der Northeastern University entwickelte, Fahrsimulator ‘Virtual Environments Laboratory’ [10] schied bei unserer Suche nach einem für uns geeigneten System ziemlich früh aus. Die Grafik war nicht auf dem aktuellen Stand der Technik und dadurch auch nicht wirklich realistisch. Dieser Realismus ist für uns jedoch von hohem Interesse. Der Vorteil dieser Software wäre es, dass sie mit Quellcode geliefert werden würde, und wir so alles nach unseren eigenen Bedürfnissen anpassen könnten. Auch die Entwicklung an einer Universität wies auf ein forschungsnahes Projekt hin. 3.2 VDrift Bei VDrift [15] handelt es sich um ein Open-Source-Projekt, dessen Entwicklung 2005 begann. Da das Ziel des Projekts ein realistischer Autorennen-Simulator war, existieren hauptsächlich Rennstrecken und Rennfahrzeuge. Die Fahrphysik orientiert sich an echten Autos und fühlt sich auch so an. Es existieren nur geschlossene Strecken, in denen der Fahrer seine Rundenzeit messen kann. Offene Strecken mit Kreuzungen und dergleichen sind nicht vorgesehen. Die KI ist nur darauf getrimmt, der Strecke entlang zu fahren, ohne auf andere Fahrer zu achten. Es gibt auch keine Kollisionen mit anderen Fahrzeugen, sondern nur mit der Strecke. Die Szenarienerstellung erfordert eine separate Modellierung der Strecke in einem 3D-Modellierer, 8 3. Analyse bestehender Fahrsimulatoren wie z.B. Blender. Die Definition der befahrbaren Strecke/Straße erfolgt in einem weiteren Arbeitsgang. VDrift verfügt über einen Netzwerkmodus mit dem z.B. mehrere Ansichten realisiert werden können. Eine Lenkradunterstützung für das, von uns verwendete, Logitech G25 ist auch vorhanden. Dem Spiel integriert ist außerdem ein Replay-Modus, mit dem die ganze Fahrt aufgezeichnet und zu einem späteren Zeitpunkt wieder betrachtet und analysiert werden kann. Der Quellcode ist gut verständlich, da er ordentlich kommentiert und übersichtlich strukturiert ist. Wie bei den meisten offenen Systemen hat man die Möglichkeit kostenlosen Support von anderen Entwicklern über dessen Community (Forum/Chat) zu bekommen. Abbildung 3.1: Screenshot aus VDrift 3.3 Grand Theft Auto Grand Theft Auto III (GTA) [3] ist ein kommerziell erhältliches 3D Spiel, das in seiner ursprünglichen Version 2001 erschienen ist. Bei den beiden Vorgängern handelte es sich noch um 2D Spiele. 2002 wurde die erste Erweiterung GTA: Vice City veröffentlicht. Wir betrachten hier GTA: San Andreas, das seit 2004 erhältlich ist. Es beinhaltet neue Funktionen, wie z.B. dynamische Echtzeitschatten oder Wetterphänomeme (Regen, Nebel, Hitzeflimmern) und eine erhöhte Sichtweite. GTA:SA zeichnet sich vor allem durch eine 36 km2 große virtuelle Welt aus, die den amerikanischen Städten Los Angeles, San Francisco und Las Vegas nachempfunden ist. Es existieren ca. 200 verschiedene Fahrzeuge, neben Autos auch Fahrräder, Hovercrafts oder Helikopter. 3.4. Silab 3.3.1 9 Multi Theft Auto Multi Theft Auto (MTA) [8] ist eine Modifikation (Mod) für GTA. Ursprünglich als Experiment entstanden, erweitert es das Spiel um einen Mehrspielermodus, während das Original nur für den Einzelspielerbetrieb vorgesehen war. Mit diesem Mehrspielermodus ist es möglich, mehrere Ansichten zu integrieren. Im Gegensatz zu anderen verfügbaren GTA-Mods verwendet dieses Mod nicht das Skriptingsystem des Spiels. Stattdessen nutzt es Hooks, mit denen Funktionsaufrufe des Spiels durch eigene ersetzt werden. Hierdurch ist es möglich, eigene Funktionalität in ein ansonsten geschlossenes System einzubauen. MTA verfügt über ein Google Code Projekt1 , worüber auf den Quellcode und weitere Informationen zugegriffen werden kann. MTA implementiert zusätzlich die Skriptsprache LUA, mit der es leicht möglich ist, eigene Projekte und Spielmodi zu verwirklichen. LUA wird in vielen Applikationen, wie z.B. Adobe’s Photoshop Lightroom oder World of Warcraft verwendet. Es ist schnell, portabel, mächtig, aber auch leicht zu erlernen. Informationen zu LUA sind auf der offiziellen Homepage zu finden2 . Die Skripte müssen nicht kompiliert werden und übertragen sich bei einer Verbindung auf den Server automatisch auf die Clients, was eine einfache Entwicklung fördert. 3.4 Silab Silab [2] ist eine kommerzielle Fahrsimulatorsoftware der Firma WIVW, einer Ausgründung aus der Universität Würzburg. Das Produkt ist modular aufgebaut. Somit ist es einfach, zu einem späteren Zeitpunkt neue Funktionalitäten durch Pakete hinzuzufügen. Es stehen ca. ein Dutzend Pakete zur Verfügung, von denen sich einige gegenseitig ausschließen, einschließen oder voraussetzen. Alle auftretenden Parameter, wie die Bedieneingaben des Fahrers oder Informationen über andere Verkehrsteilnehmer, können synchronisiert aufgezeichnet werden, um sie später für die Auswertung zu verwenden. Es ist auch möglich eine Wiederholung eines Versuchs später anzuschauen oder ein Video mit diesen Daten zu generieren. Die Simulation verfügt über mehr als 20 verschiedene Fahrzeugmodelle, welche zusätzlich mit verschiedenen Texturen belegt werden können. Fußgänger können mit dem entsprechenden Modul auch eingebunden werden. Die Grafikausgabe unterstützt beliebig viele Bildkanäle. Licht, Schatten und Reflexionen werden realistisch dargestellt. Auch Wetterphänomene wie Nebel und Regen werden simuliert. Das System verfügt über den besten, der von uns betrachteten, Streckeneditor. Bei diesem muss nicht, wie bei den meisten anderen, zuerst die 3D-Repräsentation des Szenarios erstellt werden, sondern die Welt wird aus Streckendefinition erstellt. Man muss also nur festlegen, wo sich die Straßen, Kreuzungen, Häuser etc. befinden, und 1 2 http://code.google.com/p/multitheftauto/ http://www.lua.org/ 10 3. Analyse bestehender Fahrsimulatoren Name des Pakets Grundpaket Funktion Enthält das Software-Framework an sich, eine einfache Fahrdynamik, Datenbasis, Verkehrssimulation, einfache Soundsimulation sowie eine Demostrecke bestehend aus einer kleinen Stadt, Überlandstrecke und einem Autobahnabschnitt. Daneben sind allgemein verwendbare DPUs enthalten aus den Bereichen - Signalverarbeitung (Filter, Signalgeneratoren usw.) - logische Operationen (Vergleiche, logische Gatter) - Datenaufzeichnung - Kommunikation über UDP und TCP/IP Editierbarkeit Course Mit diesem Paket können Sie Landstraßen- und Autobahnszenarien selbst entwerfen. Dies beinhaltet die freie Gestaltung von Lageund Höhenplan, Querschnittsprofil, Beschilderung, Straßenmarkierungen, umgebende Landschaft und Verhalten der anderen Fahrzeuge. Einschränkung: Der Querschnitt entlang einer Straße darf sich nicht ändern und es gibt keine Abzweigungen. Eine Autobahnauffahrt und -abfahrt sowie eine T- und X-Kreuzung für Landstraßen sind enthalten. Editierbarkeit Area Erlaubt die Gestaltung komplexer Straßengeometrien (Autobahnauf- und -abfahrten, Kreuzungen, Querschnittsübergänge und Stadtteile). Dies beinhaltet den Entwurf von Straßengeometrie, Markierungen, Beschilderung, Ampeln, grafische Ausgestaltung und das Verhalten anderer Fahrzeuge. MOV Simulation von Fußgängern Entwicklerpaket DPU Erlaubt die Programmierung eigener Softwarekomponenten für SILAB in C++. Entwicklerpaket MATLAB/SIMULINK Wie ‘Entwicklerpaket DPU’, nur dass die Softwarekomponenten in MATLAB/SIMULINK entwickelt werden und mit dem RealtimeWorkshop in eine SILAB-DPU kompiliert werden. Entwicklerpaket ODB API, mit der effiziente Abfragen von Objekten der simulierten Welt gemacht werden können. Entwicklerpaket CAN API, mit der sehr einfach CAN-bus basierte Hardwarekomponenten in die Simulation eingebunden werden können. Erweiterte Soundsimulation Realistische Simulation von Motor-, Roll- und Windgeräuschen eines 5er BMWs. Fahrdynamik mstVeda Fahrdynamiksimulation eines BMW520i. Fahrdynamik CarSim Integration der Fahrdynamik aus CarSim. Fahrdynamik IPG CarMaker HMI Integration der Fahrdynamik aus IPG CarMaker. Generierung Videos Die Anzeige eines Bildgenerators wird mit frei wählbarer Kameraperspektive als digitales Video abgespeichert. Die Kameraperspektive sowie das Starten und Beenden der Aufzeichnung kann dabei abhängig vom Szenario erfolgen. digitaler Paket, mit dem sehr einfach HMIs (z.B. Anzeigen und Bedienkomponenten von Fahrerassistenzsystemen oder Kombi-Displays bestimmter Fahrzeugtypen) simuliert werden können. Tabelle 3.1: Verfügbare Silab-Pakete 3.5. AutoSim 11 der Editor generiert daraus die Strecke. Auch Events können hier leicht definiert werden. Es steht auch eine C++ API und eine Matlab/Simulink Target zur Verfügung, mit dem die Silab-Software erweitert werden kann. Die Software Komponenten bestehen aus sogenannten DPUs (data processing units). Sie verfügen über Ein- und Ausgänge, über die sie miteinander verschaltet werden. So verfügt z. B. die DPU ‘Fahrdynamik’ über Eingänge von der Steuerung und der Datenbasis sowie über Ausgänge, ebenfalls für die Datenbasis und die Visualisierung. So kann z. B. die Steuerung leicht durch eine andere ersetzt werden. Die DPUs können zur Lastverteilung auf verschiedenen Rechnern ausgeführt werden. Die Kommunikation findet über Netzwerk statt. Hardware kann über CAN, TCP/IP, UDP, serielle oder parallele Kommunikation angesprochen werden. Da kein Zugriff auf den Quellcode besteht, kann nicht alles von uns geändert werden. Die Grafikqualität ist dadurch von uns nicht beeinflussbar. Abbildung 3.2: Screenshot aus Silab [13] 3.5 AutoSim AutoSim [1] ist eine norwegische Firma, die Fahrsimulatoren und Simulationssoftware herstellt, entwickelt und vermarktet. Ein im Einsatz befindlicher Fahrsimulator wurde uns von einem der Entwickler persönlich beim Fraunhofer Institut in Stuttgart vorgestellt. Hier bot sich uns das Bild, 12 3. Analyse bestehender Fahrsimulatoren Abbildung 3.3: Silab Streckeneditor (Editierbarkeit Area) [13] dass das System trotz jahrelangem Einsatz immer noch nicht vollständig ausgereift war. Ein gravierender Fehler äußerte sich z. B. in einem, von der Strecke abhebenden, computergesteuerten Auto. Die Szenarienerstellung ist auch sehr aufwändig und die dafür benötigte Zeit wurde vom Entwickler mit mehreren Monaten angegeben. Für neue Strecken muss zuerst eine 3D-Repräsentation erstellt werden, die danach mit Meta-Daten angereichert wird. 3.6 STISIM Um uns die Simulatiossoftware ‘STISIM Drive™’ [14] anzuschauen, besuchten wir ein Industrieunternehmen, welches das System zur Erprobung von Navigationsgeräten einsetzt. Verglichen mit den meisten anderen Systemen war die Grafik schlecht. Die Auflösung war niedrig und auch die Texturen ließen zu wünschen übrig. Außerdem war sie fest auf drei Ansichten ausgelegt, eine Änderung wäre mit unverhältnismäßig hohem Aufwand verbunden. Auch in anderen Bereichen wäre viel Nacharbeit nötig. So hat z. B. der von uns besuchte Kunde den Sound und den Verkehr selbst neu implementiert, was nicht für die Qualität der mitgelieferten Komponenten spricht. Für die Software gibt es nur einen einzigen Ansprechpartner, wodurch es bei hoher Auslastung zu Verzögerungen kommen kann. 3.7. SCANeR™ 3.7 13 SCANeR™ Bei der Software SCANeR™[12] handelt es sich ebenfalls um ein kommerzielles Produkt. Es wird von der französischen Firma Oktal entwickelt und vertrieben. Wir konnten uns bei der ‘Vehicle Dynamics Expo’ in Stuttgart, bei der auch Oktal vertreten war, persönlich ein Bild von der Software machen. Dieser Fahrsimulator ist einer der umfangreichsten und am weitesten entwickelten der von uns betrachteten. Jedoch ist er, selbst mit einem großen Rabatt für Universitäten, auch der teuerste. Dieses System hatte die beste Grafikausgabe, die wir gesehen haben. Eine hohe Auflösung, gute Texturen, dynamische Schatten und andere Effekte trugen zu einem realistischen Eindruck bei. Auch die Skriptingmöglichkeiten schienen ausgereifter als bei der Konkurrenz. Es bot auch als einziges der Fahrsimulatoren Autoanhänger oder am Auto befestigte Gegenstände, wie z. B. ein Surfboard, an. Das System ist ähnlich der anderen kommerziellen Simulatoren in Module/Pakete unterteilt. Abbildung 3.4: Screenshot aus SCANeR™[11] 3.8 Zusammenfassung Am Ende entschieden wir uns dafür, ‘Grand Theft Auto: San Andreas’ mit der Modifikation ‘Multi Theft Auto’ zu verwenden. Hier boten sich für uns die meisten Vorteile zu einem vernünftigen Preis. Eine Zusammenfassung der Vor- und Nachteile bietet Tabelle 3.2. 14 3. Analyse bestehender Fahrsimulatoren GTA verfügt über den größten Streckenumfang mit der besten Qualität. Die Grafik kann mit den dedizierten Fahrsimulatoren mithalten. Durch MTA steht eine gute Erweiterbarkeit und Skriptbarkeit zur Verfügung. Mit dem Mod ist es für uns außerdem möglich mehrere Ansichten zu verwenden. + 0 Sound Unterstützung G25 b a + - Preis + + Erweiterbarkeit SourceCode erweiterbar erweiterbar Multiplayer - Editor N/A ++ 0 Grafik Anzahl Views 0 + Verkehr - ++ - ++ +++ 3+ - + --- ++ ++ ++ Silab ++ - + ++ 3+ + + -- ++ ++ + - ++ + 3 + - - + ++ + Autosim STISIM + + Tabelle 3.2: Vergleich der Systeme -/+ ++ + 1b 1a + 0 + ++ ++ + +++ + ++ 0 0 Strecken Qualität Strecken Umfang Virtual Env Lab VDrift GTA/MTA N/A ++ +++ - ++ +++ 3+ + + ---- +++ ++ +++ SCANeR™ +++ 3.8. Zusammenfassung 15 16 3. Analyse bestehender Fahrsimulatoren 4. Arbeit mit GTA Dieses Kapitel beschäftigt sich mit der, von uns zur Verwendung ausgesuchten, Software Grand Theft Auto: San Andreas mit der Netzwerkerweiterung Multi Theft Auto. 4.1 Aufbau der Infrastruktur Da die von uns verwendete Software es uns nicht gestattet mehrere Ansichten auf einem einzelnen PC zu realisieren, griffen wir auf die Netzwerkfähigkeit von MTA zurück. Dabei ist für jede Ansicht ein Rechner als Client vorgesehen. Somit ist die Anzahl der Ansichten skalierbar, angefangen von nur einer Front-Projektion, bis zu einer 360° Rundumansicht und mehreren zusätzlichen Beobachtern. Je nach verfügbaren Ressourcen kann der Server zusätzlich auf einem der ClientRechner laufen, oder aber auf einem dedizierten System. Das Verwenden eines dedizierten Rechners erlaubt es auf einfachem Wege, während der Versuche Befehle über die Konsole auszuführen. Läuft die Konsole stattdessen auf dem selben Rechner wie der Client, muss MTA geschlossen werden, um Zugriff zu erhalten. 18 4.2 4. Arbeit mit GTA Installation Um GTA verwenden zu können, ist es zuerst notwendig, alle benötigten Komponenten auf den verschiedenen Rechnern zu installieren. Als Betriebssystem wird Windows auf den Computern zum Laufen gebracht. Danach folgt die Installation von GTA und MTA. 4.2.1 Lauffähiges Windows unter X Rechnern Laut den Systemanforderungen [4] läuft GTA:San Andreas sowohl unter Windows 2000 ab Service Pack 1 als auch unter Windows XP ab Service Pack 1. Da auf dem, zuerst von uns verwendeten und später eingegliederten, Computer bereits Windows XP installiert war, entschieden wir uns aus Konsistenzgründen die weiteren Rechner auch damit auszustatten. Sollte nur eine Linux-Umgebung zur Verfügung stehen, sollte es auch möglich sein, GTA/MTA mit Wine zu verwenden [9]. Zusätzlich zu Windows werden noch einige Treiber benötigt. Diese befinden sich auf Datenträgern, die mit der Hardware geliefert wurde. Auch der Logitech Profiler muss installiert werden. Mit diesem Programm lassen sich diverse Einstellungen an der Steuerung ändern. Hier kann z. B. die Pedaleinstellung geändert werden - für unseren Aufbau mit MTA ist die Einstellung der kombinierten Pedale erforderlich, hierbei werden das Gas und die Bremse auf eine Achse gelegt. 4.2.2 GTA installieren GTA:SA lässt sich ohne Probleme von der DVD installieren. Eine vollständige Installation ist empfehlenswert, da dadurch nach dem Downgrade (siehe 4.2.3) keine DVD mehr zum Starten erforderlich ist. Bei dieser Installationsart werden, zusätzlich zur Standardinstallation, alle Audio-Dateien auf die Festplatte kopiert. Ohne diese Audio-Dateien beendet sich GTA:SA kurz nach dem Start ohne Fehlermeldung. Sollte noch kein DirectX 9.0 auf dem Rechner installiert sein, bietet es sich an, dieses auch von der GTA-DVD zu installieren, da es mitgeliefert wird. 4.2.3 Downgrade Nachdem GTA installiert ist, muss es, sofern es sich nicht bereits um die Version 1.0 handelt, downgegradet werden[6]. Der Downgrade ist erforderlich, da Rockstar Games die Möglichkeit des Einbindens von Modifikationen (Mod) in späteren Versionen unterbunden hat. Dies geschah, nachdem der Mod ‘Hot Coffee’ [16] Aufsehen erregt hatte und das Spiel danach in einigen Ländern nur noch an Erwachsene oder, wie in Australien, gar nicht mehr verkauft werden durfte. Das von MTA zur Verwendung vorgeschlagene Downgrade-Tool funktioniert leider nicht, da es die Version unserer Installation nicht erkennt. Die uns zur Verfügung stehende Version ist die Deutsche 2.0. 4.2. Installation 19 Stattdessen verwendeten wir sa-downgrade patch 0.3.1.rar 1 Dieser Downgrader kommt ohne Versionscheck aus, und lässt sich somit auf unserem System installieren. Eine bereits entpackte Version befindet sich im gleichnamigen Verzeichnis auf der beigelegten CD. 4.2.4 Installation MTA Als nächstes muss MTA installiert werden. Zu Beginn unserer Arbeit verwendeten wir die ClosedSource Version 1.0-dp2.3. Da wir aber später auf die quelloffene Version umstiegen, empfiehlt sich die Installation von Release 149 der Nightly Builds, denn diese ist mit unserer kompatibel. Zum Zeitpunkt unserer Installation war es das aktuellste Release, weswegen wir uns für diese Version entschieden. Es kann auch eine neuere Version gewählt werden, falls später entwickelte Funktionen benötigt werden, jedoch wurde diese von uns noch nicht getestet. Eine Auflistung der verfügbaren Nightlys findet sich unter: http://nightly.multitheftauto.com/ Zusätzlich zu diesen tägliche erstellten Kompilaten werden noch weitere Dateien benötigt. Diese befinden sich in einem separaten Download, da sie sich nur selten ändern und somit Platz und Bandbreite gespart werden kann, indem sie nicht bei jedem Update erneut geladen werden müssen. Diese Dateien sind auf der Downloadseite der GoogleCode-Seite aufgelistet.2 Build 149 und die passenden ‘Data files’ befinden sich auch auf der beigelegten CD. 4.2.5 Installation unseres Versuchsszenarios Bevor wir MTA verwenden können, sind Ressourcen notwendig, in denen mit verschiedenen Skripten Spielmodi oder Erweiterungen definiert sind. Um unser selbst erstelltes Versuchsszenario in MTA einzubinden, muss der Ordner ‘experiment’ vom CSL SVN Server3 oder von unserem Datenträger in den ‘resourcen’-Ordner des MTA-Servers (bei uns unter: C:\Programme\MTASanAndreas\server\mods\deathmatch\ resources\) eingefügt werden. Das Skript besteht aus einer ‘meta.xml’, einigen Bildern und den beiden Skriptdateien. In der XML-Datei müssen alle Dateien aufgeführt werden, die verwendet werden sollen. Außerdem ist hier definiert, ob es sich bei den Skripts um Clientoder Serverskripts handelt (siehe 4.3.1). 4.2.6 Umgebung starten (mehrere Rechner / Server) Nachdem die Installation durchgeführt wurde, ist es möglich MTA zu verwenden. Um Einstellungen, wie die Auflösung, zu ändern muss jedoch GTA gestartet werden, da MTA keine Oberfläche dafür bietet. Es empfiehlt sich hier auch die Radiolautstärke zu minimieren. Wenn alle Optionen den Wünschen entsprechend gesetzt sind, können wir unsere Umgebung starten. Hierfür starten wir zunächst ‘MTA Server’. 1 http://files.filefront.com/sa+downgrade+patch+031rar/;12833867;/fileinfo.html 04.03.09 http://code.google.com/p/multitheftauto/downloads/list 3 svn+ssh://csl.ira.uka.de/svn/driving-simulator-gta 2 20 4. Arbeit mit GTA Nachdem der Server vollständig geladen ist, muss in der Konsole ‘start experiment’ eingegeben und mit Enter bestätigt werden. Durch diesen Befehl werden die Skripte aus dem Ordner ‘experiment’ gestartet, in denen unsere Versuchsszenarien definiert sind. Nachdem der Server wie in Abbildung 4.1 den Start positiv mit “Resource ‘experiment’ started” quittiert hat, können die Clients verbinden. Die neun in diser Abbildung zu sehenden Fehlermeldungen können ignoriert werden. Diese Fehler treten auf, wenn nicht die zusätzlich erhältlichen offiziellen Ressourcen installiert werden, sie werden jedoch nicht für unser System benötigt. Abbildung 4.1: MTA Server Konsole Auf jedem der verwendeten Simulationsrechner wird nun MTA ausgeführt. Die Intros müssen mit einigen Mausklicks übersprungen werden. Ohne das Überspringen bleibt nur ein schwarzer Bildschirm zu sehen und die Rechner blieben bei uns auch vereinzelt hängen. Bei den Intros und Ladebildschirmen handelt es sich um von uns erstellte Bilder. Die originalen Bilder wurden von uns angepasst, damit die Probanden einen besseren Eindruck von unserem System bekommen. Auch der Ladesound wurde von uns geändert, da die ursprüngliche Musik als störend empfunden wurde. Die von uns veränderten Dateien liegen auf dem CSL SVN4 und der CD im Ordner ‘gtabranding’ bei. Vor dem Verbinden sollte sichergestellt werden, dass die einzelnen Clients über individuelle Spielernamen verfügen, da der Verbindungsaufbau sonst wegen einer Namenskollision abgebrochen wird. Der Name lässt sich im ‘SETTINGS’ Menü ändern. In dem nach dem Start erscheinenden Menü muss ‘QUICK CONNECT’ gewählt und in der darauffolgenden Eingabemaske die Adresse, der Port und gegebenenfalls 4 svn+ssh://csl.ira.uka.de/svn/driving-simulator-gta/gtabranding 4.2. Installation 21 ein Passwort des Servers eingegeben werden. Die Adresse lässt sich in der Eingabeaufforderung von Windows durch den Befehl ‘ipconfig’ ermitteln. Der Port wird beim Start des MTA-Servers angezeigt und ist als Standard auf ‘22003’ gesetzt. Abbildung 4.2: MTA Client Verbindungsdialog Nach Änderungen an den Server-Ressourcen wird beim nächsten Verbinden der Download der geänderten Dateien angezeigt. Danach bleibt ein schwarzer Bildschirm zu sehen und Eingaben zur Wahl des Ansichtmodus sind möglich: Zur Unterscheidung der verschiedenen Ansichten muss nach dem erfolgreichen Verbinden eine Zahl zwischen 1 und 3 gedrückt werden. Die 1 gibt dem Client die Rolle des Fahrers, er hat Kontrolle über die Steuerung und die mittlere der drei Ansichten. Die 2 ist für die linke Ansicht und 3 für die rechte. 22 4.3 4. Arbeit mit GTA Szenario Für unsere ersten Versuche mit GTA verwenden wir die später vorgestellte API, um die Probanden eine vorgegebene Strecke entlangfahren zu lassen. Dabei gibt ihnen ein, als Wizard fungierender, Beobachter Informationen, die später mit einem Fragebogen abgefragt werden, um die kognitive Leistung zu messen. Der Wizard befindet sich in einem anderen Raum und ist auch als Client mit dem System verbunden. Beim Wizard handelt es sich um einen Menschen, der vom Probanden als artifizielles System wahrgenommen werden soll. Nach dem connecten wählt er seine Rolle durch Tastendruck aus. Er sieht, wo sich der Fahrer momentan befindet, bekommt aber noch zusätzliche Informationen eingeblendet, die ihm anzeigen, welche Anweisungen er dem Probanden geben muss. Der Proband und der Wizard können über einen Audio-Chat miteinander kommunizieren, wobei die Stimme des Wizard verstellt wird, damit er mehr nach einem Programm als nach einem Menschen klingt. Zusätzlich sieht der Wizard den Fahrer über eine Webcam. Vor der festgelegten Strecke wird dem Fahrer die Möglichkeit gegeben, mehrere Minuten lang nach eigenem Belieben durch die Welt zu fahren, um sich mit dem Simulator vertraut zu machen. Als Startpunkt wurde eine ebene Strecke in einer der Städte gewählt. Nach der freien Fahrt geht es mit dem eigentlichen Versuch los. Das Fahrzeug wird in ein neue, dem Probanden noch unbekannte Gegend platziert. Als erstes Ereignis kommt dem Fahrer ein Auto entgegen, wenn er auf die erste vor ihm liegende Straße einfährt. Zu den weiteren Events zählen auf der Straße stehende oder gehende Fußgänger, oder andere plötzlich auftauchende Fahrzeuge. Abbildung 4.3: GTA Projektion für einen Versuchslauf In diesem Abschnitt wird zusätzlich noch konkret auf die von uns erstellten LUASkripte eingegangen. 4.3. Szenario 4.3.1 23 Szenarioerstellung Das Szenarioskript besteht aus zwei Textdateien, ‘experiment client.lua’ und ‘experiment server.lua’. Die beiden Dateinamen sind in der Datei ‘meta.xml’ definiert, welche beim Starten des Experimentes eingelesen wird. Eine Einführung in die Skripting-Umgebung ist unter http://development.mtasa.com/index.php?title= Scripting Introduction zu finden. Wichtige Konzepte sind die Verwendung von Events, die auslösen, wenn bestimmte Ereignisse stattgefunden haben, Keybindings, mit denen Tastatureingaben abgefragt werden und colCircles, die als Auslöser für Events dienen, wenn der Fahrer festgelegte Bereiche durchquert. 4.3.1.1 Client Das Client-Skript wird beim Verbinden von dem Server auf den Client kopiert und dann dort ausgeführt. Deshalb werden die Funktionen, welche für die Grafikausgabe verantwortlich sind, dort definiert. ‘onClientRender’ ist z. B. nur im Client abrufbar, da sonst alle Berechnungen mehr als 30x in der Sekunde mit dem Server ausgetauscht werden müssten und die Antwort erst beim nächsten Frame ankommen würde. Zu Beginn des Skriptes werden zunächst alle Bildschirmeinblendungen (HUD), wie z. B. Uhrzeit, Lebenspunkte oder Radar ausgeblendet. Sie werden nicht benötigt, da sie unrealistisch sind, außerdem könnten sie den Fahrer irritieren. Die Funktion, mit der die Kameraposition angepaßt wird, ist hier ebenso definiert. In ‘updateCameraPos()’4.1 wird die aktuelle Position und Rotation des virtuellen Fahrers abgefragt und ein Target-Punkt errechnet, auf den die Kamera gerichtet ist. Diese Informationen werden über ‘setCameraMatrix’ an das Programm zurückgegeben. function updateCameraPos ( ) l o c a l pX , pY , pZ = g e t E l e m e n t P o s i t i o n ( d r i v e r ) l o c a l rX , rY , rZ = g e t V e h i c l e R o t a t i o n ( getPlayerOccupiedVehicle ( driver ) ) l o c a l cosA = math . c o s ( math . rad (360− rZ ) ) l o c a l sinA = math . s i n ( math . rad (360− rZ ) ) l o c a l sinB = math . s i n ( math . rad (360−rX ) ) l o c a l t a r g e t X = sinA ∗ 20 l o c a l t a r g e t Y = cosA ∗ 20 l o c a l t a r g e t Z = −sinB ∗ 20 setCameraMatrix (pX , pY , pZ + 1 . 0 , pX + targetX , pY + targetY , pZ + t a r g e t Z + 1 . 0 ) end Listing 4.1: Beispiel einer LUA-Funktion Im Client-Skript sind auch die Zusatzinformationen für den Wizard definiert. So werden auf seinem Bildschirm Pfeile zur Orientierung angezeigt, wenn der Fahrer in die angegebenen Bereiche fährt. 4.3.1.2 Server Über das Server-Skript wird als erstes die Rolle des Clients definiert. Mögliche Rollen: Fahrer, Blick nach links und rechts, oder Wizard. Dazu werden die Tasten 1 bis 24 4. Arbeit mit GTA 6 mit der Funktion ‘setPlayerRole’ verknüpft, sobald ein Client verbunden ist. Beim Druck auf die ‘1’ wird das Team ‘Fahrer’ erstellt, falls es noch nicht existiert, und ein Spieler wird erstellt. Ähnliches geschieht bei den anderen Tasten. Wenn einer der Spieler erstellt wird, wird über das Event ‘onPlayerSpawn’, ‘setObserver’ aufgerufen. Hier wird zunächst die Uhrzeit und das Wetter gesetzt und dann die Spielzeit verlangsamt, damit nicht schon nach kurzer Zeit die Nacht hereinbricht. Ohne die Verlangsamung dauert ein Tag im Spiel 24 echte Minuten. Wenn das Team des erstellten Spielers ‘Fahrer’ entspricht, wird • ein Fahrzeug erstellt / umpositioniert • die Türen verschlossen, • der Fahrer ins Auto gesetzt • und die Geschwindigkeitsanzeige initialisiert. Bei der Umpositionierung das Fahrzeugs, wird es zunächst kurz angehoben, da es ansonsten zu Fehlern kommen kann. Dies hat mit der Kollisionsberechnung zu tun, weil ohne das Anheben die Stoßdämpferausdehnung zu abrupt geändert wird und das Fahrzeug dadurch in die Luft katapultiert wird. Als Fahrzeug wählten wir aus den verfügbaren Modellen das Taxi. Es hatte bessere Fahreigenschaften als die meisten anderen Autos, z. B. waren die Stoßdämpfer nicht zu weich eingestellt und es war gut kontrollierbar. Um das Taxi jedoch noch weiter zu verbessern, nahmen wir einige Änderungen in der ‘handling.cfg’ aus dem GTA ‘data’ Ordner vor. Die maximal Geschwindigkeit wurde reduziert, der Luftwiderstand reduziert und die Bremse abgeschwächt. Die in 4.3.2 beschriebene Logfunktion wird auch im Server-Skript definiert. 4.3.2 Szenarioauswertung Um eine spätere Auswertung zu ermöglichen, werden regelmäßig die Daten des Fahrers gespeichert. Bei diesen Daten handelt es sich um die Position und Rotation des Fahrzeuges in der virtuellen Welt. Hierfür werden beim Aufruf von ‘startLog’ Log-Dateien und ein Filehandler darauf erzeugt. Die Dateien haben im Namen den Startzeitpunkt in der Form“player log ’Jahr’’Monat’-’Tag’-’Stunde’-’Minute’-’Sekunde’.txt”. Nach der Dateierstellung wird ein Timer gestartet, mit dem alle 100 Millisekunden die gewünschten Parameter geschrieben werden. Zusätzlich zur Position wird die Geschwindigkeit und die genaue Zeit zur späteren Synchronisation gespeichert. Beim Verlassen des Fahrer-Clients wird der Timer beendet und der Filehandler geschlossen. 4.4. Pre Open-Source 4.4 25 Pre Open-Source Zu beginn unserer Arbeit handelte es sich bei MTA noch um ein Closed-Source Projekt. Im Laufe unserer Arbeit änderte sich dies und wir konnten die in 4.5 vorgestellten Änderungen implementieren. Da wir jedoch zunächst keinen Zugriff auf den Quellcode von MTA hatten, mussten Probleme, wie das Nichtvorhandensein von einer Lenkradunterstützung und die Implementierung von mehreren Ansichten, auf anderen Wegen gelöst werden. 4.4.1 Integration Lenkrad MTA enthielt keine Unterstützung für DirectInput und somit für Joysticks/Lenkräder/Gamepads, weswegen die Entwickler XPadder vorschlagen [7], um dennoch in der Lage zu sein, nicht auf eine Tastatursteuerung ausweichen zu müssen. Durch dieses Programm wird jedoch nur eine digitale Steuerung wie auf der Tastatur ermöglicht, es gibt also keine Abstufungen bei der Lenkung und dem Gas. In Tests zeigt sich die Lösung als unbrauchbar, da ein leichter nicht von einem starken Lenkradausschlag zu unterscheiden war. Als nächstes probierten wir den Pinnacle Game Profiler aus. Hiermit war es möglich bis zu 9 Segmente einer Lenkradachse auf verschiedene Tasten zu legen. Jedoch gab es nur die Möglichkeit, diese Events über ein LUA-Skript auszuwerten. Hier zeigte sich das Problem, dass die Events von MTA aus zu selten - das minimale Timerinterval liegt bei 50ms - gepollt wurden und es außerdem zu wenige Segmente gab, weswegen die Steuerung sich nach wie vor sehr ruckelig anfühlte. Um die Probleme zu umgehen, schrieben wir ein externes Programm, das die Lenkradachsen über Pulsweitenmodulation (PWM) in Tastaturevents umwandelt. Bei PWM wird das Zeitverhältnis zwischen zwei Zuständen, in diesem Fall ‘Taste gedrückt’ und ‘keine Taste gedrückt’, so angepasst, dass es im Durchschnitt der Auslenkung der Lenkradachse entspricht. Als Grundlage wurde das dem DirectX SDK als Beispiel beiliegende Programm zum Joystickinfo auslesen verwendet. Es wurde dahin gehend erweitert, dass es über ‘keybd event’ virtuelle Tastendrücke an Windows weitergibt. Auch wenn wir, wie später in 4.5.3 gezeigt, eine bessere Lösung für das Lenkproblem verwendeten, kann unser Tool, da es MTA umgeht, auch für andere Systeme genutzt werden, die nur eine Tastatureingabe erlauben. Um das Tool selber kompilieren zu können muss Visual C++ 2003, wie in 4.5.1.1 beschrieben, installiert werden. Es liegen jedoch auch Projektdateien für neuere Visual Studio Versionen und eine fertige ausführbare Datei auf unserer CD bei. 4.4.2 Mehrere Ansichten integrieren Die Idee bei der Integration mehrerer Ansichten ist die, dass die einzelnen Clients aus der Fahrersicht in die Richtungen der Leinwände schauen und somit die 3 Beamerbilder gemeinsam ein zusammenhängendes Bild darstellen (siehe Abb. 4.4). MTA bietet folgende integriete Kameraansichten: • Third-Person (Außenansicht auf den Spieler) 26 4. Arbeit mit GTA Abbildung 4.4: Zusammenhängende Projektion • Egoperspektive • Freie Kamera Da die einzelnen Ansichten vom selben Punkt aus in verschiedene Richtungen zeigen und nur ein Fahrer gleichzeitig an der selben Stelle existieren kann, wählten wir die freie Kamera. Die freie Kamera unterstützt keine Drehung um die Blickachse. Deshalb kann es auf Strecken mit starker Steigung zu Darstellungsproblemen in der Seitenansichten kommen. Steht das Fahrzeug auf einer Steigung, so wird hier die Frontansicht darauf angepasst, die Seitenansichten zeigen jedoch weiterhin ein horizontales Bild. Diese Lösung wurde später (siehe 4.5.2) durch eine Änderung im MTA Quellcode weitgehend ersetzt. 4.5. Open-Source 4.5 27 Open-Source Die Veröffentlichung von MTA als Open-Source machte die Lösung einiger unserer Probleme überhaupt erst möglich. So war es uns zum Beispiel möglich, eine integrierte Joystick-Unterstützung zu verwenden und die Projektionsmatrix für die Ansichten zu manipulieren. 4.5.1 Installation SourceCode Die Installation der nötigen Mittel orientiert sich größtenteils an der vom den MTA Entwicklern vorgeschlagenen Vorgehensweise [5]. 4.5.1.1 Installation der Entwicklungsumgebung Um MTA aus dem Quellcode zu kompilieren wird Visual C++ aus der Visual Studio 2003 Familie benötigt. Es existieren zwar auch Visual Studio 2005 Projektdateien, jedoch ließen sich diese nicht von uns zur Ausführung bringen, selbst nachdem wir sie mit einigen Anpassungen zum fehlerfreien Kompilieren gebracht hatten. Falls zu einem späteren Zeitpunkt diese Fehler von den Entwicklern gelöst sein sollten, wäre es auch möglich, anstatt das komplette Visual Studio 2003 zu installieren, auf das kostenlos erhältliche Visual C++ Express zurückzugreifen. Da MTA einige Funktionen von DirectShow verwendet, muss das Platform SDK installiert werden. In der Vergangenheit war DirectShow ein Bestandteil von DirectX, ist jetzt jedoch nur noch im Platform SDK oder im Windows SDK enthalten. Beim Ausführen des Setups können alle anderen Komponenten weggelassen werden (siehe Abb. 4.5), die benötigte Größe des Downloads und des verwendeten Festplattenplatzes wird dadurch erheblich reduziert. Anstatt 1,05GB werden nur noch 60MB benötigt. Abbildung 4.5: Installation der DirectShow-Komponenten des Platform-SDK 28 4. Arbeit mit GTA Zusätzlich wird das DirectX 9 SDK von Microsoft benötigt. In den neusten SDKs befinden sich keine DirectX 8 Header-Dateien mehr, weswegen auf eine ältere Version, zum Beispiel vom August 2008, zurückgegriffen werden sollte. Nachdem alle SDKs installiert wurden, müssen noch die Include-Pfade in Visual C++ angepasst werden. Eigentlich sollten diese bereits richtig gesetzt sein, was auf unseren Systemen jedoch nicht der Fall war. Im Falle des Platform-SDKs kann es reichen, ‘register paths’ auszuführen. Ansonsten sollten die VC++ Projektordner um die Include- und Library-Pfade des Platform- und DirectX-SDK erweitert werden (siehe Abb. 4.6) Abbildung 4.6: Include- und Library-Pfade includes: C:\Programme\MircosoftPlatformSDKforWindowsServer2008R2\include C:\Programme\MircosoftSDKs\Windowsv6.0A\include C:\Programme\MircosoftDirectXSDK(August2008)\include libs: C:\Programme\MircosoftPlatformSDKforWindowsServer2008R2\lib C:\Programme\MircosoftDirectXSDK(August2008)\lib\x86 4.5.1.2 SVN Source Code Nachdem die Umgebung installiert ist, muss der MTA Quellcode auf den Computer kopiert werden. Die Quellen liegen in einem von GoogleCode gehosteten SVN. Das Herunterladen geschieht mit dem kostenlos erhältlichen TortoiseSVN5 als Subversionclient, welches dazu installiert werden muss. Zunächst erstellen wir den Ordner ‘source’ auf C: . Hier checken wir http://multitheftauto.googlecode.com/svn/trunk/ in den Ordner C:\source\trunk aus. Dies ist der Großteil der benötigten Quellen. Danach wird http://multitheftauto.googlecode.com/svn/vendor/ nach C:\source\trunk\vendor ausgecheckt. Hier befinden sich einige Bibliotheken von Drittanbietern, die für das Kompilieren erforderlich sind. 5 http://tortoisesvn.net/ 4.5. Open-Source 29 Zusätzlich zu den Dateien aus den Repositories werden noch weitere Abhängigkeiten benötigt. Diese finden sich auf der Google Code Seite von MTA unter den Downloads. Die erforderliche Datei heißt multitheftauto deps-rXXX.exe. 4.5.1.3 Patch Als nächstes spielen wir die von uns erstellten Patches ein, in denen die in den nächsten Abschnitten beschriebenen Änderungen auf die Originalquellen angewandt werden. Die dafür benötigten Diff-Dateien sind im CSL SVN6 oder auf unserer CD zu finden. Mit der Datei ‘proj path patch.diff’ die in 4.5.1.4 beschrieben ist, wird der Deploy-Prozess vereinfacht, indem weniger Schritte bei Änderungen erforderlich sind. In ‘mta patch.diff’ wird zum einen der Joystick Support (siehe 4.5.3) für unsere Bedürfnisse angepasst. Zum Anderen befinden sich darin die Änderungen für die Kamera Projektion (siehe 4.5.2). 4.5.1.4 Compile, Deploy and Run Nachdem alle erforderlichen Dateien vorhanden sind, kann nun kompiliert werden. Dazu wird entweder die gesamte ‘Solution’ erstellt, oder es wird bei Änderungen nur ein Unterprojekt neu erstellt. In den originalen Projekteinstellungen für die Nightly-Konfiguration liegen die Ausgabepfade in dem Unterordner ‘./output’ und man muss die darin befindlichen Dateien zur Verwendung in die entsprechenden Ordner kopieren. Um diesen deployProzess zu vereinfachen, haben wir die Outputpfade mit unserem Patch angepasst, damit alle Dateien beim Linken gleich in den richtigen Ordnern erstellt werden. Zusätzlich haben wir für die beiden Ansichten Rechts und Links zwei eigene Konfigurationen erstellt, bei denen die Dateien auf die als Netzlaufwerke verbundenen Verzeichnisse der beiden Computer geschrieben werden. Die Netzlaufwerke müssen dabei folgendermaßen mit Schreibzugriff verbunden sein: Rechner rechts ‘c:\Programme\MTA San Andreas’ -> y:\ Rechner links ‘c:\Programme\MTA San Andreas’ -> z:\ Wenn man nun als Konfiguration ‘Nightly rechts’ oder ‘Nightly links’ wählt und das Projekt erstellen lässt, werden die entsprechenden Dateien mit den verschiedenen integrierten Ansichten auf den PCs erstellt und können gestartet werden. Bisher haben wir nur die Zielpfade für ‘Client - Core’ für die beiden zur Seite projizierenden Rechner angepasst. Hier finden nämlich die Berechnungen für die Kameramatrizen statt. Wenn in Zukunft auch Unterschiede in anderen Unterprojekten implementiert werden, müssen die anderen Pfade auch angepasst werden. Unter Umständen sind auch andere Netzlaufwerke einzurichten, wenn sich diese Änderungen auf Dateien im GTA-Ordner beziehen. In diesem Fall kann z. B. : Rechner rechts ‘c:\Programme\GTA San Andreas’ -> u:\ Rechner links ‘c:\Programme\GTA San Andreas’ -> v:\ verbunden werden. Falls noch Änderungen am Quellcode vorgenommen werden müssen, ist es unter Umständen nötig, MTA neu zu starten. Bei Änderungen in den Unterprojekten, 6 svn+ssh://csl.ira.uka.de/svn/driving-simulator-gta/mta patch 30 4. Arbeit mit GTA deren Namen mit Server* beginnen, muss der MTA Server geschlossen werden, um die verwendeten Dateien freizugeben. Bei den anderen Paketen reicht es, den Client vorher zu beenden. 4.5.2 Implementierung der Kameraansicht Da die LUA-Implementierung der Kameraansichten starken Limitierungen unterlag, änderten wir unser Vorgehen komplett zu C++. Hier hatten wir die Möglichkeit, direkt auf die Projektionsmatrizen zuzugreifen und hatten zusätzlich eine flüssigere Darstellung. Die erste Änderung besteht darin, dass wir für die Seitenansichten die Blickrichtung jeweils gedreht haben. Hierzu haben wir in der Datei ‘CClientCamera.cpp’ die Verarbeitung der fixierten Kamera geändert. Je nachdem mit welchen Compilerparametern für die jeweiligen Rechner kompiliert wird, wird der Blickpunkt um 70° nach rechts oder links angepasst. Dieser Winkel wurde gewählt, da die Ansichten im Widescreenmodus diesen Blickwinkel haben. Die zweite Änderung bewirkt, dass der Fahrer nicht mehr die ganze Zeit das Gefühl hat, einen Berg hinaufzufahren. Dies wird durch eine Positionsverlagerung des Horizontes auf Kopfhöhe erreicht. Abbildung 4.7: Auswirkung unseres Patches auf die Spielgrafik In Direkt3D ist der Renderingprozess als Pipeline aufgebaut[17]. In dieser wird aus einer dreidimensionalen Szene ein zweidimensionales Bild erstellt. Direct3D benutzt dabei drei Transformationen, um 3D Koordinaten zu Pixelkoordinaten umzuwandeln. Die Transformationen sind Welt-Transformation, View-Transformation und Projektions-Transformation. Diese sind durch Matrizen repräsentiert und werden nacheinander auf die Koordinaten in der Form (x,y,z) angewandt. Unsere Änderungen setzen nach der View-Transformation an, da hier das Koordinatensystem dem der Kamera entspricht (0,0,0 entspricht also dem Zentrum der Kamera, die Blickrichtung ist entlang der z-Achse mit einer vertikalen y-Achse). So können wir leicht Objekte, die sich weiter weg von der Kamera befinden - also einen größeren z-Wert haben - nach unten verschieben. Die Anpassungen fanden in der Funktion ‘StoreTransform’ in der Datei ‘CDirect3DData.cpp’ statt. Diese Datei gehört zu dem Projekt ‘Client - Core’. Diese Funktion wird von GTA aufgerufen, wenn Transformationsmatrizen gespeichert werden, um sie an die Grafikkarte weiterzugeben. 4.5. Open-Source 31 Mittels einer Scherungsoperation schoben: x11 x12 x13 x14 1 x21 x22 x23 x24 0 x31 x32 x33 x34 · 0 x41 x42 x43 x44 0 wird der projizierte Bildausschnitt vertikal ver0 1 t 0 0 0 1 0 x11 0 0 x21 = 0 x31 1 x41 x12 + x13 ∗ t x22 + x23 ∗ t x32 + x33 ∗ t x42 + x43 ∗ t x13 x23 x33 x43 x14 x24 x34 x44 Der Parameter t gibt die Stärke der Scherung an. Wir wählten t=-0.1 da dies den Horizont in Augenhöhe setzt. Projektionskegel y y z Kamera z Kamera Abbildung 4.8: Änderung des Projektionskegels 4.5.3 Joystick Support In der von uns verwendeten SVN Revision 149 von MTA existierte bereits ein grundlegender Joystick Support, durch einen Bug in der Implementierung war es jedoch nicht möglich, das G25 Lenkrad von Logitech zu verwenden. In der Implementierung wurden nicht alle verfügbaren Achsen abgefragt, sondern nur die Achsen bis zur ersten nicht vorhandenen, da das Polling an der Lücke abbrach. Außerdem wurde nur eine der beiden Slider abgefragt. Bei Slidern handelt es sich um alle Achsen, die nach den ersten sechs Achsen (3 Richtungen + 3 Rotationen) kommen. Nachdem die Fehler beseitigt waren, war es nötig, ein Mapping für das von uns verwendete G25 Lenkrad zu erstellen. In dem Mapping werden den einzelnen Achsen die Funktionen und Wertebereiche zugeordnet. So wird z. B. ‘eJoyX’, was der Lenkung entspricht, in beide Richtungen dem ‘eLeftStickX’ zugewiesen. Durch die von uns durchgeführten Änderungen war eine analoge, d.h. flüssige und sensibel einstellbare Steuerung des Fahrzeugs möglich. Hinweis: In späteren Revisionen von MTA ist unser Patch nicht mehr notwendig und es ist auch möglich, über die MTA Settings die Achsen und Knöpfe zu konfigurieren. 32 4. Arbeit mit GTA 5. Evaluierung Um die Leistung unseres fertigen Fahrsimulators zu testen, entschieden wir uns einen Fragebogen zu erstellen. Mit diesem wollen wir in der Lage sein, das von uns modifizierte GTA, mit einem anderen System zu vergleichen. Als Referenzsystem wählten wir das Spiel “Need for Speed: Underground (NfS)”. Um Vergleichbarkeit zu gewährleisten wurden beide Systeme mit identischem Hardwareaufbau1 getestet. NfS hatten wir zu ersten Tests bereits auf unserem Hauptrechner installiert und Versuche in einzelnen Stadien des Aufbaus durchgeführt, um z. B. das Lenkrad zu testen. Da es sich nur um die Demo des Spiels handelt, war nur ein Teil der Strecke befahrbar. Das Spiel unterscheidet sich trotz des gleichen Aufbaus grundlegend, da es nicht alle vorhandenen Hardwarekomponenten verwenden kann. Mit NfS ist es so z. B. nicht möglich mehr als eine Ansicht zu verwenden und die befahrbare Welt ist viel kleiner. Dafür existiert eine bessere Lenkradunterstützung mit Force-Feedback. Auch autonom agierender Verkehr ist vorhanden. Im Überblick gab es also die folgenden zwei Versuche: Versuch GTA • 3 Ansichten (vorne, links und rechts) • GTA Testszenario mit wenig Verkehr • Geschwindigkeitsanzeige Versuch NfS • eine Ansicht • NfS:Underground Nachtfahrt mit Verkehr • ForceFeedback 1 Beschreibung des Hardwareaufbaus unter [18] 34 5. Evaluierung Mit Hilfe des Fragebogens wollen wir feststellen, wo die Stärken und Schwächen unseres Systems liegen. Dazu ließen wir jeden Fahrer beide Systeme jeweils 7 Minuten fahren und danach beurteilen. Die Hälfte der Probanden fuhr zuerst GTA, die andere NfS, um eine Beeinflussung der Ergebnisse, z. B. durch Gewöhnung, auszugleichen. Am Ende des Versuches bekamen die Probanden via Fragebogen folgende Fragen gestellt: 35 Fragebogen 1 Dieser Fragebogen diente zur statistischen Erfassung und Klassifizierung des Probanden. • Wie alt sind Sie? • Ihr Geschlecht? • Haben Sie Erfahrung mit Computerrennspielen? • Haben Sie einen Führerschein? • Seit wievielen Jahren haben Sie Ihren Führerschein? • Wieviel fahren Sie durchschnittlich pro Monat? • Fahren Sie hauptsächlich Ihnen bekannte Strecken? • Fahren Sie mit Navigationsgerät? • Fahren Sie überwiegend Autobahn? • Wieviele verschiedene Autos sind Sie bereits längere Zeit (min. 3 Monate) gefahren? • Welchen Fahrzeugtyp (Kleinwagen, LKW etc.) fahren Sie zur Zeit Fragebogen 2 Dieser Fragebogen diente dazu Meinungen der Probanden zu bekommen, ohne Beeinflussung durch gezielte Fragen des dritten Fragebogen. • Was empfanden Sie als besonders realistisch/unrealistisch? Pro Versuch jeweils zwei Freitexte. • Was fehlt Ihrer Meinung nach zum Vergleich mit einem echten Auto? Freitext. Fragebogen 3 • Wieviel trägt ... Ihrer Meinung nach zur Qualität eines Fahrsimulators bei? Jeweils fünfstufige Skala von “gar nicht” bis “sehr viel”. – Kraftrückmeldung des Lenkrads – Bewegung der Sitzkiste – Ansicht(Anzahl/Größe Blickfeld) – Ansicht(Qualität/Auflösung) – Fahrverhalten des Fahrzeugs – Verkehr – Umgebung in der Simulation • Wie realistisch empfanden Sie ... in Versuch 1 bzw. 2? Pro Versuch jeweils fünfstufige Skala von “gar nicht” bis “sehr viel”. – Kraftrückmeldung des Lenkrads 36 5. Evaluierung – Bewegung der Sitzkiste – Ansicht (Anzahl/Größe Blickfeld) – Ansicht (Qualität/Auflösung) – Fahrverhalten des Fahrzeugs – Verkehr – Umgebung in der Simulation • Wie realistisch fanden Sie die Sitzkiste? Fünfstufige Skala von “Videospiel” bis “echtes Auto”. • Ist Ihnen schlecht geworden? Pro Versuch jeweils fünfstufige Skala von “gar nicht” bis “sehr stark”. • Bewerten Sie die Versuche? Jeweils ein Freitext. 5.1 Ergebnis Im Laufe der Evaluierung mussten 3 der 17 Versuche vorzeitig beendet werden, da den Probanden schlecht wurde. Ein Proband musste sich sogar übergeben. Die Simulator Sickness2 tritt also auch in unserem Aufbau auf. Wir nahmen an, dass den Probanden in GTA grundsätzlich schlechter wird, als in NFS. Die Gründe dafür vermuteten wir in der umfangreicheren Simulation durch drei Ansichten und der unserer Meinung nach schlechteren Steuerung in GTA. Um das zu überprüfen führten wir einen zweiseitig, gepaarten T-Test durch. Unser Signifikanzniveau legten wir auf α = 0, 05 fest. Das Ergebnis ergab p = 0.03656. Damit ist das Ergebnis signifikant. Die seitlichen Ansichten gaben den Probanden mehr Übersicht, das wurde vorwiegend positiv empfunden. Da allerdings der Sichtbereich dadurch komplett durch die Projektion abgedeckt ist und der Proband nichts mehr von der “echten” Realität sieht, könnte dies ein Grund für die erhöhte Übelkeit beim GTA-Versuch sein. Ein weiterer Kritikpunkt beim GTA-Versuch ist das Fahr- und vor allem Lenkverhalten. Insbesondere ältere Menschen und Menschen ohne Computerrennspielerfahrung hatten Probleme das Auto unter Kontrolle zu halten. Hier entdeckten wir eine Verzögerung der Lenkübertragung zur Software. Wir vermuten, dass entweder zu gut interpoliert wird oder die Ansteuerung des Lenkrades nicht latenzfrei funktioniert. Desweiteren bietet GTA keine dynamische Kraftrückmeldung des Lenkrades, die Rückstellfeder hat also immer die gleiche Kraft unabhängig der aktuellen Geschwindigkeit. Anhand der erstellten Daten vermuten wir, dass die Simulator Sickness mit dem Alter und der Erfahrung bezüglich Computerrennspielen zusammenhängt. Wobei Alter und Erfahrung aller Wahrscheinlichkeit nach korrelieren. Einige Probanden fanden es störend, dass Elemente wie Kupplung und Schaltung vorhanden sind, jedoch nicht genutzt werden. Die Vibration des Sitzes via Bassshaker wurde - wenn Sie aktiv bemerkt wurde - als realistisch empfunden. 2 Eine durch Täuschung der Sinnesorgane hervorgerufene Übelkeit. 5.1. Ergebnis 37 Abbildung 5.1: Alter der Probanden Abbildung 5.2: Geschlecht der Probanden Abbildung 5.3: Probanden mit Erfahrung in Computerrennspielen 38 5. Evaluierung Abbildung 5.4: Die Probanden fahren vorwiegend bekannte Strecken. Abbildung 5.5: Probanden mit Führerschein Abbildung 5.6: Die meisten Probanden fahren ohne Navigationsgerät. Abbildung 5.7: Nur wenige Probanden fahren viel Autobahn. 5.1. Ergebnis Abbildung 5.8: Seit wievielen Jahren haben die Probanden einen Führerschein Abbildung 5.9: Durchschnittliche Fahrkilometer pro Monat 39 40 5. Evaluierung Abbildung 5.10: Im Schnitt “kennen” die Probanden ca 3-4 Autos. Abbildung 5.11: Die meisten Probanden fahren Kleinwagen bis Mittelklasse. 5.1. Ergebnis 41 Abbildung 5.12: GTA hat mit der dritten Ansicht überzeugt. Bei der Lenkung und dem Fahrverhalten hat NFS besser abgeschnitten. 42 5. Evaluierung Abbildung 5.13: Die Sitzkiste wurde als überwiegend realistisch empfunden. Abbildung 5.14: Bei GTA besteht erhöhte Simulatorsicknessgefahr. 6. Zusammenfassung und Ausblick Nachdem wir bestehende System untersucht und analysiert haben, waren wir in der Lage, selbst einen Fahrsimulator zu entwerfen. Diesen bauten wir mit Hilfe der uns zur Verfügung stehenden Mitteln auf. Durch diese Arbeit entstand am CSL ein funktionsfähiger Fahrsimulator, mit dem bereits Versuche durchgeführt werden. Unter anderem stehen folgende Funktionalitäten zur Verfügung: • Softwareumgebung auf Basis von GTA – Grafikausgabe einer realistischen Umgebung – 5.1 Soundausgabe – große virtuelle Welt • Ansteuerung über Spielelenkrad Logitech G25 • Drei Ansichten über Netzwerk • Szenarioskriptbarkeit Es gibt aber immer noch zahlreiche Verbesserungsmöglichkeiten: • Da die Steuerung des Fahrzeugs einer der Hauptkritikpunkte der Probanden war, sollte versucht werden diese zu verbessern. Wir vermuten, dass die Lenkung zu träge reagiert und deshalb schwer zu handhaben ist. • Zusätzlich zu einer schneller reagierenden Lenkung wäre Force-Feedback wünschenswert. Dies würde eine weitere Qualitätsverbesserung darstellen. • Es sollte auch ermöglicht werden, die 6-Gang-Schaltung und die Kupplung in der Software zu verwenden. Beide Elemente sind momentan zwar mit unserem Simulator verbunden und der Status kann abgefragt werden, jedoch gibt es in unserer Software noch keine Möglichkeit, diese Informationen zu verwenden. 44 6. Zusammenfassung und Ausblick • Der in der Sitzkiste eingebaute Tachometer könnte über eine Schnittstelle, z. B. USB, als Hardware in die Simulationsumgebung eingebunden werden. Dies würde gegenüber der Bildschirmeinblendung den Realismus erhöhen, da die Geschwindigkeitsanzeige wie in einem echten Auto wäre. • Ein wichtiger Punkt ist die Einbindung von Verkehr. Es gab bereits erste Versuche, aufgezeichneten Verkehr zu verwenden. Dieser nimmt jedoch noch keine Rücksicht auf andere Verkehrsteilnehmer. Ein autonomer Verkehr ist anzustreben. • Ein grafischer Editor könnte die Erstellung von Szenarien stark vereinfachen. Es könnte z. B. innerhalb der Software zugänglich sein und die Positionierung und Identifizierung von Objekten vereinfachen und Skripte automatisch erstellen. Literaturverzeichnis [1] Autosim. http://www.autosim.no/. [2] Fahrsimulationssoftware Silab. ProdukteDienstleistungen/SILAB/index.php.de. http://www.wivw.de/ [3] GTA III - Grand Theft Auto 3. grandtheftauto3/. http://www.rockstargames.com/ [4] GTA San Andreas: System Requirements. sanandreas/pc/. http://www.rockstargames.com/ [5] Instructions on how to compile MTA yourself. multitheftauto/wiki/HowToBuild. http://code.google.com/p/ [6] Known Issues: Does MTASA:DM work with v1.01 or v2.00 of GTA San Andreas. http://development.mtasa.com/index.php?title=Known Issues - FAQ# Does MTASA:DM work with v1.01 or v2.00 of GTA San Andreas.3F. [7] Known Issues: Gamepad Support. http://development.mtasa.com/index.php? title=Known Issues - FAQ#Gamepad support. [8] MTA - Multi Theft Auto. http://www.mtasa.com. [9] MTASA: Wine compatibility. http://mtasa.com/71.html. [10] Northeastern University Virtual Environment Laboratory. http://www.coe.neu. edu/Research/velab/index.php. [11] Oktal: SCANeR™Screenshot. http://www.oktal.fr/index.php?Page=AutoOffer. [12] SCANeR™. http://www.scanersimulation.com/. [13] Silab: Screenshots. http://www.wivw.de/ProdukteDienstleistungen/SILAB/ screenshots.php.de. [14] STISIM. http://www.stisimdrive.com/. [15] VDrift - Open Source Racing Simulator. http://www.vdrift.net. [16] Wikipedia: GTA San Andreas - Hot Coffee. http://de.wikipedia.org/wiki/GTA San Andreas#Hot Coffee. [17] Möller, Tomas und Eric Haines: Real-time rendering. Peters, 2. ed. Auflage, 2002. 46 Literaturverzeichnis [18] Reinhold, Frieder: Studienarbeit: Aufbau eines Fahrsimulators - Schwerpunkt Hardware. Universität Karlsruhe, 2009.