21 October 2012

Introducing TurtleBot: My First (legit) Mobile Robot!




You caught a wild TurtleBot! Would you like to give your TurtleBot a nickname?

TurtleBot has been added to the list of things I should blog about!

The Willow Garage Turtlebot is an open-hardware, low-cost, mobile personal robot platform that runs on open-source software. It consists of an iRobot Create, Aluminum standoffs and lasercut platforms, a Microsoft Kinect, a circuit board containing a Kinect power regulator and a single-axis gyroscope sensor, and an onboard laptop to interface with everything and bus data to a separate offboard workstation using Willow Garage's open-source Robot Operation System software (universally known as ROS).

Check out this overview of the TurtleBot, which just skims the surface of its potential:

Thanks to the ROS community's strong efforts to make difficult low-level problems such as motor control, computer vision, navigation, mapping, etc easily implementable, DIY roboticists, hackers, and even university researchers can very quickly develop high-level solutions to high-level problems like getting you a beer. The software base thus allows you to stand on their shoulders to achieve your goals. 

The release of the Microsoft Kinect, and the reverse-engineering of its protocol, marked a giant leap forward for DIY/low cost robotics everywhere. Now, a lab could own five Kinect-enabled robots for the price of one with a LIDAR. Anyone could just purchase themselves a Kinect and develop amazing software utilizing its 3D sensing. The TurtleBot is the manifestation of this Kinect revolution, offering a standard and robust platform for professional-quality Kinect-powered mobile robotics.

The iRobot Create base contains the wheels, drivetrain, drive electronics, battery, a wide variety of bump/distance/cliff/encoder sensors, and a parallel port for I/O, in a well-engineered $200.00 package. Essentially, a Roomba sans vacuum cleaner. 

Mounted on this base with aluminum standoffs are four platforms made of lasercut MDF for mounting or storing various "required" and additional hardware such as an onboard laptop, a Microsoft Kinect, or an optional robotic arm or something else on top. 

Or this Turtlebot's nifty beer tote I found on Google Images.
Like most projects I am going to spend a good chunk of money on, I spent days whether or not I should buy the thing. Then irresponsibly and in a sleep deprived state, I bought the $219.00 iCreate+Advanced Battery+Quick Charger package. Soon enough...

...I had it in hand! 
The product is very well constructed, from a design standpoint. Plenty of sturdy injection-molded parts held together with reputable hardware: I don't feel afraid to rough the 'bot around. In fact, when I ran the basic "Explore (vacuum) This Room" demo, it would drive right over cables and other objects (rather quickly, I might add), or just shove them aside altogether. Its large front-mounted dual-bump sensors hit obstacles quite forcefully, but the robot kept on going. 

There are three command buttons at the top of the robot, each with its own indicator light. For mounting hardware, iRobot put four 6-32 tapped holes on the top surface, allowing one to easily attach standoffs or screw peripherals to the Create. Taking a further look I found a DIN port for Serial/USB control (with the included cable adapter), a charge port, and the Cargo Bay Connector, which allows you to access various internal Create I/Os and drivers, Battery power and ground to convert as you please, regulated 5V power for peripherals, and other paraphernalia. 

When you pick up the robot while it's running, it stops its drive actuators and lets out a cute little "Uh Oh!" sound (^_^ SOO CUTE!!!). This is handy for when your robot is about to do something stupid like harass other MITERS denizens or unexpectedly drive out of MITERS and start exploring the hallway -_-. The killswitch occurs likely due to switches that exist on the wheel mounts, which open when the robot is lifted off the ground. Here you can see the spring-mounted caster and drive wheels (which I have yet to determine the power characteristics of). Not shown is another smaller caster wheel mounted opposite the front, which enables the Create to take on a larger load. When you set the Create down, its weight is enough to depress all three wheels. 

It's useful to note here that the iCreate has built in cliff sensors, which can sense the lack of floor right in front of it if it drives toward, say, stairs. Or the end of a table, like I had it run. I left the robot driving on an empty table for a few minutes, without robot-injury. I'm sure my poor robot didn't appreciate being so isolated, though :c. 

