Changelog Interviews – Episode #372
Building an open source excavation robot for NASA
with Ronald Marrero
Ronald Marrero is a software developer working on NASA’s Artemis program, which aims at landing the first woman and next man on the Moon by 2024. How Ron got here is a fascinating story, starting at UCF and winding its way through the Florida Space Institute, working with NASA’s Swamp Works team, and building an open source excavation robot.
On this episode Ron tells us how it all went down and shares what he learned along the way.
Featuring
Sponsors
DigitalOcean – The simplest cloud platform for developers and teams Whether you’re running one virtual machine or ten thousand, makes managing your infrastructure too easy. Get started for free with a $50 credit. Learn more at do.co/changelog.
GitPrime – GitPrime helps software teams accelerate their velocity and release products faster by turning historical git data into easy to understand insights and reports. Ship faster because you know more. Not because you’re rushing. Learn more at gitprime.com/changelog.
Beginning Machine Learning with TensorFlow.js – Get an introduction to the world of Machine Learning with Javascript and TensorFlow.js. This is a three-week course covering an introduction to Machine Learning models, tensors, and the TensorFlow.js framework. Use the code CHANGELOG
to get $100 till the end of 2019.
Square – The Square developer team just launched their new developer YouTube channel. Head to youtube.com/squaredev or search for “Square Developer” on YouTube to learn more and subscribe.
Notes & Links
Transcript
Play the audio to listen along while you enjoy the transcript. 🎧
Alright, we’re joined by Ronald “Don’t call me McDonald” Marrero. Ron, thanks for coming on the Changelog.
Thanks for having me, guys. You got my nickname right… [laughter]
That was awesome.
I figured it’s a nickname that you don’t want. We’ll just perpetuate it to all the internet, so that everybody calls you that from now on, and consign you to that fate… Anyways, don’t call him Ronald McDonald, call him Ron. Ron Marrero is here, and we’re here to talk about a pretty cool project, something near and dear to Adam’s heart, NASA-related.
That’s right.
It’s the EZ-RASSOR, which is an educational robotics software platform built by students at UCF - yourself included, Ron - and in conjunction with the Florida Space Institute and NASA, Swamp Works engineers at the Kennedy Space Center… Well, that’s a mouthful. Tell us about – what’s NASA Swamp Works, first of all?
Yeah, so Lockheed Martin has this famous lab, this prototyping lab called Skunkworks…
Okay.
So NASA decided to model that same energy and create a team of other engineers to do primarily rapid development… So they created Swamp Works. If you know about Florida, we have gators just about everywhere…
Swamps, yes.
Yes. And the Kennedy Space Center has a lot of swamps. They’ve even reported panthers on the center…
Really?
Yeah. So it just seems fitting that they would have chosen that name for their group.
Yeah, it’s like Skunkworks but Swamp Works. Makes sense.
I like it. It’s actually really on point too, especially considering how much the Everglades – those are just a tremendous size of the Florida area… And I’ve actually swum in a lake in Florida at night, like a crazy person…
Oh, no…
What?!
Yeah… I was young, didn’t know any better…
Isn’t that dumb?
Yeah, that’s really dumb. Don’t ever do that. I lived, as you can tell…
That is classic [unintelligible 00:03:25.17]
Ron, tell us you’re smarter than Adam.
Well, you know what - I’ve only swum in lakes during the day; I like to see what’s going on. They have a really neat logo… It’s like this blocky gator right around the word NASA…
Oh, nice.
So yeah, they’ve done a good job of that.
So tell us how you got involved. You were a student at the University of Central Florida, I assume a recent grad… Give us a little bit of your back-story into getting involved with Swamp Works and this very cool robotics platform.
Yeah. [unintelligible 00:03:56.12] at UCF, so part of the requirement to complete your bachelor’s is to go through senior design, which is this really neat group project that you have to complete in order to basically receive your degree.
[04:15] It’s several weeks long, where different sponsors will come out and pitch projects. This for me was fall 2018. Tons of different sponsors… Red Lobster was a sponsor, Lockheed was a sponsor… So tons of cool projects for students to get involved in. So the nature of them, the more I started listening to them… You know, they were interesting; a lot of websites, a lot of machine learning… It’s a hot topic, and definitely one that a lot of students were interested in. And then I heard NASA.
There was a gentleman by the name of Mike Conroy on behalf of the Florida Space Institute, where he works, who brought us this project. And I remember clearly one of the slides said “If you work on this project, you will be a NASA intern. You will get access to Kennedy Space Center…”
Wow.
And so that drew me in. And then he explained that it was a robotics project, and would involve things like a simulation and communication autonomy, and then that drew me in. So I raised my hand at the end of that presentation and I asked probably the best question anybody had asked, which is “Is there travel reimbursement for taking this internship?” I don’t know why that came to my head, but that’s what I asked, and the answer was no, sadly… But I was still drawn enough by the project to take it.
You go through an entire (kind of) vetting process with the professor of the class. He wants to make sure that the students who want to be a part of a certain project are going to perform well in the project that they’re applying for, and have the skills and have the resources to do it… So I applied, and less than a month later was accepted on, with nine other guys, to start this completely open source robotics project.
Pretty cool. What did that feel like, when you got accepted on? Were you like “Dang, I’ve gotta go buy a plane ticket”, or whatever sort of logistics? Or were you just excited? Did you celebrate with friends and family? What kind of a level of an honor was this one - a big deal, a small deal?
Oh, this was a big deal for me. I live right now in a smaller town, Kissimmee, South of Orlando. Everybody knows Orlando, not so much Kissimmee… So the biggest things I had ever seen were Disney, and at times I’d gone to Puerto Rico… And when I found out about NASA, I honestly couldn’t believe it. I hit F5 on the web page that showed I was a part of the group a few times, just to make sure it was real…
Ha-ha! That’s funny.
And it was. And I am still in shock and awe that I got to be part of that project. I immediately called my parents, and then within five minutes I had a flood of texts, because they were so excited and spread the news…
Nice.
Yeah, it was just a really wonderful experience, and definitely nothing that I had ever expected to be doing.
Kind of modern-day equivalent of “Pinch me, I’m dreaming.” It’s like “F5, I’m dreaming.” Just like hard refresh that sucker, make sure there’s no cache… Is this possibly real…?
Yeah, it’s funny… So everybody knows NASA. The name itself is very iconic in space, and we’ve just celebrated our 50th anniversary. So I was very excited when I found out about it… And then the longer I was on the center and the more I researched after I got the offer, the more excited I became in space. So I think in a lot of ways I’m way more excited now than I was even back then.
You mentioned in what you learned here that you had to write a strong cover letter. What was involved in writing that? What was involved in the research to make sure you got it right?
[07:43] Yeah, so I definitely wanted to make sure that I was competent to perform, that I would stick to my commitments, that I would show the professor that if I got a project as important as working with NASA, that I would be able to deliver. And thankfully, I had been working at a hospital group here in Orlando, working software development for them, and they had given me the opportunity to be the scrum lord over one of their development teams.
So I really drove home the leadership part of my experience, and then just displayed a willingness to learn. I think I’ve really always done a good job at searching, and if I get stuck, just working the problem. I had no robotics experience, I had no simulation experience; all I had was the desire, not just to work for NASA, but to work on something I never had before. And with robotics being such a big part of today’s world, and even a bigger part going forward, I really wanted to do something that would get me out of my comfort zone.
So how long was the duration of this internship, the project?
This project ran all the way from October 2018 - that’s when we really started getting into it - until May of 2019. In between there we got to go to NASA several times, we made it a point to go every Friday… So that’s where the Swamp Works engineers came in. They were the subject matter experts for us.
I should probably explain what we were asked to do for this project. The Swamp Works team - they’ve designed the RASSOR. It stands for Regolith Advanced Surface Systems Operations Robot, and it’s a digging robot. It’s a digging robot to go to other planets, primarily the Moon and Mars, and perform what are known as ISRU In Situ Research Operations. And all it means is being able to dig up the top soil on another planet that has elements like Hydrogen, and being able to dump that into a processing facility where you can convert that Hydrogen into fuel.
The way they explained it to me is when you go on a long trip cross-country you don’t take all the fuel you need with you. You can’t. And so it’s gonna be even harder to do that going to Mars. You need to have a big tank, or you find ways to mine and make your own fuel. So the RASSOR project is just one way to do that. They have a second version of the RASSOR, they’ve been promoting it a lot… So we were asked to do an open source version of their robot.
Why open source?
Their code was proprietary and their project was proprietary, because of the nature of the missions that they were doing. They could of course talk about their design and talk about what they were doing, but they couldn’t publish any code and they couldn’t give people who were interested in the project anything to work on. If a school wanted to, for example, make their own version of the RASSOR, they’re not gonna have the funds to be able to build the industrial parts that they’re using for their robot. They’re also gonna have to start from scratch.
So when Mike Conroy with the Florida Space Institute brought us this project, he wanted to make a robot that would educate others on the work that Swamp Works was doing, and allowed them to participate in that learning. And the only way that we envisioned doing that was through open source, through being able to have open discussions and being able to share our code, and also to work from the ground up in a black box, to make sure that we develop something that was completely not developed by NASA, that we could freely share and that other people could collaborate on.
Did they give you any bootstraps or leg up to begin the project? Anything like research papers or anything to say “Well, here’s where we’ve been…” and maybe resume from there and make it open source? How did it translate from some proprietary version of it to what you all created?
[11:39] Yeah, so they had given us public links to their scientific papers on the RASSOR, how they had designed it, the challenges that they were working to solve with it, and then just how they engineered it from a high level. So we went through those to understand “Okay, this robot has two digging arms. How did they get that to work? Where is the central processing unit on this robot, so that we can make sure we get that right? What are the operations that they expect it to do, so that we can emulate those functions as well?”
So we got those documents, and we also – we just looked them up on YouTube and were able to thankfully find visual footage of what this robot looked like before we were able to meet them in person… And we went from there.
Interesting. Did you have to learn anything about environmental challenges, extreme weather changes, high/low temperatures, anything with physics or gravity, anything that was outside of typical computer science learning you might have done?
Yeah. This robot - it handles movement and obstacle detection obviously through cameras and sensors… So one discussion that we had that we kind of got stuck on was the Martian landscape. There are dust storms on Mars, and if you have a camera that needs to be able to see to know where it’s going, how do you tackle that challenge of basically cleaning the lens as it’s moving along? Like I mentioned, we got stuck on that, and then kind of moved away from it, because it was more of a stretch to go outside of the scope of what we were trying to do…
But along those lines, we were talking with them about their real challenges. Mars was just one example. You mentioned gravity… Mars and the Moon have very different gravity fields, so you need to account for that. The Earth has 9.81 m/s2 - that’s not the same number on either of those planets on the Moon and Mars… So it became a ton of rabbit holes for discussion, but also really eye-opening for us in terms of – these guys didn’t just make a robot, they’re not just working on a robot, they’re working on real space challenges that when they’re solved it’s gonna make for an amazing continuation of the project… And I’m sure they’ve solved most of them already, and they have even more challenges ahead to work on.
So you successfully navigated this program… Are you now working with – when you mentioned NASA, you said “we”. Are you working there now? Have you graduated, or is it still ongoing?
Yeah, so I graduated in May, and now I work on the Artemis mission. NASA’s big marketing push now, and it’s a very real mission, is to go back to the Moon by 2024. So I work with a contractor at Kennedy Space Center to do the software engineering for the ground systems related to that mission.
I do still keep in contact with the Swamp Works engineers, but I don’t actively work with them. I am still a maintainer… I actually am an admin over the EZ-RASSOR project, and now there’s a whole new group of students for [unintelligible 00:14:52.24] that are trying to push along even further than we did.
Can you bring us up to speed on the Artemis mission? What that is and what’s involved…
Yeah. So we have a lot of missions right now that are in [unintelligible 00:15:05.29] I’m sure you’ve heard of Space X - they’ve just had a launch earlier this week, and Boeing as well… So we haven’t gone back to the Moon in decades, and the Moon is important for us to go to Mars. Mars is very far away; it’s a place we’ve never gone, certainly not with humans. We’ve sent rovers over there. But we need to get it right the first time. So the Artemis mission – the tagline is we’re going back to the Moon by 2024, and that’s important so that we can test out ideas (we as NASA, I mean), can prove out ideas, in terms of building a habitat on the Moon, so that when we get to Mars, we can get it right.
That all happens through a rocket capable of taking the biggest payload we’ve ever taken. It’s called the SLS - the Space Launch System. That’s gonna be the rocket that we use for Artemis 1 to take us on orbit around the Moon and return. So the Artemis missions are – at least initially, Artemis 1 is to orbit the moon and then come back, and eventually along the way, by 2024, to send humans back onto the surface of the Moon.
[16:21] What I find hard to believe is you have just blown my mind, because a lot of people may perk their ears up and say “Yeah, we haven’t been back to the Moon in quite a while”, and there’s a lot of skepticism around the fact that we’ve gone to the Moon, or whether we’ve been in space, and for a mission to say “We will go back and land with a man and woman on the Moon in 2024” is like shut up a lot of skeptics, I suppose, and prove that we actually have gone…
Sure.
Because there’s a lot of skepticism around what happened in the ‘70s, going to the Moon and whatnot. So I’m excited about that, and I love space, I think it’s really interesting. I find myself in that weird intersection of skepticism around the Moon, or at least going there.
Yeah, and traditionally projects like these aren’t always the fastest projects. We’re in 2019, and to say we’re going in the next five years - it’s gonna take a lot of work and a lot of coordination, and it’s a very daring statement to be able to make. From what I’ve seen, we’re totally getting there.
I think it’s gonna take a lot of coordination across the country. There’s not just Kennedy Space Center, there are tons of centers across America, and we’re really making a push to get it done. I for one would love to see it. I’ve never seen [unintelligible 00:17:38.03] anybody go to the Moon, so to get to experience that… Yeah.
Me neither.
Me neither.
I wasn’t alive then. We’ve only seen footage. It was live back in those days, but Jerod and I were both…
Post-Moon.
Yeah, my parents don’t even have memories of it, because they were so young… So this will be, I think, a really defining moment for our generation to be able to go back and to watch that happen.
I agree. How cool is that to be a part of that mission though? That’s so – I can’t even comprehend it, that’s how cool it is.
What an awesome path to go on, too… Starting with this EZ-RASSOR internship and then transitioning that into this contract position on the Artemis program.
Yeah, it takes a lot of hands, it takes a lot of moving parts, and there are a lot of real challenges that have to be solved. We’re working on the ground systems, which relates to making sure the rocket can get in the air correctly at Kennedy Space Center, and that’s just one part of the mission.
What we do on the Moon is another part of the mission; the kind of experiments that we run and challenges that we try to solve on the Moon - entirely different. So through projects like the EZ-RASSOR, where we can give code to university students, high school students, even professionals, and say “Here are the resources that you have. Here’s a robot capable of excavation. You can run it yourself right now, and try to tackle this challenge. For professionals and anybody who tries to tackle those challenges, give us your code.” And then for NASA engineers - they can review that, and they can see what ideas are out there, and they can apply that directly into their missions, into their thinking, or in a lot of cases bring them on to be part of that as well.
So let’s talk about the EZ-RASSOR software project itself and learn about how it all works together. So the primary goal, as it says in the readme of the EZ-RASSOR, is to provide a demonstration robot for visitors at the Kennedy Space Center. My first question is is there a demonstration robot there that the software runs on, or is it a software-only demonstration?
There is not currently hardware for the EZ-RASSOR. When it was first scoped out, that was the goal, and I think in a lot of ways that still is. There’s just been no update on the hardware. But what it does serve because of the simulation that it’s able to run - it does serve as a way for you to run it yourself.
As part of the software package we have controls built in, we even have an Android, an iOS app to operate the robot… So as soon as the hardware is ready to go, we’re gonna be able to ship this software on it and get it in people’s hands, starting at the Kennedy Space Center, because that’s easiest, and then hopefully work towards getting it into the hands of more people, students in universities etc.
Yeah, that would be super-cool. What kind of architecture does the software run on?
The entire software for the EZ-RASSOR runs on ROS. ROS is a very popular framework within the robotic community. It stands for Robotic Operating System. It is literally not just the glue, but the foundation of our entire project. In describing ROS, usually it’s helpful to explain what it means by an operating software, or operating system. It’s not like your typical Windows or Linux, it’s really robotic middleware.
As software engineers/developers we use software to control different parts of a robot. That can get tricky if you’re not used to low-level code and writing drivers, and even doing it at scale. ROS for us in this project provided a way for us to abstract that a little bit and write Python code to operate the robot, but just not directly for hardware. We made our own hardware to be able to test our software on, but the beauty of ROS is that it operates through messages. So we would send a message to move the robot, and any part of our system that was listening and knew how to respond to it would.
Practically, that means if we had hardware listening for a movement message, it would know how to read the message, and then it would kick off the drivers and move the wheels. And at that same time if our simulation was running and it received the message for movement, it would also begin to move. That was something – we didn’t have to put an if statement, “if hardware, do this”, “if software, do that.” We were just able to send a message “move”, and any topic capable of receiving that kind of message would, and act upon it.
So it made it really easy for us to build the system modularly, one component at a time, and also trust that once we sent a message, that whoever needed to code up the receiver, that they would just be able to work with it, without us having to worry about the intricacies of what they were doing.
So in what environment did the simulations run?
[23:46] ROS as a framework, when you install the full package, comes bundled with a simulation software called Gazebo. So we initially used ROS Kinetic, which shipped with Gazebo version 7, and we did all of this inside of Ubuntu. As soon as our software spun up, we configured our system to launch different processes through a launch file… So we would kick off the simulation, and immediately the robot would come on to the screen through the simulation and wait for messages. So we would, either through a gamepad, send messages to it and see it move in real-time, or just right there on the command line be able to interface with it and see it move around, see the drums dig, see the arms go up and down…
Yeah, it’s interesting, you’re talking about controlling it. So what are some of the control structures for controlling the robot? [unintelligible 00:24:37.04] Are we talking about Nintendo controllers, are we talking about – what are some of the mechanics for controlling?
Yeah, so in terms of gamepad we stuck to an Xbox controller. We thought it was really natural in terms of digging to have the triggers and the bumpers be responsible for forward digging and backwards digging. And because they’re separated visually left and right, that’s also how we controlled which drum you were trying to rotate and in which direction.
And then outside of that, we implemented a tank turning movement functionality to be able to control the rover. All that means is you have the two joysticks on your gamepad; the left joystick would move the left side of the wheels, either front or back, and the right joystick would do the same for the right side. That was really all we needed. In terms of thinking about controls, it’s not too complicated of a robot to operate. You have movement, you have arms going up and down, and then you have digging.
As you mentioned, you were able to write your “application code” in Python. Was this a language you were already familiar with as you got going, or did you learn on the go during this internship how to write Python code?
Yeah, so it’s funny… There were ten of us on the project, and I think everybody knew Python really well, except for me. So that was an interesting thing for me to learn. I had known about Python, I just hadn’t exposed myself to it in terms of using it for a project, which at least being a student in computer science at the time it was kind of the anti-pattern, if you will. But thankfully, not too much of a hurdle.
ROS itself is very well documented, so we were able to - if we had an issue - just read the docs and see how it needed to be used. And also, thankfully, we had a lot of smart guys on the team, so it was very good to be able to lean on some of the more experienced guys.
There was one guy on our team, Tiger, who made sure we were PEP 8 compliant all the way. He would go through our code and if there was an extra space, he would reject the pull request… And I think that made us better developers for it, even if we didn’t see it at the time.
Shout-out to Tiger, the benevolent dictator.
There you go.
Gotta get those spaces in there.
Well, since we’re on a language question, I supposed it’s worth mentioning your GitHub profile username, CSharpRon.
Yes, thank you. That pause is definitely necessary. [laughter] So I’ve been playing keyboard for a little over a decade… I mean, not that I’m old or anything, but… C# has always been my favorite chord. And funny enough, C# the language is the first major language I used for work.
One day I was at a jam session and my friend Tommy just referred to me as C#. He asked me to kick off the song, and then the name kind of stuck… So that’s part of my SEO strategy; I just put it everywhere I can.
I love it.
“Part of my SEO strategy…” [laughs] You’re just trying to make sure nobody calls you McDonald. “Call me CSharp. That’s the nickname right there.”
Yeah, I don’t know if I need to put pronunciations to nicknames that I give myself… Because McDonald’s is kind of the easy one; it also sticks. I’ve also been called C-Shapron, which…
C-Shapron…?
Yeah, which doesn’t have the same ring to it.
No.
It looks like phonetically that’s how you would say it, but sadly, I can’t use the actual hashtag on a lot of websites, because then the browser thinks it’s an ID tag.
[28:12] So where did you get that one from? Where did that one come from?
CSharp?
No, CSharpRon, or… What did you say?
CSharpRon.
CSharpRon, okay. You pronounced it with an accent, and I was like “What’s that…?”
Oh, okay, yeah…
That’s the incorrect saying that I have heard before. If you say it too fast, there’s no capitalization…
That’s right. If you lose the Camel casing of Ron in there, it’s easy to be like “What?!” Csharpron…
I get it, yeah. Csharpron…
Yeah, I wasn’t sure how far I wanted to go with it a few years ago when I was trying to pick my GitHub handle, so I just kind of went with it. I knew I needed Ron in there, because otherwise anybody could be CSharp, and I think I’d get a copyright notice… And so it just kind of made sense.
I also think CSharp is an ironic nickname for a guy who I happen to know is running Arch Linux right now.
Oh, really?
Yeah. I mean, CSharp is usually somebody who is on Windows, or developing for Windows would be using C# as a language. Well, you happen to be on Windows by circumstance, because Arch Linux is not the best podcast recording operating system… But is Arch your daily driver?
It sure is. When I was first approached about this open source project, I was completely a Microsoft fanboy. I had been to Ignite, and I had Microsoft shirts and stickers… And I found that I was following a lot of Microsoft news, which meant I was always learning, but it also meant I was kind of close-minded to a lot of the developments in the FOS community. So I’m really grateful for this project in particular, because like you said, I am running Arch, and I am in this deep rabbit hole of consuming as much open source software as I can, and customizing my box… And I think there are a lot of struggles with that, but I think, like I mentioned before, getting out of my comfort zone has enabled me to learn a lot more things that I never knew that I would, like Vim… I think that’s made me personally – I’m not gonna get into the flame war about it, but I think that’s made me personally a better developer.
Certainly working with Linux and troubleshooting has gotten me more familiar with how the operating system functions, and having more of that kind of a mindset as a developer, keeping resources on the front of my mind and not taking things for granted.
So you started off in the Windows world. The old testament scholars would call that Egypt; you were in the world, and then you’ve been called into what we call the wilderness now. You’re on your wilderness journey through Arch, and Linux, and then eventually you’ll come into the promised land, which is macOS.
Yes… Actually–
[laughs]
…one of the guys on the project, Camillo - he’s gonna hate that I’m gonna say this, but he has a MacBook Pro, and shortly after he got it (it was like the 2018 model), he developed a mild form of carpal tunnel. I don’t know if it was the keyboard on it… But no, it’s just… [laughter]
Quite likely. The keyboards are not so hot right now… Although they’ve just released a brand new one that’s supposed to pick a few things…
Yeah, I saw the announcement actually today. It looks really neat. They brought back the Escape button… And yeah, I went down that journey, like you mentioned, and I was very surprised to see how much documentation there is regarding Linux things. I think that helped me a lot. Lots of great resources to learn… And the only thing that scared me off was looking at old posts from Linus Torvalds, comments on requests to change Linux. That really scared me. But yeah, other than that, the experience has been very positive.
[31:55] I ran Ubuntu for a few years during college and shortly thereafter, and back then - this was 2005-2006, so many things have changed… But it was always the Wi-Fi, the wireless card drivers that every time I upgraded I would have to spend hours fixing those things, and I just was like – I’d had enough. I know things have gotten a lot better, but we still haven’t had the year of Linux desktop… But I know everybody who runs Arch are usually huge fans of it. I’m a huge fan of Linux. I love that entire – I was gonna say “infrastructure”, but what’s the word? Just the file system, the commands, the [unintelligible 00:32:28.28] and all that kind of stuff. I love it all. It’s just when it comes time to record a podcast and you need to use audio, Adam and I - we will tend to give a little bit of an eye roll… Because when someone says they’re on Linux, it’s like “Oh, this could be trouble…”
Yeah, and maybe that’s something I should have said before, so you could have steered me away… [laughter]
It’s all good.
But I think it’s great, and you know, Ubuntu – so ROS development works best on Ubuntu. If you go to their website, packages are made for – the Debian packages… The Ubuntu team now has a robotics team, which is great, and they’re actively working on ROS. It’s really easy, especially with our project, to get it up and running using Ubuntu. You’re not missing anything, and I think frankly it’s the way, if you’re gonna do ROS development, to work.
Right on. So you accomplished what you set out to accomplish in software. I love the idea that you have a baseline of features that this first internship, these ten students went through and built this foundation, and now it can go from there. I’m looking at the readme, it seems like some of these things - the list, the bullet points, they’re on the EZ-RASSOR readme - might be aspirational at this point. I think it would be so cool to get that into the visitor center at Kennedy Space Center, so you can go there and see your software running on a real-life robot. That would be so rad.
Yeah, one of the Swamp Works engineers that we had worked with, Kurt Leucht - he even envisions it going out to museums. A big part of the success of NASA, and going forward the success of Artemis, is gonna be kind of public involvement. And to get something like this into as many hands as we can I think is gonna be really important.
If you look at the history of the repo, there are still some commits from (I believe) a month ago. There are a few of us that still work on it out of the ten. Tiger is listed as the - like you mentioned before - the benevolent dictator for life. It perfectly matched his contribution to the project, and I’m staying on as an admin… And I have work that I intend to do as well.
So we continue to develop even after the deadline, even after we submitted the project and got our A. When so many other teams literally just walked up and left from their projects, we’ve continued… And we really believe in the project. I think if you ask any of us who have worked on it, we believe in what this project can mean, we believe in, at least from a robotic standpoint, how much we can learn, how much is still left to be learned about software like this, how much other people can contribute to it that are much smarter than we are certainly… So it’s been a great ride, and next year, 2020, is gonna be pretty big for our project. We’re gonna see the next two teams that are working on the EZ-RASSOR, and I can get into specifically what they’re working on… We’re gonna get to see their contributions, and Tiger and I are gonna get to review it, and bring that in. We’re really looking forward to that as well.
Is EZ-RASSOR being used by the Artemis mission, or is that just part of how you got there?
[35:38] Artemis I think for the extent of this is just what I’m working on, but they’re totally separate. The RASSOR itself that NASA is working on relates to the Mars mission, but I haven’t seen where it’s slated to be sent out yet… So it could be part of the Artemis mission; quite frankly, I don’t know. I know that technology like the RASSOR is gonna be important, it’s gonna be crucial to getting us to Mars and staying on there and building a sustainable habitat.
The EZ-RASSOR as a platform is open source and you can contribute to it. If there are really good ideas on there, breakthroughs in autonomy - and those are even issues that are being worked on now, and as ideas come along, we might open those issues up. The engineers are looking at that, and they might bring that back in, they might reach out for more community involvement and see how stable it is… So this is definitely for education, but it has all the possibility of going further than that.
It definitely would be a cool way to get started in robotics, or even in Python, hopping into this repo and see if you can get it installed, see if you can get it running. The bullet points listed in the readme, the things that they can do - I’m curious how many of these are aspirational and how many of these are accomplished. So you have rover cross light to moderate terrain, collect regolith in rotating drums… Maybe you can explain what some of these things mean. Return regolith to hoppers located away from dig sites… I think I know what that means at least… Execute pre-planned routines autonomously, navigate around possible obstructions (that sounds like it might be aspirational), cooperate in a swarm of other RZ-RASSORs; that sounds scary, but awesome… How many of these are out there in the code right now?
[40:10] The biggest one right now is the autonomous movement. If you give it an X/Y coordinate, you tell it where it needs to go, it will go there and navigate around obstacles in its path. It will dig for a predefined amount of time - I think we have it set to 10-15 seconds - and then it will return back to where it started from, which when you spawn it up becomes 00.
Those autonomous functions are working. Now, because it is a simulation, actually digging into the terrain, as far as our research went, isn’t possible in Gazebo. So to see the terrain change we’d probably need something more robust, to be able to visually see that… But for the purposes of the simulation, we are able to see it go into the ground, and the whole robot itself moves.
The hopper that you mentioned - there’s not a visual model in the simulation, but by returning back to 00 we’re assuming that that’s the base… So that’s accomplished as well.
It’s funny that you mentioned that… So all of the major highlights are done. When it gets more into bringing it to a hopper, and bringing regolith in, that’s where hardware would kind of be needed to flesh that out.
Regolith itself is an interesting term… It’s the R in EZ-RASSOR (or RASSOR), and that’s the topsoil in a planet. That’s your dirt here, your dirt on Mars… And that’s what the EZ-RASSOR is trying to collect.
They couldn’t just call it dirt, huh? They called it regolith… [laughs]
Yeah, that’s – you know, I don’t know if EZ-DASSOR has the same appeal…
[laughs] It sounds kind of nice…
That’s because it’s technically a meme; it’s the circumference of many things. It includes dust, soil, broken rock, and other related material. It’s more than just its name. Regolith… You know this. I’m just kidding! I don’t know this.
I don’t know any of this.
I’m only kidding, I looked it up. [laughter]
Yeah, so you’re on Dictionary.com over there, trying to act smart…
I’m calling myself out on it. That’s interesting… The predefined dig times is pretty interesting, too. I guess at this point it’s meant to be educational and exploratory, so a real mission might be actually having sensors for knowing if you hit bedrock, or certain objects that prevent you from actually digging. There might be some more smarts behind the digging process, whereas in this case it’s probably a little less smart; I was gonna say “dumb”, but that’s not cool… Less smart. It’s just gonna go and dig somewhere, wherever the X/Y coordinates lead you to, for a time, collect it, and drop it back into a hopper, which goes into maybe a – what did you call the thing before? The processing plant, or…?
Yeah, like a home base essential processing plant, yeah.
Right. Cool.
That’s where a swarm comes into play. With a simulation you can easily – we feel like we made it easy to just grab your phone and grab a gamepad and connect, and make it do whatever you want. But obviously, that doesn’t work for real life… And the reason why is if you have a robot on another planet – you know we have really fast internet here; messages that you send out to other celestial bodies take forever to get there… And that’s if it gets there at all. You’ve gotta make sure it’s unimpeded… So you can’t just pull up a screen and manual mode a robot that’s on Mars. You have to rely on autonomous communications.
So when you go out to do a dig, you as the robot need to determine “How do I get to my dig site?” and “Is this a viable dig site? Am I gonna fall off a cliff somewhere? Is there enough materials to mine here, or am I gonna break my wheels?” That’s where swarm technology really comes into play. Being able to communicate, to have a set of robots communicate with each other and know “Hey, this path I’ve already determine that you can’t cross it” saves on computational resources and possibly even saves the robot from being damaged. By working in a swarm you can also dig more efficiently.
[44:14] So that’s probably the stretchiest of the stretch goals that we had. The implementation we currently have - we’re able to spawn up multiple robots, and we can give them each a set of X/Y coordinates to navigate to, dig, and come back to. We have that fleshed out and working. And we also have a game version, where if you spawn up multiple robots and you hand four people four different phones and/or controllers, they can try to wreck each other. We call that Battlebots. [laughs]
That’s cool.
Yeah. It works great. When we demoed Battlebots, which was for our big, final presentation in front of the UCF faculty, two of the professors [unintelligible 00:45:00.08] each other head on… And collision detection in the simulation environment just went haywire… And it became like that scene from Matrix 3, where Neo and Agent Smith are just fighting, and they’re flying in mid-air as they’re fighting… It became a mess, and it was so great to see, at least for them. We were trying to figure out what went wrong in the code. I believe we fixed that since then, but…
[laughs]
We’re still needing to have that communication layer and that kind of autonomous decision-making, to be able to relay back and forth between different robots and the swarm, and to be able to truly operate together as a group, without any intervention from us, or even having us plug in X and Y coordinates.
Since we’re talking about this obstacle avoidance scenario, talk about self-right. What was involved in self-righting? Is there a lot of interesting things that can come to play there, where you know you’re upright again? Is there sensors? Talk about that a little bit.
Yeah, so a really interesting part of the design for the EZ-RASSOR is the fact that it has two arms and two drums that span across to kind of equal the length of the center of the body. So if you’re deployed onto another planet upside down, that’s kind of bad, because then your readings are all negative, or maybe you can’t perform certain operations. Because of the structure of the EZ-RASSOR, you can manipulate both arms, so that you can flip over. Flipping over sounds like a hard thing, but because of the structure of the vehicle it’s very achievable, especially on other planets, where gravity is less… It worked most successfully on the moon.
So self-right - if you land on your side, if you tip over and land on your side, that sounds almost harder to get out of. But by wiggling your way out and being intelligent about that, you can self-right and make sure you don’t fall on your back. Our robot comes with an IMU (inertial measurement unit), and as long as the node is spun up, the ROS node is spun up to watch out for when those values get skewed, we can autonomously self-right. At least on our Medium post we have a gif of that functioning… And we were really impressed, because I think Harrison - who’s one of the developers - got that working, and I think he did it within the span of a week… And it’s just because we had a stable framework in place, he was able to focus on just the part that he needed to - reading the data, and then moving the arms based on it.
Does it actually have an upright or a downright position? It seems like it can go either way.
It can go either way. We do, in the code, assume that upright is kind of like your base, your positive line, your 00. It can work upside down, but then all of the math functions would have to be…
It’s goofy foot then, backwards.
Yeah. So it’s just best to turn it around.
[47:58] Gotcha. I guess from a software perspective – and I guess you could just reverse everything, but you could do it like goofy foot mode, or something like that. I’m just thinking like – I used to skateboard, so it was goofy foot for me.
Yeah, we could also listen to when that IMU value changes and instead of performing a self-right, if it’s safe to do so, just keep going along and invert the values. That would definitely work as well.
Another interesting part of the design of it is because of the length of the arms and how sturdy the drums are, if you ever needed to, you could drive on the drums. We have that working, especially on the Moon, which is included in our software, where gravity is much less. It’s very fun to do, and actually very easy.
Yeah. That would be good for if you’re going like a descending terrain, because you have a longer wheelbase, you’ve got more stability… Whereas if you’ve got your drums up, then you’ve got a shorter wheelbase, and you’d potentially even flip over going down the terrain if you’ve got your drums up like that.
Yeah, the drums themselves are made to be a lot sturdier than the wheels… Especially if you’re going over dangerous terrain, there’s probably cases where you do wanna use the drums and save your wheels, because you don’t get those back. You need to be able to make your way back home, so you wanna protect your wheels.
So you couldn’t make it self-heal, too?
That is one of the ideas that was talked about, but never implemented. If the robot is modular, if you have especially like 3D printing, which I’ll get more into in a second, then you could bring the robot back and just swap out a part. And think about how easy that would be.
It makes me think of Wall-E.
Yeah, exactly like Wall-E. It would be revolutionary. But yeah, one of the things that Swamp Works is working on is actually this whole idea behind 3D printing. If you need something repaired or you need a utility item, it doesn’t make sense to take all of it with you, because you don’t know what you’re gonna need, especially if you have a large fleet of hardware. So it’s pretty novel and pretty neat to be able to print your own stuff. But then how do you swap out parts? If you have a battery that’s dead and you need to swap it out, obviously that can’t be 3D printed… But that’s its own kind of autonomy challenge in itself, or certainly a visual challenge, to not screw up any other part of the robot, and change just the part that you need to.
But there are videos online of Swamp Works and their work towards trying to 3D print parts on other planets based on the regolith that’s already there.
Yeah. Let’s get some people excited about what you’re excited about. One of the things yo say is your favorite thing to talk about is space, and obviously computer science, and things like that… But if you were trying to impress somebody to maybe take the path you’ve taken, or get a lucky chance like you have - and I don’t mean that lightly; you’ve obviously worked hard at what you’ve gotten, but you even admitted to having to push F5 to refresh, to see if someone’s playing a joke on you, to get this opportunity to go to NASA and all this cool stuff, but… If someone was trying to do some things you’re trying to do – obviously, EZ-RASSOR is probably one way to dig in, but what are some paths you can offer to someone who’s excited about space, computer science like you are?
Yeah, so open source is a big way to do that. There are projects all over the place that are looking for maintainers, and probably not so much within NASA, but just in general; there are robotics projects out there… But I think none of it is possible unless you try to learn something that you don’t already know.
I fell into the trap for a long while of only continuing to learn about things that I had already know about, until I came across this robotics project. We live in a great time, because there are so many resources to learn basically anything; you just have to decide what you want to learn about.
[52:04] So from the software engineering perspective, or in terms of working, I think robotics is gonna be a major key in space exploration. There are so many challenges that have yet to be solved, not just here at Kennedy, but in future missions, involving all kinds of research… So just taking a chance to learn robotics and maybe building your first robot, or trying to get ours up and running, just the simulation, I think would be very good.
I’m a big believer in seeing the end goal and building a passion around that. What I mean is it’s kind of hard to just tell somebody “Learn robotics” and have them want to do it. I think it’s much more powerful and captivating to show them a rover on Mars, to show them a real robot and what it can do, and have them pursue their passions that way.
About space - nasa.gov is a fantastic website to learn about space. Really, kudos to their media team, because every day they post brand new - either images of the day, of space, or articles about what they’re doing, the development with the Artemis mission… It’s the landing page, but I think it’s kind of the best page to – a jumping off point to keep getting excited about space.
And if you’re a visual person, go to the centers. You have Johnson Space Center in Houston, if you can physically go to… You have Kennedy Space Center here in Florida… I think nothing beats being able to see it in-person.
Yeah.
And yeah, just to kind of bring it back to being able to see and know if that’s your passion - definitely check out a center if you can, and get other people to go with you, and spread the word.
The centers are actually really cool. You can see movies there, that tell some of the history, you can actually see some of the – they always have something set up… Because I live here in Houston and we go there at least once a year, because we have family come in, and we basically become tourists in our own city whenever we have holidays, because we have downtime and family and whatnot. So we’re always at the Space Center doing something… And it’s so cool to see what they’ve done at Mars, and all this cool stuff… It’s just so wild to see all this history, and I love it even more when you can actually see the gigantic Saturn rocket, for example, and just see how extremely big this thing is. It’s like three football fields long. It’s just massive. And just imagine that in the space, and what they’ve done with it…
Yeah, and what’s great about it too is that those kind of remind us of the things that we’ve done already, but there’s still so much more left to do. If you could believe it, I actually was kind of turned off to space before this project. I’d seen all the shuttle missions, and was excited about the idea, but in terms of actively following it, it just seemed like something very far away, or very elusive, that I certainly could never be part of… And now, a year later, I see how not true that is. And not just because I work there, I mean for literally anybody.
NASA has code that they publish, they have tools that they publish themselves, that you can download and use. You can see their source code. It’s the NASA Software Catalog. They have projects all over the place to get the public involved and contribute back into their work. One of them is the Space Robotics Challenge. Registration is open till the end of the year; anybody can sign up, you just have to be a U.S. citizen, I believe… And you can work on a real robotics project to solve a real challenge that they have, based out of Johnson Space Center. Not that they will make you go there, it’s a remote competition, but that’s the team that you’re impacting… And I can’t stress enough how you don’t have to work for NASA to be part of that project. Their community involvement is greater than I’ve seen in the past, especially because technology is so accessible. They’re able to get people who are just excited about space to work on some of their projects.
[56:12] Can we come back to maybe Artemis for a second and talk about maybe where you’re currently at? I know that you had mentioned your bachelor’s degree in computer science, and you were sort of working and going to school at the same time… Maybe touch on that, and then maybe touch on specifically some of the things you’re working on with the Artemis mission.
Yeah, so I wanted to keep the momentum going as soon as I finished with my bachelor’s, so I figured what better to do than to go with my master’s. Ph.D. seemed like a lot of work, and I’d have to give up work, so I went after my master’s… And thankfully, I found a very good program at Georgia Tech, that is online… So it allows me to continue working full-time, like I’ve been doing since literally I started my bachelor’s.
So I’m pursuing that, but then I got a really wonderful opportunity to apply to work as a contractor on the Artemis mission… And I’ve been working there since September. We work on the ground systems equipment; there’s the launch control center… There’s one in Johnson, but there’s one in Kennedy here as well… And they use a lot of software to measure gas levels, to communicate failovers… It is literally our job to make sure nothing bad happens to the rocket until about 45 seconds into the air… And then it’s not our problem, it goes back to Johnson. [laughter]
Somebody else’s problem at that point…
“Not our problem…” [laughs]
Exactly. But if you can imagine - those first 45 seconds or however long it’s going to be, are so crucial. Getting off the ground and getting into space is probably the hardest challenge in addition to re-entry… But once you’re in space, you’ve got nothing stopping you. It’s just getting off the ground…
So me and my team - we support the engineers who are at Kennedy Space Center working on the ground systems, we provide software development support to them, whether that’s through automation, whether that’s through code reviews and making sure that they’re double-checking their work from a software perspective, or just encouraging them to use frameworks, so that they’re not just siloed development, or making sure that we’re not siloed in our development, but that we’re able to work towards maintainable code… Because Artemis is just the beginning. We have such a long way to go, and making the right choices now will help make sure that we can get off the ground to go to the Moon in 2024, at least from a software perspective.
Do you have to have a security clearance for what you do?
Um, I see the red dot about to take me out… [laughter] No, I do not need security clearance. I do not have security clearance. But there is an extensive background check; there’s actually two background checks I had to go through. They really vet all of their contractors and all of their employees on the center. That was a fun experience, having to go back five years and kind of remember literally everything I did… But yeah, one of my friends who worked on the EZ-RASSOR does have security clearance, and I got to be a character reference for that, which was a really fun experience.
Yeah. You get that phone call, “Hey, so-and-so said you’re a reference for them… Are they bad or good?”
“Um, now that you mention it…”
[laughs]
Digging up that dirt.
Regolith.
Yeah, they take security very seriously. Yeah, regolith; that’s all I have to say. [laughs] But if you can imagine, now at Kennedy they’ve coined the term “multi-user spaceport”, so it’s not just NASA. There’s Space X, like we’ve mentioned, who launches out of there, and Boeing, and all these other companies… So I think even from that perspective it’s amazing to see, because this is something we haven’t seen before. Boeing and Space X are kind of neck-in-neck, trying to see who’s gonna be the first company on their own to send a crew back to the ISS, the commercial crew program… NASA is obviously providing oversight and making sure they’re doing it right, but NASA is not dictating how they go about their mission as they would dictate their own projects. So yeah, it’s a really good time to be alive.
[01:00:22.12] Even though on the Artemis website they say how important it is for the ground systems, that it says “Hey, space exploration begins on the ground. That’s where we begin.” You’ve gotta fight the gravity, you’ve gotta get that escape velocity going on, and boom, you’re off.
Yeah, and there are so many moving parts to it. I kind of have that one-liner description, we just get it off the ground.
Yeah.
And I knew it was a difficult task, but actually getting to work with all of the teams - it is an immense task just to do that. We have the vehicle assembly building, which has a lot of dedicated men and women working in there, and the LCC, where the operators are working to make sure that they’re ready for the launch, for the next Artemis launch…
We haven’t sent a crew into space since (I believe) 2011… And the commercial partners, Boeing and Space X - they’re gonna get to do that first, but we’re gonna get to do that ourselves, as a nation, truly, through this Artemis program.
It’s interesting too that you mention that, because I’m looking on the site too, which is very well-documented on what’s going on there for this mission… But it says it begins in 2020, and it’s talking about Artemis 1 being the first human spacecraft to the Moon in the 21st century; now, I’m not sure if that’s tied to the 2020 dateline, but it’s just sort of giving this over-arching chronology of what’s gonna happen, or what they intend to happen with this mission, which is pretty interesting… From Artemis 1, to Artemis 3.
Yeah. So the goal of the Artemis program is to get us to the Moon by 2024, but we definitely want to make sure we have the rocketry right before we put people on it. So Artemis 1 is gonna be so important for that, to make sure everything goes perfectly, and make sure we dot our i’s and cross our t’s to know for sure that it’s ready for humans.
Ready for humans… That’s important. We don’t want anybody die up in space. I remember when that happened; I think I was in second grade when the Explorer blew up on the way, heading up, and it was such a terrible day.
Oh, the Columbia?
I don’t know if it was Columbia… I can’t recall. Jerod, you might remember. I was in second grade. You were probably three, you don’t know this… [laughter]
Well, how old is second grade? Eight years old?
Six to seven, yeah…
Yeah, I probably was three.
Yeah… Either way, it was a terrible day, and we don’t want that to repeat.
I was still eating lucky charms, and sucking my thumb, or something.
That’s right, that’s right. Ron, it was awesome talking to you. This has been an amazing journey for you, as you’d mentioned earlier, coming from school, to open source, and that opened up a significant door to NASA and exploring your career further, from a bachelor’s degree, to a master’s of science, and working at NASA, and a mission that may very well change the world… Because the intention is to go from the Moon, learn, and then be able to take that learning and go to Mars, which is what a lot of mankind is looking for, in terms of future space travel and future opportunities to do different things. There’s a lot of opportunity on Mars that is being explored, and a lot of hope there for it, too.
Yeah. And I really wanna drive home, it’s not just about – I think with NASA specifically, it’s not about who you know; I think anybody can contribute, no matter where you are, no matter where you come from… And now more than ever we need a lot of that. If we as a nation are gonna make this mission a success, and even through the decades continue to make it a success, it’s gotta be an all-hands thing. This isn’t some elusive project, this has to come from all of us.
If you check out the EZ-RASSOR project and try to get that up and running, I think it’s a good visual way to see certainly one of the projects that are being worked on at NASA, and see if you like it, see if you have an interest in robotics. Maybe even check out that space robotics challenge, phase two, and see if that’s something you would like to participate in. It’s free to join, free to be a part of… And yeah, the future is bright.
I sound really tagline-ish, but I think that’s just because there’s a lot of things, and space is giant. The discussions about space are ginormous. But it’s not big enough to exclude people. Anybody can support it.
That’s right. Is there a link to this challenge? Because if so, we’ll put it in the show notes.
Yeah, I think it’s the Centennial Challenge… I can certainly send you guys the link to it, so you can put it in the show notes.
Yeah, we’ll do that. I agree, I think space is big, obviously, and I think it’s an interesting thing to set your mind on, because there’s so many cool things to explore. It’s also very dangerous in space… But hey, that’s what you have robots for, right?
Oh, yeah.
Ron, thanks so much for your time today. It was awesome.
Thank you both.
Our transcripts are open source on GitHub. Improvements are welcome. 💚