Robot Arm Simulator & Calculator — Forward/Inverse Kinematics, 3D Visualization, 2–6 DOF

Robot arm kinematics for learning & practice: FK/IK, DH tables, Jacobian—aligned with cobots, industrial robots, humanoid arms, and AI robotics workflows. Robot programming friendly (CSV export). 2–6 DOF, SCARA, UR/KUKA-style presets, 3D visualization. Runs in your browser.

Robot Arm Simulator & Calculator — Forward/Inverse Kinematics, 3D Visualization, 2–6 DOF

This free robot arm simulator and kinematics calculator runs forward kinematics (FK) and inverse kinematics (IK) for serial manipulators from 2 to 6 DOF entirely in your browser. It uses Denavit–Hartenberg (DH) parameters, supports both revolute and prismatic joints, and includes preset models for planar arms, articulated arms, SCARA, and a fully editable custom DH chain. A live 3D robot arm visualization shows shaded link cylinders, revolute joints as short cylinders, prismatic joints as boxes, per-joint coordinate frames, the end-effector pose with X′Y′Z′ axes, and an interactive IK target marker—with Free orbit plus locked XY / YZ / ZX views.

Modern robotics spans robot arms on cobots and industrial robots, multi-DOF manipulators on humanoid robot platforms, and AI robot stacks that still depend on correct pose and joint-level math underneath learning or planning. Whether you are in a course, prototyping robot programming (ROS- or Python-style workflows, MATLAB-style exports), or validating reach before touching hardware, the same FK/IK and Jacobian ideas apply—this tool helps you learn them interactively and sanity-check DH tables for real projects.

Key features: per-joint limits enforced in both FK and IK, Jacobian matrix panel, manipulability indicator, EE path trace, DH CSV export, elbow-up/down comparison, IK target canvas drag, and localStorage persistence for all settings. Topics: online FK calculator, inverse kinematics solver, Jacobian damped least squares, DH parameter table, SCARA kinematics, 6 DOF articulated arm, custom robot DH editor. All computation runs locally—no data uploaded.

Online Robot Arm Simulator & Robot Arm Motion Calculator

Treat this page as an online robot arm simulator: you drive motion with sliders or by dragging the IK target, and the 3D arm tool redraws the full manipulator every frame. It is also a precise robot arm motion calculator—every pose comes from the same DH/Jacobian math you would use in MATLAB or ROS, but with instant feedback and no install.

For industrial robot work, UR/KUKA-style presets mirror common arm chains; for cobot and cell design, use limits and reach studies the same way. Humanoid robot and mobile-manipulator courses still build on serial-arm FK/IK; AI robot perception-and-control pipelines often wrap classical IK or Jacobian methods—understanding them here makes debugging and robot programming on real stacks easier.

Students use it to visualize FK and IK; engineers use it to sanity-check reach, joint limits, and DH tables before moving to offline code. Pick a preset, tune link lengths, then switch between FK and IK to see how joint space and Cartesian space relate for your chain.

Forward Kinematics vs Inverse Kinematics (Robot Arm)

Use forward kinematics when you already know every joint value and want the unique end-effector pose (position and orientation) obtained by multiplying the DH transformation chain. Use inverse kinematics when you have a desired tool position in space (and optionally orientation on 6-DOF-class arms) and want one set of joint angles that reaches it. IK may have multiple mathematical solutions; this tool picks a numerically stable iterate and exposes elbow-style options where the model allows.

Forward Kinematics (FK): joint variables → homogeneous transform chain → end-effector frame. Always well-defined for a consistent DH model.

Inverse Kinematics (IK): desired EE pose → iterative Jacobian DLS (spatial presets) or closed-form geometry (planar presets). Updates automatically when targets or DH data change.

Global units: one length unit (mm, m, in) and one angle unit (degrees or radians) apply to every input, slider, and printed result for fewer conversion mistakes.

Robot Kinematics Topics & Examples

These headings mirror common course and search queries. Each topic maps to a preset or panel in this interactive robot kinematics tool: use FK / IK mode switches, the live DH parameter table, the Jacobian toggle, and the 3D view together.

Cobots, industrial robots, humanoid arms & AI robotics

A cobot (collaborative robot) and a classical industrial robot both use the same serial-arm FK/IK; differences are safety, speed, and integration—not the core kinematics. Humanoid robot arms are multi-DOF manipulators: the presets here model typical chains. AI robot systems often combine perception with planners that still output joint or Cartesian targets—grounding yourself in DH, Jacobian conditioning, and reach supports both coursework and robot programming on real stacks.

2 DOF Robot Arm Kinematics Example

Select 2-DOF Planar under Robot Type. In FK mode, two revolute joints drive a flat arm in the XY plane; in IK mode, drag the target or type X Y—this is the classic two-link arm used in textbooks. Watch link lengths and the workspace ring (if enabled) to see reach limits.

3 DOF Inverse Kinematics Solution

Choose 3-DOF Planar for position plus tool orientation: the solver uses analytic geometry (not only Jacobian iteration). In IK, set Tool Angle φ under Target Orientation to pick how the third link approaches the same (X, Y) point—useful when comparing alternative inverse kinematics solutions.

DH Parameter Table Example

Every preset loads a Denavit–Hartenberg row per joint; Custom (DH) lets you edit a, d, α, θ offset, and Rev/Pri. The read-only Current DH table section below mirrors the calculator—export CSV for MATLAB, Python, or ROS-style workflows.

Jacobian Matrix in Robot Kinematics

Enable the Jacobian panel in the tool UI: you get a live matrix relating joint rates to end-effector linear/angular velocity partials. Spatial IK in this app uses Jacobian damped least squares; the same object drives singularity awareness.

Singularities in Robot Arm

Near a kinematic singularity the Jacobian loses rank: IK becomes sensitive and the manipulability bar turns red. Adjust the pose, target, elbow mode, or seed—see also How to avoid singularities below.

How to solve inverse kinematics step by step

  1. Pick preset or Custom DH and units (Parameters tab).
  2. Open IK, enter target X Y Z (and RPY if orientation IK is on).
  3. Read the error badge; try seed strategy, elbow up/down, or joint limits.
  4. Inspect Jacobian / manipulability if the solver struggles.

Why inverse kinematics has multiple solutions

Redundant arms and symmetric link layouts admit different joint sets for the same end-effector pose (e.g. elbow configurations). The workspace boundary can also separate reachable from unreachable targets. This tool returns one stable numerical solution and exposes elbow-style choices where the model supports them.

How to avoid singularities in robot arm

Steer away from poses where two joint axes align badly: move the IK target slightly, change elbow preference, or tighten joint limits so the iterative solver stays in a well-conditioned range. Watch the manipulability indicator and Jacobian panel while tuning.

3D view — Orbit and Pan (camera)

Above the canvas, use the Orbit / Pan toggle next to the view tabs. Orbit and zoom always use the view pivot—the world-space point (in millimetres) kept at the centre of the canvas—so you are not locked to rotation about world (0, 0, 0) after you move the pivot.

  • Orbit: Drag on the canvas to rotate the camera—horizontal angle θ, elevation φ in Free view, or plane spin in XY / YZ / ZX. Scroll or pinch zooms in and out about the same pivot.
  • Pan: Drag to translate the view pivot in world space along the current view plane (same mapping as dragging the IK target). Use this to centre an interesting point—then switch to Orbit to rotate around that point.
  • Reset (↺) restores the default Free view angles, zoom, and sets the pivot back to the world origin.
  • The pivot is stored in localStorage with your other calculator settings so it survives page reloads.

Industrial robot presets (UR5, UR10, KUKA KR6 R900 sixx)

Choose UR5, UR10, or KUKA KR6 under Robot Type in the calculator panel. Fixed DH rows (Craig-style for UR; academic table for KUKA) load in millimetres; the live DH table below and the 3D view update immediately. Link length sliders are hidden for these models. Verify frames and calibration against the manufacturer before any real-robot motion. Shape note: the canvas shows joint-to-joint geometry from the DH model only—physical castings, cable routing, and small bends in real link housings are not represented, so the outline may differ from photos or CAD meshes while still matching the same kinematic chain.

Denavit–Hartenberg — 6-DOF Articulated

Each link uses standard DH data: link length a, link twist α, joint angle θ (with offset for revolute joints), and link offset d. The tool uses a Craig-style homogeneous transform per row. The table below reflects the currently selected robot type, your link-length fields where applicable, fixed industrial DH for UR / KUKA presets, or Custom DH edits.

