PLC Simulator
PLC field notesrobotics

How to Program a Universal Robot: A Beginner's Guide (2026)

A practical, from-zero guide to programming a Universal Robots cobot: the teach pendant and PolyScope, frames and the TCP, waypoints, your first pick-and-place, digital I/O and grippers, safety and protective stops, and how to practise without owning a robot.

PLC Simulation Software11 min read

Universal Robots arms are the most popular collaborative robots in the world, and a big reason is that they are genuinely approachable to program. You do not need a robotics degree to teach a UR arm to pick a part and place it somewhere else. This guide walks you from never having touched a cobot to understanding a complete first program — the concepts, the vocabulary, and the order to learn them in.

If your target cell uses RAPID rather than PolyScope and URScript, the ABB robot programming guide follows the same frames, motion, I/O, sequencing and recovery questions in the ABB ecosystem.

What "programming a robot" actually means

A robot program is a sequence of moves and actions, wrapped in logic. That is it.

  • Moves take the tool from one pose to another.
  • Actions do something at a pose — close a gripper, set a signal, wait.
  • Logic decides what happens — if a sensor is on, pick from bin A, else bin B; repeat until the tray is full.

Everything else is detail in service of those three. Keep that frame in mind and the rest stops being intimidating.

The two interfaces: PolyScope and URScript

A UR robot is programmed through the teach pendant — a touchscreen running an interface called PolyScope. You build a program by adding nodes to a tree: a Waypoint here, a Set output there, a Wait, an If.

Underneath PolyScope is a text language called URScript. Every node you add generates URScript that the controller runs. Beginners usually start in PolyScope's graphical tree and move toward writing URScript directly as their programs get more logic-heavy. (If you want the language itself first, read What is URScript?.)

Step 1: Understand frames and the TCP

Before any move makes sense, the robot needs two reference ideas.

  • The base frame is the robot's own coordinate system, centred at its base. By default, poses are described relative to it.
  • The TCP — Tool Centre Point — is where the working tip of your tool is, relative to the wrist flange. If you bolt on a 150 mm gripper, you tell the robot set_tcp(...) so it knows the real tip is 150 mm past the flange. Skip this and every Cartesian move is wrong by the length of your tool — the single most common beginner mistake.

You can also define your own feature frames — a coordinate system aligned to a fixture or conveyor — so your program reads in the part's coordinates instead of the robot's. That makes programs easier to write and easier to relocate.

Step 2: Teach waypoints

A waypoint is a saved pose. There are two ways to create one:

  1. Freedrive — hold the button on the pendant and physically move the arm by hand to where you want it, then save the pose. This hands-on teaching is a signature UR feature and how most people set their first points.
  2. Jogging — nudge the arm using on-screen arrows, either joint-by-joint or in Cartesian X/Y/Z, then save.

Your first program is essentially a handful of taught waypoints — home, above-pick, pick, above-place, place — strung together with moves.

Step 3: Choose the right move between waypoints

Between two waypoints you pick a move type, and the choice matters:

  • movej (joint move) — fast, follows a curved path. Use across open space.
  • movel (linear move) — straight Cartesian line. Use near parts and fixtures.

Getting this right is foundational enough that we wrote a whole guide on it: movej vs movel vs movep. For a first program, the rule of thumb is: movej to get close, movel for the final approach and retreat.

Step 4: Add the gripper — digital I/O

A move puts the tool in place; an action makes it do something. The most common action is operating a gripper through a digital output:

set_digital_out(0, True)    # close gripper
sleep(0.4)                  # give it a moment to grip
set_digital_out(0, False)   # open gripper

You read sensors the same way with get_digital_in(n) — for example, checking a part-present sensor before you try to pick. This is also exactly how a robot talks to a PLC: digital signals back and forth coordinating the cell. (If you do not know what a PLC is, our PLC simulator is the other half of this skill set.)

Step 5: Your first complete pick-and-place

Put the pieces together and you have a real program. In URScript it reads cleanly:

set_tcp(p[0, 0, 0.15, 0, 0, 0])   # 150 mm gripper
set_payload(0.8)                  # 0.8 kg part

home          = [0, -1.57, 0, -1.57, 0, 0]
pick_approach = p[0.40, -0.20, 0.10, 0, 3.14, 0]
pick          = p[0.40, -0.20, 0.02, 0, 3.14, 0]
place         = p[0.40,  0.20, 0.02, 0, 3.14, 0]

