ロボティクスとROSの教師が犯す5つの間違い

ロボティクスとROSの教師が犯す5つの間違い

(以下のテキストはAIによって翻訳されました。原文はこちらでご確認いただけます。もし疑問点やご意見がありましたら、info@theconstructsim.com までメールかメッセージをお送りください。)

先週、同僚から大学でROSを教える方法についてアドバイスを求められました。彼女は来月からROSの授業を始める予定です。それから私は、大学でROSを教える際に過去に comitted した5つの誤りを記録することに決めました。このビデオがあなたのお役に立ち、私が犯した誤りを回避し、ROSの授業を円滑に始めるのに役立つことを願っています。

🙅 第1の誤り:ROSのインストール方法を教えて始める

最初の誤りは、ROSのインストール方法を教えてROSの授業を始めることです。これは、ROSの学習とは関係のないことを教えているため、ROSの学習に大きな問題を抱えた初学者にさらに多くの障壁を設けてしまう誤りです。ROSのインストール方法を教え、インストールの問題を解決するために費やす時間は、実際にはロボット内でROSの問題を解決するために使用できます。

🙅 第2の誤り:C++を使用してROSを教える

2番目の誤りは、C++を使ってプログラムすら知らない学生にROSを教えることです。この誤りは、プログラミングの知識がない学生にROSを教えなければならない教師に特有のものです。私がいくつかの学生にROSを教えたときのケースで、彼らはメカトロニクスの背景を持っており、プログラミングやLinuxの使用方法を全く知りませんでした。

ROSはPythonまたはC++を使用して教えることができることを知っています。C++は非常に複雑であり、ROSも非常に複雑です。したがって、C++とROSの両方を組み合わせ、プログラムを全く知らない学生に教えると、非常に困難になる可能性があります。代わりに、私が提案するのは、これらの状況ではPythonを使用して始めることです。ROSをPythonを使って教え、それを始める前にPythonについての授業を行います。Pythonは非常に簡単で、学生は非常に速く学ぶことができます。ROSの重要な概念をすべてPythonを使用して習得した後、必要な場合にC++に切り替えることを試みることができます。産業界で働きたい場合など、C++が必須の場合にのみC++を使用します。

🙅 第3の誤り:スライドを使用してROSを教える

3番目の誤りは、スライドを使用してROSを教えることです。私にとって、スライドを使用してROSを教えることは、地上で泳ぐ方法を動作を示すことで教えることと同じです。私は直接水に飛び込んで、動いてみて何が起こるかを見ることを好みます。これをROSにどう翻訳すればいいのか?つまり、最初の1分からロボットと実際に練習を始める必要があるということです。

私が提案したいのは、ROSの非常に小さな理論的な概念を教えることから始めることです。たとえば、トピックサブスクライバーとは何か、ということ。しかし、非常に迅速に、学生がこれをロボットに適用する機会を提供し、例えばカメラからデータを取得する方法などを通じて、ロボットと一緒に練習させます。その後、学生はプログラムを作成し、カメラに接続しようとします。うまくいかない場合、彼はあなたが教えた理論に戻り、どこが問題かを確認し、プログラムを変更して再試行し、理解されるまでこのプロセスを繰り返します。そして、次の概念に移る前に、すべてが理解されたところで進みます。これが私が提案するプロセスです。

🙅 第4の誤り:ROSのすべてを教えなければならない

4番目の誤りは、すべてのROSについて教えなくても良いということです。ROSは広範なトピックであり、学生にすべてを教えようとすると、学生は圧倒されてしまいます。その代わりに、提案するのは、現在の学生のレベルに関連する部分のみを教えることです。彼が何も知らない場合、たとえばパッケージの作成方法やカメラからデータを取得する方法を知らない場合、これがマスターされたら、次のレベルに進み、常に固まった基盤から進むようにし、学生のレベルが上がるにつれて進んでいくのです。

🙅 第5の誤り:ROSのすべてを知らなければならない

