Automating a Foosball Table Led to My Job with Autonomous Drones
Michael Rencheck (MSR '20) talks about his Master of Science in Robotics (MSR) final project, his role at Performance Drone Works, and how the program made it possible for him to be where he is today.
Michael Rencheck (MSR '20) has always liked foosball, but never could he have imagined the table-top game of soccer would play a role in him landing a job developing drones.
After graduating from Northwestern Engineering's Master of Science in Robotics (MSR) program, Rencheck landed a job as a software engineer at Performance Drone Works (PDW), a startup in Huntsville, Alabama. The company develops small, lightweight drones that will provide US warfighters with more information in the field to help minimize risks. As a member of the autonomy team, he is involved with building up various elements of the navigation stack and integrating the software and hardware.
While interviewing for the job at PDW, Rencheck talked about a lot of his work at the MSR program, including his final project, which involved automating a mini-foosball table to compete against a human opponent. Rencheck recently sat down to talk more about that project, his work at PDW, and how he wouldn't be where he is today without MSR.
"I've easily learned more this past year than I would have in multiple years of working." — Michael Rencheck
What stood out about Performance Drone Works that made you want to work there?
The position was an opportunity to continue working on the topics I am really interested in – navigation and control. What attracted me to the company was the interactions with my now -coworkers during the interview process and the mission behind their product. There are a lot of companies working on cool technology, but in my opinion, only a handful of companies also offer a very purposeful mission behind the work.
During your interviews for the job, what types of lessons did you share from your foosball project?
A lot of the foosball conversation was around the work with the camera and what drove my decision processes with developing the image pipeline. They are using cameras for a lot of their work as well, so this was the most directly applicable aspect from the foosball table. I also used it to talk about my skills with integrating hardware and software. I had other project work from Machine Learning and Artificial Intelligence for Robotics, Optimal Control of Nonlinear Systems, Sensing Navigation and Machine Learning for Robotics, and a self-study motion planning class some peers and I did together during the spring that demonstrated my knowledge of filtering, planning, and control methods which they are also heavily involved in. Ironically, I opted not to take an elective MSR course that was primarily focused on drones.
Why were you interested in creating a single-player foosball experience?
The scope of this project allowed me to do the full development process: designing and spec’ing out the physical design and electrical hardware, building the prototype, and then putting together the software stack. There was a heavy focus on working with cameras and computer vision which I hadn't played around with yet. Also getting to program a gameplay AI was a really interesting challenge and something that was open-ended.
How do you think the overall project turned out?
Great! The goal was to design a table that could win or at least competitively play against a human, and I achieved that. It beat one of my friends pretty easily and put up a decent fight against myself. That being said, there’s still a lot to improve in terms of smarter gameplay and better ball detection, so I’m going to continue playing around with it in my free time.
What were the biggest challenges that you faced along the way?
The whole image pipeline took a lot of experimenting between playing around with the physical camera and working with the tools in OpenCV to piece together a ball detection program that was robust enough to detect the ball when it was occluded by the rod and players while keeping up with the camera that was delivering new images at around 100 Hz. I spent a lot of time tinkering here because it was so pivotal to the success for the project. It was a very iterative process and took a couple failures before arriving at the current solution.
How did this project incorporate lessons you learned throughout your time in MSR?
Where to start! This project was programmed in C++ and incorporated ROS, both of which I had zero knowledge about before MSR. This project also involved a lot of independent learning and implementing it in tandem, which the MSR coursework really prepares you to do.
How instrumental was MSR in getting you where you are today?
Easy question, I wouldn’t be here without it. Between the education and the people you get to learn from and learn with, it’s irreplaceable.
What are your professional goals moving forward at PDW, as well as long-term?
After going through the program, I knew I wanted to transition to a more software-focused role and away from a heavy mechanical engineering role, which I have been able to do. PDW is aiming to release its first products this year and will continue to improve the software and integrate more autonomy features, so I would like to get to the point where I am the point person for some of the navigation packages that get deployed onto the product. Long term, I hope to stay on the technical side, and PDW is a great place to start that journey.
What advice would you give a prospective student considering MSR?
What you get out of MSR is very self-dependent, largely because of the winter project and final project. Both are very self-driven projects where you get to directly do something you are interested in and you will only get out what you put into them. I was intimidated by these because I came from a mechanical engineering background and really didn’t know a lot about robotics coming into the program, but the professors do a good job of working with you to understand your interests and have conversations about how you can use these projects as opportunities to explore those interests. Don’t worry about coming into the program with a clear vision of what you want to do in robotics or with a software background — I certainly didn’t.
Also, be sure to get your money’s worth and take the hard courses. You’ll learn the most there. It’ll be a lot of work, but it’s worth it. I worked for about three years between finishing undergrad and starting MSR and was a bit nervous about jumping back into academia and pausing my career. However, close to half of the people in my cohort were in a similar position, and after going through it, that experience only further enabled my ability to succeed. Plus, I've easily learned more this past year than I would have in multiple years of working.