SlideShare a Scribd company logo
Programming and Controlling
     PUMA Robot Arms



       1989, 1999,
       1989 1999 2005



     Gyoung H. Kim, Ph.D.




                              1
Contents


I. Controlling PUMA Robot Arms with VAL,
             g                         ,
RCCL, Kali, or ALVIN, 1989.


II. RCCL Variants and RCCL Porting Guide,
1999.

III. Porting and Running the RCCL on a Real-
time Linux/PC 2005
      Linux/PC, 2005.


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



            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
          Series      Series,    Series
      760 Series

• Controller Types:
      Mark I, Mark II, Mark III, UNIVAL

• Robot Programming Language:
      VAL,
      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.
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             Host
                         Interrupt        Interrupt

Initialization             Disable
                       Host Interrupt       Deferred        NO
                                          Command ?
                                                      YES
   Wait for                 Read
  interrupt               Encoder             Save                Execute
                          C
                          Counter
                               t          command                immediate
                                           in buffer             command

                            Enable
                        Host Interrupt       Return

                       Position/current
                             control


                           Deferred
                          Command
                          Execution


                            Return
                            R t




                                                                             28
29
30
31
UNIVAL




         32
UNIVAL Block Diagram


 Unival Controller

          Torque                            Servo    Expansion
        Processor                          Control    Memory
           Board                           Module    (Optional)

                                                                          CX Module
                                                           Distribution   VDT
                     Arm Interface Board                       Board      Disk Drive
                                                                          Aux. Port
                                                                          Smart I/O
                                                                             Teach
                                                                             Pendant
Major Power                 Minor Power
 Amplifier                    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                                    Hardware

 Torque   +        Kp          +         Linearli er
                                         Linearlizer   PWM
                                                       Chip
                                                              Power
                                                               Amp
Command
              -                      +
                                                                         Motor
                     Ki
                  1-Z     -1


                                    +                   A/D
                                   +
                           Current
                            Offset




                                                                                 35
UNIVAL Signal Loops


                                                                    Arm
                                                                   Cable
          SCM                                         AIB
Command    Position
   from       and            TPB                   PWM                           ROBOT
    VAL    velocity
            Servos                                          AMPS
                                   Current Feedback


                         Feedback from Robot
                                                                           Encoders




             VAL       Position Feedback upon Startup                                 Potentio-
                                                                                       meters




                                                                                                  36
UNIVAL Servo System Block Diagram


Arm Interface Module
                                                             M   E
  Servo              Torque     3 Axes            3 Axes
   and             Processor   PWM Chip           Power
  Robot              Module                        AMP
 Control
 Module
                       A/D
                                3 Axes            3 Axes
                               PWM Chip           Power
                                                   AMP
                       MUX


                                          Current Feedback
                                          Encoder Feedback




                                                                     37
PUMA Control with VAL
1.   The hardware does not provide sufficient     processing power
     --- it is too slow for real-time control
                            real time control.

2. The system is not designed to communicate with external
    computer in a flexible way The I/O module is only able to
                           way.
    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
                                               ,      ,    j
     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 DRV-
     11 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.
     buffer

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




       41
RCCL ( Robot Control quot;Cquot; Library)
                         RCCL, Purdue
                             (1983)



                             RCCL, McGill
                              (
                              (1985)
                                   )


                                         RCCL, JPL       RCCL, McGill
                                           (1986)           (1986)
   Level II, Cybotech
            (1987)


          Timix,
 U. of Pennsylvania     RCCL, McGill
        (1988)             (1988)

                        Kali, McGill
                           (1988)



         ALVIN,
         ALVIN Purdue                   Multi-RCCL,
                                        Multi RCCL JPL
                                               (1990)


                                          RWRCCL, RWU
                                             (2001)

                                                                        42
Ph i l Implementation of RCCL
     Physical I l   t ti    f
                                VAX Computer
                                       p
                              VAX COMPUTER
                                    RCCL
                                     RCCL
                                 PROGRAM
                                  PROGRAM
                                                   SERIAL LINE FOR
                                                     LOADING I/O
                                                       CONTROL
                         HIGH SPEED                   PROGRAM
                       PARALLEL LINK


     TEACH                        LSI 11 CPU
    PENDANT
                                COMMUNICATION
                                I/O CONTROLLER
      A/D
  CONVERTER




                   6503    JOINT CONTROLLERS




UNIMATION CONTROLLER                    TO ROBOT


                                                                     43
RCCL Block Diagram (Purdue)


  VAX 780                                                                   UNIBUS

                                                                     Serial          FIFO



  Unimation Controller                                          Teach
                                         CRT          Floppy
                                                         ppy                   Aux
                                                                pend.
                                                                pend
              CPU        RAM              ROM             DLV-11J                    FIFO
             LSI-11
                                               Qbus

CLOCK        DRV-11
             DRV 11

               SERVO           Digital          Analog              Power
            INTERFACE          Servo             Servo              AMP.
                                                current
                                                                Arm Cable
                                         encoder
                                          pulses

                                                               PUMA 560 ARM




                                                                                            44
45
RCCL Block Diagram


                                            Robot Arm

                       Current command
                       C     t       d                            Motor t t
                                                                  M t state



Robot Controller                       Servomotor Control

                                             Arm Interface
                                       Torque-current mapping
                                            Angles-encoders
                                                 mapping
                                              Safety limits
                                          Arm-dependent data
                                Set points                         Arm state
                          Positions            Trajectory                                   Arm
     World Model                               Generation                               Kinematics
                                                                                       Cartesian-joint
     Transformations       Updates                 Cartesian                              Jacobian
         Equations                          Joint Interpolation                               Arm
                                                Compliance                              configuration


                                                   Queue                       TG state Synchronization
                                     Motion requests
                                              q

                                           User’s Process




                                                                                                          46
Internal Control-level Execution Sequence

                  NORMAL TASK
                  AND PROCESS
                   EXECUTION
     DRIVER
   INTERRUPT
    HANDLER
      TAKES                     SWITCH TO CONTROL
    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                                            CONTROL
  FROM       INTERNAL                             DIRECTIVE
 LSI 11      CHECKING                                            OPEN
                                                              DIRECTIVE




COMMANDS                        CONTROL             IDLE
    TO      COMMAND             FUNCTION
  LSI 11    CHECKING

                          NORMAL
                         EXECUTION

                                                             CLOSE
                                RELEASE                    DIRECTIVE
                               DIRECTIVE
                                   OR
                           ERROR CONDITION




                                                                          48
49
Position E
       P iti Equations
                  ti
At point p1,
        p1 = Z      T61 E1
        T61 = Z-1   p1 E1-1
             = R1   p1 T1
At point p2,
        p1 = Z      T62 E2
        T61 = Z-1   p2 E2-1
             = R2   p2 T2
Let 2p1 = R2-1 R1   p1 E1 E2-1

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




           51
Th Four Levels of the Robot
The F   L   l f th R b t
 Programming Environment


          Menu Interface



      Application Program


         Level II Library

               Device
               Driver




                              52
RC-X Control Boards


Tape              Programming                     System              Hand
Drive                Console                     Securities          Control


        Supervisor                  Geometric         Environment                  I/O
          Board                      Operator             Board
                                      Board
                                      B    d

                                                                                   TTY
                                Mother Board                                    Sensor
                                                                               Interface


        Axis Board 1              Axis Board 2        Axis Board 3




                                                                                           53
54
Kali




       55
K li
                      Kali
          (A creature with many arms
              in Hi d
              i Hind mythology)
                         th l   )
Characteristics:

1. Programming and control of multiple manipulators
   operating in close cooperation.
    p      g             p

2. Hybrid force/velocity task space with dynamic
   compensation.
   compensation

3. Selection of the largest amount of off-the-shelf
   computing technology.
              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
                        p       y g p                     g
   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                                                VSB
       ethernet    CPU 1        CPU 2           CPU 3            CPU 4          CPU 5   memory
         board     68020        68020           68020            68020          68020    board

                                          VME    BUS

                     DAC                   robot I/O                       p
                                                                           parallel
                    board                    board                       I/O board

                   power         power                                   force/torque
                  amplifier      on/off                                      sensor
                                       brake           encoder
                                      release           pulses

                              PUMA   560        ROBOT ARM




                                                                                                 60
R
         Run-Time Structure
             Ti   St   t

 1.
 1 Synchronous processes
      i. Trajectory generator
      ii. Servo control
      iii.
      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
             Real-time
1. Software support

  Host: Unix-based workstation
  Target: real-time operating system (VxWorks)
  Target-host communication - ethernet
  T    th t            i ti      th    t


2.
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 : th d i transform
    the drive t f

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                              VSB

       ethernet      CPU 1          CPU 2       memory
         board       68030          68030        board

                       VMEbus

                  VMEbus
                  adaptor

                   Qbus               Unimation MK I
                  adaptor             PUMA controller

                  PUMA      560   ROBOT ARM



                                                         74
ALVIN Block Diagram (Stage I)

                VMEbus System                                          VSB

Engineering                  Ethernet              CPU 0              CPU 1          Shared-
 Computer                   Controller             68030              68030          Memory
  Network
                                                            VMEbus

                                                                                  Bus Adaptor


                Unimation MK I Controller                                         Bus Adaptor

                                                      Qbus

                   DRV-11

                     SERVO               Digital           Analog       Power
                  INTERFACE              Servo              Servo        AMP.

                   CLOCK                                              Arm Cable



                                                                     PUMA 560 ARM




                                                                                                75
ALVIN Block Diagram (Stage II)

                      Engineering Computer Network


    SUN                                VMEbus System
workstation                              Ethernet Card
                                         CPU 0 (68040)    CRT
                                          CPU 1 (68040)
                                         CPU 2 (68040)    CRT
       Unimation                                                Unimation
         MK III                          CPU 3 (68030)             MK I
       Controller                        CPU 4 (68030)          Controller
     Qbus Adaptor                       Shared Memory           Qbus Adaptor
                                       VMEbus Adaptor               ADC
          ADC
                                       VMEbus Adaptor             DRV-11
       A-interface
                                                                Arm Interface
       B-interface
      Digital Servo                                             Digital Servo
                                                                  g
         Paddle                                                 Clock / term.
       Arm Cable                                                Analog Servo
                                                                    Paddle
                                                                  Arm Cable



      PUMA 562                                                  PUMA 560
      Robot Arm                                                 Robot Arm




                                                                                76
optinal
                                                                                                                    i l

                disk                  teach               aux.      Super.          Alter              digimig             Spare
   terminal
               driver               pendant


                    Quad serial                                                             Quad serial
                        board
                        b d                                                                     board
                                                                                                b d


   user           I/O PCA                          I/O                CPU                              CMOS memory
connect                                       interface               board                                  board


                   operator                                                A
                     panel                                          interface


                               C                                           B                     POT
CX PCA                  interface                                   interface


                                                                 digital servo                   ENC
                                                                      boards


                                                                     power
                                                                   amplifier


                         high power                              servomotors
                        function bd.


                                               potentiometers                    encoders


                                                                  arm signal
                                                                      board


              PUMA          MK III            CONTROLLER

                                                                                                                                   77
VME BUS

                                                 VMEbus
                                                  adaptor
VME BUS
 SYSTEM


 UNIMATION
CONTROLLER                                          Qbus
                                                  adaptor


                                                         A
                                                  interface


                     C                                   B                POT
CX PCA        interface                           interface


                                               digital servo              ENC
                                                    boards


                                                   power
                                                 amplifier


               high power                      servomotors
              function bd.


                             potentiometers                    encoders


                                                arm signal
                                                    board


             PUMA MK III Controller
               Modified f
               M difi d for ALVIN I
                                                                                78
VME BUS

         Parallel I/O                  ADC                       DAC                      Robot I/O
             Board                     Board                    Board                       Board




                                                  Motor
                                                 Current


                                                                                    ENC               POT

                               C
CX PCA                  interface




                                                               power
                                                             amplifier


                         high power                        servomotors
                        function bd.


                                        potentiometers                   encoders


                                                            arm signal
                                                               board



                    PUMA MK III Controller
                     Modified for ALVIN II
                                                                                                            79
ALVIN Block Diagram (Stage III)


       SUN
   workstation
      k t ti

                                                                  VSB

       ethernet           CPU 1            CPU 2          CPU 3          CPU 4    CPU 5           memory
         board            68040            68040          68040          68030    68030            board

                                                   VME    BUS

  Vision           ADC              DAC            robot I/O           parallel             parallel
  Board           board            board             board           I/O board            I/O board

  CCD                                                                                force/torque
Cameras                            power                          Unimation              sensor
                                  amplifier                    MK I & III PUMA
                                                                 Controllers

                              PUMA         560 & 562      ROBOT ARMS




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


VxWorks, VRTX
[vrtx 1] James F. Ready, quot;VRTX: A Real-Time Operating System for Embedded Microprocessor Applications,“
                  IEEE Micro, Aug. 1986.
[vrtx 2] J. Mattox, quot;A Multi-processor Approach to Using UNIX in a Real-Time Environment,“ WESCON '86
[vrtx 3] S J Doyle and P Bunce quot;Real-Time Multiprocessing Requirements,“ WESCON '86
         S. J.         P. Bunce, Real-Time                  Requirements               86
[vxworks 1] Jerry Fiddler and Leslie Kirby, quot;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, quot;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, quot;Communication Routines Between the LSI 11-03 and the 6503'squot;, Purdue University, (undated,
      unpublished)
[puma 2] B. Fisher and V. Hayward, quot;Robot Controller,“ Purdue University, (undated, unpublished)
[puma 3] Unimation Inc., quot;Controlling the PUMA Series 500 Robot Arm Without using VALquot;,
      (undated, unpublished, company confidential)
[puma 4] R. Vistnes, quot;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, quot;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, quot;A New Approach to Operating a PUMA manipulator Without Using VAL “ Robots 12 and Vision '88, 1988
         P Nagy                                                                      VAL,“                    '88
