Skip to main content

A Python wrapper for the rs-opw-kinematics library

Project description

py-opw-kinematics

py-opw-kinematics is a Python wrapper for the rs-opw-kinematics library, providing an interface for solving inverse and forward kinematics of six-axis industrial robots with a parallel base and spherical wrist. Designed for convenience and performance, this wrapper is suitable for robotics simulation, control, and trajectory planning directly from Python.

Key Features

  • Ease of Use: Fully customizable end-effector rotation using Euler angles. Configurable to use degrees or radians.
  • High Performance: Capable of batch operations using Polars DataFrames for maximum efficiency. For example, 100,000 inverse kinematic solutions can be computed in just 0.4 seconds.
  • Full Rust Integration: Uses Rust for the core kinematic calculations, offering speed and robustness while allowing access through Python.
  • Singularity Handling: Manages kinematic singularities such as J5 = 0° or ±180°.

Installation

Install using pip:

pip install py-opw-kinematics

Note: Rust is required to compile the underlying Rust library if not using pre-built binaries.

Usage Example

Parameters

This library uses seven kinematic parameters (a1, a2, b, c1, c2, c3, and c4). This solver assumes that the arm is at zero when all joints stick straight up in the air, as seen in the image below. It also assumes that all rotations are positive about the base axis of the robot. No other setup is required.

OPW Diagram

To use the library, create a KinematicModel instance with the appropriate values for the 7 kinematic parameters and any joint offsets required to bring the paper's zero position (arm up in Z) to the manufacturer's position. The direction of each of the axes can be flipped with the flip_axes parameter if your robot's axes do not match the convention in the paper.

Additionally, you can specify the Euler convention to use for the end-effector rotation. The EulerConvention class allows you to specify the order of the rotations and whether they are extrinsic or intrinsic. The degrees parameter can be set to True to use degrees instead of radians.

If the robot has a parallelogram between joints 2 and 3, set has_parallelogram to True to link these axes.

Below is a basic example demonstrating how to define a robot, configure Euler conventions, and compute forward kinematics.

Single Operation Example

from py_opw_kinematics import KinematicModel, Robot, EulerConvention
import numpy as np

kinematic_model = KinematicModel(
    a1=400,
    a2=-250,
    b=0,
    c1=830,
    c2=1175,
    c3=1444,
    c4=230,
    offsets=(0,0,0,0,0,0),
    flip_axes=(True, False, True, True, False, True),
    has_parallelogram=True,
)
euler_convention = EulerConvention("XYZ", extrinsic=False, degrees=True)
robot = Robot(kinematic_model, euler_convention, ee_rotation=(0, -90, 0))

# Compute forward kinematics for a given set of joint angles
angles = (10, 0, -90, 0, 0, 0)
position, rotation = robot.forward(angles)
print(f"Position: {np.round(position,2)}, Rotation: {np.round(rotation,2)}")

# Compute inverse kinematics for a given position and rotation
for solution in robot.inverse((position, rotation)):
    print(f"Solution: {np.round(solution, 2)}")

This example prints:

Position: [2042.49 -360.15 2255.  ], Rotation: [  0.   0. -10.]
Solution: [ 10.   0. -90.  -0.   0.   0.]
Solution: [ 10.    90.76 -20.4   -0.    69.6    0.  ]
Solution: [  10.    0.  -90. -180.    0.  180.]
Solution: [  10.     90.76  -20.4  -180.    -69.6   180.  ]

Acknowledgements

This project builds on the Rust library rs-opw-kinematics by Bourumir Wyngs, which itself draws inspiration from:

  • The 2014 research paper: An Analytical Solution of the Inverse Kinematics Problem of Industrial Serial Manipulators with an Ortho-parallel Basis and a Spherical Wrist, authored by Mathias Brandstötter, Arthur Angerer, and Michael Hofbaur (ResearchGate link).
  • The C++ project opw_kinematics, which provided valuable insights for validation and testing.

Licensing

The py-opw-kinematics library itself is licensed under MIT.

The image opw.png, used for documentation purposes, is sourced from opw_kinematics and is licensed under the Apache License 2.0.

Contributing

We welcome contributions! Please see our Contributing Guidelines for more details on how to get started.

Project details


Download files

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

Source Distribution

py_opw_kinematics-0.1.4.tar.gz (84.0 kB view details)

Uploaded Source

Built Distributions

py_opw_kinematics-0.1.4-cp312-none-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.12 Windows x86-64

py_opw_kinematics-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

py_opw_kinematics-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

py_opw_kinematics-0.1.4-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

py_opw_kinematics-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

py_opw_kinematics-0.1.4-cp311-none-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.11 Windows x86-64

py_opw_kinematics-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

py_opw_kinematics-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

py_opw_kinematics-0.1.4-cp311-cp311-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

py_opw_kinematics-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