I'm not building an army, I swear...
Now that I actually had a $219.00 robot to care for in hand, it was time to give it some standoffs and platforms. I could have ordered the parts online pre-built. For $300.00 dollars. Hell, I could have ordered the entire pre-assembled Turtlebot, complete with iCreate, Kinect, Asus Laptop, aluminum standoffs, lasercut MDF, and Power/sensor board for $1,499.00 if I were some top-notch robotics research lab at a leading university with infinite dollars. 

Needless to say, I opted for the DIY approach. BECAUSE WTF 300 DOLLARS FOR FREAKING ALUMINUM STANDOFFS AND LASERCUT WOOD?!?  I enjoy the prospect of manufacturing what I can out of inexpensive/free raw materials. Luckily, the TurtleBot platform is open-hardware, and you can get more engineering drawings, circuit diagrams, design notes and CAD models than you can shake a KUKA manipulator at. I determined the size of each standoff and how I could make an equivalent one for cheaper. I also exported .DXF files of the platforms for future lasercutter use. 

I ordered a 6-foot long aluminum rod for $2.00 off Amazon, with free 2-day shipping. I also found a ton of .25" MDF lying around that a lab was getting rid of. I loaded up the .DXFs and fired up the lasercutter at CSAIL machine shop where my friend worked and the incredibly nice shopkeeper let me work. I had used the shop before to waterjet parts for Cruscooter and make the block funnel for my team's 6.141 robot

Rawr Lazar!

And I had the platforms within minutes! Now it was time to put them together with standoffs.

14 standoffs in total. and each of them needed tapped holes on each side for mounting. I grabbed my trusty Mountain Dew and got to work drilling them out...

One hole down, 27 to go! :D
After drilling them out, I spent hours straight hand-tapping holes at MITERS, and watched Rent and Iron Man in the process. I kept telling myself: You want to be doing this and only spend $2 on hardware. You want to be doing this and only spend $2... In order to interface the standoffs with each other, I sawed the caps off my surplus of 6-32 screws and threaded everything together.

Now all I had to do was get a Kinect and a Power/Sensor board and I had myself a full Turtlebot! The issue with the powersensorboard is the recommended sensor breakout board is retired on Sparkfun, and the only package available for the actual gyro sensor IC is one which is impossible to solder traditionally. As a result, I could not etch my own board to spec as I planned, and had to purchase the premade $70.00-ish board. Oh well, at least I didn't have to debug it and drive myself insane like I usually do with my etched boards. 

I also purchased a Kinect for $50.00 on eBay  bringing the project's total cost to roughly $342.00. Not bad, considering a TurtleBot without the laptop from Clearpath Robotics will run you FREAKING $1,049.00. An uneducated consumer is their best customer. Or a filthy rich one. 

After mounting the Kinect and powersensorboard...


Now, it's time to code. Which is a lot harder than it sounds because it involves installing ROS and getting it working on both the host laptop and the robot. 

But I'll save that for later.


  1. Hello Daniel, Great job,I'm thinking to make one for a project, Can you send me the solidwork's model? it will be very helpful. thank you.

  2. Hi Carlos, I highly recommend making one. I unfortunately have not used it much since assembling it due to other projects and my studies/schoolwork. There is a Turtlebot 2 out, the details for which can be found on turtlebot.com. For the Solidworks model for this project, I used this official one from Willow for the Turtlebot 1: http://pr.willowgarage.com/downloads/turtlebot/TurtleBot%20Hardware-2011-06-22.zip

  3. Hi......Very happy to see your project.Can you please tell me about "the premade $70.00-ish board" you mentioned for the kinect power and gyro board. Please tell me any link where I can find it.

  4. It seems the production version of the power board is no longer being sold by iheartengineering.com due to the depreciation of the Turtlebot in favor of the newer Turtlebot 2 platform. This link, however, shows how you can make a power board of your own: http://www.iheartrobotics.com/2011/07/byot-turtlebot-power-and-sensor-board.html
    You can also probably find one on ebay.

  5. hi,
    would you give me info about the kinect standoff (screw, measure, threaded rod diameter...)