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.1.tar.gz (172.4 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.1-cp38-abi3-win_arm64.whl (242.1 kB view details)

Uploaded CPython 3.8+Windows ARM64

crx_kinematics-0.1.1-cp38-abi3-win_amd64.whl (255.1 kB view details)

Uploaded CPython 3.8+Windows x86-64

crx_kinematics-0.1.1-cp38-abi3-musllinux_1_2_x86_64.whl (614.8 kB view details)

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

crx_kinematics-0.1.1-cp38-abi3-musllinux_1_2_aarch64.whl (576.6 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

crx_kinematics-0.1.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (412.8 kB view details)

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

crx_kinematics-0.1.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (399.3 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

crx_kinematics-0.1.1-cp38-abi3-macosx_11_0_arm64.whl (359.3 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

crx_kinematics-0.1.1-cp38-abi3-macosx_10_12_x86_64.whl (367.2 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: crx_kinematics-0.1.1.tar.gz
  • Upload date:
  • Size: 172.4 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.1.tar.gz
Algorithm Hash digest
SHA256 d9a6def8ae4910b66590870e443cdf9a2eb97dc0aa5e501be84973a09de27bd5
MD5 26882085ecda022ee27cffd87ae046f6
BLAKE2b-256 2c609441337c6942ee29d9a5a467d03ef4c1bbe4523950ab98d7ba307519843f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crx_kinematics-0.1.1-cp38-abi3-win_arm64.whl
  • Upload date:
  • Size: 242.1 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.1-cp38-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 7426dfb12981458ec987d2117bccfe7320d4ff32e19d03fecc9351405013566c
MD5 01ee66c85dc04787d5e31d37be13ca68
BLAKE2b-256 8083d1aff9b211edded26baa32ce480aa4e519b1344fcb6010ff077a3b555777

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crx_kinematics-0.1.1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 255.1 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.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c6c709ab11dc1771ba5290a66745bb76563f3b06e51ee0c1cb5223eb24656ae8
MD5 e7d0752b69a697df942ddbf01cd2e538
BLAKE2b-256 228c56372f7301f6898439f03c845c47f7d042ef65ba7df318d3c1f5f56e97d4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crx_kinematics-0.1.1-cp38-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 614.8 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.1-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6e4530b8f4eb8b71d510bc922fa39e50d73e57fb73e931f18e3e8274b3dccd55
MD5 e0afd0013b72be236d6324ce1e40a120
BLAKE2b-256 7ea5c090d6b33786954a15ad095b3fa07a7ed82731faba3c379c1a9d1e618320

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crx_kinematics-0.1.1-cp38-abi3-musllinux_1_2_aarch64.whl
  • Upload date:
  • Size: 576.6 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.1-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 09292ea266d1b4b3edc563b797e1150a5aaebcf9a61b4154be99320e22ca3f9e
MD5 fcc55b149a3de95ec78b6fc5df843a85
BLAKE2b-256 6c09c2b482214b22c36b001ffe7bf050123496e7f2a3b5fd46ed1c6f8af2e835

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crx_kinematics-0.1.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 412.8 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.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f3a1dd1838283448f04f7352aec6a78c72a775f969394fe6d6ea23f6cbfc03e
MD5 1a6ac20cb5289d492068c111462b91ae
BLAKE2b-256 1577b1214e1c3118e847203e19daef915997ad6551d6c95052a60366dd98e700

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crx_kinematics-0.1.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 399.3 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.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6c7d2786599b481d45b5f169bf62855d5b47ea65799a03a6f65aaca62897c3bb
MD5 5a617ccfa1c81de7aef3b1d9200cb715
BLAKE2b-256 2f84b8b8723cd843541276deac5eadf93e8dd165b469e8fbdf735168db281007

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crx_kinematics-0.1.1-cp38-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 359.3 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.1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9cbc02d38e54838cc86cd45de7fc1770650f0a8cfee41685d593c32ab35b0131
MD5 3cca3f76d27de41ee1d562322aa88941
BLAKE2b-256 cd6993d387756dd39b17f55940550a243fc9ccf55cfdef65cc852025ffc473ba

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crx_kinematics-0.1.1-cp38-abi3-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 367.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.1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f92a4970d16a3b2cc1e100b0da911447456aec2a3f6c82d71581ef835310b5c7
MD5 2a2b6d4bf6a6d671f9cb6a375ff53ba0
BLAKE2b-256 288525d6284d16c430c3d89ff58660955a59740014b4e1f3ef67334f9f61d6b3

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.2

9 files

This release

0.1.1 This release

9 files

0.1.0

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