# Give me some ideas on what to include in a crash-course!

• Hi!

In a few weeks I will be starting on a mission as a teacher in robotics. It's a total of five groups of Automation Engineering students who each gets to spend two full days with me and a couple of DX-200's.

The robots are fairly small and are enclosed in plexiglass cubes (for safety).

I will begin with some theory and then let them jog and do some minor programming.

Please feel free to suggest different kinds of exercises that I can give them, or if there are somethings that I should emphasize.

(Bare in mind that each class only get two days worth of education with me. The goal is only to give them an introduction to robotics and an understanding of it. And since they have Motoman robots at their disposal -some Motoman-specific knowledge.)

This far I have come up with the following:

*Setup a TCP for a pointy tool (the robots are equipped with grippers that can grip the "pointy tools")

*Setup a user coordinate on a plane that is sloped and rotated in relation to base coordinate

*Perform a circular movement using MOVC

*Follow a path with both straight and curved lines
*Do a slalom run (move a pen or something that is being held by the gripper through an obstacle course)
*Pick up small building blocks, stack them and then put them back

*Something that involves P-Shift (please give me suggestions)

• You could incorporate the P-shift into the pick-and-place job. You can for example change the position to where the robot is going to stack the blocks. If it's not on a level surface they can make a user frame of the surface so when they change the position of the stack the surface hight will still be correct. Bretty much comes down to how experienced they are. If they have zero experience then I don't think you can add anything to what you already have on the list.

• You could incorporate the P-shift into the pick-and-place job. You can for example change the position to where the robot is going to stack the blocks. If it's not on a level surface they can make a user frame of the surface so when they change the position of the stack the surface hight will still be correct. Bretty much comes down to how experienced they are. If they have zero experience then I don't think you can add anything to what you already have on the list.

On a side note (since I've never actually used P-shift in any applications other than during education), When using the SFTON-instruction, It only reads the X, Y, Z, Rx, Ry, Rz-values of the spcified p-variable but doesn't care about what frame that p-variable has?

For instance:

P001 is specified with UF#5 (a frame that is rotated and tilted compared to Base frame) and has the following values:

X = 0
Y = 100.0

Z = 0

Rx, Ry, Rz = 0

UF#1 is the same as Base frame.

The instruction goes:

0000 NOP

0001(001) MOVL V=500

0002 SFTON P001

0003(002) MOVL V=200

0004(003) MOVL V=200

0005 SFTOF

Does this mean that movement to points 0002 and 0003 will be shifted 100mm in the Y-direction of whatever coordinate was used when teaching points 0002 and 0003?

Further:

0000 NOP

0001(001) MOVL V=500

0002 SFTON P001 UF#5

0003(002) MOVL V=200

0004(003) MOVL V=200

0005 SFTOF

Does this mean that movements to point 0002 and 0003 will be shifted 100mm in the Y-direction of UF#5?

Example 1: No. SFTON P001 command will make it shift in base frame (default frame).

Example 2: Yes. SFTON P001 UF#(5) will shift the positions according to UF#(5). 100mm in the Y-direction in your example.

The frame that a P-variable has does not matter when using SFTON command. The frame in which the P-variable values are executed is defined in the SFTON command itself. SFTON P001 BF; SFTON P001 RF; SFTON P001 TF; SFTON P001 UF#(5) etc.

The frame of a P-variable is relevant when using MOV instruction with P-variable.

Example MOVL P001 V=100.0 This will make the robot move to the poisition using P001 values in whatever frame P001 is in. So if P001 is UF#(5) and all the values are 0, then it will move to the ORG of UF#(5) and the angles will also be 0 in UF#(5).

Hope you understand. It's not easy to explain as english is not my native language.

• You seem to have some of the basics. How about programming logic and program stucture? IF THEN, WHILE and even though I don't like it, JUMP LBL. Using INT, BYTE and other variables to store data and use it for decision making, as well as inputs.

• Does this mean that movements to point 0002 and 0003 will be shifted 100mm in the Y-direction of UF#5?

When you write in a job SFTON P001 the controllers defaults to Base Frame. If you want something other than base you need to go into the Detail Edit screen and change the COORD tag to something else.

That is a lot for a two day crash course. Do they already know basic navigation? In a two day course I would have done:

1st Day Morning

Start Jogging

1st Afternoon

Remaining of jogging

Alarms and Errors

Second home position

Creating a job

Selecting a job

Master Job

Start of Motion Types MOVJ, MOVL

Path confirmation

Running in Play

2nd Day Morning

Motion Types MOVC, MOVS

Job Editing

2nd Day Afternoon

INFORM Control Instructions

INFORM IN/OUT Instructions

INFORM ARITH Instructions

No way I could get through all the Control, IN/OUT, and ARITH instructions with exercises.

Position Variables is a 45 minute presentation with several exercises and SFTON, SFTOF is about 20 minutes more.

## I know a thing or two, because I’ve seen a thing or two. Don't even ask about a third thing. I won't know it.

• That is a lot for a two day crash course. Do they already know basic navigation?

-I have no idea of their previous experience. The education program they're taking is a pretty broad spectrum Automation Engineer-education with no or minimal specialization in any subject (I know, I did the exact same education six years ago).

What I do know is that this is their second (and last) year, so they should have the basic programming mindset, be it that they may lack in-depth knowledge and experience. Probably someone in the class has had some form of experience from robotics, but the vast majority of them has none.

The overall goal of the class is for them to get insight of what can be done with a modern six-axis robot, not necessarily for them to be able to accomplish it themselves....

I want to cover all the common stuff that more or less goes for all robots, regardless of the brand (the concept of different coordinates (World frame/Base frame/Tool frame/User Frame, linear and joint movement, program execution with subroutines etc.). Then, since the only robots available to them are Motoman, I'll cover some Motoman-specific stuff like handling the pendant, navigating the menus, syntax.

Thank you very much for a nice planning of a two day course! I will use this as my template and "cherry-pick" from it =)

• Backup backup backup!

The cycle time is the cycle time. Don't try to make the robot cut corners or go faster than it needs to to MAKE cycle time.

Plan down time for maintenance! I f not the robot will do it for you (normally at the worst time).

Did I mention backups?

Robodoc

• I would like to add "Comment comment comment" to that list also