Staying inside the lines

Building something to a budget (and there is always a budget) presents challenges and trade offs. When the budget is very low, as in the $50 Robot project, there is always the risk of cutting one two many corners. I am crossing the line into unacceptable quality a few times during the development process so that the quality is adequate in the final version without asking builders to spend a penny too much.

A good example is with the sensors for obstacle avoidance. For non-contact sensors the choices are basically infrared (IR) or ultrasonic. Both have their advantages and both have good quality, but more expensive products and cheaper, but possibly poorly performing products.

The good, the bad, and the ugly in IR sensors.
The good, the bad, and the ugly in IR sensors.

In the past (with a significantly larger budget) I have worked exclusively with the Sharp line of IR range finding sensors. They are very good, given the limits of what you can do with IR. They are very precise, they don’t give spurious readings. They have a narrow beam (which is not really that great for a robot obstacle avoidance sensor). At around $13 each they are really not that expensive. However they would definitely be a budget buster for this project. So I tried to go as cheap as possible. You can find 5v IR sensor modules on ebay for just over $1. I really wanted these to work. Really. But they are just a disaster. They kinda sorta work in a dark room but even then have to be manually calibrated every time they start up. In any sort of real conditions they are just ugly to work with. Don’t buy them. As a middle choice I tried something you can find labeled “KeyesIR” for around $4 each. The module is physically similar to the ugly sensors but it uses more sophisticated components. They are not that bad–they do a good job of rejecting spurious readings (such as from a sunny window). They might be satisfactory for short range stationary applications. But the performance is not quite good enough for obstacle detection on a mobile robot. On to ultrasonics…

The situation is better in the ultrasonic world. As in IR, there is a very high quality choice out there. I have a pile of Maxbotix ultrasonic sensors from previous projects. These things are amazing. They give precise distance measurements in a variety of convenient formats. You supply power and they spit out data. They have an ideal beam width for this project.

The good and the slightly less good but much cheaper ultrasonics
The good and the slightly less good, but much cheaper ultrasonics.

The only problem is that they start at $25 each. Not going to work. So for now I am where most cheap robot projects end up, the HC-SR04 ultrasonic sensor. These run $2 or less. They don’t have the sophistication, convenience or wider beam of the Maxbotix but they fit the budget and they have satisfactory performance.

So the initial sensor suite for the robot will probably be a SR04 in the center and a couple of contact switches with whiskers on either side. This has been a little bit of re-inventing the wheel as you see this set up a lot, but it didn’t hurt (or cost much) to see how cheap I could go before committing to something that will get the job done and still stay in budget.

Fail fast, learn fast

Figuring out how to best arrange all the components on a project like the $50 robot is a multistep process with a lot of mistakes to be made along the way. Even if you think you have the exact measurements of each component you will find that the actual examples you obtain will vary from their specs. So you might as well try to get the big mistakes out of the way as quickly and cheaply as possible.

This has certainly been the case with developing the chassis for the robot.

A pile of discarded chassis
A pile of discarded chassis

It’s hard to start when you don’t know exactly what the final components will be. Even more variables are introduced when trying to develop something that can be hand cut, done on a CNC machine, or 3D printed from the same master file. Inevitably there will be a lot of trial and error.

Two essential tools throughout the process are custom graph paper and a set of digital calipers. Online tools are available for creating and printing graph paper with the marking pattern that best suits the project you are working on.

Custom graph paper and digital calipers
Custom graph paper and digital calipers

The digital calipers measure parts very precisely and can even be used as a slide-rule like millimeter to inch converter. The calipers are widely available from around $15.

From a paper model with measurements you can hand cut something from wood or go directly to your 3D modeling program for printing or the CNC. At first I thought I would be making a perfectly round chassis (for better maneuverability) and could just pop blanks out of plywood with a large hole saw, so I started with a wooden cut out. However it soon became apparent that a more complex shape would be needed. Time for 3D modeling.

Before even building my first 3D printer I did a fairly thorough survey of the 3D modeling tools out there.

Caster mount modeled in Tinkercad
Caster mount modeled in Tinkercad

At the time Tinkercad seemed like the best choice to get going quickly. Although far from the most complex tool, it is easy to learn and allows very quick modeling that is perfectly suited to output on typical 3D printers. As an online tool your files are always available and you can design and print at the same computer, whatever printer you happen to be using.

Tinkercad can output 3D file formats but also .svg files to bring into a CNC system. The tools of rapid prototyping, like 3D printers and CNC machines, greatly speed up the process of failing fast–getting past your trial and error period.

Starting a 3D print of a chassis
Starting a 3D print of a chassis

Sometimes it seems like forever to make a print. The chassis for the robot takes about 90 minutes to print on the Makerbot Replicator I am using. However once it’s started, you can work on other aspects of the project while it’s printing. If it comes off the printer and it doesn’t fit, you’ve only wasted maybe 50 cents worth of plastic and can make the adjustments on the spot and spit out another copy.

Cutting from 6mm plywood on a CNC machine is even cheaper and faster.

Cutting a chassis on the CNC
Cutting a chassis on the CNC

It takes perhaps 10 minutes to cut a chassis out of 20 cents of scrap plywood. To be fair, the CNC requires more finishing than a 3D print–I’m using 2mm holes for hardware, which are too small for my CNC bit to cut, so those have to be drilled. But it works great for a quick test of the layout and I do want to be able to offer the project to people who don’t have access to a 3D printer.

I hope I have made all the big mistakes on the basic chassis and layout of the robot at this point and it will just be tweaking from now on through successive prototypes to the released design. Failing can be fun if it’s fast, cheap, and instructive in preparation for success.

The beginning

The $50 Robot project came from the idea of making a small Arduino-based robot as cheaply as possible. I have built wheeled bots like this before, but they always seem to cost $200+ by the time I was done. Could I build one for $45? $40?

First prototype for the really cheap robot idea
First prototype for the really cheap robot idea

I ordered a few parts off of eBay and (after a long wait for delivery from China) set to work. The first attempt was ugly, clumsy, and underpowered. But it was pointing the right direction. Before even programming it I worked out some improvements for the next round.

About this time it occurred to me that this might make a good project to share for others to learn basic maker skills such as fabrication, soldering, electronics, and Arduino programming. There are certainly other small robots of this type on the market but they are generally pre-fabricated and soldered, considerably more expensive, or both. Their potential for developing a range of maker skills is very limited. Thus the really cheap robot idea lead to the Robot50 program and the $50 Robot project as the first effort within it. The name came from a more realistic assessment of what it would cost to build.

Prototype 2 established the major design elements of the $50 Robot. The details will be provided elsewhere on this site. It uses commonly available cheap parts that can be ordered from more than one supplier (with a couple exceptions).

The second prototype, establishing the main elements of the $50 Robot
The second prototype, establishing the main elements of the $50 Robot.

It is holding up well in testing and the chassis can be fabricated by hand from plywood, cut on a CNC machine, or 3D printed. Minor tweaks are currently being made to this version before plans and design files are released.

The program

The goal of the Robot50 program is to provide resources to makers in the form of inexpensive and extendable projects that are accessible to the relative novice.  The projects will build skills to assist makers in independently pursuing new projects. A concept brief can be found here (pdf file).

The first project of Robot50 is Bootstrap.

bill@robot50.net