Day 5: Business as usual. Follow Sagar's adventures as he hangs around the Netherlands in the days leading up to the Grand Cooperative Driving Challenge.
The plan for today was to continue with testing and fixing the controller issues identified yesterday. Proper testing and verification of the controller requires a broad, long stretch of road with multiple vehicles in a platoon. This is something we assumed we would have, during this week long preparation phase in the Netherlands. Unfortunately, this is not so. The road provided by TNO is extremely narrow, and not sufficiently long for proper platooning tests. It does work for the smaller cars, but things choke when our truck enters the fray. This is currently a big concern and we have highlighted the matter with TNO. So for the moment, we are limited to exploratory tests with a single vehicle in the parking lot outside the VeHIL lab. This helps to some extent in tuning our start-and-drive-away phase, but is less than satisfactory in general.
The improvements made to the controller yesterday now mostly work. The truck does what it is supposed to do, but we wish to tune the performance further. The ideal is a butter smooth driving experience and we are still a few tricks away from that. This is not a strict necessity, but we love to "sätta pricken över i", as the Swedes would say. Towards this end, we are working towards improving the launch and braking performance.
We also did some trials today for improving the performance of the GPS. There are a few overhead bridges on the highway where the event will take place. As the vehicle passes under the bridges, we lose the GPS signal. This degrades the performance of the platoon, because precise knowledge of the location of each vehicle is needed for automatic control. Therefore, we implemented a filter that predicts the GPS data for some time, even if we have lost the actual GPS signal. This filter was tested and works satisfactorily.
When vehicles are exchanging data and moving at high speeds, it is important that the clocks in all vehicles are synchronized. One strategy is to synchronize with the GPS time, which is received from overhead satellites. However, synchronizing to the GPS is a bit tricky, because there are delays in the GPS receiver and in transmitting from the receiver to the computer. We have a method that smoothly synchronizes the computer clock to the GPS time and today we tuned and calibrated this process, so that the computer clock stays within a few milliseconds of the GPS clock.
Although we discontinued the use of Google maps for a pretty graphical display of the system, Simon has developed a pretty cool (and geeky looking) GUI for the system. In the coming days, we will tweak it so that it displays a lot of useful system stats during live operation. This is a Good Thing(tm) because the system contains many bits of information spread all over the place and we need to monitor these continuously to understand what is going on within the system.
A major concern for platooning is to avoid joining the platoon of vehicles in the lane next to ours. This problem is far from trivial and so TNO has currently agreed to provide us some pre-information before the start of a heat, which reduces the amount of "guessing" the autonomous system has to do. We will have 10 minutes to make use of this information, after which the system must enter the totally autonomous mode. So we also implemented a way to rapidly feed this information into our computers.
We tried some tests with other teams and the truck behaved quite well. But when the same tests were repeated with the TNO vehicle, the performance degraded quite badly. Our analysis suggests that the TNO vehicle doesn't send well-formed data continuously. Even though TNO will fix this problem, we now have some new ideas to make our system even more robust to such conditions. We discussed these ideas quite late into the night and the plan is to implement them in the first half of tomorrow and test them in the second half.
In summary, we are continuously evolving our system to deal with problems that might occur if (when?) the competition conditions deviate away from ideal.