Decided to start a little project here, with the goal of creating an inexpensive vision base robot using the NVIDIA Jetson TK1 and the iRobot Create 2 base. The first step is attaching a base to the Create 2 Deco Cover. Looky here:
Back in the 60’s there was a most wonderful cartoon series called ‘Gigantor’. The series is set in the year 2000, and follows the exploits of a 12 year old boy named Jimmie Sparks who controls Gigantor, a huge flying robot, with a remote control. Watch the opening credits to get an idea:
Even though Jimmy wears a plaid jacket and tie (like every 12 year old boy did back then), he seemed cool. The show got great reviews:
In January 1966, Variety gave it a particularly scathing review, calling it a “loud, violent, tasteless and cheerless cartoon.” which was “strictly in the retarded babysitter class.”
What more could any youngster want?
Fast forward through the next 50 years. Sure there have been other robots since then, but most of them are poseurs. R2-D2 and C3PO come to mind. Iron Giant seems totally absurd in comparison to Gigantor. I do think the Terminator robots have some street cred. I found Big Hero 6 very scary.
It’s been one of the regrets in life that my living situation does not allow for a 50 foot tall, rocket powered, remote controlled robot. I would even don a plaid jacket and tie to pilot one.
Since building a real Gigantor is off the table, what is a good way to get into robotics? There are several paths, Lego Mindstorms comes to mind as probably the one of the best ways to get started. Looking at some of the projects people have done it is difficult to imagine outgrowing Mindstorm, but there may come a time when you want to get into more substantial projects which require a more elemental understanding of robotics.
That’s where things get more difficult. There are all sorts of robots and kits which may be purchased, a lot of them using Arduino micro controllers. There’s also the almost parallel world of remote controlled (RC) vehicles. As computing power has come down in size, power requirements, and price there’s this cross over between RC vehicles and robots. For example, almost all of the quad copter manufacturers call their drones robots to one degree or another. Things get a little sticky because the term robot is now such a broad term that it applies to a small child’s toy, all the way up to multi-million factory machines the size of a small house.
As robotics has advanced over the last 10 years, there is one common thread. The Robot Operating System (ROS) is the de facto standard for controlling robots. There are many similar types of software systems used by robotic manufacturers, but because ROS is open source and in use by many manufacturers and researchers around the world, that is the place to start down the path to learning “real” robotics.
Another common thread is vision in robotics. ROS includes the Open Computer Vision (OpenCV) library, which is another open source project which is mainly aimed towards real time computer vision.
In 2011 Willow Garage (the original creators of ROS, now defunct) started a project called TurtleBot. TurtleBot is described as:
TurtleBot is a low-cost, personal robot kit with open-source software. With TurtleBot, you’ll be able to build a robot that can drive around your house, see in 3D, and have enough horsepower to create exciting applications.
The original TurtleBot used a product from iRobot called Create which was based on their robotic vacuum cleaner of the time. Mounted to the Create was a three tiered platform which held a notebook and a Microsoft Kinect 3D RGBD (depth and color) camera. Both the original Create and Kinect have since been discontinued.
The Open Source Robotics Foundation, who are now the keepers of ROS, worked with Yujin Robot to come up with a replacement for the Create base. The Yujin base is called a Kobuki. You can buy a TurtleBot II with the new base, a laptop, and a Kinect camera for around $2100 USD. The base and platforms, without the laptop and Kinect is available in the US for around $1000 USD. If you want a prebuilt robot, this is a good entry point at a decent price.
The advantage of this approach is that you don’t have to know the entire world (some people refer to this as a stack) about the robot to get started. You can take things apart to see how they work and interoperate with the help of the modularity of ROS. It is not an easy task to bring all the bits and pieces, mechanical, electrical, computer, and software, and have them all play together nicely. This approach takes care of the heavy lifting to get started, but leaves enough room (and breadboarding area) to start exploring.
The Chosen Path
This brings us to why we’re here. The TurtleBot is a great idea, and well executed. Let’s say that you are willing to get your hands a little dirty and were willing to invest some sweat equity to get up to speed in learning ROS in a more hands on manner.
iRobot has just introduced the Create 2 which is similar in concept to the original iRobot Create. The Create 2 is a refurbished Roomba 650 vacuum bot which sells for about $200 USD. Instead of using a laptop, we can use a NVIDIA Jetson TK1 as the brains of our robot. This should save us a few hundred dollars. We will still need to build a mechanical platform and get a RGBD camera to replicate the TurtleBot setup, but the TurtleBot is open source so all of the mechanical drawings are available which we can use as a guide. The idea is to build it from scratch, save a few hundred dollars doing so, and learn more about ROS and at a faster pace than we normally could.
Obviously you could still use the Kobuki base with the Jetson TK1 and get similar results. Your choice.
The Create 2, just from a cost/feature view is a great deal. Plus it already has it’s own little low level operating system with an API that ROS can talk with to control things like motors and read sensors. As the series goes on, we’ll talk about more about specific features. Also, if you like the environment, buying the Create 2 keeps perfectly good electronics and plastic out of the landfills.
Step one is to remove the cover from the Create 2, and mount a platform on top. In the video at the very beginning of this article, we show how that’s done. The Create 2 has marked areas to drill holes for access to the programming port and places to put captive nuts for mounting standoffs. The platform is then mounted on top of the standoffs.
Parts List Used in the Video:
Vendor: McMaster-Carr (http://www.mcmaster.com)
94674A490 18-8 Stainless Steel Flush-Mount Captive Nut, 4-40 Thread Size, .062″ min Panel Thick
91075A650 (qty 6) 18-8 Stainless Steel Male-Female Threaded Hex Standoff, 1/4″ Hex, 2″ Length
90910A716 Low-Profile Button Head Torx Machine Screw, 18-8 Stainless Steel, 4-40 Thread, 3/8″ Length
Vendor: Amazon (http://www.amazon.com)
I’m experimenting with this as we go along. There are several ways to do the platforms. You can use plywood, sheet metal, plastic or whatever you’re comfortable with. I chose plastic mainly because down the road I want to be able to add 3D printed parts to the platforms. Using ABS in particular means that solvent welding using acetone is an option if the 3D printed part is printed in ABS. The thinking here is that this will provide a way to add a much more customized design somewhere down the road.
Instructions for the original Create 2 Deco Cover Modification are here. Watch the video so you can learn what to expect, or at least some of the pitfalls to avoid.
Go to Part II: Build the Platforms