So the question is, wether it pays any value to learn ROS without even knowing Robotics or AI.
Well it depends on your learning approach.
I personally do not like the Wikipedia approach to learning. What I mean by Wikipedia approach is the way of teaching where the teacher provides the whole Universe of concepts related to the subject at hands in a very ordered way, point after point, slide after slide, subsection after subsection, without forgetting a comma. I consider that approach just a demonstration of the teacher’s knowledge and a way to structure his own knowledge for himself, not for the students. He builds a reference material, not a learning material.
I don’t think humans learn that way, going through the whole ontology of concepts of a subject. Instead, I think thatwe learn by interacting with the world.It could be the physical world or the world of the ideas, but basically, trying to solve a problem and finding the knowledge that you lack. Then you go and get it. Actually, that is how the people who discovered that knowledge got that knowledge in the first place!
That is exactly the approach we have embedded in our online academy. Actually, our latest courses on Mobile Kinematics for Wheeled Robots, Machine Learning for Robotics, or OpenCV for Robotics, require you to have the basics of ROS before taking those courses. So while you are learning those robotics concepts, you are applying them to actual robots, and hence you understand why you need those equations and what will happen if you don’t use them properly.
Hence to answer the original question, yes, you should learn ROS first and then go for the other subjects. Applying ROS to practice other subjects to robots will help you solidify the knowledge faster because you will be applying it to actual problems.
In your case, are you more a constructionist learner or do you prefer a reference material style?
The world has changed in 2020. Due to the coronavirus, all our social interactions have been reduced. This has led to universities closing and students learning from home. Teaching has moved online.
You can teach almost any subject online; however, some subjects are going to be more productive online than others. For instance, you can teach medical students about all the illnesses of the lungs online. But there is a part in that teaching that is about the interaction with an actual ill person. That is very difficult to provide through online teaching.
In robotics, something similar happens. If you want to teach robotics properly, you need to use a real robot. So how can we teach robotics online and provide a full learning experience?
How far can we go with online teaching of robotics?
Before answering this question, we need to identify what do we need to teach when teaching robotics, and then see what can be covered online.
Let’s have a look at the typical robotics curriculum of some important universities:
Summarizing from the syllabi of those courses, we conclude that the following are the main subjects when teaching robotics:
Robot action and perception
Arm Kinematics
Mobile robots kinematics
Robot dynamics
Motion planning and control
Robot Navigation
Computer Vision
So what we can see here is that when we are talking about teaching robotics, we are not talking about teaching how to build a robot (that would be more related to mechatronics and electronics), but about how to understand how robots work, especially in their interaction with the world, and how to create programs that make the robots properly interact with the world. We take, hence, the physical robot for granted and concentrate on the control algorithms.
Providing robotics theory to remote students
That is the easy part of the teaching. If your online teaching is based only on slides describing the theory of the subjects above, then you are almost done. You just need to prepare your slides with the subject, and then use a meeting tool to meet your students online (Zoom, Google Meet, Skype, or any other meeting software). I’m sure you already know which one to use.
How to provide some robotics practice
If you want your students to really understand the theoretical concepts, why they are required, and what their results are in real life, you will need to provide some kind of practice.
Which kind of practice?
I propose teaching ROS at the same time that we teach robotics, and using the former throughout the whole robotics semester as a tool to build and implement the robotics subject we are teaching. The idea is that we use ROS to allow the students to actually practice what they are learning. For instance, if we are talking about the different algorithms of obstacle avoidance, we can provide a simulated robot and make the student create a ROS program that actually implements the algorithm for that robot. By following this approach, the learning of the student is not only theoretical, but includes the practice of what is being taught.
Teaching ROS alongside the robotics teaching also has the benefit that what the students learn will be extremely beneficial for their careers because ROS is becoming the standard in robotics worldwide.
If you like this approach, then you will have to provide your students with an environment for practicing with ROS. Now that they are online and not at your labs, you will have to rely on the students’ computers for that.
How to provide a practice environment to remote robotics students
You have two options here:
Provide a robot simulations-based environment
Provide a real robot-based environment
Simulation-based environment for students
The goal is to set a ROS-based simulation environment in the student’s computer that is ready for practicing. That is not an easy task, especially when the students are remote. Here are four ways to do it.
Students install ROS on their computer. Students will need to follow the instructions here. This is a risky option if your students do not already have Linux on their computers (because that implies having to install Linux first and do a dual boot in their computers).
Students install a provided Virtual Machine with ROS. This option skips the step of installing Linux and a dual boot. Still, students will need to install the VM software and the actual VM image containing Linux and ROS. I haven’t found any VM ready to download with a modern ROS Distro, so you will need to build it yourself and then provide it to your students. Follow these instructions to build a ROS VM image with the latest ROS Distro.
Students use a ROS-based docker. This is a similar approach to the previous one, more modern, but a little bit more complex for the students because they need to understand the usage of dockers. Follow the instructions here to download a ROS docker: https://hub.docker.com/_/ros/.
Students use the Robot Ignite Academy web-based environment. We have developed this platform at The Construct, which is a web-based ROS environment, where students do not have to install anything on their computers, and works with any type of computer. It provides the lessons, exercises, forum, and exams ready-to-use. Everything is ready for the teacher to apply his magic as a teacher!
With any of those options, your students will have a running ROS environment that will allow them to create ROS programs and test them on simulated robots. That is definitely a step forward in the quality of the robotics teachings, and I would say that is 100% necessary for a proper robotics education.
But you can still move further in terms of quality.
Real robot-based environment for students
If you really want to provide your remote students a robotics experience, then you need to provide real robot testing and interactions. That is a tricky thing in remote situations, but I found two ways of providing this (after all, that is my job, both as a university teacher and as CEO of The Construct):
In case you are teaching basic robotics stuff, you may include in your students’ package a real robot building kit. For around $200, you can buy a small real robot kit delivered to your home. So if the money is not a problem and the subject of robotics you are teaching goes along with the robot, then that would be an optimal solution. Get one of those robots delivered to the home of each of your students (or ask the students to buy it). This is one of the kits we at The Construct have bought, which even allows the use of deep learning algorithms:
In case you need some more complex robots for practice, or in case you cannot afford to get a robot to each one of the students’ homes, then you can allow students to remotely connect to the robots in your lab. The process to achieve that connection is quite simple and I describe it in this video.
My own experience doing real robot interaction with remote students
That last method is the one I used to teach ROS to the students of the Master of Robotics, Home Automation and Industrial Automation of University of LaSalle Barcelona during Spring 2020. What I did during the confinement was to use the Robot Ignite Academy to teach ROS. This allowed me to have an already set up environment for practicing with simulations in every student’s computer from minute one, without requiring installation in the students’ computers.
Then, I also brought home a ROSbot robot (excellent robot for teaching, made by Husarion) ready to be connected through the Robot Ignite Academy interface. Hence, by using the Robot Ignite Academy interface, each student was connecting in turns to the real robot at my home from their home locations, and able to test their ROS programs on the real robot.
For this setup, I also added an external camera so students could see on the live streaming what was actually happening with the robot while running their programs.
I used the video conference software provided by the university to chat and explain the lessons. So I got the 15 students under that platform, watching the broadcast on their screens. When doing the theory part, I shared my screen with the Robot Ignite Academy lesson, and all the students opened the same lesson on their own computers. This also allowed us to do several exercises in the included simulations. Then, at some point in time, after we had done some exercises on the simulation, the students would connect in turn to my real robot and test their program on it.
The benefits I got applying the remote lab solution were very clear:
There is a clean transition between one student and another. It is not possible for two students to connect at the same time and interfere with each other.
No student needs to install any of their programs in the robot, so you do not end up with a broken robot system full of rubbish.
Students prepare their programs and get them ready by testing them in the simulator while waiting for their turn to connect to the real robot.
How to answer questions after hours
It is clear that students will have questions related to your assignments. How can you have a student tutoring session where you can solve their problems?
Well, my suggestion is that you use a Forum to answer the questions of the students. This has a couple of benefits:
Answers you provide to one student can be seen by all the other students.
You can delegate answering to teacher assistants.
Answers on the Forum will also be useful for the next semester.
In case you don’t have such a forum in your university’s online tools, I recommend that you install Discourse. Following those instructions, you can have the Forum ready in under 30 minutes.
How to evaluate the students
That is an important point. Students need to be evaluated in some sense, otherwise, the teacher will not be able to asses the knowledge they have acquired.
ROS comes again to the rescue. ROS allows us to evaluate the learning of the students remotely by making them do programs that work on the exam. For that, I recommend you create practical exams based on ROS where the students need to apply what they learned to a simulated robot. Instead of doing a theory-based exam, do an application of theory on the simulated robot.
This is very important to avoid cheating. It is very difficult to copy the program of somebody else without showing they copied! It is almost impossible to build the same code, even the same structure. You will quickly notice who copied.
Additionally, in order to make the thing a little bit more difficult to copy, I indicated that for the packages, topics, messages, and files they create, they are required to attach their names at the end (for instance, if they have to create a ROS message named startup_time, I would request that each student create the message startup_time_YOUR_NAME. That makes it more difficult to copy code because everyone has to adapt (if they copy and adapt, again, they deserve to pass!).
That is the method I personally applied for my ROS classes at the University of LaSalle Barcelona. I even allowed the students to use their notes or other programs they did in the past in order to solve the exam. The subject is so complex that if you really understand how the code you did in class fits in the exam, then that means that you deserve to pass the exam and that you understood the subject.
In my case, the exams were provided by the Robot Ignite Academy itself, and were also auto corrected using the autocorrection system of the academy. That is a lot of work that I saved myself!
Conclusions
My impression is that online teaching is going to become more and more important in the near future. First, because we do not have any other option (everything is closed). Second, because people will see that doing things online has a huge advantage in terms of efficiency and cost (more money for both sides: students will have to pay less, universities will get more students from many different locations in the world). Third, I suspect that many people will not want to come back to the previous way once they taste this new way of learning.
Let me finish by saying that in case you want to get your students up to date quickly on Linux and Python, ask them to do the following two free online courses that provide the basics, prior to the start of your classes. They are going to need it!
A couple of months ago I interviewed Joel Esposito about the state of robotics education for the ROS Developers Podcast #21 (Joel Esposito is a Professor in the System Engineering Department at the United States Naval Academy). On that podcast, Joel talks about his deep research on how robotics is taught around the world. He identifies a set of common robotics subjects that need to be explained in order to make students know about robotics, and a list of resources that people are using to teach them. But most important than that, he points out the importance of practicing with robots what students learn.
From my point of view, robotics is about doing, not about reading. A robotics class cannot be about learning how to compute the Jacobian of a matrix to find the inverse kinematics. Computing the Jacobian has nothing to do with robotics, it is just a mathematical tool that we use to solve a robotics problem. That is why a robotics class should not be focused on how to compute the Jacobian but on how to move the end effector to a given location.
👨🎓:I want to move this robotic arm’s end effector to that point, how do I do it? 👨🏫:Well, you need to represent the current configuration of the arm in a matrix! 👨🎓:Ah, ok, how do I do that? 👨🏫:You need to use a matrix to encode its current state. Let’s do it. Take that simulated robot arm and create a ROS node that subscribes to the /joint_states and captures the joint values. From those values, create a matrix storing it. It has to be able to modify the matrix at any time step, so if I move the arm, the matrix must change. […] 👨🎓:Done it! So what do I have to do now if I want to make the robot put the gripper close to this bottle? 👨🏫:Then you need to compute the Jacobian. Let’s do it! Create a program that allows to manually introduce a desired position for the end effector. Then based on that data, compute the Jacobian. 👨🎓:How do I compute the Jacobian? 👨🏫:I love that you ask me that!☺️ …
I understand that learning and studying theory is a big part of robotics, but not the biggest. The biggest should be practicing and doing with robots. For that, I propose to use ROS as the base system, the enabler, that allows practical practice (does that exist?!?!) while learning the robotics subjects.
The proposal
Teaching subjects as complex as inverse kinematics or robot navigation should not be (just) a theoretical matter. Practice should be embedded into the teaching of those complex robotics subjects.
I propose to teach ROS at the same time that we teach robotics, and use the former along the whole robotics semester as a tool to build an implement the robotics subject we are teaching. The idea is that we use ROS to allow the student to actually practice what he is learning. For instance, if we are talking about the different algorithms of obstacle avoidance, we also provide a simulated robot and make the student create a ROS program that actually implements the algorithm for that robot. By following this approach, the learning of the student is not only theoretical but instead includes the practice of what is being told.
The advantage of using ROS in this procedure is that ROS already provides a lot of material already done that we can use to provide a working infrastructure, where you as a teacher, can concentrate on teaching the student how to create the small part that is required for the specific subject you are teaching.
We have so many tools at present that were not available just 5 years ago… Let’s make use of them to increase the student quality and quantity of learning! Instead of using Powerpoint slides, let’s use interactive Python notebooks. Instead of using a single robot for the whole class, let’s provide a robot simulation to each student. Instead of providing an equation on the screen, let’s provide students and the implementation of it in a ROS node for them to modify.
Not a new method
What I preach is what I practice. This is the method that I am using on my class of Robot Navigation at the University of LaSalle in Barcelona. In this class, I teach the basics about how to make a robot autonomously move from one point of the space to another while avoiding obstacles. You know, SLAM, particle filters, Dynamic Window Approaches and the like. As part of the class, students must learn ROS and use it to implement some of the theoretical concepts I explain to them, like for example, how to compute the odometry based on the values provided by the encoders.
However, I’m not alone on the use of this method for teaching robotics. For example, professor Ross Knepper from Cornell University explained to me on Using ROS to teach the foundations of robotics for the ROS Developers podcast #23. On that interview, Ross explained how he parallelizes the teaching of ROS with the robotics subject. He even goes further, forbidding students to use many ROS software like the ROS navigation stack or MoveIt! His point is very good: he wants the students to actually learn how to do it, not just how to use something that somebody else has done (like the navigation stack). But he uses the ROS infrastructure anyway.
How to teach robotics with ROS
The method would involve the following steps:
You start with a ROS class that explains the most basic topics of ROS, just what is required to start working.
Then you start explaining the robotics subject of your choice, making the students implement what you are teaching in a ROS program, using robots. I advise using simulated robots.
Whenever a new ROS concept is required for continuing the implementation of some algorithm, then a class dedicated to that subject would be given.
Continue with the next robotics subject.
Add a real robot project where students must apply all that they have learned in a single project with a real ROS-based robot.
Add an exam.
1. Explain the basic ROS concepts
For this step, you should describe the basic subjects of ROS that would allow a student to create ROS programs. Those subjects would include the following:
ROS Packages
Launching ROS Nodes
Basic ROS Line Commands
ROS Topic Subscribers
Rviz for Visualization and Debugging
It is not necessary to dedicate too much time to those subjects, just the necessary amount for a basic understanding. Deeper knowledge and understanding of ROS will be learned by practicing during the different classes of the semester. While they are trying to create the software for the implementation of the theoretical concepts, they will have to practice those concepts, and ingrain them deeply into their brains.
Importantly, explain those concepts by using simulated robots and making the students apply the concepts to the simulated robot. For example, make the students read from a topic, in order to get the distance to the closest obstacle. Or make them write to a topic to make the robot move around. Do not just explain what a topic is and provide a code on a slide. Make them actually connect to a producer of data, that is, the simulated robot.
I would also recommend that at this step you forget teaching about creating custom messages, or what are services or action clients. That is too much for such an introductory class and it is very unlikely that you are going to need it in your next robotics class.
* Resource: As a reference, you can check the syllabus of this ROS Basics In 5 Days course we created. Through our many years of ROS training, we summarized this ROS basics course, including the essential concepts and tools that can help the user understand and create any basic project related to ROS.
2. Explain and implement robotics subject
You can now proceed to teaching your robotics subject. I recommend dividing the class into two parts:
The first part will be to explain the theory of the robotics subject
The second part is to actually implement that theory. Create a program that actually does what you explained.
It may happen that in order to implement that theoretical part, the student needs a lot of pre-made code that supports the specific point you are teaching. That will mean that you have to prepare your class even harder and provide each student with all that support code. The good news is that, by using ROS, it is very likely that you will find that code already done by someone. Hence, find or develop that code, and provide it as a ROS package to your students. More about where to find the code and how to provide it to your students below.
An interesting point to include here is what Professor Knepper indicated: He creates some exercises with deliberate errors, so the students learn to recognize situations where the system is not performing correctly, and, more importantly, to create the skills necessary to figure out how to solve those errors. Take that point into consideration as well.
3. Add the new ROS concept
At some point in time, you may need to create a custom ROS message for the robotics subject that you are teaching. Or you may need to use a ROS service because you need to provide a service for face recognition. Whatever you need to explain about ROS, now is the best moment. Use that necessity to explain the concept. What I mean is that explaining a concept like ROS action servers when the student has no idea what they would be used for is a bad idea. The optimal moment to explain that new ROS concept is when it is so clear for everyone that the concept is needed.
I have found that explaining complex concepts like ROS services when the students don’t need them makes it very difficult for them to understand, even if you provide good usage examples. They cannot feel the pain of not using those concepts in their programs. Only when they are in a situation where they actually need to apply the concept, when they are feeling the pain, will the knowledge be integrated into their heads.
4. Continue with the next robotics subject
Keep pushing this way. Move to the next subject. Provide a different robot simulation. Request that the students implement. And keep going this way until you finish the whole course.
5. Real robots project
Testing with simulators is good because it provides a real life-like experience. However, the real test is when you use a real robot. Usually, universities do not have the budget for a robot for each student. That is why we have been promoting the use of simulations so much. However, some real robot experience is necessary, and most universities can afford to have a few robots for the whole class. That is the point where the robotics projects come into action.
Define a robotics project that encapsulates all the knowledge of the whole course. Make the students create groups that will test their results on the real robot. This approach has many advantages: students will have to summarize all the lessons into a single application. They will have to make it work in a real robot. Additionally, they will have to work in teams.
In order to provide this step to the students, you will need to prepare the following:
A simulation of the environment where the real robot will be executing. This allows the students to practice most of the code in the simulator, in a faster way. It also allows you to have some rest (otherwise, the students may require your presence all the time at the real robot’s lab). 😉
You cannot escape providing some hours per week for the students to practice with the real robot. So schedule that.
Finally, decide on a day when you will evaluate the project from each team. That is going to be called demo day. On demo day, each group has to show how their code is able to make the robot perform as it is supposed to.
For example, at LaSalle University, we use two Turtlebots for 15 students. The students must do teams of two people in order to do the project. Then, on demo day, their robot has to be able to serve coffee at a real coffee shop in Barcelona (thank you, Costa Coffee, for your support!). All the students go to the coffee shop with their programs, and we bring the two robots. Then, while one team is demonstrating on one robot, the other is preparing.
In case you need ROS certified robots, let me recommend you the online shop of my friends: ROS Components shop. There is where I buy robots or pieces when I need them. No commission for me for recommending it! I just think they are great.
* Resources: If your course is affected by the coronavirus and you need to move your course online, then I suggest that you check out this article, in which I share how I teach robotics from home to students.
6. Evaluation
One very important point in the whole process is how to evaluate the students. In my opinion, the evaluation must be continuous, otherwise, the students just do nothing until the day before the exam. Afterward, all are lamentations.
At LaSalle University, I do a one-hour exam every month, covering the topics I have taught during that month, and the previous months, too.
In our case, the exams are completely practical. They have to have the robot perform something related to the subjects taught. For example, they have to make the robot create a map of the environment using an extended Kalman filter. I may provide the implementation of the extended Kalman filter for straight usage, but the student must know how to use it, how to capture the proper data from the robot, how to provide that to the filter, and how to use the output to build the map.
Just as a matter of example, here you can find a ROSject containing the last exam I gave to the students about dead reckoning navigation. The ROSject contains everything they needed to do the exam, including instructions, scores, and robot simulations. That leads us to the next point.
How to provide the material to the students
If I have convinced you to use a practical method to teach robotics using ROS, at this point, you must be concerned about two points:
How the hell am I going to create all that material?!
How the hell can I provide my students with a running environment where they can execute those simulations and ROS code?
Very good concerns.
Preparing the material is a lot of work. And more importantly, there is a lot of risks. When you prepare such material, there are a lot of probabilities that what you prepare does not work with the student’s computer. That is why I propose using an online platform for preparing all that material, and sharing the material inside the same platform, so you will be 100% sure that it will work no matter who is going to use it.
I propose that you use the ROS Development Studio. This is a platform that we have developed at our company, The Construct, for the easy creation, testing, and distribution of ROS code.
The ROS Development Studio (or ROSDS, for short) allows you to create the material using a web browser on any type of computer. It already provides the simulations you may need (and you can also add your own). It also provides a Python notebook structure that you can fill with the material for the students. It allows you to include any code that your students may require in the form of ROS packages.
But the most interesting point of the ROSDS is that it allows you to share all your material by sending a simple web link to the students. That is what we call a ROSject. A ROSject is a complete ROS project that includes simulations, notebooks, and code in a single web link. Whenever you provide this link to anybody, they will get a copy of the entire content, and they will be able to execute it in the exact same conditions in which you created the ROSject.
This sharing feature makes it very easy for the students to share their programs with you for evaluation, in case of exams, or for help in case they are stuck while studying. Since the ROSject contains all the material, it will be very easy for you to correct the exam in the conditions the student created the program, without requiring you to copy files or set up your computer environment. Just tell the students to share the ROSject link with you.
We use the ROSjects at LaSalle to provide different lessons and practices. For example, we have a ROSject with the simulation of the coffee shop where the students will do the project evaluation. Also, we use a ROSject to create the exams (as you can see in the previous section).
Summarizing: ROSjects allow you to encapsulate your lessons in a complete unit that includes the explanations with the simulations and the code. And all that for free.
Still, you will have to create your ROSjects for your classes. This is something that is going to end in the near future as more and more universities are creating their ROSjects and publishing them online for everybody.
However, if you do not want to wait until they are created, I can recommend our online academy, the Robot Ignite Academy, where we provide ready-made ROS-based courses about ROS basics, ROS2, robot navigation, deep learning, manipulation, robot perception, and more. The only drawback is that the academy has a certain cost per student. However, it is highly recommended because it simplifies your preparation. We use the Robot Ignite Academy at LaSalle, but many other universities use it around the world, like Clarkson University (USA), University of Michigan (USA), Chukyo University (Japan), University of Sydney (Australia), Universite of Luxembourg (Luxembourg), Universite de Reims (France), and University of Alicante (Spain).
Additional topics you may need to cover
Finally, I would like to make a point on a problem that I have identified when using this method.
I find that most of the people that come to our Robot Navigation class have zero knowledge about programming in either Python or C++, nor any knowledge on how to use Linux shell. After interviewing several robotics teachers around the world, I found that this is the case for other countries as well.
If that is your situation, first I would recommend that you reduce the scope of the programming you teach to just the use of Python. Do not go into C++. C++ is too complex to start teaching along with robotics. Also, Python is very, very powerful and easy to learn.
I usually create an initial class about Python and Linux shell. I do this class and immediately, the very next week, I give an exam to the students about Python and Linux shell. The purpose of the exam is to stress to the students the importance of mastering those programming skills. They are the basis for all the rest.
Additional problems that you may find is that the students have problems understanding English(if you are not in an English-speaking country). Most of ROS documentation is in English. The way to communicate in the ROS community is in English (whether we like it or not). You may be feeling tempted to lower the bar for your students and create the course notes in your mother language, and only provide documentary resources in your own language. I suggest not doing it. Push your students in English learning! The community needs a common language, and at present, it is English. Take this chance to push your students to grow and force them to read the documentation sources in English.
Conclusion
I started this post talking about the findings of Joel Esposito. Even if you listed to the podcast interview, you will see that his final conclusion is that not to use ROS for teaching robotics. I’m sure there are other teachers with the same opinion. Other teachers like professor Knepper do advocate for just the opposite. Those are points of view, like mine in this article. I recommend you to listen to the podcast interview to Joel so you can understand why he suggests that.
It is up to you to decide. Now you have several opinions here. Which one is best for you? Please leave your answer into the comments so we can start a debate about it.
Lecturer Steffen Pfiffner of the University of Weingarten in Germany is teaching ROS (Robot Operating System) to 26 students at the same time at a very fast pace.
His students, all of them within the Master on Computer Science of University of Weingarten, use only a web browser. They connect to a web page containing the lessons, a ROS development environment and several ROS based simulated robots. Using the browser, Pfiffner and his colleague Benjamin Stähle, are able to teach fast how to program with ROS to so many students, each student engaged in her own learning experience, moving at her own peace. The teacher, providing support when the student gets stuck. This is what Robot Ignite Academy is made for.
With Ignite Academy our students can jump right into ROS without all the hardware and software setup problems. And the best: they can do this from everywhere
— indicates Pfiffner
Robot Ignite Academy provides a web service which contains the teaching material in text and video format, the simulations of several ROS based robots that the students must learn to program, and the development environment required to build ROS programs and test them on the simulated robot.
Students Point of View
Students bring their own laptops to the class and connect to the online platform (http://robotignite.academy). From that moment, their laptop becomes a ROS development machine, ready to develop programs for many simulated real robots.
The Academy provides the text, the videos and the examples that the student has to follow. Then proposes the student to create her own ROS program and make the robot perform some specific action. The student develops the ROS programs as if she was in a typical ROS development computer. The main advantage is that students can use a Windows, Linux or Mac machine to learn ROS. They don’t even have to install ROS in their computers. The only requisite of the laptop is to have a browser. So students do not mess with all the installation problems that frustrate them (and the teachers!) specially when they are starting. After class, students can later continue with their learning at home, library or even the beach if there is a wifi available! All their code, learning material, simulations are stored online so they can access from anywhere, anytime using any computer and keep learning and practicing.
Teachers Point of View
But the advantage of using the platform is not only for the students but also for the teachers. Teachers do not have to create the material and maintain it updated. They do not have to prepare the simulations and make them work in so many different computers. They don’t even have to prepare the exams!! (which are already provided by the platform).
So what are the teachers there for?!!?
For the most important part of the whole process: to teach. By making use of the provided material, the teacher can concentrate on guiding the students by explaining the most confusing parts, answer questions, suggest modifications according to the level of each student, and adapt the pace to the different types of students. But specially, provide support to the student. That is teaching!
This new method of teaching ROS is exploding among the Universities and High Schools which want to provide the latest and most practical teachings to their students. The method, developed by Robot Ignite Academy, combines a new way of teaching based on practice, with an online learning platform. Those two points combined make the teaching of ROS a smooth experience and skyrocket the students knowledge of the subject.
The method is becoming very popular in the robotics circuits, and many teachers are using it, even for younger students. For example High School Mundet in Barcelona is using it to teach ROS to 15 years old students.
High School Students of Institut A.G. Mundet, Barcelona, learning ROS
Next events where Robot Ignite Academy will be used to teach ROS together with teachers:
1 week ROS course in Barcelona for SMART-E project team members. This is a private course given by Robot Ignite Academy at Barcelona for 15 members of the SMART-E project that need to be up to speed with ROS fast. From 8th to 12nd of May 2017