PLC Simulator
PLC field notesrobotics

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.

PLC Simulation Software8 min read

Ask any Universal Robots integrator what trips up beginners first, and a lot of them will say the same thing: using the wrong move command. movej, movel, and movep all get the tool from one place to another, but they do it through completely different motion, and picking the wrong one causes everything from ugly cycles to crashes. Here is how to choose correctly, every time.

The one-line summary

  • movej — moves the joints to the target the fastest way. The tool tip follows a curved, unpredictable path. Fast and safe in open space.
  • movel — moves the tool tip in a straight line in Cartesian space. Predictable path, slower, can hit limits. Use near things.
  • movep — moves the tool at constant speed along a process path, blending through waypoints. Use for dispensing, gluing, welding-style moves.

Now the detail that makes the difference.

movej — joint move

movej(target_q, a=1.4, v=1.05)

movej commands each of the robot's six joints to rotate to a set of target angles. The controller coordinates them so they all arrive together, taking the quickest route through joint space. The tradeoff: the tool tip traces a curved arc you did not explicitly design. Between start and end, the elbow might swing wide.

Use movej when:

  • You are moving across open space (home → above the part).
  • The exact path does not matter, only the start and end poses.
  • You want the fastest, smoothest repositioning.

Avoid movej when there is anything to hit between the two points, or when the tool must stay on a defined line (near a fixture, into a bin, along a surface).

A subtle but important detail: movej can take either joint angles or a Cartesian pose. If you give it a pose, it solves the inverse kinematics to joint angles first, then does a joint move — so the tip still follows a curved path, not a straight one. Beginners often assume "I gave it a pose, so it moves in a straight line." It does not. That is what movel is for.

movel — linear move

movel(target_pose, a=1.2, v=0.25)

movel keeps the Tool Centre Point travelling in a straight Cartesian line from start to end, holding a controlled orientation along the way. This is the move you want whenever the path matters.

Use movel when:

  • Approaching or retreating from a part along a defined direction.
  • Inserting into a fixture, a chuck, or a hole.
  • Moving along or just above a surface.

The costs of movel:

  • It is slower. Forcing a straight line means the joints sometimes move awkwardly to keep the tip on track.
  • It can hit joint limits or singularities. A straight Cartesian path can demand a joint configuration the arm cannot reach, or pass through a singularity (typically when the wrist joints line up and a wrist joint would need near-infinite speed). The robot will slow dramatically or fault. The fix is usually to break the move into segments or shift the approach so you avoid the singular region.

movep — process move with blends

movep(target_pose, a=1.2, v=0.25, r=0.05)

movep moves the tool at constant tool speed along a path and blends through waypoints with a blend radius r (in metres), so the robot does not stop and start at each point. Use it for process motions where consistent speed matters: applying adhesive, dispensing a bead, a smooth inspection sweep.

The blend radius is the key idea: instead of decelerating to zero at a waypoint and accelerating away again, the robot cuts the corner within radius r, keeping motion fluid. Bigger r means smoother and faster but a path that strays further from the exact waypoint.

Blend radius isn't just for movep

You can add a blend radius to movej and movel too (via the r parameter or blend settings in PolyScope). For a multi-waypoint pick-and-place, blending the intermediate waypoints turns a jerky stop-start cycle into a smooth, fast one. The rule of thumb: blend the via points you are passing through; do not blend the points where you actually do something (the exact pick and place poses), because the robot would cut the corner and miss.

# Smooth approach: blend the via point, stop sharp at the pick
movej(home,          a=1.4, v=1.0)
movel(pick_approach, a=1.2, v=0.5, r=0.05)   # blend through the via point
movel(pick,          a=0.5, v=0.1)           # no blend — land exactly on the part

Speed and acceleration: a and v

Every move takes acceleration a and velocity v:

  • For movej, the units are rad/s² and rad/s (joint space).
  • For movel/movep, the units are m/s² and m/s (tool space).