movej(home,          a=1.4, v=1.0)
movel(pick_approach, a=1.2, v=0.4)
movel(pick,          a=0.5, v=0.1)   # slow, straight down onto the part
set_digital_out(0, True)             # grip
sleep(0.4)
movel(pick_approach, a=1.2, v=0.4)   # lift straight up
movel(place,         a=1.2, v=0.3)
set_digital_out(0, False)            # release
movej(home,          a=1.4, v=1.0)

Read it top to bottom: set up the tool, define the poses, move home, approach and descend to the pick, grip, lift, move to place, release, go home. That is a working cobot job.

Step 6: Respect safety — the part that makes it a cobot

Universal Robots are collaborative robots, meaning they are designed to work near people. That safety is configured, not assumed:

  • Protective stops: if the arm contacts something with more force than the configured limit, it stops automatically. Great safety feature — and also something to design around, because an unexpected protective stop halts production.
  • Safety planes and zones: you define virtual boundaries the tool may not cross.
  • Speed and force limits: lower limits make the robot safer around people but slower.

Designing a cycle that is fast yet never trips an unintended protective stop — and that behaves safely if it does contact something — is a real skill. It is also dangerous and expensive to learn by trial and error on a physical arm.

Step 7: Practise — ideally without a real robot first

Here is the honest truth about learning robot programming: you learn by repetition, and repetition on a real arm is slow, shared, and risky. Beginners improve fastest when they can run a task fifty times, fail safely, and tweak.

The classic free tool is URSim, UR's official offline simulator — capable, but it runs as a Linux virtual machine that many beginners find hard to set up. Paid desktop tools like RoboDK are excellent but aimed at professional integrators.

We built a browser-based UR robot simulator to close that gap: write real URScript, run it on a simulated UR arm with live physics, and learn pick-and-place, frames, TCP, waypoints, and safety — graded from zero, with nothing to install. It is the same approach behind our PLC simulator: practise the real skill in the browser, free to start. It is live now — the first lessons are free, and Pro unlocks the full course and a certificate.

Key takeaways

  • A robot program is just moves + actions + logic.
  • Set the TCP first — almost every beginner error traces back to skipping it.
  • Teach waypoints with freedrive or jogging, then connect them with the right move type (movej in open space, movel near things).
  • Operate grippers and talk to PLCs through digital I/O.
  • Safety (protective stops, planes, force limits) is configured and is core cobot skill.
  • You learn fastest by repeating safely in a simulator before touching real hardware.

Next steps

ShareX / TwitterLinkedIn

From reading to running logic

Practice this yourself in the simulator

Start with guided PLC practice in your browser. No install and no credit card required.

Start practising free

Continue learning

Related field notes

All articles
robotics
urscript

movej vs movel vs movep: URScript Move Commands Explained

The difference between movej, movel and movep is the first thing every Universal Robots programmer has to get right. This guide explains joint vs linear vs process moves, when to use each, blend radius, speed and acceleration, and the classic singularity and overshoot pitfalls — with URScript examples.

8 min read
robotics
urscript

What Is URScript? Universal Robots' Programming Language Explained

URScript is the text-based programming language that runs Universal Robots arms. This guide explains what URScript is, how it relates to PolyScope, the core commands (movej, movel, set_digital_out), variables, functions, and how to start learning it without owning a robot.

9 min read
hmi
allen bradley

FactoryTalk View Tutorial: What It Is, What It Costs, and How to Learn HMI Free

Learn what FactoryTalk View ME, SE and Studio are, why the download hunt is frustrating, which concepts transfer to any HMI, and how to build those skills free in your browser.

11 min read

Independent vendor-platform field guide

How to program a Universal Robot: implementation, evidence and troubleshooting

Direct answer

How to program a Universal Robot becomes useful when it connects robot model, software version, base and tool frames, tcp, payload, waypoints, motion type, i/o and cell state with urscript statements through joint or cartesian motion, blends, waits and handshakes to observable cell feedback, then proves home, approach, pick, depart, place and return behavior at deliberate training settings under normal, boundary, fault and recovery conditions. The objective is a repeatable engineering or learning result, not merely activity inside a page or tool.

This guide is written for robot-programming learners moving from waypoints and PolyScope concepts into frames, motion commands, I/O, payload and recoverable sequences. The intended result is specific: the learner can describe and test a bounded pick-and-place sequence while separating transferable practice from controller, software and safeguarded-cell validation.

System map / 02

Six concepts that control the result

