There's no joystick for driving rovers on Mars. Instead, a team of scientists and engineers gathers every day to plan each move and then beams a series of instructions to the rover's computerized brain, like interplanetary telepathy. As the only tether between the rover and the mission team on Earth, the onboard computer needs to run flawlessly. So before the rover even leaves Earth, its brain is put to the test. That's where Miles Fertel came in this past summer. As an intern with the rover simulation and planning team at NASA's Jet Propulsion Laboratory, Fertel was tasked with writing a program that tests how well the agency's next Mars rover interprets the instructions it receives. The trick, he said, was outsmarting not the rover but the humans who programmed it. We caught up with the Harvard University computer science student to learn more about his internship with the Mars 2020 team and to hear what he considered the most unique experience of his summer at JPL.
What are you working on at JPL?
I'm working on software for the Mars 2020 rover – so the code and tools that allow the rover to function on Mars. My team is rover simulation and planning. The rover planners are the people who take in all the information from the scientists and the rover and write commands to send to the rover through the Deep Space Network, which is basically the internet for space. As the simulation team, we make sure that the commands that we're going to send are going to be effective and that they're going to be safe so that this rover we send to Mars after all this painstaking work isn't going to get stuck in a hole or break because of a wrong command.
What is your average day like on your project?
I work on creating tests that humans couldn't come up with. The average testing for software is you write tests to make sure that the code isn't going to fail when you add in certain instructions. But humans – specifically the humans who write the tests – tend to be the same people who write the code. They're not going to be able to come up with as good of a test, because if they knew what was going to break, they wouldn't have written the bug in the first place.
What I do is use a couple of testing frameworks that use generational input adjustments. They develop in an evolutionary way, starting from a simple input that I put in. So, say we're working on commands for the rover. We can start with, "Go forward," and then the system will modify the instructions based on a dictionary of information I provide. So I say, "These are words that might make sense to the rover. Try coming up with combinations of these that might result in behavior that we haven't seen before." If that behavior is defined, then everything's fine, but if it's going to cause a problem, then it's important that we know that so we can update the code.
What are you studying in school, and what got you interested in that field?
I study computer science at Harvard. I hadn't done any programming before coming to college. I thought I wanted to do something in the area of technology and possibly business, but I didn't really know. So I took the intro to computer science class, and I really loved it. I loved the challenge of feeling like my homework was a puzzle and not a chore. That drew me to it, and I started taking all the classes that I could in that realm.
What is your ultimate career goal?
I don't think anyone should have an ultimate career goal. I think careers should be a fluid thing and that people should build up skills that allow them to do the things that are most interesting to them. Right now, my goal is making sure that the Mars 2020 rover lands on Mars and everything goes swimmingly when it gets there. But, ultimately, I want to work on cool things with interesting people.
How do you feel that you're contributing to Mars 2020 and making the mission a success?
When I came here, my main goal was having a tangible impact on the project. I wanted something where every minute I spent working would be important to meeting the goal of the project. I find bugs every day, and I fix them, and that's great. Hopefully, before the summer's over, I will have a patch that I can write for the software that will end up on the rover.
What brought you to JPL for this internship?
I had a friend who interned here two years ago, and he recommended it really highly, saying he had a terrific time and his team members were great. I applied online, but when you apply, it's a general application and you could be picked for any project based on your set of skills.
I knew that I wanted to work on Mars 2020, so I went on the JPL website, and I researched teams and people working on robotic software for the mission. I emailed Jeng Yen, my group supervisor. I said, "Here's my resume. This is what I'm interested in. Are there any projects that I could work on?" He said, "One of my team members, Steven Myint, is working on something that fits your profile pretty well. You should talk to him." So I talked to him, and the rest is history.
Meet JPL Interns
Read stories from interns pushing the boundaries of space exploration and science at the leading center for robotic exploration of the solar system.
That's great. That's something we recommend students do if there's a particular project or area of research they're interested in. What is the most unique JPL or NASA experience that you've had while you've been here?
Oh, easy. One of my team members, Trevor Reed, is a rover planner for Curiosity. Every morning the team has a tactical meeting in which they go over the schedule for the day for the rover, and they give instructions to the rover planners who will write the commands that tell the rover what to do. When I found out that one of my teammates drives the Curiosity rover, I was like, "Can I please, please shadow you for that process?"
So I showed up at 8 o'clock in the morning in the Curiosity rover tactical office, or conference room, and there's the head scientist, Ashwin Vasavada, who I'd read about in articles. I watched them send the actual commands to the rover. I learned all about the planning and tolerances that are involved in the simulations that we do. I got to see the software that I'm working on in action, because it's also used for Curiosity. It was a pretty amazing experience to sit there for a couple of hours and watch them go through the entire process of a day on Mars.
Now for a fun question: If you could play any role in NASA's plans to send humans back to the Moon or on to Mars, what would you want to do?
Every kid wants to be an astronaut, right? I mean, if you're offering … As much as I would love to be an astronaut, my interests in the short term are contributing to and building projects that I think are important. So for those future missions, I think I would want to have more input on the design, the structure and the planning, overall. So maybe I would want to be a systems engineer or even work on the design.
This Q&A is part of an ongoing series telling the story of what it takes to design, build, land, and operate a rover on Mars, told from the perspective of students interning with NASA's Perseverance Mars rover mission. › Read more from the series
The laboratory’s STEM internship and fellowship programs are managed by the JPL Education Office. Extending the NASA Office of STEM Engagement’s reach, JPL Education seeks to create the next generation of scientists, engineers, technologists and space explorers by supporting educators and bringing the excitement of NASA missions and science to learners of all ages.
Try this lesson from NASA/JPL Edu to get involved and bring the excitement of NASA Mars exploration to students: