Interactively change joint angles and link lengths of a 2-link planar arm to see the Jacobian det(J), Yoshikawa manipulability w, singular values σ_max/σ_min and condition number κ update in real time. Watch the manipulability ellipsoid collapse as you approach a singularity and use the tool to plan DLS inverse kinematics or singularity-robust trajectories.
Parameters
Arm type
Singularity patterns differ by type (computation uses 2-DOF planar)
Link length L₁
m
Link length L₂
m
Joint angle θ₁
°
Joint angle θ₂
°
0° or ±180° is a boundary singularity
Joint velocity limit
rad/s
Upper bound on q̇ near singularities — a path-planning constraint
Results
—
End-effector X (m)
—
End-effector Y (m)
—
Jacobian det(J)
—
Manipulability w
—
Condition number κ
—
Singularity state
—
Robot arm pose — manipulability ellipsoid
Current pose of the 2-link planar arm with the manipulability ellipsoid at the end-effector (major axis = σ_max, minor axis = σ_min). Poses where the ellipsoid collapses to a line are singularities.
J: Jacobian, w: Yoshikawa manipulability, κ: condition number. w=0 corresponds to det(J)=0 (a singularity). κ→∞ also signals a loss of isotropy near a singularity.
For a 2-link planar arm det(J) depends only on θ₂ and vanishes at θ₂=0 and θ₂=±π (boundary singularities). End-effector position is the forward kinematics.
Damped Least Squares pseudo-inverse. The damping λ caps joint velocities near singularities, giving ẋ ≈ J J⁺_DLS ẋ_target.
Robot Arm Jacobian Singularity — Manipulability and Avoidance
🙋
I keep hearing roboticists talk about "singularities" of a robot arm — honestly, I don't really get it. What does it mean for a pose to be "special"?
🎓
In plain terms it's a pose where the arm can't move in the direction you want. Try setting θ₂=0° on the 2-link arm in this tool so it stretches fully out. The end-effector barely moves in the X direction (along the arm), and if you do try to push it that way you need ridiculously high joint speeds. That's a singularity. Mathematically, in ẋ = J q̇ the Jacobian J becomes "collapsed" along a specific direction.
🙋
OK, intuitively the tip is hard to move when the arm is fully extended. So is "manipulability w" a number that says how easy it is to move?
🎓
Exactly. Yoshikawa proposed w = sqrt(det(JJᵀ)) back in 1985, and it is proportional to the volume of the velocity ellipsoid swept out by unit-norm joint velocities. The larger w, the more freely you can move in any direction. w=0 is a singularity, and the ellipsoid collapses to a line. The condition number κ measures the "distortion" of that ellipsoid — a long, thin ellipsoid has a large κ, meaning fast in one direction but sluggish in another. In practice we read "w for distance to a singularity, κ for isotropy".
🙋
When does this actually bite in industrial robotics? They look fine just moving around.
🎓
The classic case is the wrist singularity. On a 6-axis FANUC or ABB, when the wrist joint θ₅ hits 0 the remaining two wrist axes line up and you lose a degree of freedom. A straight-line path generated in CAD that happens to cross this pose triggers a "singular configuration" alarm and the robot stops. Field engineers shift the teach points so θ₅ stays above ~5° or 10°. When CAD operators teach poses without thinking about wrist configuration, this fires constantly just before line start-up.
🙋
How do you avoid it? Fixing every pose by hand sounds painful.
🎓
There is a three-layer stack. First, DLS. Instead of computing J⁻¹ ẋ you use J⁺_DLS = Jᵀ(JJᵀ+λ²I)⁻¹, where λ damps joint velocity near singularities. Nakamura's "Singularity-Robust IK" is the standard formulation, and it's about 10 lines of code. Second, path planning. RRT* or similar planners can include κ or 1/w as a cost so the trajectory routes through well-conditioned poses. Third, redundancy. On 7-DOF arms you use null-space motion to keep the end-effector fixed while moving joints to a higher-w configuration. The remote center motion of the da Vinci surgical robot is a special case of this idea.
🙋
One last question — this tool warns when κ exceeds 100. Where does that threshold come from?
🎓
It's an empirical number. κ>100 means σ_max/σ_min spans two decades — one direction moves 1% as fast as another. Combined with the joint-velocity limit (here 3 rad/s), the slow direction is effectively dead. Textbooks like Siciliano et al., "Robotics: Modelling, Planning and Control", typically use κ<10 for a good pose, κ>50 for a warning zone, and κ>100 as practically singular.
Frequently Asked Questions
The Jacobian J maps joint velocities q̇ to end-effector velocity ẋ via ẋ = J q̇. Inverse kinematics needs the inverse map q̇ = J⁻¹ ẋ, but at det(J)=0 the Jacobian is non-invertible. Three things go wrong simultaneously: (1) some Cartesian directions require infinite joint velocity, (2) other Cartesian directions cannot be reached by any joint velocity, and (3) inertia mappings such as M(q)=JᵀΛJ break down. For a 2-link planar arm det(J)=L₁L₂ sinθ₂, so θ₂=0 and θ₂=π are singularities.
Manipulability w = sqrt(det(JJᵀ)), proposed by Yoshikawa (1985), is a volume measure of how easily the arm can move in any direction; it is proportional to the volume of the manipulability ellipsoid. Larger w means easier motion overall, and w=0 marks a singularity. Condition number κ = σ_max/σ_min measures the distortion of the ellipsoid — a large κ means some directions are fast while others are slow, i.e. anisotropic. In practice, w is used to flag singularity proximity and κ to certify precision; both are used together.
A boundary singularity occurs at the edge of the reachable workspace, when the arm is fully extended (θ₂=0) or fully folded (θ₂=π). It is relatively easy to avoid by keeping the target inside the reachable region. An interior singularity occurs inside the workspace; the classic example is the wrist singularity of a 6-DOF anthropomorphic arm (θ₅=0). The hand can still move, but certain orientation directions become unreachable, which is tricky. Industrial robots (FANUC, ABB, Yaskawa, KUKA) raise alarms and re-plan the trajectory around these poses.
Three standard techniques: (1) Damped Least Squares (DLS): replace the pseudo-inverse with J⁺ = Jᵀ(JJᵀ + λ²I)⁻¹ so that the damping λ caps joint velocity near singularities — the core idea of Nakamura's Singularity-Robust IK. (2) Path planning: use RRT* or similar planners with a cost on κ or 1/w so the path detours via well-conditioned poses. (3) Redundancy resolution: on 7-DOF arms, exploit null-space motion to keep the end-effector at the target while moving joints to maximise w. The remote center motion of the Intuitive da Vinci surgical robot is a special case of this.
Real-World Applications
Industrial 6-axis robots (FANUC, ABB, Yaskawa, KUKA): In welding, painting and assembly cells, straight-line paths generated from CAD often run into wrist singularities when poured into the real robot. At line start-up, "singular configuration" alarms are extremely common. Typical fixes are to nudge the teach points so θ₅ keeps at least 5°, or to enable DLS on the controller side to glide through the pose smoothly.
Collaborative robots (UR, FANUC CR series): Because cobots move next to people, a joint-velocity spike near a singularity can trigger a protective stop. Many controllers continuously monitor manipulability w and switch to a speed-limited mode below a threshold. Understanding how w behaves on this tool makes teaching cobot poses much easier.
Surgical robots (Intuitive Surgical da Vinci, CMR Versius): Operating through a small incision requires remote center motion (RCM), where redundant degrees of freedom are used to keep an incision point stationary while orienting the instrument. RCM is essentially a null-space motion that keeps manipulability w high. Near a singularity the precision of fine tissue handling drops, so surgical plans evaluate pose quality beforehand.
Mobile manipulators and space robots: Long-link arms like JAXA's SLIM robot arm or NASA's Canadarm2 show pronounced boundary-singularity effects because L is large. Mission planners evaluate manipulability maps during pre-flight to choose a working sub-region where w stays high. The manipulability map in this simulator is a good entry point for building that intuition.
Common Misconceptions and Pitfalls
First, "singularities are rare and not worth worrying about day-to-day". The reality is that CAD-generated straight-line paths cross singular poses surprisingly often, and the problem peaks at line start-up. The root cause is that CAD operators teach poses by Cartesian position alone, without watching pose constraints (e.g., θ₅≠0). Just adding the rule "check the joint angles at every teach point on the pendant and re-orient any pose where θ₅<5°" cuts alarm rates dramatically.
Second, conflating manipulability w and condition number κ. They look similar but measure different things — w is the "absolute ease of motion" (volume), while κ measures the "balance across directions" (isotropy). A pose with high w and high κ can move quickly in some directions but barely in others. A pose with smaller w but low κ moves slowly but uniformly in every direction, and that is often what a task actually needs. "Fast in a specific direction" wants high w with high κ; "uniform precision in every direction" wants low κ with sufficient w.
Finally, over-trusting DLS. DLS only damps the numerics; it does not change the physical fact that "this direction cannot move". If you push a high Cartesian velocity through a singularity, the end-effector will not actually reach the commanded velocity and tracking error accumulates. For precision tasks like semiconductor pick-and-place or laser welding, the right answer is not to "drive through" the singularity with DLS, but to plan a detour. Make a habit of checking w and κ on this tool first and mapping out which poses to avoid.
How to Use
Set Link 1 and Link 2 lengths (0.1–1.0 m) using the sliders; typical industrial values are 0.5 m each for a collaborative robot arm.
Adjust Joint 1 and Joint 2 angles (0–360°) to move the end-effector through the workspace.
Monitor det(J), manipulability w, and condition number κ in real-time; red indicators signal singular configurations where det(J) approaches zero.
Worked Example
A 2-link planar arm with Link 1 = 0.4 m and Link 2 = 0.3 m at joint angles θ₁ = 45° and θ₂ = 90° produces end-effector position X ≈ 0.283 m, Y ≈ 0.541 m. The Jacobian determinant is det(J) ≈ 0.12 m², manipulability w ≈ 0.095, and condition number κ ≈ 10.5. When θ₁ = 0° and θ₂ = 0° (fully extended), det(J) drops to ~0.001, signaling a Type I singularity with κ > 100.
Practical Notes
Avoid configurations where det(J) < 0.01 m² in assembly tasks; loss of force transmission occurs near singular poses.
Manipulability w > 0.08 ensures good dexterity for welding or pick-and-place operations on ABB or KUKA-class arms.
Condition number κ < 20 indicates stable inverse kinematics; κ > 50 requires damped least-squares methods for numerical stability.