Building and running “Ethernet Powerlink” demo on PCs

Building and running openPOWERLINK v2.1.1 demos on Linux PCs

1.  Ubuntu14.04:

  • demo_cn_console, demo_mn_console: run without any problem.
  • demo_mn_qt: crashes. —> bug fixed in openPOWERLINK v2.1.2

2. Ubuntu 14.10, Ubuntu 12.04, Debian Jessie :

  • demo_cn_console, demo_mn_console, demo_mn_qt: run without any problem.

3. Kernel 3.18.11-rt on Ubuntu 14.10:

  • locktorture.c should be patched to compile the kernel. 
  • RCU-related kernel options should be properly set to prevent softirqs messages while running the demo.

Details of the “Ethernet Powerlink” can be found at

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 [3]

Motion-control FPGA:  

  • Reads the  status of external sensors and servo drives and sends it  to the PC. 
  • Receives commands from  the PC and writes them to external devices and servo drives.


Internal structure of the motion-control FPGA:


  1. command-pulse-generator module: generating command pulses for servo drives.
  2. quadrature-counter module: counting quadrature  pulses from servo drives.
  3. output-latch module: latching parallel output signals  to external devices and servo drives.
  4. input-latch module:  latching parallel  input signals from external sensors and servo drives.
  5. USB-interface module: reading/writing data from/to  USB bus. 
  6. Finite-state-machine module: controlling  the data flows among the above modules.

Hardware and software platforms for an industrial robot controller

Hardware and Software Platforms for Industrial Robot Controllers

Aug. 2008

Gyoung Hwan Kim. Ph.D.


  • State-of-art robot controllers ?
  • Design concept ?
  • Internals of robot controllers?
  • Next robot controller ?

Robot Programming

  • AL: Stanford Univ., 1981
  • VAL: Unimation, 1980
  • PAL: Purdue Univ., 1981
  • “Robot Manipulators”, R. P. Paul, 1981
  • RCCL: Purdue Univ., 1983
  • Multi-RCCL: JPL, McGill Univ., 1990
    Dead research areaNote that Samsung’s robot language is based on VAL.

Robot Control

  • Kinematics-based control: independent joint control
  • Dynamics-based control: ~1990
  • Direct drive arms
  • Flexible robot control
    Matured research area

State-of-art Robot Controller ?

Robot Controller Developed

Robot Controller developed for SCARA and transfer robots

Design Concept ?

Internals of Robot Controllers ?

Robot Controller Structure

Servo Controller Structures

  • Type 1. Drive interface board + 1-axis drives
  • Type 2. Servo board + “IPM + DC-link”s
  • Type 3. Servo board + IPMs + DC-link
    Note that 1-axis drive = servo processor + IPM + DC-link circuit.


Type 1. Servo Controller

  • High-power applications.
  • Conventional control scheme.
  • Commercial 1-axis drives.

Type 1 Drive Interface Board
(developed and tested)

  • TI TMS320F2812 DSP for linear interpolation.
  • FPGA for binary rate multiplication and encoder pulse counters.
  • 6 channel incremental encoder inputs (electrically isolated).
  • 6 channel pulse outs for 1-axis drives (electrically isolated).


Type 2. Servo Controller

  • High-power applications.
  • Flexible control schemes.

Type 3. Servo Controller

  • Low-power applications.
  • Flexible control schemes.

Type 3 Servo Board

  • The most powerful , flexible and advanced servo controller used in commercial industrial robot controllers.
  • Software –only implementation of position, velocity, and current control.
  • 1KHz current loop and 0.5 kHz position and control loop.
  • DSP load is less than 30%.

Type 3 IPM
(Intelligent Power Module)

Type 3 DC-Link Circuit

Robot Controller Structure

Main Processor Board

  • Hardware: X86 motherboard + PCI boards
  • Software: Real-time Linux (RTAI)

CPU Board
(off-the-shelf product)

  • Compact size and low power consumption: Mini-ITX board with an 1GHz VIA CPU.
  • 3 PCI board using a riser card.

Riser Card for 3 PCI Slots

 PCI Boards

  • High speed 4-port serial board: two RS232 ports and two RS422 ports.
  • CC-link PCI board: TI TMS320C2812 DSP with a dual-port memory.
  • RTAI RTDM drive driver for the serial board and Linux device driver for the CC-link board are also developed.

Four-port Serial PCI Board

CC-Link PCI Board

Profibus PCI Board

Parallel I/O board

  • Intelligent parallel I/O board – TI TMS320F2812 DSP.
  • Electrically isolated 24 inputs and 24 outputs.

Main-to-Servo Interface

  • Main processor to servo controller interface:
    – electrically isolated.
    – high-speed (2.5M bps) serial interface – RS422.

Tested Configurations

  • One SCARA robot + one X-Y robot.
  • Three X-Y robots.
  • One transfer robot with one driving axis.

SCARA + X-Y robots

LCD Transfer Robot with a Driving Axis

Next Robot Controllers ?

  • For larger robots, a drive interface board is developed.
  • If needed, RCCL can be used.


  • A flexible robot controller is developed and tested with SCARA robots and transfer robots.

Design of a motion-control ASIC/FPGA

Assuming all the compulations are done by a PC or an external processor,  I designed a motion-control FPGA  as follows: 



If a soft processor such as MIcroBlaze or  Nios II  is placed on the FPGA,   construction of a standalone motion controller (without a PC or an external processor)  is possible.

Because both MicroBlaze and NIOS II are Linux/Xenomai-ready, porting Linux/Xenomai software to MicroBlazer or NIOS II is trivial.