SlideShare ist ein Scribd-Unternehmen logo
1 von 131
Downloaden Sie, um offline zu lesen
Programming and Controlling
PUMA Robot Arms

1989, 1999, 2005

Gyoung H. Kim, Ph.D.
gyounghkim@open-robotics.com

1
Contents

I. Controlling PUMA Robot Arms with VAL,
RCCL, Kali, or ALVIN, 1989.
II. RCCL Variants and RCCL Porting Guide,
1999.
III. Porting and Running the RCCL on a Realtime Linux/PC, 2005.

2
Controlling PUMA Robot Arms
With VAL, RCCL, Kali, or ALVIN

1989

Gyoung H. Kim, Ph.D

3
Contents
•

PUMA
- MK I controller
- MK II controller
- MK III controller
- UNIVAL controller

•

RCCL

•

Level II

•

Kali

•

ALVIN
4
PUMA

5
PUMA
(Programmable, Universal Machines for Assembly)
• Vendor:

Unimation,Inc.

• Arm Types:
260 Series,
550 Series, 560 Series, 552 Series, 562 Series
760 Series
• Controller Types:
Mark I, Mark II, Mark III, UNIVAL
• Robot Programming Language:
VAL, VAL II
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
PUMA MK III Controller Configuration
1. control card set
[1] LSI-11/73 CPU board
[2] 64 KW RAM board
[3] quad serial board
[4] parallel I/O board
[5] A interface card
[6] B interface card
[7] digital servo boards
[8] arm signal interface board
26
2. power card set
[1] C interface board
[2] high power function board
[3] power amplifier boards - PWM type

27
Servo Code Block Diagram

Main

Timer
Interrupt

Initialization

Disable
Host Interrupt

Wait for
interrupt

Read
Encoder
Counter

Host
Interrupt
Deferred
Command ?

NO

YES

Enable
Host Interrupt

Save
command
in buffer

Execute
immediate
command

Return

Position/current
control
Deferred
Command
Execution

Return

28
29
30
31
UNIVAL

32
UNIVAL Block Diagram

Unival Controller
Torque
Processor
Board

Servo
Control
Module

Arm Interface Board

Major Power
Amplifier

Expansion
Memory
(Optional)

Distribution
Board

CX Module
VDT
Disk Drive
Aux. Port
Smart I/O
Teach
Pendant

Minor Power
Amplifier

Signal Connection Board

Robot Arm

33
Typical Controller with Analog Torque Loop

Torque Loop / Amplifier
DAC

M
E

N AXES
Digital
Servo
and
Robot
Controller

N Axes

34
UNIVAL Torque Processor Loop

Software
Torque
Command

+

-

+

Kp

Ki
1-Z

Hardware

+

Linearlizer

PWM
Chip

Power
Amp

Motor
-1

+
+

A/D

Current
Offset

35
UNIVAL Signal Loops

Arm
Cable

AIB

SCM
Command
from
VAL

Position
and
velocity
Servos

TPB

PWM

ROBOT
AMPS

Current Feedback
Feedback from Robot

VAL

Position Feedback upon Startup

Encoders

Potentiometers

36
UNIVAL Servo System Block Diagram

Arm Interface Module
Servo
and
Robot
Control
Module

M

Torque
Processor
Module

A/D

3 Axes
PWM Chip

3 Axes
Power
AMP

3 Axes
PWM Chip

E

3 Axes
Power
AMP

MUX

Current Feedback
Encoder Feedback

37
PUMA Control with VAL
1.

The hardware does not provide sufficient
--- it is too slow for real-time control.

processing power

2. The system is not designed to communicate with external
computer in a flexible way. The I/O module is only able to
provide control signals and process elementary information
received from sensors.
3. Memory resources may not be sufficient for large programs.
4. Communication with other computers is limited to interactions
with VAL.
5. Inverse kinematics software is not available, hence, trajectories
cannot be defined off-line.
6. Control of the arm is performed at the joint level, providing only
joint position regulation.
38
PUMA Control without VAL
Advantages :
1.

The ability to implement closed-loop control of the manipulator
in both task and joint configuration spaces.

2. The ability to use the more powerful processor for inverse
kinematics, for trajectory planning, and for control in real-time
3. The ability to test advanced mathematical models for dynamics
and real-time control
4. The ability to connect sensory devices through serial, parallel or
bus interface
5. The ability to create a new control language which includes
commands not available in VAL.
6. The ability to access to a database.
39
Alternative Hardware Configurations
1.

The PUMA's Arm Interface Board is disconnected from the DRV11 card and connected to the parallel interface card in the
external machine(only for MK I controllers).

2.

Both computers are connected through a standard DEC parallel
interface, which offers higher data rates than those of a serial
interface.

3.

A custom-built interface for bus-to-bus connection can be used.
This interface contains a FIFO (First In First Out) hardware
buffer.

4.

Serial interface through the DLV-11J serial card in the PUMA
controller is used.
40
RCCL

41
RCCL ( Robot Control "C" Library)
RCCL, Purdue
(1983)

RCCL, McGill
(1985)
RCCL, JPL
(1986)

Level II, Cybotech
(1987)
Timix,
U. of Pennsylvania
(1988)

RCCL, McGill
(1986)

RCCL, McGill
(1988)
Kali, McGill
(1988)

ALVIN, Purdue

Multi-RCCL, JPL
(1990)

RWRCCL, RWU
(2001)

42
Physical Implementation of RCCL
VAX Computer
VAX COMPUTER
RCCL
RCCL
PROGRAM
PROGRAM
SERIAL LINE FOR
LOADING I/O
CONTROL
PROGRAM

HIGH SPEED
PARALLEL LINK

LSI 11 CPU

TEACH
PENDANT

COMMUNICATION
I/O CONTROLLER

A/D
CONVERTER

6503

UNIMATION CONTROLLER

JOINT CONTROLLERS

TO ROBOT

43
RCCL Block Diagram (Purdue)

VAX 780

UNIBUS
Serial

Unimation Controller
CPU
LSI-11

CRT
RAM

Floppy

ROM

Teach
pend.

FIFO

Aux

DLV-11J

FIFO

Qbus
CLOCK

DRV-11
SERVO
INTERFACE

Digital
Servo

Analog
Servo
current
encoder
pulses

Power
AMP.
Arm Cable

PUMA 560 ARM

44
45
RCCL Block Diagram

Robot Arm
Current command

Motor state

Robot Controller

Servomotor Control

World Model

Torque-current mapping
Angles-encoders
mapping
Safety limits
Arm-dependent data
Set points
Positions
Trajectory

Arm Interface

Transformations
Equations

Generation

Updates

Cartesian
Joint Interpolation
Compliance

Queue

Arm state

Arm
Kinematics
Cartesian-joint
Jacobian
Arm
configuration

TG state Synchronization

Motion requests

User’s Process

46
Internal Control-level Execution Sequence
NORMAL TASK
AND PROCESS
EXECUTION
DRIVER
INTERRUPT
HANDLER
TAKES
CONTROL

SWITCH TO CONTROL
PROGRAM MEMORY
CONTEXT

EXECUTE CONTROL: CYCLE
read data from LSI 11
call RCI check routine
write commands to LSI 11
call control function

RESTORE
MEMORY
CONTEXT
INTERRUPT
HANDLER
RETURNS
NORMAL TASK
AND PROCESS
EXECUTION

47
Execution Cycle at the Control Level
CONTROL
LEVEL TASK

WAIT
FOR
NEXT
CYCLE
DATA
FROM
LSI 11

COMMANDS
TO
LSI 11

COMMAND
CHECKING

CONTROL
DIRECTIVE

INTERNAL
CHECKING

CONTROL
FUNCTION

OPEN
DIRECTIVE

IDLE

NORMAL
EXECUTION
RELEASE
DIRECTIVE
OR
ERROR CONDITION

CLOSE
DIRECTIVE

48
49
Position Equations
At point p1,
p1 = Z
T61 = Z-1
= R1
At point p2,
p1 = Z
T61 = Z-1
= R2
Let 2p1 = R2-1 R1

T61 E1
p1 E1-1
p1 T1
T62 E2
p2 E2-1
p2 T2
p1 E1 E2-1

From point p1 to point p2,
T6 = R2 2p1 Drive(s) T2
where Drive(0) = Identity
Drive(1) = 2p1-1 p2
Generally,
T6 = R P Drive Comply T
50
LEVEL II

51
The Four Levels of the Robot
Programming Environment

Menu Interface

Application Program
Level II Library
Device
Driver

52
RC-X Control Boards

Tape
Drive

Programming
Console

Supervisor
Board

System
Securities

Geometric
Operator
Board

Environment
Board

Axis Board 2

I/O

TTY
Sensor
Interface

Mother Board

Axis Board 1

Hand
Control

Axis Board 3

53
54
Kali

55
Kali
(A creature with many arms
in Hind mythology)
Characteristics:
1. Programming and control of multiple manipulators
operating in close cooperation.
2. Hybrid force/velocity task space with dynamic
compensation.
3. Selection of the largest amount of off-the-shelf
computing technology.
4. Open architecture design.
56
High Performance Computing System
Current trends:
1. Super or mini-super computers.
2. Workstations with special very high performance floating
point accelerations.
3. Special purpose chips such as DSPs (AT&T, TI., etc).
4. Many single board computers operating in parallel.

57
Kali Software Directory

58
Kali src Directory

59
Kali Block Diagram

SUN 3
workstation
ethernet
link
ethernet
board

VSB
CPU 1
68020

CPU 2
68020

CPU 3
68020

VME
DAC
board
power
amplifier

CPU 4
68020

brake
release

PUMA

560

memory
board

BUS
parallel
I/O board

robot I/O
board
power
on/off

CPU 5
68020

encoder
pulses

force/torque
sensor

ROBOT ARM