Beginners often crank these up to save cycle time and then wonder why the arm overshoots or trips a protective stop. Start conservative, especially for movel near parts. With a payload in the gripper, momentum matters — a fast move with a heavy part can overshoot or trigger the cobot's force limits. Tuning these safely is exactly the kind of thing a simulator lets you do without risking a real arm or a real part.

A worked decision

Picture moving a part out of a bin, across the table, and placing it precisely in a fixture:

  1. Lift out of the bin: movel straight up — you must clear the bin walls on a known path.
  2. Traverse to the fixture: movej (or a blended move) across open space — fast, path does not matter.
  3. Descend into the fixture: movel straight down — the insertion path must be exact.

Mixing the three correctly — fast joint moves where it is safe, straight linear moves where it counts — is what separates a clumsy 12-second cycle from a clean 6-second one.

Practise this without a robot

Reading about move types only gets you so far; the intuition comes from seeing the curved movej arc versus the straight movel line, and from watching a badly chosen move clip a fixture. That is hard to do safely on a real arm and awkward to set up in a Linux-VM simulator.

We built a browser-based UR simulator where you write real URScript and watch exactly these differences play out — the movej arc, the movel line, a singularity slowdown, an over-force protective stop — with goal-based grading on real pick-and-place tasks. No install, free to start. It is live now — the first lessons are free, and Pro unlocks the full course and a certificate.

Key takeaways

  • movej = fastest, curved joint-space path. Use in open space.
  • movel = straight Cartesian line. Use near parts and fixtures; watch for singularities and slower speed.
  • movep = constant-speed process path with blends. Use for dispensing-style moves.
  • Blend the via points, never the action points.
  • Tune a and v conservatively near parts and with payloads.

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

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
robotics
universal robots

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.

11 min read
sensors
encoder

Incremental vs Absolute Encoder: Position Feedback for PLC Applications

Incremental encoders output a pulse train — you count pulses to track relative position, but lose it on power loss. Absolute encoders output a unique digital word for every shaft position — position is retained across power cycles. Learn when to use each, how to wire them, and how PLCs read both types.

9 min read

Technical reference and worked-example guide

URScript movej versus movel: implementation, evidence and troubleshooting

Direct answer

URScript movej versus movel becomes useful when it connects the robot and software context, tcp, feature frame, payload, waypoints, required path, speed, acceleration and blend with urscript motion command through joint or cartesian planning to the tcp path and cell feedback, then proves a joint transfer and a deliberate straight process segment executed from a known pose 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 universal Robots learners choosing between joint-space and Cartesian linear moves for approach, process and transfer segments. The intended result is specific: the reader can select motion by path requirement, define frames and waypoints and test reach, speed, blending, interruption and recovery assumptions.

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

the robot and software context, TCP, feature frame, payload, waypoints, required path, speed, acceleration and blend. For URScript joint and linear motion selection, 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 motion command through joint or Cartesian planning to the TCP path and 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

a joint transfer and a deliberate straight process segment executed from a known pose. 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

singularity, reach, blend radius, frame error, interruption, protective stop and resume. Choose minimum, maximum, simultaneous, delayed or restart conditions that reveal assumptions hidden by the happy path.

NODE 05observable

Diagnose a controlled fault

a waypoint, TCP, feature, speed, blend, reach or handshake 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 path reviewed in official tools and accepted at supervised reduced speed in the 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 the robot and software context, tcp, feature frame, payload, waypoints, required path, speed, acceleration and blend 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 motion command through joint or cartesian planning to the tcp path and 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 a joint transfer and a deliberate straight process segment executed from a known pose 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 singularity, reach, blend radius, frame error, interruption, protective stop and resume 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 waypoint, tcp, feature, speed, blend, reach or handshake 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 path reviewed in official tools and accepted at supervised reduced speed in the safeguarded cell and repeat the affected regression cases.

    Evidence: Reference use is complete when inputs, assumptions, units or initial conditions are recorded and the result is independently checked at a useful boundary.

    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 URScript movej versus movel: implementation, evidence and troubleshooting
