You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
(2) |
Apr
(5) |
May
(8) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(4) |
| 2002 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
(7) |
Jul
(6) |
Aug
(1) |
Sep
|
Oct
(9) |
Nov
(10) |
Dec
(6) |
| 2003 |
Jan
(3) |
Feb
(8) |
Mar
(2) |
Apr
(47) |
May
(23) |
Jun
(5) |
Jul
(6) |
Aug
(19) |
Sep
(13) |
Oct
(3) |
Nov
(29) |
Dec
(3) |
| 2004 |
Jan
(2) |
Feb
(89) |
Mar
(10) |
Apr
(3) |
May
(17) |
Jun
(6) |
Jul
(12) |
Aug
(25) |
Sep
(20) |
Oct
(28) |
Nov
(23) |
Dec
(9) |
| 2005 |
Jan
(18) |
Feb
(7) |
Mar
(36) |
Apr
(29) |
May
(10) |
Jun
(9) |
Jul
(35) |
Aug
(64) |
Sep
(40) |
Oct
(11) |
Nov
(3) |
Dec
(9) |
| 2006 |
Jan
(12) |
Feb
(13) |
Mar
(7) |
Apr
(10) |
May
(18) |
Jun
(19) |
Jul
(3) |
Aug
(5) |
Sep
(7) |
Oct
(18) |
Nov
(11) |
Dec
(10) |
| 2007 |
Jan
(15) |
Feb
(6) |
Mar
(10) |
Apr
(11) |
May
(10) |
Jun
(18) |
Jul
(10) |
Aug
(18) |
Sep
(31) |
Oct
(21) |
Nov
(13) |
Dec
(2) |
| 2008 |
Jan
(26) |
Feb
(15) |
Mar
(24) |
Apr
(23) |
May
(11) |
Jun
(5) |
Jul
(16) |
Aug
(11) |
Sep
(12) |
Oct
(10) |
Nov
(3) |
Dec
(16) |
| 2009 |
Jan
(18) |
Feb
(3) |
Mar
(3) |
Apr
(15) |
May
(5) |
Jun
(19) |
Jul
(4) |
Aug
(5) |
Sep
(16) |
Oct
(23) |
Nov
(7) |
Dec
(7) |
| 2010 |
Jan
(14) |
Feb
(27) |
Mar
(12) |
Apr
(10) |
May
(2) |
Jun
(8) |
Jul
(6) |
Aug
(3) |
Sep
(6) |
Oct
(4) |
Nov
(3) |
Dec
(1) |
| 2011 |
Jan
(3) |
Feb
(6) |
Mar
(2) |
Apr
(2) |
May
(2) |
Jun
(2) |
Jul
(4) |
Aug
(7) |
Sep
|
Oct
(1) |
Nov
(6) |
Dec
(2) |
| 2012 |
Jan
(3) |
Feb
(1) |
Mar
(6) |
Apr
(14) |
May
|
Jun
(7) |
Jul
(15) |
Aug
(9) |
Sep
(35) |
Oct
(28) |
Nov
(23) |
Dec
(10) |
| 2013 |
Jan
(8) |
Feb
(7) |
Mar
(17) |
Apr
(8) |
May
(17) |
Jun
(14) |
Jul
(3) |
Aug
(2) |
Sep
(22) |
Oct
(18) |
Nov
(31) |
Dec
(15) |
| 2014 |
Jan
|
Feb
(4) |
Mar
(1) |
Apr
(2) |
May
(19) |
Jun
(2) |
Jul
(1) |
Aug
(13) |
Sep
(4) |
Oct
(1) |
Nov
|
Dec
(3) |
| 2015 |
Jan
(8) |
Feb
(2) |
Mar
(4) |
Apr
(23) |
May
(4) |
Jun
(5) |
Jul
|
Aug
(3) |
Sep
(4) |
Oct
(3) |
Nov
(8) |
Dec
(4) |
| 2016 |
Jan
(4) |
Feb
(9) |
Mar
(12) |
Apr
(13) |
May
(5) |
Jun
(4) |
Jul
(1) |
Aug
(8) |
Sep
(3) |
Oct
(15) |
Nov
(10) |
Dec
(3) |
| 2017 |
Jan
(10) |
Feb
(6) |
Mar
(11) |
Apr
(15) |
May
(13) |
Jun
(6) |
Jul
(3) |
Aug
(7) |
Sep
(1) |
Oct
(11) |
Nov
(2) |
Dec
(3) |
| 2018 |
Jan
(4) |
Feb
(1) |
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
(2) |
Oct
(3) |
Nov
(1) |
Dec
(4) |
| 2019 |
Jan
|
Feb
(1) |
Mar
(2) |
Apr
(1) |
May
(1) |
Jun
(2) |
Jul
|
Aug
|
Sep
(1) |
Oct
(3) |
Nov
|
Dec
(1) |
| 2020 |
Jan
|
Feb
(2) |
Mar
|
Apr
(1) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2021 |
Jan
|
Feb
(2) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
|
| 2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
| 2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(3) |
2
|
3
(1) |
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
|
|
|
From: Brian M. <bri...@ea...> - 2009-07-03 17:01:51
|
1. I discovered this morning when trying to reproduce this problem with simuv3, that the setup i sent you will not reproduce the problem. The setup i attached to my first post will reproduce the problem with both sims. 2. It occured to me this morning that i never tried removing the change i made to simu.cpp after i changed racemain.cpp. I discovered that the simu.cpp change is not neccesary. In fact, the change causes some cars to drift laterally on the track until the race state changes to race. Thank you, Christos, for bearing with me while i tracked this problem down. |
|
From: Brian M. <bri...@ea...> - 2009-07-01 14:08:26
|
Christos Dimitrakakis wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
> | First of all, i reverted back to the original wheel.cpp. I did
> leave one
> | line in wheel.cpp:
>
> | if (max_extend < new_susp_x) {
> | new_susp_x = max_extend;
> | wheel->rel_vel = 0.0f;
> | } else if (new_susp_x < wheel->susp.spring.packers) {
> | /////////////////////test////////////////////
> | new_susp_x = wheel->susp.spring.packers;
> | //////////////////////////////////////////////////////
> | wheel->rel_vel = 0.0f;
> | }
>
> | (Correct me if i am wrong,) new_susp_x should never be beyond the
> | limits of the suspension course.
>
>
> Yes, this is already fixed in simuv3.
>
>
> OK. These seem to work fine.
> I will do some more testing. Do you have an example car where the
> problem appeared?
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>
> iD8DBQFKS2NqyBv6kELa61sRAgS8AJ0fk351J7/wAKfa0tOu0R+BZ9/ehgCfXGJh
> VXMvpyqDRhcuuwBIr8/zqhA=
> =VeOO
> -----END PGP SIGNATURE-----
>
The setup i have attached is more obvious in demonstrating the problem
than the first setup i posted. If you can not reproduce
the problem, i must have some out-dated code somewhere in my torcs
version.
|
|
From: Christos D. <ole...@fa...> - 2009-07-01 13:24:11
|
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
| First of all, i reverted back to the original wheel.cpp. I did leave one
| line in wheel.cpp:
| if (max_extend < new_susp_x) {
| new_susp_x = max_extend;
| wheel->rel_vel = 0.0f;
| } else if (new_susp_x < wheel->susp.spring.packers) {
| /////////////////////test////////////////////
| new_susp_x = wheel->susp.spring.packers;
| //////////////////////////////////////////////////////
| wheel->rel_vel = 0.0f;
| }
| (Correct me if i am wrong,) new_susp_x should never be beyond the
| limits of the suspension course.
Yes, this is already fixed in simuv3.
OK. These seem to work fine.
I will do some more testing. Do you have an example car where the
problem appeared?
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFKS2NqyBv6kELa61sRAgS8AJ0fk351J7/wAKfa0tOu0R+BZ9/ehgCfXGJh
VXMvpyqDRhcuuwBIr8/zqhA=
=VeOO
-----END PGP SIGNATURE-----
|
|
From: Brian M. <bri...@ea...> - 2009-07-01 13:10:27
|
Christos Dimitrakakis wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Brian Martin wrote: > | > | I determined that this problem was caused by stale bot code on my > | system. (I hope i did not waste your time on this problem, Christos. > | If i did, you have my sincere apologies) > | > > It is OK, I have but little time these days to spend on torcs, and > whatever I have I spent on the sim. > > Part of the levitation problem could be the raceengine code. > The other part is the vertical collision code I think. > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.6 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iD8DBQFKSR26yBv6kELa61sRAqaAAJ4/PnXGisZ1x6Qg4HMZdSFodEpTagCfaHw7 > hr2g/+MD62O/n944EtykOn8= > =4d8/ > -----END PGP SIGNATURE----- > You are right about the raceengine code, as you will see below. The problem is that the user sees the cars on the track before the sim is fully initialized. First of all, i reverted back to the original wheel.cpp. I did leave one line in wheel.cpp: if (max_extend < new_susp_x) { new_susp_x = max_extend; wheel->rel_vel = 0.0f; } else if (new_susp_x < wheel->susp.spring.packers) { /////////////////////test//////////////////// new_susp_x = wheel->susp.spring.packers; ////////////////////////////////////////////////////// wheel->rel_vel = 0.0f; } (Correct me if i am wrong,) new_susp_x should never be beyond the limits of the suspension course. Now back the levitating car problem. I changed simu.cpp like this: void SimUpdate(tSituation *s, double deltaTime, int telemetry) { int i; int ncar; tCarElt *carElt; tCar *car; SimDeltaTime = deltaTime; SimTelemetry = telemetry; for (ncar = 0; ncar < s->_ncars; ncar++) { SimCarTable[ncar].collision = 0; SimCarTable[ncar].blocked = 0; } for (ncar = 0; ncar < s->_ncars; ncar++) { car = &(SimCarTable[ncar]); carElt = car->carElt; if (carElt->_state & RM_CAR_STATE_NO_SIMU) { RemoveCar(car, s); continue; } else if (((s->_maxDammage) && (car->dammage > s->_maxDammage)) || (car->fuel == 0) || (car->carElt->_state & RM_CAR_STATE_ELIMINATED)) { RemoveCar(car, s); if (carElt->_state & RM_CAR_STATE_NO_SIMU) { continue; } } if (s->_raceState & RM_RACE_PRESTART) { car->ctrl->gear = 0; } CHECK(car); ctrlCheck(car); CHECK(car); SimSteerUpdate(car); CHECK(car); SimGearboxUpdate(car); CHECK(car); SimEngineUpdateTq(car); CHECK(car); if ( !(s->_raceState & RM_RACE_PRESTART) ) { SimCarUpdateWheelPos(car); CHECK(car); SimBrakeSystemUpdate(car); CHECK(car); SimAeroUpdate(car, s); CHECK(car); for (i = 0; i < 2; i++){ SimWingUpdate(car, i, s); } CHECK(car); for (i = 0; i < 4; i++){ SimWheelUpdateRide(car, i); } CHECK(car); for (i = 0; i < 2; i++){ SimAxleUpdate(car, i); } CHECK(car); for (i = 0; i < 4; i++){ SimWheelUpdateForce(car, i); } CHECK(car); SimTransmissionUpdate(car); CHECK(car); SimWheelUpdateRotation(car); CHECK(car); SimCarUpdate(car, s); CHECK(car); } else { ///////////////////////////test////////////////////////////////////// SimCarUpdateWheelPos(car); CHECK(car); for (i = 0; i < 4; i++){ SimWheelUpdateRide(car, i); } CHECK(car); for (i = 0; i < 4; i++){ SimWheelUpdateForce(car, i); } CHECK(car); SimCarUpdate(car, s); CHECK(car); //////////////////////////////////////////////////////////////////// SimEngineUpdateRpm(car, 0.0); } } SimCarCollideCars(s); /* printf ("%f - ", s->currentTime); */ for (ncar = 0; ncar < s->_ncars; ncar++) { car = &(SimCarTable[ncar]); CHECK(car); carElt = car->carElt; if (carElt->_state & RM_CAR_STATE_NO_SIMU) { continue; } CHECK(car); SimCarUpdate2(car, s); /* telemetry */ /* copy back the data to carElt */ carElt->pub.DynGC = car->DynGC; carElt->pub.DynGCg = car->DynGCg; sgMakeCoordMat4(carElt->pub.posMat, carElt->_pos_X, carElt->_pos_Y, carElt->_pos_Z - carElt->_statGC_z, RAD2DEG(carElt->_yaw), RAD2DEG(carElt->_roll), RAD2DEG(carElt->_pitch)); carElt->_trkPos = car->trkPos; for (i = 0; i < 4; i++) { carElt->priv.wheel[i].relPos = car->wheel[i].relPos; carElt->_wheelSeg(i) = car->wheel[i].trkPos.seg; carElt->_brakeTemp(i) = car->wheel[i].brake.temp; carElt->pub.corner[i] = car->corner[i].pos; } carElt->_gear = car->transmission.gearbox.gear; carElt->_enginerpm = car->engine.rads; carElt->_fuel = car->fuel; carElt->priv.collision |= car->collision; carElt->_dammage = car->dammage; } } The problem is better, but i can still see the car drop as soon as i see the track and cars displayed. If i change racemain.cpp like this: static int reRaceRealStart(void) { int i, j; int sw, sh, vw, vh; tRobotItf *robot; tReCarInfo *carInfo; char *dllname; char key[256]; int foundHuman; void *params = ReInfo->params; void *results = ReInfo->results; tSituation *s = ReInfo->s; RmLoadingScreenSetText("Loading Simulation Engine..."); dllname = GfParmGetStr(ReInfo->_reParam, "Modules", "simu", ""); sprintf(key, "%smodules/simu/%s.%s", GetLibDir (), dllname, DLLEXT); if (GfModLoad(0, key, &ReRaceModList)) return RM_QUIT; ReRaceModList->modInfo->fctInit(ReRaceModList->modInfo->index, &ReInfo->_reSimItf); if (ReInitCars()) { return RM_QUIT; } /////////////////////test/////////////////////////// for (j = 0; j < ((int)(1.0 / RCM_MAX_DT_SIMU)); j++) { ReInfo->_reSimItf.update(s, RCM_MAX_DT_SIMU, -1); } //////////////////////////////////////////////////// /* Blind mode or not */ ReInfo->_displayMode = RM_DISP_MODE_NORMAL; ReInfo->_reGameScreen = ReScreenInit(); foundHuman = 0; for (i = 0; i < s->_ncars; i++) { if (s->cars[i]->_driverType == RM_DRV_HUMAN) { foundHuman = 1; break; } } if (!foundHuman) { if (!strcmp(GfParmGetStr(params, ReInfo->_reRaceName, RM_ATTR_DISPMODE, RM_VAL_VISIBLE), RM_VAL_INVISIBLE)) { ReInfo->_displayMode = RM_DISP_MODE_NONE; ReInfo->_reGameScreen = ReResScreenInit(); } } if (!(ReInfo->s->_raceType == RM_TYPE_QUALIF) || ((int)GfParmGetNum(results, RE_SECT_CURRENT, RE_ATTR_CUR_DRIVER, NULL, 1) == 1)) { RmLoadingScreenStart(ReInfo->_reName, "data/img/splash-qrloading.png"); } for (i = 0; i < s->_ncars; i++) { sprintf(buf, "Initializing Driver %s...", s->cars[i]->_name); RmLoadingScreenSetText(buf); robot = s->cars[i]->robot; robot->rbNewRace(robot->index, s->cars[i], s); } carInfo = ReInfo->_reCarInfo; ReInfo->_reSimItf.update(s, RCM_MAX_DT_SIMU, -1); for (i = 0; i < s->_ncars; i++) { carInfo[i].prevTrkPos = s->cars[i]->_trkPos; } RmLoadingScreenSetText("Running Prestart..."); for (i = 0; i < s->_ncars; i++) { memset(&(s->cars[i]->ctrl), 0, sizeof(tCarCtrl)); s->cars[i]->ctrl.brakeCmd = 1.0; } for (j = 0; j < ((int)(1.0 / RCM_MAX_DT_SIMU)); j++) { ReInfo->_reSimItf.update(s, RCM_MAX_DT_SIMU, -1); } if (ReInfo->_displayMode != RM_DISP_MODE_NORMAL) { if (ReInfo->s->_raceType == RM_TYPE_QUALIF) { ReUpdateQualifCurRes(s->cars[0]); } else { sprintf(buf, "%s on %s", s->cars[0]->_name, ReInfo->track->name); ReResScreenSetTitle(buf); } } RmLoadingScreenSetText("Ready."); ReInfo->_reTimeMult = 1.0; ReInfo->_reLastTime = -1.0; ReInfo->s->currentTime = -2.0; ReInfo->s->deltaTime = RCM_MAX_DT_SIMU; ReInfo->s->_raceState = RM_RACE_STARTING; GfScrGetSize(&sw, &sh, &vw, &vh); ReInfo->_reGraphicItf.initview((sw-vw)/2, (sh-vh)/2, vw, vh, GR_VIEW_STD, ReInfo->_reGameScreen); if (ReInfo->_displayMode == RM_DISP_MODE_NORMAL) { /* RmLoadingScreenSetText("Loading Cars 3D Objects..."); */ ReInfo->_reGraphicItf.initcars(s); } GfuiScreenActivate(ReInfo->_reGameScreen); return RM_SYNC | RM_NEXT_STEP; } The problem is resolved. Brian |