In this case, since we are not depending on sensor states (LiDAR, camera etc.) and only care about other vehicle states, pedestrians etc. using no render mode makes sense. This would also reduce resource consumption and increase FPS. Documentation is here
The egg file created only contains 0.9.10 and not the minor 0.1 version. Since we are passing the version directly, this causes the egg file path to be incorrect.
Need to think of a better way of adding this to path.
Currently target_speeds is of type List[floats] and desired_speed is of type float. Since the latter is for continuous while earlier for discrete, unify into a single config desired_speed which can be of type List[floats] or float.
Currently the logs are created using the experiment name and output dir params in the config file. This doesn't seem too useful so think of a better way of enhancing the logging and reduce the tree structure of config yaml file.
Currently, the vehicle only takes left turns since the global route sets the final destination as the left area. Enhance this logic to make it go straight and right too.
At the moment a negative reward is given if the vehicle is within certain vicinity of pedestrian or vehicle. Improve this to make it more robust and incorporate the distance to these obstacles.
Currently, the ego vehicle technically has a "Gods-eye" view of the environment. In order to make it more realistic, it should only contain info within specific surroundings.
The environment exits with a segmentation fault that occurs after n timesteps. This is an indeterministic number failing within even 2000 timesteps and as late as never as seen.
The following has been observed.
It is seen to fail faster in python 3.8.16 (environment.yml) as compared to 3.7
It was thought that this might be due to the collision sensor. However, the collision sensor was completely removed from the script and it stil continued to fail.
This seg fault might be occurring due to failure of destroying the actor. It seems that the seg fault is occurring due to the carla library. However since the carla python library is a wrapper for C code, it is hard to debug exactly what is going wrong.
After the traffic manager instantiation was moved to after setting it to synchronous mode, it seems these seg faults occur less. However, this could be unrelated.