Skip to content

[Model] MinimumDiscretePlanarInverseKinematics #994

@zhangjieqingithub

Description

@zhangjieqingithub

Motivation

Adds a robotics-facing optimization problem that connects naturally to the existing QUBO hub via a concrete sampled-angle formulation.

Definition

Name: MinimumDiscretePlanarInverseKinematics
Reference: Hadi Salloum, Sergei Savin, Yaroslav Kholodov, Gleb Ryzhakov, Mirko Farina, and Ivan Oseledets, "Quantum annealing for inverse kinematics in robotics", Scientific Reports 16(1):4244, 2025, https://doi.org/10.1038/s41598-025-34346-z

Given:

  • positive link lengths l_1, ..., l_n,
  • a target point g = (g_x, g_y) in R^2,
  • for each link j, a finite set of candidate absolute orientations Phi_j = {phi_{j,0}, ..., phi_{j,m_j-1}},
  • for each j = 2, ..., n, an admissible pair set A_j contained in {0, ..., m_{j-1}-1} x {0, ..., m_j-1},

choose indices a_j in {0, ..., m_j-1} such that (a_{j-1}, a_j) in A_j for every j = 2, ..., n, minimizing

|| sum_{j=1}^n l_j (cos(phi_{j,a_j}), sin(phi_{j,a_j})) - g ||_2^2.

The pair sets A_j encode local joint-feasibility between consecutive links; for example, they can enforce joint limits on the relative angle phi_{j,a_j} - phi_{j-1,a_{j-1}}.

Variables

  • Count: n, one variable per link
  • Per-variable domain: x_j in {0, ..., m_j-1}
  • Meaning: x_j = a means link j uses sampled absolute orientation phi_{j,a}

Schema (data type)

Type name: MinimumDiscretePlanarInverseKinematics
Variants: none initially

Field Type Description
link_lengths list of positive reals the link lengths l_1, ..., l_n
target_point pair of reals the target point g = (g_x, g_y)
orientation_samples list of angle lists the sampled absolute orientations Phi_j for each link
allowed_pairs list of pair sets the admissible pair sets A_j for j = 2, ..., n

Complexity

  • Best known exact algorithm: O(prod_{j=1}^n m_j) by exhaustive enumeration over all sampled orientation choices; with uniform sample count m, this is O(m^n)
  • References: definition/discretization style from Salloum et al. (2025), https://doi.org/10.1038/s41598-025-34346-z ; broader IK optimization context from Hongkai Dai, Gregory Izatt, and Russ Tedrake, "Global inverse kinematics via mixed-integer convex optimization", International Journal of Robotics Research 38(12-13):1420-1441, 2019, https://doi.org/10.1177/0278364919846512

Extra Remark

Using absolute link orientations instead of local joint angles is deliberate: after one-hot lifting, the workspace position becomes linear in the binary selector variables, which makes the companion QUBO reduction genuinely quadratic.

Reduction Rule Crossref

How to solve

Example Instance

Take:

  • link_lengths = [2, 1]
  • target_point = (2, 1)
  • orientation_samples = [[0, pi/2], [0, pi/2]]
  • allowed_pairs = [{(0,0), (0,1), (1,1)}]

So the second link may either keep the first link's orientation or turn counterclockwise by pi/2.

Expected Outcome

An optimal configuration is:

  • x = [0, 1]

This means:

  • link 1 uses angle 0,
  • link 2 uses angle pi/2.

The resulting end-effector position is
(2 cos 0, 2 sin 0) + (cos(pi/2), sin(pi/2)) = (2, 0) + (0, 1) = (2, 1),

so the optimal objective value is 0.

BibTeX

@article{Salloum2025IKQUBO,
  title={Quantum annealing for inverse kinematics in robotics},
  author={Salloum, Hadi and Savin, Sergei and Kholodov, Yaroslav and Ryzhakov, Gleb and Farina, Mirko and Oseledets, Ivan},
  journal={Scientific Reports},
  volume={16},
  number={1},
  pages={4244},
  year={2025},
  doi={10.1038/s41598-025-34346-z},
  url={https://doi.org/10.1038/s41598-025-34346-z}
}

@article{DaiIzattTedrake2019GlobalIK,
  title={Global inverse kinematics via mixed-integer convex optimization},
  author={Dai, Hongkai and Izatt, Gregory and Tedrake, Russ},
  journal={The International Journal of Robotics Research},
  volume={38},
  number={12-13},
  pages={1420--1441},
  year={2019},
  doi={10.1177/0278364919846512},
  url={https://doi.org/10.1177/0278364919846512}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    GoodAn issue passed all checks.modelA model problem to be implemented.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions