Post

My Time in Formula Student

What is Formula Student?

Formula Student is a global engineering competition in which university students design, build, and race formula-style cars. The competition challenges teams to showcase their technical skills, innovation, and teamwork.

The goal of Formula Student is to provide students with hands-on experience in engineering, project management, and teamwork. It allows them to apply their theoretical knowledge to real-world challenges and gain practical skills that are highly valued in the automotive and other industries.

Participating teams are required to design and manufacture their own vehicle, considering factors such as aerodynamics, chassis design, powertrain, suspension, electronics, performance, cost, and, as of the past few years, the autonomous driving system. This is taken under close scrutiny by professionals from the automotive world, and forms part of the competition outcome, next to the actual spectacular racing events. They also need to develop a business plan and present it to a panel of judges, demonstrating their understanding of the market and financial aspects of the project. More details can be found here.

Formula Student competitions take place all around the world, attracting teams from prestigious universities and technical institutions. It is a platform for students to network with industry professionals and showcase their talents. One of the biggest Formula Student competitions is the Formula Student Germany, whose 2019 event also formed the pinnacle of my time in Formula Student.

My Formula Student Journey

How It All Started

When I started studying in 2016, I immediately felt that it was not enough. I was learning how to look at electric circuits on paper. I was learning how to write programs. On paper. It dawned on me that once I try to start earning money in the automation sector, I would sit there with a task from my employer and not be able to even comprehend what I am required to do. Not to mention ever starting a business on my own.

So when, in my fourth semester, a friend of mine came along with the proposition of joining this crazy competition, where highly intelligent students build space-ship-esque racing cars accelerating to 100km/h in three seconds, I decided that this was exactly what I was looking for. I felt like I had absolutely no merit to even apply, but what did I have to lose? Especially when considering the fact, that this formula student team from Aachen, aptly named Ecurie Aix (🇫🇷 racing horse stable from Aachen, after an actual local racing horse stable), was in the process of building up a group to equip one of their previous vehicles to race autonomously, and they happened to be looking for a software developer, I decided that this was right down my alley.

Note: I was not a software developer.

All experience I had were a tiny bit of C++ I learned during labs at the university, and whatever I had programmed on paper. But as this role was pretty much exactly in line with my passions for “technology that does things by itself”, the entire reason I had gone down the rabbit hole of electrical engineering, I applied.

Becoming a Driverless Software Engineer

So there I was, in Ecurie Aix’s workshop, sitting face to face with the group leader of the driverless group. I was honest about my experience. But he was positively convinced by my guarantee that I could learn whatever I had to to fulfil my tasks. And as the driverless group currently consisted only of a very small number of people (3), and there were many roles to be filled, I was given the chance. Knowing little of the driverless pipeline as of then, and given my lack of experience in software, I was given the small and simple task of creating a simultaneous localization and mapping system for the vehicle. Disclaimer: It was not simple.

Designing the System

Requirement Overview

Before I delve into our development process, let me provide a quick overview of how the driverless competition worked back then. While nowadays the Ecurie Aix vehicle is capable of driving both autonomously and with a driver, during my time there we had equipped a car from a previous year with sensors, a processing unit, actuators and various other devices to enable the car to drive autonomously.

Test Track

The race track is bounded by plyons, blue ones on the left, yellow ones on the right. Based on these, the vehicle must find its way through it as quickly and destroying as few cones as possible. Further disciplines are acceleration along a straight path, and skid pad, where the vehicle has to perform two left circles, then two right circles, then automatically come to a stop. See here for more information.
No matter the state of the physical system, we additionally had to perform well in the theoretical design of the system, as this also granted many points in the competition, during the so-called “design event”.

Development

With these requirements in mind, we set out on the huge journey ahead of us. Not knowing much about actual engineering procedures, requirement analysis and concept development, everyone had their task and went at it. Not knowing anything about localization and mapping, I decided to start by brushing up on some of the necessary theory. Boy, oh boy was I wrong when happily threw my stochastics and statistics material out of the window after finishing high school. I read up on all the SLAM approaches and had to decide what to use. This was a tough decision, as there are many, and I had to try find an algorithm that would harmonize with the sensors we had on board, and that wouldn’t gulp up the entire system’s processing power. A further aspect to consider was using an algorithm I actually sort of understood. What seemed a simple matter of saving the positions of some plyons turned out to be a highly complex, non-deterministic kind of “chicken-or-egg” problem: You can’t create a map of your surroundings, if you don’t know your location, and you can’t know your location, if you don’t have a map. After days of trying to bring the theory into an actual program, I decided to just start googling. Which was definitely the correct approach. Little had I known before, how much code and resources there are already out there. So now I had to decide wether to use C++ or Python…both were ROS (a set of software libraries used for robotics development) capable, which was what our system would be based on. I decided to go with C++, because I had heard from somewhere that it is faster. Back then, I didn’t know why, but as SLAM seemed to be such a computationally expensive task, it seemed like a good choice. All the while familiarizing myself with Git, ROS, and C++ itself.

I decided to go for the so-called FastSLAM algorithm. It seemed intuitive and fast, but it turned out especially as computationally expensive and complicated to implement. And there wasn’t any open source code tailored to such a specific use case as ours (at least I didn’t find it). So I worked and worked and worked and worked and worked and worked and worked (needless to say, my actual studies suffered a little). Having a growing feeling of being out of my depth with this humongous task, I spent days and nights sitting and programming, debugging, both at home and at the Ecurie Aix workshop, together with other team members. Summer was turning into autumn and winter, back to spring, and the first nuances of a working program started showing. Little did I know that the “real” and most intense work was still ahead, come testing the system with real world data.

Testing the System

We now had a bunch of algorithms. There was perception, which enables the vehicle to sense its surroundings and determine the location of the plyons outlining the race track, with respect to the vehicle. For this we used stereo cameras and Lidar sensors. There was localization and mapping, which made use of the detected pylons, in addition to an IMU and odometry. There were path planning and there was control, which causes the vehicle to follow the planned path. All this now needed to be tested in real life, as no one really knew if what they had written actually worked. Our plan was to seat a driver in the car who was to drive a few laps, all sensors running, and recording so-called Rosbags. This basically saves the recorded data, which can then be played back afterwards and fed into our algorithms. Only once these were tested could we even begin to actually let the vehicle drive autonomously. But as the actual vehicle wasn’t fully equipped as of yet, we settled on a different solution to start with. Next to our workshop, there was a huge container with metal waste, among which we found and retrieved, with strenuous physical effort, an old airport luggage cart. We rigged it with all sensors we wanted and could test in this way. We even added sophisticated waterproofing. Take a look for yourself.

Luggage Cart

As we had a large tarred area available to us, which belonged to a local institute, off we went. On a rainy day, we gathered enough data to begin testing our algorithms. A short time later, when the weather had started getting warmer and all the sensors were rigged to the actual vehicle, we put this on the test track as well. In the initial tests, we still pushed the vehicle, as it was not ready to drive yet (even with a driver). But in any case, it was now that we actually got to do the exciting stuff!

Driver Test

Which was when I discovered, how much work I still had ahead of me.

Qualifying Phase

All the while this was going on, of course there was another aspect of the season into which we poured a lot of time. Actually qualifying for the competitions. As all teams sought after taking part in the biggest events, such as the Formula Student Germany, some pruning had to be done beforehand. And what better way to find out if a team REALLY wants to take part in the competitions, than to check if they knew the entire rulebook (technical, administrative and all) inside and out? The actual qualifying was thus done by way of an online quiz about said rules, all teams participating from their locations at the same time. Depending on the competition, there were different ways to score, but all in all for each competition, such a quiz was held. And so, to make sure the thousands of work hours (and Euros) we had spent working towards showcasing our amazing vehicle weren’t for nothing, we had to train. Learn. Practise. And prepare.

Qualifying

