Since I’ve last posted I’ve been up to a number of things with the delta robot. To start with here’s a video of the robot drawing circles:
Since that video was recorded the control electronics have been rebuilt to use an stm32f4 discovery board. The extra processing power this board provided enabled the inverse kinematics to be run on the delta robot rather than on the computer. This smoothed out the movement of the robot and simplified the code to control it on the computer side. Hopefully this will eventually allow me to integrate it nicely into 3rd party 3D printer control programs.
Another area I’ve been playing with is using the delta robot to draw animations using light and long exposure photography. The following video shows the first test I did.
To achieve this a camera running chdk was triggered from the computer using an arduino to capture a long exposure image. As the image was being captured the robot plotted out a 3D shape with an LED attached to its end actuator.
The whole process was scripted using python and repeated multiple times to capture multiple frames.
All the images were then stitched into a single video using ffmpeg.
Here’s a more elaborate animation made using the above technique.
Another quick update to show some progress made this evening. I’ve plugged my inverse kinematics code into a quick and dirty motor controlling serial comms link to the Arduino and can now move the head of the delta robot to arbitrary XYZ coordinates. Here’s a video showing the plotting of slightly misshapen square (need some micro-switches to finished the calibration routine)
I should be able to get some more speed out of it by improving the Arduino comms link (it’s sending individual steps to the motors).
I’ll get around to doing a more descriptive post once I’ve got G-Code interpretation working (all the python code is done, just have to plug the bits together).
Here’s a quick video showing the first movement of the robot:
The video is only short because one of the grips for the toothed belts worked loose and it ended up crashing, fortunately there was no damage.
Laser cut parts and mechanical accessories have all arrived so without further ado here’s the first image of the linear delta robot as it currently stands.
I’m very happy with how it turned out, managed to not make any massive errors in the design and it’s not fallen apart that much since being bolted together. I’ll post more info, the design files, plus a video once it’s started to move.
In other exciting yet totally redundant news I’ve settled on a name for it. It will be called *insert drumroll* the Bakewell Liner Delta Robot. I’ve settled on this name mainly as a homage to the Rostock delta robot from which i took a lot of inspiration.
I’ll be showing off the (hopefully) working robot at MakerFaireMCR on the 28th and 29th of July at the Museum of Science and Industry (MOSI) in Manchester.
The plan is to use the delta robot as a 3D printer (like makerbot,reprap, ect). To keep the inertia of the head low I’ve decided on using a Bowden extruder. The Bowden extruder works on almost the same principle as a bikes brake cable, the plastic filament to be melted is driven through a tube to the hot end where it is melted. This reduces the weight of the printing head as it moves the filament driving stepper motor away from the heated head.
The following shows a design I’ve been working on for the cold-end, which drives the plastic filament down the Bowden tube to the hot-end. The design is based around a Nema17 stepper motor, it also uses 626 bearings (because I have a bunch spare), a handful of 6mm bolts, and two springs (for tensioning purposes).
Not shown in the above image are the springs used to tension the idler bearing carriage against the driven spindle.
The following shows a cut-away view exposing the driven spindle and idler bearing.
The first batch of parts has arrived for the linear delta robot. I’ve chosen to base the electronics around an Arduino and some really neat A4988 stepper motor breakout boards from Pololu. Quite incredible that for such a small package they can deliver a supposed 2A at 35V. They also support up to x16 micro-stepping allowing 3200 steps per-revolution from a typical 200 steps-per-revolution bipolar stepper motor.
For the joints that connect the vertically moving carriages to the plotting head I’ve chosen to use some reasonable priced ball joints from RS Electronics (a mere £2 a pop). They come dis-assembled which was a great opportunity to use my Dads treadle powered press for some production line fun.
And here are the assembled joints.
My previous post was showing off the initial OpenSCAD model of a liner delta robot project I’ve started. I’ve been interested in building a delta robot in some time but have been put off by the inverse kinematics, thinking it would be an absolute nightmare to figure out. Turns out it’s surprisingly simple for vertical linear delta robots and I’ve written a quick Python+PyGame GUI to work out the required Z positions for the 3 corners of the robot.
The blue bars on the left show the required Z positions to reach the XY co-ordinate shown by the diagram in the center of the screen. The grey bar next to the individual Z positions shows the total Z height for the head of the delta robot. The dark grey crosses in the center region show the possible locations reached by the robot.
Setting the delta robots head XY position is done by clicking on a location. The Z height can be set by scrolling the mouse wheel.
For the time being I’m going to stick with pygame for the GUI components, I’m quite liking the minimal look. I may at a later date port it over to using QT.
Ultimately the goal is to use this software for testing the inverse kinematics model, as well as for debugging the delta robot during construction by implementing an interface to directly control the robot via USB. At a later date G-Code interpretation may be added.
This first version of the software is not in a fit state to release. Once I’ve cleaned up the code I’ll stick it up on GitHub under a GPL license.