|
 |
 |
 |
|
|
c't Projekte - c't-Bot und c't-Sim -
Mailinglisten
[Voriger (Datum)]
[Nächster (Datum)]
[Voriger (Thread)]
[Nächster (Thread)]
[Nach Datum][Nach Thread]
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
|
|
|