I can see the interest in getting certificates. After all, our online ROS Academy provides certificates to certify the ROS level of each student. We can see the high interest from our students.
However, I do not believe in certificates. In my opinion, certificates are a thing of the past, and we will get rid of them in the near future.
What really matters is what the person is capable of doing, and that is difficult to asses with a certificate. Instead, the real skills of an individual are easily discovered by checking the person’s public repo and asking him questions about his development there.
A certificate can say anything (as long as you pay), but asking about your repo? That shows the real thing! In the end, it is your real work that certifies your level.
Additionally, subjects change so quickly that a certificate in a given subject may mean nothing in 3 years. For instance, having a certificate in ROS-1 now may mean nothing in 3 years when ROS-2 becomes the standard.
If you want to start in the robotics development field, my advice is that you start as soon as possible to build your own repo of robotics projects. Learn as much as possible and then create your own projects, modify existing ones, collaborate with other developers… Build that base of work, and then show it to the world. Create a YouTube channel to show your results, allow people to reproduce your results, and share your code.
And don’t forget to keep yourself updated. Fields change so fast.
Ricardo
July 27, 2020 in Barcelona
P.S. I understand some very specific jobs require you to have specific certificates or titles to apply to them (mostly when related to jobs at universities or for the government). If your aim is to apply to those, then forget what I mentioned above and go after your certificates!
I’m talking here about delivering a robotics course while students and teachers are confined at home. I suspect we are going to need this for the rest of the year, so we better start dealing with it right now.
I’m completely discarding teaching with videos option for a University class because there is no real interaction between the teacher and the student.
I’m talking here about doing a Zoom/Google Meet/Whatever other platform session with the students where the teacher shares his display while he shows a series of slides/demos and explains the subject.
You have two options here:
Theory only classes.
Theory + practice in the students’ computer.
For the first case, just connect to the streaming platform and go for it.
For the second case, you will need to provide some practice environment on the students computer. Your options here:
Students install ROS in their computer.Follow the instructions here. Risky if your students do not have Linux in their computers.
Students install a provided Virtual Machine with ROS. I haven’t found any VM ready for modern ROS versions, so you will need to build it yourself.Follow these instructions.
Students use a ROS based docker. Follow the instructions here:https://hub.docker.com/_/ros/. This is a similar approach to the previous one, more modern, but a little bit more complex for the students.
Remember that you will also have to:
Answer the questions of the students after class. For that what I recommend is to have a Forum where the students post the questions and you as the teacher can answer them. Answers can be seen by all the students and outsourced to teacher assistants. I recommend you toinstall Discourse (in under 30 mins).
Evaluate the students. ROS to the rescue: ROS allows us to evaluate the learning of the students remotely by making them do programs that work. This is very important to avoid cheating. It is very difficult to copy the program of somebody else without showing they copied! For that, I recommend you create practical exams based on ROS where the students need toapply what they learned to a simulated robot. Instead of doing a theory based exam, do an application of theory over the simulated robot. That is what I personally did for myRobot Navigationclasses at the University of LaSalle Barcelona.
Having reached this point, let me sell you theRobot Ignite Academywe have developed at The Construct, which is the web-based ROS environment, where students do not have to install anything, and works with any type of computer. It provides the lessons, exercises, forum, and exams ready to use. Everything ready for you to apply your magic as a teacher!
The question: do you think that we will need to do remote teaching again in the fall of 2020? (I really hope not!)
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?
I had an interesting discussion with a reader of this newsletter who replied to me a few weeks ago when I sent the newsletter about robots helping to fight the COVID.
“Well, it depends on what you consider a robot. For me, a washing machine is a robot” he said.
I did not agree. How would you feel if you were hired to build robots and the first day at the lab, you discover that the actual robots you have to build are washing machines?
So, that healthy discussion, lead me to search for the definition of a robot.
The formal definition of a robot is… well, I’m not going to go with the formal definition. I’m going to go with the human definition. What we feel is a robot.
Robots are those machines that when we see them, we identify them as a robot. That’s it! Yes, I know, my definition of what a robot is sucks. It sucks in the academic sense, but it works on the common sense.
We would never identify a washing machine in a movie as a robot. But we would identify R2D2, the Terminator, or ex-machina. Examples that we would identify as robots in real life: Aibo, Vector, Boston Dynamics’ ones, Roomba,…
But then, why is Roomba more a robot than a washing machine is? you may ask. Ok, you want some gray area, then let’s add some gray area! 😉
Let me define the degree in which a machine is a robot as the robotness of the machine (I completely invented the word). The robotness of a robot can be computed as follows:
The longer a robot can operate without having to switch it off and on again (resetting), the more a robot it is.
The easier it is to provide the task commands, the more a robot it is. The less we have to use touch screens, buttons, switches, pads or any other artificial tool to communicate with the robot, the more a robot it is.
The closer to unadapted human environments the robot can work, the more a robot it is.
I still have to figure out the weight to each of the points in order to compute the final robotness score, but I think you can get the idea. I’m basically priming for autonomy and adaptation to us, humans and the environment.
So what do you think about that definition of a robot? Would you consider a washing machine as a robot? And a drone? And an autonomous car? Let me know your thoughts.
Perception is one of the main features that differentiates robots from just machines.
Perception is what makes a robot possible to perceive its environment and then, take decisions based on its current situation and its goal.
You can do perception with a 2D laser, but if you want to go to the next level of robot autonomy, you will need to use either images, point clouds… or a combination of both!
Images are mainly used to recognize things. It could be recognizing faces, objects, or locations. You can also use images to compute distances to elements of a scene, but that it’s not its strong point. Actually, current algorithms computing distances to objects just from images are pretty bad.
In order to get distances to any element in a scene, it is better to use a point cloud. The point cloud is usually very precise providing a 3D map of distances to objects. This is useful to identify at which distance is the obstacle and at which 3D location. But also, point clouds are very useful to identify the shape of the objects around. Since you have a complete cloud of distance points, you can recognize the shape of a book, of a can, of a table…
In order to make image processing available to everyone, there is a library that provides the implementation of the best algorithms for image processing. That is OpenCV.
In order to make point cloud processing available to everyone, there is another library that provides the best point cloud processing algorithms. That is the PCL (Point Cloud Library).
If you want to become a robotics developer, you will need to master those libraries. Maybe now it is a good time to go and take some tutorials on it:
Everyone is thinking about a way to help in this coronavirus crisis, and that is what I love of humankind.
Roboticists, we are no less. We also want to do our part in this crisis and help from the position that we know, that is, using robots to help in the crisis (either in the hardware or software part).
In my last ROS live class, I was asked by some students whether I thought robots can help in the crisis. And my answer was no.
I really think that current robots cannot do useful tasks in the crisis.
First of all, if you are thinking about a robot that helps the doctor with the patient, changes the sheets of beds, gives lunch to the ill ones, that is a big no. We are very far from that.
On the other side, if what you are thinking is about robots that can help in very small and concrete tasks, then the answer is a maybe… but still not convinced.
For instance, there are robots that can be used as telepresence robots. In theory, those telepresence can help Doctors review patients from a distance, reducing the exposure of the Doctors, and allowing far Doctors to help in overloaded places. In theory that should work with any of the telepresence robots that do exist. However, still to see a real situation where this is working. For example, this article by IEEE Spectrum talks about using robots for telepresence, but actually shows no real execution (even the picture is an actors picture). That is why I suspect that, even if they have the proof of concept done (I don’t doubt about that), the real thing is something much more complex, and hence, it is at present still not working.
Another way is delivery and transportation tasks inside the hospital. Several companies working on it already and many press releases, but the complexity of the task goes beyond navigation. The robot has to be able to move on elevators, closed doors and narrow spaces with people all around.
Another way is disinfection. What is the advantage of that approach… I don’t know since I’m not an expert of that task. However, to my limited vision, the requirement of having a person controlling the robot makes the task either more complex or converts the robot in just a tool.
So, I would define a quick test to see if a robot is actually helping:
Does the robot need the presence of other humans during its task performance?
Is the robot working autonomously for a certain amount of hours in a row?
If the answers are no, and yes, then we may be into a real robot that is helping. Otherwise, the robot is just a tool or a press release. Unfortunately, based on my experience we are closer to the latter. I do believe that all those companies have achieved the proof of concept, yes. I do not believe any of those robots are practical in the daily life of the hospitals.
As roboticists, we must take care of what we promise. We must be conscious about the reception of news about robotics by journalists and the audience. So we must not overpromise because we will be creating a false expectations about the real situation.
Please, correct me if I’m wrong. I’ll be very happy to hear of successful cases where robots are really helping in the COVID crisis. If you sent me those cases, I’ll change my opinion and promote them in my networks.