Solvers#

This section documents the solvers provided by the project with a focus on robotic kinematics: forward kinematics (FK), inverse kinematics (IK), differential (velocity) kinematics, constraint handling and practical considerations such as singularities and performance tuning.

The repository contains several solver implementations — each has a dedicated page with implementation details and examples. Use the links at the bottom of this page to jump to a specific solver.

Overview#

Robotic kinematics solvers translate between joint-space and task-space.

  • Forward kinematics (FK) maps joint values q to an end-effector pose.

  • Inverse kinematics (IK) finds joint values q that achieve a desired end-effector

    pose.

Forward kinematics#

Forward kinematics composes joint transforms according to the robot’s kinematic tree to produce the end-effector transform. Practical builders compute these transforms efficiently using the robot’s URDF or internal kinematic model. FK solvers in embodichain are optimized for batch evaluation and for returning both pose and link frames.

Inverse kinematics#

Inverse kinematics is the core topic for robotics. There are two common approaches implemented in the repository:

  • Analytical IK (closed-form): when the robot geometry admits a closed-form

    solution (e.g., many 6-DOF industrial arms), these solvers return exact solutions quickly and deterministically.

  • Numerical IK: general-purpose methods based on the Jacobian or optimization

    that work for arbitrary kinematic chains but may be slower and require a good initial guess.

Analytical IK#

Analytical solvers (see the OPW) exploit kinematic structure to derive algebraic inverse mappings. Benefits include:

  • very fast runtime

  • exact solutions when they exist

Limitations:

  • only available for specific robot families and joint arrangements

Numerical IK (Jacobian-based and optimization)#

Numerical IK methods iteratively update joint values q to reduce pose error. Jacobian-based updates use the task Jacobian J(q) to relate changes in joint space to end-effector motion.

Multi-chain and closed-loop kinematics#

Solvers can handle serial chains, branched kinematic trees and some closed-loop mechanisms. Closed-loop systems commonly require constraint solvers and may embed loop-closure constraints in the solver as equality constraints.

Choosing a solver#

  • Use analytic solvers (OPW for 6-DOF arms or SRS for 7-DOF arms) when available for speed and

    determinism.

  • Use numerical solvers (PyTorch/optimization, Differential) when you need

    flexibility..

See also#