Kinematics reference
The formal definitions behind the solvers, DH convention, linkage branches, trapezoid profiles.
For the engineers who want the equations. Nothing here is required to use the product; everything here explains exactly what the solvers compute.
The DH convention
The serial manipulator uses the classic (1955) Denavit–Hartenberg convention. Frame i is reached from frame i−1 by four operations in order:
- Rotate about
z(i−1)byθᵢ, for revolute joints,θᵢ = joint variable + θ offset - Translate along
z(i−1)bydᵢ, for prismatic joints,dᵢ = joint variable + d - Translate along the new
xbyaᵢ - Rotate about the new
xbyαᵢ
As a homogeneous transform:
T(i-1→i) = Rz(θi) · Tz(di) · Tx(ai) · Rx(αi)Forward kinematics is the product T(0→n) = T(0→1) · … · T(n-1→n); the TCP pose is the position and orientation of frame n. Workspace (IK) mode solves the inverse numerically within the configured joint limits.
Deriving a DH table
- Assign
zᵢalong each joint axis (rotation axis for revolute, sliding direction for prismatic). xᵢruns along the common normal betweenzᵢ₋₁andzᵢ.- Read off:
d(offset alongzᵢ₋₁between x axes),θ(angle aboutzᵢ₋₁between x axes),a(distance alongxᵢbetween z axes),α(angle aboutxᵢbetween z axes).
A worked 6R DH table
A generic elbow arm (dimensions in scene units):
| Joint | d | θ offset | a | α |
|---|---|---|---|---|
| J1 (base yaw) | 400 | 0 | 25 | -90 |
| J2 (shoulder) | 0 | -90 | 455 | 0 |
| J3 (elbow) | 0 | 0 | 35 | -90 |
| J4 (wrist roll) | 420 | 0 | 0 | 90 |
| J5 (wrist pitch) | 0 | 0 | 0 | -90 |
| J6 (flange) | 80 | 0 | 0 | 0 |
Remember the world is Y-up while DH chains grow along Z, rotate the object's base by X = -90° (why).
Four-bar linkage
Solved via the Freudenstein equation. With ground length g, input link a at angle θ₂, coupler b, output c at angle θ₄:
K1·cos θ4 − K2·cos θ2 + K3 = cos(θ2 − θ4)
K1 = g/a, K2 = g/c, K3 = (a² − b² + c² + g²) / (2·a·c)This is quadratic in tan(θ₄/2), hence two branches (open/crossed); the solution flag picks one. Feasibility follows the Grashof condition: with s/l the shortest/longest links and p,q the others, continuous rotation of some link requires s + l ≤ p + q; otherwise the input can only rock through the range where the coupler loop closes.
Five-bar linkage
Solved by circle intersection: each crank pin traces a circle of its coupler length around the crank tip; the coupler point is an intersection of the two circles. Two intersections per chain configuration give the four assembly branches selected by solution 1/2. Workspace mode inverts this per chain: given the coupler point, each crank angle is found by intersecting a circle around the ground pivot with one around the target.
Slider-crank
Crank angle θ, crank r, rod l, rail offset e: the slider position is
x = r·cos θ + sqrt(l² − (r·sin θ − e)²)The ± of the square root is the crank solution flag. Real assembly requires l ≥ |r·sin θ − e| over the working range.
Delta manipulator
The Delta manipulator uses the standard three-arm Clavel geometry. For each arm, inverse kinematics rotates the target into that arm's radial plane and solves the upper-arm angle analytically from the upper/lower-link triangle. Forward kinematics computes the three elbows, then intersects the three lower-arm spheres to obtain the TCP.
The fixed base lies in local XY and reachable TCP positions normally have negative local Z. A pose is valid only when every arm triangle has a real solution and the three lower-arm spheres share a real intersection.
Trapezoid position profile
Position actions move with a trapezoidal velocity profile: accelerate at a to v_max, cruise, decelerate at d to stop exactly at the target (triangular profile when the distance is too short to reach v_max). With modulo enabled, the move wraps on the modulo range and direction picks positive/negative/shortest path. Done is reported when the value settles on the target.
Cam segment polynomials
Segment coefficients are fitted to the boundary conditions you enter (positions, velocities, accelerations at both ends). A Poly5 segment fits the unique 5th-order polynomial through six conditions, the reason it can join dwell-to-dwell with zero velocity and acceleration at both ends. See the segment reference.