Week 1

My first week! My internship started with a group meeting involving everyone in the research project. Since this internship is going to be entirely online, the meeting was over Zoom (as will be all of them). Professor Hauser directs the Intelligent Motion Lab at UIUC, and many of the students in this lab are involved with this research project. I was introduced to the other interns and many of Prof. Hauser’s graduate students. I also heard, for the first time, about the scope of the entire project I was working on.

The project is to build a disinfection robot that would be able to autonomously sanitize different environments; for example, hospital rooms. This idea sprung up with the escalation of the COVID-19 pandemic, when it became clear that it would be useful to have an automated disinfection system which would facilitate cleaner spaces and limit the spread of infection by curbing contact between healthy and infected people. I was really excited when I heard about this! As an undergrad student of computer science and mathematics, I’ve spent a lot of time learning theory (and I enjoy it a lot) but I haven’t been able to use it in a way that I found truly meaningful, or thought would help society in some way. This is a project that I really think has the potential to have a beneficial impact, so I’m looking forward to working on it!

This project is actually part of a larger effort of the team, who has been working on a robot for the AVATRINA robot, which is a system which is used as an avatar for users to interact with patients remotely, without actually having to be in the room with them. The team has built software packages to work with, which I was introduced to.

Building a robot is (as you might imagine) quite a large task, but this can actually be broken down into a number of sub-modules, with the work of one module feeding into the work of the next. I learned that I would be working on the path and motion planning module. Here, we use a description of the robot’s environment to determine an optimal path around the environment in order for the robot to perform a certain task; in this case, disinfection.

I learned more about this task the following day during a more detailed meeting in my subgroup. I was also introduced to my graduate mentor, João Marques, who I’ll be working with most closely this summer. He sent me a few papers to read which would introduce me in more detail to our problem and the proposed model we were going to build. Typically, whenever I start a new project, I spend a few days feeling quite overwhelmed because there’s so much new information to process. Logically, I know that I’m not going to understand everything right away and it’ll take a while for me to feel comfortable with what I’m doing, but until then, there’s typically an undercurrent of agitation until I feel steadier on my feet. This manifested during my first week, as usual. Whenever I feel like this, studying relevant material comforts me, because it gives me something solid to focus on and grasp.

So, while a lot of the first week was logistics, onboarding and installing software, I spent a couple of days reading the papers my mentor sent me, as well as extra textbook material on motion-planning Prof. Hauser sent me.

After reading my mentor’s proposal, I also set up a meeting with him to discuss a timeline for work and to talk about expectations. We talked about a main goal of the summer; to create and compare path-planning algorithms that find an optimal path in a given environment for a robot which disinfects all the touch surfaces in the room using ultraviolet light. My mentor had already come up with a first idea, inspired in part by one of the papers he’d had me read. One of the steps in this algorithm required formulating a Travelling Salesman Problem (TSP) and solving it.

NOTE: The Travelling Salesman Problem is a famous computer science problem! Given some number of cities (with known distances between each pair of them), it asks us to find the shortest route that visits each city and returns to the starting city. It can be discussed more formally as a graph theory problem: given an undirected weighted graph, find the shortest cycle through the graph that reaches all vertices. This problem is NP-hard, which means that there is no known way to find the absolute optimal solution “efficiently,” and if there were, then we would be able to solve an extremely large group of other difficult problems efficiently as well. Fortunately, there are efficient algorithms which can find approximately good solutions (that are typically pretty close to the optimal solution) fairly quickly.

There are lots of TSP solvers out there, and some are a lot better than others. Eventually, we’ll have to use some solver to complete the algorithm’s complete pipeline, so I’ll have to find a good one to use. My mentor suggested that as a first step, I write a wrapper function in Python which will simply take an adjacency matrix of distances (between all pairs of points in the graph of “cities”) and output the tour (under the hood, using one of the external TSP solvers) found. I ended Friday searching for different TSP solvers to use.

Written on May 18, 2020