Jacobians & Velocity Control
Open up the tool behind most modern arm controllers. Relate joint velocities to gripper velocity, steer the gripper along a path, solve IK iteratively, and handle singularities and redundancy.
Start the lesson0/5 steps done
What you'll learn
- Relate joint velocities to gripper velocity with the Jacobian
- Compute a Jacobian numerically and analytically
- Drive the gripper along a path with resolved-rate control
- Solve IK iteratively with Newton / pseudo-inverse steps
- Recognise singularities and tame them with damped least squares
- Use the null space of a redundant arm for a secondary goal
Before you start
You should be comfortable with basic Python: variables, loops and functions. We'll introduce the robotics and the maths as you go. The first visit downloads the physics engine and Python, about 20 MB, and later visits load from your browser's cache.
Steps
- 1Velocity kinematicsMeasure how the gripper moves when each joint moves alone, and build the Jacobian one column at a time.Velocity kinematicsFinite differencesLinearisationOpen
- 2Differentiating forward kinematicsDifferentiate the FK formula by hand to get an exact Jacobian that needs no FK calls at all.Partial derivativesChain ruleAnalytic vs numericPro
- 3Resolved-rate controlCommand the gripper's velocity: invert the Jacobian 100 times a second and draw a circle in the air.Resolved-rate controlPseudo-inverseFeedbackPro
- 4Newton's method for IKSolve inverse kinematics for any target by repeating small Jacobian steps until the error vanishes.Iterative IKConvergenceRedundancyPro
- 5Singularities & damped least squaresStretch the arm to its limit, watch the pseudo-inverse blow up, and tame it with damping.SingularitiesManipulabilityDamped least squaresPro
- ★Bonus: Use the spare jointFour joints, three coordinates: spend the leftover freedom on keeping the gripper vertical while it moves.Null spaceSecondary objectivesRedundancy resolutionPro