5番目の誤りは、ROSのすべてを知らなければならないと心配することです。ROSがカバーするすべてを知ることは不可能ですので、授業中に生徒が答えのない質問をすることが非常にあります。これは非常に一般的なことです。私にも今日そういうことがありました。しかし、あなたはそれについて心配する必要はありません。もしそうなった場合、私のお勧めは生徒に伝えることです。「申し訳ありません、この質問の答えがわかりませんが、問題をメモして次の日に答えを探します」と言ってください。次の日には、この答えを生徒に提供します。そして、これを行うことで、本当の自信を生徒に示すことができます。おそらくあなたはすべてを知らないかもしれませんが、問題を解決する方法を知っており、徐々に知識を増やしていくことになります。生徒があなたに質問して何か知らないことを示すことが、あなたを引き戻したり、授業やROSの学習を進めなくすることはありません。

Teach ROS in Luxemburg University

要約

このビデオを締めくくる前に、3つのアドバイスをお伝えします。

最初のアドバイスは、授業をROSのインストールに基づかせないことです。その方法については、こちらの投稿をご覧いただき、仮想マシンやDocker、Web統合環境を使用してこのステップを回避する方法を学んでください。ぜひチェックしてみてください。

次に、学生が非常に熟練したプログラマでない限り、ROSを教える際にC++を使用しないでください。Pythonから始めてください。学生がLinuxやPythonの知識を持っていない可能性も高いです。その場合は、ロボティクスのためのLinuxを学ぶための無料のオンラインコースと、ロボティクスのためのPythonを学ぶための別のリンクがあります。どちらも役立つかもしれませんので、ぜひチェックしてみてください。

そして、最後のポイントは、生徒にできるだけ多くの練習をさせることです。ラボで利用可能なロボットをできるだけ早くROSで実習に使用してください。もしロボットがない場合、手元に置く余裕がない場合は、シミュレーションを使用してください。シミュレーションはROSの学習に非常に役立ちます。さまざまなタイプのロボットで練習する機会を提供し、非常に有用です。それでは、今回のビデオは以上です。皆さんのお役に立てれば幸いです。

キャンパス向け

世界No.1のロボット工学教育・学習プラットフォーム

簡単に始められ、柔軟性に富み、業界に沿ったオンラインロボット工学教育・学習プラットフォームで、カリキュラムを近代化します。

로봇공학 및 ROS 교사들이 하는 5가지 실수

로봇공학 및 ROS 교사들이 하는 5가지 실수

지난 주에 제 동료가 다음 달에 ROS 수업을 시작하게 되어 대학에서 ROS를 가르치는 방법에 대한 조언을 구해 왔습니다. 그 후로, 나는 대학에서 ROS를 가르치면서 내가 과거에 저질렀던 5가지 실수를 녹화하기로 결정했습니다. 이 비디오가 여러분에게 유용하고 내가 한 실수를 피하도록 도움이 되기를 희망합니다.

🙅 1번째 실수: ROS 설치 가르치기

첫 번째 실수는 ROS 설치 방법을 가르치면서 ROS를 가르치기 시작하는 것입니다. 이것은 ROS 학습과 관련이 없으므로, ROS를 배우는 사실에 대한 장벽을 더 많이 설정하는 실수입니다. 실제로 ROS 설치 방법을 가르치고 설치 문제를 해결하는 데 소비되는 모든 시간은 로봇 내에서 ROS 문제를 해결하고 가르칠 때 사용할 수 있습니다.

🙅 2번째 실수: C++로 ROS 가르치기

두 번째 실수는 프로그래밍조차 모르는 학생들에게 ROS를 가르칠 때 C++를 사용하는 것입니다. 이 실수는 프로그래밍을 전혀 모르는 학생들에게 가르쳐야 하는 교사들을 위해 특별히 해당됩니다. 제 경우에는 메카트로닉스에서 온 학생들을 가르쳤으므로 프로그래밍이나 리눅스 사용 방법을 전혀 모르는 학생들이었습니다.

