fmirus / torcs-1.3.7

patched version of torcs1.3.7 including the scr-server and a patch to send the game image to another application
GNU General Public License v2.0
37 stars 33 forks source link

Project NeuroEngineering TUM #2

Open michael-heinrich opened 6 years ago

michael-heinrich commented 6 years ago

Adds two driver implementations "pid_driver" and "hemic". Both are programmed to follow a reference car, but behave differently.

Implementations are a joint effort by CodingJonas and michael-heinrich.

fmirus commented 6 years ago

The status of this PR looks already quite good (just a few comments after a very brief review). The code compiles and the drivers can be included in the game. However, there still seem to be some issues on the functional level:

So far, I just ran some very brief tests with the driver implemented in torcs_ros on the standard forza race track. Which tracks/ego-driver setups have you used for evaluation?

CodingJonas commented 6 years ago

both drivers do not avoid collisions with the ego-driver and sometimes shoot him off track

They try to avoid collisions, and except for some special occasions they do manage this. The ROS driver also drives not perfect, acting quite random sometimes and our drivers sometimes fail to react propely to this.

the pid driver stays in close range of the ego-vehicle but sometimes goes off-track and changes its direction seemingly at random

The pid driver is meant to keep an exact distance in x and y direction to the other car. We run into the problem that the pid driver came in conflict between keeping a certain distance and staying on the track if the other car is close to the edge of the track. In the end we decided to leave the track if the car it follows drives close to the edge of the track but always focusing on keeping the same distance.

The pid driver is unfortunately not perfect and sometimes comes off to far from the track. That was of course not our goal. But experiments showed it always comes back on the track with only short delays.

the hemic driver does not really stay in close range of the egp-driver. Instead, it goes very far away from the ego-driver, even out of sensor reach

Sounds like a wrong configuration @michael-heinrich did you check the minimal throttling?

currently it seems that we can include only one instance of each driver in the race, is that true/intended?

The pid driver always keeps its distance to the first driver in the list made during race configuration. This can be changed easily, I'll add this in the documentation. @michael-heinrich Not sure about the hemic driver.