Skip to main content

Inverse kinematics for general 6R serial robots (Husty-Pfurner algebraic method)

Project description

IKDH

IKDH is an Inverse Kinematics solver based on the Denavit and Hartenberg convention. It finds all solutions for general six revolute joint robots based on the Husty and Pfurner algorithm [1] and [2].


Web Interface

Web Interface can be accessed here.

joints frames manipulability

Robots can be browsed and downloaded from the RoboDK Robot Library. Once found, add your .robot file with load and the DH parameters will be directly extracted from it.

Terminal Commands

  • cartesian motion : MoveL x_mm, y_mm, z_mm, roll_deg, pitch_deg, yaw_deg

    • set cartesian speed : SetSpeedL mm_per_s (default: 100 mm/s)
  • joint motion : MoveJ J1_deg, J2_deg, J3_deg, J4_deg, J5_deg, J6_deg

    • set joint speed : SetSpeedJ deg_per_s (default: 60 °/s)

Library

Install the python

pip install ikdh

Or locally build the project

cmake -B build -S .
cmake --build build

Python example

import ikdh

robot  = ikdh.load_robot("robots/your_robot.yaml")
solver = ikdh.Solver(robot.dh, robot.limits)

#                            x      y    z      roll pitch yaw
ee   = ikdh.pose_from_xyzrpw(500.0, 0.0, 500.0, 0.0, 90.0, 0.0)
sols = solver.solve(ee)   # list of (6,) numpy arrays, in degrees

for q in sols:
    print(q)

C++ example

#include <ikdh.h>
#include <robots.h>
#include <cstdio>

int main()
{
    auto robot = Robots::loadRobot("robots/gofa5.yaml");
    IKDH::Solver solver(robot.dh, robot.limits);

    auto ee = IKDH::poseFromXYZRPW(500.0, 0.0, 500.0, 0.0, 90.0, 0.0);
    auto sols = solver.solve(ee);

    for (size_t i = 0; i < sols.size(); ++i) {
        for (double q : sols[i]) printf("%.3f ", q);
        printf("\n");
    }
}

How to cite

