A rapid prototyping system using an Armdroid robot arm

Introduction

Because of the way public exams were conducted at my school, Winchester College, I had finished my Physics A level by the end of my penultimate term in my penultimate year. We therefore spent the final term, from May to July 2001, doing projects of our own devising.

My physics teacher knew of my interest in robots, and thus suggested that I might enjoy doing something with a robot arm the department had, a Colne Robotics Armdroid. It is a revolute co-ordinate arm (with two rotary joints at the shoulder and one at the elbow - like the human arm) with 2 degrees of freedom in the wrist, driven by stepper motors with belts and strings, and a 3-fingered gripper; it was designed to be used for educational purposes and was sold with an interface for the User Port of a BBC Microcomputer. Initially I needed to get it to work with a PC (which was not entirely straightforward, as the original control board had been replaced by a previous student who had left no documentation), but once I had done that I needed a project.

The idea

I was, and still am, interested in the idea of computer-controlled machines that could transform a computer file into a real-world model, so I decided to try to make the Armdroid do that. I therefore mounted a small DC motor with a dental burr attached to it in the gripper, to carve a block of polystyrene placed in front of the robot. It made quite satisfactory holes in the block once I had written a programme that would allow me to control its motion manually, so I wrote a new programme that would translate a Cartesian (x, y, z) point into the required angles for the stepper motors and move them there. A picture of the arrangement is below - I did not take any myself, and this was taken for the school prospectus.

Two students, a laptop and an Armdroid robot arm.
Me (typing at the computer), my colleague Mark Patterson, and the Armdroid (the black cuboid is a car battery to supply power to the robot's motors).

Unfortunately, my initial version did not work terribly well, as the joints moved sequentially and the dental burr moved in arcs through the air and the polystyrene when I wanted it to move in straight lines. I then tried to make a programme which interlaced movements of the forearm and the shoulder, to make a smoother path; however, because I did this by pulsing the stepper motors unevenly they continuously lost or gained extra steps, with the result that the eventual position was out by a substantial amount.

To make the project work would probably require some kind of encoder on the joints to sense the actual position, as the problem was mostly due to the fact that the arm was entirely open-loop. I did not have the time to do this, but I would be very interested to hear from anyone who does.

The QBasic programmes

The first allows the main joints of the robot arm and the gripper to be moved individually using the keys a, d, w, z, e, x, r and c.

The second was a Cartesian co-ordinate translator - the relevant lines are currently commented out, but originally an (x, y, z) point was input and the arm would move to that location. N.B. This moves the arm joints sequentially.

Unfortunately, I have lost the rest of the programmes - they are probably still on the laptop in a cupboard in the physics laboratory!