Collaborative drawing

So Dada made this drawing back in February, in time for the FITC conference Justin was presenting at. I’ve only just got around to editing and posting the video now for some reason.

Anyway, this video shows the first drawing by Dada where the input was generated by Justin, hence the collaborative title. This was converted into a text file using the syntax described in the previous post and passed to Dada triangle by triangle. Here’s the gradually sped up process:

As usual Dada has added his own creative flair to the process, bending the straight lines into curves as a result of his kinematics. The original and final pictures are shown below for comparison.
Read More »

Movement Sequencing from a Text File

I’ve been working on turning a long sequence of robot movement commands into something that can be gradually passed to Dada’s controlling Arduino, without filling up the limited memory of the Arduino chip. Here’s my solution so far:

Motion Segments

Read More »

Distorted Grid

After brainstorming a bit more in Matlab I moved my distorted grid idea into the Processing language, which supports embedding into web pages, amongst other benefits.

You can launch the grid distorting application by clicking on the below image. Each subsequent click (in the launched window) will increase or decrease the level of distortion from the original straight line grid. It starts off boring but stick at it.

Distorted Grid

Read More »

Growing Squares Video

A short video I forgot I recorded, showing Dada drawing part of one of the images from this post.

Read More »

Self Calibration Video

Here’s a video I recorded some time ago but never got around to posting. It shows a couple of things.

Read More »

Matlab grid sketch

I was recently wondering if you could make a grid look interesting just by slightly modifying the point intersections of the grid lines. I realised that this would be a nice little program that would fit within the robot’s capabilities so spent an hour or two prototyping it in Matlab and then a bit more time making it output a series of robot instructions.

The algorithm is very simple. Two matricies are generated of equally spaced point locations. The location of each point is augmented with a controlled amount of random noise. For each point a line is then drawn that connects it to the point above it, another line is drawn that connects it to the point to the right of it. That’s it.

Here are some 4×4 grids for noise values of zero (the pure, unmodified grid):

Broing Grid

and one (a ‘noisy’ grid with shifted intersection points):
Grid2

Read More »

Moar Powa!

Dada is a power hungry beast. Each stepper motor takes 1Amp and the motor controllers are rated at 25V minimum. A bench power supply that can supply that sort of juice costs around £300, which is out of my budget. Up until recently I had been borrowing such a £300 supply from work for the weekends, but that’s not ideal, especially as I would have to break my daily cycling routine to drive in on Fridays and Mondays to pick it up / drop it off (those things are heavy) and it wouldn’t be possible to spontaneously start working on the robot.

It was therefore nice to hear that a friend at work had a spare 3A DC power supply kicking around in their shed that they ‘couldn’t bring themselves to throw away’. It’s certainly a pleasure to share my workplace with such like-minded (and generous) eccentrics!

Here it is:

Dada's Power Supply

Dada's Reclaimed Power Supply

My first reaction, on being presented with this at work, was “Wow… that’s really dangerous!”. There are no sockets on this thing, no dials, no led indicators and no covers. In fact the perspex panel on the front and MDF base were my first additions to allow us to test it without fear of electricution. The damn thing doesn’t even have a mains socket, you literally tightened metal nuts around the exposed cables of a 230V mains supply on the FRONT of the device! Accidentally touch those terminals and you could end up rather… unwell! Those exposed mains tracks also ran along the bottom and sides of the supply. Genuinly scary stuff. However, one Saturday of making cover plates out of plastic and wood and now I have a beast of a power supply for free. Happy days!

Dada’s new hand

One early thing I discovered was that it was very difficult to align the robot and a piece of paper in the vertical direction. If the robot was at a slightly different orientation to whatever platform the paper was resting on then the motion of the robot would cause the pen to either float above the page, or push into the paper. Obviously that’s no good, so up until now I’ve left the pens free to move in the vertical direction. This was fine for testing with single line drawings, but ideally dada should be able to lift the pen from the paper without fear of it falling out of a loose grip. Therefore I present the new dada hand:SNV81339

It probably doesn’t look like much, but it means that dada’s pen now applies pressure against paper, regardless of the undulations / orientation of the paper support. Essentially it’s a spring-loaded pen fitted into a linear bearing (ordered especially from Hong Kong) with a few elasticated gromments to hold everything together. The grey material is machinable nylon, which is a beauty to work with. I was lucky enough to find a big bit of it in a scrap bin. Actually those red grommets are apparently usually applied to male pigs… Probably best not to think about that…

This hand does have the drawback that it’s now quite difficult to change pens. I’ve got some designs but they are relatively complicated to build. Let’s get everything else working before then.

Robot Sketches – 1

Here are a bunch of sketches made on the same day by Dada. These are all currently test pieces where I was investigating the disortion of straight lines on incremental square sizes with minimal code. I think they came out looking quite nice. Note that these all involved some manual manipulation. In some I moved or rotated the paper between trials, in others I swapped the black / red pens over as the robot was drawing.

Jaunty IC - 23-10-11

23-10-11-003 - Doors of Perception - 10percent

23-10-11-004 - The Train Driver's nightmare - 10 pecent

At this point dada still can’t lift the pen from the canvas, so these are all single line drawings (like those done on an etch-a-sketch).

Dada’s first Square – Inverse Kinematics

This inoccent scribble occured took a lot of effort to create! It is Dada’s first drawing of a square, a tricky task that involves co-ordinating all of the robots motors in order to create several movement paths with right angles. At the moment the robot still can’t lift the pen off the paper (I wanted to get straight lines working first) so there is a ‘bonus’ line where dada moved forward to get in position.
Dada's first square... and an extra line

Dada's first square... and an extra line

The real development in this drawing is the fact that dada is now using inverse kinematics to move, rather than just responding to demands in terms of motor turns. Now, I tell him to move to a particular point on the paper and he goes to that point, accurate to around 0.5mm (maybe less, I haven’t really tested). This took quite a long time as I had to manually work out what linear motion / angle each of Dada’s stepper motor’ s provided for a single step and then use this to work out how many steps each motor needs to make to drive to move to a given distance / angle (for example 10mm = 317 steps of motor 2). This was nothing that couldn’t be solved without a ruler, calculator, SOH CAH TOA and a cup of coffee.

With this accurate information it’s no big deal to string a load of these motions together, as the following video shows:

At the moment Dada is set up to only arrive at the correct location on the page (such as each corner of the square), I haven’t actually written any code that determines how he gets there. This is why one side of the square is a bit wonky. As in the first drawing this has come from the motors not co-ordinating with each other; the motor that turns the arm got to its target faster than the motor that extends the arm. There’s also a bit of wonkiness for the pen not being clamped into the hand properly, I’m working on that…

This wonkiness becomes more exagerrated in certain parts of the page, or for certain orientations of lines. As you’ll see in the set of first pictures I’ll soon be posting, it’s all a bit unpredictable. For the moment I like this randomness so I may not fix it… we’ll have to see…