The online racing simulator
Searching in All forums
(16 results)
kazmer
S3 licensed
nice work Tommy!
i'm still waiting for someone who could do this project
kazmer
S3 licensed
wow, got to check from home!
kazmer
S3 licensed
I dont think you need to aim the competitive AI stuff first
If you can get the right inputs, and can make outputs right, then you have two blocks checked and one big black block unknown stuff. Which you can divide into smaller blocks which you can hack/programm, and the unknow will be smaller and smaller at the and you will find yourself hacking the last one tiny little black box, and think it was't so hard.


Quote from blackbird04217 :The Ai shifting will be the next step, and it shouldn't be too hard. Though that said; I am still limitting the setup to 40mph. The car went to 40mph not because the AI didn't shift, but because that was the limit I setup for it. I am quite astonished this worked the first try, with only 20 minutes of fiddling with what I completed the previous time - granted I hacked something in really quick so it is not completely appropriate! But, it is a first step!

That said I need to make the AI 'see' the DriveTo points through the visual sensor. As of now I hacked it to grab the DriveTo points through the world directly. Then I will need to look ahead and choose which point to drive towards. Currently it goes from cone to cone, as you can see it turns hard as it gets near the cone then continues on. I have a small radius around the cone. The car needs to be within 2.5 meters of the target, this will need to expand.

The primary test here was to see if the LFS layout format kept track of the object order. Meaning the first cone placed is the first DriveTo point, and so on. Currently if I was to go click in the middle to try adding another DriveTo point it would corrupt the 'ai' file and that wouldn't be good. So the tip here would be to add more DriveTo points than needed, and move them around as necessary, ALWAYS maintaining proper order and only deleting from the back if absolutely needed. But the test succeeded, and that is one less thing to worry about with the LFS to AIRS interface.

But yes, onto shifting and actually driving; which is the hard part. Do remember as I've said 100 times, competitive AI is a hope, but not the goal.

Last edited by kazmer, .
kazmer
S3 licensed
wow!
nice one!

