This is the third post in our TurtleBot tutorial series. Check back every week for new posts.
This is it. It's here. My TurtleBot 2 has arrived. It's in a giant box that says CLEARPATH ROBOTICS on one side and TURTLEBOT on the other and I'm absolutely terrified. What if I can't get it to work, or worse, what if it doesn't like me?
Either way, this is the true beginning of our TurtleBot tutorials. This is where it all starts. Right now, with this giant box.
Before we crack into this, let's just go over what we're expecting: Clearpath, a robotics company based in Kitchener, Ontario, Canada, has sent us a pre-assembled and tested TurtleBot 2, so we're not going to have to put anything together. This model is sold by Clearpath for $1,600; other suppliers, including I Heart Engineering and Robotnik, also offer fully-assembled TurtleBots. You can also buy TurtleBot parts and assemble the robot yourself (saving a little bit of money) or acquire your own parts and build a TurtleBot clone from scratch based on the robot's open specs (saving even more money). But part of the appeal of having an existing hardware platform is that you don't have to spend an impractical amount of time and effort getting it to simply function. And getting it up and running faster means getting it to do fun new stuff faster. So our goal here is to be able to pull this guy out of the box, turn it on, and get it to do something.
Or that's the idea, anyway. Remember, I'm coming at this from just about zero, so if there's anything unexpected, it had better be a cinch to solve, or else I'm in serious trouble.
Wow. That's a slick packing job.
And that's a slick robot, too. And thankfully, it does look nicely assembled for us.
As Melonee mentioned in our interview, TurtleBot is super rugged, and you can lift it right out by grabbing onto any of the structural components. You don't want to bash it against anything, but you don't need to be especially gentle, either.
My TurtleBot came in all black, with some white stencils on top plates: logos of TurtleBot, Clearpath Robotics, Willow Garage, and the Open Source Robotics Foundation. I think it looks pretty cool.
Here's a close-up of the Kobuki base, which is what makes the TurtleBot 2, you know, all 2-y. Hmm, looking a little bit empty down there, buddy. You need a brain, don't you?
Let's see what's in those other two boxes that were in the top and bottom of the big box. I'm guessing one of them contains a netbook.
Inside Box #1 is an Asus EEE PC Flare netbook in handsome black. There's a sticker that says it's got Windows 7 on it, but I'm hoping that's a lie. Also included is a charger and manual; I'll check on the exact specs, but the manual says it's a 1025/R052 series, whatever that means. On to Box #2!
Okay, Box #2 has some cabling, some screws and allen wrenches and stuff, a power brick, a Clearpath USB key, and a flyer about the Kobuki base. Hmm. I was really hoping for some sort of friendly pamphlet like "how to set up your TurtleBot," but I guess I'll just plug that USB key into my desktop and hope for the best.
Drat. The USB key is for installing Ubuntu, which is a user-friendly Linux-based operating system. Let's check the Clearpath TurtleBot website. Well, the site says that the TurtleBot is "fully assembled and tested," so that's good, but as far as I'm concerned this counts as partially unassembled, since I'm having to figure out how to put it all together. There doesn't seem to be a FAQ. Maybe on the TurtleBot website? Nope. How about the TurtleBot ROS Wiki website? Looks like there are software tutorials, but not the sort of simple hardware tutorials that we need, and we're not ready for the software yet. I guess it's time to start messing around a little bit with these cables and see if everything fits together in a logical way.
Alright, one of the cables is labeled Xbox, and there's also a cable coming out of the back of the Kinect, so let's see if we can get that hooked up.
Success! The other end has a USB male adapter, which I assume goes into the netbook, and a power adapter, which plugs into the base, but it sort of looks like there are two places it could fit: a 12-V 1.5-A socket and a 5-V 1-A socket. A little piece of paper that came in one of the boxes that has info on how to use the Kinect says that the input is 12-V 1.1-A, so I assume it goes into the 12-V plug. The connector is very small, and it looks like it would be very easy to put it in upside-down, but the shape of the plug means it only really fits one way. Look carefully at the plug and the socket, and you'll see which way it's meant to go in.
Woohoo! Okay, now we've got a USB cable with a square-ish connector, which thankfully can only go in one way in one place, and is apparently to connect the computer to the base.
The remaining cables are a power cable for the laptop, and what I'm assuming is a power brick for the base itself. I kinda thought that the laptop was supposed to charge through the base (probably using that 19-V 2-A socket in the above picture), but I don't have a dock yet, and maybe that's a dock-only feature. Anyway, let's see what happens when I plug these puppies in.
Plugging in the laptop gave me a green light on the laptop, so that's good. Plugging in the base gave me zilch. There's a power switch on the base, maybe it needs to be turned on to charge?
Whoa. Flipping the switch caused the base to sing a little tune, and the status light is now blinking green. IT'S ALIVE! Okay, the Kobuki handout thingy says that that's the battery status light, but what does blinking green tell me? The handout, which is called a "Quick Guide," doesn't contain much in the way of actual guidance, but it does contain a few links, one of which says "Documentation." Let's see if it's better than the documentation that we've gotten so far.
Buried in the middle of this PDF Online User Guide on the Kobuki website is this handy chart:
- Status LED: Indicates Kobuki’s status
- Green: High battery voltage level
- Orange: Low battery voltage level (please charge soon)
- Green blinking: Battery charging
So green and blinking means charging. If I unplug the charger and it stays green, it's good. If it turns orange, it needs to charge. Good to know. So as of right now, I have a happily charging, mostly charged Kobuki base. TIME TO GET CRAZY!
Hopefully, it doesn't matter which USB connector goes where. Everything is now plugged in, the base is turned on (although I'm unplugging it just in case it won't connect when charging or something), so let's fire up the laptop.
Ubuntu load screen! That's a good sign. I was worried it might try to load Windows or something.
Uh oh, this is not a good sign:
Password? Um, let's hope it's blank.
Drat, it's not blank. Well, how about "password?" Nope. It's not "admin," either. The only other thing I guess it might be is "turtlebot." Phew, that one works. But, geez. This is why we need a big friendly "How To Start Your TurtleBot" guide, people!
As the netbook loads up the Ubuntu desktop, the Kobuki base sings a song, which I assume means that the laptop and the base are talking to each other. And look at that, there's a big fat "Get started!" icon on the desktop. Honesty, I could have used that a long time ago, but let's push it.
Note that the Startup Guide files are stored locally, so you don't need a network connection or anything, which is good, because I don't immediately know how to do it on Linux, although it's probably easy. Actually, the first thing that this guide wants me to do is network setup.
Hmm. I don't think I want to do that yet. I'm pretty sure that TurtleBot is supposed to be able to follow people around straight out of the box, which shouldn't involve network setup or anything. Getting the TurtleBot up and running immediately is supposed to be part of the appeal, and I think for a complete unboxing experience, I should be able to make that happen. Obviously, it would be awesome if there was an icon I could click on, and just get the robot to start following me around, but it looks like I'll have to do this the hard way.
The Startup Guide does include a link to the TurtleBot People Following demo, but it's on the ROS wiki, not locally, so I'll open the link on my desktop. Happily, the ROS Wiki seems like a friendly and well-organized place. Unhappily, it assumes that I know something about Linux and have set up networking and ssh and all that stuff.
However, it does include the following command under a big "Start Demo" header:
roslaunch turtlebot_follower follower.launch
Now, I know basically nothing about Linux or Ubuntu, but I do know that commands like this are entered directly into a terminal window, which is kinda like a command line in Windows. So, I'm hoping that if I type that command into a terminal, my TurtleBot will start following me. Now all I have to do is find how to get to a terminal window in Ubuntu, and a quick Google search reveals that all that takes is a Control + Alt + T. A terminal window opens. It's purple, and says:
Let's type in that command and hit enter and see what happens. Hold your breath!
turtlebot@turtlebot:~$ roslaunch turtlebot_follower follower.launch
IT WORKED!!! :D
Sorry for the lousy video, I was up kind of late, heh. And TurtleBot evidently doesn't follow well in small spaces, like right next to my bed. As the wiki page states:
The follower demo will cause the TurtleBot to look for objects in a window in front of it. And it will seek to keep the centroid of the observed objects directly in front of it and a fixed distance away. If the centroid of the object is too far away it will drive forward, too close backward, and if offset to the side it will turn toward the centroid.
It works best in open spaces when it just has one single person to deal with, and it really does quite a good job. It's fast, and if it gets confused and runs into you accidentally, it'll drive halfway up your foot. Oh, and it turns out that stopping the demo involves pushing Control + C, although you can also just close the terminal window.
Having successfully gotten my TurtleBot to follow me around out of the box, I hereby declare a win. Honestly, I'm wildly excited that I got this robot working. If I didn't have to stop and write and take pictures all the time, it probably would have taken me under an hour.
That said, there really should be better documentation here. I hope that this unboxing provides some good tips, but going forward, it would be great if Clearpath and the other manufacturers could put together a piece of paper or a website or something that says what gets plugged in where, what the password to the robot is, and how to open a terminal in Ubuntu and run a command. Basics like that for those of us who don't have the right background for this but want to make it happen anyway.
This may seem like really, really obvious stuff for a lot of you, but remember that part of the point of TurtleBot is to let people with minimal experience rapidly get started with serious robotics. There are some great online TurtleBot tutorials (and we'll get into them later), but the assumption is still that the user has a basic foundation in Linux, which many people (like me) find intimidating.
With that in mind, the next thing we're going to tackle is how to get Ubuntu and ROS working on your desktop, a process that is probably easier than you think it is.
In the mean time, is there anything that we missed? Got any questions? Let us know in the comment section below, and we'll see what we can do!
[ TurtleBot ]
Special thanks to Clearpath Robotics and the Open Source Robotics Foundation for lending us a TurtleBot for these tutorials.