When I quit my job as an embedded software engineer, I was picturing myself one day as a cooler engineer… a robotics engineer. At least, to me, working with robots would be one of the coolest jobs out there (along with running a pie bakery). What a robotics engineer is exactly isn’t well defined, as the field is pretty broad and takes people from many backgrounds - computer science, mechanical engineering, electrical engineering, etc.
So, when looking at master’s programmes, interested in gaining a more diverse background, I primarily searched for programmes with “robotics” in the name. Most of these courses were focused on control theory. But then, I landed on Chalmers’ complex adaptive systems programme, where I learned about the loosely defined and highly configurable robotics track. Reading through the courses, I ended up being the most excited about this programme and made it my first choice. And early in the school year, I was even able to find a project outside of classes that gave me even more hands-on experience: the Kiwi Project. Coming to Chalmers was a better decision than I ever could’ve imagined for helping me get closer to achieving my goals of being a robotics engineer.
A wide variety of classes
In CAS (Complex adaptive systems), about half of the first year classes are compulsory, and then there are a few “compulsory electives” (i.e. students must choose from a list of approved electives). I’ll admit that it was the compulsory electives that attracted me to CAS, and that I didn’t even know what some of the compulsory classes were, like stochastic optimization or dynamical systems. But after taking them, I realized that all the classes I took this past year directly apply to robotics in one way or another. For example, some of the classes I took and how they relate:
•Artificial neural networks and advanced machine learning: can be used for object detection, pattern learning, and endless other applications to help robots perform their tasks
•Stochastic optimization: path planning (using a “genetic algorithm” to optimize a route, using ideas from genetic evolution)
•Intelligent agents and statistical inference: designing chatbots (e.g., using Bayesian inference) and dialogue managers
•Autonomous robots: path planning, sensor fusion, computer vision, battery charge scheduling (e.g., with autonomous lawn mower), etc. using Chalmers’ own Kiwi platform
There are also lots of other classes that I would have liked to take, like humanoid robotics. However, I’ll be doing an exchange this semester, which is a whole new topic to cover! But in addition to classes, I also had the opportunity this past year to work with the Kiwi Project, which allowed me to apply more of my electrical engineering background to robotics, and therefore continue to grow as a more well-rounded engineer.
The Kiwi Project
When I started at Chalmers, I was very eager to maximize my experience and learn as much as possible. So, I started emailing professors and the department head to probe around for opportunities. Soon after, I was connected to a professor working with autonomous vehicles and became a member of The Kiwi Project.
The Kiwi Project is a platform on which students and hobbyists from around the world can build their own mini autonomous cars from scratch and develop software to perform a multitude of tasks. Primarily, though, these little cars are raced autonomously around a track outlined by colored cones, with the goal of getting the fastest time possible without hitting other vehicles on the track.
This past year, I worked on a team of students from different backgrounds (mechanical engineering, computer science, and electrical engineering), as well as Professor Ola and a Ph.D. student in his lab, Björnborg . The other student with an electrical engineering background, Mateo (from Ecuador), and I were tasked with simplifying the Kiwi’s electrical design. We decided to remove one of the two microcontrollers (Beaglebone) and re-route all of the signals from the peripherals to the other microcontroller (RaspberryPi, a more commonly known microcontroller). We also simplified the battery circuit, among other things.
The best part of being on this team, though, is that since I’m less experienced in circuit design than Mateo, I’ve become a better electrical engineer by working with him. I’ve since learned how things like Fusion design software works and how to DIY a motor encoder- things I never touched in embedded software engineering. I hope that these skills will also make me a stronger robotics engineer someday, maybe when having to communicate with hardware engineers about design plans.
At the end of the school year, I also took Autonomous robots and got to see more of the software side of the Kiwi platform. Beyond the different facets of robot logic and tasks such as path planning and navigation, we also covered topics applicable even beyond robotics, such as Dockerization, microservices, and continuous integration and development. These are topics that were discussed even at my embedded software engineering job, so I was really excited to finally get the chance to learn about them in the classroom. Although I fell behind due to some technical difficulties and competing project coursework, I still feel like I got a lot out of the class.
Looking ahead with Kiwi, my thesis and beyond
At the time of writing this, I’m on the plane to do a semester abroad in Singapore, filling in some of the gaps in my education with classes like data science and algorithms, and feedback control systems. The Kiwi 2.0 is nearing completion (at least with the circuit board for the signal routing being ordered this week)! And with this first year behind me and the next one about to start next week I’m really excited to start researching topics and companies for my thesis, looking back on all that I learned this past year and imagining the kinds of projects I can do now. I’m even looking forward to finding a job, confident that all that I’ve learned is pushing me closer to being a real qualified candidate, rather than just an office kid dreaming about working with robots someday.