@misc{axel_ikdh_2026,
  author       = {Axel Refalo},
  title        = {IKDH: An Inverse Kinematics Solver based Denavit and Hartenberg Convention},
  year         = {2026},
  publisher    = {GitHub},
  journal      = {GitHub Repository},
  howpublished = {\url{https://github.com/Lab-CORO/IKDH}},
}

References

[1] M. Husty, M. Pfurner and H.-P. Schröcker. A new and efficient algorithm for the inverse kinematics of a general serial 6R manipulator, Mech. Mach. Theory 42: 66-81, 2007.

[2] J. Capco, M. J. C. Loquias, S. M. M. Manongsong and F. R. Nemenzo. Inverse Kinematics of Some General 6R/P Manipulators, arXiv:1906.07813, 2019.

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

ikdh-1.2.0.tar.gz (640.5 kB view details)

Uploaded Source

Built Distributions

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

ikdh-1.2.0-cp313-cp313-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.13Windows x86-64

ikdh-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ikdh-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

ikdh-1.2.0-cp313-cp313-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ikdh-1.2.0-cp312-cp312-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.12Windows x86-64

ikdh-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ikdh-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

ikdh-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ikdh-1.2.0-cp311-cp311-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.11Windows x86-64

ikdh-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ikdh-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

ikdh-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

ikdh-1.2.0-cp310-cp310-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.10Windows x86-64

ikdh-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ikdh-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

ikdh-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

ikdh-1.2.0-cp39-cp39-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.9Windows x86-64

ikdh-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

ikdh-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

ikdh-1.2.0-cp39-cp39-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file ikdh-1.2.0.tar.gz.

File metadata

  • Download URL: ikdh-1.2.0.tar.gz
  • Upload date:
  • Size: 640.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ikdh-1.2.0.tar.gz
Algorithm Hash digest
SHA256 78a99c52c4b823d2c10e885e6023e0075bff669bfb0e7a2ce830045e5b91c323
MD5 8c11e0954afcd82f01fd390ea7ca8b6a
BLAKE2b-256 57e4f9ec18cee4e467a1ef5e8f841cdbfaf92e6eb0e9f4f4395d15fba8068ccd

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: ikdh-1.2.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ikdh-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 158d5765252d61307905a6cbaf37eedb7877810ad1c2383a3fe87f87c5ca5f9f
MD5 5dd64311f67b774b381196eafbb139fa
BLAKE2b-256 afff6d625dac5e48fdf65a761c2f1185d6782ff775f360e61cc89d9ca5dbad58

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 30fa347f8f7c3756ee618e08b5114f8c6518f4f1f34cda31d575f71caf070d88
MD5 82948204e71b6929db2b1cac284623ae
BLAKE2b-256 7cb973579b002729814a93fbc9b961b8922e4fd1df88f09b06694f5b85235306

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5e8dafecc8becc6c184ee7e82d0594b8c40e19f99ea8fe7aed9fdc7742df6a32
MD5 bfe849d62b62e4a0f933fe821c6ca4ed
BLAKE2b-256 dc4906f5390623901f8209f90cc0470f4301391641c294520312581bdc6f91e3

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea7f78e8e2c3e62333eda132d813351ca0437247df4033298bb2059a991e39da
MD5 6a95502475acb83e5b92c8126b26aeda
BLAKE2b-256 d190619c4a2405069276910341ad59aba1e535d22e0d0a86276d6061292e59ec

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: ikdh-1.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ikdh-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 47b39b6fda8e95d79d0082a4cc9159f4a7836b2eba4d9d2f0cd614420c9e9de5
MD5 5fcf3a7b493c60e896de2bc4627c0956
BLAKE2b-256 e50259d57c50fa6f3fffcad00277c83f5b3cfaa1d49bf4f36efd4f5978763f08

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7d6d76a400b25c744c295f52fc2be2612f0e16f4bbaf9d6e86b6dbcdebdc9752
MD5 f3c4414e75f94e461826299b83a4a8fc
BLAKE2b-256 189ca9975843fbf1adcc32dadd922113c3fdedca064d61a7d9cd6e35b1711ea5

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 951bdc1a93447783f9917a8e82994624227aa6e24073c8858d29600bb28edcd4
MD5 aa022add1b68dcfca450e322f009eea1
BLAKE2b-256 0b8c03e867a600968031cf6ed9ccc83dfe8de8c12b3b9b2eb614a2b51f86807f

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a7be5718a6c1d724840535d3a581f27853f19b3f72be83b0b6a2bb993f87603b
MD5 a426bd49d083d4eb670e1b209d245589
BLAKE2b-256 6072795522a2bfa227350448f6360aa9973a53f57b4fc78a68439ddd4f6f97eb

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: ikdh-1.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ikdh-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e5b790b330f44c0cbfc47ec95b28af3caa0ef2f553b03c244fe8cee6b4649e5c
MD5 d4f137e5746e2ab7b6baa7a7b61b25a1
BLAKE2b-256 7a15c03d42ce692e5d7c88aec4452f0823a3dd4193a1b1ef62c2036cdf6e7ff6

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5515096ccb4fc1f398f18cbaa8f62ef60497046a8f2c9c113aefa2f2c554ed4
MD5 c5a1aa78375368d36a898454b88a8687
BLAKE2b-256 e5097b9d4b45dc9a3089b081cd8e4d00e08d2974a2a2a334075d8ea657289d18

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0871792c8f37a08769f5ef8c0d4ff2463b60a6182d41453e43898bf6436207ee
MD5 3cbf61c95e1f504fd7add92d8ed37231
BLAKE2b-256 df61942bac8650bedd328b372d2a630347257a2537549731fd8119706d8f127f

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06f618af6a09ab36c73710c2119905866af2f096f1952cc90a41f21e5f34ac45
MD5 5b6d099239bc303192d73b5aa5113c94
BLAKE2b-256 3ae40552cdeb790af9eebfcf2157e21ac8f0fef9cf83d3ce9d2347ebff1bdb17

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: ikdh-1.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ikdh-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a55e7e48d40a913c8db2f8efce0e639a4cf7f1b9b3f9d40d321a310461390704
MD5 4ea31e775851bbc74ef46bb84af4348a
BLAKE2b-256 27d0367a72cf2641c30f0cbc50fc13ce480ac07eb93f35564678d38e7ab6fa4e

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 750b17e5c842daf836329c67bfc8b7c7215c97088782cbe4d2eac5c5a36f8411
MD5 ee9d1173836f633f18db6d981a1d3256
BLAKE2b-256 708b5c62bc2b8f0cc5ac6db97e2c085e8fd06b3bb80d20384756764f1def2674

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 29303cd80cbfeff2813b11cd5eebf14b99d281b7d5cbf9db56e28a2cbbb0c086
MD5 6885672beedcc058760a600a1359ebce
BLAKE2b-256 9e6c838a86c66ba128c86ba203b80422c918492fd713ed67a970e92a337baa98

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9720ce484fff2a36ad095851dc865a53fc345b13fab9a6ca340d81e4a445ba42
MD5 f91ae02dbe9a77e61381ef47cc080458
BLAKE2b-256 4e52333610038919c24627cf62a87b3bb5bca57ecd150e3a6b8a2a246a7c24eb

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: ikdh-1.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ikdh-1.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 078ac42786cb360d410708400453b355be79762e93c95c008898f156d0a2d596
MD5 deb04f929f1c17e7bc72531887ec2949
BLAKE2b-256 51259fb2717c6d652a473a8d7046342cb49b9564538ac8d01cf6e955c0018474

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 11a6a9de0ad427ed7d6be19d26b492f9ed2c6c09ab5e49d7e1443aeabf716810
MD5 669a9fc93fdefcd656c2522bce2a3434
BLAKE2b-256 f93f36532bec059030cbe208ec9fb2f9f76573ee4c073e9565b470c88560e976

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ikdh-1.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0deb9ab302b45471e3e5896e11297fba6e1c50c1d5f0c877f115fc9e761a1821
MD5 beb479513b9676f1cf4d6d0fdcd17a82
BLAKE2b-256 a75dc2e9febc80e59d84a565b5d07ee819ce68d71e0e8bfbb1ced7bfcc8270cd

See more details on using hashes here.

File details

Details for the file ikdh-1.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: ikdh-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for ikdh-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a323ade1ef368b269cf1f166341d5dbf89f9d931cfd70360949558fe296a4399
MD5 84a63f0785e2a6e69e456007d55f9b9e
BLAKE2b-256 811973180e1fbc11a9b80e195cdf6c9d0509e6bf6ae662b25254f12da426e8d3

See more details on using hashes here.

Supported by

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