Thanks for the great info! I have some followups inline…
I think that the usefulness of the Turtle3 for a beginning robotics course would depend on many things. As somebody who has worked integrating technology into university-level education, I would suggest that ROS not be introduced into a beginning robotics course unless this is a graduate-level course.
It would be a senior/grad level course, the students would all be pretty good programmers already but not in C++. It would be either Java or Python for their previous experience. Also this is a “structured” independent study course so they would be expected to do a lot of digging themselves.
Part of this for me is the definition of “beginner.” The skill level of the students depends on their background. If they are all skilled programmers and understand basic mechanics, then perhaps “beginning robot course” might be a good place to introduce ROS.
They will be medium skilled programmers, but likely know little about mechanics. They could be strong in math and would have to learn the mechanics, matrices, transformations, and all that.
But: I too was concerned about choosing ROS. I have done a lot of software myself and I guessed just reading about it that ROS might be delicate to configure and get to work. I installed it on a new linux laptop without too much trouble but this is just for the first few tutorials. The way these things go, I can imagine that once I got to going beyond that something would stop working and it would be hell to figure out why.
ROS does have a lot of code that is available for use by the programmer. However, it is a large and complex system by itself. It could easily take the entire course to explain ROS to students who are not already versed in programming.
With ROS the students are able to program much more complex robots because they don’t have to reinvent the wheel multiple times. ROS covers many very difficult subjects like SLAM and navigation. Many sensors already have the code written to use them.
The structure of the course is a little unusual: I intend (hope) to make it something that is given every semester, but where the work of students in one semester is used as the foundation for the next, thereby allowing us to shoot for something really hard. That would be a robot that could navigate autonomously out of one office, out the building, down a path to another building, into it and to another office. I first thought this was a “solved problem” and my ambition was just to retrace what already had been done. But now I think it is actually not a solved problem. So, I don’t know if we will achieve (even over several semesters) that goal but it’s a nice inspiring goal to put in front of us.
I describe all that because I think that to accomplish this we need either to use ROS or write a lot of “real time OS” code ourselves.
That being said, I am already planning to get students warmed up in the basic world of robotics with a smaller project on an mBot. The smaller project, still hard I think, is to get the mBot to drive in a 2M square pattern, without line following but using sensors to correct and adjust the route. This I do think should be tractable without ROS.
The Arduino IDE comes into play because the OpenCR is a separate board which handles some of the low-level processing of the motors and perhaps some sensors. The OpenCR is not able to run ROS, but it can send and receive ROS messages. Therefore to ROS, it looks like a ROS node and the main computer board doesn’t care that it is a separate board.
Excellent. Then my next question is what software is on OpenCR? In other words, what does it do beyond what a bare arduino fulfilling that function do? Also what about using an OpenCR ONLY and then a wifi connection to a bigger linux computer running ROS?
The other problem is the class’ budget. Even the Burger costs quite a bit for many educational budgets. One could make it a requirement that the student buy their own but that is a lot for some students.
I’ve gotten a small grant to help pay for this. Still I think the class as a whole would have only 1 or 2 robots. The class initially will be kept between 2 and 8 students (I actually don’t know how many students will be interested.)
I hope this helps.
Extremely. With that background, where do you stand on the Turtlebot3 for my objectives? From other info I got the impression that the “burger” with a PI would not be powerful enough and that I would need to get a “Waffle”. Or maybe a “burger” configured with the other available CPU.
All further thoughts and insights would be greatly appreciated!