Learn How to Program a TurtleBot and Use ROS
This is the first post in our TurtleBot tutorial series. Check back every week for new posts.
Can a robotics journalist with a degree in geology program a real robot to do cool new stuff? We're going to find out, with a new series of articles featuring the TurtleBot 2.
Hi there. My name is Evan, and I write about robots for IEEE Spectrum. I've written thousands of robot-related articles since way back in 2007, so while it may be true that I know rather a lot about robots, I'm certainly not what you’d call a roboticist, in that I have essentially no idea how to build or program an actual robot. I have a degree in astrogeology, of all things. I've always felt bad about that: here I am, writing about all of this robot stuff, with a background in Martian impact cratering. I mean, how can I possibly get other robot people to take me seriously when I don’t know the first thing about making a robot, right?
So, I'm going to start doing something about that. Clearpath Robotics and the Open Source Robotics Foundation have very generously agreed to lend me a shiny new TurtleBot 2, which I'll be using to write a series of tutorials based on the experiences that I have with it. Seeing as I’m an astrogeologist, my job will be to start from scratch, putting together articles and tutorials that absolutely anyone will be able to follow along with to see what it's like getting a TurtleBot up and running and doing fun things, even if you have no experience with robots or Linux or ROS or any of that (since I pretty much don't).
Let me give you just a little bit more detail on my background, so that you know where I’m starting from on all this. Firstly, I’m a Windows user. I’ll be writing these tutorials on a relatively new desktop PC running Windows 7. For the robot, I'll be using the Robot Operating System (ROS), which runs on Linux, so getting all that to work is going to be a challenge all by itself. I do know how to write computer programs, but only in Visual Basic (!), which isn't going to be particularly useful, except that it might (I’m hoping) make it a little bit easier for me to understand the syntax and structure of other programming languages. So I do have a little bit going for me (I think), but even if you don’t, nothing in here should be beyond you if you have a willingness to do a little bit of learning.
Now, why a TurtleBot and ROS and not some other platform and operating system? There are a couple reasons. You can find all kinds of robotics kits for beginners that are easy to build and program, but you probably don’t need our help with those. We wanted to tackle something not-easy that might be a little bit intimidating for most people (and for the record, I’m certainly intimidated). TurtleBot is a serious robot (it has a mobile base with sensors, a Microsoft Kinect, and a computer), but since the hardware is provided for you, it's all about the software, which is the whole point: we're not going to be building a robot, we're going to be teaching a robot, and teaching ourselves. The vid below, which we posted last year when the TurtleBot 2 was unveiled, gives an overview of the platform:
Also, we're interested in getting some firsthand experience with ROS. We write about ROS a lot, because many (if not most) of the newest and coolest robots are running it. The appeal is, in part, that we can use ROS to take advantage of a huge community of roboticists doing lots of clever things on all kinds of robots, and let their expertise help us make our TurtleBot smarter without needing some kind of crazy Ph.D in robotics ourselves.
What's going to happen now? Over the next weeks and months, we're going to get our new TurtleBot up and running and doing cool stuff. We'll figure out Linux and ROS. We'll get it to follow us around and map rooms. We'll teach it to do new things that nobody has ever gotten a TurtleBot to do before, and maybe even slap some fun accessories on there. To be honest, I'm not exactly sure where this is going, but that's part of the fun: we're going to just follow our TurtleBot wherever it wants to take us. And if you have ideas or questions, let us know in the comments.
[ TurtleBot ]