2 minute read

Finally, we have made some visible progress with the car learning how to follow the lane implicitly. To do this the idea is pretty much the same as the previous weeks, to enrich the dataset with more complex situations so that the car is able to handle the straights and the curves of the road. Once we have increased once again the dataset, we have the next composition of a balanced dataset.

Histogram of the steering values used for training

In total we end up with around 45.000 images. By adding this complex situations and adjusting the output of the network, this last task has to be done manually, adjusting the range of the output with the range of the Carla simulation to be able to interpret the predictions of the neural network. Once we have all this adjusted, we end up with the next run.

It is interesting to watch some of the behaviour of the car in the previous video, for it has learned how to correct complex scenarios. As an example, in the first video (around the 28 second) once the turn is over, the car heads for the sidewalk, but then abruptly turns to the left straightening itself back to the lane. Trying to remember, previously we added to the dataset some weird start cases were we turned the car some degrees along the yaw so that it could learn how to straight itself back to the lane, and in the example from the video we can appreciate similar behaviour were it tries to overcome this scenario by following the lane accordingly.

What comes next

As I keep learning the ropes of machine learning by training a vehicle how to follow a road, a more simple task arise in front of me. I am currently using the 0.9.2 version of the Carla simulation, but it is always a good idea to catch up with the newest developments around the software given that it usually comes with much more functionallity, better documentation and solutions to the machine learning problem and a greater scope regarding the newest technology.

This last version currently is the 0.9.13 and as saw in the video, this version comes with improved vehicle physics, and I emphasize on this because it could be the main reason why the model trained on the 0.9.2 version wouldn’t work on the new one. Basically, we need to shift everything we had to the 0.9.13 and try to test it once more in order to make it work on our machine, for one of the main problems I had when I began my master thesis with this version, was that because it has better graphics and more assets, the cost of running it was higher than the 0.9.2. So, if we tweak again with the configuration, we might end up with the same quality of client-server connection as we have with the 0.9.2 version. But this is a work still in progress…