Home▸Robotics & Kinematics▸Whole-Body Control: Redundant Arm Null-Space Simulator (2D)

Whole-Body Control: Redundant Arm Null-Space Simulator (2D)

2D companion to the 3D whole-body-control simulator: the same idea of a kinematically redundant planar arm, resolved a different way — a 4-joint arm tracks a fixed 2D target with damped-least-squares IK while a joint-limit-avoidance secondary task, projected through the null-space of the Jacobian, pulls every joint back toward the middle of its allowed range without ever disturbing the end-effector position.

Robotics & Kinematics2DAdvanced60 FPS⇄ 3D version
2d-whole-body-control-redundant-arm-null-space-simulator ↗ Open standalone

This is the 2D companion to the 3D whole-body-control simulator, and it deliberately resolves the same kind of redundancy with a different secondary task. A 4-joint planar arm reaching a fixed 2D target has two spare degrees of freedom — a genuine null space of joint motions that never move the hand. Instead of dodging an obstacle, this version uses that spare freedom for joint-limit avoidance: a null-space-projected gradient term continuously pulls every joint back toward the centre of its own mechanical range, visualized live as a bar for each joint. Toggle the secondary task off and drag the target near full extension to watch the joints drift toward their limits with nothing to stop them; turn it back on and watch the same exact end-effector position get held while every joint bar recentres.

⚙ Under the hood

2D companion to the 3D whole-body-control simulator: the same idea of a kinematically redundant planar arm, resolved a different way. A 4-joint arm tracks a fixed 2D target with damped least-squares inverse kinematics while an analytic joint-limit-avoidance gradient, projected through the null space of the Jacobian, continuously pulls every joint back toward the centre of its own mechanical range — visualized live as a per-joint position bar — without ever disturbing the end-effector position.

RoboticsWhole-Body ControlRedundant ManipulatorNull-Space ProjectionInverse KinematicsJoint-Limit AvoidanceTask Priority

2D · HTML5 Canvas 2D · 60 FPS target · runs fully client-side, no install

What did you find?

Add reproduction steps (optional)