The March 2024 issue of IEEE Spectrum is here!

Close bar

Hands-on With TurtleBot 3, a Powerful Little Robot for Learning ROS

We take an in-depth look at the new TurtleBot 3 Burger and Waffle from Robotis

10 min read
TurtleBot 3, an open-source robot that runs ROS
The new TurtleBot 3 Waffle from Robotis: a powerful, modular robot that runs ROS.
Photo: Erico Guizzo/IEEE Spectrum

South Korean robotics company Robotis and the Open Source Robotics Foundation (OSRF) announced the TurtleBot 3 at ROSCon last year in Seoul. We got to see a wide variety of prototypes, but Robotis was still in the middle of figuring out exactly what TurtleBot 3 was going to look like and what hardware it would include. The company told us at the time that they wanted the robot to be as open, modular, and customizable as possible, and we’ve been waiting excitedly to see what they came up with.

Today, Robotis is finally ready to share the brand-new TurtleBot 3 with the world. And, surprise, there are actually two TurtleBot 3 models: Burger and Waffle, so named because that’s kind of what each of them looks like, if you’re willing to stretch your imagination a bit:

TurtleBot 3 models: TurtleBot 3 Burger and TurtleBot 3 WaffleThe new TurtleBot 3 is available in two different models: Burger (left) is the basic model, while Waffle is bigger and includes some premium features.Image: Robotis

A few weeks ago, Robotis shipped us test units of the two models, and after putting them together and playing a bit with them, we’ve got an in-depth review for you along with all the info about price and availability.

TurtleBot 3: Who Is It for?

The now five-year-old TurtleBot 2 is (still) a totally decent ROS, or Robot Operating System, platform, and TurtleBot 3 isn’t really designed to compete with it. Rather, TurtleBot 3 takes advantage of a new generation of low-cost computing and sensing hardware to stuff a full ROS install into the absolute smallest and cheapest mobile robot as possible, while sacrificing a minimum of capability and convenience.

So the first thing to note about the TurtleBot 3 is that its software, as with all of ROS in general, presents a steep learning curve, especially for people who are just getting started in robotics. In fact, this may not be a robot you want to buy if you just want a robot to do fun things with; this is a robot you want to buy if you want to learn ROS as well as advanced robotics and computer science concepts, and are willing to put in the time and effort.

We suspect that more and more people will want to do just that, given the growing popularity of ROS among researchers, startups, and large companies. Current and future roboticists need to know ROS, and in that sense, TurtleBot 3 is a promising platform for helping lower the barrier to entry for ROS, which was indeed one of the goals of the original TurtleBot inventors.

Two Flavors: Burger and Waffle

Both TurtleBot 3 models, Burger and Waffle, use single-board computers (instead of netbooks, used in previous TurtleBot versions) to keep costs down, and both run the latest versions of Ubuntu Linux (16.04.2 LTS) and ROS (Kinetic). The two models come with the same 360-degree planar lidar, allowing them to do SLAM and autonomous navigation out of the box. And they also share almost all of their structural components—plastic plates, metal bars, wheels, screws, nuts, and rivets.

The difference between the two models is that the Waffle is bigger and includes substantially better computing (an Intel Joule 570x instead of a Raspberry Pi 3 Model B), more sensing (an Intel RealSense 3D sensor in addition to the lidar), and more powerful Dynamixel servos to drive the wheels and handle more payload.

Here’s a breakdown of the differences:

TurtleBot 3 BurgerThe TurtleBot 3 Burger uses a Raspberry Pi 3 to run ROS.Image: Robotis

TurtleBot 3 WaffleThe TurtleBot 3 Waffle uses an Intel Joule to run ROS (instead of a Raspberry Pi), comes equipped with an Intel RealSense 3D camera, and has more powerful servos.Image: Robotis

In both models, the single-board computer interfaces with a control board, powered by an ARM Cortex-M7, to which the servos and battery are connected. This board, developed by Robotis and called OpenCR, is programmable with the Arduino software development environment. So in addition to using ROS to control the robot, you can also program additional behaviors using Arduino’s C/C++ functions and libraries.

What’s more, the entire body of the TurtleBot 3 is open source, meaning that you can 3D-print most of it yourself, or make changes to the design (see CAD data for Burger and Waffle) to create completely new parts.

Price and Availability

