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

    modelA model problem to be implemented.

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions