Autor Beitrag
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.01.07 17:34 
Du meinst also so was wie:
ausblenden Delphi-Quelltext
1:
 if SteerCmd = 0.0 then					

Das ist eine Unsitte, denn außer bei einigen wenigen Gleitkommazahlen funktioniert das wegen der Rundungsfehler nicht.
Nimm da
ausblenden Delphi-Quelltext
1:
 if Abs(SteerCmd) < Epsilon then					

wobei du den Wert von Epsilon an das Problem anpassen kannst.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 17.01.07 18:39 
Aber SteerCmd hat den Wert ~ -5, wenn er bei E-Track 3 am Anfang geradeaus fährt. Wie macht das denn der Graph, der die Kräfte angibt?

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.01.07 19:08 
Also bei mir liegen die Werte (die BetterSteering zurückgibt) alle brav zwischen -1 und +1!

Kontrollier mal die Größen die in die Berechnung eingehen (z.B. oLookAhead usw.).
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 17.01.07 19:28 
Nach der 1. Kurve stimmt es, aber beim Anfahren... mh...

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.01.07 19:34 
Kann es sein, dass da Zustandswerte noch nie gesetzt wurden, aber in die Berechnung eingehen?
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Mi 17.01.07 19:53 
Ach sch...orry, wenn man natürlich das E übersieht, kommen so Mutmaßungen zustande :oops: -5,...E... Danke, mit dem Epsilon geht es. Mal gucken ob das, was ich machen will, nun klappt.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
JDKDelphi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 115
Erhaltene Danke: 22

WIN2000, XP, WIN 7 , UNIX, LINUX
Assembler für (Z8x, 68xxx,R6000,Intel), DELPHI 6 Enterprise, MAGIC eDeveloper V9+V10, C++, C#,VB, .NET, zertifizierter iBOLT-Programmierer
BeitragVerfasst: Mi 17.01.07 21:15 
Titel: "Delphin"
Hallo,

das ist ja ein äusserst interessantes Projekt !!!


Super
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Do 18.01.07 17:44 
Hallo,

ich habe mal die mue Berechnung für die Reifen endeckt und etwas geändert:
[edit]UnitTorcsData.pas[/edit]
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
]
//==========================================================================*
// Reifenreibungskoeffizient
//--------------------------------------------------------------------------*
procedure TIPCCarData.InitTireMu;
var
  WheelSect: array [0..3of PChar;
  Tm: Tdble;
  I: Int;
begin
  WheelSect[0] := SECT_FRNTRGTWHEEL;
  WheelSect[1] := SECT_FRNTLFTWHEEL;
  WheelSect[2] := SECT_REARRGTWHEEL;
  WheelSect[3] := SECT_REARLFTWHEEL;
  //Tendenz aufsteigendes Ergebnis
  {
  //Wähle kleinstes mue war bisher 
  TireMu := FLT_MAX;
  for I := 0 to 3 do
    TireMu := Min(TireMu, GfParmGetNum(GetCarHandle, WheelSect[I], PRM_MU, nil, 1.0));
  }

  {
  //Wähle harmonisches Mittel //mue  =0 gibt es hier nicht wegen 1/x
  Tm := 0;
  for I := 0 to 3 do
    Tm := Tm+1/GfParmGetNum(GetCarHandle, WheelSect[I], PRM_MU, nil, 1.0);
  TireMu := 4/Tm;
  }

  {
  //Wähle geometrisches Mittel
  Tm := 1;
  for I := 0 to 3 do
    Tm := Tm*GfParmGetNum(GetCarHandle, WheelSect[I], PRM_MU, nil, 1.0);
  TireMu := exp(ln(tm)/4);
  }


  //Wähle aritmetisches Mittel
  TireMu := 0;
  for I := 0 to 3 do
    TireMu := TireMu+GfParmGetNum(GetCarHandle, WheelSect[I], PRM_MU, nil1.0);
  TireMu := TireMu/4;

  {//Ist fast immer das schnellste erzeugt schlechte erste Runde ;-)
  //Wähle größtes mue
  TireMu := 0;
  for I := 0 to 3 do
    TireMu := Max(TireMu, GfParmGetNum(GetCarHandle, WheelSect[I], PRM_MU, nil, 1.0));
  }


end;


Das bringt etwas, besonders auf extrem hubbeligen Strecken wie Olethros Road 1

Gruß Horst
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Mo 22.01.07 21:25 
Hallo Horst,

ich habe das mal auf anderen Strecken probiert. Es sieht so aus, als ob das von Strecke zu Strecke (und Setup zu Setup) unterschiedlich ist. Deshalb sollten die interessanten Varianten (Min, Mean, Max) wahlweise möglich sein. Dazu wäre dann ein neuer Parameter im Abschnitt "delphin private" vorzusehen.

Ich schlage vor ihn "tireinit" zu nennen und als Werte eben Min, Mean oder Max zur Auswahl zu stellen. Analog zum Parameter "... Differential" in der Setup-Datei

ausblenden Delphi-Quelltext
1:
    <attstr name="type" in="SPOOL,FREE,LIMITED SLIP" val="FREE"/>					


sähe das dann so aus:

ausblenden Delphi-Quelltext
1:
    <attnum name="tireinit" in="MIN,MEAN,MAX" val="MEAN"/>					


Als Standardwert sollte der Delphin MIN verwenden (wenn nichts anderes angegeben wurde).

Im Programm in der UnitDriver.pas so ...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  ...
  BOTNAME_ATT_TIREINIT = 'tireinit';             // Art der Mittelung
  ...
  TireInit := GfParmGetStr(CarSettings
    , BOTNAME_PRIV, BOTNAME_ATT_TIREINIT, 'MIN');
  WriteLn(Format('oTireInit: %s',[TireInit]));
  ...


... und in der UnitTorcsData.pas so:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
//==========================================================================*
// Reifenreibungskoeffizient
//--------------------------------------------------------------------------*
procedure TIPCCarData.InitTireMu;
var
  WheelSect: array [0..3of PChar;
  Tm: Tdble;
  I: Int;
begin
  WheelSect[0] := SECT_FRNTRGTWHEEL;
  WheelSect[1] := SECT_FRNTLFTWHEEL;
  WheelSect[2] := SECT_REARRGTWHEEL;
  WheelSect[3] := SECT_REARLFTWHEEL;

  if oTireInitType = 2 then
  begin
    Tm := 0.0;
    for I := 0 to 3 do
      Tm := Max(Tm, GfParmGetNum(GetCarHandle
        , WheelSect[I], PRM_MU, nil1.0));

    TireMu := Tm;
  end
  else if oTireInitType = 1 then
  begin
    Tm := 0.0;
    for I := 0 to 3 do
      Tm := Tm + GfParmGetNum(GetCarHandle
        , WheelSect[I], PRM_MU, nil1.0);

    TireMu := Tm / 4;
  end
  else
  begin
    Tm := FLT_MAX;
    for I := 0 to 3 do
      Tm := Min(Tm, GfParmGetNum(GetCarHandle
        , WheelSect[I], PRM_MU, nil1.0));

    TireMu := Tm;
  end
end;
//==========================================================================*

//==========================================================================*
// Art der Mittelung ausgeben
//--------------------------------------------------------------------------*
function TIPCCarData.GetTireInit: string;
begin
  if oTireInitType = 1 then
    Result := 'MEAN'
  else if oTireInitType = 2 then
    Result := 'MAX'
  else
    Result := 'MIN';
end;
//==========================================================================*

//==========================================================================*
// Art der Mittelung einstellen
//--------------------------------------------------------------------------*
procedure TIPCCarData.SetTireInit(Value: string);
begin
  if UpperCase(Value) = 'MEAN' then
    oTireInitType := 1
  else if UpperCase(Value) = 'MAX' then
    oTireInitType := 2
  else
    oTireInitType := 0;
end;
//==========================================================================*


Damit sind alle Möglichkeiten gegeben, den Delphin an die Strecke anzupassen.
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Do 25.01.07 19:29 
Titel: HHR-SETUP-WETTBEWERB
!!! HHR-SETUP-WETTBEWERB !!! Der Wettbewerb läuft noch !!!

Aktuelle Tabelle: (Stand 23. Mrz 2007)

Gruppe 1: (Eigene Roboter)
01:23:45 - wdbee_2007_hhr: wdbee (Custom-Setup, trainiert)
01:24:72 - MeinerEiner: horst_h (Custom-Setup, 20 Runden Training)

Gruppe 2: (Delphin Roboter)
01:22:96 - delphin V1.00.X: horst (Custom-Setup, korr. Strecke) <<< Neuer Wert
01:24:57 - delphin V1.00.X: wdbee (Custom-Setup, 20 Runden Training, korr. Strecke)
01:26:86 - delphin V1.00.X: wdbee (Custom-Setup, Qualifying wiederholt)
01:27:97 - delphin V1.00.X: wdbee (Custom-Setup, untrainiert)
01:28:12 - PacMan V1.00.X: GTA-Place (Custom-Setup, 200 Runden Training)
01:28:85 - delphin V1.00.X: wdbee (Default-Setup, 20 Runden Training)
01:30:79 - delphin V1.00.X: wdbee (Default-Setup, Qualifying wiederholt)
01:32:80 - delphin V1.00.X: wdbee (Default-Setup, untrainiert)

Gruppe 3: (TORCS Roboter)
01:21:31 - berniw two: horst_h (Custom-Setup)
01:23:02 - berniw two: berniw (Default-Setup)
01:23:71 - bt: berniw (Default-Setup, bestes beobachtetes Qualifying)
01:24:81 - bt: berniw (Default-Setup, 4. Qualifying)
01:25:57 - bt: berniw (Default-Setup, 3. Qualifying)
01:27:10 - bt: berniw (Default-Setup, Qualifying wiederholt)
01:29:58 - bt: berniw (Default-Setup, untrainiert)

Gesamtwertung: (jeweils nur bestes Ergebnis)
01:21:31 - berniw two: horst_h (Custom-Setup)
01:22:96 - delphin V1.00.X: horst (Custom-Setup, korr. Strecke) <<< Neuer Wert
01:23:02 - berniw two: berniw (Default-Setup)
01:23:45 - delphin_2007_hhr: wdbee (Custom-Setup, trainiert)
01:23:71 - bt: berniw (Default-Setup, bestes beobachtetes Qualifying)
01:24:57 - delphin V1.00.X: wdbee (Custom-Setup, 20 Runden Training, korr. Strecke)
01:24:72 - MeinerEiner: horst_h (Custom-Setup, 20 Runden Training)
01:26:15 - delphin V1.00.X: wdbee (Custom-Setup, 20 Runden Training)
01:28:12 - PacMan V1.00.X: GTA-Place (Custom-Setup, 200 Runden Training)


Hallo Delphin Drivers!

Hier mal eine erste Rennstrecke für einen Wettbewerb!

Das Zip-File enthält den Ordner "hhr-track". Der muss ins TORCS-Verzeichnis für Rennstrecken vom Typ road kopiert werden (z.B. "C:\Programme\TORCS\tracks\road\hhr-track").

Die XML-Datei hhr-track.xml darin beschreibt nur die Rennstrecke, keine Landschaft. Um daraus einen TORCS-Track zu erzeugen, müsst ihr den TORCS-Track-Generator im TORCS-Verzeichnis (z.B. "C:\Programme\TORCS") anwerfen. Dazu gebt ihr in einem DOS-Fenster im o.g. Verzeichnis den Befehl "trackgen -c road -n hhr-track" ein. Damit werden die XML-Anweisungen ausgewertet und die Dateien für die Darstellung erzeugt.

Wenn nur die Rennstrecke dargestellt wird, geht alle etwas schneller, was bei häufigen Tests von Vorteil ist. Wer etwas mehr Umgebung haben will, kann mit der Option -a die Standard-Landschaft aktivieren.
("trackgen -c road -n hhr-track -a").

Wer noch mehr selbst anpassen will, kann im Track-Build-Tutorial nachlesen, wie das geht. Auf der TORCS-Homepage findet ihr unter "Some news and looking for Babis" einen Link zu der "documentation" von Vicente Marti. Die könnt ihr als PDF herunterladen.

Die Rennstrecke "hhr" hat es in sich. Gerade das Richtige, für einen Wettbewerb. Auf den mitgelieferten Rennstrecken kommt der Delphin in der Regel sehr gut zurecht, ohne dass viel am Setup geschraubt werden muss. Auf dieser Strecke muss einiges getüftelt werden! Dabei handelt es sich keineswegs um eine Gemeinheit, die Strecke gibt es in ähnlicher Form tatsächlich.

Was wird bewertet?

Ziel ist es, die Qualifikation mit möglichst guter Zeit zu absolvieren (Modus Endurance Race, erster Teil). Das Rennen selbst, bleibt erstmal außen vor.
Euer Rennwagen ist also allein auf der Strecke und ihr könnt das Setup bis an die Grenzen ausreizen!

Ausgewertet wird in drei Gruppen:

1. Gruppe ("Konstrukteursmeisterschaft"): Eigener Roboter oder modifizierter Roboter, der den Mercedes CLK DTM fährt (Code muss mit Turbo Delphi 2006 übersetzt werden können).

2. Gruppe ("Delphin-Setup-Meisterschaft"): Eigenes Setup für den Delphin V1.00.X (Roboter, so wie er hier heruntergeladen werden kann) mit dem CLK DTM.

3. Gruppe ("Open-Setup-Meisterschaft"): Eigenes Setup für einen mit TORCS mitgelieferten Roboter, der den CLK DTM fährt (z. B. bt oder berniw)

Außerdem machen wir eine Gesamtwertung aus allen drei Gruppen, der Gewinner bekommt den Ehrentitel "Chef-Mechaniker 2007" verliehen (Auszusprechen als Old Mech)!

Was darf ich im Setup einstellen?

Erlaubt sind Änderungen an den Einstellungen des Fahrzeugs, die in den Setup-Dateien im TORCS-Drivers-Verzeichnis (z.B. des Delphins) aufgeführt sind (also Anstellwinkel der Spoiler, Getriebe-Untersetzungen, Differenzial, Bremsen, Stabilisatoren, Reifen, Federung und Stoßdämpfer). Auch die Parameter des "Fahrers" (der Abschnitt "xyz_privat") dürfen verwendet werden.

Nicht erlaubt sind Änderungen an den Einstellungen, die in den Fahrzeugtyp-Dateien im Cars-Verzeichnis festgelegt sind (z. B. Größe der Spoiler, Anzahl der Gänge, Motorleistung usw.).

Wie kann ich mitmachen?

Wer ein für sich "optimales" Setup gefunden hat, postet hier seine Zeit, die Gruppe für die Wertung und den Roboter (delphin, ...). Daraus mache ich dann eine Tabelle.
Findet er/sie während des Wettkampfs eine bessere Lösung, darf er sie erneut posten!

Zum Abschluss (Termin wird hier vorher rechtzeitig angekündigt!) muss jeder seine Setup-Datei (und die Lern-Datei, mit der die Qualifikation gestartet wurde!!!) offen legen, damit die Angaben geprüft werden können. Also beides gut aufheben, sonst glaubt es nachher keiner! Kann ein Ergebnis nicht verifiziert werden, wird der Eintrag in der Tabelle gelöscht.

Wer einen eigenen Roboter oder einen modifizierten Roboter ins Rennen schickt, muss den Code an zwei Vertrauensleute schicken, die dann das Ergebnis bestätigen (Hierfür werden Freiwillige gesucht, die nicht am Wettbewerb teilnehmen wollen, aber Lust und Zeit haben, sich zu beteiligen). Das soll verhindern, das alle nur den "besten" Roboter kopieren. Es sollen bald möglichst viele verschiedene Roboter existieren, erst dann werden die späteren Wettkämpfe interessant.

Fragen hier im Forum, damit alle etwas davon haben.

Viel Spaß.

wdbee
Einloggen, um Attachments anzusehen!


Zuletzt bearbeitet von wdbee am Fr 23.03.07 18:22, insgesamt 15-mal bearbeitet
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Do 25.01.07 22:46 
Cool! Hier erstmal meine Zeit nach 200 Runden Traning: 01:31:12

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Do 25.01.07 23:10 
@GTA-Place:
Also den ersten Preis für die schnellste Teilnahme hast du schon mal gewonnen!
Damit du auch als leuchtendes Beispiel voran gehst, solltest du mir noch sagen, in welcher Gruppe ich diese Zeit notieren darf und welcher phänomenale Roboter diese Fabelzeit erziehlt hat?

Edit:
Zur Orientierung mal noch folgende Zeit:
Der originale Delphin V1.00.X (s.o.) benötigt ohne vorheriges Training und mit den Standard-Einstellungen des Setups (default.xml) nur 01:32:80.
Das wäre also ein Fahren auf unbekannter Strecke!
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Fr 26.01.07 09:12 
Hallo,

wie kommst Du auf diese Zeiten mit dem delphin 1.00??
Mit practice und 111 Runden für die 111.te Runde:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
        <section name="111">
          <attnum name="time" val="122.272"/>
          <attnum name="best lap time" val="122.272"/>
          <attnum name="top speed" val="76.3769"/>
          <attnum name="bottom speed" val="1.88825"/>
          <attnum name="dammages" val="0"/>
        </section>

Die letzte Runde ist wie so oft die Schnellste.Aber 122 Sekunden sind 2min02Sekunden.
Im Qualifiing sind es 1:53,
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE params SYSTEM "C:/Programme/torcs/config/params.dtd">
<?xml-stylesheet type="text/xsl" href="file:///C:/Programme/torcs/config/style.xsl"?>

<params name="Results">
  <section name="Header">
    <attnum name="date" val="1.1698e+009"/>
  </section>

  <section name="Current">
    <attnum name="current track" val="1"/>
    <attnum name="current race" val="2"/>
    <attnum name="current driver" val="1"/>
  </section>

  <section name="hhr-track">
    <section name="Drivers">
      <section name="1">
        <attstr name="dll name" val="delphin"/>
        <attnum name="index" val="1"/>
      </section>

      <section name="2">
        <attstr name="dll name" val="berniw2"/>
        <attnum name="index" val="8"/>
      </section>

      <section name="3">
        <attstr name="dll name" val="bt"/>
        <attnum name="index" val="6"/>
      </section>

      <section name="4">
        <attstr name="dll name" val="bt"/>
        <attnum name="index" val="7"/>
      </section>

      <section name="5">
        <attstr name="dll name" val="inferno"/>
        <attnum name="index" val="4"/>
      </section>

    </section>

    <section name="Results">
      <section name="Qualifications">
        <section name="Rank">
          <section name="1">
            <attstr name="name" val="berniw two 8"/>
            <attstr name="car" val="Mercedes CLK DTM"/>
            <attnum name="best lap time" val="83.022"/>
            <attstr name="module" val="berniw2"/>
            <attnum name="idx" val="8"/>
            <attnum name="points" val="3"/>
          </section>

          <section name="2">
            <attstr name="name" val="bt 7"/>
            <attstr name="car" val="Mercedes CLK DTM"/>
            <attnum name="best lap time" val="84.292"/>
            <attstr name="module" val="bt"/>
            <attnum name="idx" val="6"/>
            <attnum name="points" val="2"/>
          </section>

          <section name="3">
            <attstr name="name" val="bt 8"/>
            <attstr name="car" val="Mercedes CLK DTM"/>
            <attnum name="best lap time" val="84.338"/>
            <attstr name="module" val="bt"/>
            <attnum name="idx" val="7"/>
            <attnum name="points" val="1"/>
          </section>

          <section name="4">
            <attstr name="name" val="delphin 1"/>
            <attstr name="car" val="Mercedes CLK DTM"/>
            <attnum name="best lap time" val="113.348"/>
            <attstr name="module" val="delphin"/>
            <attnum name="idx" val="1"/>
            <attnum name="points" val="0"/>
          </section>

          <section name="5">
            <attstr name="name" val="Inferno 4"/>
            <attstr name="car" val="Mercedes CLK DTM"/>
            <attnum name="best lap time" val="0"/>
            <attstr name="module" val="inferno"/>
            <attnum name="idx" val="4"/>
            <attnum name="points" val="0"/>
          </section>

        </section>

      </section>

    </section>

  </section>

  <section name="Standings">
    <section name="1">
      <attstr name="name" val="berniw two 8"/>
      <attstr name="module" val="berniw2"/>
      <attnum name="idx" val="8"/>
      <attnum name="points" val="3"/>
    </section>

    <section name="2">
      <attstr name="name" val="bt 7"/>
      <attstr name="module" val="bt"/>
      <attnum name="idx" val="6"/>
      <attnum name="points" val="2"/>
    </section>

    <section name="3">
      <attstr name="name" val="bt 8"/>
      <attstr name="module" val="bt"/>
      <attnum name="idx" val="7"/>
      <attnum name="points" val="1"/>
    </section>

    <section name="4">
      <attstr name="name" val="delphin 1"/>
      <attstr name="module" val="delphin"/>
      <attnum name="idx" val="1"/>
      <attnum name="points" val="0"/>
    </section>

    <section name="5">
      <attstr name="name" val="Inferno 4"/>
      <attstr name="module" val="inferno"/>
      <attnum name="idx" val="4"/>
      <attnum name="points" val="0"/>
    </section>

  </section>

</params>

also weit weg von 1:32. oder den 1:23 von BernieW Two 8

Gruss Horst
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Fr 26.01.07 11:14 
Hallo Horst,

das Qualifing wird nicht im Practice Mode gestartet, sondern im Endurance Mode.
Als erstes habe ich im Qualifying-Verzeichnis des delphin 0 ("C:\Programme\TORCS\drivers\delphin\0\qualifying") die alte Datei hhr-track.karma (und falls vorhanden auch hhr-track.txt) gelöscht.

Dann habe ich den Endurance Mode gestartet, im dessen Konfiguration den hhr-Track ausgewählt und als einzigen Teilnehmer den delphin 0 selektiert.

Dann wird das Qualifying gestartet. Es geht bei TORCS über 4 Runden und als Ergebnis wird die Zeit angezeigt. Da ich keine Steuerdatei "C:\Programme\TORCS\drivers\delphin\0\qualifying\hhr-track.xml" angelegt habe, verwendet der Roboter die Standard-Datei "C:\Programme\TORCS\drivers\delphin\default.xml". Das lässt sich auch an den Ausgaben von TORCS in das Konsolenfenster nachvollziehen. Tipp: Wenn die eigentlich gewünschte Steuerdatei mal durch einen Eingabefehler keine gültige XML-Datei mehr ist, passiert das auch!

Was ist nun anders, wenn man das Qualifying so startet?

TORCS fragt den Roboter, wieviel er vor dem Start tanken will. Der ermittelt die voraussichtliche Menge an Treibstoff, die für die 4 Runden benötigt werden, aus den Angaben der Steuerdatei (Parameter "fuelperlap" in kg/Runde).

Wenn ich eine lange Strecke trainiere, dann startet der Roboter mit vollem Tank. Das führt auf einigen Strecken aber zu ganz anderem Verhalten! Deshalb ist eine wichtige Einstellung der richtige Wert für den angenommenen Verbrauch.

Außerdem ist es etwas anderes, ob ich die Lernparameter für 500 km oder 4 Runden wähle. Bei kurzen Strecken kann ich agressiver vorgehen und die Lernkurve steiler machen (größere Werte für die Steigungsparameter mplus/mminus).

Wie kann ich meine Tests vereinfachen?

Ich kann nur die Qualfikation laufen lassen und das eigentliche Rennen (über immerhin ca. 500 km) abbrechen bzw. garnicht erst starten.

Wenn ich nicht nur einen Delphin antreten lasse, kann ich gleichzeitig verschiedene Parametersätze testen. Dazu muss ich in der Datei "delphin.xml" weitere Abschnitte (max. 10 insgesamt) für weitere Fahrer anlegen.

Außerdem kopiere ich das Verzeichnis "delphin\1" in "delphin\2" ... "delphin\9". In diesen Verzeiohnissen liegen die Steuerdateien, getrennt für "practice", "qualifying" und "race". So kann ich jedem Roboter eigene Anweisungen geben und schneller testen.

Dabei muss ich aber daran denken, dass die Roboter im "qualifying"-Verzeichnis den gelernten Stand speichern ("Karma"-Datei) und den löschen, wenn ich den Test mit neuen Parametern starten will. Dehalb bekomme ich auch andere Werte, wenn ich eine Qualifikation wiederhole (1. Lauf ohne Karma-Dartei, 2. mit). Bei meinem Test lagen die Werte bei der Wiederholung schon unter 1:31!
Beim Delphin bleibt es ab dem 3. Lauf bei den Werten, denn wenn er eine Karma-Datei eingelesen hatte, überschreibt er sie nicht. Der bt macht das anders, weshalb hier die Datei vor dem Lauf gesichert werden muss!

Das Lernen kann ich auch im "Practice" Mode machen. Dabei wird die Karma-Datei auch ins "qualifying"-Verzeichnis gespeichert.

Woran erkenne ich ein "gutes" Setup?

Wenn ich einen Test im Practice Mode mache, bei dem ich die Anzahl der Runden so wähle, dass mit fast vollem Tank gestartet werden muss, aber nicht getankt wird, sehe ich an den angezeigten Rundenzeiten den Lernzuwachs und ggf. auch Rückschläge. Bei einem guten Setup (für das Rennen) sind relativ stetige Verbesserungen und nur wenige kleine Rückschläge zu sehen. Beim ersten Lauf (zur Erzeugung der Karma-Datei) kann das anders sein, hier zählt nur der letztendlich erreichte Stand!

Versuch mal das Ergebnis nachzuvollziehen. Wenn es nicht geht, werde ich noch mal die "default.xml" kontrollieren, die ich verwendet habe.

Viel Spaß

wdbee
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Fr 26.01.07 14:47 
Hallo,

ich bin in den Projeecten durcheinander geraten und habe mit meinem modifiziertem Roboter getests, der mit anderen Werten im Privat-Teil arbeitet, (centerdiv und width zum Beispiel, die sehr starken Einfluss haben und deshalb neu kompilieren ..näh ), und natuerlich ein ABS,TCL ,das den relativen Schlupf bestimmt und ein wenig das Schleudern vermindert und besser vom Gras runterkommt (CG-3).
Das bedeutet dass die Setup's sich etwas in der Gewichtung verändert haben.
In der Originalversion kommen so 1:30 heraus, wie Du gepostest hast, mit meinem default 1:54
Mit meiner delphin-Version sind es 1:36 nach 10 Runden und wird nicht besser, aber ich überlege ja noch.
Zum Beispiel die Faltung der ssq-Werte macht ja nicht viel Sinn.
Du teilst die Strecke in >1< m Stücke und nun >7< m vorher statt 500 m/s auf 29 m/s abzusenken ist nicht besonders sinnhaft.
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
Y ist die Fahrrichtung in der X-Y -Ebene 
SecId    RadiusYZ   RadiusXY   Wurzel(ssq(SecId))
   91    0.000000 3.400E+0038  500.000000
   92    0.000000 3.400E+0038  467.824737
   93    0.000000 3.400E+0038  433.266625
   94    0.000000 3.400E+0038  395.701849
   95    0.000000 3.400E+0038  354.175010
   96    0.000000 3.400E+0038  307.082923
   97    0.000000 3.400E+0038  251.316394
   98    0.000000 3.400E+0038  178.941102
   99    0.000000   50.000000   29.663121
  100    0.000000   50.000000   29.663121
  101    0.000000   50.000000   29.663121
  102    0.000000   50.000000   29.663121
  103    0.000000   50.000000   29.663121
karma dort
1.633906
1.639396
1.652586
1.660683
1.671946
1.683223
1.692166
1.693305
1.701718
1.708459
1.713396
1.719500
1.720444
1.726402
1.732276
1.735018

Meine Brechnung von ssq-Werte mit Maximum von 120 m/s ohne Faltung
   91    0.000000 3.400E+0038  120.000000
   92    0.000000 3.400E+0038  120.000000
   93    0.000000 3.400E+0038  120.000000
   94    0.000000 3.400E+0038  120.000000
   95    0.000000 3.400E+0038  120.000000
   96    0.000000 3.400E+0038  120.000000
   97    0.000000 3.400E+0038  120.000000
   98    0.000000 3.400E+0038  120.000000
   99    0.000000   50.000000   35.592155  //ca 20% mehr
  100    0.000000   50.000000   35.592155
  101    0.000000   50.000000   35.592155
  102    0.000000   50.000000   35.592155
  103    0.000000   50.000000   35.592155
  104    0.000000   50.000000   35.592155
  105    0.000000   50.000000   35.592155
  106    0.000000   50.000000   35.592155
  107    0.000000   50.000000   35.592155
  108    0.000000   50.000000   35.592155

Aber beim Test, ob man bremsen muss, klappert man die Strecke voraus ab, und vergleicht, ob man bis dorthin hätte bremsen können, sobald dies nicht der fall ist bremst man.(UnitDriver.pas --> TDriver.Braking)
Dies Braking habe ich auch verändert, aber das bremst zu spät, deshalb verlasse ich zu oft die Fahrbahn ;-)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
V12 := Sqr(SpeedX);
 {
  Factor := 0.5 / (LocalMu * G);
  //Bremsweg nur aus der Bremskraft des Eigengewichtes ohne Aerodynamik
  MaxLookAheadDistance := V12 * Factor;
 }

 MaxLookAheadDistance:= Brakedist(V12,LocalMu);
 // Der Gag bei kleinen Geschwindigkeiten ist BrakeDist > V12*Faktor ???????


Die ssq Werte haben ja großen Einfluß, deshalb überlege ich eine Umkehrrechnung.
Wieviel Geschwindigkeit bekomme ich auf dem jeweiligen Abschnitt vernichtet.
Bei 1m Stücken ist dies wohl einfach linear machbar
E= F*s; F= übertragbare Bremskraft auf den Boden+ Luftwiderstand.
F=f(localmue, Masse,Ca,Cw,RadiusXY(Fliehkraft),RadiusXZ(looping),RollReibung(minimal ausser im Kies),ReibungFahrbahn,Seitenneigung(in der Kurve relevant),Steigung(bergauf bremst es sich gut, eine Wand(90 Grad) optimal))

Was zum Glück eigentlich fehlt, ist dann die Fahrbahnlinie eines BernieW Two 8, auch wenn der schlecht überholen kann.

Genug gefaselt. oSSq bestimmen optimieren.

Gruß Horst
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Fr 26.01.07 15:22 
user profile iconwdbee hat folgendes geschrieben:
@GTA-Place:
Also den ersten Preis für die schnellste Teilnahme hast du schon mal gewonnen!

Danke, danke :-P.
user profile iconwdbee hat folgendes geschrieben:
Damit du auch als leuchtendes Beispiel voran gehst, solltest du mir noch sagen, in welcher Gruppe ich diese Zeit notieren darf und welcher phänomenale Roboter diese Fabelzeit erziehlt hat?

Da es eine ganz ganz leicht veränderte Version des delphin ist, natürlich in der delphin-Gruppe.

Achja, der Roboter trägt den Namen PacMan (mein neuer Nick, außerhalb dieses Forums ;-)).

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Sa 27.01.07 10:23 
Hallo Horst,

da dich das Bremsen sehr beschäftigt, hier noch ein kleiner Hinweis. Ich habe bei der Bestimmung des erforderlichen Bremsweges einen konstanten Sicherheitsabstand eingebaut (FRONTCOLL_MARGIN). Der ist theoretisch völlig unbegründet, half mir damals aber, häufiges Auffahren eines Delphins auf den anderen zu vermeiden, wenn ich ein Team von 10 Delphinen um den Kurs gejagt habe.
Ohne die im Delphin inzwischen integrierten Funkionen für das "Teambewustsein" hatte ich zwar bald schnelle Delphine im Rennen, auf langen Strecken kollidierten die untereinander aber so häufig, dass am Ende langsamere Roboter vorne lagen. Es war ein hartes Stück Arbeit, ihnen diesen "Kanibalismus" abzugewöhnen ohne ihnen die Bissigkeit zu nehmen, die gegen andere Roboter bisweilen nötig ist, um zu gewinnen.
Eigentlich arbeite ich an der Entwicklung eines Roboters, der analog zu den berniw tow's mit einer vorausgeplanten "Ideallinie" arbeitet. Genau wie du fand ich aber, dass die Lösung von Bernhard nur dann sehr gut ist, wenn der Roboter alleine ist.
Wenn du dir den Quellcode dazu ansiehst, wirst du feststellen, das Bernhard zwei Verfahren hat. Eines, dass offensichtlich mal von Remi Coulon für seinen K1999 (ein RARS-Roboter, RARS = Vorläufer von TORCS) entwickelt wurde und mit einer Ausgleichsrechnung der Krümmungen arbeitet, und ein eigenes Verfahren, dass auf der abschnittsweisen Anpassung von Trassenelementen (Klothoiden = Kurve mit konstanter Änderung der Radius entlang des Weges analog zur konstanten Drehgeschwindigkeit am Lenkrad) beruht. Welches der beiden Verfahren in der DLL aktiv ist weiß ich nicht.
Ich habe ein Verfahren entwickelt, dass auf der Berechnung von Kreisen aus drei Punkten beruht. Nach einer Weile musste ich dann feststellen, dass es dem Verfahren K1999 sehr ähnlich ist (Radius statt Krümmung, aber Krümmung = 1/Radius). Deshalb habe ich dann einige Schritte des K1999 übernommen, die schneller berechnet wurden, als mein Code.
Das Ergebnis war der Delphin 2006. Der fährt eine sehr schön anzusehende Linie und ist auch recht schnell unterwegs. Mit einen angepassten Setup schaffte ich auf Alpin-1 eine Qualifikation in der Zeit von 2:01:76.
Der berniw berechnet bei Abweichungen vom geplanten Kurs für den vorausliegenden Abschnitt eine neue Route mit einer Spline-Funktion (die, die auch in der Box verwendet wird). Das ist der Teil der nicht so toll funktioniert. Meine Versuche waren zwar besser, aber auch nicht berauschend.
Deshalb war ich einen anderen Weg gegangen. Ich habe im Delphin 2006 zwei Zustände verwendet. Einer war das Fahren nach der Planung, der andere das Taktieren nach der aktuellen Situation, so wie es der Delphin V1.00.X macht.
Das funktioniert sehr gut, aber es bleibt das Problem, der Umschaltung zwischen den beiden Zuständen. Hier muss ich noch eine bessere Lösung finden, damit die Leistung nicht nur in der Qualifikation gut ist.
Während der Tests habe ich dann aber festgestellt, das der neue bt unglaubliche Ergebnisse bringt, wenn er lange genug lernt. Das Neue ist dabei die Fähigkeit, das Gelernte zu speichern (Karma-Datei). Ich hatte beim Delphin die Dateien ursprünglich als *.dat abgelegt, habe mich da aber angeglichen.
Auf der Strecke "hhr" fährt der berniw anfangs mit Abstand als Bester. Wiederholt man die Qualifikation aber oft genug, wird der bt immer besser und liegt schließlich vorn.
Es gibt aber andere Strecken, die dem bt garnicht liegen. Etwa, wenn auf einer langen Geraden ein kleiner Knick eingebaut wird (Kurze Kurve mit engem Radius aber sehr kleinem Bogen). Da bleibt er fast stehen. Die Faltung, die du kritisierst, verhilft dem Delphin in dieser Situation zu wesentlich besseren Leistungen, da sie das "Hindernis" ausbügelt. Der Reiz ist hier, dass das Verfahren sehr "billg" ist, denn ich benutze die Klasse, die ich schon für die Positionsüberwachung brauche. Mit der Abstimmung der Länge der Systemfunktion und deren Verschiebung habe ich auch zwei Parameter, die eine sehr gute Anpassung an unterschiedliche Strecken ermöglichen. Der berniw oder der Delphin 2006 haben da natürlich keine Probleme, weil sie die Trasse optimieren und dann erst die möglichen Geschwindigkeiten berechnen.
Die zentrale Frage die sich hier aber stellt ist: Bringt eine realistischere Berechnung mehr als ein geschicktes Lernen?

Ich denke, dass ich bald noch besser Zeiten für den Wettbewerb von euch erwarten kann!

wdbee
Horst_H
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1652
Erhaltene Danke: 243

WIN10,PuppyLinux
FreePascal,Lazarus
BeitragVerfasst: Sa 27.01.07 12:31 
Hallo,


den Kanabalismus habe ich auch schon bemerkt. Ich dachte, ich seh nicht recht, wie Delphin 1 Delphin 0 so oft auffuhr bis Delphin 1 die magischen 10000 überschritt, da Frontschäden häher bewertet werden.

Nun zum Bremsen und meinem Rückwärtsrechnen der maximalen ssq-werte, was zum Gück eine Vorabarbeit und keine Echtzeitrechnung ist.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
Falls Sec[i].ssq>Sec[i+1].ssq dann
  begin
  aktssq := Sec[i+1].ssq;
  j :=i;
  deltaV2 := sqr(F(Car,Sec(j)));
  aktssq := Sec[i+1].ssq+DeltaV2;
  Solange Sec[j].ssq>aktssq 
    Sec[j].ssq:=aktssq; 
    deltaV2 := sqr(F(Car,Sec(j)));
    aktssq := aktssq+deltaV2
    dec(j)
  end;

Dabei habe ich nun ein kleines Problem, wieder mal mit Kuppen und daraus resultierenden Sprüngen.
Beim Rückrechnen fahre ich die übersprungene Kuppe hinauf und springe eventuell über die andere Seite, wo dann nur der Luftwiderstand bremst (Auf Olethros Road 1 sieht man die Flugeigenschaften sehr gut ;-) )
Ich muss dann doch von weiter in der Vergangenheit losrechnen und dann doch öfter einschachteln.
Das werde ich mal am lebenden Objekt testen und nicht nur mit einer fiktiven Strecke.

