gkjohnson/closed-chain-ik-js

A generalized inverse kinematics solver that supports closed chains for parallel kinematics systems, dynamic reconfiguration, and arbitrary joint configuration based on damped least squares error minimization techniques

What it solves

This project provides a generalized inverse kinematics (IK) solver that can handle complex robotic systems, specifically those with closed chains (parallel kinematics). It allows developers to calculate the joint configurations required for a robot's end-effector to reach a specific target position and orientation, supporting dynamic reconfiguration and arbitrary joint configurations.

How it works

The solver uses damped least squares error minimization techniques to find the optimal joint values. It is agnostic to any specific visualization framework, though it provides helpers for three.js. It supports various joint types, combining rotation and translation degrees of freedom (DoF).

Who it’s for

It is designed for robotics developers and engineers who need a precise IK solver for parallel kinematics systems or complex robotic models (such as the ATHLETE robot or hexapods).

Highlights

  • Closed Chain Support: Specifically designed for parallel kinematics systems.
  • Flexible Joint Configuration: Supports arbitrary combinations of rotation and translation degrees of freedom.
  • LGS Solver: Uses damped least squares error minimization for stability.
  • SVD Option: Includes Singular Value Decomposition (SVD) to add damping in near-singular directions.
  • Visualization Agnostic: The core solver has no dependencies on three.js, though integration helpers are provided.
  • Asynchronous Solving: Includes a WorkerSolver for off-loading calculations to a WebWorker.

Related

  • Project
  • Project
  • Project
  • Project