As the folks behind IEEE Spectrum’s robotics blog, Automaton, we were thrilled when Robotis sent us a review unit of its TurtleBot3. This little robot is designed to provide a platform for people looking to get their feet wet with the Robot Operating System, or ROS. ROS is popular with academic researchers and industrial developers, but its complexity can be daunting.
The TurtleBot3’s predecessor, the netbook-based TurtleBot2, is still a totally decent ROS platform. But the TurtleBot3 takes advantage of a new generation of low-cost computing and sensing hardware: The platform stuffs a full ROS installation into the absolute smallest and cheapest mobile robot that can support it, while maintaining capability and convenience.
Robotis actually sent us two units, as the TurtleBot3 comes in two flavors, dubbed the Burger and the Waffle. The Waffle offers more advanced features, but it’s built around Intel’s Joule compute module, which now looks to be on Intel’s chopping block. So here we’ll be focusing on the US $549 Burger, which is built around the Raspberry Pi 3.
As noted above, ROS presents a tough learning curve. This is not the robot to buy if you just want some fun; this is the robot you buy if you are willing to put in the time and effort to learn ROS alongside advanced robotics and computer science concepts.
The Burger’s body is built from plastic plates, metal bars, wheels, screws, nuts, and rivets. It comes with 360-degree planar lidar, allowing it to perform simultaneous localization and mapping (SLAM) and autonomous navigation. The onboard Pi is connected to a control board that’s custom-made by Robotis, called OpenCR. OpenCR is powered by an ARM Cortex-M7, to which the servos and battery are connected in turn. (This board can be programmed with the Arduino software development environment to provide additional behaviors.)
The Burger arrived in a box so small we weren’t sure how a robot could have fit into it. In addition to the components it comes with a nice printed manual and a power brick. It took us an hour or two to build the robot, and construction was mostly straightforward.
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 Pi. Some things didn’t work at all; it’s impossible to attach the USB cable to the lidar (if you’re following the instructions) because of the way the connectors on the USB cable were oriented. Also, if you follow the instructions, the HDMI port on the Pi is blocked once the robot is assembled. All of these issues are solvable if you creatively reposition components, and hopefully Robotis will update its manual.
Now it was time to fire it up. Robotis provides extensive online documentation on how to get the TurtleBot3 up and running. And there’s a lot to do. While the OpenCR controller board comes preloaded with the software it needs, the Pi arrives with a blank 8-gigabyte microSD card, on which you’ll need to install both Ubuntu and ROS. You’ll also need a second computer with Ubuntu and ROS on it (a “remote PC”), which runs ROS Master and talks to the TurtleBot3 over Wi-Fi.
There are special versions of Ubuntu designed to run on single-board computers like the Pi. Robotis relies on one called Ubuntu Mate, and the company provides instructions on how to load it onto the microSD card using another computer running Ubuntu. These instructions did not work for us, and no amount of googling provided a solution. Fortunately, Robotis included instructions for an alternate method using Windows, which did work. Once that’s done, you pop the microSD card into the Pi and plug in a keyboard, a mouse, and a monitor (hence the importance of access to the HDMI port). Once you boot up the Pi under Ubuntu and configure your Wi-Fi connection, you can install ROS.
Installing ROS took a few hours, following the detailed instructions. The idea is that after everything is all set up on the Pi, you can disconnect the monitor, keyboard, and mouse and just connect to the TurtleBot3 remotely.
We had a bit of a hiccup here. For some reason, SSH—the ubiquitous protocol for remote logins—wasn’t working on either the Burger or the remote PC. In the end we had to reinstall and reconfigure the SSH software on both systems. We had to go through further hoops to ensure SSH would start up automatically every time the Pi was rebooted. It wasn’t a trivial process, especially for anyone not used to Ubuntu.
With SSH fixed, we were able to get the remote PC to talk to our Burger. Then we went through the ROS “bringup” procedure, which allows the software to take control of the robot. 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, and you can install other applications, such as a follower, a program that makes the robot tag along behind someone walking in front of it.
So far, the Burger is proving to be even better than we expected. It is compact, nimble, and runs ROS like a champ (although it remains to be seen how much of a constraint the Pi will be for more demanding applications).
Fortunately, the modularity of the TurtleBot3 means that you can upgrade it easily when new hardware becomes available. You can also modify the body of the robot, thanks to the snap-together plates. And we’re looking forward to the day when Robotis makes more parts available, like arms and grippers. In particular, we can’t wait for rubber treads that’ll let us turn our TurtleBot into a mini tank.
A version of this article appears in our Automaton blog.