PUMA 260 robot arm (restoration)

11/17/15

Thanks to the generosity of a friend and the magic of freight shipping, I've recently come into possession of a Puma 260A robot! This particular model, while small compared to most robots in industry, is exactly what I wanted as an industrial robotics novice. The 260 is small enough to not require an entire safety cage and light curtains, yet powerful enough to to do some fun experiments. Here is how it arrived right off the pallet:


Included with the arm was the Unimation controller/computer as well as some peripherals, including a double sided double density floppy drive and teach pendant. There was also an RS-232 line for serial commands, an original instruction manual, as well as a couple floppy disks containing various revisions of VAL-II (the robot's native operating system). Here's the entire setup post-unwrapping:



From the outside, the only visible flaws were some highly frayed wires and a little dust. I began by wiping off all the leaking grease and cleaning everything with a damp rag. The peripheral cords were untangled and checked to ensure none of the wire had been severed. As many of the labels state, this robot was refurbished back in '03 by RP Automation. They kindly included a report of all the maintenance they performed with dates!

Following the cleaning, a friend and I did a first power check with the controller in restart mode. The controller/computer fans started up right away, as well as the floppy drive and teach pendant. After briefly flashing the Unimation splash screen, the pendant immediately jumped to "ERROR - NO VAL", as expected.

The next step was getting a serial connection to the robot. After connecting through an RS-232 to USB converter, the robot controller finally spoke. We could successfully ask to initalize VAL about 50% of the time, but couldn't accept a response and frequently devolved into gibberish. Unable to get stable communication, I popped of the lid to the controller and started checking boards. After a careful read through the manual, all of the cards were removed and laid out for inspection:




While most of the cards appeared to be in decent condition, the processor and RAM cards were in extremely poor condition. The NiCad batteries last installed in 2003 had burst long ago, and were slowly dissolving half of the board. This corrosion had spread to nearby cards, ruining card slot edges and components. 


First, we clipped off all four of the batteries on the processor and RAM cards, noting their polarities. Using a sharp tool, I scraped off as much of the dried electrolyte crystals as I could. Those areas still coated in crystals were doused in electronic contact cleaner and let to sit for an hour. Using acetone and a hobby knife, I cleaned the card edge connector as well as I could. Some of the plating had clearly been flaking off of the conductors, but fortunately the actual copper was mostly still intact. This cleaning won't do anything to prevent the bare oxidizer from corroding more in the future, but hopefully slows the corrosion from the acid. Using replacement off-board 1.2 V NiMH cells, power was temporarily restored at the battery terminal inputs.




With all the cards removed, the slots (which undoubtedly had battery acid corrosion as well) were left to marinate in plastic safe contact cleaner as well. As the cards dried, we pulled out the servo amplifiers from the front half of the case. The cards were in excellent condition, and even had minimal dust thanks to the powerful cooling fans in the case. I took some pictures of these as well for interest. There appears to be nothing on these cards besides the power electronics for 3 H-bridges and two integrated temperature sensors. Even the gate driving circuits appear to be isolated on a separate board. That's all very well, because there wasn't much space with the huge heatsink and transistors!



The last step was re-assembling the controller using the huge quantity of pictures taken earlier and the instruction manual. I really loved how the manual actually took the time to describe the functionality and interconnection between each card in details. It was invaluable to be able to see the theory behind the inner-workings of the controller, and will make future modifications much easier.

The power-on was tense, but resulted in trouble free serial communication between the controller and PC! Every few power-ons still resulted in failed communication, but once it started successfully it usually continued to function. Now that we could talk, the next step was to load VALII into the controller from the floppy drive. After entering the robot serial number and giving it a few minutes to load, VAL was loaded and the arm could be powered up. After joyriding for a few minutes with the teach pendant, the controller crashed and auto-enabled the joint brakes. Reloading VAL fixed the problem temporarily. 



 With the mechanical functionality established, we worked through the calibration and nesting procedure outlined in the manual. Essentially this worked out to making the arm go limp, placing it in it's special nest holder, and resetting this as the calibration point. While the arm would calibrate and leave the nest successfully, moving from ready-position back to nest usually failed. The last two joints would just barely collide with the nest and then deflect out of position. Repeated calibration attempts didn't result in any improvement. The manual describes further procedure recommendations for this situation, so we may have to try those next time. 

What we did notice were repeated software crashes. It appears that the controller memory forgets its OS at some non-determinant time after loading, resulting in a full robot lock up that requires a power cycle and VALII reload. Reading the documentation indicates that this may be the CMOS memory, which has a recommended replacement date of three years after installation...which was probably last done 12+ years ago. I'll be investigating to see how realistic a memory replacement is.

My ultimate goal with the robot, however, is to move away from the VALII operating system. As amazing as this legacy system is, it is highly unstable and severely limited in capability and memory.  A new processor and controller board (possibly a 32 bit Atmel chip) could give me the freedom to stream live commands with a buffer, allowing rapid feedback between the arm and a PC. This would open up a world of possibilities, including integration with off-the-shelf camera systems like the Kinect. Replacements to the servo amplifier system could also be made, but would be considerably more costly. 

Ideally, I'll be able to find a way to integrate a custom controller board with the existing power electronics. This is the least expensive path, and also makes the most use of the original system which I want to preserve as much as possible. My preliminary observations indicate that interface card B might be the best place to make the transition, but I'll learn more about how "hack-able" the system is after doing some probing.

Restoring the control electronics will be a slow and expensive process, so it may be a while before the next update on the PUMA 260.

No comments:

Post a Comment