In this episode we talk with Joel Esposito about his research on what is the current state of robotics degrees around the world. Based on a set of questionnaires, Joel obtained a clear view of what is the current situation of robotics degrees around the world and what are its drawbacks. He then proposes how those drawbacks may be overcome and how ROS enters into the picture.
You can know everything about circuit design, you can know everything about dynamics, you can know everything about computer science, and still know nothing about robotics.
- Follow Joel Esposito on his personal page
- Contact Joel on his email.
- Joel’s article, The State of Robotics Education, containing detailed data about what we talked during the interview.
- Joel’s article The State of Robotics Education on free pdf.
- The Robot Ignite Academy, our online academy that teaches you ROS in 5 days
- The ROS Development Studio, our online platform to program ROS online only with a browser
Subscribe to the podcast using any of the following methods
Ricardo Tellez: Hello, ROS developers. And welcome once again to the program, the podcast that gives you insights from the expert about how to program your robots with ROS. Today, we are interviewing Joel Espasito. Joel is a professor at the systems engineering department at the United States Naval Academy. There he teaches courses in robotics, unmanned vehicles, computer vision, mechatronics, and feedback control systems. And mostly recently he has started to work on research methods for teaching undergraduate. He has written a very, very interesting article, The State of Robotics Education. And we are going to talk today with him about his findings of this article on this research. Welcome to the podcast Joel.
Joel Esposito: Thanks for having me.
Ricardo Tellez: Okay. So yeah, we were talking before we started the podcast about if you could introduce yourself with more detail. So why do you qualify to talk about the state of robotics in education?
Joel Esposito: Sure. Well, I think as you said in your nice introduction there, I’m a professor at the United States Naval Academy, which is the United States navy’s own undergraduate college and it’s a stem focused program and it’s undergraduate only. So unlike many other institutions where faculty members are teaching robotics, perhaps in a masters or PhD level, I’ve taught many undergraduate. So for the past 16 years within our major, we have about a hundred students a year and about 80% of those will take some courses in robotics and controls. So I’ve seen many different undergraduate students from many different backgrounds and levels of preparation come to our somewhat unique major for the purpose of getting some background in robotics. You said before that I’m in the Systems Engineering department, but very recently we’ve changed our name in the department to a Robotics and Control Engineering Program. So we’re one of the larger undergraduate robotic engineering majors out there. And in 2016, we redesigned our entire curriculum to be kind of centered around what’s called project-based learning. So this is a paradigm of undergraduate education and many universities have to a different degree, but where most of the learning is centered around hands on experiences, a project that might be larger than in scope than something you can complete in a single week. So for example, in an average, a 16-week semester, we might have three major projects, for the first four weeks a different project, for the next four weeks and then a bigger project for the last six weeks. So it’s a very hands on engineering education, for that reason I think it’s very, very popular with the students here.
Ricardo Tellez: Okay. And when you talk about the project, do you mean about building robots or about using existing robot?
Joel Esposito: All of those things, some of the projects might involve physically building a robot. We teach a course in mobile robot design where we talk about things like locomotion and leg design and so forth. But in other courses, we might have some existing hardware, like a robot manipulator, industrial manipulator, and the students will program that to complete some tasks.
Ricardo Tellez: Okay. I understand. I completely agree on your method by the way, just let me tell you, because I think that we people understand by doing, not by reading or by hearing somebody explain it. That’s important to get the data, but do you only get that data into yourself when you apply that to something? So I mean robotics is super important. So wanted to ask you about this article that it’s called, I’m going to repeat, okay. The state of robotics education, I am going to put a link beneath the podcast for all the listeners, so you can download it. And can you explain us, what was the motivation of your study that you are presenting on that article?
Joel Esposito: Well, as I mentioned, I’ve been teaching robotics here for about 16 years. I’ve probably taught over 1200 students. And in that time, I’ve certainly thought a lot about robotics education. In fact other people at my institution have been offering those classes back since the nineties. So, we’ve certainly been doing it for a long time. But as I mentioned earlier in about 2015, we started thinking more carefully about how we could design our curriculum from the ground up. So instead of something that evolved over time, maybe some things are there for historical reasons or they’re grandfathered in. We said, what if we could start from scratch, what would we do? And ultimately that’s what led to us changing the name of the department to robotics and control engineering. But as part of that process, there was some introspection that went on among the faculty. There’s a healthy debate about, well, what are the trends right now in a robotics education, or if you’re going to truly offer a single introduction to robotics course, what would be the topics that you must cover in there?
Ricardo Tellez: That’s a very good question. That’s a key question.
Joel Esposito: What are the tools that you want to make sure your students know how to use? If you look at disciplines like chemistry or physics, it’s very well established. What would go in the introductory course in those fields? The very first university physics course, it looks remarkably similar in almost every university in the world.
Ricardo Tellez: That is right.
Joel Esposito: But that is not true at all for robotics. In fact, the way a person teaches robotics is very much colored by their own disciplinary affiliations, their own interests. It’s a very broad field. So that got me thinking, is there any consensus among people who teach robotics about what should go in those courses? And if so, what are some of the common challenges or lessons learned or tools in textbooks being used and so on? So that was what got me thinking about it was reforming our own curriculum. So what I decided to do was to create a survey. So I created a survey and it had about 50 questions in it about robotics education ranging from, how would you describe the distribution of students in your classes? Meaning, what percent of them come from mechanical engineering or computer science and so on to what topics do you offer? What textbooks do you use? What are the challenges you’ve seen in your courses? So I constructed this survey and I distributed on several large mailing lists.
Ricardo Tellez: We are going to talk about that.
Joel Esposito: And I got about 65 responses. So they are responses from universities all over the world, many of them were in the united states and Europe, but the survey was distributed internationally. And there’s responses from undergraduate as well as graduate institutions. So there’s a lot of diversity there.
Ricardo Tellez: One question it was oriented to the teachers directly.
Joel Esposito: Oh, that’s right. I’m sorry if I didn’t mentioned that. So this was a survey that was targeted at faculty members at colleges and universities that teach robotics. They didn’t necessarily have to be part of a robotics major. They could just teach a one elective in robotics, maybe inside of a more traditional mechanical engineering or computer science curriculum.
Ricardo Tellez: Okay. So the goal, it was to identify, if there exists actually universal, let’s say curriculum for teaching robotics, so I think that you explained super great with the analogy with chemistry or biology or whatever. So you mentioned that you structured your study by using survey there and based on the results there, what is the biggest challenge that you identify from those responses to the survey?
Joel Esposito: Well, about half of the, roughly 65 faculty members that responded said that the most challenging part of teaching robotics is the diverse background of the students. And by that, I mean their academic background.
Ricardo Tellez: From where they come from, which other studies they come before.
Joel Esposito: That’s right. Because there’s so few programs out there that are actually titled, robotics engineering, very often the faculty member who teaches a course is offering it through a more traditional academic department, like a mechanical engineering department and electrical engineering department and computer science engineering department, and so on. And very often it’s an upper level elective. So what we found in the study was that approximately a quarter of the faculty members are mechanical engineers, a quarter of the faculty members, teaching robotics are electrical engineers by training, 35% are computer scientists and about 15% are other, and that other might include things like physics, computer industrial engineering or maybe a dedicated robotics major. But what’s really interesting about that is when those same faculty members. So for example, a mechanical engineering faculty member teaches a class in robotics, we find that the students in his class are also mixed. They’re not all mechanical engineers. Because very often it’s an upper level elective that students are allowed to take across departments. So very often the mixture of the students, the distribution of the student background is very similar to that. So again, about a quarter mechanical engineers, one quarter electrical engineers and maybe 35% computer scientists with a handful of students from other disciplines, maybe mathematics or something thrown in there.
Ricardo Tellez: That you mentioned now let me tell you that this is exactly the experience that they are suffering because I’m teaching ROS the university also. And then I get people, they are enrolled in a robotics master program and the people that come there, it’s so different. So there is some people that know very well how to program, but there is people that doesn’t have any idea, they are just focused on the mechanics parts of the robots or others on electronics. So I’m also feeling the same result that you got is consistent with my own experience. Just wanted to share that with you.
Joel Esposito: And, so almost half of the faculty members say that this is the biggest challenge in teaching robotics. So just to elaborate on that a little bit, what does that mean? Well, it comes in a few different ways. I mean, one is obviously on just the preparation or the background of the students, as you just said some of the students will come in there and be expert programmers and others may have never programmed a computer before. But it also gives you some diversity in what the student’s expectations are for the course. So the mechanical engineering student would be there to learn something about, how a gear train should be designed to minimize the backlash in a robotic arm.
Ricardo Tellez: Yes, that’s right.
Joel Esposito: Or something of that nature. Whereas the computer science student may be very happy to just kind of abstract that problem way and want to focus on the ai or the motion planning algorithms or whatever it is. So they come to it with different levels of preparation and very different expectations or very different desired outcomes for the course.
Ricardo Tellez: And then what do you propose here as a solution because it’s like the foundation of the course is wrong from the first step of the course of creating a robotic scores, the first step that is the people that is going to come to learn, it’s the first step then that is wrong, because it’s almost impossible to create a program that everybody will like, or will get what they are expecting from. So do you propose in a solution to this situation?
Joel Esposito: Well, it’s a really difficult problem. There’s not an easy solution for it. And I think part of it just goes back to just the idea of these traditional academic disciplines and the fact that robotics really sits between several disciplines.
Ricardo Tellez: Yeah, exactly, exactly. Among many different disciplines. Exactly.
Joel Esposito: But I think we have to honestly say that if we want to prepare our students to work in industry and not only in robotics, but in other fields as well. I mean, they’re almost certainly going to work on an interdisciplinary team. They’re almost certainly going to work with people with different backgrounds. So in that way, I think robotics is a great example of what engineering education needs to look like because you have to combine those different skills in different teams. So I think the way that you approach it depends a lot on, where you’re coming from. If you’re in a program like mine where it’s an undergraduate program on robotics engineering, you might have a certain luxury in how you approach the subject matter. You could design it maybe from the ground up, but if you are in a traditional academic department and you know the majority of your students come from that department, I don’t think there’s anything wrong with biasing your coverage or your approach to cater to that. If you know that all your students are computer science majors and you want to teach an algorithm heavy approach to robotics, I think that’s fine. But one of the things that I talked about in the paper is I think it’s an interesting thing to think about if you could design a universal introductory robotics course from the ground up, that would really do justice to the field. That would really represent the breadth of what you need to know to be a roboticist. Then that’s an interesting challenge. And that’s a very interesting discussion that the community can have. As one of my colleagues says here, he says, you can know everything about circuit design, and you can know everything about dynamics, and you can know everything about computer programming, and you can still know nothing about robotics. That’s possible right? You can cover all of those topics in a very traditional way. And if you never bring them together in your education, you don’t understand how they apply to what we do.
Ricardo Tellez: Yes. Very good point. Very good point. In my case I have that problem of the people that come to usually to the class of ROS, most of them, they don’t know how to program. So I have done already, I have taught this course twice and this year is going to be the third year. And on the first one, it was kind of surprise because I was expecting everyone, so what is this? On the second one, I try to propose, I was expecting this. So then I proposed to the students on the first day to do some online courses about python. That is this language that we were going to use and lineups shell because they don’t even know about lineups, how to create a directory or move to a directory or something. But that didn’t work neither. So for now is the third year I’m thinking about doing myself a kind of extra classes for programming or something, because otherwise this is making the class to move very slow into the really interesting topics. I don’t know. So that’s my experience. I’m sharing this data with you also. So in case that may be useful for your research.
Joel Esposito: No, that’s quite a challenge.
Ricardo Tellez: And then I wanted to ask you about your study that you mentioned that it comprises five sections on the study. And then I would like you to talk about for example, the section of the, so you have institutional background, what is that section about? So yeah, on the google form that you have sent with the survey. Then you were dividing the questions into five sections and so you are putting in your article, everybody can read it. So every section is there and then you are putting the survey results and your thoughts about those results. And there is one that is called institutional background.
Joel Esposito: That relates to where is your university located. For example, Europe, united states, south America, and so forth. Is it a doctorate institution, do you grant PhDs or is it an undergraduate only? What department are you affiliated with? Does your university offer a robotics degree, which we found a growing number of universities are, in fact about 26 graduate programs are out there, and about 10 undergraduate programs have cropped up in the last decade? So that’s kind of a general section that just lets me know what perspective are you bringing to this survey.
Ricardo Tellez: Okay. What’s your point of view that you are going to put into the survey? And then you move into the robotics degree program, you already mentioned somewhat of that, of your findings. So in this section it’s quite interesting. So can you explain this a little bit, what is the section about?
Joel Esposito: Yeah, well I would say that if you look back about 20 years ago, I would say there were virtually no institutions that offered a degree in robotics. There was many, many, many institutions teaching classes. There were as many places where at the graduate level like myself, when I was at university of Pennsylvania, we were in a very large robotics lab. And, we took courses across disciplines and so on, but our degrees still had the word for example, mechanical engineering or electrical engineering printed on the diploma. So that was maybe a robotics could be a focus or concentration in an area of study. Maybe it was your thesis topic, but it was not a degree program. And then in the last 15 years, there’s been a trend to offer more and more, or to create more and more degree programs in robotics where the actual name on the degree on diploma says something like robotics engineering, robotics science, and so on.
Ricardo Tellez: I didn’t understand when I read it, so that, what was the problem actually? So now I understand that it’s a problem of qualifying directly on the title as is this is about robotics, so this is what you are going to get.
Joel Esposito: Right. And I think that was a really, I mean, I think there’s a couple of reasons that’s interesting to look at. I mean, the first one is as we talked about before, if you are teaching robotics as part of a computer science program and you’re teaching mostly to computer science students, for example, I think it’s completely reasonable to bias your teaching approach or your coverage of the material to those kinds of algorithmic issues. But if you really are going to create a degree program in robotics, that’s really going to be the title of your degree program. Then maybe the right approach is not just to kind of copy the old way that we used to teach robotics. Maybe we want to have a more holistic approach. Maybe we want to have elements of the curriculum that do combine, dynamics and kinematics as well as sensors and electronics well as programming and all that. So, I was really interested in seeing how those kinds of institutions would want to design or select the topics that would go in an introductory course, because I think that’s going to give a really different perspective or really different outcome from someone who’s coming at it from much more stovepipe, traditional academic curriculum.
Ricardo Tellez: Okay. That’s super interesting. And I devise here from my point of view, I device here to two possible options is one is that we in the world, we create those robotic courses that comprise all the subjects in there. And also another one that I devise is a specific degrees for one of the subjects of robotics. So for example, let’s say a computer science-based robotics degree that only focuses on programming robots or another is for the electronics, so the sensors and actuators and all that. In our academy, so we have an academy, an online academy for learning ROS and we teach basically how to program basically. But many, many people is asking us, hey, yeah, that’s super interesting. But I would like to apply this to my own built robot. So I don’t know what to do because what you are teaching me is for a robot that is already there, that somebody has built and somebody has installed ROS on top, so I can do whatever I want there with ROS, but how do I reach that point? So it’s kind of like people wants to have the whole picture. Okay. Then there is another section in your paper that is called introductory robotics courses. So what is the section about, and what did you find on that section?
Joel Esposito: Okay. So, this section gets back to what we were talking about earlier, which is if you are going to have a single universal course, an introduction to robotics course, what kind of topics would you want to put in it? So I emphasize the word introductory robotics course, because what I wanted to say was that, some of the faculty that are at larger institutions that grant doctoral degrees, they may teach various advanced robotics courses, electives, maybe in their sub discipline, their subspecialty of research. So maybe haptics is your area and you teach a course just on haptics or autonomous underwater vehicles. And you teach a course only on that, but I wanted to target the experience of teaching a first course in robotics. So maybe people come to your institution for a master’s degree or and maybe the senior or final year of their undergraduate degree. And they want to take their very first course in robotics. So I want to know what kind of topics do you think are important there and in my experience, traditionally there’s two very common molds or archetypes for that. One is what I call the kinematics driven approach. And this is like, if you look at textbooks like Craig’s early robotics book, or even mark’s bongs book, which both of which are great robotics textbooks, they really present robotics from a kinematics perspective. So here’s a robot arm, here’s a serial manipulator, let’s understand the forward kinematics, the inverse kinematics, [25:43 inaudible] how to control the motion of the end effector and so on. It’s a very mechanical engineering and control engineering. Yes, colored approach. If I was a computer science major, and I took that course, I might feel like nothing I had done prior in my experience prepared me for it. Not that I wouldn’t succeed in a course like that, but just, it would feel very disconnected from my background, all the other courses I took as a computer science major. And another very common traditional mold for robotics courses is mobile robot courses. And those vary a little bit, but often they’re used with younger undergraduate students as a way to get them excited about the computer programming. Maybe learn about algorithms. Because it’s very visual, it’s very mobile and the mechanics of it is, it can be complicated if you want to dive into it, but it’s relatively simple compared to a six-link robot arm. So those are two very common, types of robotics courses, introductory ones. And I wanted to see within that what topics people really think are the most important things to include.
Ricardo Tellez: Okay. Then we move to the next section. So, just for the listeners of the podcast. So the article is going through those five sections and showing the results of the survey. And then the conclusions obtained that Joel is explaining here on the podcast. And then he’s moving section after section. Then there is the next section that is called the educational resources. And what is this section about?
Joel Esposito: Well, this section tries to get at things like what textbook is the most common textbook in robotics and the most popular textbook. [28:00 inaudible] an educational resource.
Ricardo Tellez: Okay. Are you considering only textbooks and not other resources like…
Joel Esposito: No, i also asked, for example, if people use online resources, like massive online course works or MOOCS, I also asked if, a good percent of the faculty of course use their own notes that they’ve may have authored and then distribute that way. But again, it kind of drives towards, if there was going to be a new textbook and, what topics would you want to see in it? Cause the topical coverage of the books that are out there and did any of them have that holistic perspective where they cover, what you need to know from the different sub-disciplines.
Ricardo Tellez: So, yeah, so the books that you show here, you present a list of books, but you mentioned that none of them are like the major book that most of the people are using, but just kind of a scattered, a few people is using this one, a few people, and there is no clear winning book.
Joel Esposito: That’s right. That’s right. I identified, I think six or seven books that were mentioned more than once in the response list, but no particular one comes out as the clear winner there. And it seems to depend very much on like what perspective or what point of view you teach your course from. But I think it is interesting to know that more than, so for example, the two most common books, which are the book introduction to autonomous mobile robots and robot modeling control by Mark Spong, Seth Hutchinson and Siegwart. Those two that were tied for number one about seven faculty members, each report that they use those, however, above that eight faculty members say, I just write my own notes because I don’t see something out there that fits all my needs. So really the number one most popular textbook is the one that you write yourself. But I think that’s interesting because it speaks to how different instructors approach is to the material. I think if you asked physics or chemistry professors, I don’t think you would have that kind of response where they’re all writing their own introduction to physics book, because it’s so well established and there’s so many good books out there. Why would someone do that if they had a perfectly good book to draw information from?
Ricardo Tellez: Yeah, that’s super interesting analysis of the whole state of education in robotics is very, very nice. And then once you are equipped with all those data from the form, then you move to the final section that it’s called the future challenges that is where you are addressing, so based on these data, so which one are the challenges that we must solve in order to have a better teaching of robotics. And what do you find here?
Joel Esposito: So a couple of things in that section, I mean, one is that I asked the instructors what their current challenges are. And as I said before that about half of the faculty, the number one challenge that they cite is the fact that their students come from all these different backgrounds and have all these different expectations for the course, depending on their discipline. So that’s one of the biggest challenges they have right now. Another interesting question that I ask is what topics do you feel your student’s background is deficient in? So what is the thing that you feel your students are the weakest in when they come to your course? So the number one answer was computer programming. So, I think this probably gets to, what most of your listeners want to hear about, which is ROS and why some people may or may not choose to use it. So if you ask computer science faculty, even computer science faculty think about 20% of the students that are in the robotics class are not good at computer programming. And part of that is what we said before is not all the students in that class are computer science majors. A good number of them are mechanical engineers, electrical engineers, or whatever. If you look at some of the other disciplines. So if the instructor that offers the courses from electrical engineering, for example, they think 55% of their students are not good at computer programming. If you’re a mechanical engineer, you probably teach a less programming, heavy version of robotics, but you still think almost 30% of the students are not good at programming.
Ricardo Tellez: Okay. That’s very good.
Joel Esposito: So this is, if you remember the beginning, we were both kind of saying how we’re on the same page, about how robotics is really about seeing things move about implementing the technology, and that’s kind of what makes project-based learning so powerful is that students see that, and it helps them retain the material. It helps them get excited and so on. It’s almost impossible to do project-based learning in robotics without doing any computer programming.
Ricardo Tellez: That is good. Very good conclusion. And that’s also very interesting because you know, Brian Gerkey, who is the director of open robotics, the company that has the ROS who in charge of managing ROS and creating and upgrading and everything. So, Brian, were saying once that one of the main problems in robotics, so in order to get better robots, what we need is better programming people. So that the roboticists that are programming the robots, they need to have better skills in robotics. And I actually agree because it’s also where they have suffered and where you are experiencing here in the article. That is great.
Joel Esposito: So one of the next questions we asked in the survey was what kind of programming languages are you using in your course? So this is again asking the instructor when they have laboratory experience or project-based experiences, what are the most common software programming languages they’re using. About 62% of the respondents said they use MATLAB.
Ricardo Tellez: Okay. Here is where we have lost completely the audience. So the audience is gone because now talking about ROS, now talking about MATLAB, so what is this?
Joel Esposito: Well, I get to that. So first I’ll say usually about 62% said MATLAB, about 52% said the c programming language or one of its variants and 28% said they were using ROS. So more than double the number of faculty members that use ROS, once used MATLAB in their course. So if you don’t know what MATLAB is, MATLAB stands for matrix laboratory. It started out as a scientific computing package, kind of a package where you can kind of interact at the command line and solve some pretty heavy-duty linear algebra problems. Over the years, the MATLAB has really grown to include first of all, not just command line interactions, but it’s become an actual programming language, has both a graphical interface, but also a text-based interface. And they’ve added all kinds of different toolboxes or libraries if you want to call it that. And at first became really popular within the feedback control systems community, which is you know, has a lot of overlap with robotics. That was one of the first toolboxes from MATLAB. Then it became really popular within the computer vision and image processing community, which also has a lot of overlap with robotics. And then just recently I think it was in 2016, they’ve now added a robotics toolbox to it. So there’s a lot of faculty members that use MATLAB for robotics. Well, maybe we’ll talk about why that is later.
Ricardo Tellez: And what about your case? About what your case, so which one (programming languages) are you using for teaching robotics?
Joel Esposito: Well, in my case, I use MATLAB and I’ll lay out some of the reasons why in a minute. But let me say something about c here. So the second most common response was the c programming language, 52%. And again, if you program, you’ve probably heard of c, c is one of the most mature and widely used programming languages and of course, C++, and C# and all these things kind of stem from it. But I think one of the reasons that c is so popular is because something you said before, which is like, say that I don’t want to just do a robotics project where someone gives me an existing robot with ROS installed with all the sensors on there. Say that you have a student who wants to make a robot from the ground up, and they want to have a microprocessor on there. And they want a program in a real low-level microprocessor, how will it interact and drive the motors? Or how will it read the low-level data coming from the sensors and so on. Almost all of these microprocessors are programmed in the c programming language.
Ricardo Tellez: Yes, that’s right.
Joel Esposito: I think that if you’re going to pick one programming language to teach, it’s not a bad one to pick.
Ricardo Tellez: When we are talking about robotics as a general subject, but it’s quite a little bit difficult if you want to build an intelligent robots. So you want to build intelligent robots, then that’s very difficult because you cannot program microcontrollers. You have to go to bigger computers and then, you have to use C++, but if you try to do that from scratch from yourself, that is going to take you for ages, and that is one of the reasons of using ROSs because ROSs already provides this set of libraries or packages already working on that. And you can program by using C++ or python that in my case, I have detected that is becoming very popular, trying to replace MATLAB, because python is quite similar to MATLAB and it’s free. It contains many, many, many libraries. And then now we can interact directly with the robot by using ROS in this case. So I don’t know what it’s going to, so it’s super exciting future.
Joel Esposito: I agree that python is probably more accessible to the novice and it does have a lot of similarities to MATLAB. So I mean, I think there’s a lot of things that are wonderful about ROS. In fact when I was a graduate student, I was part of a couple projects where, it wasn’t that grand, but we were kind of at the intersection of a research group that did robotics and a research group that worked on programming languages. And we kind of had this vision of doing something like ROS. I mean, we didn’t call it that, and it wasn’t on that scale, but we had this idea that, well, maybe we can kind of abstract away some of the low level drivers for the hardware, and kind of make it modular so that it could be very plug and play so that if somebody wants to focus on the algorithms, they don’t need to dive into all the low level details and think about the kind of real time issues and all that. So, I mean, I’m very excited about ROS. And in fact, the idea that there’s all these preprogram libraries and all these things to build on, I mean, that’s one of my favorite things about MATLAB is that you’re not trying to reinvent the wheel. There’s such a big community out there. There’s all these toolboxes, there’s a neural network toolbox and a control system toolbox and a computer vision toolbox and so on. And I can bring all that together and can prototype a new solution very, very, very quickly. So I think there’s wonderful things about ROS. And I think that if you are teaching a group of students, say they’re masters students and say, it’s part of a program in robotics engineering. And these students are going to be expected to go and work in the robotics industry. And then I think you would be doing them a disservice by not teaching them ROS. I think that’s such a powerful tool and it’s becoming in industry sort of a dominant paradigm. If you see these job postings on, for example, robotics worldwide, or other newsletters, very often familiarity with ROS is going to be one of the criteria. So I think that’s great, but I think there’s some reasons that not everyone is quick to embrace ROS. And I guess that’s probably why you brought me on the show.
Ricardo Tellez: Yeah, yeah, exactly. Because everybody is talking about how nice is ROS. I say, yes. And then when we were discussing about interviewing you, then you mentioned, I’m not using ROS and I have my reasons. So you explained to me your reasons but then I thought, well, that’s great because we can provide another opinion from another side. So this is not for, this podcast is not for doing a kind of religion on ROS, but we want to make people learn what is the best thing for creating a robot. So basically, so having another point of view of ROS is super useful, so please, can you explain us your reasons, why not using ROS for teaching to your students?
Joel Esposito: Sure. So I think there’s three things about ROS that I have some trouble with and the first and perhaps the biggest one. And I’ll circle back to these and we can talk about them each and more detailed, but I’ll kind of lay out the argument in real high level here. So the first one is that it doesn’t run on windows as of right now, there’s talk about that may be happening, but it does not run on windows or the Macintosh operating system.
Ricardo Tellez: That’s right.
Joel Esposito: The second issue is that, it’s object oriented. It’s kind of written over C++ usually. And the third issue is that it kind of requires downloading and linking and kind of making all these different libraries in a pretty sophisticated, integrated development environment. So if you think about those three things, not being on windows, being object oriented and requiring linking all these different libraries together, and you go back to our previous discussion. So we said that the number one issue that we think that our students are deficient in is programming. Another thing that we talked about is how the makeup of students in most classes is not homogeneous. It’s not, even if you’re in the computer science department and you are a computer science faculty member, about 20% of your students are probably not computer science majors, but on top of that, fully 60% of people teaching robotics are not computer science faculty members. They’re mechanical engineers, electrical engineers, and so on. So if you think about your experience in teaching ROSs, and I’m sure other people have had this too, if you bring in the average mechanical engineer, in addition to learning all the concepts in robotics, so we’re talking about kinematics or machine learning and algorithms and all these fairly advanced engineering concepts on top of that, I have to make them not just learn a new operating system, but I have to make them install a whole new operating system on their computer to learn it. That’s a major hurdle. That’s a major source of confusion and frustration for the students. That’s not directly related to learning robotics. So one of my main, as I said before, we’re undergraduate only institution and we really pride ourselves on putting education first. And one of my main philosophies in educating students is that I’m willing to give them something challenging and frustrating as long as the outcome of it is going to be related to what I want the outcomes of the course to be. So my pedagogical goals for the course are for you to learn kinematics. I could give you a very hard kinematics problem, very tricky one, because it supports that goal. But if my goal is not for them to learn Linux, then I have a hard time making them go through that exercise.
Ricardo Tellez: Yeah, I understand.
Joel Esposito: But it doesn’t stop there. So I’m going to take a mechanical engineering student who’s probably never taken a programming course and probably never used an operating system aside from windows, make them install a new operating system and learn it. Then I have to make them not just learn a new programming language but understand a new programming paradigm. So many of the students have never seen the object-oriented programming approach before, which is what C++ has written off. Maybe as a mechanical engineer, maybe they’ve taken c, maybe they’ve taken Fortran or maybe they’ve used mat lab to do some stress training computations, or something like that. But it’s going to be a functional programming language and it’s going to have a very linear flow that concept of objects and fields and instantiations and so forth.
Ricardo Tellez: That’s so difficult to make them understand that.
Joel Esposito: It’s very difficult.
Ricardo Tellez: I mean in a few days.
Joel Esposito: So we have installing and then learning a new operating system, learning a new programming paradigm and a new language, the syntax to go with it. And then the third part is just kind of download and linking all these different libraries together. So I mean, myself, a couple of years back, I had a student who wanted to do a research project using lidars, so he wanted to use point cloud library PCL, which is a nice open source package for doing that kind of computation. And he had trouble kind of installing all the pieces of it. And I said, well, I’ll help you out. I’ll do it myself. And gosh, I had trouble too. It probably took me two or three days of kind of wrestling with installing the OpenGL drivers and all these different ancillary packages there that in some cases I manually had to change the path or this or that. And I have some experience with doing those types of things. So if you look at some of these students, who’ve only maybe programmed one functional programming language which they probably don’t have that experience of using one of these really nice integrated develop environments where you have to track down and install each piece or each package independently. So I think that right there is a pretty long list of skills or challenges for the average student. And none of them directly relate to robotics. I mean, it’s unfortunately just what you have to do if you want to use ROS. And then your reward is you get access to all these great libraries and all this nice message passing and subscribe architecture and all that. And it’s wonderful, but it’s a long learning curve. It’s a steep learning curve.
Ricardo Tellez: It is actually, our company that is called The Construct and our companies was born trying to reduce that problem. And for that, we have created an online academy for learning ROS that uses, so you use a web browser and then you get inside this webpage of our academy, and then you get a complete ROS Linux system in your browser. So you can use any computer. You don’t have to install any operating system. You can use a windows machine or mac, Linux or whatever, and you have the whole full ROS environment already there. And with the lessons that are following that aspect that you mentioned about practicing is not about what is ROS, why ROS? No, let’s move a robot. So what do you have to do? So [49:11 inaudible] and then you have a simulation that’s also on the web already integrated, a physics simulation that you can see your results of your programs in real time, because you see the simulated robot. I will send you the link afterwards in case that you are interested, but we try to solve that problem directly.
Joel Esposito: Yeah. I’ve taken a look at some of your materials and they really look great. It is a wonderful approach to that because I think sometimes you just need someone to get you started so you could start kind of seeing results and seeing why it’s useful, because it’s very frustrating if you’re bogged down and just getting your machine to dual boot or something like that, like for a day and not skiing yet how this is connected to the coursework. So I really do have a lot of respect for what you guys have done. And I think it’s wonderful.
Ricardo Tellez: Thank you. Related to the problem that you mentioned about the windows, for example, then just let you know, that is ROS is being prepared, I think that is not yet ready, but it’s been prepared for working with windows. So probably in the next month, a version for ROS for windows is going to be released. I’m not sure when, but they are working on that. And also another thing that I would recommend related to the coding is something that we have talked is about using python instead of C++ for programming. So if you use python, then you can either use an object-oriented models or not. And also the syntax is very simple. Then you avoid the problem of having to compile, that’s a huge problem to avoid.
Joel Esposito: Right, right. I think those are really good, I think those are really good tips. I think of those kind of three barriers to entry there. In my opinion, not running on windows is the biggest one. So I’m really excited. I’ve heard for a couple years that ROS was going to be poured over to windows and I’m really excited about that. So you think that’ll happen in the next month for the next version?
Ricardo Tellez: Yes. I expect to have something, at least the beta or maybe an alpha, let’s say an alpha, let’s say an alpha. So I don’t have any special information about that. Somebody has told me, it is what I am expecting, because I know that they are working on that.
Joel Esposito: Well, that’ll be great. I’ll be very excited about that.
Ricardo Tellez: Actually I will send an email to the guys there, the open robotics and see what happens and then put, if I have some information, then I will distribute and send that to you and to the audience also. Okay. So, well, I think that we have covered all the topics about your subject. And also, we have finally concluded with ROS also that so the listeners will not be disappointed, but they cannot be disappointed because really people that are listening there, you have to read that article, it is super great. It’s very well structured. And the information that provides is very clarifying. So you can see the actual numbers and the actual data here we went through fast, but you can see the actual numbers and specific data on the article. So I will put a link to this on the podcast. And just wanted to tell you thank you Joel, for joining us and sharing your opinion and your work.
Joel Esposito:: Oh, thanks for having me. And thanks for everything you guys do to make ROS accessible to more students and more faculty. So I’m definitely going to go check some of those resources out myself.
Ricardo Tellez: Well, thank you. That will be my pleasure if we can help you in some way. So just send me an email or contact me directly, and then I will be happy to help on that. So thank you very much Joel. And for all the audience of the podcast, remember that we have the Robot Ignite Academy. That is our online academy. As I have been explained to Joel, where you can learn ROS without having to install anything on your computer, just using a web browser and with any type of computer. So we are using that, for example at our university courses, we’re teaching the students. So I would put the link to the academy beneath here, the podcast, and that is all for today’s podcasts. I think we have been long time because the subject was so interesting, and it required to go deeper on that. So we had to finish in any way at some point in time. So, and that is a point to finish. So thank you very much and see you on the next podcast