heise online | · | c't | · | iX | · | Technology Review | · | Telepolis | · | mobil | · | Security | · | Netze | · | heise open | · | heise resale | · | Autos | · | c't-TV | · | Jobs | · | Kiosk

Aktuelles Heft #### Support Hotline & FAQ Tipps & Tricks Treiber & BIOS Firmenkontakte #### Download Software zu c't Software-Verzeichnis c't-Projekte Testbilder & Vorlagen #### Service Tipp-Datenbank c't-CD-Register Internettarife Telefontarife Virenschutz #### Magazin Heftarchiv c't specials English Pages Benchmarks Red. Stuff Leserforum c't-Bildmotive URLs aus c't Schlagseite #### Aktionen Browsercheck Krypto-Kampagne Schulen ans Netz Netz gegen Kinderporno TV/Radio-Termine #### Info Abo & Heft Veranstaltungen Mediadaten Kontakt Impressum Kleinanzeigen und Veranstaltungen
| c't Projekte - c't-Bot und c't-Sim - Mailinglisten ## c't-Bot und c't-Sim [Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)] [Nach Datum][Nach Thread] ### [ct-bot] Patch für ct-Sim Absender: Johannes Dörnte Datum: Mi, 05.04.2006 09:06:28
    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
Antworten: Re: [ct-bot] Patch für ct-Sim From: Benjamin Benz Voriger (Datum): Re: [ct-bot] Auswählen von Screens ohne Farb-Tasten auf der FB, Torsten Evers Nächster (Datum): Re: [ct-bot] Patch für ct-Sim, Benjamin Benz Voriger (Thread): Re: AW: [ct-bot] Auswählen von Screens ohne Farb-Tasten auf der FB, Benjamin Benz Nächster (Thread): Re: [ct-bot] Patch für ct-Sim, Benjamin Benz Indizes: Datum Thread |

Copyright © 2007 Heise Zeitschriften Verlag | Kritik, Anregungen bitte an c't-WWW | Datenschutzhinweis Impressum