Kinematics convention: for revolute joints, applied θ = (your joint input converted to radians) + θ offset; for prismatic joints, link offset d is taken from the joint value stored in millimeters (displayed in your chosen length unit).

  • 6 revolute joints in a common industrial layout: base height, upper arm, forearm, then three wrist rotations (α alternates 90°, −90°, 90°, final row α=0).
  • Optional full 6D pose IK: enable Orientation in IK mode and enter target roll, pitch, yaw (when available).
  • Jacobian DLS with singularity / manipulability feedback—avoid poses where the wrist or elbow lines up badly.

Current DH table

Read-only mirror of the preset DH built from your link lengths. Change lengths in the calculator to refresh these values.

JointTypea (mm)d (mm)α (°)θ (°)
J1Rev0.0000150.000090.00000.0000
J2Rev250.00000.00000.00000.0000
J3Rev0.00000.000090.00000.0000
J4Rev0.0000200.0000-90.00000.0000
J5Rev0.00000.000090.00000.0000
J6Rev0.000060.00000.00000.0000

Lengths and angles use the same global units as the calculator (mm/m/in and ° or rad).

Calculator Features

  • Parameters tab: Robot type, link lengths, unit toggles, joint limits, DH export, workspace overlay—all settings in one place. Saved automatically to localStorage.
  • FK tab: Per-joint sliders and numeric inputs (range ±180° or 0–200 mm). End-effector X Y Z and RPY shown as a result card with individual copy buttons. EE path trace draws the trajectory as you move joints.
  • IK tab: Type a target position (and optionally orientation for 6-DOF arms). Live position error badge and solution badge. Elbow-up / elbow-down comparison panel. Drag the T marker directly on the canvas to move the IK target interactively.
  • Jacobian panel: Toggle a live 6×N matrix table showing linear and angular velocity partials for the current configuration.
  • Manipulability indicator: Colour-coded progress bar derived from the Jacobian singular values; turns red near singularities.
  • Joint limits: Per-joint min/max (° for revolute, mm for prismatic). Enforced in both FK sliders and the IK solver—the arm cannot exceed the set range. Input field clears freely with Backspace.
  • Joint coordinate frames: Toggle miniature X/Y/Z triad arrows at every joint (in addition to the EE frame) for visualising local axes.
  • DH export: Copy the current DH table as a CSV string (Joint, Type, a, d, α, θ offset) to paste into MATLAB, Python, or a spreadsheet.
  • Workspace overlay: Toggle a translucent reachable-area ring on the canvas for planar presets.
  • IK seed strategy: Choose the starting configuration for the numerical solver: current joint values, zero pose, or a deterministic random pose.
  • FK → IK transfer: One-click button that copies the current FK end-effector position into the IK target fields.
  • Copy All Results for pasting into lab reports, ROS YAML, or spreadsheets.

Interactive 3D Robot Arm Visualization

The canvas renders the manipulator against a labelled millimetre grid (axis tick values shown) so every link's true scale is visible. Free mode uses drag-to-orbit and scroll/pinch-zoom. XY, YZ, ZX modes fix the camera to orthographic-style projections—useful for comparing textbook figures and CAD screenshots. Reset restores the default orbit. Base frame axes use arrowheads; the EE frame shows compact X′ Y′ Z′ labels. Links are drawn as thin cylinders (thicker at the base, thinner toward the tip); revolute joints as short cylinders along the joint axis; prismatic joints as rectangular prisms aligned with the joint frame.

Dragging the IK target: In IK mode, hover over the T marker on the canvas—it fills with a translucent highlight and the cursor changes to a grab hand. Drag to reposition the target directly in 3D (projected into the current view plane). The IK solver updates in real time.

Path trace: Enable "Path Trace" in the FK tab to draw the EE trajectory on the canvas as you move the joint sliders. The trace is cleared when you leave FK mode or press Clear.

Joint Limits — What to Know

Joint limits are set per-joint in the Parameters tab. Each joint has an ON/OFF toggle; when ON, the min and max fields become editable. Units match the joint type: ° (degrees) for revolute joints, mm for prismatic joints.

  • The FK slider range and numeric input both clamp to the active limit—you cannot drag or type beyond the set bounds.
  • The IK solver enforces limits at every iteration step, so solutions are always within range. If no configuration within limits reaches the target, an error badge is shown.
  • Revolute angles are automatically normalised to [−180°, 180°] during IK to prevent unbounded winding.
  • Switching robot type resets all joint limits to OFF.
  • Settings persist across page reloads via localStorage.

