Robots have historically been taught manually, i.e. using the robot's 'teach pendant' to manually drive the robot's TCP to the desired
point along the part to be operated on, while visually verifying – as much as feasible – the achieved accuracy. This is obviously
a time-consuming process, to be painstakingly repeated for each (relevant) point along the robot's path in space; furthermore, this
process clearly doesn't provide a high level of positional accuracy.
Robot Simulation software, commercialized nowadays by various
companies, offers the ability to model an entire robot-cell on computer prior to dealing with it on the actual plant floor: a desired
robot model is chosen, the end-effector and the fixture can be modeled, the part can be imported from some other CAD software – all
that allowing the final robot program (with all required speeds and including any other desired commands) to be entirely created upfront
through Simulation.
The created robot program is – theoretically – ready to be executed on the actual robot: this process is referred
to as Off-Line Programming (OLP). More specifically, 'Downloading' is the process of transferring robot programs created through Simulation
software in a 'nominal' environment, to the 'actual' robot-cell on the plant floor; 'Uploading' consists of transferring robot programs
created on the 'actual' robot-cell on the plant floor, to the 'nominal' robot-cell in the Simulation software.
In reality,
the differences between the 'nominal' world in Simulation and the 'actual' environment on the plant floor prevent from directly executing
on the robot controller a robot program created through Simulation: each robot unit is built with certain manufacturing tolerances;
the end-effector and its TCP deviate from their design intent; the fixture holding the part is not located relative to the robot coordinate
frame as desired; etc. As a result, the robot programs downloaded from Simulation will not follow the intended path on the plant floor. This
doesn't just affect the positioning of the robot's TCP, but it can also cause collisions between the robot and other peripherals within
the robot-cell.
A robot program generated through Off-Line Programming is accurate enough if the resulting positioning accuracy
of the robot's TCP is within the acceptable limits for the intended application. For example, Off-Line Programming resulting
in good enough robot programs for a paint job might not be so for an engine component assembly application. To maximize the success
of Off-Line Programming (minimum manual robot program touchup and collision avoidance), it is generally imperative to perform 'Robot-Cell
Calibration', and to correct accordingly (i.e. 'Filter') the robot programs to be downloaded. Use the DynaCal™ system for that purpose
(see "Absolute Accuracy Robot-Cell Calibration").