60
Run-Time Structure
1. Synchronous processes
i. Trajectory generator
ii. Servo control
iii. I/O process
2. Asynchronous process
i. User process
ii.Dynamic computations

Processor Communication
1. Message passing
2. Shared memory

61
Real-time Computing
1. Software support
Host: Unix-based workstation
Target: real-time operating system (VxWorks)
Target-host communication - ethernet

2. Hardware support
Servo CPUs:
1 ms servo rate PID control algorithm
One CPU for three joints (CPU3 and CPU4)
Computational CPUs:
I. User program, trajectory generator, kinematics (CPU1)
ii. Dynamic computation (CPU2)
iii. Supervisor - all I/O information handling(CPU0)
62
63
Kali Graphic Simulator

64
Kali Graphic Simulator

65
Kali Graphic Simulator

66
Spatial Relationships
(Ring Structures)
B M T A D C = Identity
where
B : the Manipulator base transform
M : the manipulator transform
T : the tool transform
A : the accommodation transform
D : the drive transform
C : the goal position of the control frame
67
68
69
ALVIN

70
ALVIN
(ALmost Very Intelligent, but Not)

- Purdue's new robot system

- Named by Prof. C S G Lee

- Advanced system in hardware and software

71
72
72
73
73
ALVIN Block Diagram(Stage I)
SUN 3
workstation
ethernet
link
ethernet
board

VSB
CPU 1
68030

CPU 2
68030

memory
board

VMEbus
VMEbus
adaptor

Unimation MK I
PUMA controller

Qbus
adaptor

PUMA

560

ROBOT ARM

74
ALVIN Block Diagram (Stage I)
VMEbus System
Engineering
Computer
Network

VSB
CPU 1
68030

CPU 0
68030

Ethernet
Controller

SharedMemory

VMEbus
Bus Adaptor

Unimation MK I Controller

Bus Adaptor
Qbus

DRV-11
SERVO
INTERFACE
CLOCK

Digital
Servo

Analog
Servo

Power
AMP.
Arm Cable

PUMA 560 ARM

75
ALVIN Block Diagram (Stage II)
Engineering Computer Network

SUN
workstation

Unimation
MK III
Controller
Qbus Adaptor
ADC

A-interface

VMEbus System
Ethernet Card
CPU 0 (68040)
CPU 1 (68040)
CPU 2 (68040)
CPU 3 (68030)
CPU 4 (68030)
Shared Memory
VMEbus Adaptor
VMEbus Adaptor

CRT
CRT

Unimation
MK I
Controller
Qbus Adaptor
ADC
DRV-11

Digital Servo
Paddle
Arm Cable

Arm Interface
Digital Servo
Clock / term.
Analog Servo
Paddle
Arm Cable

PUMA 562
Robot Arm

PUMA 560
Robot Arm

B-interface

76
optinal
terminal

disk
driver

teach
pendant

aux.

Alter

Super.

Quad serial
board

user
connect

CMOS memory
board

CPU
board
A
interface

operator
panel

CX PCA

Spare

Quad serial
board

I/O
interface

I/O PCA

digimig

B
interface

POT

digital servo
boards

ENC

C
interface

pow er
amplifier
high pow er
function bd.

servomotors

potentiometers

encoders
arm signal
board

PUMA

MK III

CONTROLLER
77
VME

BUS

VMEbus
adaptor

VME BUS
SYSTEM
UNIMATION
CONTROLLER

Qbus
adaptor
A
interface

CX PCA

B
interface

POT

digital servo
boards

ENC

C
interface

pow er
amplifier
high pow er
function bd.

servomotors

potentiometers

encoders
arm signal
board

PUMA MK III
Modified
for

Controller
ALVIN I
78
VME
Parallel I/O
Board

BUS

ADC
Board

DAC
Board

Robot I/O
Board

Motor
Current
ENC

CX PCA

POT

C
interface

pow er
amplifier
high pow er
function bd.

servomotors

potentiometers

encoders
arm signal
board

PUMA MK III
Modified
for

Controller
ALVIN II
79
ALVIN Block Diagram (Stage III)

SUN
workstation
VSB
CPU 1
68040

ethernet
board

CPU 2
68040

CPU 3
68040

VME
Vision
Board
CCD
Cameras

ADC
board

DAC
board

PUMA

560 & 562

CPU 5
68030

memory
board

BUS

robot I/O
board

power
amplifier

CPU 4
68030

parallel
I/O board

Unimation
MK I & III PUMA
Controllers

parallel
I/O board
force/torque
sensor

ROBOT ARMS

80
References
VME bus / VSB
Wayne Fischer, "IEEE P1014 - A Standard for the High-Performance VME Bus,"
IEEE Micro, Feb. 1985.
Paul L. Borrill, "MicroStandards Special Feature: A Comparison of 32-Bit Buses,"
IEEE Micro, Dec. 1985.
Walter S. Heath, "Software Design for Real-Time Multiprocessor VMEbus Systems,"
IEEE Micro, Dec. 1987.
Shlomo Pri-Tal, "MicroStandards - The VME subsystem bus (VSB),"
IEEE Micro, Apr. 1986.
Craig MacKenna and Rick Main, "Backup support gives VMEbus powerful multiprocessing
architecture," Electronics, Mar. 22, 1984.

VxWorks, VRTX
[vrtx 1] James F. Ready, "VRTX: A Real-Time Operating System for Embedded Microprocessor Applications,“
IEEE Micro, Aug. 1986.
[vrtx 2] J. Mattox, "A Multi-processor Approach to Using UNIX in a Real-Time Environment,“ WESCON '86
[vrtx 3] S. J. Doyle and P. Bunce, "Real-Time Multiprocessing Requirements,“ WESCON '86
[vxworks 1] Jerry Fiddler and Leslie Kirby, "How to use VMEbus and Ethernet to build real-time distributed systems,“
VMEbus Systems, Sep.-Oct. 1987.
[vxworks 2] Jerry Fiddler and David N. Wilner, "VxWorks/Unix Real-Time Network and Development System,“
Mini/MicroNortheast, 1986
[vxworks 3] Wind River Systems, VxWorks version 3.20, 1987.

81
PUMA/VAL
[puma 1] B. Fisher and V. Hayward, "Communication Routines Between the LSI 11-03 and the 6503's", Purdue University, (undated,
unpublished)
[puma 2] B. Fisher and V. Hayward, "Robot Controller,“ Purdue University, (undated, unpublished)
[puma 3] Unimation Inc., "Controlling the PUMA Series 500 Robot Arm Without using VAL",
(undated, unpublished, company confidential)
[puma 4] R. Vistnes, "Breaking Away From VAL, or How to use your PUMA without using VAL,“ Stanford University, (undated,
unpublished)
[puma 5] A. Melidy and A. A. Goldenberg, "Operation of PUMA 560 Without VAL,“ Robots 9, 1985
[puma 6] S.-Y. Lee, A Study on the Wrist Servo-Controller of PUMA-760 Robot, MS Thesis, Dept of ME, KAIST, Feb., 1986.
[puma 7] P. Nagy, "A New Approach to Operating a PUMA manipulator Without Using VAL,“ Robots 12 and Vision '88, 1988
[puma 8] P. Nagy, "The Puma 560 Industrial Robot: Inside-Out,“ Robots 12 and Vision '88, 1988
[puma 9] Unimation Inc., Unimate Puma Robot Volume I - Technical Manual 398H1, Oct. 1981
[puma 10] Unimation Inc., PUMA MARK III Robot 500 Series Models 552/562 Equipment Manual 398AH1, Jan. 1987
[puma 11] R. M. Stanley, Host Control of PUMA 6503-based Servos Communication Protocol and Arm Specific information, June 1986.
Unimation Inc., (company confidential)
[puma 12] P. I. Corke, The Unimation PUMA servo system, MTM-226, CSIRO, 1994
[val 1] Unimation Inc., User's Guide to VAL version 12, June 1980
[val 2] Unimation Inc., Programming Manual User's Guide to VAL II version 2.0,
Part 1 - Control from the System terminal
Part 2 - Communication with a Supervisory System
Part 3 - Real-Time Path Control
Dec. 1986.
[val 3] B. Shimano, "VAL: A Versatile Robot Programming and Control System,“ Proc. COMPSAC 79
[val 4] B. E. Shimano, C. C. geschke, and C. H. Spalding III, "VAL-II: A New Robot Control System for Automatic Manufacturing"
IEEE Intl Conf on Robotics, Mar. 1984
[unival 1] E. M. Onaga and L. L. Woodland, "Six-Axes Digital Torque Servo for Robotics,“ Robots 11/ISIR 17, 1987
[unival 2] Unimation Inc., UNIVAL Robot Controller - 19 inch Rack Mount Equipment Manual Apr., 1988

LEVEL II
[level II 1] R. Guptill and P. Stahura, "Multiple Robotic Devices: Position Specification and Coordination,“ IEEE Intl Conf. Robotics and
Automation, 1987

