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:
- Introduction to Robotics, Stanford University, fall 2020 program
- Introduction to Robotics, Carnegie Mellon University, 2020 spring program
- Introduction to Robotics, University of Louvain-la-Neuve, 2020 spring program
- Modern Robotics, Coursera Specialization path
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!
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!