In the months leading up to the quiz, we met one evening a week to spend a few hours doing mock quizzes. This served to deepen the teams general knowledge, write down formulas and create tools for calculations if they were asked. The closer the quizzes moved, the more we practised, until we met every day. And we even had weekend sessions, where we simply spent our entire weekend training. Luckily, there was always someone responsible for catering to the rest of the team. Needless to say, we were all very glad once this phase was over and we had successfully qualified for all our desired events.

Roll-Out

Cars at the Rollout

About two months before the vehicle was due to participate in the competitions, another big event was due to happen: the roll-out. As this whole racing car project would never be possible if not for some generous donations, each season we had a big presentation, to show the sponsors what we had turned their donations into. Our University’s director even attended! For this, the team rented a location, prepared fancy snacks and drinks and dressed up a bit, welcoming sponsors, family members and other interested guests. After a cinematic video prepared by our media team and an admittedly very impressive and professional presentation, the guests got to chatting with the team, and we also had various exhibits where we showedcased our various systems. Following this, a big party ensued, as this was the first big milestone of the season.

People at the Rollout

ASV

Now we were under some time pressure. Some competitions required, that we send in a video of our vehicle, driving in a regulated “U” shape, also showing the internal workings of the autonomous system. This was called the Autonomous System Video (ASV). It might have been around two or three weeks to go before the deadline, and our vehicle had not moved a single millimeter, neither by itself, nor with a driver. So from then on, we tested every day from sunrise to 08:00, and from 17:00 until sunset, the times in which we were legally allowed on the track (an institute from the university kindly let us use theirs).

On top of that, I had discovered that my localization and mapping system somehow wasn’t working at all. A rough location estimation was possible, but that was only through wheel odometry which determines how far the wheels have turned. It is also very prone to inaccuracies. Additionally, the computational complexity of the algorithm I chose was coming to show. I had the ability to tweak the algorithm in a significant way, lowering its complexity, but with that came a drastic loss of accuracy (which, at this point, wasn’t really a given anyway). And as the location (not so much the map at this point) was vital for this video to happen, I worked all day and often all night to get it going (this also caused the relationship I was leading then to fall apart). My first attempts at improving the system looked like this:

Trying to improve SLAM

Take note that this is supposed to represent the track setup from a previous test, a smooth 90° curve. For me, this was a big win nevertheless. My algorithm kept improving. The ASV also came together, as the map was not crucial for it, and our qualification secured.

Improving SLAM

Excursions

Apart from financial donations, another important part of what some of the sponsors contributed to us was the opportunity to take part in various excursions during the season. The goal of these was to help and support us and other teams in our work, as these sponsors in most cases possessed important know-how in different areas important to our project. These were some of the most exciting parts of the season, as we gained valuable insight into how the company worked, were supported by seasoned professionals in the field and got to see new cities.

ARWo - Autonomous Racing Workshop

ARWo Hamburg

One of the first excursions we as the driverless software team went on, was indeed not set up by a sponsor, but rather by the Formula Student team of Hamburg. The concept was, that each team contributed to a large, general pool of driverless knowledge by holding presentations about their approach to things, planning debates and discussions about various topics and giving demonstrations. Furthermore, some sponsors also attended the workshop and presented their own approach to the driverless world. In between the different events, we mingled with other teams amongst food and foosball, exchanging ideas and know-how. A city tour of Hamburg and an exciting night out ended the workshop. Given such an insightful and exciting weekend, of course we returned in the following year.

VW Ehra

About a month before the competitions began, we were invited to join VW and other teams at the Ehra-Lessien Testing Site, to bring our vehicles along and to use this opportunity to once again test our systems and start preparing ourselves in some of the static disciplines with the support of VW engineers. This was a very exciting excursion, as we had to tape over our phone cameras to be allowed in, and we were able to take a look at some VW driverless prototypes. In spirit of the upcoming competitions, we gathered in each others hotel rooms and worked and programmed until late at night, all with stints of jumping into a nearby Lake.

ZF RaceCamp

ZF Racecamp

