This repository contains the code from "HJCD-IK: GPU-Accelerated Inverse Kinematics through Batched Hybrid Jacobian Coordinate Descent"
- NVIDIA GPU + CUDA Toolkit 12.x
- Python ≥ 3.9
- CMake ≥ 3.23
- Visual Studio 2022 (Windows) or GCC/Clang (Linux)
git clone https://github.com/A2R-Lab/HJCD-IK.git
cd HJCD-IKHJCD-IK relies on GRiD, a GPU-accelerated library for rigid body dynamics and analytical gradients.
(Mac/Linux)
chmod +x scripts/bootstrap.sh
./scripts/bootstrap.sh(Windows)
.\scripts\bootstrap_windows.batYou can install hjcdik with pip on Python ≥ 3.9:
python -m pip install -e .To run IK benchmarks, use:
python benchmarks/ik_benchmark.py --skip-grid-codegenwhich performs IK using the Panda Arm with batches of 1, 10, 100, 1000, 2000. Results are written to a results.yml.
--num-targets <int>- How many target poses to sample. Default:
100
- How many target poses to sample. Default:
--batches "<list>"- Batch sizes to test (comma or space separated). Default:
"1,10,100,1000,2000"
- Batch sizes to test (comma or space separated). Default:
--num-solutions <int>- How many IK solutions to return per call. Default:
1
- How many IK solutions to return per call. Default:
--yaml-out <path>- Output result file. Default:
results.yml
- Output result file. Default:
--urdf <path>- URDF path used if running GRiD codegen. Default:
include/test_urdf/panda.urdf
- URDF path used if running GRiD codegen. Default:
--skip-grid-codegen- Skips creating GRiD header file and immediately runs benchmarks. Default: off
--seed <int>- Seed for target sampling. Default:
0
- Seed for target sampling. Default:
- Custom batches/targets/solutions, out file name:
python benchmarks/ik_benchmark.py \
--batches "1,32,256,2048" \
--num-targets 250 \
--num-solutions 4 \
--yaml-out results.yml \
--skip-grid-codegen- To generate a new GRiD header on a different robot, run:
python benchmarks/ik_benchmark.py --urdf include/test_urdf/fetch.urdfHJCD-IK and GRiD currently only support robots using revolute, prismatic, and fixed joints without any closed kinematics loops.
Please cite HCJD-IK if you found this work useful:
@article{yasutake2025hjcd,
title={HJCD-IK: GPU-Accelerated Inverse Kinematics through Batched Hybrid Jacobian Coordinate Descent},
author={Yasutake, Cael and Kingston, Zachary and Plancher, Brian},
journal={arXiv preprint arXiv:2510.07514},
year={2025}
}