CSpotlight: Diving Deep Into Robotics
Why did you choose to pursue a degree in computer science at the University of Minnesota?
I had a few options of where to go for my undergrad, but when I came to the Twin Cities campus, that was it. I saw how big it was, and there was just something about the campus that drew me to it. I decided this is where I wanted to be.
I was first introduced to computer science in high school, when I took a computer science elective. A buddy and I also decided to start a robotics club in 11th grade. We had no idea what we were doing, and robotics wasn’t really popular at the time, but we mostly experimented with hobby robotics kits we found. I think from then on, I always knew I wanted to do something in robotics, but it was something I sort of buried in the back of my head.
Then, in undergrad, I took CSCI 5561: Computer Vision with Associate Professor Junaed Sattar, and at the end of the class, I asked what the next computer vision class was. He told me that there wasn’t another, but that I could come and sit in on one of his lab meetings. I got to see the whole Minnesota Interactive Robotics and Vision Laboratory (IRV Lab) and the work I’d read papers and learned about in class. It allowed me to directly interact with the people doing the work, and that experience helped lead me to pursue a PhD here.
How did you become interested in computer science? What are your specific interests within the field?
I fell in love with computer science back in high school. I had to pick an elective class, and on the last day we could choose, a friend of mine convinced me to try out computer science. One day in class, we made a video game. It was pretty basic, just a card game simulator on the computer, but I was sold. I didn’t even know how to type without looking at the keyboard, but I knew computer science was what I was going to do.
Within computer science, I’m traditionally a systems guy. I like setting up software on different machines or in places people typically don’t. I work in the IRV Lab, which focuses on underwater robotics. Underwater, there is no Wi-Fi or internet, so any cloud computing system doesn’t work. I have to figure out how to pack as much complex code into tiny computers and make sure the systems still run. I also work on object detection and recognition, and I’m trying to pivot toward manipulation. Basically, figuring out how the robot grips and handles objects underwater.
Tell us more about your internship experiences.
In undergrad, I had a couple of internships. The one I remember and enjoyed the most was at Engineering Services International. I built their entire website, and it gave me an idea of what software engineering is like. I was the only person tasked with building the website, so I had to figure out the requirements and fill in the gaps where I could. Even though it’s not very similar to what I am doing in my research now, I really enjoyed it.
What do you hope to contribute to the computer science community at the University?
I hope to contribute to the field of resource-limited work within computer science. The computers the IRV Lab uses are present in other robots that are not underwater. The difference is our work can be fully done on one tiny computer, whereas non-underwater robots have a small computer in the robot connected to a much larger computer through Wi-Fi or another radio protocol. IRV Lab finds new and intelligent ways to produce the same computational efficiency on much smaller devices, which could benefit a lot of people. Instead of having to rely on really powerful computers, people could buy a $250 computer and still get the same sort of benefits they would from a $10,000 or $15,000 machine.
Have you been involved with any research on campus?
I am a part of the IRV lab, which has built five in-house robots. We collaborate with departments across the University to run experiments, such as tracking marine invasive species and monitoring lake health. In the lab, I am the only computer science PhD student, so a lot of what I do is hook up systems and get them ready for others. On a daily basis, I’m responsible for getting the robot to actually do what other people in the lab want it to do. They might write their own code, but I set up the machines so the robot runs the code correctly.
In terms of research, most of my work is currently focused on control systems. This involves running experiments at the pool and evaluating how the robot moves under certain conditions, like water currents, as well as how it handles any of the errors that can come about.
What advice do you have for incoming computer science students?
Don’t stop messing with or tinkering around with the computer. If there’s software that you can’t run, figure out why you can’t run it. The most important thing about being a computer scientist is that you can basically make anything happen with a computer, and that's why you need to know how to play around with it. Fundamentals are important, but so is playing around and trying out new things.
What are your plans after graduation?
I hope to either work in a lab or run my own lab, because I enjoy the idea of continuing to do research. I like the freedom of research, as well as the competitive aspect. It’s like sports, but you’re competing with researchers from across the globe. If you don’t do things at peak performance, someone else is going to beat you—and that is kind of fun for me.