HJCD-IK#
Hybrid Jacobian Coordinate Descent Inverse Kinematics — a GPU-accelerated, batched inverse kinematics solver that generates many candidate solutions in parallel for a 6-DOF end-effector target, with optional collision avoidance. Each call solves one target: coarse search uses one block per candidate, then Levenberg–Marquardt refinement uses one warp per candidate.
Built on GRiD (robot kinematics codegen) and GLASS (single-block / warp-scoped CUDA linear algebra).
Paper: arXiv:2510.07514 (IROS 2026). Project page: a2r-lab.org/HJCD-IK.
Install the extension and run your first batched IK solve.
The three-phase algorithm: coordinate-descent init, Jacobian polish, collision filter.
Runnable examples, benchmark results vs. cuRobo / PyRoki / IKFlow, and how to reproduce.
Generate kinematics for a new URDF / end-effector frame.
The Python API and the Doxygen-generated C++/CUDA reference.
Contributing, the codegen/build discipline, and how to edit these docs.
Quick start#
from hjcdik import generate_solutions, sample_targets, num_joints
target = sample_targets(num_targets=1, seed=0)[0] # [x, y, z, qw, qx, qy, qz]
out = generate_solutions(target, batch_size=2000, num_solutions=4)
print(out["count"], "candidates")
if out["count"]:
print("best position error (mm):", out["pos_errors"].min())
print("best orientation error (rad):", out["ori_errors"].min())