The official launch of the TurtleBot 3 will be at ICRA in Singapore later this month, and we hear that there might be a huge party involved. But if you are an academic user, good news: You can pre-order the TurtleBot 3 starting today at a discounted price; the Burger is available for US $499, and the Waffle is $1599 (see prices in euros and yen here). Pre-orders end on May 29th, and after that the two TurtleBot 3 models will be available to all users at a suggested retail price of $549 and $1799, respectively. Shipping starts on June 5th.

Now let’s take a look at the hardware and software of each model.

Trying the Burger

Burger arrived in a box so small we weren’t sure that a robot could fit into it. The box contained a nice big printed manual, a power brick, and four even smaller boxes, each one holding a subset of the robot’s components. Everything was very well organized and neatly packaged, although none of the bags of slightly different tiny screws had labels on them, which was an annoyance. However, the thoughtful inclusion of a rather nice magnetic screwdriver (the only tool you’ll need) helped to make up for it a little bit.

The build process took us an hour or two and was mostly straightforward. We followed the illustrations and basic written instructions in the manual and built up Burger layer by layer (Robotis calls them floors). 

TurtleBot 3 Burger with battery, controller, and computer boardsThe Burger’s first layer (left) consists of two Dynamixel XL430 servos, a ball caster underneath the plate, and the lithium-polymer battery secured with a velcro strap. The second layer (center) includes the OpenCR controller that drives the wheels and has a variety of digital and analog input/output pins, with lots of possibilities for expanding the platform. The third layer (right) has the Raspberry Pi, which we connected to the controller with a USB cable, and to the little lidar board with another.Photos: Evan Ackerman/IEEE Spectrum

We did run into some difficulties, though. Some instructions weren’t as clear as they could have been, like which pins to use to power the Raspberry Pi 3, and some things didn’t work at all, like attaching the provided USB cable to the lidar board because of the way the connectors on the USB cable were oriented. Also, if you follow the manual, the HDMI port on the Pi is blocked once the robot is all put together. All of these issues are solvable if you just creatively position components in a way that makes more sense, and hopefully Robotis will keep updating its manual based on feedback from early testers. The final step was plopping the lidar on top of the last layer, and our TurtleBot 3 Burger was assembled.

You can hold the TurtleBot 3 Burger on your palmThe TurtleBot 3 Burger is small enough to be held in one hand.Photo: Evan Ackerman/IEEE Spectrum

Now it was time to fire it up. Robotis put together extensive online documentation on how to get the TurtleBot 3 up and running. And there’s a lot to do. While the OpenCR controller board comes pre-loaded with the software it needs, the Raspberry Pi 3 arrives with a blank 8 GB microSD card, onto which you’ll need to install both Ubuntu and ROS (a 16 GB card would be more appropriate for this, in our opinion). This requires attaching a keyboard, mouse, and monitor to the Raspberry Pi 3 board itself, using the Pi’s USB and HDMI ports. (If you only have a laptop, you’re out of luck, and you’ll need to buy or borrow or steal more hardware.) You’ll also need a second computer with Ubuntu and ROS on it (a “remote PC”), which runs ROS Master and can talk directly to the TurtleBot 3 over Wi-Fi.

There are special versions of Ubuntu that have been designed to run on single-board computers like the Raspberry Pi 3. Robotis has you install one called Ubuntu MATE, and provides step by step instructions on how to install a disk image to the microSD card from another computer running Ubuntu. These instructions did not work for us, and no amount of Googling provided a solution to the errors we were getting, but fortunately, Robotis included an alternate method using Windows, which did. Once that’s done, you pop the microSD card into the Pi, plug in the keyboard, mouse, and monitor, and turn the board on. It boots into what looks like a mostly normal Ubuntu install, and after you’ve configured your Wi-Fi, you can now install ROS.

Fully installing ROS on the Pi took a few hours, and Robotis again provides detailed step-by-step instructions on how to do this. Tricky things like changing USB access permissions and network configurations are made easy with screenshots and commands that you can simply copy and paste into a terminal window. The idea is that after everything is all set up on the Pi, you can disconnect the monitor and keyboard and mouse, and from then on just connect to the TurtleBot 3 remotely from another computer.

TurtleBot 3 on top of TurtleBot 2The TurtleBot 3 Burger on top of a TurtleBot 2.Photo: Evan Ackerman/IEEE Spectrum

We had a bit of a hiccup here. For some reason, SSH wasn’t working on either the TurtleBot or the remote PC, and the solution was reinstalling SSH server on both systems and make sure that the correct port was open. It wasn’t necessarily a trivial process, especially to someone starting with Ubuntu from scratch. And to avoid having to connect the keyboard, mouse, and monitor every time, we also had to figure out how to get SSH to start automatically after the Pi boots up. When I say “figure out,” we should specify that we had help from an extraordinarily talented and very good-looking robotics professional. If you don’t have one of those on hand, there’s always Google or ROS Answers, but we’re hoping that Robotis will take care of this and other issues over the next month.

