Is Turtlebot the right platform for us?

I am thinking of Turtlebot for an intro robotics course I am designing. I am wondering about a few things:

  1. Exactly what comes in the box. In particular, to what extent is the software, ROS, etc. already configured?
  2. How many hours from unpacking to riding the bot in a circle?
  3. Asked in a different way, what software is pre-installed on the Pi?

p.s. is this list active or is there another list where there’s more lively discussion?

Also looking at http://answers.ros.org/questions/scope:all/sort:activity-desc/tags:turtlebot/page:1/

1 Like

Hi :slight_smile:

Thank you for your interest in TurtleBot3.

First, you can check it Part List of TB3 on wiki page. It shows what is in the box. TurtleBot3 officially supports ROS. It already uploaded in Github page for TurtleBot3. Furthermore, OpenCR that is included in TurtleBot3 is applied Arduino IDE. The source code and hardware already uploaded in Github page for OpenCR

Second, it varies from person to person. Averagely TurtleBot3 burger takes 1~2 hours and waffle takes 2~3 hours.

Third, we provide Raspberry Pi 3 and empty microSD card. So users can install what they want. We recommend Ubuntu mate 16.04 LTS for ROS compatibility.

Thanks

Thanks! A few followup questions:

  • The assembly instructions is mostly in a non-english language. How come?
  • Given that you say “it is already uploaded” that means that we have to install the software onto the actual robot, which is fine.
  • I don’t understand what you said about “Applied Arduino IDE”, can you explain?
  • Raspberry Pi is with the Waffle, right? Are you saying that we can easily order a Burger with a Pi? Or what exactly?
  • If I order on July 1, when can I expect to receive a Burger?
  • ROS seems to be pretty complicated to set up (all the xml files, etc.) And there doesn’t seem to be that much support (i.e. Stackoverflow or similar.) Is this true?

Thank you!

Hi again!! :grin:

The assembly instruction is provided four language including English, Chinese, Japanese and Korean. The main language is English. you can check this Assembly Manual

When you get the new TurtleBot3, OpenCR has latest firmware but other boards(Raspberry Pi 3 or Intel Joule) doesn’t have operating system. So, we provide all setup process in TurtleBot3 wiki pages. Users can easily follow this procedures.

The OpenCR is ROS embedded system. The development environment for OpenCR is wide open from Arduino IDE for students.

TurtleBot3 burger has Raspberry Pi 3 and TurtleBot3 waffle has Intel Joule board. If you order TurtleBot3 burger, you can take all components, Dynamixel, OpenCR, Lidar sensor and Raspberry Pi 3.

Shipping will start August 1, you can receive it in the order you ordered. We will try to deliver as soon as possible.

Some people struggle for installation of ROS. So we prepare script file. This file will help them.

ROS is open source community during 10 years. It has official website and many github issuse pages for supporting users. It might be help you when you have any errors during operating robot.

Thanks.

Thanks.

The assembly instruction is provided four language including English, Chinese, Japanese and Korean. The main language is English. you can check this Assembly Manual

Double check the link. I don’t think it has more than a few pages of English. Or just send me the pdf to avoid any misunderstanding!

When you get the new TurtleBot3, OpenCR has latest firmware but other boards(Raspberry Pi 3 or Intel Joule) doesn’t have operating system. So, we provide all setup process in TurtleBot3 wiki pages. Users can easily follow this procedures.

The OpenCR is ROS embedded system. The development environment for OpenCR is wide open from Arduino IDE for students.

What does the ROS embedded system do? Does it mean that I don’t try to run ROS on the Arduino?

Shipping will start August 1, you can receive it in the order you ordered. We will try to deliver as soon as possible.

Can you give me a realistic estimate, because I actually need it on July 1 for my course. How much after Aug 1 do you guess?

Thanks!

Pito

Hi :smile:

I share TURTLEBOT3 burger quick starter. You can check that the all contents are provided English.

I posted your second question in ROS ANSWER.

About shipping in US reference please contact to america@robotis.com (For more detail about shipping please contact turtlebot.com) The person interested will help you.

Thanks.

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.

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.

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 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.

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 hope this helps.

Jay

Hi Jay

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!

Pito

Seems like with a budget that can barely afford two small robots, you’re asking for too much here.

I would suggest using more leverage (e.g a bigger community which already has a lot of resources… like a Turtlebot 2), or reducing some scope. If you make a ‘robot’ with an arduino and a servo, im sorry but that’s not really a robot course. it’s a course on servo actuation. It’s got to be a bit more complex than that.

I highly recommend demonstrating kinematic chains (e.g arms), different drive types of robots, different types of sensors, and different types of algorithms which can navigate, move, and orchestrate the robot.