82
RCCL ( a Robot Control C Library)
[rccl 1] V. Hayward, Robot Real Time Control User's Manual, TR-EE 83-42,
School of Electrical Engineering, Purdue Univ., Oct. 1983.
[rccl 2] V. Hayward, Introduction to RCCL: A Robot Control 'C' Library, TR-EE 83-43,
School of Electrical Engineering, Purdue Univ., Oct. 1983.
[rccl 3] V. Hayward, RCCL User's Manual Version 1.0, TR-EE 83-46,
School of Electrical Engineering, Purdue Univ., Oct. 1983.
[rccl 4] V. Hayward, RCCL Version 1.0 and Related Software Source Code, TR-EE 83-47,
School of Electrical Engineering, Purdue Univ., Oct. 1983.
[rccl 5] J. Roger, "VAX-LSI Interprocessor FIFO", Purdue University, (undated, unpublished)
[rccl 6] V. Hayward and R. P. Paul, "Robot manipulator Control Under Unix,“ ISIR 13/ Robots 7, 1983.
[rccl 7] V. Hayward and R. P. Paul, "Robot manipulator Control under Unix RCCL: A Robot Control "C" Library," Intl J.
Robotics Research, Vol.5, No.4, 1986.
[rccl 8] J. S. Lee, S. Hayati, V. Hayward, and J. E. Lioyd, "Implementation of RCCL, a robot control C library on a
microVAX II,“ SPIE VoL. 726, Intelligent Robots and Computer Vision, 1986.
[rccl 9] D. Kossman and A. Malowany, "A Multi-processor Robot Control System for RCCL under iRMX,“ IEEE Intl Conf
Robotics and Automation, 1987.
[rccl 10] A. S. Malowany and M. Pilon, "An RCCL Simulator for the Microbo Robot,“ Computers in Eng., ASME, 1988.
[rccl 11] J. Lloyd, M. Parker, and R. McClain, "Extending the RCCL programming Environment to Multiple Robots and
Processors,“ IEEE Intl Conf Robotics and Automation, 1988.

Kali
V. Hayward, L. Daneshmend, A. Nilakantan, and A. Topper, A Selection of Papers "
KALI Project “ McGill Research Center for Intelligent Machines, Aug. 1, 1989.
A. Topper, The McGill Robot I/O Board Rev B, May 1989.

83
End of Part 1

84
RCCL Variants

1999

Gyoung H. Kim, Ph.D
RCCL-related Systems
•

RCCL v1.0-based

•

Multi-RCCL

•

RWRCCL

•

Qrobot

•

ARCL

86
RCCL v1.0
Configurations

87
RCCL (Purdue, 1983)
VAX-11780

UNIBUS
Serial

FIFO

Floppy

Teach
Pend.

Aux

CRT
CPU
LSI-11

RAM

ROM

DLV-11J

FIFO

Qbus
CLOCK

DRV-11
SERVO
INTERFACE

Unimation Controller

Digital
Servo

Analog
Servo
current
encoder
pulses

Power
AMP.
Arm Cable

PUMA 560 ARM

88
RCCL Architecture

89
RCCL Routines

90
Routine Explanation
(1) main(): The main program.
(2) startup():
Connect "setpoint_n()" to the clock interrupt.
Initialize and check hardware connection.
(3) move(park):
"park" is a built-in position. Usually the robot starts from this position.
(4) pumatask():
The actual user process. Users write only this routine.
(5) release(): Stop the trajectory generator.
(6) setpoint(): The trajectory generator.
(7) jnsend_n():
Send the setpoints to the robot controller in the global variable "chg".
(8) getobsj_n():
Get the actual robot position from the global variable "how".
(9) getobst_n():
Get the arm currents from the ADC from the global variable "how".

91
ALVIN-RCCL (Purdue, 1991)
68030s/VxWorks
VMEBus

CPU #1

CPU #2

Shared Mem.

Bus adapter

CRT

Bus adapter
Qbus
CLOCK

DRV-11
SERVO
INTERFACE

Unimation Controller

Digital
Servo

Analog
Servo
current
encoder
pulses

Power
AMP.
Arm Cable

PUMA 560 ARM

92
RCCL-ALVIN (Purdue, 1998)
Host PC/QNX
PCI Bus
Bus adapter

Bus adapter
Qbus
CLOCK

DRV-11
SERVO
INTERFACE

Unimation Controller

Digital
Servo

Analog
Servo
current
encoder
pulses

Power
AMP.
Arm Cable

PUMA 560 ARM

93
Software Architecture of ALVIN-RCCL

94
RCCL / RCI (Standard)
Host Computer

Host computer bus
Serial

Parallel I/O

Floppy

Unimation Controller
CPU
LSI-11

Teach
Pend.

Aux

CRT
RAM

ROM

DLV-11J

Parallel I/O

Qbus
CLOCK

DRV-11
SERVO
INTERFACE

Digital
Servo

Analog
Servo
current
encoder
pulses

Power
AMP.
Arm Cable

PUMA ARM

95
Multi-RCCL
•

Multi-RCCL v5.0
John Lloyd and Vincent Hayward, 1992.
Official release of Multi-RCCL.

•

Multi-RCCL v5.1
John Lloyd, 1997.
Simulation mode on Linux.

•

Multi-RCCL v5.1.4
Torsten Scherer, 1999.
Unofficial modifications for Linux.

96
Hardware Architecture of Multi-RCCL

97
RWRCCL
•

RWRCCL(Roger Williams RCCL):
RCCL modified by Matthew Stein at Roger Williams
University in 2000.

•

Configuration
– ARM: a single puma560 only.
– Hardware: PC + Trident TRC 004/006 boards.
– Software: RCCL ported to rtlinux.
Position control is added to RCCL.

98
RWRCCL (TRC Boards)
Host PC/Linux

ISA bus
TRC004 board

Unimation Controller
TRC006 Board

Power amplifier

Arm Cable

PUMA ARM

99
Hardware Architecture of RWRCCL

100
Software Architecture of RWRCCL

101
Graphic Simulator of RWRCCL

102
QRobot

•

A multitasking QNX/PC-based robot control system.

•

Developed at Clemson University in 1998.

•

Target arm: PUMA 560.

•

Hardware: PC + MultiQ board + Unimation controller.

103
RCCL-QRobot (MultiQ Board)
Host PC

PCI bus
MultiQ board

Unimation Controller
Preamplifiers
filtering circuits

Power amplifier

Arm Cable

PUMA ARM

104
ARCL
(Advanced Robot Control Language)

• Developed by Peter I. Corke, 1993.
• Inspired by an early version of RCCL.
• Monitor and Interpreter to run VAL-II programs.

105
Structure of ARCL

106
End of Part 2

107
Porting and Running the RCCL
on a Real-time Linux/PC

2005

Gyoung H. Kim, Ph.D

108
RCCL Poring
•

Porting RCCL v1.0 to Linux.

•

Developing a graphic simulator for RCCL v1.0.

•

Porting RCCL v1.0 to Linux/RTAI.

•

Porting RCCL v1.0 to Linux/Xenomai.

•

Patching Multi-RCCL for a newer Linux.

•

Patching RWRCCL for a newer Linux.

•

Porting RWRCCL to Linux/RTAI.
109
Test Environment
•
•
•
•

•
•

RCCL: v1.0 (1983)
Simderella: v2.0.2 (1995)
gcc: 2.9.x, 3.0.4, 3.2
Linux distribution:
- Redhat 7.3, Redhat 8.0
- Debian woody, Debian sarge
CPU: Pentium III, Pentium 4, VIA C3
RTAI
- Linux kernel: 2.4.19 (only for RTAI)
- RTAI distribution: 2.4.11
- RTAI modules used by RCCL:
rtai, rtai_sched, rtai_fifos, rtai_shm, rtai_libm

110
RCCL v1.0 on Linux

111
Running Modes of RCCL
(Modes are specified at h/switch.h)
1. PLAN mode (no signal or interrupt)
- setpoint_n() is repeatedly called until completed = 0.
2. FAKE mode (signal – simulated interrupt)
- At every 28ms, clock() generate a signal.
- Signal handler calls setpoint_n().
3. REAL mode (hardware interrupt)
- At every 28ms, a hardware interrupt signal is generated from
the Unimation controller.
- Interrupt service routine calls setpoint_n().
112
Running RCCL on Linux
(BSD mode with lib5)
•
•
•

RCCL v1.0 written in pre-ANSI C run on BSD Unix.
While older Linux distributions with lib5 were BSD-flavored,
recent Linux distributions with lib6 are SYSV-flavored.
To port RCCL v1.0 to Linux,
(1) Install BSD headers and libraries.
On debian, apt-get install altgcc
(2) Do the following modifications:
- Change <signal.h> and <sgtty.h> to
<bsd/signal.h> and <bsd/sgtty.h>, respectively.
- Implement nap( ) with usleep( ).
- Insert more FAKE and REAL mode switches for cleaner
compiling.
- Correct up some K & C C-language syntax.
- Remove malloc_l( ) and free_l( ) routines.
(3) Link the BSD library with the option, -lbsd.
113
Running RCCL on Linux
(SYSV mode with libc6)
(1) Change from BSD stuffs to SYSV
- sgtty to termio
- nap( ) to usleep( )
(2) Change pre-ANSI C stuffs to gcc
- const( ) to rccl_const ( )
(3) Change clock( ) location
- In RCCL v1.0, separated clock.c and vfork ( ) were used.
- Add clock( ) to main.c and replace vfork ( ) with fork ( ).
(4) Do the following minor modifications:
- Add print.c for more printouts.
- Add printst( ) to jnsend_n( ) of misc.c
- Create linux directory for examples.
- Move main.c from src to linux directory.
- Adjust the delay parameter of usleep( ).
- Add FAKE_DEBUG for better debugging.
114
Simderella
(A general-purpose robot simulator for kinematics)
Current joint angles

Simderella
connel
(robot controller)
Desired joint angles,
velocities, accelerations

simmel
(forward kinematics calculator)
Homogeneous matrices of
robot links

bemmel

(X-windows drawing program)
Graphic visualization
115
RCCL + Simderella (on-line)
(Simderella as a graphic simulator of RCCL)

For on-line simulation,
1.
2.
3.

4.
5.
6.

Modify connel/main.c so that desired joint angles are from j6,
a global variable of RCCL.
Combine the main.c of RCCL and the main.c of connel. After
setpoint_n( ), call user_move_robot( ) at each clock signal.
Modify user_move_robot( ) and move_robot( )
of connel/moving.c to bypass some dynamics and kinematics
calculations.
Adjust D-H parameters of PUMA arms.
Link RCCL libraries when compiling connel/main.c.
Run Simderella.

116
Screenshot of RCCL + Simderella

