Question about tdble type and vehicle position

Owen McAree <[email protected]> Wed, 3 Dec 2014 10:01:36 +0000
Newsgroups gmane.games.torcs.devel
Message-ID <CAJ14Ejh=tbpuk5O_b_1SOOJ4X+fTu3oJW6xwicb1OiRFEAv1=w@mail.gmail.com>
--001a1135ff9cda125a05094cedbb
Content-Type: multipart/alternative; boundary=001a1135ff9cda125505094cedb9

--001a1135ff9cda125505094cedb9
Content-Type: text/plain; charset=UTF-8

Hello developers,

Firstly I'd like to say thanks for creating such a great piece of software!
I've just started a research job and will be using TORCS extensively to
study the behavior of autonomous vehicles.

I have written a small interface between TORCS and MATLAB such that I can I
can prototype my algorithms quickly and I have come across a small problem.
The 'tdble' type used by TORCS is defined as a float, which for the
majority of parameters makes sense but when working with the vehicle
positions I have found some numerical errors creeping in to the integration
inside SimCarUpdatePos (in car.cpp). The issue comes about when two
vehicles have very similar (but not identical) velocities, which when
integrated with the position get truncated to be identical. This has the
effect that computing the distance between two vehicles returns a constant
value (as the velocities are being made identical). I have attached a plot
illustrating the bug, it shows the computed distance between two vehicles
(one following the other with near identical velocity) when the lead
vehicle brakes.

At first I thought I could simply change the definition of tdble to double
and this would solve the problem, but it seems that tdble is not used
consistently through the source, so this caused more problems! In the end I
modified the structures a little to simply have the position values
represented as double (in addition to the tdble values, for compatibility)
and leave the rest untouched, this has solved the problem (but is not
elegant!).

I appreciate this is an edge case which will only crop up very rarely, but
if you'd like me to share my changes with you (or if you have a more
elegant solution!) please let me know.

Best regards,
Owen

-- 
Dr Owen McAree
Research Fellow
Department of Automatic Control and Systems Engineering
University of Sheffield, S13JD
T: 0114 222 5138
E: [email protected]

--001a1135ff9cda125505094cedb9
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr">Hello develope=
rs,<div><br></div><div>Firstly I&#39;d like to say thanks for creating such=
 a great piece of software! I&#39;ve just started a research job and will b=
e using TORCS extensively to study the behavior of autonomous vehicles.</di=
v><div><br></div><div>I have written a small interface between TORCS and MA=
TLAB such that I can I can prototype my algorithms quickly and I have come =
across a small problem. The &#39;tdble&#39; type used by TORCS is defined a=
s a float, which for the majority of parameters makes sense but when workin=
g with the vehicle positions I have found some numerical errors creeping in=
 to the integration inside=C2=A0SimCarUpdatePos (in car.cpp). The issue com=
es about when two vehicles have very similar (but not identical) velocities=
, which when integrated with the position get truncated to be identical. Th=
is has the effect that computing the distance between two vehicles returns =
a constant value (as the velocities are being made identical). I have attac=
hed a plot illustrating the bug, it shows the computed distance between two=
 vehicles (one following the other with near identical velocity) when the l=
ead vehicle brakes.</div><div><br></div><div>At first I thought I could sim=
ply change the definition of tdble to double and this would solve the probl=
em, but it seems that tdble is not used consistently through the source, so=
 this caused more problems! In the end I modified the structures a little t=
o simply have the position values represented as double (in addition to the=
 tdble values, for compatibility) and leave the rest untouched, this has so=
lved the problem (but is not elegant!).</div><div><br></div><div>I apprecia=
te this is an edge case which will only crop up very rarely, but if you&#39=
;d like me to share my changes with you (or if you have a more elegant solu=
tion!) please let me know.</div><div><br></div><div>Best regards,</div><div=
>Owen</div></div></div><div><br></div>-- <br><div class=3D"gmail_signature"=
><div dir=3D"ltr">Dr Owen McAree<div>Research Fellow</div><div><div>Departm=
ent of Automatic Control and Systems Engineering</div><div>University of Sh=
effield, S13JD</div><div>T: 0114 222 5138</div><div>E: <a href=3D"mailto:o.=
[email protected]" target=3D"_blank">[email protected]</a></div=
></div></div></div>
</div>

--001a1135ff9cda125505094cedb9--
--001a1135ff9cda125a05094cedbb
Content-Type: image/png; name="tdbleBug.png"
Content-Disposition: attachment; filename="tdbleBug.png"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_i38irgku0

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
--001a1135ff9cda125a05094cedbb
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
--001a1135ff9cda125a05094cedbb
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Torcs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/torcs-devel

--001a1135ff9cda125a05094cedbb--