To put humans on Mars

2016-11-24 - Why have ant colonies inspired NASA? Why is using newer technology not always a better solution? And why wasn’t “The Martian” movie in fact science-fiction? Kurt Leucht, a Software Lead at NASA and a DevDay speaker, is bringing another perspective on exploring space and software development.

Kurt Leucht, NASA; Photo Przemek Szuba/Arch. ABB

“We are the explorers!” – this was the main theme of your presentation during DevDay 2016. What does it mean to you?
When you’re doing your job, no matter where you’re working, it’s all meaningful. If you can step back and take a look around, focus on the big picture, you’ll probably see that what you’re doing is bigger than you thought it is and has bigger implications. The purpose of the “We are the explorers!” presentation was to teach the audience what NASA is doing, planning and researching. Some of the folks in the audience are inventing software technologies, some of them are inventing new user interfaces that are radically different from what we are used to. I hoped to inspire them to keep working hard and to be creative.

Do you agree with the opinion that the whole DevDay event is about inspiring people, giving them a call to action?
That’s true. When you get away from the office and attend an event like this, get exposed to the new ideas – even if you’re thinking you’re an expert in the topic – you get to learn something you didn’t know before. It opens your eyes to something new. I think it’s great that ABB is sponsoring an intimate but high-profile conference like this. The size of it maximizes the social interaction and networking. Events like this are inspiring and get people thinking outside the box.

Is it true that you were inspired by ant colonies when you and your team created the “Swarmie” robots?
Yes. Researchers at the University of New Mexico studied real ants in the wild. They documented how these ants behaved, how they left the nest and searched for food, how they moved around and brought the food back to the nest. They realized that these seemingly complex behaviors can be reduced to just a simple set of rules, or a simple algorithm that can function well in robots. The researchers proved that these robots had the same efficiency as real ants. At NASA we heard about this project and realized that there might be a benefit to using that ant-inspired algorithm in a robotic exploration system.

For what purpose?
To look for resources on another planet, collect these resources and bring these resources to a processing plant. So we teamed-up with the University of New Mexico and created a new robot that was more capable than the original one. We added some features that are applicable to a Moon or Mars resource prospecting mission. The robots we created – we call them the “Swarmies” – they start at a central location and then disappear out into the field searching for resources, just like ants. “Resources” in our research project are barcodes that we placed on the ground. Robots looked for the barcodes using an onboard camera. They virtually grab the barcode and bring it “home”, to the nest. Then they start all over again. Because the “Swarmies” are inspired by ant behaviors, they work together to increase the efficiency of the entire colony, just like ants do. They also use virtual pheromone trails – similar to ants’ chemical trails – in order to recruit help from the rest of the swarm when they need help to collect a pile of resources that they found. This “Swarmie” research project has proven that we can use small inexpensive robots that have inexpensive computers and inexpensive sensors. We can put a relatively simple algorithm onboard that’s inspired by a biological system and it can perform valuable work.

There’s a common opinion that NASA is using the newest technologies. But in the “Swarmie” project you’re using software that was released several years ago.
We looked into several robotics software frameworks that were out there. We didn’t want to get stuck and focus too much on the lower level programming but stay focused on the highest level of behavior programming. Robot Operating System (ROS) looked like a really good and exciting fit for our project. ROS works best on Ubuntu so that’s why we chose Ubuntu. It’s quite capable for that project. We didn’t need anything newer or fancier for that project.

Sometimes the use of newest, state-of-the art technology isn’t absolutely essential in space projects? Can simpler solutions lead to greater reliability?
Sometimes if you just sit back and look around, the problem has already been solved. For example searching and collecting resources and bringing them back to a central location was solved by ants. This ant-based system may not be as efficient as something I could invent myself but the point of the “Swarmie” research project was to prove that it didn’t take a lot of processing power and memory to accomplish a task. And the risk of failure was quite low. Consider, for example, communications. There are lots of choices for communicating between one computer and another. Wi-Fi is an old communication technology but simple and effective. It’s plug and play: you plug in the USB Wi-Fi adapter and you don’t even have to perform any setup on the operating system. It just works. We could have gone with some other technologies, but for this project that old technology worked just fine. It’s very dependable and very inexpensive, so it was an easy decision. This was a ground based research project, though. It’s not actually launching to another planet. If we try to take it too far, we could end up with a system that is complicated, hard to handle or hard to understand. The ant-based algorithm is very simple. You could increase the risk of bugs in your code if you try to make it more complex. So sure – we could improve on the system efficiency by doing certain things, putting better sensors onboard, for example. But this project is a starting point. Secondly, it’s going to cost you more money to put newer technology onboard and you don’t have to do that when an “old” technology works just fine in your project. The newest technology is going to take more CPU, more memory, it will add unjustified complexity. And the more complex a robot you eventually do send to Mars, the more risk you’re taking.

We can’t take everything with us but what are the alternatives? “The Martian” movie emphasizes the importance of ISRU.
That’s right. ISRU stands for “In Situ Resource Utilization”. In Situ is Latin for “on-site” so ISRU is using the resources that are there, on Mars or on the Moon in that case. ISRU is a way to live off the land so you don’t have to bring everything with you. I use an analogy in my presentation about how we did the famous missions to the Moon during the Apollo Program. We didn’t live off the land on the Moon. We took everything we needed for the trip, for the stay there, and for the trip back. But the trip there was only 3 days, the stay there was several days, and the trip back was only 3 days. That’s a really very short trip. Our future trips to Mars will probably take 6 months just to get there. So you’re not going to fly for 6 months and then only stay for a few days. You’re going to stay there for a while. The current plan is that we will stay on Mars for more than a year. So if you plan a mission that long, it’s going to be cost prohibitive to bring everything you need for that long of a trip. But if you can actually create water and oxygen from local resources, if you can even create rocket fuel there by pulling some molecules out of the air and soil and processing them, that means you don’t have to bring the fuel for your return trip. That saves you a lot of mass and a lot of money and it just makes the whole mission doable – we just can’t do this unless we don’t have to bring everything with us. We must do some ISRU. The writer of “The Martian” did a lot of research into NASA’s technology and R&D. He used a lot of technologies that NASA is actually working on and planning on using on Mars. How many kilograms of this and how many liters of that – all the math is in the book. There were only a few things in that movie and in that book that myself and my coworkers thought were just science-fiction and completely made up.

