## c't-Projekte - Mailinglisten

[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

### Re: [ct-bot] Patch für ct-Sim

Absender: Benjamin Benz
Datum: Mi, 05.04.2006 10:28:28
In-reply-to: <001801c6587f$741ebc20$0100a8c0@muetze>
References: <001801c6587f$741ebc20$0100a8c0@muetze>

    Hallo,

    ich denke, wir werden diesen Patch auf der Leser-Patches-Seite anbieten.
    Für das nächste größere c't-Sim-Release haben wir eine generische Lösung
    vorbereitet, die einen Parcours aus einem ASCII-Textdatei einliest.

    MfG Benjamin Benz

    Johannes Dörnte wrote:
    > Hi,
    >
    > mit meinem Patch kann man in world.java zwischen zwei Welten wählen.
    > Welt 1 ist das Labyrinth aus der ct05,
    > Welt 2 ist der Hindernis-Parcours aus der ct07.
    >
    > Dafür habe ich eine Konstante WORLDCHANGER eingeführt, die man von Hand im
    > Programmcode entweder auf 1 oder 2 setzt. Während des Programmablaufes
    > unterscheidet eine switch-Anweisung zwischen den beiden Welten.
    >
    > Die switch-Anweisung steht an zwei Stellen: bei der Erzeugung der Lampen und
    > bei der Erzeugung der Hindernisse.
    >
    > Weiterhin habe ich den - in meinen Augen - unübersichtlichen Code in
    > world.java leicht umsortiert. Das Erstellen und Verschieben der Hindernisse
    > (speziell das der Randmauer) habe ich räumlich zusammengefasst (wie bei
    > anderen Hindernissen auch bereits vorhanden). Dafür musste der Codeblock
    >
    > 		// Zuerst werden sie gemeinsam so verschoben, dass ihre
    > Unterkante genau
    > 		// buendig mit der Unterkante des Bodens ist:
    > 		translate.set(new Vector3d(0d, 0d, 0.2d -
    > PLAYGROUND_THICKNESS));
    > 		TransformGroup tgO = new TransformGroup(translate);
    > 		tgO.setCapability(TransformGroup.ENABLE_PICK_REPORTING);
    > 		tgO.setPickable(true);
    > 		sceneLight.getObstBG().addChild(tgO);
    >
    > vor die Erzeugung der Randmauern verschoben werden.
    >
    > Weiterhin habe ich Kommentarzeilen der Form
    >
    > 		//
    > 		// Lichtquellen
    > *****************************************************
    > 		//
    >
    > eingefügt, die kenntlich machen, wo die Erzeugung der Lichtquellen, Boden,
    > Linien und Hindernisse erfolgt. Neulinge wie ich finden sich damit besser im
    > Code zurecht.
    >
    > Einige wenige weitere Kommentarzeilen ergänzen den Code.
    >
    > Herzliche Grüße
    > Johannes Dörnte
    >
    >
    > ------------------------------------------------------------------------
    >
    > CHANGELOG fuer c't-Sim
    > ======================
    >
    > 2006-04-05 Johannes Dörnte (doernte@xxxxxx)
    > Waehlen der Welt in world.java ueber eine Konstante.
    > Man kann zwischen dem Labyrinth aus der ct05 und dem Hindernis-Parcours aus der ct07 wechseln.
    >
    > 2006-03-20 Markus Lang (lang@xxxxxxxxxx)
    > Kontrollfenster und World-Fenster mittels einer SplitPane zu einem
    > grossen c't-Sim Hauptfenster zusammengefügt. Weniger Fensterwald :)
    >
    > 2006-03-19 Benjamin Benz (bbe@xxxxxxxx) updatelcdText in botsimtest verschoben
    >
    > 2006-03-16 Peter Koenig (pek@xxxxxxxx)
    > Lampen vergroessert (verbessert die Erkennung der Saeulen)
    >
    > 2006-03-16 Peter Koenig (pek@xxxxxxxx)
    > Umlaute entfernt, Kommentare ergaenzt und Formatierungen geaendert
    >
    > 2006-03-16  Stefan Geuken (mail@xxxxxxxxxxxxxxxx)
    > - Bugfix: Einer der CtBot-Konstruktoren hat bisher das Display nicht initialisiert
    > - Der integrierte Testbot zeigt seine Daten auf dem Display an
    >
    > 2006-03-12 Peter Koenig (pek@xxxxxxxx) Bugfix in World.sensGroundReflectionCross (Zeile 1096):
    > Der Wert von absorption wird nicht neu gesetzt, sondern zum alten dazuaddiert
    > ('absorption += ...' statt 'absorption = ...')
    >
    > 2006-03-12 Benjamin Benz (bbe@xxxxxxxx) ParcoursLoader begonnen
    >
    > 2006-03-12 Benjamin Benz (bbe@xxxxxxxx) Grosse Aufraeumaktion zwischen World, WorldView und Controller.
    > World braucht keine Referenz auf WorldView mehr. Alles vorbereitet, damit Views auch extern laufen koennen.
    >
    > 2006-03-12 Benjamin Benz (bbe@xxxxxxxx) CommConnection wieder entfernt
    >
    > 2006-03-12 Benjamin Benz (bbe@xxxxxxxx) Button fuer Screenshots wieder entfernt
    >
    > 2006-03-09 Benjamin Benz (bbe@xxxxxxxx) Reale TCPBots eingefuehrt, Connections umstrukturiert
    >
    > 2006-03-03	Heinrich Peters (Heinrich-Peters@xxxxxxx)
    > - LCD-Ausgabe ueberarbeitet
    > - LEDs werden jetzt im Simulator angezeigt
    > - die 4 Farbtasten hinzugefuegt
    >
    > 2006-02.22  Peter Koenig (pek@xxxxxxxx), Benjamin Benz (bbe@xxxxxxxx) Bugfix in watchObstacle():
    > Abstandssensoren haben gelegentlich die Huelle des Bot als naechstes
    > Hindernis detektiert haben, Messwert fiel regelmaessig auf 0. Jetzt ist die Huelle nicht pickable,
    > sobald der Bot seinen Peilstrahl losschickt.
    >
    >
    > 2006-02-18	Rolf Ebert (Rolf.Ebert@xxxxxxx) LCD-Ausgabe kann nun auch im Simulator erscheinen
    >
    > 2006-02-21 Peter Koenig (pek@xxxxxxxxxxxx)
    > - Code ist jetzt auf Java 5.0 umgestellt (List bots in World ist eine List<Bot>); auch das build.xml ist darauf vorbereitet.
    >
    > 2006-02-18 Benjamin Benz (bbe@xxxxxxxx) Einen Button fuer Screenshots eingefuegt
    >
    > 2006-02-13 Christoph Grimmer (c.grimmer@xxxxxxxxxx)
    > - Sim lauscht jetzt dauerhaft auf TCP-Verbindungen und nimmt diese an, auch wenn schon simulierte Bots unterwegs sind
    > - Erweiterung von TcpConnection
    > - Code Makeup
    >
    > 2006-02-01  Lasse Schwarten (lasse@xxxxxxxxxxxxx)
    > - neue Lichtquelle im rechten Durchgang
    > - Die Bots aendern nun ihre Farbe, wenn sie einen Unfall haben.
    >   -> rote Bots sind "gesund"
    >   -> blaue Bots sind gerade gegen ein Hindernis gefahren
    >   -> gruene Bots haben den Boden unter ihren Raedern verloren
    > - Code Makeup
    > - Abfrage hinzugefuegt, ob ein oder drei Bots ausgesetzt werden sollen.
    >
    > 2006-02-01 Peter Kï¿½nig (pek@xxxxxxxxxxxx)
    > - XML- und howto-Dateien fuer Ant Build von Dominik Kalb (dominik@xxxxxxxxx)
    > hinzugefuegt.
    >
    > 2006-02-01  Lasse Schwarten (lasse@xxxxxxxxxxxxx)
    > - Bugfix eines Nebenlaeufigkeitsproblems
    >   -> Sensor- und Kollisionsabfragen verstecken Teile des Szenengraphen.
    >      Bei mehr als einem Bot muss das Picking synchronisiert werden.
    >
    > 2006-02-01  Lasse Schwarten (lasse@xxxxxxxxxxxxx)
    > - Positions-Slider auf dem CtControlPanel werden jetzt dynamisch an die Groesse des
    >   Spielfeldes angepasst.
    > - Die Lichtsensoren wurden implementiert.
    >   -> Mit World.LIGHT_SOURCE_REACH laesst sich die Reichweite/Intensitaet des
    >      Lichtes bestimmen.
    >   -> CtBot.SENS_LDR_HEADING bestimmt, ob die Lichtsensoren nach vorne oder
    >      oben zeigen.
    > - Die Lichtquelle in der nordoestlichen Ecke hat ein winziges 3D-Objekt
    >   bekommen, damit die Lichtsensoren arbeiten koennen.
    > - Dem CtControlPanel wurden die noetigen Sensoranzeigen hinzugefuegt und
    >   das Layout gefixt.
    > - Die Anfangsposition von CtBots, die ueber TCP angeschlossen sind, wurde
    >   an die neue Welt angepasst.
    >
    > 2006-01-31  Lasse Schwarten (lasse@xxxxxxxxxxxxx)
    > - Es wurden Lichtquellen hinzugefuegt.
    > - Die Liniensensoren wurden implementiert.
    > - Die Abgrundsensoren wurden implementiert.
    > - Bots werden nun unter die obstBG BranchGroup gehaengt.
    > - Die Objekte haben Materialangaben bekommen.
    > - Die Kamara stellt sich zu Beginn nun automatisch so ein, dass das gesamte
    >   Spielfeld des Bots zu sehen ist.
    > - Die Flaeche der Welt wurde vergroessert und es gibt jetzt einen weiteren Raum im Sueden.
    > - Die Box, die den Boden dargestellt hat, wurde durch einen neuen Boden
    >   mit einem Loch im suedlichen Bereich ersetzt.
    > - Linien auf dem Boden hinzugefuegt.
    > - Hindernis im suedlichen Raum.
    > - ueberfluessige (float)-Casts in World entfernt.
    > - Bot-Steuerung angepasst.
    >
    > 2006-01-30 Peter Koenig (pek@xxxxxxxx)
    > - Die Welt hat im Szenegraphen direkt unter obstBG eine neue Transformationsgruppe
    >   tgO hinzugefuegt bekommen. Damit ist es moeglich, alle vier Randhindernisse der Welt
    >   (north, south, ... ) gemeinsam zu verschieben. Diese Aenderung erfolgte zwecks
    >   besserer Darstellbarkeit des Szenegraph-Konzepts im Artikel.
    >
    > 2006-01-29  Lasse Schwarten (lasse@xxxxxxxxxxxxx)
    > - Die Welt wurde ein wenig abgeaendert.
    >   -> Die suedliche Wand wurde entfernt.
    >   -> Der Boden wurde abgesenkt, so dass er nun bei z=0 liegt.
    > - Der Bodenkontakt der beiden Raeder und des Schleifsporns wird nun ueberprueft.
    >   Wenn einer der drei Punkte keinen Boden mehr unter sich hat, wird der Bot
    >   gestoppt.
    > - Der Maussensor wurde implementiert. Er sitzt mittig 15 mm hinter der Achse
    >   unter dem ct-Bot. Es werden DeltaX und DeltaY berechnet.
    >   -> Die Groessen werden in Dots pro Simulationsschritt angegeben.
    >   -> Die Konstante CtBot.SENS_MOUSE_DPI = 400 legt die Aufloesung des Sensors
    >      fest und bestimmt wie viele Dots pro Inch ausgegeben werden.
    >   -> DeltaX gibt die in Fahrtrichtung zurueckgelegte Strecke an.
    >   -> DeltaY hingegen die seitliche Verschiebung, die der Maussensor bei einer
    >      Rotation des Bots abfaehrt. Bei einer 360-Grad-Wendung die innerhalb nur eines
    >      Simulationsschrittes absolviert wird, wuerde DeltaY 1484 dots betragen.
    >       ---
    >          2*Pi*1,5cm = 9,42cm
    >          9,42cm/2,54cm/in = 3,71in
    >          3,71in * 400DPI  = 1484 dots
    >       ---
    >   -> Dreht sich der Bot nach links, ist DeltaY negativ. Dreht er sich hingegen
    >      nach rechts, ist DeltaY positiv.
    > - Damit das Kontrollfenster auch weiterhin auf Bildschirmen mit einer
    >   vertikalen Aufloesung von nur 800 Pixeln komplett zu sehen ist, wurde eine
    >   zweite Spalte hinzugefuegt. Diese enthaelt bis jetzt nur die neuen Maussensor-
    >   daten.
    >
    > 2006-01-26 Zeitlupen Modus:
    > Werner Pirkl (Morpheus.the.real@xxxxxx) hat einen Modus hinzugefuegt, um den Bot in Zeitlupe zu bewegen.
    > Man kann nun ueber einen Schieberegler den Faktor der Realzeit einstellen. Dabei bedeutet:
    > 1 -- keine Zeitlupe
    > 10 -- 10fache Zeitverzoegerung.
    > Intern wird Wert von "baseTimeReal" bei 10-facher Zeitlupe 10 mal hoeher
    > gesetzt als der Wert der Simulatorzeit "baseTimeVirtual".
    >
    > 2006-01-24  Lasse Schwarten (lasse@xxxxxxxxxxxxx)
    > - Die Bots sind jetzt "pickable" und erkennen sich so gegenseitig als
    >   Hindernisse. Damit ein Bot sich nicht faelschlich selber findet, wird
    >   sein Koerper versteckt, waehrend seine Kollisionsabfrage durchgefuehrt
    >   wird. (Der ct-Sim ist somit nun multi-Bot-faehig.)
    > - Die ViewPlatform laesst sich nun durch die Maus im Raum verschieben.
    >   Dazu muss in das 3D-Fenster geklickt werden und die Grafik in eine
    >   gewuenschte Richtung gezogen werden.
    >   -> Die linke Maustaste dreht die Kamera um sich selbst.
    >   -> Die rechte Maustaste verschiebt die Kamera parallel zu ihrer Position
    >   -> Die mittlere Maustaste(oder die linke + ALT) verschiebt die Kamera
    >      nach vorne und hinten
    >   (Anmerkung: Diese Navigation ist bei weitem nicht perfekt und muss
    >               ueberarbeitet werden. Ich habe das Paket
    >               org.j3d.ui.navigation ausprobiert, konnte aber keine
    >               besseren Ergebnisse erzielen. Der Code hierfuer ist noch
    >               im Source enthalten und lediglich auskommentiert.)
    > - Der Bot hat einen neuen Koerper bekommen, der aus einzelnen Polygonen
    >   zusammengebaut wird und eine echtes Fach hat.
    >
    > 2006-01-24	Benjamin Benz (bbe@xxxxxxxx) Schreibweise des Changelogs nochmal veraendert
    >
    >
    > ------------------------------------------------------------------------
    >
    > _______________________________________________
    > ct-bot-entwickler Mailingliste
    > ct-bot-entwickler@xxxxxxxxxxxxxxxxx
    > http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler

    --
    Benjamin Benz
    Heise Zeitschriften Verlag
    Redaktion c't
    eMail: bbe@xxxxxxxx
    WWW  : http://www.heise.de

- Referenzen:
  - [ct-bot] Patch für ct-Sim
    - From: Johannes Dörnte

- Voriger (Datum): [ct-bot] Patch für ct-Sim, Johannes Dörnte
- Nächster (Datum): Re: AW: [ct-bot] Auswählen von Screens ohne Farb-Tasten auf der FB, Benjamin Benz
- Voriger (Thread): [ct-bot] Patch für ct-Sim, Johannes Dörnte
- Nächster (Thread): RE: AW: [ct-bot] Auswählen von Screens ohne Farb-Tasten auf der FB, Menzel, Frank IT-OO4
- Indizes:
  - Datum
  - Thread