Observed symptomInspectInterpretationNext proving action
The expected result is unclearRequirement, initial state, actor, stimulus, units and pass conditionThe technician, programmer and 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 page connects definitions and worked examples to runnable tools, explicit assumptions and repeatable checks so a formula or pattern can be challenged.

Where simulation stops

A browser explanation cannot validate a UR controller path, payload, tool, collision, singularity, safeguarding or production speed; official simulation and cell tests remain required.

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. the robot and software context, TCP, feature frame, payload, waypoints, required path, speed, acceleration and blend. For URScript joint and linear motion selection, 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 the robot and software context, tcp, feature frame, payload, waypoints, required path, speed, acceleration and blend 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 technician, programmer and 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 is the difference between movej and movel in URScript? A defensible short answer is: movej plans joint motion and usually does not keep the TCP on a straight Cartesian line. movel commands a linear TCP path, making frame, reach and singularity checks especially important.

Case 02

predict → observe → prove

Prove map the evidence path

Engineering context. URScript motion command through joint or Cartesian planning to the TCP path and 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 motion command through joint or cartesian planning to the tcp path and 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: When should I use movej instead of movel? A defensible short answer is: Use movej for efficient transfers where the exact tool path is not process-critical; use movel when the TCP must follow a deliberate straight process segment.

Case 03

predict → observe → prove

Prove prove normal operation

Engineering context. a joint transfer and a deliberate straight process segment executed from a known pose. 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 a joint transfer and a deliberate straight process segment executed from a known pose 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 should I learn first about URScript joint and linear motion selection? A defensible short answer is: Start with the operating contract and evidence path: the robot and software context, tcp, feature frame, payload, waypoints, required path, speed, acceleration and blend, followed by urscript motion command through joint or cartesian planning to the tcp path and cell feedback. Add advanced features only after the baseline is predictable.

Case 04

predict → observe → prove

Prove exercise a boundary case

Engineering context. singularity, reach, blend radius, frame error, interruption, protective stop and resume. 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 singularity, reach, blend radius, frame error, interruption, protective stop and resume 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: How do I practise URScript joint and linear motion selection 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 05

predict → observe → prove

Prove diagnose a controlled fault

Engineering context. a waypoint, TCP, feature, speed, blend, reach or handshake 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 waypoint, tcp, feature, speed, blend, reach or handshake 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: 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 06

predict → observe → prove

Prove transfer and hand over

Engineering context. the path reviewed in official tools and accepted at supervised reduced speed in the 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 path reviewed in official tools and accepted at supervised reduced speed in the safeguarded cell and repeat the affected regression cases. The acceptance record should show this result: reference use is complete when inputs, assumptions, units or initial conditions are recorded and the result is independently checked at a useful boundary. 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: Why test faults and restart behavior? A defensible short answer is: Because a waypoint, tcp, feature, speed, blend, reach or handshake mismatch or singularity, reach, blend radius, frame error, interruption, protective stop and resume can expose assumptions that never appear during ideal startup and steady operation.

Answer surface / 07

Questions people ask about URScript movej versus movel

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 is the difference between movej and movel in URScript?

movej plans joint motion and usually does not keep the TCP on a straight Cartesian line. movel commands a linear TCP path, making frame, reach and singularity checks especially important.

When should I use movej instead of movel?

Use movej for efficient transfers where the exact tool path is not process-critical; use movel when the TCP must follow a deliberate straight process segment.

What should I learn first about URScript joint and linear motion selection?

Start with the operating contract and evidence path: the robot and software context, tcp, feature frame, payload, waypoints, required path, speed, acceleration and blend, followed by urscript motion command through joint or cartesian planning to the tcp path and cell feedback. Add advanced features only after the baseline is predictable.

How do I practise URScript joint and linear motion selection 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 waypoint, tcp, feature, speed, blend, reach or handshake mismatch or singularity, reach, blend radius, frame error, interruption, protective stop and resume 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.