Just keep in mind, please, that a robot is a SYSTEM as much as an entire laptop is a system. This also means a microcontroller inside a mouse, is not a laptop. (which is what is proposed by only using something as small as a microcontroller and a servo.

Given also that the students learn from the teacher, I recommend getting a lot more knowledgeable real fast before they come along. Otherwise, you may want to step back again and reconsider using community leverage where there are those more knowledgeable that can help out. If you’re just learning about ROS, there’s no way in hell the students will be able to solely rely on you for all their questions.

So, you need a super community supported robot/system (you HAVE to use ROS here, given the above constraint). I’ve answered that for you.

You should also spend your budget on something that makes a lot more sense and is an entire robot system. If the class size is 8-9 students, they can take turns loading software on it, or all be ssh’d into it in the same time. They don’t all need their own robot. That’s a bit grandiose.

Also, don’t bullshit around on anything that’s not a full computer. ROS works best on an Ubuntu 16.04/14.04 operating system and not on an ARM device. You’ll want to not be constrained by performance when picking and choosing modules. it will cost you a lot more in time and grief than the difference in price between a RaspBerryPI and a $700-800 intel NUC/mini-ITX form factor computer.

With a platform like this, you don’t have to worry about where to go next. Software on a proper computer will take you to the sky and limit of research in robotics (mostly). Given you’re teaching introductory ROS, a platform like this could easily give you 4 semesters of course data, and with thought, 2-4 more.

At least give the students a fighting chance. If you get the kids (If they’re graduate level) working on an mBot to do ‘research’ or ‘learn on’, the mBot is nothing like the robots in industry or used in academia, you aren’t setting them up for a future or helping them out by showing them whatever you’re coding on an mBot.

I can tell you that if I saw an mBot on a resume or information about it (unless otherwise extremely spectacularily innovative or doing something NEVER done before), I would assume that it was a highschool project or something someone did in a weekend that showed no real effort put in towards robotics.

My 2C.

1 Like

I’m sorry, Pito, but I don’t have the OpenCR board yet. I believe that it is programmed like an Arduino, in the same languages, but it uses an M0 ARM chip which means there may be some incompatibilities.

I did use several of the “Teensy 3.x” boards which are also ARM-based using the Arduino IDE. These worked fine, but not all Arduino libraries were compatible. Most of the libraries were compatible due to the fine people that created the board. I think that all the official libraries were compatible (at the source level), but some unofficial libraries weren’t.

I thnk it comes down to the programmers that programmed the core code for the OpenCR.

Unless there is something that the OpenCR board gives us that the Teensy 3.x doesn’t, I would have preferred that they went with the Teeny’s. The Teensy is very small and still does more than an Arduino, packing a lot into a breadboard-friendly dual-inline package. They are also inexpensive.

I will wait and see before final judgment.

I am currently going to start experimenting with a UDOO x86 ultra. This is a quad-core x86 (faster than the Joule) with a built-in Arduino onboard. I should be able to use it for both the main processor and the sensor board for a robot.

I haven’t had a chance to play with my own mBot yet.

Good luck with the course. I think that you’re right in using just the mBot. And you might be able to get enough mBots for the entire class.

Jay

Hi Jay

Thanks for the info… I will investigate further about OpenCR. Also thanks for the reference to Teensy 3.0. and UDOO x86 ultra. Will check them out!

Pito Salas
Brandeis Computer Science
Feldberg 131

Hi there (name?)

Thanks for lots of good insights… Comments inline:

Seems like with a budget that can barely afford two small robots, you’re asking for too much here.

I would suggest using more leverage (e.g a bigger community which already has a lot of resources… like a Turtlebot 2), or reducing some scope. If you make a ‘robot’ with an arduino and a servo, im sorry but that’s not really a robot course. it’s a course on servo actuation. It’s got to be a bit more complex than that.

I assume you mean the ROS community vs. the arduino one? Yes, I totally agree, that’s why I am starting to participate here! Do you consider Turtlebot3 a good candidate? Because that’s the one I was digging deeper on. (I thought the 2 was discontinued?)

I highly recommend demonstrating kinematic chains (e.g arms), different drive types of robots, different types of sensors, and different types of algorithms which can navigate, move, and orchestrate the robot.

Gotcha.

Just keep in mind, please, that a robot is a SYSTEM as much as an entire laptop is a system. This also means a microcontroller inside a mouse, is not a laptop. (which is what is proposed by only using something as small as a microcontroller and a servo.

Of course: I am well aware of that :slight_smile:

Given also that the students learn from the teacher, I recommend getting a lot more knowledgeable real fast before they come along.

Working on it. But I don’t exactly agree with your model. I think the teacher creates the environment to allow students to learn and to teach themselves. Also by the way note that this is more of an independent study course.

So, you need a super community supported robot/system (you HAVE to use ROS here, given the above constraint). I’ve answered that for you.

I think ROS is amazing, I agree, especially because of the community. (The software architecture of ROS itself seems to me a little overly complex but that’s just my first impression. I know I have to get deeper.)

Also, don’t bullshit around on anything that’s not a full computer. ROS works best on an Ubuntu 16.04/14.04 operating system and not on an ARM device. You’ll want to not be constrained by performance when picking and choosing modules. it will cost you a lot more in time and grief than the difference in price between a RaspBerryPI and a $700-800 intel NUC/mini-ITX form factor computer.

Good advice. I heard elsewhere also that Pi was underpowered for the job. Intel Joule?

With a platform like this, you don’t have to worry about where to go next. Software on a proper computer will take you to the sky and limit of research in robotics (mostly). Given you’re teaching introductory ROS, a platform like this could easily give you 4 semesters of course data, and with thought, 2-4 more.

At least give the students a fighting chance. If you get the kids (If they’re graduate level) working on an mBot to do ‘research’ or ‘learn on’, the mBot is nothing like the robots in industry or used in academia, you aren’t setting them up for a future or helping them out by showing them whatever you’re coding on an mBot.

My thought (maybe wrong) was this: a simple, successful experience, where they confront face to face the fact that a robot interacts with the real world and won’t just do what you tell it, i.e. even drive in a straight line. Do you not buy that?

Thanks much. So in summary, I wonder about your opinion about the Turtelbot3 with the Joule. And of course I am keen to continue the discussion to learn more from you!

Thanks,

Pito

Perhaps if you first prepared a relatively simple project for the students by having them use a specific part of ROS to do what you wanted.

For example, the suggestion of having the robot roll in a simple square. Though I might suggest doing line or maze following. Both of these seem more fun for students than rolling in a square which seems more like a homework problem.

Yes, I agree that all of the above are homework problems, but people react better when there is some fun and just a little competition involved, IMHO.

If you teach the general concepts of ROS and then concentrate on the parts of ROS that the students would need in order to achieve the goal, ROS might work out.

After I do the basics to learn ROS with the Waffle as ordered, I will attempt to replace the Joule with a NUC and give the Joule to my preordered Burger. After this, I will keep those machines for demos and build something more complex and fun.

Hi Jay

Perhaps if you first prepared a relatively simple project for the students by having them use a specific part of ROS to do what you wanted.

I assume the idea of doing something like that on an arduino robot you feel is not the best use of time. My second project I was designing is for them to create a map of a small part of the building and then using the ROS simulator train the simulated robot to find it’s way from my office to an office down the hall.

For example, the suggestion of having the robot roll in a simple square. Though I might suggest doing line or maze following. Both of these seem more fun for students than rolling in a square which seems more like a homework problem.

A maze is much more fun, good idea. I thought that not using line following but making them think about 2d geometry as they try to do a straight line, using some kind of sensor to find distance to walls might be a little more challenging and interesting. Line following seems too easy or am I thinking about this wrong?

If you teach the general concepts of ROS and then concentrate on the parts of ROS that the students would need in order to achieve the goal, ROS might work out.

After I do the basics to learn ROS with the Waffle as ordered, I will attempt to replace the Joule with a NUC and give the Joule to my preordered Burger. After this, I will keep those machines for demos and build something more complex and fun.

Great idea for a progression! Thanks and keep any suggestions coming!

Pito

Well, I’d like to see you personally get it done in 3 months with starting with 0 ROS or robotics knowledge :wink:

If you’re going to ever do distance sensors, you have 3 options:

  1. The best: laser range finder
  2. Close second: 3d cameras (kinect, intel euclid, intel realsense)
  3. Last resort: proximity

Given your price range, I’d try and go for #2 if it fits the budget, and don’t bother with #3 other than for proof of concept/want people to feel the pain while learning. Actually a combination of them all would be a good way to demonstrate that your algorithms are theoretically bounded by the quality of your sensor data =)

Pito, design the course and what you want to show first. The robot you need will be decided by that. If you are unsure of what the course needs in it/how to go about that, lets take this offline/another thread. I’ve built many a robots and i think I can help you here with coming to a close on what you need to show the students.

Working with point clouds for distance measurement using laser or 3d cameras is a big challenge in 3 months along with getting the robot moving.

A proximity sensor for wall following is more doable in that period.

I disagree. There are many platforms out there where it’s one launch file (e.g one cmdline type in) to bring up a screen to show you what point data it is seeing, and consequently what data you can see from the terminal.

Given that, you could instruct the students to do stuff with the data using python, C++. In fact, it is the exact same amount of work in ROS to get a prox sensor coming up… to ROS it doesn’t care, it’s all pointcloud data/laserscan data…

You aren’t asking them to write an algorithm that extrapolates the depth from the images, it’s given already.

The reason I’m not a fan of the square is that it is a highly intellectual exercise. My suggestions will encourage competition. I don’t think that you need to say anything.

Yes, you can do these things with an Arduino-based robot. But I believe they will learn more using ROS.

One of the most important things is that you understand ROS and the algorithms for your projects. I will be installing

…Linux on a machine tomorrow so that I can start learning ROS in simulation soon. I have books and the web, but I learn best when I can write code!

Thanks everyone for this thread, I learned a lot. I will continue providing small updates from time to time on my progress and experience in another topic here.