Top

Main Page

Projects

Kyle Shepherd

Robotic Arm Programming

During an investigation into Layer-by-Layer assembly of materials, I investigated automated methods of performing this assembly. The basic requirement is to dip the substrate, the base material, into a solution that contains the material that will deposit on the substrate and form the next layer. Then the substrate must be lifted and the solution solvent must be evaporated away.

One method is to use a Adept Cobra 600 robotic arm.
A video of such an arm in motion is shown below


The following code is an example of V+ code that runs this robotic arm

 1 .PROGRAM test()
                 2 
                 3 ; define safehome beforehand in console and robot position
                 4 
                 5         ; set speed of robot arm
                 6         SPEED 10 ALWAYS
                 7         ; moves the robot arm, which could be in any position, to the safe position
                 8         MOVE #safehome
                 9         ; wait for arm to stop moving before executing the next command
                10         BREAK
                11         ; pause the arm for 1 seconds
                12         WAIT.EVENT , 1
                13         ; moves to a defined coordinate
                14         MOVE #PPOINT(-2.03,1.157,76.607,-46.406)
                15         ; wait for the movement to finish
                16         BREAK
                17         ; pause the arm for 4 seconds
                18         WAIT.EVENT , 4
                19 
                20 ; define box1 and box2 beforehand in console and robot position
                21 ; peform the dipping loop
                22         FOR i = 1 TO 5
                23             ; moves to box 1, 150 mm above the target
                24             APPRO #box1, 150
                25             ; moves down to box
                26             MOVE #box1
                27             ; waits for movement to finish
                28             BREAK
                29             ; hold arm in the box for 1 second
                30             WAIT.EVENT , 1
                31             ; moves arm upward 150 mm
                32             DEPART 150
                33 
                34             ; moves to box 1, 150 mm above the target
                35             APPRO #box2, 150
                36             ; moves down to box
                37             MOVE #box2
                38             ; waits for movement to finish
                39             BREAK
                40             ; hold arm in the box for 1 second
                41             WAIT.EVENT , 1
                42             ; moves arm upward 150 mm
                43             DEPART 150
                44 
                45 END