Skip to main content

FRANTIK: nanobind wrapper for analytic Franka IK

A Python wrapper for an analytical Inverse Kinematics (IK) solver for Franka written with nanobind. The solver is modified from franka_analytic_ik, which has the following citation:

@InProceedings{HeLiu2021,
  author    = {Yanhao He and Steven Liu},
  booktitle = {2021 9th International Conference on Control, Mechatronics and Automation (ICCMA2021)},
  title     = {Analytical Inverse Kinematics for {F}ranka {E}mika {P}anda -- a Geometrical Solver for 7-{DOF} Manipulators with Unconventional Design},
  year      = {2021},
  month     = nov,
  publisher = {{IEEE}},
  doi       = {10.1109/ICCMA54375.2021.9646185},
}

Installation

Simply clone the repository and pip install:

git clone git@github.com:CoMMALab/frantik.git
cd frantik
pip install .

You will need Eigen3 installed. To install on Ubuntu 22.04, sudo apt install libeigen3-dev.

Usage Notes

This module provides two functions:

  • ik(tf, q7, qc) which takes as input the target frame (a 4x4 TF matrix), the desired value of joint 7 in radians, and the current configuration of the robot. It returns all four solutions (if they exist) to the IK problem.
  • cc_ik(tf, q7, qc) which takes in the same input as above, but only returns the solution closest to the current configuration.

Note that the functions take numpy arrays as input.

[!WARNING] Note that both functions assume that Franka Hand is installed and the solution is regarding to the end effector frame. If the Cartesian pose of the flange frame is to be used as input, according to Franka documentation you can change the const variable d7e to 0.107 and remove the 45 degree offset in q7.

TODO

  • Line search for q7 values

Metadata

Release files for frantik 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for frantik 0.1
File Size Uploaded
frantik-0.1.tar.gz 2.7 MB Details

Release files / frantik-0.1.tar.gz

Download URL frantik-0.1.tar.gz
Size 2.7 MB
Tags Source
SHA-256 checksum
How to use checksums
f4ee395708157fde58597b66ac807b7462014344c69f1bc5d7bb9bb944558d41
BLAKE2b-256 checksum
How to use checksums
b8fbd0c5e0bc30fffe582bf0d6271288568f4434b5cf94b4603b8ca63b848dfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.12.9

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page