Tag: robot controller
Hardware setup for RCCL test: EtherCAT digital IO modules + servo drives
Programming and Controlling PUMA Robot Arms
When I was a Ph.D. student at the Purdue University, I spent some time on upgrading the Purdue University’s RCCL system. To find out the pros and cons of other robot programming and control systems, I played with some of them such as RCCL, Kali, MultiRCCL, and Chimera.
Prof. V. Hayward of the McGill University was invited to discuss the upgrade of the RCCL system. He kindly provided us the source code and schematics of his Kali system. Eventually I came up with a hybrid of the RCCL and the Kali systems.
V. Haward was a visiting scholar working with R. P. Paul when he “wrote” the RCCL system in C. I can say the RCCL is based on the Purdue University’s PAL system written in Pascal and R. P. Paul’s textbook. V. Hayward viewed a robot as a peripheral of a computer system and showed some C libraries for that device can do the programming and control of robots. Since the RCCL was introduced, the research area of robot languages had disappered.
Unimation was the only company which gave away electrical schematics and mechanical drawing with their robots. They even passed the company-confidential document on interfacing an external computer with their PUMA controller. Thus, the PUMA robots has been a popular research platform in robotics. Due to the limitations of the Unimation controller, people tried to build their own robot controllers for PUMA robots.
On the request of my former major professor, C. S. G. Lee, I gave a presentation to his students in 1989. The following slides were prepared for that presentation. And then more slides were added in 1999 and 2005, respectively. All the robotics textbooks mention the history of robots or robotics, but the history of robot controllers is found nowhere. In some sense, my slides show you the history of robot controllers.
programming-and-controlling-puma-armsDesign of a PCI motion card
Implementation of a PC-based motion controller/robot controller with USB interface [4]
USB Comminication speed between a host computer/board and the motion-control FPGA.
1. Experiment setup.
- 1530-byte round-trip test.
- Asynchronous FIFO mode of the FT2232H.
2. Experiment results.
- PC running a plain Linux: about 50 Mbits/sec.
- Raspberry Pi 2 running a realtime Linux: at least 30 Mbits/sec.
Implementation of a PC-based motion controller/robot controller with USB interface [1]
Design of 6-axis serial and USB motion cards:
1. Motion card with serial interace.
2. Motion card with USB interface.
Implementation of a PC-based motion controller/robot controller with USB interface [2]
PC-based motion controller with USB interface:
Examples of FPGA board with USB interface:
- FlashLink module (Xilinx Spartan-3).
- Saturn module (Xilinx Spartan-6).
- Morph-IC-II FPGA Development Module (Altera Cyclone II).
FTDI FT2232H for USB interace:
1. Interface A port of the FT2232H: asynchronous FIFO mode.
2. Interface B port of the FT2232H: UART mode.
Connecting FT2232H to FPGA module:
1. XFC-XC3S50AN FPGA module and FTDI FT2232H mini module:
VCCAUX of the FPGA = 3.3V
2. Open3S3500E board and the FTDI FT2232H mini module:
VCCAUX of the FPGA = 2.5V
Do I need a real-time OS for industrial robot controllers ?
Yes and no, depending the hardware structure of your controller.
“Soft real-time OS” is enough except for servo control tasks. If servo control tasks are responsible for the position, velocity and current control of PMSMs (permanent-magnet synchronous motors), the servo control tasks have no way of escaping from “hard real-time OS”.
What is the definition of a robot controller ?
1. In a broad sense, robot controller is a combination of hardware and software to program and control a single or multiple robots.
For example, an industrial robot conroller may be designed in such a way as follows:
2. In a narrow sense, robot controller is a servo controller which is responsible for controlling servomotors.