I’ve been trying to write a tutorial on delta robots and my writer’s block is pretty bad. The problem is that I start to write and realize I’m only teaching my readers the things that I learned online. I’m not contributing anything new which means they’re going to produce the same half-assed robots as I did. UNACCEPTABLE!
So here now is a soul-bearing expose of what should be done and then I’ll give a breakdown of where I got it wrong. Learn from my mistakes and your robots will be better than mine.
The five major steps to building a better robot are:
- Decide what your robot will do and how you will test for success. Some of you may know this as test-driven development.
- Build a theoretical model in a computer. Start with a mathematical model and then build a simulation of your robot. The more accurate your simulation the more likely you are to detect problems early.
- Program the model to behave the way you want. If you do it right then it will take almost no effort to use the same program to move your real robot when it’s ready.
- Acquire hardware & build robot to spec. Since you already have the models built you can be very specific about what you’re looking for. Good suppliers will be happy to help you sort through their catalogs and get the right parts.
- Test. Get it on video. Safety third. If tests fail post it on Youtube, then go to step 2.
So where did I go wrong?
- I didn’t have enough tests defined at the start. In other words I didn’t have a clear enough picture of what the robot was supposed to do.
- Because I didn’t have enough tests, I was able to get lazy with the theoretical model. I didn’t concern myself with how accurate the robot would be, I only cared if it would work *at all*. It was only afterwards that I realized how poorly it worked. In one case I built a great model and only fudged one part. When I got the machine assembled that one uncertain part meant that two other pieces collided and I almost broke many things.
- The UI was crummy so nobody else wants to use it and the simulation doesn’t really take into account all the physical properties like moment of inertia, mass, speed, and acceleration. It’s too “perfect” and that means it has little connection to the real world.
- Making one of a part is a lot more expensive than making 1000 of a part (per part). It follows that it’s cheaper to get a part that already does what you want than to make your own. Having said that… gears and gearboxes are no fun to source. Also: it’s better to plug than to solder. Plugs can be safely disconnected, and in the event of an accident it’s the plug that will go, not the expensive circuit board.
- Because I didn’t do so well on step 1, all I could do was measure the results and feel disappointed. Maybe I’ve achieved a miracle with the parts I picked, but how would I know?
Now before anyone says I sound too negative, let me point out what went right:
- I set myself a goal (however vague) and I created a map to get me from no robot to finished robot.
- I dedicated time every day to completing the project and I didn’t let my setbacks get me down.
- I put the skills I had to use (programming) and when I needed to I gained valuable new skills (soldering, electronics, mechanical engineering)
- I made interesting new friends and lots of business contacts.
It feels good to put my mistakes down on paper. I should do post-mortems more often!
So how will my future designs change? Well for starters when I write tutorials on building robots I’m going to tell you where there are gaps in my knowledge. I hope that someone will comment to fill in the gaps in my understanding for everyone’s benefit.
In news, the final pieces of my 3D printer are shipping tomorrow. It should be here by the end of the month!
[...] …I’ve defined success [...]