ROS를 Python 또는 C++를 사용하여 가르칠 수 있음을 알고 있습니다. 그리고 C++가 매우 복잡하며 ROS도 복잡하다는 것을 알고 있습니다. 그러므로 C++와 ROS 두 가지를 혼합하여 프로그래밍을 전혀 모르는 사람들에게 가르치면, 그들에게는 많은 어려움이 될 것이므로 그들이 따라가고 이해하기가 매우 어려울 것입니다. 대신 이러한 상황에서 Python을 사용하기를 제안합니다. Python을 사용하여 ROS를 가르치고 시작하기 전에 Python에 대한 몇 가지 강의를 진행하십시오. Python을 배우기 매우 쉬우며 매우 빨리 배울 수 있습니다. Python을 사용하여 ROS의 모든 커리큘럼을 제공한 다음, ROS의 주요 개념을 Python으로 마스터한 후 ROS를 C++로 전환하려고 시도할 수 있지만 필요한 경우에만 그렇게 하십시오. 그 산업에서 일하려는 경우와 C++이 필수적인 경우입니다.

🙅 3번째 실수: 슬라이드를 사용하여 ROS 가르치기

세 번째 실수는 슬라이드를 사용하여 ROS를 가르치는 것입니다. 나에게 있어서 슬라이드를 사용하여 ROS를 가르치는 것은 움직임을 보여 주며 땅에서 수영을 가르치는 것과 같습니다. 나는 곧바로 물로 뛰어들어 움직이기 시작하고 무슨 일이 일어나는지 보는 것을 선호합니다. ROS에 어떻게 번역되는지? 그래서 제 의미는 우리는 로봇과 직접 연습부터 시작해야 한다는 것입니다. 이렇게 시작해야 한다는 제안을 보여 드리고 싶습니다. ROS의 매우 작은 이론적 개념을 가르침으로써 시작하십시오. 예를 들어, 토픽(topic), 토픽 구독자란 무엇인가(topic subscriber)? 그러나 매우 빨리 학생들이 이것을 로봇에 적용하도록하여 예를 들어 카메라에서 데이터를 어떻게 캡처하는지를 알아보십시오. 그런 다음 학생은 이 프로그램을 만들고 카메라에 연결하려고 노력할 것입니다. 작동하지 않으면 가르친 이론으로 돌아가서 오류가 어디에 있는지 확인하고 프로그램을 다시 변경하고 다시 시도하고 이 루프를 반복하고 모든 것이 이해될 때까지 다음 개념으로 이동하십시오. 그것이 내가 제안하는 프로세스입니다.

🙅 4번째 실수: ROS에 대해 모든 것을 가르쳐야 함

네 번째 실수는 학생에게 ROS에 대해 모든 것을 가르칠 필요가 없다는 것입니다. ROS는 방대한 주제이므로 학생에게 모든 것을 가르치려고 하면 압도될 것입니다. 대신 현재 학생의 수준과 관련된 부분만 가르치기를 제안합니다. 그가 아무것도 모르면 예를 들어 패키지를 만드는 방법과 카메라에서 데이터를 가져오는 방법을 가르치고 이를 마스터하면 다음 단계로 넘어가기를 제안합니다. 항상 이해된 기반에서 이동하며 학생의 수준이 올라감에 따라 전진하십시오.

🙅 5번째 실수: ROS에 대해 모든 것을 알아야 함

다섯 번째 실수는 ROS에 대해 모든 것을 알아야 한다는 걱정입니다. ROS가 다루는 모든 것을 알아내는 것은 불가능하기 때문에 수업 중에 학생 중 일부가 당신에게 알지 못하는 질문을 할 가능성이 높습니다. 그것은 매우 정상적인 일입니다. 오늘 나에게도 그런 일이 있었고 그것에 대해 걱정하지 않아도 됩니다. 만약 그런 일이 벌어진다면, 학생들에게 “죄송합니다. 이 질문에 대한 답을 모르겠지만, 문제에 대한 메모를 남기고 다음 날에 대답을 찾겠습니다.”라고 안내하십시오. 그런 다음 다음 날에 이 답변을 제공하십시오. 그렇게 함으로써 당신은 정말로 학생들에게 당신의 주제에 대한 자신감을 보여 줄 것입니다. 아마 당신은 모든 것을 알지는 않겠지만 그곳에서 문제를 해결하는 방법을 알고 있고 지식을 조금씩 늘려 나갈 것입니다. 그래서 그들이 당신에게 질문을 하고 당신이 무언가를 모른다고 보여주는 것이 당신을 제자리에 묶어두지 않도록하고 ROS 수업과 학습에서 진전하지 못하게하지 마십시오.