How to Use This Online Robot Kinematics Tool

  1. Configure in Parameters. Select robot type, set link lengths and global units. Optionally enable joint limits and joint-frame display.
  2. Forward kinematics. Open the FK tab, move joint sliders; read X Y Z / RPY from the result card and copy individual values with the inline copy buttons.
  3. Transfer to IK. Click "Set as IK Target" to send the current EE position to the IK tab in one step, or drag the T marker on the canvas.
  4. Inverse kinematics. Open the IK tab, edit target X Y Z (and RPY for 6-DOF). Watch the solver error badge; try different seed strategies or elbow configurations if the first solution is awkward.
  5. Inspect & export. Toggle the Jacobian panel to inspect conditioning. Copy the DH table as CSV. Use Copy All Results for full output.

Frequently Asked Questions

What is robot kinematics?

The study of how joint motions map to end-effector motion (and vice versa) for robots, without dynamics. This page focuses on serial arms: FK from joints to pose, IK from pose to joints, using DH parameters and interactive 3D feedback.

Is this simulator useful for cobots, industrial robots, humanoid robots, or AI robotics?

Yes. Serial-arm FK/IK applies to robot arms on cobots and industrial robots, and to manipulators on humanoid robot platforms. AI robot and learning-based systems often still wrap classical kinematics for targets and constraints—this page helps you learn that layer for coursework and robot programming (e.g. ROS- or Python-style workflows, DH CSV export).

What is a DH parameter?

Short for Denavit–Hartenberg: four numbers per link (a, α, θ with offset, d) that define each joint-to-joint transform in the chain. Together they build the same FK matrix product you would code in MATLAB or ROS.

Why does inverse kinematics have multiple solutions?

Geometry and redundancy: several joint vectors can place the tool at the same pose, or there may be none if the target is unreachable. Elbow-up vs elbow-down is a classic example for suitable arm classes.

Why is inverse kinematics hard to solve?

Nonlinear coupled equations, possible non-existence or non-uniqueness of solutions, and numerical stiffness near singularities all make IK harder than FK. General spatial arms often need iterative Jacobian methods rather than a single formula.

How do I solve inverse kinematics step by step here?

Use IK mode with your target; if the error stays high, adjust seed, limits, elbow mode, or target position. Planar presets use closed-form steps where applicable; spatial arms use Jacobian DLS iterations you can monitor via the Jacobian panel.

How can I avoid singularities?

Avoid poses flagged by low manipulability: nudge the target, change configuration, or use joint limits so the solver does not sit on a degenerate Jacobian.

What is the difference between forward kinematics and inverse kinematics for a robot arm?

Forward kinematics maps joint variables to a single end-effector pose using the DH chain. Inverse kinematics finds joint variables for a desired pose; solutions may be absent or non-unique, and numerical methods are used for general spatial arms.

How do I simulate a robot arm online?

Open this tool in your browser, select a preset or Custom DH model, then use FK sliders or IK mode with the draggable 3D target. The arm redraws in real time—no install or server round-trip for the solver.

Can I calculate joint angles without MATLAB?

Yes. Use IK mode with your target X Y Z (and RPY when orientation is supported), read the solved angles in the results, or stay in FK and copy values. Export DH as CSV for Python or spreadsheets if you need offline code.

How do I calculate end effector position?

Use forward kinematics: set each joint value, then read the displayed end-effector X, Y, Z and roll, pitch, yaw. That output is the FK map from joint space to the tool frame.

Can I simulate SCARA robot online?

Yes. Choose the SCARA (4-DOF) preset. You get the usual two horizontal revolute joints, a vertical prismatic joint, and tool rotation, with the same 3D viewer and IK/FK workflow as other models.

What are typical joint limits for a 6DOF arm?

Factory limits depend on the arm: many industrial six-axis robots allow nearly ±180° on some axes but far less on others; cobots often publish stricter certified ranges. This tool does not embed vendor limits—enter your own min/max in the Parameters tab from the datasheet.

Which Denavit–Hartenberg convention does this calculator use?

Standard DH parameters per row (a, α, θ with offset, d) in a Craig-consistent layout. Presets encode typical geometries; Custom mode lets you type any consistent table.

How is inverse kinematics solved for non-planar robots?

Planar presets use geometric closed-form IK. Spatial arms use a Jacobian-based iterative solver with damped least squares and multi-seed restarts. Joint limits are enforced at every iteration step.