I think you should take small steps.
- get the AI to shift (couldn't be so hard)
- create and use the stability data
With this you can build a basic ai, and you can fine tune this buliding blocks, to eliminate all errors in these, sou you can take the next step.

Quote from blackbird04217 :New updates for the very few people following the progress here. I have successfully completed a lap with my AI driving!! Ok, so this was just following cone after cone and keeping the car's speed to 40mph and the car doesn't even shift up yet, so that is a real problem as well... But in any situation I still have the AI driving a lap!

The only problem is that is actually the easy part. I am trying to decide whether I should work on getting the AI to go faster through this lap, or whether I should start doing my experimental stuff with the reference points.

Currently the AI doesn't shift up,(except for while waiting on the grid), shift down or do any sort of car control besides 'turn towards next cone'. So it is a pretty non-intelligent driver, but that is beside my point...

The driver went around Fern Bay Club!!!!!!!!!!!!!!!

kazmer
S3 licensed
But you can easy get the longitudinal angle data from from outsim. Or the outsim only give out the chassis data, without the wheels?

Quote from blackbird04217 :Hmm, you bring up a good point about the hills, though my AI (as of now) is developed with little to no current information about hills in LFS. Think of it as flattening the track and just knowing where you should be - this could bring up issues in the future; bridges and other things, but I think it may be negligible for now.

kazmer
S3 licensed
Ohhh, am i stupid x2 becouse i didnt get it that the outsim is manly for controlling the motion simulator
I didnt look in it becouse it's name was insim
Thanks

It think im not understand something. I was't worte G-meter. Vielleicht würde es besser auf deutsch zu screiben

If you press the peadal then the more you press it the more the car would accelerate. If you loose grip the acceleration would't be growing the same rate as before. But for these you sould count in the position and track data (uphill/downhill). And for the braking goes the same. But i think for these you should store the achived datas for different situations. (Like braking uphill is more efficient than downhill)




Quote from AndroidXP :Unfortunately, it doesn't. Have a look at the G-meter while braking on the limit and while locking your wheels. The difference will be minimal - far too unreliable to draw conclusions from. Same goes for wheelspin.

It's in your LFS directory in the "docs" folder, a file named InSim.txt (contains info about all LFS interfaces).

Last edited by kazmer, .
kazmer
S3 licensed
Quote from blackbird04217 :Back on topic; can anyone think of a way using position, direction, heading and angular velocity to detect _which_ tires are UNDER, NEAR, AT or OVER_LIMIT?? I don't think this is even possible, though I am still trying to get outside the box. Perhaps there is other bits of information that LFS has. Android and I have discussed oversteer/understeer using these, and in those specific cases it would be as simple as detecting oversteer and setting both rear tires to OVER_LIMIT. (Vice versa for understeer). However there are situations, like hard braking/accelerating, where the car is not understeering/oversteering but the tires are OVER_LIMIT and this (as of now) is what I am trying to detect using what LFS gives me; and as pointed out by both Android and myself, it may not have fool-proof solution.

What about to measure how the car reacts to the control inputs?
If braking, then the ideal braking point is at the largest amount of -delta speed. So the max acceleration point is at the maximum +delta speed. If you loose grip, these would decrase dramatically

I dont think you need the wheel lock information, only the know the problem itself (like understeer, oversteer, brakelock, wheelspin). With the car diretion and the car moving vector plus the controller standings you could get the problem i think.

Could you post a link (or send it to my e-mail: kelemenlajos'snail'google.com) to the outsim documetation from LFS, i didn't find any

some math stuff for your project:
http://www.lfsforum.net/archive/index.php/t-3369.html
kazmer
S3 licensed
I didn't say that on thy first try you shouldt make a minimal working thing but for the end product, you should consider to use some kind of experience scale to make it competitive for beginner/moderate/pro drivers. The ideal would be to have the could AI learn from the players too (braking point, lines etc.) but on the beginning it's not an important pice of the project .

Ok, i think i got it. You use the phisics to recreate the datas a normal driver would get by driving, and not to directly feed it to the AI. I think this way the AI could be more idependent. Sorry for the misunderstandig
kazmer
S3 licensed
Quote from blackbird04217 :
My original idea had the AIDriver knowing the condition of the front tires and rear tires; WITHIN_LIMIT, NEAR_LIMIT, AT_LIMIT and OVER_LIMIT. So the original idea here was; (IF REAR_TIRES <= AT_LIMIT _AND_ FRONT_TIRES > AT_LIMIT) the car is in STATE_UNDERSTEER. Also twist it around to compute oversteer. In this scenario the AI has no knowledge of whats going on; but can easily make up a reason - that is until I was also going to use a check like (IF FRONT_TIRES > AT_LIMIT _AND_ IsBrakingHard()) then the car is losing traction because of threshold braking and in this case the prevention layer would release the brakes a bit.

Maybe im wrong but there is a difference that you are drifting a bit out of the corner by slightly loosing the front grip, or fully loosing the traction on the front wheels ang get unsteerable. You sholdun't get the information from the physical side, but it could used as plan "B" with corretion variables, like reaction, experience. Maybe sound detection and/or detecting the steering issue would be more accurate.


Quote from blackbird04217 :
- A list of vectors to be used as the 'best known line'. (Needed?)

Yes, you do need this, but this must be created from the ai-s experience.

Quote from blackbird04217 :
- Accurate car gauge / control information; RPM, Speed, Selected Gear Maybe this includes the current control positions too like SteeringWheel state of MAX_LEFT, HARD_LEFT, MID_LEFT, SLIGHTY_LEFT, NEAR_CENTER etc... Considering the AI knows what they did with the controls may this is not useful or even needed.
- Accurate car properties information; Hi and Low of the Powerband, 5-speed, 6-speed, FWD/RWD and other properties that don't change about the car but the driver still needs to know this info.

The more detailed the data the more later you sould use it. It could simulate the experience level of a driver. A beginner would concentrate on to stay on the track more than watching the RPM, and shifting points.
kazmer
S3 licensed
Quote from DavidTiger :
Eventually I'll make multiple resolutions, but just now I am too busy with other things

Ok thx
kazmer
S3 licensed
DavidTiger, could you make a 800x480 version of the VLFSDash?
Thx.
kazmer
S3 licensed
Quote from DavidTiger :Later today (01:15 am just now) I will release a 1024x768 version and try to release 800x480 version

EDIT: Just been notified some family is coming up from England, so the programming will be delayed until this monday
Sorry guys, just wouldnt be fair to sit on the pc programming while having family from 250miles away, Whom I see like once every year

No prob
Thx for trying the 800x480 version
kazmer
S3 licensed
Hmm, after 3-4 hours i know what you mean by "it takes some times". I got a 0.2.2 version in 800x480, but nothings work perfectly like in your version... I think i just got to wait for your 800x480 version

Quote from DavidTiger :Yes and No well I will (if i can/tried to make smaller before) but it takes sometime to resize all the controls...
I cant spend all my time upgrading/improving this. So there wont be a smaller version for sometime Its christmas time just now and I dont feel like programming

-David

kazmer
S3 licensed
Quote from blackbird04217 :
In this situation I don't think the AI uses reference points as 'braking' points anymore although perhaps it does and I am missing a step. Perhaps what I am describing happens on a layer above the "Attempt Layer" in my previous idea. Perhaps this is a "Direction Layer" and the "Attempt Layer" tries following the direction as fast as it can.

----------

Now this presents a very interesting problem when it comes to a blind hill. Like AS1. In real situation a human would practice that corner a few times at a slower speed, then speeding it up. It's a blind spot, unknowns. The memory would build and reference points let you know whats behind the hill and where to aim - even if you can't see it exactly. So I wonder if my new "DriveTo" point, although hidden behind a hill, would still be estimated based on the Tree-RP and when visible the TireStack-RP which will allow the AI to judge better at where they are aiming. Perhaps it fails altogether; but I still need to get this working as an idea before I try coding it!

This is about as much thought as I have been able to put into this as of lately. My main worry is that it goes against the initial ideas. Which I am becoming less sure about to be honest. I thought I had a clear idea, but apparently I don't since i am starting to wonder if this fits with the initial goal or not.

For those that have followed the thread, and *actually understand the question* please I want your input!

I think you sould use a field of recognition which is followed by a line of decision. And from that line and your actual place on it you should start your vector to the center of the next field of recognition.

At the first lap the field of recognition would be great, this would simulate the not knowing of this track. In this field the ai should figure out where should he turn, could and should corret his line angle and speed. On the line of decision the ai would create a vector to the center of the next field of recognition.

The learninc courve could be achived as the ai should each time recreate the field size (at the ideal state whisch could't be achieved it should be a point, at the beginning it should be wide as the track and wery long) after examining his speed, angle, and time at the next field of recognition. After a while the ai should analise more info, like delta of the tire temp. As for the randomness you should add a random diversion from the calculated ideal points. (More experienced the AI so less the diversion the ideal points).


Something like this




vector
\ \ \
\ \ \
\ \ \
|-------------------------------| Line of decision
|-------------------------------|
| |
| |
| | Field of recognition
| |
| |
|-------------------------------|
| |
| |
| |
Road

kazmer
S3 licensed
It's a sam u70?
You will love it , but the res...
well we will wait for a res update
kazmer
S3 licensed
+1

pleeeeeeeeeaaseee
FGED GREDG RDFGDR GSFDG