Packages

README

SNS-IK Library

The Saturation in the Null-Space (SNS) Inverse-Kinematics (IK) Library
implements a collection of algorithms written by Fabrizio Flacco for
inverting the differential kinematics of a robot.

Continuous Integration Builds

ROS Indigo

ROS Kinetic

ROS Melodic

What problems are solved by this library?

The SNS-IK library is a library that is designed to compute fast solutions to
inverse-kinematics problems on redundant kinematic chains.
It is particularly good at handling multiple prioritized task objectives
while satisfying joint position and velocity limits.

The core solvers in this library operate at the velocity-level, although we
also include a position-level solver.

Algorithm Overview:

SNS Velocity IK: This is the core algorithm developed by Fabrizio.
All of the other algorithms in this library are improvements upon this one.

Optimal SNS: Add an objective function to the standard SNS velocity IK solver,
allowing it to compute a solution that is both feasible and optimal.

Optimal SNS with Margin: Improvement upon the Optimal SNS solver to make it
better at avoiding discontinuous velocities over a sequence of IK calls.

Fast SNS IK: Several numerical improvements to reduce the total CPU time
required for the SNS Velocity IK solver.

Fast Optimal SNS: Similar to the Optimal SNS, but with several numerical improvements.

References:

The algorithms in this library are drawn from three papers,
all written by the same team of three authors:
- Fabrizio Flacco
- Alessandro De Luca
- Oussama Khatib

These two earlier papers are also relevant:
- Prioritized multi-task motion control of redundant robots under hard joint constraints
(.pdf)
(IEEE).
- Motion control of redundant robots under joint constraints: Saturation in the Null Space
(.pdf)
(IEEE).

Packages

README

SNS-IK Library

The Saturation in the Null-Space (SNS) Inverse-Kinematics (IK) Library
implements a collection of algorithms written by Fabrizio Flacco for
inverting the differential kinematics of a robot.

Continuous Integration Builds

ROS Indigo

ROS Kinetic

ROS Melodic

What problems are solved by this library?

The SNS-IK library is a library that is designed to compute fast solutions to
inverse-kinematics problems on redundant kinematic chains.
It is particularly good at handling multiple prioritized task objectives
while satisfying joint position and velocity limits.

The core solvers in this library operate at the velocity-level, although we
also include a position-level solver.

Algorithm Overview:

SNS Velocity IK: This is the core algorithm developed by Fabrizio.
All of the other algorithms in this library are improvements upon this one.

Optimal SNS: Add an objective function to the standard SNS velocity IK solver,
allowing it to compute a solution that is both feasible and optimal.

Optimal SNS with Margin: Improvement upon the Optimal SNS solver to make it
better at avoiding discontinuous velocities over a sequence of IK calls.

Fast SNS IK: Several numerical improvements to reduce the total CPU time
required for the SNS Velocity IK solver.

Fast Optimal SNS: Similar to the Optimal SNS, but with several numerical improvements.

SNS Base Velocity/Acceleration IK w/ and w/o Configuration Task as Secondary Goal: This uses SNS IK algorithms rewritten by Andy Park.
These algorithms passed rigorous unit tests and they much more robust than the original algorithms developed by Fabrizio in edge cases. And by providing an acceleration-level IK, they result in inherently continuous velocity outputs.

References:

The algorithms in this library are drawn from three papers,
all written by the same team of three authors:
- Fabrizio Flacco
- Alessandro De Luca
- Oussama Khatib

These two earlier papers are also relevant:
- Prioritized multi-task motion control of redundant robots under hard joint constraints
(.pdf)
(IEEE).
- Motion control of redundant robots under joint constraints: Saturation in the Null Space
(.pdf)
(IEEE).