hollombe@ttidca.TTI.COM (The Polymath) (03/03/90)
I've been prototyping a work cell for a robot arm to test automatic teller machines (ATMs, aka CATs in local parlance). Lots of hacks, both software and hardware. Hardware: Problem: The robot has to insert a card in a card reader. This requires positional accuracy to hundredths of an inch in six dimensions. (Human hand-eye coordination is truly amazing). Solution: The robot can position itself with sufficient accuracy, so I just have to make sure it grabs the card in the same place, every time. An hour's work with tape and cardboard and I've got a fixture that causes the card to fall into precise position no matter how you drop it in. (Next hack: Designing a rack that does the same for multiple cards). Problem: Deposit envelopes flop around when grabbed by an end, making it impossible to insert them in the narrow (.25") slot. Solution: A minor modification to the gripper fingers, using cut up rubber bands and rubber cement, causes them to slightly crease the end of the envelope. That causes the rest of the envelope to hold itself stiff for accurate positioning. As a bonus, it gives a better grip for taking money and receipts from the ATM. Problem: The ATM is driven by a color-graphic touch-screen (Look, Ma, no buttons! (-: ). The robot's gripper fingers are metal, sharp and pointy. The touch screen is plastic. Solution: Sculpt a finger out of packing foam to add compliance to the robot's touch and glue it to the back of a gripper finger with rubber cement. Software: Problem: The robot has to operate in real time to simulate a human being and keep the ATM from timing out. It has to do many different tasks in essentially random order. In particular, it has to quickly touch the screen in any one of 50K possible locations (200 x 256). Solution: Each of the robot's tasks is defined as a separate program in the robot controller's memory. The host ATM controller configures a tty port to act as a dumb terminal and talk to the robot controller's dumb terminal i/o port. It sends commands to the robot to run the appropriate program as necessary. (E.g.: RUN DIPCARD). To touch the screen, it sends a location number (range: 0 to 50K) and runs the robot's touch screen program which uses a palletizing algorithm to calculate the x,y,z coordinates of the touch. The robot controller thinks a human being is typing all this (very quickly (-: ) at a keyboard. The ATM side of the software, BTW, was hacked out of an existing program that fakes, in software, some of what the robot actually does -- but that's another story. Not a bad hack, if I say so myself -- especially when you consider I had less than four days to throw it together. (VIP wanted a demo for visiting brass. He got it -- no smoke, no mirrors). Of course, the above leaves out quite a few of the nitty-gritty, make-it-work details (don't want to reveal too much about how the ATMs work, after all (-: ). -- The Polymath (aka: Jerry Hollombe, hollombe@ttidca.tti.com) Illegitimis non Citicorp(+)TTI Carborundum 3100 Ocean Park Blvd. (213) 450-9111, x2483 Santa Monica, CA 90405 {csun | philabs | psivax}!ttidca!hollombe