•
•

Right window: connel’s window printing out joint angles
from a RCCL program.
Left window: bemmel’s window drawing a PUMA arm with
the joint angles.
117
RCCL + Simderella (off-line)
For off-line simulation,
1.
Modify connel/main.c so that desired joint angles are read from
an external file, @.out and they are fed into user_move_robot( ).
2.
Modify user_mode_robot( ) and move_robot( )
of connel/moving.c to bypass some dynamics and kinematics
calculations.
3.
Adjust D-H parameters of PUMA arms.
4.
Compile connel/main.c.
5.
Run a RCCL program with “-d” option.
6.
Copy @.out to connel directory.
7.
Run Simderella.

118
RCCL v1.0 on Linux/RTAI

119
Porting RCCL to RTAI
Software Architecture

120
Software Components
1. User-space task
(1) User command monitor:
- Send start/stop/break/resume command to RT tasks in the
kernel space.
- Receive fifo messages from the RT tasks
- Print out the content of the shared memory.
2. Kernel-space tasks
(1) RT task #1: the main.c of RCCL (non-periodic)
(2) RT task #2: the TG + RTC + moper of RCCL (periodic task)
(3) fifo handler:
- Send commands to the RT tasks.
- Receive commands from User command monitor
3. Shared memory: Store all the output data from RT tasks.

121
RTAI Porting Procedure
1. Kernel memory allocation
Change malloc( ) and free ( ) to kmalloc( ) and kfree( ), respectively.

2. File output/stdout/stderr
Make shm_printf( ) and redirect all the file output/stdout/stderr to the shared
memory.

3. Modify kernel vprintf( ) to handle float variables.
4. Replacement of glibc
(1) sprintf – kernel’s lib.a
(2) strcat, strcpy, strlen - #include <rtai.h>
(3) math library – rtai_libm.o module
(4) others – gcc’s bootstarp libgcc.a

5. Follow the compiling/linking options of RTAI.
6. Distribution- or CPU-specific options:
(1) Redhat 7.3: use kgcc without -mpreferred-stack-boundary=2.
(2) Redhat 8.0: use gcc with -mpreferred-stack-boundary=2.
(3) VIA EPIA 800 board: use –m586
122
RTAI Running Procedure
1.

2.
3.
4.
5.

Install rtai modules
modprobe rtai
modprobe rtai_sched
modprobe rtai_fifos
modprobe rtai_shm
modprobe rtai_libm
Install the RCCL realtiime module
insmod rccl.o
Start the “user command monitor” as
./rccl_app
Type s/q/b/r keys at the prompt of “rccl_app” to
start/quit/break/resume realtime RCCL tasks.
After the RCCL tasks are finished, joint angles and other
information are saved to file “@.out”

123
RCCL Porting Results
•

•

•

RCCL on BSD- and SYSV-mode Linux
– PLAN/FAKE/REAL modes can be compiled.
– PLAN and FAKE modes run correctly.
– Clock intervals less than 1 ms work.
RCCL + Simderella in on-line mode
– FAKE mode with 30ms clock interval work.
– Faster than 30ms is impossible due to the slow socket
communication of Simderella.
RCCL on RTAI
– Clock rate 50Hz (20ms) works without any problem.
– All the examples which do not need a real arm can be
compiled and run correctly.
– A faster clock rate is possible when moper functions are
needed.
– For the Unination controller still with the digital servo boards,
clock interrupt signals should be received from the Unimation
controller to prevent clock drifts.
124
RWRCCL on Linux/RTAI

125
Analysis Results of RWRCCL

• Routines are fully documented.
• Trace and analysis of the program execution
flow are done.
• Documentation on the program execution flow
is almost done.

126
Updating RWRCCL to a newer RTLinux
•

Environment:
- debian sarge 3.1r1
- gcc 3.3 6
- glibc 2.3.2

•

RTLinux:
- rtlinux-3.2-rc1
- kernel 2.4.27

•

Patches
(1) gcc-dependent: newline in a literal string,
sys_errlist, varargs.h
(2) imake configuration bug.
127
Porting Results of RWRCCL-rtlinux
• Trajectory generation sampling interval: 27ms
• Servo sampling interval: 0.9 ms
(position control mode, PID control)
• Simulation mode needs a slower sampling
rate due to the slow X11 graphics.
• Dry-running mode in real-time is added.

128
Porting RWRCCL to RTAI
•

RTAI:
- rtai-3.2
- kernel 2.4.27

•

Patches
(1) rtlinux-dependent directories:
$RCCL/jls (kernel modules)
$RCCL/puma (user-space routines)
(2) Utilities for the puma interface card:
$RCCL/rtlinux
(3) Conflicting macro definition:
FREE(x) is changed to RCCL_FREE(x)
(FREE(x) is also defined at rtai_lxrt.h)
129
Ongoing Projects
•

Modifying RCCL for running various arms.

•

Porting RCCL v1.0 to Xenomai.

•

Developing a front-end interpreter for RCCL.

•

Modifying RCCL v1.0 for running multiple arms in
independent and/or coordinative modes.

•

Running RCCL on Non-X86 CPUs.

130
End of Part 3

131

Weitere ähnliche Inhalte

Was ist angesagt?

Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...
Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...
Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...Waqas Tariq
 
RMV Mechanics
RMV MechanicsRMV Mechanics
RMV Mechanicsanand hd
 
Design Baseline Computed Torque Controller
Design Baseline Computed Torque ControllerDesign Baseline Computed Torque Controller
Design Baseline Computed Torque ControllerCSCJournals
 
Unit IV robotics-- Kinematics
Unit IV robotics-- KinematicsUnit IV robotics-- Kinematics
Unit IV robotics-- KinematicsDr.G.Saravanan
 
RMV robot programming
RMV robot programmingRMV robot programming
RMV robot programminganand hd
 
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...IRJET Journal
 
Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...
Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...
Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...Waqas Tariq
 
Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...
Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...
Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...CSCJournals
 
EE323 Mini-Project - Line tracing robot
EE323 Mini-Project - Line tracing robotEE323 Mini-Project - Line tracing robot
EE323 Mini-Project - Line tracing robotPraneel Chand
 
Robotics corporate-training-in-mumbai
Robotics corporate-training-in-mumbaiRobotics corporate-training-in-mumbai
Robotics corporate-training-in-mumbaiUnmesh Baile
 
Industrial robot
Industrial robotIndustrial robot
Industrial robotJatin Garg
 
Robotics and Automation basic concepts
Robotics and Automation   basic conceptsRobotics and Automation   basic concepts
Robotics and Automation basic conceptsJAIGANESH SEKAR
 
Design of a controller for wheeled mobile robots based on automatic movement ...
Design of a controller for wheeled mobile robots based on automatic movement ...Design of a controller for wheeled mobile robots based on automatic movement ...
Design of a controller for wheeled mobile robots based on automatic movement ...TELKOMNIKA JOURNAL
 
Industrial robotics
Industrial roboticsIndustrial robotics
Industrial roboticsjjenishmech
 
Robotics and Automation_Case Studies
Robotics and Automation_Case StudiesRobotics and Automation_Case Studies
Robotics and Automation_Case StudiesJAIGANESH SEKAR
 
Unit IV Solved Question Bank- Robotics Engineering
Unit IV  Solved Question Bank-  Robotics EngineeringUnit IV  Solved Question Bank-  Robotics Engineering
Unit IV Solved Question Bank- Robotics EngineeringSanjay Singh
 

Was ist angesagt? (20)

Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...
Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...
Evolutionary Design of Mathematical tunable FPGA Based MIMO Fuzzy Estimator S...
 
RMV Mechanics
RMV MechanicsRMV Mechanics
RMV Mechanics
 
Robot Path Control
Robot Path ControlRobot Path Control
Robot Path Control
 
Design Baseline Computed Torque Controller
Design Baseline Computed Torque ControllerDesign Baseline Computed Torque Controller
Design Baseline Computed Torque Controller
 
Unit IV robotics-- Kinematics
Unit IV robotics-- KinematicsUnit IV robotics-- Kinematics
Unit IV robotics-- Kinematics
 
RMV robot programming
RMV robot programmingRMV robot programming
RMV robot programming
 
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
IRJET- Design and Fabrication of PLC and SCADA based Robotic Arm for Material...
 
Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...
Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...
Design Novel Nonlinear Controller Applied to Robot Manipulator: Design New Fe...
 
Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...
Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...
Adaptive MIMO Fuzzy Compensate Fuzzy Sliding Mode Algorithm: Applied to Secon...
 
EE323 Mini-Project - Line tracing robot
EE323 Mini-Project - Line tracing robotEE323 Mini-Project - Line tracing robot
EE323 Mini-Project - Line tracing robot
 
Robotics corporate-training-in-mumbai
Robotics corporate-training-in-mumbaiRobotics corporate-training-in-mumbai
Robotics corporate-training-in-mumbai
 
Industrial robot
Industrial robotIndustrial robot
Industrial robot
 
Robotics and Automation basic concepts
Robotics and Automation   basic conceptsRobotics and Automation   basic concepts
Robotics and Automation basic concepts
 
E43012628
E43012628E43012628
E43012628
 
Ie450pp8
Ie450pp8Ie450pp8
Ie450pp8
 
Design of a controller for wheeled mobile robots based on automatic movement ...
Design of a controller for wheeled mobile robots based on automatic movement ...Design of a controller for wheeled mobile robots based on automatic movement ...
Design of a controller for wheeled mobile robots based on automatic movement ...
 
Industrial robotics
Industrial roboticsIndustrial robotics
Industrial robotics
 
Industrial robots
Industrial robotsIndustrial robots
Industrial robots
 
Robotics and Automation_Case Studies
Robotics and Automation_Case StudiesRobotics and Automation_Case Studies
Robotics and Automation_Case Studies
 