[puma 8] P. Nagy, quot;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)
[p       ]            ,                            y
[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, quot;VAL: A Versatile Robot Programming and Control System,“ Proc. COMPSAC 79
[val 4] B. E. Shimano, C. C. geschke, and C. H. Spalding III, quot;VAL-II: A New Robot Control System for Automatic Manufacturingquot;
        IEEE Intl Conf on Robotics, Mar. 1984

[unival 1] E. M. Onaga and L. L. Woodland, quot;Six-Axes Digital Torque Servo for Robotics,“ Robots 11/ISIR 17, 1987
[unival
[ ni al 2] Unimation Inc UNIVAL Robot Controller - 19 inch Rack Mo nt Eq ipment Man al Apr 1988
                     Inc.,                                        Mount Equipment Manual Apr.,

LEVEL II
[level II 1] R. Guptill and P. Stahura, quot;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.
                                           g      g
[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,
         V Hayward                      10                              Code       83-47
                   School of Electrical Engineering, Purdue Univ., Oct. 1983.
[rccl 5] J. Roger, quot;VAX-LSI Interprocessor FIFOquot;, Purdue University, (undated, unpublished)
[rccl 6] V. Hayward and R. P. Paul, quot;Robot manipulator Control Under Unix,“ ISIR 13/ Robots 7, 1983.
[rccl 7] V. Hayward and R. P. Paul, quot;Robot manipulator Control under Unix RCCL: A Robot Control quot;Cquot; Library,quot; Intl J.
       Robotics Research Vol.5, No.4, 1986.
                 Research, Vol 5 No 4 1986
[rccl 8] J. S. Lee, S. Hayati, V. Hayward, and J. E. Lioyd, quot;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, quot;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, quot;An RCCL Simulator for the Microbo Robot,“ Computers in Eng., ASME, 1988.
          A S                   M Pilon                                        Robot “              Eng ASME 1988
[rccl 11] J. Lloyd, M. Parker, and R. McClain, quot;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 quot;
               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 V i t
     Variants



       1999



Gyoung H. Kim, Ph.D
G      H Ki Ph D
RCCL-related Systems

•   RCCL v1.0-based

•   Multi-RCCL

•   RWRCCL

•   Qrobot

•   ARCL




                             86
RCCL v1.0
        v1 0
Configurations




                 87
RCCL (Purdue, 1983)

    VAX-11780                                                       UNIBUS

                                              Serial                                   FIFO


                                                        Floppy      Teach
                                                                                 Aux
                                                                    Pend.


                                            CRT

                 CPU        RAM                   ROM          DLV-11J                 FIFO
                LSI-11
                                              Qbus

 CLOCK         DRV-11

                 SERVO            Digital            Analog              Power
              INTERFACE           Servo               Servo              AMP.
                                                     current
                                                                    Arm Cable
Unimation Controller                          encoder
                                               pulses

                                                               PUMA 560 ARM



                                                                                              88
RCCL Architecture




                    89
RCCL Routines




                90
Routine Explanation

(1) main(): The main program.
(2) startup():
      Connect quot;setpoint_n()quot; to the clock interrupt.
      Initialize and check hardware connection.
(3) move(park):
      quot;parkquot; 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) j
    jnsend_n():
            d ()
      Send the setpoints to the robot controller in the global variable quot;chgquot;.
(8) getobsj_n():
      Get the actual robot position from the global variable quot;howquot;.
(9) getobst_n():
      Get the arm currents from the ADC from the global variable quot;howquot;.




                                                                                    91
ALVIN-RCCL (Purdue, 1991)

68030s/VxWorks
                                      VMEBus

                   CPU #1        CPU #2                  Shared Mem
                                                                Mem.       Bus adapter


                   CRT




                                                                          Bus adapter

                                        Qbus

 CLOCK         DRV-11

                 SERVO      Digital            Analog          Power
              INTERFACE     Servo               Servo          AMP.
                                               current
                                                     t
                                                              Arm Cable
Unimation Controller                    encoder
                                         pulses

                                                         PUMA 560 ARM


                                                                                         92
RCCL-ALVIN (P d
               RCCL ALVIN (Purdue, 1998)

Host PC/QNX
                                                           PCI Bus

                                                                      Bus adapter




                                                                     Bus adapter

                                    Qbus

 CLOCK         DRV-11

                 SERVO    Digital          Analog         Power
              INTERFACE   Servo             Servo         AMP.
                                           current
                                                 t
                                                         Arm Cable
Unimation Controller                encoder
                                     pulses

                                                     PUMA 560 ARM


                                                                                    93
Software Architecture of ALVIN RCCL
                         ALVIN-RCCL




                                      94
RCCL / RCI (Standard)

 Host Computer                                           Host computer bus

                                            Serial                                   Parallel I/O



                                                      Floppy      Teach
                                                                               Aux
                                                                  Pend.

Unimation Controller                      CRT
                                          C

               CPU        RAM                   ROM          DLV-11J             Parallel I/O
              LSI-11
                                            Qbus

 CLOCK        DRV-11

                SERVO           Digital            Analog              Power
             INTERFACE          Servo               Servo              AMP.
                                                   current
                                                                  Arm C bl
                                                                  A   Cable
                                            encoder
                                             pulses

                                                               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
                                      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.
     – H d
       Hardware: PC + Trident TRC 004/006 b
                       T id t               boards.
                                                d
     – Software: RCCL ported to rtlinux.
                 Position control is added to RCCL.
                                              RCCL




                                                          98
RWRCCL (TRC Boards)

 Host PC/Linux                   ISA bus

                                      TRC004 board




Unimation Controller
U i ti    C t ll
                                      TRC006 Board


                                    Power amplifier




                                       Arm Cable



                                     PUMA ARM



                                                      99
Hardware Architecture of RWRCCL




                                  100
Software A hit t
S ft     Architecture of RWRCCL
                       f




                                  101
Graphic Simulator of RWRCCL




                              102
QRobot


•   A multitasking QNX/PC b
        ltit ki QNX/PC-based robot control system.
                            d b t     t l     t

•   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
U i ti    C t ll
                                           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 R l ti
        Real-time Li
                  Linux/PC
                       /PC



            2005




     Gyoung H. Kim, Ph.D
            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.
                                Linux

•   Porting RWRCCL to Linux/RTAI.
          g

                                                    109
Test Environment

•   RCCL: v1.0 (1983)
•   Simderella: v2.0.2 (1995)
•   gcc: 2 9 x 3 0 4 3 2
         2.9.x, 3.0.4, 3.2
•   Linux distribution:
       - Redhat 7.3, Redhat 8.0
       - D bi woody, Debian sarge
         Debian       d D bi
•   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:
                                y
        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.
     - Si
       Signal h dl calls setpoint_n().
            l handler ll      t i t ()

3. REAL mode (hardware interrupt)
     - At every 28ms, a hardware interrupt signal is generated from
     the Unimation controller.
     - Interrupt service routine calls setpoint n().
                                       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
                      , p g               g
    (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
                                         option, -lbsd.
                                                                   113
Running RCCL on Linux
                   g
                 (SYSV mode with libc6)

(1) Ch
    Change f from BSD stuffs t SYSV
                         t ff to
       - 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 ( ).
( ) ot e o o
(4) Do the following minor modifications:
                    g     o    od cat o s
     - Add print.c for more printouts.
     - Add printst( ) to jnsend_n( ) of misc.c
     - Create linux directory for examples
                                    examples.
     - Move main.c from src to linux directory.
     - Adjust the delay parameter of usleep( ).
     - Add FAKE_DEBUG for better debugging
             FAKE DEBUG                debugging.
                                                                   114
Simderella
    (A general-purpose robot simulator for kinematics)


                Current joint angles

Simderella
                        connel
                    (robot controller)
                                Desired joint angles,
                                velocities, accelerations
                        simmel
             (f
             (forward kinematics calculator)
                    d ki    ti     l l t )
                               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.
1    Modify connel/main.c so that desired joint angles are from j6,
            connel/main c                                         j6
     a global variable of RCCL.
2.   Combine the main.c of RCCL and the main.c of connel. After
     setpoint_n( )
     setpoint n( ), call user_move_robot( ) at each clock signal
                         user move robot(                 signal.
3.   Modify user_move_robot( ) and move_robot( )
     of connel/moving.c to bypass some dynamics and kinematics
     calculations.
4.   Adjust D-H parameters of PUMA arms.
5.   Link RCCL libraries when compiling connel/main.c.
                                   p g
6.   Run Simderella.



                                                                  116
Screenshot of RCCL + Simderella




•     g                           p
    Right window: connel’s window printing out joint angles
                                         g     j       g
    from a RCCL program.
•   Left window: bemmel’s window drawing a PUMA arm with
    the joint angles.

                                                              117
RCCL + Simderella (off-line)
                               (off-

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.
4     Compile connel/main c
                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.
                                           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.
      -R     i           d f
        Receive commands from User command monitor
                                  U           d      it
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
                                                             ), 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:
   Distribution     CPU-specific
      (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
                                    m586

                                                                                        122
RTAI Running Procedure
1.
1    Install t i
     I t ll rtai modules
                    d l
        modprobe rtai
        modprobe rtai_sched
        modprobe rtai_fifos
        modprobe rtai_shm
        modprobe rtai_libm
2.   Install the RCCL realtiime module
        insmod rccl.o
3.   Start the “user command monitor” as
        ./rccl_app
4.   Type s/q/b/r keys at the prompt of “rccl_app” to
     start/quit/break/resume realtime RCCL tasks.
           q
5.   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
                               p
       communication of Simderella.
•   RCCL on RTAI
     – Clock rate 50Hz (20ms) works without any p
                        (      )                   y 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.
            t ll t          t l k d ift
                                                                      124
RWRCCL on Linux/RTAI




                       125
Analysis Results of RWRCCL


• Routines are fully documented
                     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
             3.3
       - glibc 2.3.2

•   RTLinux:
       - rtlinux-3.2-rc1
       - kernel 2.4.27

•   Patches
       (1) gcc-dependent: newline in a literal string
           gcc dependent:                      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
  (pos t o control ode,
  (position co t o mode, PID control)
                              co t o )

• Simulation mode needs a slower sampling
  rate due to the slow X11 graphics.

• Dry running mode in real-time is added
  Dry-running         real time added.



                                                  128
Porting RWRCCL to RTAI
•   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)
                                           rtai lxrt h)
                                                          129
Ongoing Projects

•   Modifying RCCL for running various arms.

•   Porting RCCL v1 0 to Xenomai
                 v1.0 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 f P t
E d of Part 3




                131

More Related Content

What's hot

Teletron
TeletronTeletron
09 10 vss controllers
09 10 vss controllers09 10 vss controllers
09 10 vss controllers
GpsLazio
 
30@30: April Newsletter
30@30: April Newsletter30@30: April Newsletter
30@30: April Newsletter
Lika Electronic
 
Speed checker for highway
Speed checker for highwaySpeed checker for highway
Speed checker for highway
Sumit Sharma
 
ZVxPlus Product Note: Nonlinear Extension Kit for R&S VNA
ZVxPlus Product Note: Nonlinear Extension Kit for R&S VNAZVxPlus Product Note: Nonlinear Extension Kit for R&S VNA
ZVxPlus Product Note: Nonlinear Extension Kit for R&S VNA
NMDG NV
 
Lte Latam 2012 Alberto Boaventura V6
Lte Latam 2012 Alberto Boaventura V6Lte Latam 2012 Alberto Boaventura V6
Lte Latam 2012 Alberto Boaventura V6
Alberto Boaventura
 
Pic18 f4520 and robotics
Pic18 f4520 and roboticsPic18 f4520 and robotics
Pic18 f4520 and robotics
Siddhant Chopra
 
Dsp a595
Dsp a595Dsp a595
Dsp a595
ukyti7t6rfyti
 
Galil dmc41x3 catalog
Galil dmc41x3 catalogGalil dmc41x3 catalog
Galil dmc41x3 catalog
Electromate
 
Phd 3rd year Research Activity
Phd 3rd year Research ActivityPhd 3rd year Research Activity
Phd 3rd year Research Activity
alexzio
 
Herrington dv club_sept19-1
Herrington dv club_sept19-1Herrington dv club_sept19-1
Herrington dv club_sept19-1
Obsidian Software
 
Galil dmc40x0 catalog
Galil dmc40x0 catalogGalil dmc40x0 catalog
Galil dmc40x0 catalog
Electromate
 
Datasheet of TB62206FG
Datasheet of TB62206FGDatasheet of TB62206FG
Datasheet of TB62206FG
Tsuyoshi Horigome
 
Solution on Handheld Signal Generator
Solution on Handheld Signal Generator Solution on Handheld Signal Generator
Solution on Handheld Signal Generator
Premier Farnell
 
9520 pulse generator datasheet
9520 pulse generator datasheet9520 pulse generator datasheet
9520 pulse generator datasheet
Quantum Composers
 
Embedded System Microcontroller Interactive Course using BASCOM-AVR - Lecture9
Embedded System Microcontroller Interactive Course using BASCOM-AVR - Lecture9Embedded System Microcontroller Interactive Course using BASCOM-AVR - Lecture9
Embedded System Microcontroller Interactive Course using BASCOM-AVR - Lecture9
AL-AWAIL for Electronic Engineering
 
FUZZY LOGIC PROGRAMME-Fuzzy logic based differential relay for power transfor...
FUZZY LOGIC PROGRAMME-Fuzzy logic based differential relay for power transfor...FUZZY LOGIC PROGRAMME-Fuzzy logic based differential relay for power transfor...
FUZZY LOGIC PROGRAMME-Fuzzy logic based differential relay for power transfor...
ASHOKKUMAR RAMAR
 
Advanced motion controls dpcania 030a400
Advanced motion controls dpcania 030a400Advanced motion controls dpcania 030a400
Advanced motion controls dpcania 030a400
Electromate
 
Wireless Gesture Controlled Tank Toy- Transmitter
Wireless Gesture Controlled Tank Toy- TransmitterWireless Gesture Controlled Tank Toy- Transmitter
Wireless Gesture Controlled Tank Toy- Transmitter
Neeraj Purohit
 
Valdir Adorni - Compwire / EMC2 Clariion Implementation Sample
Valdir Adorni - Compwire / EMC2 Clariion Implementation SampleValdir Adorni - Compwire / EMC2 Clariion Implementation Sample
Valdir Adorni - Compwire / EMC2 Clariion Implementation Sample
Valdir Adorni
 

What's hot (20)

Teletron
TeletronTeletron
Teletron
 
09 10 vss controllers
09 10 vss controllers09 10 vss controllers
09 10 vss controllers
 
30@30: April Newsletter
30@30: April Newsletter30@30: April Newsletter
30@30: April Newsletter
 
Speed checker for highway
Speed checker for highwaySpeed checker for highway
Speed checker for highway
 
ZVxPlus Product Note: Nonlinear Extension Kit for R&S VNA
ZVxPlus Product Note: Nonlinear Extension Kit for R&S VNAZVxPlus Product Note: Nonlinear Extension Kit for R&S VNA
ZVxPlus Product Note: Nonlinear Extension Kit for R&S VNA
 
Lte Latam 2012 Alberto Boaventura V6
Lte Latam 2012 Alberto Boaventura V6Lte Latam 2012 Alberto Boaventura V6
Lte Latam 2012 Alberto Boaventura V6
 
Pic18 f4520 and robotics
Pic18 f4520 and roboticsPic18 f4520 and robotics
Pic18 f4520 and robotics
 
Dsp a595
Dsp a595Dsp a595
Dsp a595
 
Galil dmc41x3 catalog
Galil dmc41x3 catalogGalil dmc41x3 catalog
Galil dmc41x3 catalog
 
Phd 3rd year Research Activity
Phd 3rd year Research ActivityPhd 3rd year Research Activity
Phd 3rd year Research Activity
 
Herrington dv club_sept19-1
Herrington dv club_sept19-1Herrington dv club_sept19-1
Herrington dv club_sept19-1
 
Galil dmc40x0 catalog
Galil dmc40x0 catalogGalil dmc40x0 catalog
Galil dmc40x0 catalog
 
Datasheet of TB62206FG
Datasheet of TB62206FGDatasheet of TB62206FG
Datasheet of TB62206FG
 
Solution on Handheld Signal Generator
Solution on Handheld Signal Generator Solution on Handheld Signal Generator
Solution on Handheld Signal Generator
 
9520 pulse generator datasheet
9520 pulse generator datasheet9520 pulse generator datasheet
9520 pulse generator datasheet
 
Embedded System Microcontroller Interactive Course using BASCOM-AVR - Lecture9
Embedded System Microcontroller Interactive Course using BASCOM-AVR - Lecture9Embedded System Microcontroller Interactive Course using BASCOM-AVR - Lecture9
Embedded System Microcontroller Interactive Course using BASCOM-AVR - Lecture9
 
FUZZY LOGIC PROGRAMME-Fuzzy logic based differential relay for power transfor...
FUZZY LOGIC PROGRAMME-Fuzzy logic based differential relay for power transfor...FUZZY LOGIC PROGRAMME-Fuzzy logic based differential relay for power transfor...
FUZZY LOGIC PROGRAMME-Fuzzy logic based differential relay for power transfor...
 
Advanced motion controls dpcania 030a400
Advanced motion controls dpcania 030a400Advanced motion controls dpcania 030a400
Advanced motion controls dpcania 030a400
 
Wireless Gesture Controlled Tank Toy- Transmitter
Wireless Gesture Controlled Tank Toy- TransmitterWireless Gesture Controlled Tank Toy- Transmitter
Wireless Gesture Controlled Tank Toy- Transmitter
 
Valdir Adorni - Compwire / EMC2 Clariion Implementation Sample
Valdir Adorni - Compwire / EMC2 Clariion Implementation SampleValdir Adorni - Compwire / EMC2 Clariion Implementation Sample
Valdir Adorni - Compwire / EMC2 Clariion Implementation Sample
 

Viewers also liked

Puma project(comp)
Puma project(comp)Puma project(comp)
Puma project(comp)
guptaminal2
 
Marketing plan of PUMA
Marketing plan of PUMAMarketing plan of PUMA
Marketing plan of PUMA
vitusmaren
 
Business intelligence
Business intelligenceBusiness intelligence
Business intelligence
Mustafa Ali Hassan, MBA
 
PUMA
PUMAPUMA
PUMA
MVIT
 
Puma Marketing strategies
Puma Marketing strategiesPuma Marketing strategies
Puma Marketing strategies
Himani Arora
 
PUMA analysis
PUMA analysisPUMA analysis
PUMA analysis
Natasha Antoine Pelayo
 
Puma
PumaPuma
Puma EP&L
Puma EP&LPuma EP&L
Puma EP&L
Cary Krosinsky
 
PUMA PPT
PUMA PPTPUMA PPT
Business Intelligence Presentation (1/2)
Business Intelligence Presentation (1/2)Business Intelligence Presentation (1/2)
Business Intelligence Presentation (1/2)
Bernardo Najlis
 
MARKETING STP ANALYSIS AND COMPARISION OF DIFFERENT ON STP BASIS OF DIFFERENT...
MARKETING STP ANALYSIS AND COMPARISION OF DIFFERENT ON STP BASIS OF DIFFERENT...MARKETING STP ANALYSIS AND COMPARISION OF DIFFERENT ON STP BASIS OF DIFFERENT...
MARKETING STP ANALYSIS AND COMPARISION OF DIFFERENT ON STP BASIS OF DIFFERENT...
RIYA JAIN
 

Viewers also liked (11)

Puma project(comp)
Puma project(comp)Puma project(comp)
Puma project(comp)
 
Marketing plan of PUMA
Marketing plan of PUMAMarketing plan of PUMA
Marketing plan of PUMA
 
Business intelligence
Business intelligenceBusiness intelligence
Business intelligence
 
PUMA
PUMAPUMA
PUMA
 
Puma Marketing strategies
Puma Marketing strategiesPuma Marketing strategies
Puma Marketing strategies
 
PUMA analysis
PUMA analysisPUMA analysis
PUMA analysis
 
Puma
PumaPuma
Puma
 
Puma EP&L
Puma EP&LPuma EP&L
Puma EP&L
 
PUMA PPT
PUMA PPTPUMA PPT
PUMA PPT
 
Business Intelligence Presentation (1/2)
Business Intelligence Presentation (1/2)Business Intelligence Presentation (1/2)
Business Intelligence Presentation (1/2)
 
MARKETING STP ANALYSIS AND COMPARISION OF DIFFERENT ON STP BASIS OF DIFFERENT...
MARKETING STP ANALYSIS AND COMPARISION OF DIFFERENT ON STP BASIS OF DIFFERENT...MARKETING STP ANALYSIS AND COMPARISION OF DIFFERENT ON STP BASIS OF DIFFERENT...
MARKETING STP ANALYSIS AND COMPARISION OF DIFFERENT ON STP BASIS OF DIFFERENT...
 

Similar to Programming And Controlling Puma Arms

M62502FPのデータシート
M62502FPのデータシートM62502FPのデータシート
M62502FPのデータシート
Tsuyoshi Horigome
 
20111130 hardware-monitoring-with-the-new-ipmi-plugin-v2
20111130 hardware-monitoring-with-the-new-ipmi-plugin-v220111130 hardware-monitoring-with-the-new-ipmi-plugin-v2
20111130 hardware-monitoring-with-the-new-ipmi-plugin-v2
Werner Fischer
 
Unmanned Ground Vehicle
Unmanned Ground VehicleUnmanned Ground Vehicle
Unmanned Ground Vehicle
Mithileysh Sathiyanarayanan
 
A3918 low voltage dc motor driver allegro datasheet[1]
A3918 low voltage dc motor driver allegro   datasheet[1]A3918 low voltage dc motor driver allegro   datasheet[1]
A3918 low voltage dc motor driver allegro datasheet[1]
putchi56
 
DRV401AIDWPG4
DRV401AIDWPG4DRV401AIDWPG4
DRV401AIDWPG4
spicepark
 
Zilker Labs Mixed-Signal Verification
Zilker Labs Mixed-Signal VerificationZilker Labs Mixed-Signal Verification
Zilker Labs Mixed-Signal Verification
DVClub
 
ELECTRICAL PROJECT ABSTRACT-Embedded pic microcontroller based motor protecti...
ELECTRICAL PROJECT ABSTRACT-Embedded pic microcontroller based motor protecti...ELECTRICAL PROJECT ABSTRACT-Embedded pic microcontroller based motor protecti...
ELECTRICAL PROJECT ABSTRACT-Embedded pic microcontroller based motor protecti...
ASHOKKUMAR RAMAR
 
USB Training - Silicon Labs -
USB Training - Silicon Labs -USB Training - Silicon Labs -
USB Training - Silicon Labs -
Emanuele Bonanni
 
SCADA PROJECTS ABSTRACT-Scada for power station substation monitoring and aut...
SCADA PROJECTS ABSTRACT-Scada for power station substation monitoring and aut...SCADA PROJECTS ABSTRACT-Scada for power station substation monitoring and aut...
SCADA PROJECTS ABSTRACT-Scada for power station substation monitoring and aut...
ASHOKKUMAR RAMAR
 
รายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคมรายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคม
Chetoss Retos
 
Wirelessly Actuated Snake Prototype
Wirelessly Actuated Snake PrototypeWirelessly Actuated Snake Prototype
Wirelessly Actuated Snake Prototype
IIT Bombay
 
00899a 2
00899a 200899a 2
00899a 2
00899a 200899a 2
Ad9850
Ad9850Ad9850
Ad9850
kcarring
 
Ad9850
Ad9850Ad9850
Ad9850
kcarring
 
Concept Kit:PWM Buck Converter Average Model (NJM2309)
Concept Kit:PWM Buck Converter Average Model (NJM2309)Concept Kit:PWM Buck Converter Average Model (NJM2309)
Concept Kit:PWM Buck Converter Average Model (NJM2309)
Tsuyoshi Horigome
 
รายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคมรายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคม
Chetoss Retos
 
รายงานการทำ Lab วันที่ 10 ธันวาคม 2
รายงานการทำ Lab วันที่ 10 ธันวาคม 2รายงานการทำ Lab วันที่ 10 ธันวาคม 2
รายงานการทำ Lab วันที่ 10 ธันวาคม 2
Chetoss Retos
 
รายงานการทำ Lab วันที่ 10 ธันวาคม .1
รายงานการทำ Lab วันที่ 10 ธันวาคม .1รายงานการทำ Lab วันที่ 10 ธันวาคม .1
รายงานการทำ Lab วันที่ 10 ธันวาคม .1
Chetoss Retos
 
รายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคมรายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคม
Chetoss Retos
 

Similar to Programming And Controlling Puma Arms (20)

M62502FPのデータシート
M62502FPのデータシートM62502FPのデータシート
M62502FPのデータシート
 
20111130 hardware-monitoring-with-the-new-ipmi-plugin-v2
20111130 hardware-monitoring-with-the-new-ipmi-plugin-v220111130 hardware-monitoring-with-the-new-ipmi-plugin-v2
20111130 hardware-monitoring-with-the-new-ipmi-plugin-v2
 
Unmanned Ground Vehicle
Unmanned Ground VehicleUnmanned Ground Vehicle
Unmanned Ground Vehicle
 
A3918 low voltage dc motor driver allegro datasheet[1]
A3918 low voltage dc motor driver allegro   datasheet[1]A3918 low voltage dc motor driver allegro   datasheet[1]
A3918 low voltage dc motor driver allegro datasheet[1]
 
DRV401AIDWPG4
DRV401AIDWPG4DRV401AIDWPG4
DRV401AIDWPG4
 
Zilker Labs Mixed-Signal Verification
Zilker Labs Mixed-Signal VerificationZilker Labs Mixed-Signal Verification
Zilker Labs Mixed-Signal Verification
 
ELECTRICAL PROJECT ABSTRACT-Embedded pic microcontroller based motor protecti...
ELECTRICAL PROJECT ABSTRACT-Embedded pic microcontroller based motor protecti...ELECTRICAL PROJECT ABSTRACT-Embedded pic microcontroller based motor protecti...
ELECTRICAL PROJECT ABSTRACT-Embedded pic microcontroller based motor protecti...
 
USB Training - Silicon Labs -
USB Training - Silicon Labs -USB Training - Silicon Labs -
USB Training - Silicon Labs -
 
SCADA PROJECTS ABSTRACT-Scada for power station substation monitoring and aut...
SCADA PROJECTS ABSTRACT-Scada for power station substation monitoring and aut...SCADA PROJECTS ABSTRACT-Scada for power station substation monitoring and aut...
SCADA PROJECTS ABSTRACT-Scada for power station substation monitoring and aut...
 
รายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคมรายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคม
 
Wirelessly Actuated Snake Prototype
Wirelessly Actuated Snake PrototypeWirelessly Actuated Snake Prototype
Wirelessly Actuated Snake Prototype
 
00899a 2
00899a 200899a 2
00899a 2
 
00899a 2
00899a 200899a 2
00899a 2
 
Ad9850
Ad9850Ad9850
Ad9850
 
Ad9850
Ad9850Ad9850
Ad9850
 
Concept Kit:PWM Buck Converter Average Model (NJM2309)
Concept Kit:PWM Buck Converter Average Model (NJM2309)Concept Kit:PWM Buck Converter Average Model (NJM2309)
Concept Kit:PWM Buck Converter Average Model (NJM2309)
 
รายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคมรายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคม
 
รายงานการทำ Lab วันที่ 10 ธันวาคม 2
รายงานการทำ Lab วันที่ 10 ธันวาคม 2รายงานการทำ Lab วันที่ 10 ธันวาคม 2
รายงานการทำ Lab วันที่ 10 ธันวาคม 2
 
รายงานการทำ Lab วันที่ 10 ธันวาคม .1
รายงานการทำ Lab วันที่ 10 ธันวาคม .1รายงานการทำ Lab วันที่ 10 ธันวาคม .1
รายงานการทำ Lab วันที่ 10 ธันวาคม .1
 
รายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคมรายงานการทำ Lab วันที่ 10 ธันวาคม
รายงานการทำ Lab วันที่ 10 ธันวาคม
 

More from 블로그코디

2015 블로그코디 회사소개서
2015 블로그코디 회사소개서2015 블로그코디 회사소개서
2015 블로그코디 회사소개서
블로그코디
 
2013 Programming And Controlling Puma Arms
2013 Programming And Controlling Puma Arms 2013 Programming And Controlling Puma Arms
2013 Programming And Controlling Puma Arms
블로그코디
 
블로그코디 Bc town소개서
블로그코디 Bc town소개서블로그코디 Bc town소개서
블로그코디 Bc town소개서
블로그코디
 
2013 블로그코디 홈로그 소개서
2013 블로그코디 홈로그 소개서2013 블로그코디 홈로그 소개서
2013 블로그코디 홈로그 소개서
블로그코디
 
[2차] 2013년 워드프레스 템플릿 시장 열릴 것인가?
[2차] 2013년 워드프레스 템플릿 시장 열릴 것인가?[2차] 2013년 워드프레스 템플릿 시장 열릴 것인가?
[2차] 2013년 워드프레스 템플릿 시장 열릴 것인가?블로그코디
 
2013년 워드프레스 템플릿 시장 열릴 것인가?
2013년 워드프레스 템플릿 시장 열릴 것인가?2013년 워드프레스 템플릿 시장 열릴 것인가?
2013년 워드프레스 템플릿 시장 열릴 것인가?블로그코디
 
[02회][제대로워드프레스][세미나]
[02회][제대로워드프레스][세미나][02회][제대로워드프레스][세미나]
[02회][제대로워드프레스][세미나]블로그코디
 

More from 블로그코디 (7)

2015 블로그코디 회사소개서
2015 블로그코디 회사소개서2015 블로그코디 회사소개서
2015 블로그코디 회사소개서
 
2013 Programming And Controlling Puma Arms
2013 Programming And Controlling Puma Arms 2013 Programming And Controlling Puma Arms
2013 Programming And Controlling Puma Arms
 
블로그코디 Bc town소개서
블로그코디 Bc town소개서블로그코디 Bc town소개서
블로그코디 Bc town소개서
 
2013 블로그코디 홈로그 소개서
2013 블로그코디 홈로그 소개서2013 블로그코디 홈로그 소개서
2013 블로그코디 홈로그 소개서
 
[2차] 2013년 워드프레스 템플릿 시장 열릴 것인가?
[2차] 2013년 워드프레스 템플릿 시장 열릴 것인가?[2차] 2013년 워드프레스 템플릿 시장 열릴 것인가?
[2차] 2013년 워드프레스 템플릿 시장 열릴 것인가?
 
2013년 워드프레스 템플릿 시장 열릴 것인가?
2013년 워드프레스 템플릿 시장 열릴 것인가?2013년 워드프레스 템플릿 시장 열릴 것인가?
2013년 워드프레스 템플릿 시장 열릴 것인가?
 
[02회][제대로워드프레스][세미나]
[02회][제대로워드프레스][세미나][02회][제대로워드프레스][세미나]
[02회][제대로워드프레스][세미나]
 

Recently uploaded

What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
saastr
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 

Recently uploaded (20)

What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
9 CEO's who hit $100m ARR Share Their Top Growth Tactics Nathan Latka, Founde...
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Artificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic WarfareArtificial Intelligence and Electronic Warfare
Artificial Intelligence and Electronic Warfare
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 

Programming And Controlling Puma Arms

  • 1. Programming and Controlling PUMA Robot Arms 1989, 1999, 1989 1999 2005 Gyoung H. Kim, Ph.D. 1
  • 2. Contents I. Controlling PUMA Robot Arms with VAL, g , RCCL, Kali, or ALVIN, 1989. II. RCCL Variants and RCCL Porting Guide, 1999. III. Porting and Running the RCCL on a Real- time Linux/PC 2005 Linux/PC, 2005. 2
  • 3. Controlling PUMA Robot Arms With VAL RCCL Kali or ALVIN VAL, RCCL, Kali, 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
  • 5. PUMA 5
  • 6. PUMA (Programmable, Universal Machines for Assembly) • Vendor: Unimation,Inc. • Arm Types: 260 Series, 550 Series, 560 Series 552 Series, 562 Series Series Series, Series 760 Series • Controller Types: Mark I, Mark II, Mark III, UNIVAL • Robot Programming Language: VAL, 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. 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 Host Interrupt Interrupt Initialization Disable Host Interrupt Deferred NO Command ? YES Wait for Read interrupt Encoder Save Execute C Counter t command immediate in buffer command Enable Host Interrupt Return Position/current control Deferred Command Execution Return R t 28
  • 29. 29
  • 30. 30
  • 31. 31
  • 32. UNIVAL 32
  • 33. UNIVAL Block Diagram Unival Controller Torque Servo Expansion Processor Control Memory Board Module (Optional) CX Module Distribution VDT Arm Interface Board Board Disk Drive Aux. Port Smart I/O Teach Pendant Major Power Minor Power Amplifier 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 Hardware Torque + Kp + Linearli er Linearlizer PWM Chip Power Amp Command - + Motor Ki 1-Z -1 + A/D + Current Offset 35
  • 36. UNIVAL Signal Loops Arm Cable SCM AIB Command Position from and TPB PWM ROBOT VAL velocity Servos AMPS Current Feedback Feedback from Robot Encoders VAL Position Feedback upon Startup Potentio- meters 36
  • 37. UNIVAL Servo System Block Diagram Arm Interface Module M E Servo Torque 3 Axes 3 Axes and Processor PWM Chip Power Robot Module AMP Control Module A/D 3 Axes 3 Axes PWM Chip Power AMP MUX Current Feedback Encoder Feedback 37
  • 38. PUMA Control with VAL 1. The hardware does not provide sufficient processing power --- it is too slow for real-time control real time control. 2. The system is not designed to communicate with external computer in a flexible way The I/O module is only able to way. 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 , , j 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 DRV- 11 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. buffer 4. Serial interface through the DLV-11J serial card in the PUMA controller is used. used 40
  • 41. RCCL 41
  • 42. RCCL ( Robot Control quot;Cquot; Library) RCCL, Purdue (1983) RCCL, McGill ( (1985) ) RCCL, JPL RCCL, McGill (1986) (1986) Level II, Cybotech (1987) Timix, U. of Pennsylvania RCCL, McGill (1988) (1988) Kali, McGill (1988) ALVIN, ALVIN Purdue Multi-RCCL, Multi RCCL JPL (1990) RWRCCL, RWU (2001) 42
  • 43. Ph i l Implementation of RCCL Physical I l t ti f VAX Computer p VAX COMPUTER RCCL RCCL PROGRAM PROGRAM SERIAL LINE FOR LOADING I/O CONTROL HIGH SPEED PROGRAM PARALLEL LINK TEACH LSI 11 CPU PENDANT COMMUNICATION I/O CONTROLLER A/D CONVERTER 6503 JOINT CONTROLLERS UNIMATION CONTROLLER TO ROBOT 43
  • 44. RCCL Block Diagram (Purdue) VAX 780 UNIBUS Serial FIFO Unimation Controller Teach CRT Floppy ppy Aux pend. pend CPU RAM ROM DLV-11J FIFO LSI-11 Qbus CLOCK DRV-11 DRV 11 SERVO Digital Analog Power INTERFACE Servo Servo AMP. current Arm Cable encoder pulses PUMA 560 ARM 44
  • 45. 45
  • 46. RCCL Block Diagram Robot Arm Current command C t d Motor t t M t state Robot Controller Servomotor Control Arm Interface Torque-current mapping Angles-encoders mapping Safety limits Arm-dependent data Set points Arm state Positions Trajectory Arm World Model Generation Kinematics Cartesian-joint Transformations Updates Cartesian Jacobian Equations Joint Interpolation Arm Compliance configuration Queue TG state Synchronization Motion requests q User’s Process 46
  • 47. Internal Control-level Execution Sequence NORMAL TASK AND PROCESS EXECUTION DRIVER INTERRUPT HANDLER TAKES SWITCH TO CONTROL 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 CONTROL FROM INTERNAL DIRECTIVE LSI 11 CHECKING OPEN DIRECTIVE COMMANDS CONTROL IDLE TO COMMAND FUNCTION LSI 11 CHECKING NORMAL EXECUTION CLOSE RELEASE DIRECTIVE DIRECTIVE OR ERROR CONDITION 48
  • 49. 49
  • 50. Position E P iti Equations ti At point p1, p1 = Z T61 E1 T61 = Z-1 p1 E1-1 = R1 p1 T1 At point p2, p1 = Z T62 E2 T61 = Z-1 p2 E2-1 = R2 p2 T2 Let 2p1 = R2-1 R1 p1 E1 E2-1 From point p1 to point p2, T6 = R2 2p1 Drive(s) T2 where Dri e(0) = Identity here Drive(0) Identit Drive(1) = 2p1-1 p2 Generally, T6 = R P Drive Comply T 50
  • 51. LEVEL II 51
  • 52. Th Four Levels of the Robot The F L l f th R b t Programming Environment Menu Interface Application Program Level II Library Device Driver 52
  • 53. RC-X Control Boards Tape Programming System Hand Drive Console Securities Control Supervisor Geometric Environment I/O Board Operator Board Board B d TTY Mother Board Sensor Interface Axis Board 1 Axis Board 2 Axis Board 3 53
  • 54. 54
  • 55. Kali 55
  • 56. K li Kali (A creature with many arms in Hi d i Hind mythology) th l ) Characteristics: 1. Programming and control of multiple manipulators operating in close cooperation. p g p 2. Hybrid force/velocity task space with dynamic compensation. compensation 3. Selection of the largest amount of off-the-shelf computing technology. 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 p y g p g 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 VSB ethernet CPU 1 CPU 2 CPU 3 CPU 4 CPU 5 memory board 68020 68020 68020 68020 68020 board VME BUS DAC robot I/O p parallel board board I/O board power power force/torque amplifier on/off sensor brake encoder release pulses PUMA 560 ROBOT ARM 60
  • 61. R Run-Time Structure Ti St t 1. 1 Synchronous processes i. Trajectory generator ii. Servo control iii. 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 Real-time 1. Software support Host: Unix-based workstation Target: real-time operating system (VxWorks) Target-host communication - ethernet T th t i ti th t 2. 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 : th d i transform the drive t f C : the goal position of the control frame 67
  • 68. 68
  • 69. 69
  • 70. ALVIN 70
  • 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 VSB ethernet CPU 1 CPU 2 memory board 68030 68030 board VMEbus VMEbus adaptor Qbus Unimation MK I adaptor PUMA controller PUMA 560 ROBOT ARM 74
  • 75. ALVIN Block Diagram (Stage I) VMEbus System VSB Engineering Ethernet CPU 0 CPU 1 Shared- Computer Controller 68030 68030 Memory Network VMEbus Bus Adaptor Unimation MK I Controller Bus Adaptor Qbus DRV-11 SERVO Digital Analog Power INTERFACE Servo Servo AMP. CLOCK Arm Cable PUMA 560 ARM 75
  • 76. ALVIN Block Diagram (Stage II) Engineering Computer Network SUN VMEbus System workstation Ethernet Card CPU 0 (68040) CRT CPU 1 (68040) CPU 2 (68040) CRT Unimation Unimation MK III CPU 3 (68030) MK I Controller CPU 4 (68030) Controller Qbus Adaptor Shared Memory Qbus Adaptor VMEbus Adaptor ADC ADC VMEbus Adaptor DRV-11 A-interface Arm Interface B-interface Digital Servo Digital Servo g Paddle Clock / term. Arm Cable Analog Servo Paddle Arm Cable PUMA 562 PUMA 560 Robot Arm Robot Arm 76
  • 77. optinal i l disk teach aux. Super. Alter digimig Spare terminal driver pendant Quad serial Quad serial board b d board b d user I/O PCA I/O CPU CMOS memory connect interface board board operator A panel interface C B POT CX PCA interface interface digital servo ENC boards power amplifier high power servomotors function bd. potentiometers encoders arm signal board PUMA MK III CONTROLLER 77
  • 78. VME BUS VMEbus adaptor VME BUS SYSTEM UNIMATION CONTROLLER Qbus adaptor A interface C B POT CX PCA interface interface digital servo ENC boards power amplifier high power servomotors function bd. potentiometers encoders arm signal board PUMA MK III Controller Modified f M difi d for ALVIN I 78
  • 79. VME BUS Parallel I/O ADC DAC Robot I/O Board Board Board Board Motor Current ENC POT C CX PCA interface power amplifier high power servomotors function bd. potentiometers encoders arm signal board PUMA MK III Controller Modified for ALVIN II 79
  • 80. ALVIN Block Diagram (Stage III) SUN workstation k t ti VSB ethernet CPU 1 CPU 2 CPU 3 CPU 4 CPU 5 memory board 68040 68040 68040 68030 68030 board VME BUS Vision ADC DAC robot I/O parallel parallel Board board board board I/O board I/O board CCD force/torque Cameras power Unimation sensor amplifier MK I & III PUMA Controllers PUMA 560 & 562 ROBOT ARMS 80
  • 81. R f References VME bus / VSB Wayne Fischer, quot;IEEE P1014 - A Standard for the High-Performance VME Bus,quot; IEEE Micro, Feb. 1985. Paul L. Borrill, quot;MicroStandards Special Feature: A Comparison of 32-Bit Buses,quot; IEEE Micro, Dec. 1985. Walter S. Heath, quot;Software Design for Real-Time Multiprocessor VMEbus Systems,quot; IEEE Micro, Dec. 1987. Micro Dec 1987 Shlomo Pri-Tal, quot;MicroStandards - The VME subsystem bus (VSB),quot; IEEE Micro, Apr. 1986. Craig MacKenna and Rick Main, quot;Backup support gives VMEbus powerful multiprocessing architecture,quot; Electronics, Mar. 22, 1984. VxWorks, VRTX [vrtx 1] James F. Ready, quot;VRTX: A Real-Time Operating System for Embedded Microprocessor Applications,“ IEEE Micro, Aug. 1986. [vrtx 2] J. Mattox, quot;A Multi-processor Approach to Using UNIX in a Real-Time Environment,“ WESCON '86 [vrtx 3] S J Doyle and P Bunce quot;Real-Time Multiprocessing Requirements,“ WESCON '86 S. J. P. Bunce, Real-Time Requirements 86 [vxworks 1] Jerry Fiddler and Leslie Kirby, quot;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, quot;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, quot;Communication Routines Between the LSI 11-03 and the 6503'squot;, Purdue University, (undated, unpublished) [puma 2] B. Fisher and V. Hayward, quot;Robot Controller,“ Purdue University, (undated, unpublished) [puma 3] Unimation Inc., quot;Controlling the PUMA Series 500 Robot Arm Without using VALquot;, (undated, unpublished, company confidential) [puma 4] R. Vistnes, quot;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, quot;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, quot;A New Approach to Operating a PUMA manipulator Without Using VAL “ Robots 12 and Vision '88, 1988 P Nagy VAL,“ '88 [puma 8] P. Nagy, quot;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) [p ] , y [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, quot;VAL: A Versatile Robot Programming and Control System,“ Proc. COMPSAC 79 [val 4] B. E. Shimano, C. C. geschke, and C. H. Spalding III, quot;VAL-II: A New Robot Control System for Automatic Manufacturingquot; IEEE Intl Conf on Robotics, Mar. 1984 [unival 1] E. M. Onaga and L. L. Woodland, quot;Six-Axes Digital Torque Servo for Robotics,“ Robots 11/ISIR 17, 1987 [unival [ ni al 2] Unimation Inc UNIVAL Robot Controller - 19 inch Rack Mo nt Eq ipment Man al Apr 1988 Inc., Mount Equipment Manual Apr., LEVEL II [level II 1] R. Guptill and P. Stahura, quot;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. g g [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, V Hayward 10 Code 83-47 School of Electrical Engineering, Purdue Univ., Oct. 1983. [rccl 5] J. Roger, quot;VAX-LSI Interprocessor FIFOquot;, Purdue University, (undated, unpublished) [rccl 6] V. Hayward and R. P. Paul, quot;Robot manipulator Control Under Unix,“ ISIR 13/ Robots 7, 1983. [rccl 7] V. Hayward and R. P. Paul, quot;Robot manipulator Control under Unix RCCL: A Robot Control quot;Cquot; Library,quot; Intl J. Robotics Research Vol.5, No.4, 1986. Research, Vol 5 No 4 1986 [rccl 8] J. S. Lee, S. Hayati, V. Hayward, and J. E. Lioyd, quot;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, quot;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, quot;An RCCL Simulator for the Microbo Robot,“ Computers in Eng., ASME, 1988. A S M Pilon Robot “ Eng ASME 1988 [rccl 11] J. Lloyd, M. Parker, and R. McClain, quot;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 quot; 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
  • 85. RCCL V i t Variants 1999 Gyoung H. Kim, Ph.D G H Ki Ph D
  • 86. RCCL-related Systems • RCCL v1.0-based • Multi-RCCL • RWRCCL • Qrobot • ARCL 86
  • 87. RCCL v1.0 v1 0 Configurations 87
  • 88. RCCL (Purdue, 1983) VAX-11780 UNIBUS Serial FIFO Floppy Teach Aux Pend. CRT CPU RAM ROM DLV-11J FIFO LSI-11 Qbus CLOCK DRV-11 SERVO Digital Analog Power INTERFACE Servo Servo AMP. current Arm Cable Unimation Controller encoder pulses PUMA 560 ARM 88
  • 91. Routine Explanation (1) main(): The main program. (2) startup(): Connect quot;setpoint_n()quot; to the clock interrupt. Initialize and check hardware connection. (3) move(park): quot;parkquot; 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) j jnsend_n(): d () Send the setpoints to the robot controller in the global variable quot;chgquot;. (8) getobsj_n(): Get the actual robot position from the global variable quot;howquot;. (9) getobst_n(): Get the arm currents from the ADC from the global variable quot;howquot;. 91
  • 92. ALVIN-RCCL (Purdue, 1991) 68030s/VxWorks VMEBus CPU #1 CPU #2 Shared Mem Mem. Bus adapter CRT Bus adapter Qbus CLOCK DRV-11 SERVO Digital Analog Power INTERFACE Servo Servo AMP. current t Arm Cable Unimation Controller encoder pulses PUMA 560 ARM 92
  • 93. RCCL-ALVIN (P d RCCL ALVIN (Purdue, 1998) Host PC/QNX PCI Bus Bus adapter Bus adapter Qbus CLOCK DRV-11 SERVO Digital Analog Power INTERFACE Servo Servo AMP. current t Arm Cable Unimation Controller encoder pulses PUMA 560 ARM 93
  • 94. Software Architecture of ALVIN RCCL ALVIN-RCCL 94
  • 95. RCCL / RCI (Standard) Host Computer Host computer bus Serial Parallel I/O Floppy Teach Aux Pend. Unimation Controller CRT C CPU RAM ROM DLV-11J Parallel I/O LSI-11 Qbus CLOCK DRV-11 SERVO Digital Analog Power INTERFACE Servo Servo AMP. current Arm C bl A Cable encoder pulses 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 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. – H d Hardware: PC + Trident TRC 004/006 b T id t boards. d – Software: RCCL ported to rtlinux. Position control is added to RCCL. RCCL 98
  • 99. RWRCCL (TRC Boards) Host PC/Linux ISA bus TRC004 board Unimation Controller U i ti C t ll TRC006 Board Power amplifier Arm Cable PUMA ARM 99
  • 101. Software A hit t S ft Architecture of RWRCCL f 101
  • 102. Graphic Simulator of RWRCCL 102
  • 103. QRobot • A multitasking QNX/PC b ltit ki QNX/PC-based robot control system. d b t t l t • 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 U i ti C t ll 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 R l ti Real-time Li Linux/PC /PC 2005 Gyoung H. Kim, Ph.D 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. Linux • Porting RWRCCL to Linux/RTAI. g 109
  • 110. Test Environment • RCCL: v1.0 (1983) • Simderella: v2.0.2 (1995) • gcc: 2 9 x 3 0 4 3 2 2.9.x, 3.0.4, 3.2 • Linux distribution: - Redhat 7.3, Redhat 8.0 - D bi woody, Debian sarge Debian d D bi • 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: y 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. - Si Signal h dl calls setpoint_n(). l handler ll t i t () 3. REAL mode (hardware interrupt) - At every 28ms, a hardware interrupt signal is generated from the Unimation controller. - Interrupt service routine calls setpoint n(). 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 , p g g (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 option, -lbsd. 113
  • 114. Running RCCL on Linux g (SYSV mode with libc6) (1) Ch Change f from BSD stuffs t SYSV t ff to - 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 ( ). ( ) ot e o o (4) Do the following minor modifications: g o od cat o s - Add print.c for more printouts. - Add printst( ) to jnsend_n( ) of misc.c - Create linux directory for examples examples. - Move main.c from src to linux directory. - Adjust the delay parameter of usleep( ). - Add FAKE_DEBUG for better debugging FAKE DEBUG debugging. 114
  • 115. Simderella (A general-purpose robot simulator for kinematics) Current joint angles Simderella connel (robot controller) Desired joint angles, velocities, accelerations simmel (f (forward kinematics calculator) d ki ti l l t ) 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. 1 Modify connel/main.c so that desired joint angles are from j6, connel/main c j6 a global variable of RCCL. 2. Combine the main.c of RCCL and the main.c of connel. After setpoint_n( ) setpoint n( ), call user_move_robot( ) at each clock signal user move robot( signal. 3. Modify user_move_robot( ) and move_robot( ) of connel/moving.c to bypass some dynamics and kinematics calculations. 4. Adjust D-H parameters of PUMA arms. 5. Link RCCL libraries when compiling connel/main.c. p g 6. Run Simderella. 116
  • 117. Screenshot of RCCL + Simderella • g p Right window: connel’s window printing out joint angles g j g from a RCCL program. • Left window: bemmel’s window drawing a PUMA arm with the joint angles. 117
  • 118. RCCL + Simderella (off-line) (off- 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. 4 Compile connel/main c 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. 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. -R i d f Receive commands from User command monitor U d it 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 ), 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: Distribution CPU-specific (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 m586 122
  • 123. RTAI Running Procedure 1. 1 Install t i I t ll rtai modules d l modprobe rtai modprobe rtai_sched modprobe rtai_fifos modprobe rtai_shm modprobe rtai_libm 2. Install the RCCL realtiime module insmod rccl.o 3. Start the “user command monitor” as ./rccl_app 4. Type s/q/b/r keys at the prompt of “rccl_app” to start/quit/break/resume realtime RCCL tasks. q 5. 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 p communication of Simderella. • RCCL on RTAI – Clock rate 50Hz (20ms) works without any p ( ) y 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. t ll t t l k d ift 124
  • 126. Analysis Results of RWRCCL • Routines are fully documented 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 3.3 - glibc 2.3.2 • RTLinux: - rtlinux-3.2-rc1 - kernel 2.4.27 • Patches (1) gcc-dependent: newline in a literal string gcc dependent: 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 (pos t o control ode, (position co t o mode, PID control) co t o ) • Simulation mode needs a slower sampling rate due to the slow X11 graphics. • Dry running mode in real-time is added Dry-running real time added. 128
  • 129. Porting RWRCCL to RTAI • 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) rtai lxrt h) 129
  • 130. Ongoing Projects • Modifying RCCL for running various arms. • Porting RCCL v1 0 to Xenomai v1.0 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 f P t E d of Part 3 131