With SSH fixed, we were able to get the remote PC to talk to Burger, and went through the ROS bringup procedure. The lidar spun up, and we were able to successfully teleoperate the robot from the remote PC. Hooray! SLAM, mapping, and navigation have already been set up by Robotis, but they’re still working on more applications, like our personal favorite the Follower demo. By the time of the official launch, more cool stuff may be ready to go.

Hands-on With Waffle

Putting the TurtleBot 3 Waffle together was similar to what we did with the Burger: We built the robot layer by layer, with the difference that in this model the layers are wider. Also, there are more parts—including 194 screws!—so the total assembly took nearly twice as long, or about four hours.

TurtleBot 3 Waffle showing OpenCR controller and Intel Joule compute boardThe TurtleBot 3 Waffle is powered by an OpenCR controller (left) and an Intel Joule compute board.Photo: Erico Guizzo/IEEE Spectrum

Like in the Burger, the first Waffle layer holds the Dynamixel servos (a pair of XM430 units) and the battery (and there are two ball casters underneath instead of one). The middle layer is where things are really different: This section holds the Waffle’s two main boards, with the Intel Joule and the OpenCR controller each attached to four PCB supports. The two boards are connected to each other via a USB 3.0 hub, which also connects the Intel RealSense and the lidar, both of which we mounted on the top layer.

As we assembled the Waffle, we had to position some of the components and cables not exactly as shown in the manual, as we did with Burger. This was mostly due to the length of the USB cables and the location of the USB ports. But otherwise the process was simple and fun—that is, if you like tiny screws.

The Waffle software installation presented a challenge right away. Before you can install Ubuntu on the Joule, you need to update its BIOS, and to do that you must use a Windows machine. You see, we had a handful of Macs and Linux netbooks laying around but no Windows. So the first step was getting Windows 10 on one of the those old netbooks, a process that, as you can imagine, was slow and tedious, but in the end, success: We followed Intel’s instructions and updated Joule’s BIOS.

Next, we created a bootable USB drive with a Ubuntu 16.04 image for the Joule. We then plugged that USB drive on the Waffle, plus a keyboard, mouse, and monitor (using the Micro-HDMI port), and installing Ubuntu on the Joule was a breeze. The ROS install, based on the online documentation that Robotis put together, also proceeded without problems, and not long after we had the Waffle roaming around the room via teleoperation. We still haven’t had time to explore things like SLAM and autonomous navigation, but we did test the lidar and RealSense using RViz, a 3D visualization tool for ROS. 

TurtleBot 3 visualization using lidar and Intel RealSense 3D sensorScreencapture of ROS 3D visualization tool with TurtleBot 3 using lidar (red dots) and Intel RealSense (white dots) to detect obstacles in the environment.Image: Erico Guizzo/IEEE Spectrum

TurtleBot 3: Overall

So far, both the TurtleBot 3 Burger and Waffle models are proving to be even better than we expected. They are compact, nimble, and run ROS like champs without any compromises (although it remains to be seen how much of a constraint the Raspberry Pi 3 will be for more demanding applications).

Fortunately, the modularity of the TurtleBot 3 means that you can upgrade it easily when new hardware becomes available, as long as you’re willing to spend the extra money. You can also modify the body of the robot, thanks to the snap-together plates, which you can arrange in a variety of different configurations. And we’re looking forward to seeing how we can expand the robot to be even more versatile when Robotis makes more parts like arms and grippers available. In particular, we can’t wait for rubber treads that’ll let us turn our TurtleBots into mini tanks.

Now, in terms of software, if you’re trying to learn ROS using TurtleBot 3 on your own, you’ll do much better if you get involved with the ROS online community. Our guess, though, is that TurtleBot 3 is going to have the most impact in labs, classrooms, workshops, and hackathons, where new users will have some in-person support to help them explore the intricacies of Linux and ROS. For its part, Robotis says it will continue to develop new applications and add more tutorials to its online documentation. We look forward to seeing how the TurtleBot 3 community will grow, and if you’re already doing something cool with your robot, let us know.

[ TurtleBot 3 ]

A version of this post appears in the August 2017 print issue as “The TurtleBot3 Teacher.”

The Conversation (0)