Unit IV Solved Question Bank- Robotics Engineering
Unit IV  Solved Question Bank-  Robotics EngineeringUnit IV  Solved Question Bank-  Robotics Engineering
Unit IV Solved Question Bank- Robotics Engineering
 

Ähnlich wie Programming and-controlling-puma-arms

Advanced plc programming & scada system design
Advanced plc programming & scada system designAdvanced plc programming & scada system design
Advanced plc programming & scada system designlakshanwalpita
 
Introduction to PLC
Introduction to PLCIntroduction to PLC
Introduction to PLCVeerakumar S
 
unit 1ARM INTRODUCTION.pptx
unit 1ARM INTRODUCTION.pptxunit 1ARM INTRODUCTION.pptx
unit 1ARM INTRODUCTION.pptxKandavelEee
 
Automation PLC & SCADA
Automation PLC & SCADA Automation PLC & SCADA
Automation PLC & SCADA NITISH SINGH
 
programmable logic controller presentation
programmable logic controller presentationprogrammable logic controller presentation
programmable logic controller presentationAshutosh Verma
 
CodeWarrior, Linux; OrCad and Hyperlynx; QMS Tools
CodeWarrior, Linux; OrCad and Hyperlynx; QMS ToolsCodeWarrior, Linux; OrCad and Hyperlynx; QMS Tools
CodeWarrior, Linux; OrCad and Hyperlynx; QMS Toolsdjerrybellott
 
PLC and Industrial Automation - Technology Overview
PLC and Industrial Automation - Technology OverviewPLC and Industrial Automation - Technology Overview
PLC and Industrial Automation - Technology OverviewNereus Fernandes
 
MCF51AG ColdFire MCUs for Large Appliance And Industrial Applications
MCF51AG ColdFire MCUs for Large Appliance And Industrial ApplicationsMCF51AG ColdFire MCUs for Large Appliance And Industrial Applications
MCF51AG ColdFire MCUs for Large Appliance And Industrial ApplicationsPremier Farnell
 
topic-2-topic-3.ppt
topic-2-topic-3.ppttopic-2-topic-3.ppt
topic-2-topic-3.pptericsassi2
 
Embedded systems notes
Embedded systems notesEmbedded systems notes
Embedded systems notesShikha Sharma
 
OPAL-RT RT13 Conference: Rapid control prototyping solutions for power electr...
OPAL-RT RT13 Conference: Rapid control prototyping solutions for power electr...OPAL-RT RT13 Conference: Rapid control prototyping solutions for power electr...
OPAL-RT RT13 Conference: Rapid control prototyping solutions for power electr...OPAL-RT TECHNOLOGIES
 
INDUSTRIAL AUTOMATION ( SHUBHAM KURDIYA)
INDUSTRIAL AUTOMATION ( SHUBHAM KURDIYA)INDUSTRIAL AUTOMATION ( SHUBHAM KURDIYA)
INDUSTRIAL AUTOMATION ( SHUBHAM KURDIYA)Řőmĕő Šhűbhąm
 
Feasible Interfacing and Programming of Industrial Control Technology Unit wi...
Feasible Interfacing and Programming of Industrial Control Technology Unit wi...Feasible Interfacing and Programming of Industrial Control Technology Unit wi...
Feasible Interfacing and Programming of Industrial Control Technology Unit wi...theijes
 
PLC Introduction Details
PLC Introduction DetailsPLC Introduction Details
PLC Introduction Detailssuhaskhadake
 

Ähnlich wie Programming and-controlling-puma-arms (20)

Quadcopter Presentation
Quadcopter PresentationQuadcopter Presentation
Quadcopter Presentation
 
Advanced plc programming & scada system design
Advanced plc programming & scada system designAdvanced plc programming & scada system design
Advanced plc programming & scada system design
 
Plc
PlcPlc
Plc
 
Introduction to PLC
Introduction to PLCIntroduction to PLC
Introduction to PLC
 
unit 1ARM INTRODUCTION.pptx
unit 1ARM INTRODUCTION.pptxunit 1ARM INTRODUCTION.pptx
unit 1ARM INTRODUCTION.pptx
 
Automation PLC & SCADA
Automation PLC & SCADA Automation PLC & SCADA
Automation PLC & SCADA
 
programmable logic controller presentation
programmable logic controller presentationprogrammable logic controller presentation
programmable logic controller presentation
 
CodeWarrior, Linux; OrCad and Hyperlynx; QMS Tools
CodeWarrior, Linux; OrCad and Hyperlynx; QMS ToolsCodeWarrior, Linux; OrCad and Hyperlynx; QMS Tools
CodeWarrior, Linux; OrCad and Hyperlynx; QMS Tools
 
module 1.pptx
module 1.pptxmodule 1.pptx
module 1.pptx
 
Plc seminar abu
Plc seminar    abuPlc seminar    abu
Plc seminar abu
 
plc8-200417125816.pdf
plc8-200417125816.pdfplc8-200417125816.pdf
plc8-200417125816.pdf
 
PLC and Industrial Automation - Technology Overview
PLC and Industrial Automation - Technology OverviewPLC and Industrial Automation - Technology Overview
PLC and Industrial Automation - Technology Overview
 
MCF51AG ColdFire MCUs for Large Appliance And Industrial Applications
MCF51AG ColdFire MCUs for Large Appliance And Industrial ApplicationsMCF51AG ColdFire MCUs for Large Appliance And Industrial Applications
MCF51AG ColdFire MCUs for Large Appliance And Industrial Applications
 
PLC General
PLC   GeneralPLC   General
PLC General
 
topic-2-topic-3.ppt
topic-2-topic-3.ppttopic-2-topic-3.ppt
topic-2-topic-3.ppt
 
Embedded systems notes
Embedded systems notesEmbedded systems notes
Embedded systems notes
 
OPAL-RT RT13 Conference: Rapid control prototyping solutions for power electr...
OPAL-RT RT13 Conference: Rapid control prototyping solutions for power electr...OPAL-RT RT13 Conference: Rapid control prototyping solutions for power electr...
OPAL-RT RT13 Conference: Rapid control prototyping solutions for power electr...
 
INDUSTRIAL AUTOMATION ( SHUBHAM KURDIYA)
INDUSTRIAL AUTOMATION ( SHUBHAM KURDIYA)INDUSTRIAL AUTOMATION ( SHUBHAM KURDIYA)
INDUSTRIAL AUTOMATION ( SHUBHAM KURDIYA)
 
Feasible Interfacing and Programming of Industrial Control Technology Unit wi...
Feasible Interfacing and Programming of Industrial Control Technology Unit wi...Feasible Interfacing and Programming of Industrial Control Technology Unit wi...
Feasible Interfacing and Programming of Industrial Control Technology Unit wi...
 
PLC Introduction Details
PLC Introduction DetailsPLC Introduction Details
PLC Introduction Details
 

Kürzlich hochgeladen

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Kürzlich hochgeladen (20)

Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

