|Version 2 of the drawing robot.|
The idea is to make the robot able to respond to the material qualities of drawing, such as the roughness of a surface or the hardness of pencils, etc. Ordinary pen plotters, such as the AxiDraw, cannot do this. Pen plotters are typically designed to be very precise drawing machines, receiving movement instructions from a computer and then following them. In effect, a pen plotter has no idea if it even has a pen or if it is touching the drawing surface - it just does what it is told to do. In contrast, the drawing robot I am working on will have a higher level of autonomy and intelligence. Ultimately, I want the drawing robot to respond to the materials by itself. To do this, the robot needs to have sensors to both perceive material qualities, and to also be able to move with a softness. A good test will be for the robot to use a pencil without snapping the lead, whilst also compensating for the gradual wear down of the pencil. This seems trivial to us, but it is a difficult problem to solve within a robotic system.
For this robot I am using a delta design. Most pen plotters are Cartesian, meaning that their moving parts travel exactly along the x and y axis, and occasionally a small amount of movement in the z axis to move a pen on and off a page. The Cartesian design is good because it is mechanically quite simple and therefore easier to make rigid, which is important if you want a precise drawing machine. For the drawing robot I am working on, I am placing a higher emphasis on the speed and acceleration of the robot. I am interested in how movement and gesture can enrich drawing. It is also important that the robot will be able to respond quickly and dynamically to any changes in the material (such as, crumbling charcoal). I am interested in how a machine such as a robot can lend itself to expression, rather than precision.
|The lightweight drawing part of the robot.|
Often, drawing machines and robots in the arts have been made to look a little like humans (anthropomorphic). There may be something to learn from building drawing robots with similar physiology to us. However, most robots do not have antagonistic pairs of muscles (and other such properties) such as humans do, so the approximation to human physiology and processes is poor. Some of the projects to develop drawing machines and robots in the arts have also not been shy to admit that the human appearance of their system adds theatrical value. For this project, I am more interested in investigating how the robot can generate new forms of expression in the visual arts, and I have a research interest behind the how and why such work may be compelling. Perhaps the robot will be its own theatrical spectacle, without leaning on anthropomorphism.
|Assembly for DC motor, encoder and mechanism.|
A key part of this project is that the robot can move softly. If the robot was drawing on a rough surface, the motors would need to be soft enough to ride over the bumps. In this scenario, the ability of a stepper motor to firmly hold a position is not so desirable. Pushing back against the normal rotation of a motor is called back-driving, and in robotics it can be used to create compliant motion. Baxter is an example of a robot that has compliant actuators. Because a stepper motor is designed to holds a position, if it is back-driven, it suddenly jumps to the next step position. This is phenomenon is called cogging and it creates very juddering motor movement. It also creates the software problem of reducing cogging, and handling the steps required to get back to the original position. In contrast, DC motors are driven with a continuous analogue signal that varies the power to the motor. In conjunction with a rotary encoder, the motor can be used with this varying power to 'fight' to get to a target position on the rotary encoder.
|Base board and motor assembly from above.|
|Adjustment screws to alter the belt tension.|
Overall, working to remedy this problem started to feel futile because the motors were on the very threshold of being able to hold their position. I also noticed that when the motors were required to move quickly, too many pulses from the encoder were interrupting the Arduino. With the reduction gearing, the three motors were generating almost 4 times as many encoder pulses. It became obvious I would need to upgrade from an Arduino to something more powerful. Added to this motor control problem, I became unhappy with the added complexity in the design of the pulleys.
I used 12v DC motors from RS Online, and 2048cpr encoders from Mouser.