The final excursion before the competitions began was the ZF RaceCamp in Friedrichshafen. This was basically like a dress rehearsal, as it was a simulated competition in itself. After the long drive there, we set up camp (literally large tents) right next to the Zeppelin airfield. We set up our car, a small, “box”-like workshop in a huge, hangar-like hall on the Friedrichshafen fair grounds, just like it would be done at the side of the race track in the competitions. Aside from acting like a workshop, this box would also be where we would present our design to the judges later. Actual race tracks were constructed on the tarmac outside, were the dynamic disciplines were to happen. This was also the first place for some of us to see some actual racing going on, as teams tested their electric and compustion Formula Student vehicles, and we even witnessed the ETH Zürich team slowly traversing the track in a driverless fasion. Despite the slow speeds, this was somewhat spectacular for us, as we had as of then only been able to drive in a “U”-shape.

Design Event

But the most exciting part was still to come: Our very first design event.
While we had already witnessed the our non-driverless vehicle’s design event, we were now anxiously awaiting our own. And when the group of around five ZF-engineers arrived to scrutinize our work, everything went very quiet. They kindly introduced themselves, and then they distributed among the team members, each according to their expertise. After an exciting twenty minutes with many questions of how, what, and why, and many suggestions from their part, the design event was over. This left us mentally exhausted and with a dry mouth from all the talking, and the judges retreated to discuss their verdict. A tense ten minutes of wondering about my engineering and programming skills, and if I had made good life choices, ensued. All the happier I was, when the judges gave us feedback, and I was even passed business cards by two of them. I felt very much invincible for the rest of the day. Nevertheless, there was still lots to be done.

Wolfsburg

VW Manufacturing Site

During my second season, our team was invited to view the VW Manufacturing site in Wolfsburg. Next to a mindblowing tour through the actual manufacturing plant and a visit to the famous “Autostadt”, with the VW towers, VW had a bunch more in store for us. The visit was coupled with a meeting with the head of the VW Group driverless division on the VW grounds. This was one of the most insightful and helpful excursions we had, as we didn’t have any of our questions answered directly. Instead, we were taught to plan and think like engineers. We made very effective use of this during the season, which had just started. Using the knowledge, we didn’t just delve right into the task, but went about with a plan. Our group leader set up a comprehensive software framework where each of us could simply plug in their algorithms. We did a requirement analysis for each algorithm, and wrote concept papers. Only then did we start developing. Everything in the season to come felt a lot more “grown up”, and less like pioneering and adventuring. But in the end…our system worked.

Life in the workshop

Being in the workshop felt like a cross between going on a camp, a constant party and hard labour.

We had (and Ecurie Aix still has) a workshop in a part of Aachen that was a hub for the university, institutes, research facilities, basically a “science city”. It is built out of containers, connected to one another directly or by doors, a kitchen, and even a first floor, which was another container stacked on top of the others. On the ground floor was the main workshop. One section was dedicated to electrics, one section to composite materials, one section to storage, and the rest was general working space, large enough to assemble two formula student cars side by side. The top floor was a conference room/office. It was stuffed full with posters, calendars and previous trophies that Ecurie Aix had won. The seating consisted of a jumbled mixture of chairs, old couches and seats taken from actual cars.

Workshop

While some team members basically lived in the workshop, it became fuller and fuller as the season progressed. Members came to collaborate on software, others to work on the electrics, yet others on the transmission. During the first third of the season, while the monocoque of the vehicle was being built, every team member had to take multiple shifts a week to complete all the steps necessary. This included eight hour sanding sessions with constant techno music or 10-hour-versions of the Cantina Band in the background (actually, foreground is a more suitable word when considering the volume), running around with gas masks to laminate components with composite materials, and getting fine particles of epoxy resin into every part of my clothing when removing the vacuum bags after degassing. Every day, someone volunteered to cook a meal for the team, during the summer months we had regular barbecues, or something was ordered from town (we were famous in some restaurants after a while, due to our regular and large orders).

Cooking and Coding

