Day 7: Before the cock crows. Follow Sagar’s adventures as he hangs around the Netherlands in the days leading up to the Grand Cooperative Driving Challenge.
We left the hotel at 4.30am today morning. Drove down to TNO and thence to the DAF test track near Eindhoven. The tests on the track started at 6am and we were quite happy with our performance. It was one of those rare times when after 2 hours of testing, you get out the truck with a big smile and think, “Well, it all just worked. Wonder what we should do now..” We managed to take off properly, maintain the proper distances between vehicles and stop as needed. There is a chance to tune the braking performance a bit more, and maybe start off in a different gear. The later will prevent multiple gear shifts and thus save a few seconds during acceleration. [Unlike a normal car, a heavy duty truck does not start off in the first gear. The initial gears are for hill climbing, creeping and so on. There are special gears to engage different differentials (like a 4 wheel drive on steroids) ] We’ve seen our system do a segmentation fault in some extremely rare conditions. Since we cannot replicate it, I have added a handler that catches the segfault and prints the stack trace before abort()ing. As these things go, since this diagnostic function was added, we’ve never seen the fault again. We just hope it doesn’t surface during the competition. fingers crossed
Early in the afternoon, we made a couple of runs across the actual highway where the competition will take place. This was more for TNO’s benefit rather than ours. We confirmed that we saw various wireless messages they were transmitting from the roadside units.
There is a good camaraderie between the teams and at times we even swapped team members in the vehicles. I sat in with the German team and it was really impressive to see the display interface they have. It is an openGL based graphical one which pulls in google streetviews and shows the various vehicles in the platoon together with the critical parameters being transmitted by each vehicle. They even have pretty traffic lights and speed signs which show up in the visualization, as they are detected. We have a really nice GUI visuailzation as well. But since our programmer was more influenced by the games which scarred his childhood, we have a monochrome green display on a black background that looks like some retro computer game. But it is quite impressive 🙂 I’ll put up a screenshot soon.
Later in the afternoon, we tested our performance near traffic lights. This was the thing we had tested the most and were confident that it would “just work”. Ironically, it “just never worked”. We kept seeing nonsense data values and eventually when we did see the lights changing colors, the system did not react. This is extremely strange, since the underlying code is really simple and many of its functions are reused in a lot of other places. Ultimately, this issue stayed open and took the grumpiness of the team members to hitherto unscaled heights (depths?). (As if starting at 4am wasn’t enough..) During the debugging efforts, we checked our clock synchronization with the German team and it was quite heartening to see that we were actually synchronized down to the last second (we measure the time in seconds since the Unix epoch). Unfortunately, I couldn’t find a way to see the time since the epoch in milliseconds, else we could have compared that too. But as I have mentioned elsewhere, we are engineers and ultimately need to devise systems that do not break apart with a few milliseconds difference. It is okay to require ridiculously strict time synchronization between various units in our own vehicle, but not okay to demand that all the vehicles in a street be similarly synchronized.
So in summary, the day started on a really high note, but ended the opposite way. It is quite frustrating when you can’t even form a hypothesis about what could be going wrong. We are hoping to debug the issue during runtime tomorrow. It absolutely needs to be solved, else we cannot compete at least in the Urban scenario. We also have some controller tweaks that can be tested on the DAF test track tomorrow morning. Yes, we start at 4am tomorrow morning too!