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.0.11.tar.gz (386.4 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.0.11-cp313-cp313-win_amd64.whl (263.3 kB view details)

Uploaded CPython 3.13Windows x86-64

ikdh-1.0.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (291.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ikdh-1.0.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (258.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

ikdh-1.0.11-cp313-cp313-macosx_11_0_arm64.whl (235.8 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ikdh-1.0.11-cp312-cp312-win_amd64.whl (263.2 kB view details)

Uploaded CPython 3.12Windows x86-64

ikdh-1.0.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (291.1 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ikdh-1.0.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (258.3 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

ikdh-1.0.11-cp312-cp312-macosx_11_0_arm64.whl (235.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ikdh-1.0.11-cp311-cp311-win_amd64.whl (262.9 kB view details)

Uploaded CPython 3.11Windows x86-64

ikdh-1.0.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (291.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ikdh-1.0.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (258.6 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

ikdh-1.0.11-cp311-cp311-macosx_11_0_arm64.whl (235.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

ikdh-1.0.11-cp310-cp310-win_amd64.whl (261.8 kB view details)

Uploaded CPython 3.10Windows x86-64

ikdh-1.0.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ikdh-1.0.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (257.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

ikdh-1.0.11-cp310-cp310-macosx_11_0_arm64.whl (234.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

ikdh-1.0.11-cp39-cp39-win_amd64.whl (261.9 kB view details)

Uploaded CPython 3.9Windows x86-64

ikdh-1.0.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (290.4 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

ikdh-1.0.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (257.8 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

ikdh-1.0.11-cp39-cp39-macosx_11_0_arm64.whl (234.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for ikdh-1.0.11.tar.gz
Algorithm Hash digest
SHA256 d874b36d363636677bd94b773ad4f9b07f2ad86f187ac74e6ad3ee5e4103ef04
MD5 d89b2a8bd6138f40e8ccb5f91dc86c0a
BLAKE2b-256 ddd31465b6395836eb6986106f4f52ea92245b6d8f0594c6f3c3d7499b7aea6e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.11-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 263.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ikdh-1.0.11-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0143ffcf6e94e68d99e2c27053b0894546590749c1895c4247d3e1f8bd8eb9ea
MD5 3b8ff67277b647a9165b43be5dae928c
BLAKE2b-256 76e2105245c119ff605eb912af34ff17d147cb6950850a873ec28efe67ce17b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8a31f5232eec4f3f2d29e4615bbcdb86a81012dd5c8da126790d9f9ee98f0504
MD5 1164e89deebf135cf4ca3f33b2a566ed
BLAKE2b-256 36b8ce073dbd658ac33f9054d17034db17560302a6f50fb6ead4481db75e195c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 14c414a3a75302d10b8c156b17cee67425b36c4978e51c05e93f6bc831b8701b
MD5 de89499c67efee3afa1d3ecd281ec257
BLAKE2b-256 0c55a4af8b8f27d0fe0c0ce69c1c8dca9100dad5ecbe6072ac1682aafaddd8df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3edd2ea1687cd702e6f4a42a426057ab67f9f4b5341dd8557eaa8c6a7c18aad6
MD5 eaee68e3dc669ba42dfc4fd5c266cc88
BLAKE2b-256 f783ca649fd2902f49c5598f84aa77bd8f5dec820e985392fadd08f2770087e7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.11-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 263.2 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ikdh-1.0.11-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9b7d9cd047704699eb7703c219c45215f2bf924e845f7512aa21b95f20c314ba
MD5 39e4541b3c756955be41a146eac377f5
BLAKE2b-256 98df57487d73b033d788bdd8d4ea95c5e2afb86129d5cdeaf7c167f195707f58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4e00b763410b20528856e9006de2cbfb5f9f8b585c2e26c5618adcc43052a7b4
MD5 1d79552f49fae66a294e899fe7190274
BLAKE2b-256 6ac61aa1d9ca9258d8523e81edb47a7a22c3b3fe0439bee931f4aeec7e65863d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ffb3e24964c87d2acff3df636a86c65c089ada74b83cf5481b33c27e6e88a808
MD5 fba585f3000942654524f3101e30a3a2
BLAKE2b-256 4518d5e1b5ecf0684665f5c335f897c74aa78bd2bb2dd2e70af138b9f5467cd4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a4aced75042b6a115dc30075bd6bd6aa83db66186ed01f10527ddc99b5e16cb
MD5 c0c5ff00330614f2d6d5440c2e27c20b
BLAKE2b-256 2e85d019d7b8b08d618f4e712f5c50e23a1265ebd94696d16b00dff88a05efbc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.11-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 262.9 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ikdh-1.0.11-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bb6f0b488ee86d963ebf46224832f9177b7373cc70b6499198779ac37417d455
MD5 8500bf2e0920ef37dfaf3a6fe7597911
BLAKE2b-256 9911ccd04fba131823dcf10445da3f0ed0e735ccb3e14b1b0b0ddb8bc0a6581f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 24ce9edefbaa44b8b89d600742fba2dafc3cfbba819ce1bb9125f7184e08e9f9
MD5 aabdf0e9204ac041e24472d42d184071
BLAKE2b-256 105412664f6b8f3b8eb2d774447876bd666dd687b14b3977d1357c92cdafed3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1ce74a8295b26291706055602df45b4bcd07e3cca5ccf596946f3f240f6b7728
MD5 d26228d0ee004fd05151b49ca06b43a4
BLAKE2b-256 71b08d2d7e08063149e55c6537314947946fdcfe11e4f3de15bf283036db06d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a6805c2c21b1685a2f2b0f414331ec5fe72efdefd6fd7439300363c1ed904f6b
MD5 b4f3e36686e70cb9db1fb72661987318
BLAKE2b-256 131a86fe76eb0d53d8187847a1fd25682baef584bb24e78d7c6b42feb13ce078

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.11-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 261.8 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ikdh-1.0.11-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d274d89cb7943e6c1691e726a9c45736b771dc2532b1951e14c1aa1e432c5585
MD5 84a111918acf3ba60c5f5bb9aee72c7c
BLAKE2b-256 f4579bc25f8877cc77595e23ee3caada6a76571263c4d93cc98a3a3cf7bdaa93

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ce3eb52f5fd79ac4ad7b2fe0b9f46cda88806434512d9bcbbec95bbcf051fd1c
MD5 23a5c4037d16453cd78b8da320c314ad
BLAKE2b-256 cbeb5f88e87a5ab0dcee028facd230763f9f9d5ca549a7a2a7b7e7b4f182eec5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ea2bb7e07a8689d69a85b7b3436932a082fe1a02dc96a91ed1b948d0d31d749b
MD5 c6ab871d92c5bfdca513b740ba302dbb
BLAKE2b-256 15e6fa303e31c26de584c051428f02116f3a8c0163a5e84919f1ccc024ec6924

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 93c1f53249b5c37d470ac8ca9bbf8d260595b37c1d85a99029e89cf67eb67bbf
MD5 7983055f566c5c3daedeec832d552ddd
BLAKE2b-256 879f4a7602cbd23fc50b363348d4090a392190a6ea9d08d297ea15229683bf85

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.11-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 261.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ikdh-1.0.11-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 99ac34383d6edff875a8853dffe993d92dde7c5d2a8300af29c0ccdec357115c
MD5 68178f7d0bc19a0fe099faa8ea820313
BLAKE2b-256 35c75642d3b3cf9f8d2eb6b6a6a3004b8f81b0f175a50ef6bf9fcefd96ebc091

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 441e9ed8db9c04ec0fb1dadb8fc5935b7880036c4ea112ee1e4054ce9ad4943c
MD5 2f259c24c78cbe4054868f88f37269fa
BLAKE2b-256 fa276b258d69990f87373d53a1a7f67ca236ae3e5dc3d58be171f3656ac80e3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 58b38db2dde4c93eb7b7845ed2b65107eca4345c95c8293acd03ee2231616e53
MD5 dc5de1af2d44854af0f181b781d0e55e
BLAKE2b-256 7714554588d8f868aaa45770527f320867b0512564fc72fbfc9b1c17fc7531d2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.11-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 234.5 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for ikdh-1.0.11-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04b946480f36c0fcd28a84f6deb2f1ce9ce83fb074b65247dc49ebf3dc4e25bb
MD5 158c5a80e118266b4d332c966c4d5fb0
BLAKE2b-256 923a320aeba9653510ed2abd2eaaed81ced686dc075c0043003cc270a4526f9a

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