Of course, actual parties were also held. As already mentioned, the roll out was followed by a huge party as the first big milestone of the season had been reached. There was also a Christmas party and a party to end the season. These parties were always great fun, as they usually signalled that some form of stress had fallen off us, and many took this as an opportunity to showcase their creativeness in building beer-drinking-apparatuses, such as a device that made pressurized beer ingestion possible, one built from an old vehicle nose, or simply a huge cable lug. And when the beer crate is finally empty, why not hitch it up to some wheels and a combustion engine?

Needless to say, many great memories were made in the Ecurie Aix workshop.

Peak of the Season: Participating in the Competitions

For the driverless vehicle, the event order was FS East in Hungary, FS ATA in Italy and finally the FSG in Germany, each event lasting a week. The non-driverless vehicle still had the FSA in Austria and the FSN in the Netherlands ahead, while skipping FS ATA. These road trip routes in mind, we rented vans and minibuses and set to packing. Each car needed two vans full of the actual car, equipment and camping gear. So on 15. June 2019, we set off.

FS East

We drove through the night until we reached our first stop, ZalaZone, an automotive testing ground in Zalaegerszeg, Hungary. Here, my very first competition was to take place.

After the long, 14 hour drive we were not done yet, as the camp was to be set up, just outside of ZalaZone. Additionally, each team was given a space in large tents set up on the competition sites to set up their vehicle and their workshop.

Box FSEast

The next day, the competition began. This meant first and foremost, the so-called scrutineering of the vehicles, in which competition officials took each vehicle under close inspection to ensure that it was rule compliant and safe for operation. This included mechanical and electrical scrutineering, next to a tilt test, a rain test and an autonomous system test for the autonomous car. For the tilt test, the vehicle was placed on a platform and tilted to a steep angle sideways, under which it was not allowed to topple. In the rain test, the vehicle electrics were activated and the vehicle was sprinkled with water continuously for minutes. And in the autonomous system test, the vehicle hat to perform a steering pattern with driven rear wheels, while the wheels were not in contact with the ground. Furthermore, the drivers needed to pass egress tests. Needless to say, with the competition being only a week long with many teams needing to go through scrutineering with limited spots, the stress was real. Especially considering the strictness of it and the fact that each vehicle failed the scrutineering multiple times and having to be adjusted and re-scrutineered.

Scrutineering

In the mean time, we all prepared for the upcoming design event. One could always feel the tension in the team before it, as it comprised a significant amount of points needed to win the competition, and as the driverless vehicle was at this point not performing to a satisfactory degree, it mattered all the more. It did go relatively well for me, as SLAM was still a very complex topic, which no FS East judge seemed to have a deeper expertise in, so it turned out as more of a discussion of SLAM ideas with each other, instead of me being taken apart by an expert. It is also where the profile picture of my website was taken.

FS East Eventsite

Once we were finished, we watched and supported the team of the non driverless vehicle as they were driving and performing their design event, walked around and chatted with other teams and their approaches. We watched our team leader who prepared the business plan presentation of the driverless vehicle, as can also be read about here. Traditionally, each day a few of us prepared a humongous pot of food for the team, and after eating and the competition grounds closing, the campsite with all the teams took to partying, which was greatly tiring, but also great fun.

On the last day, the competition had its award ceremony. Each team that had won anything was called up to the stage under loud cheering and parading and handed their award. Many teams had developed a “war cry” which they performed on stage, while many took this opportunity to showcase their drinking abilities. Once the ceremony was over, we turned to, you guessed it: partying. As the entire crew of the FS East joined in this time, including the judges, this party was the greatest of them all. I still have an FS East judge’s t-shirt in my cupboard, that I swapped for an Ecurie Aix shirt.

And on the next day, after breaking camp, on we went to the FS ATA in Varano de’ Melegari, Italy.

FS ATA

As we still had about two days before the FS ATA began, we took a day to go sight-seeing in the city of Parma, close to the event site. As it was the middle of summer, we greatly enjoyed a beautiful day in this beautiful italian town and relaxed a bit before the stress of the competition started anew.

Circuit