Teach ROS in Luxemburg University

요약

자, 이 비디오를 마무리하면 세 가지 조언을 드리겠습니다.

첫 번째는 컴퓨터에 ROS를 설치하는 것을 기반으로 수업을 만들지 마십시오. 그러려면 이 게시물을 참조하여 가상 머신이나 도커 또는 웹 통합 환경을 사용하여이 단계를 건너 뛸 수 있는 방법을 보여주는 것입니다. 그래서 확인해보십시오.

그리고 또한 당신의 학생이 매우 숙련된 프로그래머인 경우가 아니라면 ROS를 가르치기 위해 C++를 사용하지 마십시오. Python으로 시작하십시오. 또한 여러분의 학생들이 리눅스나 Python 지식이 전혀 없을 수 있습니다. 그렇다면 여기 무료로 제공되는 두 가지 온라인 강의 링크가 있습니다. 로봇 공학을 위한 리눅스를 배우기 위한 것과 Python을 배우기 위한 것입니다. 그래서 확인해보고 여러분의 학생들에게 유용할 수 있을지 확인해보십시오.

그리고 세 번째로 가능한 한 많이 연습하도록 학생들에게 권장합니다. 귀하의 연구실에 있는 로봇을 ROS와 함께 가능한 한 빨리 연습하는 데 사용하십시오. 로봇이 없거나 그것들을 감당할 수 없다면 시뮬레이션을 사용하십시오. 시뮬레이션도 ROS를 배우기에 매우 좋습니다. 학생들이 여러 가지 다양한 유형의 로봇과 함께 연습할 수 있도록 허용하기 때문에 매우 유용할 수 있습니다. 그게 다 입니다. 이 비디오가 여러분에게 도움이 되기를 바랍니다.

5 Mistakes Robotics & ROS Teachers Make

5 Mistakes Robotics & ROS Teachers Make

Last week, a colleague of mine asked me for advice on how to teach ROS at university because she is going to start delivering a ROS class next month. Then I decided to record this video with 5 mistakes I have made in the past while teaching ROS at the university. I hope that this video is useful for you and helps you avoid the mistakes that I made so you can start delivering ROS classes smoothly.

🙅 1st mistake: Start teaching ROS by teaching how to install ROS

The first mistake is you start teaching ROS by teaching how to install ROS. This is a mistake because learning how to install ROS is irrelevant to the fact of learning ROS. Actually, you are putting a lot more barriers to the newcomers that already have a big problem learning ROS itself. All this time spent teaching how to install ROS and how to solve installation problems can actually be used to learn and teach how to solve problems with ROS inside the robot. 

🙅 2nd mistake: using C++ to teach ROS

Mistake number two is using C++ to teach ROS to students that don’t even know how to program. Okay, so this mistake is specific for those teachers who have to teach to guys who don’t know how to program. So, that was my case when I had some students that came from mechatronics, so they don’t even know how to program or how to use Linux.

You know that you can teach ROS by using Python or C++. And you know that C++ is very complex. You also know that ROS is very complex. So, if you mix those two things, C++ and ROS, and teach this to people who don’t even know how to program, that’s a lot for them, so it’s going to be very difficult for them to follow and to understand. Instead, what I propose is that in those situations, you start using Python instead. You are going to teach ROS with Python, and before starting that, do some classes about Python, just learning Python, which is very easy and they can learn very, very quickly. You provide all the curriculum of ROS using Python, and then once they have mastered all the key concepts of ROS using Python, you can try to do this switch into ROS with C++, but only for the cases that are necessary. You know those cases that want to work in the industry and C++ is mandatory.

🙅 3rd mistake: teaching ROS by using slides

