Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

1

16.08.2012, 19:01

Curiosity Rover Simulation

Hallo Community,

da ich die aktuelle Mars-Erkundungs-Mission der Nasa durch den Rover "Curiosity" sehr spannend finde, habe ich angefangen selbst eine kleine Simulation zu entwickeln, bei der man selbst die Rolle der Nasa Ingenieure übernehmen und als "Bodenstation" den Rover steuern kann.

Zum einen Teil besteht die Simulation aus dem "reellen" Modus, der alles so realitätsgetreu (davon bin ich zwar noch weit entfernt, aber ich habe mich an die angegebenen Daten der Nasa gehalten, z.B. dauert wenn man einen Befehl von der Komandozeile losschickt es 17 Min. bis diese der Rover "empfängt".
Der zweite Teil besteht aus einem Arcade-Modus, bei dem man verschiedene Aufgaben erfüllen muss, wie Gesteinsproben entnehmen, wobei man den Rover live (nicht zeitverzögert) mit der Tastatur (und nicht durch Scriptdateien) steuern kann.

Das Simulationsprogramm besteht aus den folgenden zwei Teilen:


  • Dem "Echtzeitansichtsfenster" bei der man den Rover live betrachten kann und sich auch frei bewegen kann. Aber eigentlich wird dieses Modul nur wirklich im Arcade-Modus gebraucht, da der Rover auch auf Befehl Fotos machen kann und diese der Kommandozentrale "zuschicken" kann

  • Dem "Kommandozentralenfenster" das Senden von Befehlsscripten an den Rover ermöglicht und die empfangenen Daten (der Messinstrumente und die empfangenen Bilder) verwaltet und auf einer provisorischen Marskarte die Position des Rovers anzeigt.
Verwendete Techniken:
-für das "Echtzeitansichtsfenster" Unity3d
-das "Kommandozentralenfenster" wurde mit Microsoft Visual C# Express erstellt
-verwendete Sprache C# (natürlich)
-Daten werden über kleine Textdateien von beiden Programmteilen ausgetauscht (ich weiß, das geht sicher besser, aber diese Lösung langt bis jetzt und ist zudem wahrscheinlich die leichteste)

Projektfortschritt
Beide Programmfenster sind (vorläufig) fertig designt und der Unity C#-Code zur Ansicht wurde bereits geschrieben
Das vorläufige Rover Modell wurde erstellt und texturiert
Aktuell arbeite ich an der Dokumentation der Scriptsprache, bevor ich mit der Umsetzung beginne.




Vielleicht war es auch ein zu großes Projekt, welches ich evtl. in ein paar Wochen wieder aufgeben werde, da es mir über den Kopf wächst, aber naja, mal sehen, vielleicht wird es ja was... Ich werde diese Seite jedenfalls regelmäßig aktualisieren.

Was haltet ihr denn so davon? Würde den jemand es dann auch mal testen wollen, oder wäre eine solche Simulation für die meisten komplett uninteressant?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MitgliedXYZ« (16.08.2012, 19:08)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

16.08.2012, 19:23

Ist das Teil aufgrund der Latenz-Zeit nicht autonom?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

3

16.08.2012, 19:28

Ist das Teil aufgrund der Latenz-Zeit nicht autonom?
Ähm was meinst du?
Ich bin leider weder Techniker, noch Informatiker, bis jetzt bin ich immer noch Schüler...
Könntest du mir deshalb erklären was du meinst?


Ach so, wenn Google recht hat meinst du dass:

Zitat

Latenzzeit, den Zeitraum zwischen einem verborgenen Ereignis und dem Eintreten einer sichtbaren Reaktion darauf, siehe Verzögerungszeit sowie speziell Verzögerung (Telekommunikation) und in der Musik: Delay (Musik)
In der Simulation werden die abgeschickten Befehle zwischengespeichert und erst 17 Minuten später ausgeführt.
Da das etwas lang ist für ein Spiel gibt es noch den Arcade-Mode, der neben einigen Missionen, und Steuerungsoptionen auch die "Sendezeit" auf 17 Sekunden reduzieren soll.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

16.08.2012, 19:43

Eben weil die Latenz-Zeit so groß ist hätte ich gedacht, dass Curiosity teilweise autonom agiert und nicht auf externe Steuerung angewiesen ist.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

5

16.08.2012, 20:44

Der macht den Grossteil seiner Arbeit sicher autonom. Die Landung wurde ja auch nicht direkt irgendwie gesteuert, sondern vorher programmiert und dann ausgeführt. Ist ja nicht so, dass man das Ding irgendwie in Echtzeit sieht und darauf reagieren könnte. ^^

Als Abstraktion kann man das aber sicher ein wenig lockerer nehmen und ihn halt direkt mit Steuerbefehlen navigieren.
Anderseits wäre es auch eine Möglichkeit das so zu machen, dass man Wegpunkte definiert und dann Ausweichmanöver, Alternativrouten etc. skripten muss und dann alles raufladen und dann sieht man die Simulation. Das wäre näher bei der echten Situation. Das ganze kann man dann auch super in ein interessantes Spiel umbauen. Man denke nur an Asteroiden, seltsame Funde, Aliens, Funkunterbrüche usw. Die Skripte kann man allenfalls anpassen und wieder raufladen. Fastforward wäre auch ganz nett, um die nervige Wartezeit zu umgehen (beachte aber, dass der Rover dann in dieser Zeit das alte Skript weiter ausführt).

Du siehst bei dem Szenario kommen mir gleich ein Haufen Ideen. Wenn du aber eine möglichst genaue Simulation haben willst, dann wird das aber wahrscheinlich eher öde. Ansonsten finde ich die Grundidee cool und sehe da durchaus Potential.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

16.08.2012, 21:16

Afaik werden die Bewegungen etc. so eines Rovers zunächst bis zum Umfallen geplant und simuliert und erst dann werden die Befehle für einen ganzen (Mars) Tag an den Rover geschickt.

Autonom in dem Sinne, dass es von selber entscheidet wo es hinfährt und was es tut, ist so ein Ding jedenfalls ziemlich sicher nicht. Mit Ausnahme der Landung, die war wohl zum Teil autonom, da es sich den genauen Landeplatz afaik anhand eines Bodenradars selbst ausgesucht hat...

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »dot« (16.08.2012, 21:28)


MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

7

16.08.2012, 21:36

Zitat

Die Steuerung erfolgt autonom, da Steuersignale von der Erde für den Weg zum Mars 14 Minuten benötigen würden – wenn denn gerade eine Sichtverbindung besteht. Das Fahrzeug bewegt sich entsprechend vorsichtig und soll nur bis zu 200 Meter pro Tag zurücklegen. Die erste Fahrt will gut vorbereitet sein und wird voraussichtlich Anfang September erfolgen
Mehr Infos:
http://www.heise.de/ct/artikel/Daten-und…on-1660322.html
Als Abstraktion kann man das aber sicher ein wenig lockerer nehmen und ihn halt direkt mit Steuerbefehlen navigieren.
Anderseits wäre es auch eine Möglichkeit das so zu machen, dass man Wegpunkte definiert und dann Ausweichmanöver, Alternativrouten etc. skripten muss und dann alles raufladen und dann sieht man die Simulation. Das wäre näher bei der echten Situation. Das ganze kann man dann auch super in ein interessantes Spiel umbauen. Man denke nur an Asteroiden, seltsame Funde, Aliens, Funkunterbrüche usw. Die Skripte kann man allenfalls anpassen und wieder raufladen. Fastforward wäre auch ganz nett, um die nervige Wartezeit zu umgehen (beachte aber, dass der Rover dann in dieser Zeit das alte Skript weiter ausführt).

Du siehst bei dem Szenario kommen mir gleich ein Haufen Ideen. Wenn du aber eine möglichst genaue Simulation haben willst, dann wird das aber wahrscheinlich eher öde. Ansonsten finde ich die Grundidee cool und sehe da durchaus Potential.
Zu langweilig will ich es natürlich nicht werden lassen, trotzdem werde ich an meinem Konzept der zwei Spielmethoden (annähernd realistisch & Arcade-Mode) weiter festhalten, doch die wartezeit werde ich in beiden Spielarten stark reduzieren, da dies so, oder so nur sehr langweilig wäre.

Über autonome Systeme wusste ich vorher noch nichts, ich hab das irgendwie überlesen, aber es macht Sinn, dass der Rover annähernd selbstständig sich fortbewegt, ich hab mir das eher vorgestellt, als bekäme er immer nur eine Liste an Befehlen, die er nach der Reihe ausführt und dann auf weitere Befehle wartet. Jetzt werde ich mein Spiel auch so anpassen, das man eher ein solches selbstständiges System schreiben muss, geht dann warscheinlich in Richtung AntMe! (für C# und VB.net). Kennt das eigentlich noch wer?
Den Arcade-Mode werde ich wahrscheinlich zum Storyteil ausarbeiten mit einigen mehr, oder weniger realistischen Missionen bestücken, bei der es teilweise um die Entwicklung solcher autonomen Systeme (evtl. für Spezialaufgaben) geht, andererseits aber mit geschicklichkeitsmissionen, bei der man den Rover "von Hand" live steuern kann.

Werde jetzt meine Dokumentation umschreiben und danach mit den Änderungen beginnen.
Wenn es neues gibt, oder gar eine Betaversion werde ich euch informieren.
Schön jedenfalls zu lesen, dass so etwas doch ein paar Leute interessiert.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

8

16.08.2012, 22:44

[...] ich hab mir das eher vorgestellt, als bekäme er immer nur eine Liste an Befehlen, die er nach der Reihe ausführt [...]

Und genau so ist es afaik auch...

EDIT: Ok, der Curiosity Rover hat über seine vier Hazcams offenbar die Fähigkeit, selbstständig Hindernissen auszuweichen, ein gewisser Grad an Autonomie ist also vorhanden. Allerdings ist das wohl nur ein Sicherheitsmechanismus, die eigentlichen Bewegungsbefehle kommen wohl trotzdem von den Roverpiloten auf der Erde...

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »dot« (16.08.2012, 22:53)


MitgliedXYZ

Alter Hase

  • »MitgliedXYZ« ist der Autor dieses Themas

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

9

18.08.2012, 10:22

@dot
Wenn das so ist, könnte ich ja wieder auf mein altes Prinzip zurückgreifen, mit der Liste von auszuführenden Befehlen. Mal sehen.

10

06.10.2012, 16:40

Zitat

Würde den jemand es dann auch mal testen wollen

Na klar!
Schon allein die Idee ein Spiel zu spielen und gleichzeitig seinen Programmierergelüsten nachgehen zu können finde ich EPIC :D

Was mich interessieren würde wie die Sprache aussieht, bis jetzt sieht man ja lediglich dass es Strukturen/Klassen gibt, numerische Konstanten und keine Befehlsendzeichen (wie z.B. das Semikolon)...

Helco

Werbeanzeige