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)
| 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