Okay, so the third mistake is teaching ROS by using slides. Well, for me, teaching ROS with slides is like teaching to swim on the ground by showing the movements. I prefer to jump straight into the water and start trying to move and see what happens, right? How does that translate into ROS? So, what I mean is that we have to start by practicing with the robot straight away, from minute one.

The proposal that I would like to show you is start by teaching a very small theoretical concept of ROS. What is a topic, for example, a topic subscriber? Then, but very quickly, then you have the student apply this to a robot, so for example, with the robot, how to capture from the camera, the sensor. Then, the student is going to create this program, try to connect to the camera. If it doesn’t work, then he will have to go back to the theory that you have taught and then see where the mistake is. And then change the program again and try again, and then repeat this loop until everything is understood and then go to the next concept. So, that’s the process that I propose 

🙅 4th mistake: have to teach everything about ROS

The fourth mistake is you don’t have to teach everything about ROS. ROS is a large subject, so if you try to teach everything to the student, he will be overwhelmed. So instead, what I propose is that you only teach those parts that are relevant to the current level of the student. So if he doesn’t know anything, for example, let’s say how to create packages and how to get data from the camera, then once this is mastered, go to the next level, but always moving from a base that has been solidified, that has been understood, and just move forward as the level of the student increases, not more.

🙅 5th mistake: have to know everything about ROS

The fifth mistake is to be worried about having to know everything about ROS. Well, it is impossible to know everything that ROS covers, so it is very likely that while you are in the class, some of the students will ask you some questions that you don’t have an answer for. That’s very normal. That happened to me today and you don’t have to worry about that. If that happens to you, my recommendation is that you just indicate to the students, “Sorry, I don’t know this answer, but I will take note of what the problem is and then find the answer for the next day.” Then on the next day, you’re going to provide this answer to the students. Then by doing this, you are going to really show your students your confidence on the subject. So maybe you don’t know everything, but you know how to solve the problems there and also you are going to increase your knowledge, little by little. So don’t let those questions they are asking you and showing that you don’t know something set you back and not progress in your class and learning of ROS. 

Teach ROS in Luxemburg University

Summary

Okay, let me conclude this video by giving you three pieces of advice.

The first one is you don’t base your class on installing ROS in the computers. So if you want to avoid that,  here is a post where I show how you can avoid that step by using virtual machines or dockers or web integrated environments. So have a look.

So then, also please don’t use C++ for teaching ROS unless your students are very skilled programmers. Start with Python. It is also very likely that your students are coming from a background without any Linux knowledge, any Python knowledge. Then if that is the case, here is a link to two online courses that are free; one for learning Linux for robotics and another one for Python for robotics. Okay, so check them out and see if they could be useful for your students. 

And the third point is that you should make your students practice as much as possible. So use the robots you have at your lab for practicing as soon as possible with ROS. And if you don’t have robots, you can’t afford them, then use simulations. Simulations are also very good for learning ROS. They allow the students to practice with many different types of robots, so they could also be very, very useful.

And that is all for this video. I hope that this is useful for you

Teaching robotics in times of confinement

Teaching robotics in times of confinement

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:

  1. Theory only classes.
  2. 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:

  1. Students install ROS in their computer. Follow the instructions here. Risky if your students do not have Linux in their computers.
  2. 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.
  3. 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:

  1. 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 to install Discourse (in under 30 mins).
  2. 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 to apply 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 my Robot Navigation classes at the University of LaSalle Barcelona.

Having reached this point, let me sell you the Robot Ignite Academy we 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!)

 

Ricardo
July 13, 2020 in Barcelona
Teaching Robotics to University Students from Home

Teaching Robotics to University Students from Home

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.

  1. 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).
  2. 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.
  3. 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/.
  4. 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):

  1. 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:
    1. The Jetson nano board developer kit (around $110)
    2. The Jetbot kit for Jetson Nano (around $110)
  2. 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:

  1. 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.
  2. 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.
  3. 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!

For campus

A Full ROS & Robotics Teaching Solution

Trusted by hundreds of universities

Pin It on Pinterest