What does singularity or low manipulability mean?

Near a singularity the Jacobian drops rank: IK becomes sensitive and joint speeds can explode for small Cartesian moves. The manipulability bar turns red and a warning badge appears. Move the arm to a better-conditioned pose.

Can I define a custom robot with my own DH table?

Yes. Use Custom (DH), set DOF (2–6), edit each link's a, d, α, θ offset, and joint type (Rev/Pri). FK updates immediately; IK uses the same Jacobian framework.

Does IK support full 6D pose with orientation?

For the 6-DOF articulated preset (and Custom setups with DOF ≥ 6), enable orientation IK and enter target RPY. Other presets focus on position IK.

How does IK work for the 3-DOF planar arm, and what is the Tool Angle φ?

The solver places the wrist by subtracting the third link along φ, solves the inner two-link chain analytically, and assigns the remainder to joint 3. Adjusting φ changes how the tool approaches the same (X, Y) point.

Why does the position error for planar robots show near zero even when the Z target is non-zero?

Planar arms move only in the XY plane (Z = 0). Error is measured in 2D only; a non-zero Z target is ignored, so the displayed error accurately reflects the (X, Y) residual.

Why do joint angles sometimes jump to large values in IK without joint limits?

Without limits, the iterative solver can accumulate angle winding over many steps. Enable joint limits (e.g. −180° to 180°) in the Parameters tab; the solver then normalises revolute angles to [−180°, 180°] at every step, eliminating unbounded drift.

Can I drag the IK target on the canvas?

Yes. In IK mode, hover over the T marker—it highlights with a fill colour. Drag it to reposition the target; the solver updates continuously. The drag direction maps to the current view plane (XY in top view, YZ in side view, etc.).

Are my settings saved between visits?

Yes. Robot type, link lengths, DH parameters, joint limits, unit selection, and the Show Joint Frames toggle are all saved to localStorage and restored on your next visit.

How do Free, XY, YZ, and ZX views work?

Free is full orbit plus zoom. XY/YZ/ZX lock to plane views and drag-spins about the perpendicular world axis. Reset restores the default camera. The grid shows mm labels.

Why does the 3D arm look simpler than a real industrial robot (e.g. Universal Robots)?

The canvas connects Denavit–Hartenberg joint frames with straight segments. DH encodes axis layout and link offsets for kinematics, not every physical bend, casting, or cable route. Real arms often show curved housings and offsets that are absent from the table; photos and CAD meshes can therefore look quite different from this stick figure while the same DH row still gives the correct end-effector pose. For collision or industrial layout, rely on the manufacturer’s CAD; use this tool for the kinematic model and FK/IK.

Is my data sent to a server?

No. FK, Jacobian, IK, canvas drawing, and localStorage all run locally in the browser. Nothing is uploaded.

Related Tools

  • LLM Token Counter — Free browser-side LLM token counter: tiktoken-compatible BPE for OpenAI-style models, proxy encodings or heuristics for other providers, words and character stats, context-window usage with output reserve, and indicative $/M input/cached/output from a bundled reference table with official pricing links—no prompt upload.
  • Drone Calculator — Calculate drone thrust, TWR, hover throttle, flight time, and battery C-rating safety. Compare up to 4 motor/battery/propeller configurations side by side.
  • Bezier Curve Editor — Interactive cubic Bezier curve editor with real-time animation preview, 35 easing presets, side-by-side comparison, and code export for CSS, Unity C#, C++, and JavaScript.
3D Visualization
EE242.92mm140.25mm103.59mmR180 P-60 Y30°
J1J2J3J4J5J6EEX′Y′Z′
Orbit: drag rotates • Scroll / pinch zoom • Pivot stays at screen centre (Reset clears pivot)

Units

Robot Type6-DOF Articulated

2-DOF Planar
XY plane, 2R
3-DOF Planar
XY + tool angle
3-DOF Artic.
3D position
4-DOF Artic.
3D + redundant
5-DOF Artic.
3D spatial
6-DOF Artic.
Full 6D pose
UR5
Fixed DH, 6R
UR10
Fixed DH, 6R
KUKA KR6
Academic DH, 6R
SCARA 4-DOF
Horiz. + Z
Custom DH
User-defined

Link Lengths(mm)

Joint Limits

J1
J2
J3
J4
J5
J6

Visualization & Export

DH Notes & Table