After having set up camp in Varano de’ Melegari (including a much needed blow-up pool), we crossed the Torrente Ceno on a foot path to reach Riccardo Paletti circuit and set up our box in the pit stops there, and it also marked my first time being on a proper racing circuit. We then walked about in between the exhibited Formula 1 and other concept cars in awe. In the evening, there was a big welcoming ceremony, followed by free pasta for everyone.

Welcoming

The next day, in the heat of the italian summer sun, the competition began. While the electrical and mechanical engineers worked to get the car ready for scrutineering, us software developers kept tirelessly working to improve our systems (at this stage using pre-recorded sensor data from the vehicle). We searched without success for a retreat where the temperature was bearable, or at least below 35°C. Programming with sweat dripping onto the keys proves challenging. As the days went by, the vehicle passed scrutineering, and on the evening before we were supposed to drive our first discipline, all the heat accumulated into a massive summer downpour that dragged through until the next day, driving day. The discipline was track drive, in which the vehicle had to complete ten laps around a previously unknown circuit. Upon seeing the circuit we almost turned right back around for the sharp bends and turns that were woven into it. Of course we didn’t. The vehicle was equipped with rain tyres, however, not having any experience with our system and its sensors in the rain, we waited for a dry patch. And lo and behold, when our ASR (person resposible for operating the vehicle) gave the vehicle the command to start, it did. It completed a lap.
It completed a second lap.
And a third!
Upon which it decided enough was enough. 10 laps was the goal. However, as these were the early days of formula student driverless, this performance was indeed enough to put us ahead of 5 other teams (out of 8, as I said, early days). We were absolutely proud.

Trackdrive

Unfortunately, another weather phenomenon called sunset interfered with our attempt at the acceleration discipline. As the track was facing the sun, the camera was not able to correctly determine the position of the straight track boundaries, which led to a repeated breakout to the sides. Annoying, still, we had, for the first time in Ecurie Aix’s history successfully taken part in a dynamic discipline in a driverless vehicle! Adding our good design event performance, we finished third overall! Needless to say, we were somewhat satisfied.

FS ATA Party

Formula Student Germany

After a long night of partying with the other teams we broke camp and headed home. We had one week to prepare for the mother of all competitions: the FSG. As we had seen, we had come a long way, but we still had a lot to do. On my part that was so much that I decided to turn to a different SLAM approach entirely for the next season. But for now, I had one week to improve it as well as I could. So one week of testing and working later, we took the comparatively short drive down to the Hockenheimring for one last joust with motor sport this season.

Hockenheimring

Most of the surrounding event was similar to the other two, so we knew more or less what we were in for. However when the day of the design event came and the judges were actual driverless software engineers for the then autonomous driving sector of a famous german car manufacturer, we knew we were in for a treat. A sweet and sour one. This design event turned out to be the most nerve-wracking of them all, however, in the process of telling us all the things we should have done differently, we were told how to do them differently as well. So while I felt very much out of my depth, afterwards I had a much better view on how I should approach my next spar with SLAM and I was even able to converse with the judge after the design event was over. This is one of the most important reasons why Formula Student is such an incredible source of learning.

(That, and having to build an autonomous car in a year without knowing what you’re doing.)

Unfortunately, that was that for us. In this competition, our vehicle was not able to achieve any points in the dynamic disciplines.

The rest of the event saw many of us watching and supporting our other vehicle, mingling with the likes of Tesla and VW, who had all set up very cool lounges for exactly that purpose and enjoying the sun. And reflecting on what had most probably been the most intense year of my life.

FSG in Action

My Second Season

Well. That first season was already a 30 minute read. Let me not bore you with any more. Incidentally, there was a thing that facilitates that: Covid.

Having learned one or two things in our first season, we went about the whole process methodically. Requirements, concepts (I went for a SLAM concept called graph SLAM), development, testing and the like. We were never going to be able to showcase our vehicle at any events, because they were all canceled. But we pulled through anyway.

All that home office also meant another thing. I started SLAM from scratch. And it worked.

This post is licensed under CC BY 4.0 by the author.