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.12.tar.gz (386.9 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.12-cp313-cp313-win_amd64.whl (272.9 kB view details)

Uploaded CPython 3.13Windows x86-64

ikdh-1.0.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (310.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

ikdh-1.0.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (268.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

ikdh-1.0.12-cp313-cp313-macosx_11_0_arm64.whl (245.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

ikdh-1.0.12-cp312-cp312-win_amd64.whl (272.8 kB view details)

Uploaded CPython 3.12Windows x86-64

ikdh-1.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (310.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

ikdh-1.0.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (268.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

ikdh-1.0.12-cp312-cp312-macosx_11_0_arm64.whl (245.3 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

ikdh-1.0.12-cp311-cp311-win_amd64.whl (272.4 kB view details)

Uploaded CPython 3.11Windows x86-64

ikdh-1.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (311.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

ikdh-1.0.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (268.3 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

ikdh-1.0.12-cp311-cp311-macosx_11_0_arm64.whl (245.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

ikdh-1.0.12-cp310-cp310-win_amd64.whl (271.4 kB view details)

Uploaded CPython 3.10Windows x86-64

ikdh-1.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (309.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

ikdh-1.0.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (266.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

ikdh-1.0.12-cp310-cp310-macosx_11_0_arm64.whl (244.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

ikdh-1.0.12-cp39-cp39-win_amd64.whl (271.5 kB view details)

Uploaded CPython 3.9Windows x86-64

ikdh-1.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (309.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

ikdh-1.0.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (267.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

ikdh-1.0.12-cp39-cp39-macosx_11_0_arm64.whl (244.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: ikdh-1.0.12.tar.gz
  • Upload date:
  • Size: 386.9 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.12.tar.gz
Algorithm Hash digest
SHA256 69127e46bcf9993fb4b38714ec275da74db1be2a34fd0d5bcdf5373b62739d20
MD5 147ea2aa9e9a2dcaf49244513b8d40a0
BLAKE2b-256 8138f68d7f6f6cd1c43ea004e4cf9c80efe5583220ffa36b90bd2e1e166c2483

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.12-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 272.9 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.12-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d89555545cb37679896fed76059ede3431ddabfc67227e6838ae993685543599
MD5 5aabef2330aea24566b39b046cdafe28
BLAKE2b-256 f941c55f154d8156da08c920a025a6dda5237ede5196bb940b3ffbc124426f6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 51bb9e4de6d7b747f70819a1169328cfe3bcab2049ae965d606be51e8cddfc24
MD5 a0df1eb67b87df79aed1aa7858b9f582
BLAKE2b-256 3312ab27bc6b5602644658b7fc3ed27e1e4a044d317cfb426d4adb1934dc4dde

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd12fbfb39f3ca8a7afb37c4091322b2f377055af755dc6bf8315b21bfa0fa5c
MD5 559912669fbfb498890dd5a4a67ae934
BLAKE2b-256 552ecd2cd24684bd3b29a9a85a5e9579cf9d53c60df014428caf286541dc09ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 55986db9f0fd8d3e800566ff9db6ca734e5be6782a7c24a2036aa783f7f23a86
MD5 9ba840a297ea1b61ce765f509dd4969d
BLAKE2b-256 38c4583a09257efe790dd24b01beffa1978b622c540e2672baa71e5864956905

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.12-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 272.8 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.12-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1782532e342fd9f4bffe06b1bf9a12ac66f2d3563a80ec49d8c0e0c1eb39ab50
MD5 3a1419691b0e38f305b16fef6e9f00e1
BLAKE2b-256 becc0b9d5debbb3ef9ad247e321745ccb4e87e212aba6d56ae128bd874071936

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d405033eca3639b582fa28a8ddf6c5b2d2ec5030e0d7d5c3bf4aea0aa184093f
MD5 aa43c5ee35be1b38f3fcdfcd34ee7929
BLAKE2b-256 82f38653c57219fa8c3a110f20289ed3a24bcb2479414b50325a6220f9bb5848

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0b5000071ec4a7965ff070e955abfe504f7ab1acef5e49e1b6c01c6169ac9d8b
MD5 8ffda28ec6f135229fd2955a683df7dc
BLAKE2b-256 0a759e93c9b9e4ebe41ea572ac0dcefa13203e7aa0e6f255259f03e1054e9e9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8c648186c5dd8b8f1ababe169a84a41e97c9c314de9beba51f726fd4a625aff0
MD5 178883225a764f3b26ca73715b22a01c
BLAKE2b-256 c795f1022cb004604473ac67b57fcb6e2946f64b0d1faceb50a363095b9b743f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.12-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 272.4 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.12-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 927f3c170c22bbfb36b837d14f8df31fbf8914a06349e4b799d5b08abaa2f704
MD5 defccb01081c92cd3bb933ca9de3e4a1
BLAKE2b-256 c8c9b7bff370b88e344c72099a5b1cb5d1b19fb41a7daf00a43886c2e6794316

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 789537468aed404855ffa82a6aad56ffdc4c754501aab6db577dbd1183097f69
MD5 82f423892096c4017d08351745ed1f0d
BLAKE2b-256 62917d028e82a44164205f697f6015ac330320de0e9bfdc741e7e0b3fc656486

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9a2868cdd780fe38eee07db9f5086af737b94b34c70505d33d5e7f00bc4ab84b
MD5 c30d2b854f085f4d37d96b71f02e5e8b
BLAKE2b-256 8d6f2445aa328d3a931303e17445cffba8e408813f9eb43620e1b775a7ed28ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e76b6d24f625e2e85101d6fea2d6a01b26d607bdc4bde953e0005a04879a2262
MD5 041294b88a12f1e07681f1574d10ed25
BLAKE2b-256 0729b0939dbc1b32cedf62a37a842f721198cdbbd8e22d7bf66c836092b97f1f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.12-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 271.4 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.12-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bfacc2ed9fcd8e28cf0db62756bf30c01d2d561e052bb963fcf7083a2038c58e
MD5 5bc1e3443e99a8a8f2a0692213645927
BLAKE2b-256 05d6ef2a01a28f44b9ba7f57a5edcc97624ae3fdd9e832367431c2c9d88d2346

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b6da58909968d6f77945a007eb5f8b6938fa5c63f56446486d1fa46d1cba3a6e
MD5 bf89fb530c190b7b03c336b04114fa9c
BLAKE2b-256 521728e4699835aa80371725d00f3ba9bc98cb97fd70b5a157e7375a852f6636

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ae64d5af78760020df7d9b5df8232bfcbd3e900fa0cc3f345aeef712239163a9
MD5 7fa80866ada032dd8d4e98ab8554153f
BLAKE2b-256 5f92ebb6cc21a78bff55a48e0ec5c5377b4cc450c74dbfb7f382a980453c3b46

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e09e04dbb94384ddf748d582f571c4b003e5bfce0278447cc58c118b675104e3
MD5 bae2dc5737ba4ae5e3138bdf97aaa76e
BLAKE2b-256 790bf4ca033bb242c1f82dff4f982404292cb22c1d631a89d217dab4f4c01e21

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.12-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 271.5 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.12-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 35276120764bb32270c4ffcc7e66928bea63493c212cd077d9cda89a6df08af9
MD5 c30eed6efa53f79a0d85b2e5f4c41415
BLAKE2b-256 28dee5d90e16db7c4f074f3f8977b407da8bf714897a2d21a36c488fb11b74cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f5dc36bf2eb544df87252bf9eaf44361ffe0e290d4ccac6677daa924854b215e
MD5 e43923288a3d819da3be1907affb1fc7
BLAKE2b-256 03e80a1ca5d41607ca8209a177ef85a6ac0e60b4a42264fc71d03dc2647fcc66

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ikdh-1.0.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 798314301c87287d4bde3f2b8c79a722495ba165c112d274a88463ed5702728d
MD5 b422ca73a21d279493d6cb11293769f1
BLAKE2b-256 1019f13c932fff400e38da9951467c09311a2b9729e10c04f9aa51146eaa76ae

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ikdh-1.0.12-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 244.3 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.12-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8250229ec3b28e41af1222d5cdcea51836dd37a2299488bcca50c1b8c976fb0c
MD5 27ff7c32eeefbc0c0af709475ccdd4d8
BLAKE2b-256 814d15d41c9ea9ee5b42508c8b3673a358d1fc425e177d1221512427e20e9dae

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