Treat these as connected checkpoints. Each checkpoint has an expected state, an observable state and a boundary to the next part of the system. That structure prevents a software indication from being mistaken for physical proof.

NODE 01observable

Define the operating contract

robot model, software version, base and tool frames, TCP, payload, waypoints, motion type, I/O and cell state. For Universal Robots programming and URScript, record the initial condition, actor, requested change, observable result and stopping condition before selecting a tool or implementation.

NODE 02observable

Map the evidence path

URScript statements through joint or Cartesian motion, blends, waits and handshakes to observable cell feedback. Separate request, internal state, output or service, physical or user-visible result and independent feedback so each boundary can be inspected.

NODE 03observable

Prove normal operation

home, approach, pick, depart, place and return behavior at deliberate training settings. Run more than one cycle from a known state and retain the values, timings or artifacts that demonstrate repeatability.

NODE 04observable

Exercise a boundary case

reach, singularity, blend, payload, lost part, delayed I/O, interruption and restart. Choose minimum, maximum, simultaneous, delayed or restart conditions that reveal assumptions hidden by the happy path.

NODE 05observable

Diagnose a controlled fault

a frame, pose, TCP, motion, handshake, payload or recovery mismatch. Preserve the first symptom, divide the system at a measurable boundary and change one condition only after predicting the result.

NODE 06observable

Transfer and hand over

the program recreated from current official documentation and validated in URSim, the controller and safeguarded cell. Restore normal state, remove temporary changes, repeat affected checks and document which claims remain limited to the learning environment.

Procedure / 03

A six-step practice and commissioning workflow

Run the steps in order the first time. Later, the same structure becomes a diagnostic loop: define the expected condition, observe the boundary, interpret the difference and choose one proving action.

  1. 01

    Write the acceptance case

    Convert robot model, software version, base and tool frames, tcp, payload, waypoints, motion type, i/o and cell state into initial conditions, one stimulus and observable pass criteria.

    Evidence: Another person can repeat the case without guessing the intended result.

    Avoid: Using page completion or an animation as the acceptance criterion.

  2. 02

    Build the map

    Document urscript statements through joint or cartesian motion, blends, waits and handshakes to observable cell feedback and name who owns each state or decision.

    Evidence: Every request and result has a source, destination and useful inspection point.

    Avoid: Using the same value as command, status and independent feedback.

  3. 03

    Run the baseline

    Apply home, approach, pick, depart, place and return behavior at deliberate training settings from a clean start and record the expected evidence.

    Evidence: Repeated runs produce the same bounded result.

    Avoid: Changing several parameters before a baseline exists.

  4. 04

    Challenge assumptions

    Test reach, singularity, blend, payload, lost part, delayed i/o, interruption and restart without changing the acceptance contract.

    Evidence: Limits, timing and restart behavior reach defined states.

    Avoid: Testing only one ideal sequence.

  5. 05

    Isolate one failure

    Introduce or analyse a frame, pose, tcp, motion, handshake, payload or recovery mismatch and locate the first disagreement.

    Evidence: The proving action distinguishes the leading hypotheses.

    Avoid: Resetting, forcing or replacing before evidence is retained.

  6. 06

    Close the evidence loop

    Complete the program recreated from current official documentation and validated in ursim, the controller and safeguarded cell and repeat the affected regression cases.

    Evidence: Transfer is complete only after the example is recreated, compiled and tested in the official engineering environment and on the intended controller family.

    Avoid: Treating an acknowledged message or one successful rerun as handover.

Diagnostic matrix / 04

Symptoms, proving points and next actions

The table is a reasoning aid, not a parts-replacement chart. Preserve the initial symptom, inspect the named boundary and use the interpretation to choose the next controlled test. Site safety procedures and equipment manuals remain authoritative.

Diagnostic symptoms, inspection points, interpretations and next actions for How to program a Universal Robot: implementation, evidence and troubleshooting
Observed symptomInspectInterpretationNext proving action
The expected result is unclearRequirement, initial state, actor, stimulus, units and pass conditionThe learner, maintainer and target-platform reviewer may be solving different versions of the task.Rewrite one observable acceptance case before continuing.
Internal state changes but the outcome does notRequest, final owner, output or service boundary and independent feedbackA software or interface indication proves intent at one layer, not the complete outcome.Trace the first boundary after the changing state.
Normal case passes but an edge case failsLimits, timing, simultaneous events, reset and restart assumptionsThe implementation contains a hidden assumption exposed by the changed condition.Add the failed boundary as a permanent regression case.
The failure disappears after resetOriginal symptom, histories, diagnostics, timestamps and active causeReset changed evidence or state without proving the initiating cause.Reproduce under a controlled condition and preserve pre/post-event data.
Simulator and target disagreeModel boundary, software version, task timing, I/O behavior, data types and configurationA learning model and the intended target do not share one of the recorded assumptions.Reduce the case and verify against current target documentation.
The result cannot be explainedPrediction, observation, proving action, alternative hypotheses and limitationsActivity occurred but the evidence is not yet transferable or reviewable.Have the learner defend the signal path and repeat a changed case.

Product evidence / 05

What the browser practice can actually demonstrate

The browser material teaches transferable control behavior and vendor-oriented terminology while keeping project files, firmware and exact runtime behavior outside the claim.

Where simulation stops

The browser trainer does not run PolyScope or reproduce UR controller dynamics, safety configuration, protective stops or a production cell risk assessment.

Commissioning notebook / 06

Six cases that turn the concepts into evidence

Use these as written briefs rather than click-through instructions. For every case, state the expected condition before acting, retain the first useful observation and explain why the final result proves the requirement. A different program or component choice can still be correct when it produces the same bounded behavior and evidence.

Case 01

predict → observe → prove

Prove define the operating contract

Engineering context. robot model, software version, base and tool frames, TCP, payload, waypoints, motion type, I/O and cell state. For Universal Robots programming and URScript, record the initial condition, actor, requested change, observable result and stopping condition before selecting a tool or implementation. Begin with a written normal condition and identify which request, state, physical result or communication value will provide independent confirmation. Do not begin by changing the configuration; the initial state is part of the evidence and should remain reproducible.

Controlled setup. Use the “Write the acceptance case” stage of the workflow: convert robot model, software version, base and tool frames, tcp, payload, waypoints, motion type, i/o and cell state into initial conditions, one stimulus and observable pass criteria. The acceptance record should show this result: another person can repeat the case without guessing the intended result. Record initial conditions, the exact stimulus and the observation point so another learner can repeat the case without relying on your memory.

Fault challenge. Introduce or analyse “The expected result is unclear” as one bounded deviation. Inspect requirement, initial state, actor, stimulus, units and pass condition The working interpretation is that the learner, maintainer and target-platform reviewer may be solving different versions of the task. The next proving action is to rewrite one observable acceptance case before continuing. Change only one condition before observing the result, and preserve timestamps or measurements where timing matters.

Review and recovery. The most common trap here is using page completion or an animation as the acceptance criterion. After restoring the cause, repeat the normal case and at least one stop, timeout, disconnect or restart boundary relevant to this topic. Remove temporary forces and bypasses, return the model to a known state and retain the evidence that both operation and recovery are deliberate.

Explain it aloud: What should I learn first about Universal Robots programming and URScript? A defensible short answer is: Start with the operating contract and evidence path: robot model, software version, base and tool frames, tcp, payload, waypoints, motion type, i/o and cell state, followed by urscript statements through joint or cartesian motion, blends, waits and handshakes to observable cell feedback. Add advanced features only after the baseline is predictable.

Case 02

predict → observe → prove

Prove map the evidence path

Engineering context. URScript statements through joint or Cartesian motion, blends, waits and handshakes to observable cell feedback. Separate request, internal state, output or service, physical or user-visible result and independent feedback so each boundary can be inspected. Begin with a written normal condition and identify which request, state, physical result or communication value will provide independent confirmation. Do not begin by changing the configuration; the initial state is part of the evidence and should remain reproducible.

Controlled setup. Use the “Build the map” stage of the workflow: document urscript statements through joint or cartesian motion, blends, waits and handshakes to observable cell feedback and name who owns each state or decision. The acceptance record should show this result: every request and result has a source, destination and useful inspection point. Record initial conditions, the exact stimulus and the observation point so another learner can repeat the case without relying on your memory.

Fault challenge. Introduce or analyse “Internal state changes but the outcome does not” as one bounded deviation. Inspect request, final owner, output or service boundary and independent feedback The working interpretation is that a software or interface indication proves intent at one layer, not the complete outcome. The next proving action is to trace the first boundary after the changing state. Change only one condition before observing the result, and preserve timestamps or measurements where timing matters.

Review and recovery. The most common trap here is using the same value as command, status and independent feedback. After restoring the cause, repeat the normal case and at least one stop, timeout, disconnect or restart boundary relevant to this topic. Remove temporary forces and bypasses, return the model to a known state and retain the evidence that both operation and recovery are deliberate.

Explain it aloud: How do I practise Universal Robots programming and URScript effectively? A defensible short answer is: Use short cases with known initial conditions, a written prediction, one action and an observable result. Then alter a boundary or fault and explain why the evidence changed.

Case 03

predict → observe → prove

Prove prove normal operation

Engineering context. home, approach, pick, depart, place and return behavior at deliberate training settings. Run more than one cycle from a known state and retain the values, timings or artifacts that demonstrate repeatability. Begin with a written normal condition and identify which request, state, physical result or communication value will provide independent confirmation. Do not begin by changing the configuration; the initial state is part of the evidence and should remain reproducible.

Controlled setup. Use the “Run the baseline” stage of the workflow: apply home, approach, pick, depart, place and return behavior at deliberate training settings from a clean start and record the expected evidence. The acceptance record should show this result: repeated runs produce the same bounded result. Record initial conditions, the exact stimulus and the observation point so another learner can repeat the case without relying on your memory.

Fault challenge. Introduce or analyse “Normal case passes but an edge case fails” as one bounded deviation. Inspect limits, timing, simultaneous events, reset and restart assumptions The working interpretation is that the implementation contains a hidden assumption exposed by the changed condition. The next proving action is to add the failed boundary as a permanent regression case. Change only one condition before observing the result, and preserve timestamps or measurements where timing matters.

Review and recovery. The most common trap here is changing several parameters before a baseline exists. After restoring the cause, repeat the normal case and at least one stop, timeout, disconnect or restart boundary relevant to this topic. Remove temporary forces and bypasses, return the model to a known state and retain the evidence that both operation and recovery are deliberate.

Explain it aloud: What counts as proof of competence? A defensible short answer is: A repeatable artifact or system result plus an explanation of the signal path is stronger than time spent, screenshots or a copied answer. Physical competence requires separate supervised evidence.

Case 04

predict → observe → prove

Prove exercise a boundary case

Engineering context. reach, singularity, blend, payload, lost part, delayed I/O, interruption and restart. Choose minimum, maximum, simultaneous, delayed or restart conditions that reveal assumptions hidden by the happy path. Begin with a written normal condition and identify which request, state, physical result or communication value will provide independent confirmation. Do not begin by changing the configuration; the initial state is part of the evidence and should remain reproducible.

Controlled setup. Use the “Challenge assumptions” stage of the workflow: test reach, singularity, blend, payload, lost part, delayed i/o, interruption and restart without changing the acceptance contract. The acceptance record should show this result: limits, timing and restart behavior reach defined states. Record initial conditions, the exact stimulus and the observation point so another learner can repeat the case without relying on your memory.

Fault challenge. Introduce or analyse “The failure disappears after reset” as one bounded deviation. Inspect original symptom, histories, diagnostics, timestamps and active cause The working interpretation is that reset changed evidence or state without proving the initiating cause. The next proving action is to reproduce under a controlled condition and preserve pre/post-event data. Change only one condition before observing the result, and preserve timestamps or measurements where timing matters.

Review and recovery. The most common trap here is testing only one ideal sequence. After restoring the cause, repeat the normal case and at least one stop, timeout, disconnect or restart boundary relevant to this topic. Remove temporary forces and bypasses, return the model to a known state and retain the evidence that both operation and recovery are deliberate.

Explain it aloud: Why test faults and restart behavior? A defensible short answer is: Because a frame, pose, tcp, motion, handshake, payload or recovery mismatch or reach, singularity, blend, payload, lost part, delayed i/o, interruption and restart can expose assumptions that never appear during ideal startup and steady operation.

Case 05

predict → observe → prove

Prove diagnose a controlled fault

Engineering context. a frame, pose, TCP, motion, handshake, payload or recovery mismatch. Preserve the first symptom, divide the system at a measurable boundary and change one condition only after predicting the result. Begin with a written normal condition and identify which request, state, physical result or communication value will provide independent confirmation. Do not begin by changing the configuration; the initial state is part of the evidence and should remain reproducible.

Controlled setup. Use the “Isolate one failure” stage of the workflow: introduce or analyse a frame, pose, tcp, motion, handshake, payload or recovery mismatch and locate the first disagreement. The acceptance record should show this result: the proving action distinguishes the leading hypotheses. Record initial conditions, the exact stimulus and the observation point so another learner can repeat the case without relying on your memory.

Fault challenge. Introduce or analyse “Simulator and target disagree” as one bounded deviation. Inspect model boundary, software version, task timing, I/O behavior, data types and configuration The working interpretation is that a learning model and the intended target do not share one of the recorded assumptions. The next proving action is to reduce the case and verify against current target documentation. Change only one condition before observing the result, and preserve timestamps or measurements where timing matters.

Review and recovery. The most common trap here is resetting, forcing or replacing before evidence is retained. After restoring the cause, repeat the normal case and at least one stop, timeout, disconnect or restart boundary relevant to this topic. Remove temporary forces and bypasses, return the model to a known state and retain the evidence that both operation and recovery are deliberate.

Explain it aloud: Can browser practice replace official software or hardware? A defensible short answer is: No. It can build concepts and diagnostic reasoning. Exact firmware, I/O electrical behavior, networking, safety and commissioning require current official tools, documentation and target equipment.

Case 06

predict → observe → prove

Prove transfer and hand over

Engineering context. the program recreated from current official documentation and validated in URSim, the controller and safeguarded cell. Restore normal state, remove temporary changes, repeat affected checks and document which claims remain limited to the learning environment. Begin with a written normal condition and identify which request, state, physical result or communication value will provide independent confirmation. Do not begin by changing the configuration; the initial state is part of the evidence and should remain reproducible.

Controlled setup. Use the “Close the evidence loop” stage of the workflow: complete the program recreated from current official documentation and validated in ursim, the controller and safeguarded cell and repeat the affected regression cases. The acceptance record should show this result: transfer is complete only after the example is recreated, compiled and tested in the official engineering environment and on the intended controller family. Record initial conditions, the exact stimulus and the observation point so another learner can repeat the case without relying on your memory.

Fault challenge. Introduce or analyse “The result cannot be explained” as one bounded deviation. Inspect prediction, observation, proving action, alternative hypotheses and limitations The working interpretation is that activity occurred but the evidence is not yet transferable or reviewable. The next proving action is to have the learner defend the signal path and repeat a changed case. Change only one condition before observing the result, and preserve timestamps or measurements where timing matters.

Review and recovery. The most common trap here is treating an acknowledged message or one successful rerun as handover. After restoring the cause, repeat the normal case and at least one stop, timeout, disconnect or restart boundary relevant to this topic. Remove temporary forces and bypasses, return the model to a known state and retain the evidence that both operation and recovery are deliberate.

Explain it aloud: How should progress be documented? A defensible short answer is: Keep the requirement, initial state, program or configuration, observed values, fault hypothesis, proving action, recovery result and a concise limitations statement.

Answer surface / 07

Questions people ask about How to program a Universal Robot

These concise answers define the operating, training and product boundaries most often missed in broad summaries. The full workflow and diagnostic table above provide the evidence behind them.

What should I learn first about Universal Robots programming and URScript?

Start with the operating contract and evidence path: robot model, software version, base and tool frames, tcp, payload, waypoints, motion type, i/o and cell state, followed by urscript statements through joint or cartesian motion, blends, waits and handshakes to observable cell feedback. Add advanced features only after the baseline is predictable.

How do I practise Universal Robots programming and URScript effectively?

Use short cases with known initial conditions, a written prediction, one action and an observable result. Then alter a boundary or fault and explain why the evidence changed.

What counts as proof of competence?

A repeatable artifact or system result plus an explanation of the signal path is stronger than time spent, screenshots or a copied answer. Physical competence requires separate supervised evidence.

Why test faults and restart behavior?

Because a frame, pose, tcp, motion, handshake, payload or recovery mismatch or reach, singularity, blend, payload, lost part, delayed i/o, interruption and restart can expose assumptions that never appear during ideal startup and steady operation.

Can browser practice replace official software or hardware?

No. It can build concepts and diagnostic reasoning. Exact firmware, I/O electrical behavior, networking, safety and commissioning require current official tools, documentation and target equipment.

How should progress be documented?

Keep the requirement, initial state, program or configuration, observed values, fault hypothesis, proving action, recovery result and a concise limitations statement.

What should I do when the answer differs from a guide?

Check assumptions, version, units and initial state first. Reduce the case, compare one boundary at a time and prefer current primary documentation for target-specific behavior.

When is a Universal Robots programming and URScript exercise finished?

Transfer is complete only after the example is recreated, compiled and tested in the official engineering environment and on the intended controller family.