Programming and-controlling-puma-arms

  • 1. Programming and Controlling PUMA Robot Arms 1989, 1999, 2005 Gyoung H. Kim, Ph.D. gyounghkim@open-robotics.com 1
  • 2. Contents I. Controlling PUMA Robot Arms with VAL, RCCL, Kali, or ALVIN, 1989. II. RCCL Variants and RCCL Porting Guide, 1999. III. Porting and Running the RCCL on a Realtime Linux/PC, 2005. 2
  • 3. Controlling PUMA Robot Arms With VAL, RCCL, Kali, or ALVIN 1989 Gyoung H. Kim, Ph.D 3
  • 4. Contents • PUMA - MK I controller - MK II controller - MK III controller - UNIVAL controller • RCCL • Level II • Kali • ALVIN 4
  • 6. PUMA (Programmable, Universal Machines for Assembly) • Vendor: Unimation,Inc. • Arm Types: 260 Series, 550 Series, 560 Series, 552 Series, 562 Series 760 Series • Controller Types: Mark I, Mark II, Mark III, UNIVAL • Robot Programming Language: VAL, VAL II 6
  • 7. 7
  • 8. 8
  • 9. 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. 13
  • 14. 14
  • 15. 15
  • 16. 16
  • 17. 17
  • 18. 18
  • 19. 19
  • 20. 20
  • 21. 21
  • 22. 22
  • 23. 23
  • 24. 24
  • 25. 25
  • 26. PUMA MK III Controller Configuration 1. control card set [1] LSI-11/73 CPU board [2] 64 KW RAM board [3] quad serial board [4] parallel I/O board [5] A interface card [6] B interface card [7] digital servo boards [8] arm signal interface board 26
  • 27. 2. power card set [1] C interface board [2] high power function board [3] power amplifier boards - PWM type 27
  • 28. Servo Code Block Diagram Main Timer Interrupt Initialization Disable Host Interrupt Wait for interrupt Read Encoder Counter Host Interrupt Deferred Command ? NO YES Enable Host Interrupt Save command in buffer Execute immediate command Return Position/current control Deferred Command Execution Return 28
  • 29. 29
  • 30. 30
  • 31. 31
  • 33. UNIVAL Block Diagram Unival Controller Torque Processor Board Servo Control Module Arm Interface Board Major Power Amplifier Expansion Memory (Optional) Distribution Board CX Module VDT Disk Drive Aux. Port Smart I/O Teach Pendant Minor Power Amplifier Signal Connection Board Robot Arm 33
  • 34. Typical Controller with Analog Torque Loop Torque Loop / Amplifier DAC M E N AXES Digital Servo and Robot Controller N Axes 34
  • 35. UNIVAL Torque Processor Loop Software Torque Command + - + Kp Ki 1-Z Hardware + Linearlizer PWM Chip Power Amp Motor -1 + + A/D Current Offset 35
  • 36. UNIVAL Signal Loops Arm Cable AIB SCM Command from VAL Position and velocity Servos TPB PWM ROBOT AMPS Current Feedback Feedback from Robot VAL Position Feedback upon Startup Encoders Potentiometers 36
  • 37. UNIVAL Servo System Block Diagram Arm Interface Module Servo and Robot Control Module M Torque Processor Module A/D 3 Axes PWM Chip 3 Axes Power AMP 3 Axes PWM Chip E 3 Axes Power AMP MUX Current Feedback Encoder Feedback 37
  • 38. PUMA Control with VAL 1. The hardware does not provide sufficient --- it is too slow for real-time control. processing power 2. The system is not designed to communicate with external computer in a flexible way. The I/O module is only able to provide control signals and process elementary information received from sensors. 3. Memory resources may not be sufficient for large programs. 4. Communication with other computers is limited to interactions with VAL. 5. Inverse kinematics software is not available, hence, trajectories cannot be defined off-line. 6. Control of the arm is performed at the joint level, providing only joint position regulation. 38
  • 39. PUMA Control without VAL Advantages : 1. The ability to implement closed-loop control of the manipulator in both task and joint configuration spaces. 2. The ability to use the more powerful processor for inverse kinematics, for trajectory planning, and for control in real-time 3. The ability to test advanced mathematical models for dynamics and real-time control 4. The ability to connect sensory devices through serial, parallel or bus interface 5. The ability to create a new control language which includes commands not available in VAL. 6. The ability to access to a database. 39
  • 40. Alternative Hardware Configurations 1. The PUMA's Arm Interface Board is disconnected from the DRV11 card and connected to the parallel interface card in the external machine(only for MK I controllers). 2. Both computers are connected through a standard DEC parallel interface, which offers higher data rates than those of a serial interface. 3. A custom-built interface for bus-to-bus connection can be used. This interface contains a FIFO (First In First Out) hardware buffer. 4. Serial interface through the DLV-11J serial card in the PUMA controller is used. 40
  • 42. RCCL ( Robot Control "C" Library) RCCL, Purdue (1983) RCCL, McGill (1985) RCCL, JPL (1986) Level II, Cybotech (1987) Timix, U. of Pennsylvania (1988) RCCL, McGill (1986) RCCL, McGill (1988) Kali, McGill (1988) ALVIN, Purdue Multi-RCCL, JPL (1990) RWRCCL, RWU (2001) 42
  • 43. Physical Implementation of RCCL VAX Computer VAX COMPUTER RCCL RCCL PROGRAM PROGRAM SERIAL LINE FOR LOADING I/O CONTROL PROGRAM HIGH SPEED PARALLEL LINK LSI 11 CPU TEACH PENDANT COMMUNICATION I/O CONTROLLER A/D CONVERTER 6503 UNIMATION CONTROLLER JOINT CONTROLLERS TO ROBOT 43
  • 44. RCCL Block Diagram (Purdue) VAX 780 UNIBUS Serial Unimation Controller CPU LSI-11 CRT RAM Floppy ROM Teach pend. FIFO Aux DLV-11J FIFO Qbus CLOCK DRV-11 SERVO INTERFACE Digital Servo Analog Servo current encoder pulses Power AMP. Arm Cable PUMA 560 ARM 44
  • 45. 45
  • 46. RCCL Block Diagram Robot Arm Current command Motor state Robot Controller Servomotor Control World Model Torque-current mapping Angles-encoders mapping Safety limits Arm-dependent data Set points Positions Trajectory Arm Interface Transformations Equations Generation Updates Cartesian Joint Interpolation Compliance Queue Arm state Arm Kinematics Cartesian-joint Jacobian Arm configuration TG state Synchronization Motion requests User’s Process 46
  • 47. Internal Control-level Execution Sequence NORMAL TASK AND PROCESS EXECUTION DRIVER INTERRUPT HANDLER TAKES CONTROL SWITCH TO CONTROL PROGRAM MEMORY CONTEXT EXECUTE CONTROL: CYCLE read data from LSI 11 call RCI check routine write commands to LSI 11 call control function RESTORE MEMORY CONTEXT INTERRUPT HANDLER RETURNS NORMAL TASK AND PROCESS EXECUTION 47
  • 48. Execution Cycle at the Control Level CONTROL LEVEL TASK WAIT FOR NEXT CYCLE DATA FROM LSI 11 COMMANDS TO LSI 11 COMMAND CHECKING CONTROL DIRECTIVE INTERNAL CHECKING CONTROL FUNCTION OPEN DIRECTIVE IDLE NORMAL EXECUTION RELEASE DIRECTIVE OR ERROR CONDITION CLOSE DIRECTIVE 48
  • 49. 49
  • 50. Position Equations At point p1, p1 = Z T61 = Z-1 = R1 At point p2, p1 = Z T61 = Z-1 = R2 Let 2p1 = R2-1 R1 T61 E1 p1 E1-1 p1 T1 T62 E2 p2 E2-1 p2 T2 p1 E1 E2-1 From point p1 to point p2, T6 = R2 2p1 Drive(s) T2 where Drive(0) = Identity Drive(1) = 2p1-1 p2 Generally, T6 = R P Drive Comply T 50
  • 52. The Four Levels of the Robot Programming Environment Menu Interface Application Program Level II Library Device Driver 52
  • 53. RC-X Control Boards Tape Drive Programming Console Supervisor Board System Securities Geometric Operator Board Environment Board Axis Board 2 I/O TTY Sensor Interface Mother Board Axis Board 1 Hand Control Axis Board 3 53
  • 54. 54
  • 56. Kali (A creature with many arms in Hind mythology) Characteristics: 1. Programming and control of multiple manipulators operating in close cooperation. 2. Hybrid force/velocity task space with dynamic compensation. 3. Selection of the largest amount of off-the-shelf computing technology. 4. Open architecture design. 56
  • 57. High Performance Computing System Current trends: 1. Super or mini-super computers. 2. Workstations with special very high performance floating point accelerations. 3. Special purpose chips such as DSPs (AT&T, TI., etc). 4. Many single board computers operating in parallel. 57
  • 60. Kali Block Diagram SUN 3 workstation ethernet link ethernet board VSB CPU 1 68020 CPU 2 68020 CPU 3 68020 VME DAC board power amplifier CPU 4 68020 brake release PUMA 560 memory board BUS parallel I/O board robot I/O board power on/off CPU 5 68020 encoder pulses force/torque sensor ROBOT ARM 60
  • 61. Run-Time Structure 1. Synchronous processes i. Trajectory generator ii. Servo control iii. I/O process 2. Asynchronous process i. User process ii.Dynamic computations Processor Communication 1. Message passing 2. Shared memory 61
  • 62. Real-time Computing 1. Software support Host: Unix-based workstation Target: real-time operating system (VxWorks) Target-host communication - ethernet 2. Hardware support Servo CPUs: 1 ms servo rate PID control algorithm One CPU for three joints (CPU3 and CPU4) Computational CPUs: I. User program, trajectory generator, kinematics (CPU1) ii. Dynamic computation (CPU2) iii. Supervisor - all I/O information handling(CPU0) 62
  • 63. 63
  • 67. Spatial Relationships (Ring Structures) B M T A D C = Identity where B : the Manipulator base transform M : the manipulator transform T : the tool transform A : the accommodation transform D : the drive transform C : the goal position of the control frame 67
  • 68. 68
  • 69. 69
  • 71. ALVIN (ALmost Very Intelligent, but Not) - Purdue's new robot system - Named by Prof. C S G Lee - Advanced system in hardware and software 71
  • 72. 72 72
  • 73. 73 73
  • 74. ALVIN Block Diagram(Stage I) SUN 3 workstation ethernet link ethernet board VSB CPU 1 68030 CPU 2 68030 memory board VMEbus VMEbus adaptor Unimation MK I PUMA controller Qbus adaptor PUMA 560 ROBOT ARM 74
  • 75. ALVIN Block Diagram (Stage I) VMEbus System Engineering Computer Network VSB CPU 1 68030 CPU 0 68030 Ethernet Controller SharedMemory VMEbus Bus Adaptor Unimation MK I Controller Bus Adaptor Qbus DRV-11 SERVO INTERFACE CLOCK Digital Servo Analog Servo Power AMP. Arm Cable PUMA 560 ARM 75
  • 76. ALVIN Block Diagram (Stage II) Engineering Computer Network SUN workstation Unimation MK III Controller Qbus Adaptor ADC A-interface VMEbus System Ethernet Card CPU 0 (68040) CPU 1 (68040) CPU 2 (68040) CPU 3 (68030) CPU 4 (68030) Shared Memory VMEbus Adaptor VMEbus Adaptor CRT CRT Unimation MK I Controller Qbus Adaptor ADC DRV-11 Digital Servo Paddle Arm Cable Arm Interface Digital Servo Clock / term. Analog Servo Paddle Arm Cable PUMA 562 Robot Arm PUMA 560 Robot Arm B-interface 76
  • 77. optinal terminal disk driver teach pendant aux. Alter Super. Quad serial board user connect CMOS memory board CPU board A interface operator panel CX PCA Spare Quad serial board I/O interface I/O PCA digimig B interface POT digital servo boards ENC C interface pow er amplifier high pow er function bd. servomotors potentiometers encoders arm signal board PUMA MK III CONTROLLER 77
  • 78. VME BUS VMEbus adaptor VME BUS SYSTEM UNIMATION CONTROLLER Qbus adaptor A interface CX PCA B interface POT digital servo boards ENC C interface pow er amplifier high pow er function bd. servomotors potentiometers encoders arm signal board PUMA MK III Modified for Controller ALVIN I 78
  • 79. VME Parallel I/O Board BUS ADC Board DAC Board Robot I/O Board Motor Current ENC CX PCA POT C interface pow er amplifier high pow er function bd. servomotors potentiometers encoders arm signal board PUMA MK III Modified for Controller ALVIN II 79
  • 80. ALVIN Block Diagram (Stage III) SUN workstation VSB CPU 1 68040 ethernet board CPU 2 68040 CPU 3 68040 VME Vision Board CCD Cameras ADC board DAC board PUMA 560 & 562 CPU 5 68030 memory board BUS robot I/O board power amplifier CPU 4 68030 parallel I/O board Unimation MK I & III PUMA Controllers parallel I/O board force/torque sensor ROBOT ARMS 80
  • 81. References VME bus / VSB Wayne Fischer, "IEEE P1014 - A Standard for the High-Performance VME Bus," IEEE Micro, Feb. 1985. Paul L. Borrill, "MicroStandards Special Feature: A Comparison of 32-Bit Buses," IEEE Micro, Dec. 1985. Walter S. Heath, "Software Design for Real-Time Multiprocessor VMEbus Systems," IEEE Micro, Dec. 1987. Shlomo Pri-Tal, "MicroStandards - The VME subsystem bus (VSB)," IEEE Micro, Apr. 1986. Craig MacKenna and Rick Main, "Backup support gives VMEbus powerful multiprocessing architecture," Electronics, Mar. 22, 1984. VxWorks, VRTX [vrtx 1] James F. Ready, "VRTX: A Real-Time Operating System for Embedded Microprocessor Applications,“ IEEE Micro, Aug. 1986. [vrtx 2] J. Mattox, "A Multi-processor Approach to Using UNIX in a Real-Time Environment,“ WESCON '86 [vrtx 3] S. J. Doyle and P. Bunce, "Real-Time Multiprocessing Requirements,“ WESCON '86 [vxworks 1] Jerry Fiddler and Leslie Kirby, "How to use VMEbus and Ethernet to build real-time distributed systems,“ VMEbus Systems, Sep.-Oct. 1987. [vxworks 2] Jerry Fiddler and David N. Wilner, "VxWorks/Unix Real-Time Network and Development System,“ Mini/MicroNortheast, 1986 [vxworks 3] Wind River Systems, VxWorks version 3.20, 1987. 81
  • 82. PUMA/VAL [puma 1] B. Fisher and V. Hayward, "Communication Routines Between the LSI 11-03 and the 6503's", Purdue University, (undated, unpublished) [puma 2] B. Fisher and V. Hayward, "Robot Controller,“ Purdue University, (undated, unpublished) [puma 3] Unimation Inc., "Controlling the PUMA Series 500 Robot Arm Without using VAL", (undated, unpublished, company confidential) [puma 4] R. Vistnes, "Breaking Away From VAL, or How to use your PUMA without using VAL,“ Stanford University, (undated, unpublished) [puma 5] A. Melidy and A. A. Goldenberg, "Operation of PUMA 560 Without VAL,“ Robots 9, 1985 [puma 6] S.-Y. Lee, A Study on the Wrist Servo-Controller of PUMA-760 Robot, MS Thesis, Dept of ME, KAIST, Feb., 1986. [puma 7] P. Nagy, "A New Approach to Operating a PUMA manipulator Without Using VAL,“ Robots 12 and Vision '88, 1988 [puma 8] P. Nagy, "The Puma 560 Industrial Robot: Inside-Out,“ Robots 12 and Vision '88, 1988 [puma 9] Unimation Inc., Unimate Puma Robot Volume I - Technical Manual 398H1, Oct. 1981 [puma 10] Unimation Inc., PUMA MARK III Robot 500 Series Models 552/562 Equipment Manual 398AH1, Jan. 1987 [puma 11] R. M. Stanley, Host Control of PUMA 6503-based Servos Communication Protocol and Arm Specific information, June 1986. Unimation Inc., (company confidential) [puma 12] P. I. Corke, The Unimation PUMA servo system, MTM-226, CSIRO, 1994 [val 1] Unimation Inc., User's Guide to VAL version 12, June 1980 [val 2] Unimation Inc., Programming Manual User's Guide to VAL II version 2.0, Part 1 - Control from the System terminal Part 2 - Communication with a Supervisory System Part 3 - Real-Time Path Control Dec. 1986. [val 3] B. Shimano, "VAL: A Versatile Robot Programming and Control System,“ Proc. COMPSAC 79 [val 4] B. E. Shimano, C. C. geschke, and C. H. Spalding III, "VAL-II: A New Robot Control System for Automatic Manufacturing" IEEE Intl Conf on Robotics, Mar. 1984 [unival 1] E. M. Onaga and L. L. Woodland, "Six-Axes Digital Torque Servo for Robotics,“ Robots 11/ISIR 17, 1987 [unival 2] Unimation Inc., UNIVAL Robot Controller - 19 inch Rack Mount Equipment Manual Apr., 1988 LEVEL II [level II 1] R. Guptill and P. Stahura, "Multiple Robotic Devices: Position Specification and Coordination,“ IEEE Intl Conf. Robotics and Automation, 1987 82
  • 83. RCCL ( a Robot Control C Library) [rccl 1] V. Hayward, Robot Real Time Control User's Manual, TR-EE 83-42, School of Electrical Engineering, Purdue Univ., Oct. 1983. [rccl 2] V. Hayward, Introduction to RCCL: A Robot Control 'C' Library, TR-EE 83-43, School of Electrical Engineering, Purdue Univ., Oct. 1983. [rccl 3] V. Hayward, RCCL User's Manual Version 1.0, TR-EE 83-46, School of Electrical Engineering, Purdue Univ., Oct. 1983. [rccl 4] V. Hayward, RCCL Version 1.0 and Related Software Source Code, TR-EE 83-47, School of Electrical Engineering, Purdue Univ., Oct. 1983. [rccl 5] J. Roger, "VAX-LSI Interprocessor FIFO", Purdue University, (undated, unpublished) [rccl 6] V. Hayward and R. P. Paul, "Robot manipulator Control Under Unix,“ ISIR 13/ Robots 7, 1983. [rccl 7] V. Hayward and R. P. Paul, "Robot manipulator Control under Unix RCCL: A Robot Control "C" Library," Intl J. Robotics Research, Vol.5, No.4, 1986. [rccl 8] J. S. Lee, S. Hayati, V. Hayward, and J. E. Lioyd, "Implementation of RCCL, a robot control C library on a microVAX II,“ SPIE VoL. 726, Intelligent Robots and Computer Vision, 1986. [rccl 9] D. Kossman and A. Malowany, "A Multi-processor Robot Control System for RCCL under iRMX,“ IEEE Intl Conf Robotics and Automation, 1987. [rccl 10] A. S. Malowany and M. Pilon, "An RCCL Simulator for the Microbo Robot,“ Computers in Eng., ASME, 1988. [rccl 11] J. Lloyd, M. Parker, and R. McClain, "Extending the RCCL programming Environment to Multiple Robots and Processors,“ IEEE Intl Conf Robotics and Automation, 1988. Kali V. Hayward, L. Daneshmend, A. Nilakantan, and A. Topper, A Selection of Papers " KALI Project “ McGill Research Center for Intelligent Machines, Aug. 1, 1989. A. Topper, The McGill Robot I/O Board Rev B, May 1989. 83
  • 84. End of Part 1 84
  • 88. RCCL (Purdue, 1983) VAX-11780 UNIBUS Serial FIFO Floppy Teach Pend. Aux CRT CPU LSI-11 RAM ROM DLV-11J FIFO Qbus CLOCK DRV-11 SERVO INTERFACE Unimation Controller Digital Servo Analog Servo current encoder pulses Power AMP. Arm Cable PUMA 560 ARM 88
  • 91. Routine Explanation (1) main(): The main program. (2) startup(): Connect "setpoint_n()" to the clock interrupt. Initialize and check hardware connection. (3) move(park): "park" is a built-in position. Usually the robot starts from this position. (4) pumatask(): The actual user process. Users write only this routine. (5) release(): Stop the trajectory generator. (6) setpoint(): The trajectory generator. (7) jnsend_n(): Send the setpoints to the robot controller in the global variable "chg". (8) getobsj_n(): Get the actual robot position from the global variable "how". (9) getobst_n(): Get the arm currents from the ADC from the global variable "how". 91
  • 92. ALVIN-RCCL (Purdue, 1991) 68030s/VxWorks VMEBus CPU #1 CPU #2 Shared Mem. Bus adapter CRT Bus adapter Qbus CLOCK DRV-11 SERVO INTERFACE Unimation Controller Digital Servo Analog Servo current encoder pulses Power AMP. Arm Cable PUMA 560 ARM 92
  • 93. RCCL-ALVIN (Purdue, 1998) Host PC/QNX PCI Bus Bus adapter Bus adapter Qbus CLOCK DRV-11 SERVO INTERFACE Unimation Controller Digital Servo Analog Servo current encoder pulses Power AMP. Arm Cable PUMA 560 ARM 93
  • 94. Software Architecture of ALVIN-RCCL 94
  • 95. RCCL / RCI (Standard) Host Computer Host computer bus Serial Parallel I/O Floppy Unimation Controller CPU LSI-11 Teach Pend. Aux CRT RAM ROM DLV-11J Parallel I/O Qbus CLOCK DRV-11 SERVO INTERFACE Digital Servo Analog Servo current encoder pulses Power AMP. Arm Cable PUMA ARM 95
  • 96. Multi-RCCL • Multi-RCCL v5.0 John Lloyd and Vincent Hayward, 1992. Official release of Multi-RCCL. • Multi-RCCL v5.1 John Lloyd, 1997. Simulation mode on Linux. • Multi-RCCL v5.1.4 Torsten Scherer, 1999. Unofficial modifications for Linux. 96
  • 97. Hardware Architecture of Multi-RCCL 97
  • 98. RWRCCL • RWRCCL(Roger Williams RCCL): RCCL modified by Matthew Stein at Roger Williams University in 2000. • Configuration – ARM: a single puma560 only. – Hardware: PC + Trident TRC 004/006 boards. – Software: RCCL ported to rtlinux. Position control is added to RCCL. 98
  • 99. RWRCCL (TRC Boards) Host PC/Linux ISA bus TRC004 board Unimation Controller TRC006 Board Power amplifier Arm Cable PUMA ARM 99
  • 102. Graphic Simulator of RWRCCL 102
  • 103. QRobot • A multitasking QNX/PC-based robot control system. • Developed at Clemson University in 1998. • Target arm: PUMA 560. • Hardware: PC + MultiQ board + Unimation controller. 103
  • 104. RCCL-QRobot (MultiQ Board) Host PC PCI bus MultiQ board Unimation Controller Preamplifiers filtering circuits Power amplifier Arm Cable PUMA ARM 104
  • 105. ARCL (Advanced Robot Control Language) • Developed by Peter I. Corke, 1993. • Inspired by an early version of RCCL. • Monitor and Interpreter to run VAL-II programs. 105
  • 107. End of Part 2 107
  • 108. Porting and Running the RCCL on a Real-time Linux/PC 2005 Gyoung H. Kim, Ph.D 108
  • 109. RCCL Poring • Porting RCCL v1.0 to Linux. • Developing a graphic simulator for RCCL v1.0. • Porting RCCL v1.0 to Linux/RTAI. • Porting RCCL v1.0 to Linux/Xenomai. • Patching Multi-RCCL for a newer Linux. • Patching RWRCCL for a newer Linux. • Porting RWRCCL to Linux/RTAI. 109
  • 110. Test Environment • • • • • • RCCL: v1.0 (1983) Simderella: v2.0.2 (1995) gcc: 2.9.x, 3.0.4, 3.2 Linux distribution: - Redhat 7.3, Redhat 8.0 - Debian woody, Debian sarge CPU: Pentium III, Pentium 4, VIA C3 RTAI - Linux kernel: 2.4.19 (only for RTAI) - RTAI distribution: 2.4.11 - RTAI modules used by RCCL: rtai, rtai_sched, rtai_fifos, rtai_shm, rtai_libm 110
  • 111. RCCL v1.0 on Linux 111
  • 112. Running Modes of RCCL (Modes are specified at h/switch.h) 1. PLAN mode (no signal or interrupt) - setpoint_n() is repeatedly called until completed = 0. 2. FAKE mode (signal – simulated interrupt) - At every 28ms, clock() generate a signal. - Signal handler calls setpoint_n(). 3. REAL mode (hardware interrupt) - At every 28ms, a hardware interrupt signal is generated from the Unimation controller. - Interrupt service routine calls setpoint_n(). 112
  • 113. Running RCCL on Linux (BSD mode with lib5) • • • RCCL v1.0 written in pre-ANSI C run on BSD Unix. While older Linux distributions with lib5 were BSD-flavored, recent Linux distributions with lib6 are SYSV-flavored. To port RCCL v1.0 to Linux, (1) Install BSD headers and libraries. On debian, apt-get install altgcc (2) Do the following modifications: - Change <signal.h> and <sgtty.h> to <bsd/signal.h> and <bsd/sgtty.h>, respectively. - Implement nap( ) with usleep( ). - Insert more FAKE and REAL mode switches for cleaner compiling. - Correct up some K & C C-language syntax. - Remove malloc_l( ) and free_l( ) routines. (3) Link the BSD library with the option, -lbsd. 113
  • 114. Running RCCL on Linux (SYSV mode with libc6) (1) Change from BSD stuffs to SYSV - sgtty to termio - nap( ) to usleep( ) (2) Change pre-ANSI C stuffs to gcc - const( ) to rccl_const ( ) (3) Change clock( ) location - In RCCL v1.0, separated clock.c and vfork ( ) were used. - Add clock( ) to main.c and replace vfork ( ) with fork ( ). (4) Do the following minor modifications: - Add print.c for more printouts. - Add printst( ) to jnsend_n( ) of misc.c - Create linux directory for examples. - Move main.c from src to linux directory. - Adjust the delay parameter of usleep( ). - Add FAKE_DEBUG for better debugging. 114
  • 115. Simderella (A general-purpose robot simulator for kinematics) Current joint angles Simderella connel (robot controller) Desired joint angles, velocities, accelerations simmel (forward kinematics calculator) Homogeneous matrices of robot links bemmel (X-windows drawing program) Graphic visualization 115
  • 116. RCCL + Simderella (on-line) (Simderella as a graphic simulator of RCCL) For on-line simulation, 1. 2. 3. 4. 5. 6. Modify connel/main.c so that desired joint angles are from j6, a global variable of RCCL. Combine the main.c of RCCL and the main.c of connel. After setpoint_n( ), call user_move_robot( ) at each clock signal. Modify user_move_robot( ) and move_robot( ) of connel/moving.c to bypass some dynamics and kinematics calculations. Adjust D-H parameters of PUMA arms. Link RCCL libraries when compiling connel/main.c. Run Simderella. 116
  • 117. Screenshot of RCCL + Simderella • • Right window: connel’s window printing out joint angles from a RCCL program. Left window: bemmel’s window drawing a PUMA arm with the joint angles. 117
  • 118. RCCL + Simderella (off-line) For off-line simulation, 1. Modify connel/main.c so that desired joint angles are read from an external file, @.out and they are fed into user_move_robot( ). 2. Modify user_mode_robot( ) and move_robot( ) of connel/moving.c to bypass some dynamics and kinematics calculations. 3. Adjust D-H parameters of PUMA arms. 4. Compile connel/main.c. 5. Run a RCCL program with “-d” option. 6. Copy @.out to connel directory. 7. Run Simderella. 118
  • 119. RCCL v1.0 on Linux/RTAI 119
  • 120. Porting RCCL to RTAI Software Architecture 120
  • 121. Software Components 1. User-space task (1) User command monitor: - Send start/stop/break/resume command to RT tasks in the kernel space. - Receive fifo messages from the RT tasks - Print out the content of the shared memory. 2. Kernel-space tasks (1) RT task #1: the main.c of RCCL (non-periodic) (2) RT task #2: the TG + RTC + moper of RCCL (periodic task) (3) fifo handler: - Send commands to the RT tasks. - Receive commands from User command monitor 3. Shared memory: Store all the output data from RT tasks. 121
  • 122. RTAI Porting Procedure 1. Kernel memory allocation Change malloc( ) and free ( ) to kmalloc( ) and kfree( ), respectively. 2. File output/stdout/stderr Make shm_printf( ) and redirect all the file output/stdout/stderr to the shared memory. 3. Modify kernel vprintf( ) to handle float variables. 4. Replacement of glibc (1) sprintf – kernel’s lib.a (2) strcat, strcpy, strlen - #include <rtai.h> (3) math library – rtai_libm.o module (4) others – gcc’s bootstarp libgcc.a 5. Follow the compiling/linking options of RTAI. 6. Distribution- or CPU-specific options: (1) Redhat 7.3: use kgcc without -mpreferred-stack-boundary=2. (2) Redhat 8.0: use gcc with -mpreferred-stack-boundary=2. (3) VIA EPIA 800 board: use –m586 122
  • 123. RTAI Running Procedure 1. 2. 3. 4. 5. Install rtai modules modprobe rtai modprobe rtai_sched modprobe rtai_fifos modprobe rtai_shm modprobe rtai_libm Install the RCCL realtiime module insmod rccl.o Start the “user command monitor” as ./rccl_app Type s/q/b/r keys at the prompt of “rccl_app” to start/quit/break/resume realtime RCCL tasks. After the RCCL tasks are finished, joint angles and other information are saved to file “@.out” 123
  • 124. RCCL Porting Results • • • RCCL on BSD- and SYSV-mode Linux – PLAN/FAKE/REAL modes can be compiled. – PLAN and FAKE modes run correctly. – Clock intervals less than 1 ms work. RCCL + Simderella in on-line mode – FAKE mode with 30ms clock interval work. – Faster than 30ms is impossible due to the slow socket communication of Simderella. RCCL on RTAI – Clock rate 50Hz (20ms) works without any problem. – All the examples which do not need a real arm can be compiled and run correctly. – A faster clock rate is possible when moper functions are needed. – For the Unination controller still with the digital servo boards, clock interrupt signals should be received from the Unimation controller to prevent clock drifts. 124
  • 126. Analysis Results of RWRCCL • Routines are fully documented. • Trace and analysis of the program execution flow are done. • Documentation on the program execution flow is almost done. 126
  • 127. Updating RWRCCL to a newer RTLinux • Environment: - debian sarge 3.1r1 - gcc 3.3 6 - glibc 2.3.2 • RTLinux: - rtlinux-3.2-rc1 - kernel 2.4.27 • Patches (1) gcc-dependent: newline in a literal string, sys_errlist, varargs.h (2) imake configuration bug. 127
  • 128. Porting Results of RWRCCL-rtlinux • Trajectory generation sampling interval: 27ms • Servo sampling interval: 0.9 ms (position control mode, PID control) • Simulation mode needs a slower sampling rate due to the slow X11 graphics. • Dry-running mode in real-time is added. 128
  • 129. Porting RWRCCL to RTAI • RTAI: - rtai-3.2 - kernel 2.4.27 • Patches (1) rtlinux-dependent directories: $RCCL/jls (kernel modules) $RCCL/puma (user-space routines) (2) Utilities for the puma interface card: $RCCL/rtlinux (3) Conflicting macro definition: FREE(x) is changed to RCCL_FREE(x) (FREE(x) is also defined at rtai_lxrt.h) 129
  • 130. Ongoing Projects • Modifying RCCL for running various arms. • Porting RCCL v1.0 to Xenomai. • Developing a front-end interpreter for RCCL. • Modifying RCCL v1.0 for running multiple arms in independent and/or coordinative modes. • Running RCCL on Non-X86 CPUs. 130
  • 131. End of Part 3 131