Skip to main content

crx-kinematics

Forward and inverse kinematics for the FANUC CRX family of collaborative robots. These are Python bindings for the Rust crate crx-kinematics, and require only numpy.

The inverse kinematics is complete and direct. For a reachable flange pose it returns every joint configuration that reaches it, up to the sixteen this architecture allows, and it does so without seeding, sampling, or iterating toward a single answer. The method is derived in full in LINEAR_METHOD.md.

pip install crx-kinematics
import numpy as np
from crx_kinematics import Crx

robot = Crx.crx10ia()

# Forward: joint angles in controller degrees to a 4x4 flange pose.
target = robot.fk([10, -80, 10, 20, -20, 45])

# Inverse: every configuration that reaches the pose, as an (n, 6) array.
solutions = robot.ik(target)

# Or just the one nearest to where the arm already is.
best = robot.ik_closest(target, [0, 0, 0, 0, 0, 0])
print(np.round(best.joints, 6), best.residual, best.kind)

Joint angles are in degrees as the robot controller reports them, including the FANUC convention where the J3 value is measured against J2 rather than against the world. All six kinematically distinct models are available as Crx.crx3ia() through Crx.crx30ia(), and Crx.from_params builds a robot from the four link dimensions directly.

Poses cross the boundary as 4x4 NumPy arrays. A target may also be any object with an as_numpy() method returning one, which is how an engeom Iso3 can be passed straight through without either package depending on the other:

from engeom.geom3 import Iso3

solutions = robot.ik(Iso3.from_xyzwpr(600, 0, 700, 180, 0, 0))

ik returns joint angles only. ik_detailed returns the same solutions with the residual and the kind of configuration attached, and fk_all returns the pose of every frame in the chain.

Several configurations are mathematically degenerate, including the wrist center landing on the J1 axis, which an operator can enter directly and which defeats other implementations of this architecture. They are enumerated with their treatment in the derivation.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crx_kinematics-0.1.0.tar.gz (164.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

crx_kinematics-0.1.0-cp38-abi3-win_arm64.whl (235.9 kB view details)

Uploaded CPython 3.8+Windows ARM64

crx_kinematics-0.1.0-cp38-abi3-win_amd64.whl (248.2 kB view details)

Uploaded CPython 3.8+Windows x86-64

crx_kinematics-0.1.0-cp38-abi3-musllinux_1_2_x86_64.whl (607.9 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

crx_kinematics-0.1.0-cp38-abi3-musllinux_1_2_aarch64.whl (571.5 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

crx_kinematics-0.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (405.7 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

crx_kinematics-0.1.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (392.9 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

crx_kinematics-0.1.0-cp38-abi3-macosx_11_0_arm64.whl (350.8 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

crx_kinematics-0.1.0-cp38-abi3-macosx_10_12_x86_64.whl (360.2 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file crx_kinematics-0.1.0.tar.gz.

File metadata

  • Download URL: crx_kinematics-0.1.0.tar.gz
  • Upload date:
  • Size: 164.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crx_kinematics-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0d6f8bbe770f3c3d2c344b006a7ae2f9c5feda91cbd28950c2089f6abcedf879
MD5 15f0c59266d3e8259e6166048c249633
BLAKE2b-256 195f54cadb734de10c2f5fe74ced6e86cbf00c3532f582515531b6272748ed15

See more details on using hashes here.

File details

Details for the file crx_kinematics-0.1.0-cp38-abi3-win_arm64.whl.

File metadata

  • Download URL: crx_kinematics-0.1.0-cp38-abi3-win_arm64.whl
  • Upload date:
  • Size: 235.9 kB
  • Tags: CPython 3.8+, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crx_kinematics-0.1.0-cp38-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 0330334fbd0d9eb4e4d8c9e78e43fa53cffa01262df62da0ca435b48420219be
MD5 e448b751562fb886c0025efb19e0d4bd
BLAKE2b-256 684f0487efa118a652369f3caa8c47bb158535bb034e44d501ba610fcfdb30be

See more details on using hashes here.

File details

Details for the file crx_kinematics-0.1.0-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: crx_kinematics-0.1.0-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 248.2 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crx_kinematics-0.1.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2b50c3afff0cb61b5b33517fcfdf48157d2270eb452dca442556d331b2c116cf
MD5 ccc5cd20fe20becac1ce3af8c2a882dc
BLAKE2b-256 ca84165cb2aa4109f5dd0f2d2d8aef87c56bee36cc9abb209562ead4cbc2910e

See more details on using hashes here.

File details

Details for the file crx_kinematics-0.1.0-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: crx_kinematics-0.1.0-cp38-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 607.9 kB
  • Tags: CPython 3.8+, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crx_kinematics-0.1.0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 47e0f72b1a98796f959df97cbeba34d73f4070c1df2b3a07def16f9243cdff28
MD5 30ba816f4208cdca98c2ab1ad567e546
BLAKE2b-256 e2dd878fe67e1a7fcd4fd3d6a6df34ebe145e68128661627c071c57f3a3f8374

See more details on using hashes here.

File details

Details for the file crx_kinematics-0.1.0-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

  • Download URL: crx_kinematics-0.1.0-cp38-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 571.5 kB
  • Tags: CPython 3.8+, musllinux: musl 1.2+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crx_kinematics-0.1.0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8df9cdfea0e245ee66b37adb5a77644c3e52151e0d50c95edbcf878a7c126bba
MD5 510cbbce64ecc67776ba9dd8f828511b
BLAKE2b-256 ea1c770d305895c77f49bda31747d667b7dc365c66b69f4df4ecc23895582819

See more details on using hashes here.

File details

Details for the file crx_kinematics-0.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: crx_kinematics-0.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 405.7 kB
  • Tags: CPython 3.8+, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crx_kinematics-0.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e40da1822b16003baac6e8579ca519a6c46049270a38575dc69a7b53151bb19
MD5 b9c7aad11ecedb1de25b7ce74212bbb9
BLAKE2b-256 dd2da76e8c6abc167fd61dd229eb7313f4c236ccfbd37726f559ee17c72d0986

See more details on using hashes here.

File details

Details for the file crx_kinematics-0.1.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: crx_kinematics-0.1.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 392.9 kB
  • Tags: CPython 3.8+, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crx_kinematics-0.1.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dc2df0e44318502a3893486e5ed8805204b4a0f2323a5fe5bdbfc8e8f19f744f
MD5 5e628aac44f460f21e9354da024dcfb1
BLAKE2b-256 060e19676525aad8888d1c3a5e1e5530006acba53a2453f95f31eb60ef78e02c

See more details on using hashes here.

File details

Details for the file crx_kinematics-0.1.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: crx_kinematics-0.1.0-cp38-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 350.8 kB
  • Tags: CPython 3.8+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crx_kinematics-0.1.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e324a21cb8ff3f8ab4a2c8f8057a64f8ae9fc538cbe64040ef3fb1e9cca31191
MD5 a65c45a824a62620c6306b2525d3f390
BLAKE2b-256 285c5a5dd1172185787871ed473ceac1a7dc174b210e3b81a2728752c5e2c5ff

See more details on using hashes here.

File details

Details for the file crx_kinematics-0.1.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: crx_kinematics-0.1.0-cp38-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 360.2 kB
  • Tags: CPython 3.8+, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for crx_kinematics-0.1.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 1776dd17b6a12b6c760212df37eeccf56073fe9b576dadb44c4fe88ce175ccbe
MD5 2387f3dba6f48bde9517c3da8ddea319
BLAKE2b-256 69f998952d0ee8178d7b4aeecc6d0fac8f804d986f30d6e1b1556e1f99c94370

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.2

9 files

0.1.1

9 files

This release

0.1.0 This release

9 files

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