Building a Delta Robot: 3D model version 1

January 25th, 2012


Now that I’ve defined what success should look like, I have to start putting the pieces together.  This started as a set of pen & paper drawings in my sketchbook.  Then I had a friend model the entire thing in Solidworks.  This model uses

  • Some sheet metal or wood for top & bottom plates (blue)
  • Some 3D printed brackets (green)
  • 24 3D printed ABS bearing mounts
  • 12 3/8″ OD bearings (between the bearing mounts)
  • Three pieces of 16mm hollow square aluminum bar (grey)
  • Three NEMA17 stepper motors
  • Six pieces of 4mm threaded rod
  • Six 1cm rods (attaches bearing mounts to square bar & bottom plate)

Before I could say this design is finished I still need to do a number of changes and tests, based on my previously stated goals:

  • The 1cm rods should be supported on bearings to make movement nice and smooth.
  • Bearings means a redesign of the square rod, the 1cm bar, and the bottom plate.
  • The legs that will hold up the delta robot haven’t been designed yet
  • Length of the 16mm square bar, length the 4mm threaded rod, and size of the plates will change once I calculate the correct numbers for the work area and accuracy that I want.  I just hope the motors I have will be up to the task!
  • Solidworks can simulate material stress and do other kinds of performance analysis.  I should be able to test how much weight the machine can carry before I start making anything, which will help me make sure my targets are being met.

Kinect based art project

January 22nd, 2012

An 8 foot pole, atop which are 9 kinect bars facing outward. Together they form a color 3d map of the entire surroundings. The math is done on, say, a mac mini in a backpack, and then the image is displayed on a tablet for the user. The user can pan, tilt, and zoom the 3d view as they walk around, building a map of the environment.

Tied with google earth or a UAV drone, the system becomes even more powerful – the user has eyes in the back of their head, as well as around corners.

I could probably come up with a lot of BS about human interaction, the nature of technology in society, man’s relation to himself when reduced to an avatar, etc… but the truth is I think it’s just a really neat idea and I don’t know what effect it would have until I build it.

Do you feel the same? Maybe you can help.

Building a Delta Robot Part 1: Defining Success

January 20th, 2012

What is a delta robot?

My goal is to make a delta robot that draws pictures.  Later I’d like to 3D print in ABS plastic.  So what am I looking to achieve?

  1. Repeatable accuracy: 0.25mm.  Say the robot is holding a pen pointing at a grid on a piece of paper.  It starts at (0,0,0), moves around, comes back and is within 0.25mm of (0,0,0).  It might be right on.  It might stop at (0,0.125,0).
  2. Envelope size: 15cm*15cm*15cm.  That’s the maximum range of motion for the tool the robot is holding.  So from (0,0,0) it can move from (-7.5,-7.5,0) to (7.5,7.5,15).  This is easy to test
  3. Weight limit: 50 grams.  Delta robots aren’t known for carrying a lot of weight, and all I’m moving is a pen.  I’ll probably have to use stronger stepper motors if I ever try 3D printing.
  4. Play/Slop: Does the tool undercut or overshoot the target line?
  5. Maximum velocity: 20cm/s?
  6. Maximum acceleration: 20cm/s/s?
  7. Automatic calibration: I want the robot to know where (0,0,0) the moment I turn it on.  No guess work.

I plan to test each of these conditions as follows:

  1. I’ll mount a 3D digital touch probe to the table and a metal cone to the tool tip.  After each movement the computer can record the amount of push on the probe.  After a few hundred samples a pretty clear picture should form.  The tests would then be repeated near the corners of the envelope.  To make life easier our math is going to try to do better than 0.25mm.
  2. Using the same cone, and a ruler taped to the table.  Test that the cone can travel from (0,0,0) to the desired distance on the rule.  Repeat in every direction.
  3. The metal cone should weigh 50 grams so that the previous tests are done at maximum load, when the machine is being strained to the limit.
  4. I’ll print a test pattern on a normal printer, tape it to the table, and then have the machine draw the same design and see if they match.  This will depend a lot on the physics of momentum.
  5. I’m not sure.  The cone could touch a switch at either end of the envelope a few dozen times and then I’d have a measure of top speed.
  6. See #5
  7. The same touch switches could be used to tell when the robot has re-centered itself.

In the next installment I’m going to cover the math and look at how it will help us design to spec build a computer model and then adjust it to fit the math.

Five steps to building a better robot

January 17th, 2012

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:

  1. Decide what your robot will do and how you will test for success.  Some of you may know this as test-driven development.
  2. 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.
  3. 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.
  4. 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.
  5. 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?

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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:

  1. I set myself a goal (however vague) and I created a map to get me from no robot to finished robot.
  2. I dedicated time every day to completing the project and I didn’t let my setbacks get me down.
  3. I put the skills I had to use (programming) and when I needed to I gained valuable new skills (soldering, electronics, mechanical engineering)
  4. 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!

BC help for startup businesses

December 1st, 2011

BC innovation Center – http://www.bcic.ca/
BCIT commercialization program – http://www.bcit.ca/appliedresearch/arlo/caps/
BCIT applied research liaison office – http://www.bcit.ca/appliedresearch/arlo/
BC center for small business financing – http://www.grants-loans.org/bc-grants.php

Know of any more? Comment below!

6DOF Robotic Arm design complete?

November 19th, 2011

I think I’ve finally figured out how to complete my robotic arm. The bottom of the arm (at the shoulder) took longer to solve than anything else, even though it should have been the simplest part. Wierd, huh?

Big Fourmi – another walking open source Arduino Robot

November 7th, 2011

Trollmaker says “Big-Fourmi is an hexapod walking robot I have designed and built in the scope of a final year project at university.” Total cost? $550. Awesome!

Find out more on Trollmaker’s homepage.

How do I Drive a High Amp Stepper Motor from an Arduino?

November 5th, 2011

http://en.wikipedia.org/wiki/Stepper_motor#See_also

http://ams2000.com/stepping101.html

What you want are drivers from CNC machines like automated lathes, mills, and routers. Your Arduino will be the encoder generating the pulses that tell the drivers when to move each stepper.

When you build your machine, you’ll need code to make it move. My code contains a virtual model of my machine. When I want to move the machine to XYZ, my code adjusts the virtual model, figures out where the steppers need to be to make that happen, and then instructs the Arduino what to do. Going from model->steppers is known as Inverse Kinematics. Forward Kinematics is when you go steppers->model: You know what the steppers are capable of and what they’re doing right now, and from that you figure out what the virtual model is doing. It is often a lot more challenging to calculate but it pays off in other ways – like it helps you calculate how accurate your machine will be if you use parts AB&C.

If you design your machine in a program like Alibre or SolidWorks then you’ve already got a virtual model, which makes things a lot easier.

More than that I can’t really tell you because
a) It depends on your implementation and
b) I’m in talks to build some similar machines myself

I hope that helps!

BuildYourCNC WhiteAnt 3D Printer coming!

November 2nd, 2011

http://buildyourcnc.com/ is shipping their WhiteAnt 3D printer and mine is on the way. With an print envelope of 160mm* 190mm * 125mm, it can print objects two and a half times bigger than a Makerbot MK7. At $730, that’s 44% less expensive. Bigger prints, lower cost, DIY… I’m so excited!

Controlling a linear actuator with an h bridge

October 22nd, 2011

Canakit h bridges are twice the price of Solarbotics. Lesson learned.

The secret is to use analogWrite on the output pins, works much better than Servo::write().

I want to build robots with your products and review your new hardware. If you’re looking to boost your SEO, I’m the best choice.