Hi-tech or Lo-tech?
We employ a moderate level of technology that is easily maintained and gives us an appropriate balance between cost, performance, reliability, maintainability and also obsolescence. This will be at a lower level than your smartphone or PC but the objective is different.
A robot system is an integration of mechanics, electronics and software. . . .
Our policy for mechanics is 'keep it simple'. Remove the covers and the simplicity of the system is evident. Any reasonably careful technician can repair one in the unlikely event of a failure. There are no sensitive adjustments or complex setting-up procedures. Reliability is of paramount importance and this is aided by the simple mechanics and the extraordinarily reliable motors which run for tens of thousands of hours driving through over-rated toothed belts or chain drives.
In addition we do life testing and trauma testing (deliberate collisions etc) and every robot we make undergoes a long term test before delivery. See reliability.
The multi-processor electronics reflect our compromise between high technology and maintainability. A top level pipelined CPU runs single task embedded software. It communicates with a computer during programming or when the computer is controlling the robot as part of an integrated process. The CPU passes numeric instructions to a DSP (digital signal processor) which is a kind of high speed processor that can process many algorithms simultaneously. The DSP sends micro-step signals to the axis processors. These control the motors through high voltage MOSFET chopper controlled constant current drives. The DSP has the ability to ramp motors up and down simultaneously as it works through a stored path and it does so without loss of speed. Meanwhile the encoders feed back into the DSP and are monitored by the CPU which reports any errors.
The I/O is expandable permitting interfacing with all kinds of peripheral equipment from pneumatics to force sensors, including PLCs. The controller has a backplane bus with plug-in cards. This modular approach makes for faster debugging and also faster repair on site if ever required. The operating system (BIOS and FORTH) and the robot language (ROBOFORTH) are in flash ROM which loads to faster static RAM on power-up. The user software also loads from PC to static RAM and can be saved back to flash ROM. Then if the system is switched off the robot is ready to go without reloading when power is restored.
We use very high efficiency Sanyo Denki bipolar hybrid stepping motors driving through steel reinforced polyurethane anti-backlash "Generation 5" toothed belts. The motors are micro-stepped using intelligent PWM (pulse-width modulated) constant current drives (see controller page). These provide smooth and flexible motion without any of the problems at one time associated with stepping motors. Micro-stepping is where the natural 'step' angle of a motor is broken into smaller units by varying the phase currents sinusoidally instead of simply switching. This results in smooth, quiet motion without overshoot or damping. Stepping motors have reached a level of technology of which most people are not aware. Compared to servo-motors steppers are larger but being high torque low speed motors they require less gearing which means space and cost saving and less error in the transmission. Losses (heating) are minimal and the degree of control, positional accuracy and speed that modern steppers provide is unprecedented. Modern stepper systems never mis-step except in stall or collision conditions. In ST robots motion is monitored by optical encoders. See why ST uses stepping motors
Software is our greatest strength. It is especially suited to complex I/O interfacing and is capable of controlling peripheral equipment such as feeders and conveyors often eliminating the need for a PLC. It also ideal for large cluttered workspaces such as High Thruput Screening. It has been under development for 17 years and is the most advanced robotics software on the planet, yet is fully debugged and field tested. The software mainly comprises two components: ROBOFORTH II which runs in the robot controller and RobWin which runs in the computer and is only needed to program the robot. The computer may be removed once the robot is programmed. Strengths of this programming system include: around 400 English language commands, named positions, continuous path programming without instability, matrices, approach positions, an object database, extensive I/O capability, programmable errors, precise (crystal) control of speed and acceleration. Analog and digital I/O can take place while the robot is moving. A 'communications register' (a TI concept) allows manipulation of individual bits across the entire I/O map. If a real processor interrupt is required this is achieved by a link on the I/O board and writing an interrupt routine in the same easy high level RoboForth as your main program. A timer interrupt is also easy and quick to set up for example taking readings every 100mS from a force transducer while the robot is in motion.
ROBOFORTH is an extension of a language called Forth which was first conceived by Charles Moore in 1969 and is one of the few languages which have been strictly standardized. It was called Forth because it was the first of the fourth generation languages which are characterized by programming small definitions as lists of other definitions. All the definitions have names, called 'words', which are stored in a 'dictionary'. Words can be executed just by writing them or may be used to define more powerful words. Similar languages include LISP and LOGO and indeed the axis commands are inspired by the turtle commands in LOGO. The power of these languages lies in the way they fit with the human thought process, making it fast and easy to write quite complex software without getting bogged down as happens with syntactic (third generation) languages. Seymour Papert called LOGO "programming in mind sized bytes". Some call Forth 'serendipidous'.
Any writer of general purpose robot control software or a robot language is inevitably limited by what he/she envisages the end user will want to do. As soon as some new unforseen requirement emerges these languages fall down because they are not real languages. We call them 'Noddy' languages. But ROBOFORTH's many levels and open architecture make it possible to dig deeper into the power of this language and always find a solution even if it is not at the most user friendly level.
By contrast our teach pad is relatively simple. We can't see any point in putting $4000 worth of electronics and LCD displays into a device which is only used during programming and then is put into a drawer not to be seen again for months or years. You can put far more features on the screen of a $1000 laptop. Positional programming is therefore accomplished by a combination of the simple teach pad and on-screen selection of functions.