Week 21-22 - Perfecting Pilot
Progress This Week
Objective
The objective is to get a pilot that does not make the mistakes that could be seen in the last post videos.
Dizy and sleepy
In order to get recovery data from the Expert Pilot I needed it to fail and recover without those failings being recorded.
In order to do this I firstly divided the data into 2 topics, the cmd_vel which is the one the car reads in the gazebo simulation and the car_vel from which I record the data and generate the datasets.
With that done I programed 2 pilots based on the expert one, the first would stop actuallizing the information sent to the cmd_vel and after a few iterations recover the control.
However this was not enough to create hard scenarios for the pilot. So instead of just sleeping I made the pilot get dizy and turn hard into one direction. This ment some recordings had to be stopped early because it turned too much too long in the wrong place, but overall I got some hard recovering data for every circuit.
Hard cases
Not being enough I programmed another selector similar to the one that was programmed for the experts which selected the hardest cases of each dataset.
After a few tries and versions all of the 6k data of hard cases were sharp turns, recoveries, etc.
Pilots
After the processing of the data I gor 4 pilots, all with over 200k data:
First one
The first one with the first version of the hard cases and an unintentional repetition of some datasets was able to compleate the simple circuit and the nurburing ones, not seen in the training, and montmelo (which was the one with extra datastes), but not montreal.
Second one
This time I tried to have every dataset and a new hard cases, thinking it would be perfect I was disappointed when it failed in montmelo and montreal.
Third one
Learning from it I dupplicated some datasets for montreal and montmelo, seing that it had work in the first one, and gave 4 times the new and last hard cases, which I am quite satisfied with.
However it failed, not in hard curves, but when recovering in simple staright lines (I am yet to retry this with the computer freshly started).
Fourth one
Thinking this result could be casued by the afine and knowing that with the hard cases and the dizy pilots I may not need to afine, I tried a last pilot without it.
I actually got better results, but still some problems in cases where the line was far, which seamed worse in straight lines.
Conclusions
I feel like I am very close, and I can only think about a few things that may be causing this.
Mainly i think here is corrupted data, probably from the dizzy pilots, in which case I wanna try to: train without them, test the datasets with the expert pilot in an offline test, re do all the datasets if I can´t find the corrupted data.
However I will be discussing this with my coordinators to dicide the best course of action to be done with the General Neural Pilot this weak once and for all.