Der Sinn dieser Rechnug ist eben nur möglichst gute ersten Runden hinzulegen und mit kleineren Lernfaktoren auszukommen.

Gruß Horst
P.S.
Die eingebauten Sachen für E-track 6 und CG3 ,alpine-1 im Quelltext habe ich auskommentiert.
Ich finde, die haben dort nichts zu suchen und gehören in die Konfiguration.
Ich möchte erst einen guten Allrounder (Championship, kann man den auch nur rechnen lassen ohne die Anzeige??)

Gruß Horst
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: Sa 27.01.07 14:15 
Sorry Horst,

aber für die Blechschäden bin ich verantwortlich:

In der UnitOpponents, procedure TOpponent.Update, steht die Zeile

ausblenden Delphi-Quelltext
1:
    else if (Distance > 0and (Speed < 0.9 * MyCarData.Speed) then					


, was natürlich falsch ist. Exakt wäre

ausblenden Delphi-Quelltext
1:
    else if (Distance > 0and (Speed < MyCarData.Speed) then					


aber gemeint war

ausblenden Delphi-Quelltext
1:
    else if (Distance > 0and (Speed < 1.1 * MyCarData.Speed) then					


, um kurze Änderungen im Vorzeichen der Relativgeschwindigkeit nicht sofort in eine andere Klassifikation umzusetzen.

Die Nachhilfe-Funktionen CalcETrack3, CalcETrack6 und CalcGTrack3 sollten zeigen, wie man Sonderfälle in Strecken ohne generelle Änderungen im Robot umschiffen kann. Das ist mit Blick auf den Modus einer TORCS-Meisterschaft eine durchaus sinnvolle Lösung. Bei der Meisterschaft wird für jede Strecke ein "neuer" Roboter hochgeladen. Also lauter Spezialfälle, keine Allrounder.
Das gleiche gilt für die Prozedur TSection.InitSSf. Die wird bei der Vorbereitung ausgeführt, es ist also Zeit für die vielen "if then else"s. Die Nachhilfe-Funktionen dagegen zeigen, wie eine Lösung während des Rennens aussehen kann.

Unabhängig davon gebe ich dir Recht. Auch mein Ziel ist es, einen guten Allrounder als Ausgangsbasis zu schaffen. Aber der Delphin hat da noch so einige kleine Probleme (früher Ausweichen usw.).

Bernhard Wymann hat mir per Mail vorgeschlagen, auf Sourceforge.net im TORCS-Projekt im CVS einen Bereich für den Delphin einzurichten. Auch wenn ich das nicht sofort nutzen werde, halte ich das für sinnvoll, wenn die ersten Kinderkrankheiten mal ausgestanden sind.

Denkt man das konsequent zu Ende, führt das dazu, den Delphin mal als Bestandteil der (Windows-)TORCS-Distribution bereitzustellen. Dafür wären aber noch einige Dinge zu erledigen.

Neben dem CLK DTM sollten auch andere Typen bereitgestellt werden. Ich denke da vorallem an die Typen, die schon mit deutlich besserem Design daherkommen (Porsche GT3 RS, Ferrari 360 Modena und mein Liebling, der McLaren F1 in der kommenden Version).

Außerdem brauchen die dann gute Default-Setups, so dass sie auf allen Strecken eine gute Figur machen, auch auf neuen oder selbst erstellten wie dem "hhr-track" oder meinem gerade entstehenden "Wolf's-Burg-Ring", einer High-Speed-Strecke (CLK DTM Vmax > 340), gespickt mit allerlei Gemeinheiten (Knicke, wechslende Beläge usw.), halt allem was ein guter Roboter so schlucken sollte. Auch die Spitzkehre in "hhr" ist ja ein Sonderfall. Nur der berniw two da kommt bisher mit Anstand um die Ecke.

Wenn der Kreis der Interessenten hier mal etwas größer ist, wäre das in meinen Augen ein schönes Gemeinschafts-Projekt ("Delphin-Default-Setup"). Da könnten viele mitmachen, denen noch das Rüstzeug oder die Zeit für eine eigene Roboter-Entwicklung fehlt. Wer sich dafür interessiert, kann sich ja mal melden.

Nebenbei entsteht auch der nächste Teil des Tutoriums, weshalb ich froh bin, wenn mir eure Fragen Defizite aufzeigen. Wenn hier Ideen oder Probleme anstehen, sofort her damit, damit das ganze nicht so lange dauert.

Bis bald

wdbee
wdbee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 628
Erhaltene Danke: 1



BeitragVerfasst: So 28.01.07 11:47 
Hallo Delphin Drivers,

oben im Thread bei der Ankündigung des Wettbewerbs habe ich mal den mir bisher mitgeteilten Stand als Tabelle zusammengestellt.

Alle Roboter sind mit dem CLK DTM unterwegs. Der bt und der berniw two sind die mit TORCS ausgelieferten Versionen (C++-Quellcode bei TORCS dabei!). Der Delphin V1.00.X ist der hier schon vorgestellte Roboter mit Delphi-Quellcode (s.o.). Der PacMan entspricht dem Delphin, ist aber mit den für D7 nötigen Änderungen kompiliert.
Beim wdbee_2007_hhr handelt es sich um eine Parallelentwicklung zum Delphin (auch mit Delphi-Quellcode), der speziell für diesen Track "hhr" angepasst wurde. Er enthält eine Korrektur der Trajektorie für die Spitzkehre, deren Parameter von Hand eingestellt wurden, schafft die Spitzenzeit des berniw two aber dennoch nicht!

Auf eine Meldung von Horst warte ich noch mit Spannung!

Bis bald

wdbee