Exploration, that is creating brand new software, or using software that is available on market – which way is more suitable in NASA projects?
When you’re picking software to control a rocket, for example, your requirements are going to be more strict and you won’t have so many options when it comes to that type of a system. In some projects, even at the research level where things are really flexible, even then sometimes we even have to write custom code, even if it’s just to connect two commercial products together somehow.

So using open source software is a popular solution at NASA?
Each project manager has to look at all their options and make a decision based on budget, schedule, requirements, etc. Me personally, if there’s a free open source option out there and I know it will do the job, I’ll take it. I can use more project money on something else then. For short term research projects, a lot of the folks that I deal with and interface with in NASA are very comfortable with open source software.

Which programming language are you familiar with the most?
C and C++ is what I have the most experience with. I had several projects a long time ago that used Java and I really enjoyed that. I liked Java a lot but my current projects don’t use Java. But each project that I work on at NASA has to choose software technology that fits best with the project. NASA doesn’t direct us to use certain programming languages or anything like that.

Is it important to use the software that is popular among software developers and accessible at the start of the project so that you’re sure it will be easy to manage in the next couple of years or even decades, especially in the space industry?
That’s definitely true for long-term projects like the Space Shuttle program which was a 30-year program. When you’re doing a program that’s going to last a long time you have to make sure you choose technologies that are stable and can last or can be upgraded without a lot of effort. That’s hard to predict at the start of a project. There were some times when we tried to upgrade some things in the Space Shuttle program and we were unable to for various reasons or we did successfully upgrade but it was a lot of work. On the other hand, there are a lot of projects at NASA that are short term research projects, which are more flexible. The “Swarmie” project was a 12 month long research project. As soon as the project started, myself and my coworkers looked for technologies and tools that we could use, that were the most recent and most inexpensive, that would meet our requirements and get the job done.

In the “Swarmie” project one of the robots had “personality” and attitude that the other robots didn’t have. It turned out to be a software bug. The risk and potential for error – what burden is it for projects like this?
This bug showed up because there was a slight hardware difference in one of the swarm robots, which was very subtle. There’s always a risk out there, a slight possibility that a bug could get through your testing. This was a low risk, non-critical project, though. For high risk and critical projects, NASA takes a lot of precautions and worries about what’s the worst case scenario and tries to handle that upfront. When we’re operational, we try to be in a position where there are no surprises. If a problem crops up, you turn to a page in your procedure and you just follow the steps. Basically for real operational missions there are very few true surprises. Almost everything is thought out beforehand and we know exactly how we are going to handle the issue. I imagine pretty much every piece of equipment that we send to Mars is going to have at least some level of automation software embedded, mostly because of time-delays between Mars and Earth. We can’t predict everything, especially on a different planet, but we try very hard to do just that.

Regarding this exploring theme – what is your first exploring experience connected to new technology?
My first computer was an Apple IIe. I started creating simple text-based video games on this computer. Then I graduated to more complex games and what at the time was considered high resolution graphics. When I saw the possibilities it made me want to be a software developer when I grew up.

You’re still this lucky guy that is exploring in your work?
I still explore. I like the Internet of Things, new technology like sensors used in smartphones for example. I like playing with new technology and it’s always a learning experience. I’m really excited about some of the awesome frameworks, methodologies, and development environments that are helping developers do their jobs. Nowadays you can develop software without needing to be a hardcore software developer. Some of these drag and drop user interfaces that make it so easy for even young children to design and create working software – these are great achievements. I can’t imagine if these tools were available when I was 12 or 13 playing on my Apple. Who knows where I’d be today if I had these tools back then?

And you didn’t have tutorials on YouTube.
That’s true, we didn’t even have an internet when I was that young (laugh). We had to go out and ask actual people to get our questions answered. I have teenage sons at home and I’m really excited for them because there are so many great tools available to them. They can program and they’re in robotic and software coding after-school clubs. These clubs are not bringing in just the geeks these days. Lots of technologies are accessible to everyone and since it’s so embedded in our everyday lives, these clubs are attracting all types and personalities of kids.

You were this type of kid – a geek?
Yeah, I grew up loving technology. Even simple technology like toasters and watches. I loved looking at mechanical and electrical things and trying to figure out how they work. My mom loves to tell a story about how I took my dad’s watch apart when I was very young. That’s basically the definition of an engineer. And probably a geek too (laugh).

And how did you start your career at NASA?
There are a lot of really smart people, geniuses, that work for NASA. That can be scary. Am I that caliber? Am I worthy? I was not a perfect “straight A” student. I’m not a super-genius that knows everything about everything. While I was in college, though, I applied to NASA for an internship. I don’t know exactly why they picked me over the other applicants. But when I got to work I was excited about the work, I worked with really good people, I was able to take tasks and just hit them hard, and work really hard and succeed. Today I work with some really high-level super-geniuses and it’s great to have someone like that on your team. It’s also great to have some people who are more grounded and more well-rounded. They can bring another perspective. It’s great in a corporation or any organization to have a team that’s well-rounded. If NASA was full of only super-geniuses we might not be doing as well (laugh). It takes all different types of people, a diverse set of employees with different personalities and talents to work together and get a job done well.