py_opw_kinematics-0.1.4-cp310-none-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

py_opw_kinematics-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

py_opw_kinematics-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

py_opw_kinematics-0.1.4-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

py_opw_kinematics-0.1.4-cp39-none-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.9 Windows x86-64

py_opw_kinematics-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

py_opw_kinematics-0.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

py_opw_kinematics-0.1.4-cp39-cp39-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

py_opw_kinematics-0.1.4-cp38-none-win_amd64.whl (3.5 MB view details)

Uploaded CPython 3.8 Windows x86-64

py_opw_kinematics-0.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

py_opw_kinematics-0.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

File details

Details for the file py_opw_kinematics-0.1.4.tar.gz.

File metadata

  • Download URL: py_opw_kinematics-0.1.4.tar.gz
  • Upload date:
  • Size: 84.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.7.4

File hashes

Hashes for py_opw_kinematics-0.1.4.tar.gz
Algorithm Hash digest
SHA256 d9d81a690fccd1f19767b7d340cd6029b6a1b8fc0dfcf546fc5d84931ec1867f
MD5 92ffabe30f3e43a2f5ae73e65c91ee77
BLAKE2b-256 6dd1e73aa7a1b387ac9ed0994a8ef003b4ba8de70e271f501755eef34510c7ac

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c20e3d8658f1db87f500d524010ee0d806e7929c0cd8faba579d1e5fedcf56b
MD5 eeba3cc089275558e0877ad7e324a57e
BLAKE2b-256 ac29ba95af6ab26f6aa463885b852d0e7e195610e4f3159ac76aa519ebe8e71a

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4a6c07feaa7657714510964d77f625cf75180028f8382b799f60fe5a15be4690
MD5 082f9c4fad0b03853d06389fe7b067e0
BLAKE2b-256 1e87202cb91050486da20a09e4655b10b1d27d3b0894887d02f85466ca5ee50d

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5846c337dcc0aeabbe5077c391e61add337b1c14ec390e66b3410c074bcb7e45
MD5 42217f06cee4ef0ccd37cc1583d2e66e
BLAKE2b-256 e02a98f04a298001b6450975eb39b26accb114aba5617237a8a92243fa0bf625

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c831f23edf690225d1a8348e1d0153a9e41372b8b549fbbfcd768c1fdf16a525
MD5 37f5eada2cd711868a478250dc837887
BLAKE2b-256 f0e7d42e2b59ee34b9bceb0dcec47ee704e0fbdb5c634673a5fd8e41403af643

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b42c91f370cec26ea6741678f1da809029bc90515d55698c829ec7693aa80e4e
MD5 26e28930a29887dd3b13c39bfbdbb786
BLAKE2b-256 94f506ac11e97c94f1ceb800e37e0ba0903fb98b71095109e2ea95411744af21

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 92b8fe70c81ee76ce184534c2cad1b0afe9b2722ee558922448145f8c31c7025
MD5 ba72fb18ceca1e9c44abe97a5f9c965a
BLAKE2b-256 2123a38abf41a01d3fec2e8701876cbfe4fef9aefa76cdac0bac6be691ddec3c

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d3065be8fd0c1c68fbad45c5caf52e061190980738cc9761a7f829bdb01c192
MD5 28d9263626a28b5b42b59a74d99a5547
BLAKE2b-256 9722f043f2a087fe5f834438dadc182a216af5936ce24bf2cacc412d897ee065

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 79b9341a8fb5a3f47d88b945c846904e6bb00a49365b2fb71488923da2db0964
MD5 ec1616c6f49ddb52e4b2d180e8d89d2f
BLAKE2b-256 48e27e96ccbd0c0adb7c3c6c3b14ae6665957a47f402ec9dbb6d3f25b02333ee

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b713bbcfc7ca11004489fd2ea0da3f4b8f4b79eaf2b0ecbbf593d0637803944a
MD5 82a95f1a50f02a9876266b0016918d0c
BLAKE2b-256 d51cf937749cf72994844a0e93df73d7525e279851e1ff396a70fba1b60ea32d

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 be02d61fc75171104274654fefedf0af5096d2703b0c97116383d1c12f9c0a09
MD5 435377c362065fe94b06fa89e9e243b6
BLAKE2b-256 85405cd15f678df5ea84e2cb0990928a56a8f55de8983e3ab9df7de957ee370b

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 93b4bd09b685605f6588372f8fea94de7dd19ad2d30888cb66a9be3ba9430a43
MD5 1d24fdd74c18b11a88c805e153bab611
BLAKE2b-256 c9f77a1c98350ed5a61523de37c72c6490a40e8414c0745be20fd1ea4f6dfcb7

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0aa304800a96f61de0de6da51dd46cb20e1da8902ad1080c906249f0513f83d5
MD5 61ff8d79f7ab8a13508d1f028af60f44
BLAKE2b-256 3117b593c9abb20c8d72221fc257986cdf7aa37e24c1e3059d1f6cd8c02573c3

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a01ad237dfb1b2b1080c0339e5d2c6b4ff8d68fb5fb84bb2e2fbd7adde3fe893
MD5 f053696022a8c9ea8f739d8a2a2cb0e0
BLAKE2b-256 903f6df0bec38d9aad09c20e1d0aaf119fac18997b342232b543bf950a7eb8cf

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b6a4353ed466196812b02afa4aec1496ebfd6dafe1ba930e9e481cc4b831a2d9
MD5 c5355dc91400e79de249dad00ba6270a
BLAKE2b-256 91ba8a1d4ea7efc4e87894d0dedec3920bd4e5e5ff3e8f2702b3ab278d3dafa6

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 96068a3308cb64c041e19789848227c1277b3538022a5050c748009b124392c8
MD5 e17735a1099c90e325b309c5e59e7df8
BLAKE2b-256 2afadb62dab8a26f6ea8c8c74f6a4cc0e6a4fad022a09a69eceaf8d6b937f163

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 772fa52fbd5d261e77ad1dbd0f1d03ed9fcca577f73b3cbdbd1150e32ce1d91c
MD5 23714ea6c2ca9ed210f77d711598b837
BLAKE2b-256 7917b3528757d3540d3cf7a9c77caf7e69ece1b077fcb3bad6a22221b20c650f

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bcfd84c6f8a847e526bce5e65fd4576d639d9baa19a73aa01e877bab636c8382
MD5 63e06fe8c50b5760a52a0a46fa29a324
BLAKE2b-256 3b3abb3177c4d55cd943f70fc7abde1d6be470959f7c3d3153e322af23a1edcf

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2fee14fe7072dfbed6f6f2144ed5f61b94c9a5de78bcf850113d612d2c2b07be
MD5 dbd0738f829ad52848b2ccf00d925110
BLAKE2b-256 215716e43b58293c82d35b894e84bafce8e7d1097bb9e22da0ebed63984fe06f

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ae223090d2cf4e6073d525a60462c747786298f354ad6f946351a58c8f8f492
MD5 22bb89da7373b554277c75f60706fba4
BLAKE2b-256 dca1c96d74d6d8700d4d37eed798b791f723f5d5b209f52b174f10d299ce2b68

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp39-none-win_amd64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 5a1bf8ec77763f79b0739b8595cfdf97d65c3d8fdcd1fb18923f882228f3676d
MD5 7501eeca23da3c7cb998a2e785395c02
BLAKE2b-256 46f0fbd9976a739ef72d0ef643d1326a00475307620ee40bba3fe71e73a80160

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6e355d04d0088e9f0dd7e27cb263734b4efa8692820473fb8ef33ce971bbfd6e
MD5 6d4290ef4f00ea01ce31f96492f15e38
BLAKE2b-256 de14048f557db1696e402e49a69e4472e4d64b13487ca832176aae4f48d6aba6

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 22ffa389cf2d8190461ed911669c83f1594f28546ec1f5efa242d7c76bb76453
MD5 d80386119f8c7f371a90ca52792799ef
BLAKE2b-256 2c61ccd0cf0a394504c1640b6e5c48189d9601a2c66b46f4e47137f9a754b017

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c757a959201f9cf270145bcfeb7c8b1667ae626639d23b018dccdf8d2c33daa
MD5 24c6f5831a2b39f5e198db8ac3cb7487
BLAKE2b-256 7436c64d45c327a0b755193b0119ac33ddac923d32e9fd9c68c8b45c0d308ee6

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp38-none-win_amd64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 1977be7c2e5dd1c9a8f23ad4bbdf66b8dc47e198d212472cf90d159685d04e72
MD5 b505497debbeb0e6e80d5ae37bcfd2e7
BLAKE2b-256 958cb8b1b2cb805c888d4f45ce219fecb1f38816a29bc7d26cdda53a16d63610

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5ad658bfbd05bcf3e805766f2f666f327b17d39c5bf2bac6bcb6bcd2de50c9ff
MD5 4e067b1c5f8e60b905f2dcd5501b3fe1
BLAKE2b-256 b45491dc51f39aa5b3a5cb831d1a13dc3dc64ccc28156a88a423bdb1227568d0

See more details on using hashes here.

File details

Details for the file py_opw_kinematics-0.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for py_opw_kinematics-0.1.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d1eafb66449b4f7d23b95525bf4e07e7604d32d3542231aaf1c2872161de86cf
MD5 7d57d8b522eeb28fb3fa5d86ee92b62b
BLAKE2b-256 fe5a0e4c77db46c892e60b26f4bbac047c9cb66b3d9c97fff8e6e3defb6f0be6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page