-
Notifications
You must be signed in to change notification settings - Fork 22
Description
Would you be interested in some python bindings if I wrote them?
Things I've tried so far and why I'm tempted to bind this library
My current use-case is for robot arm teleop for recording episodes for training models, so nothing ground-breaking (I did some playing around on a branch over at huggingface/lerobot@main...alsuren:lerobot:teleop a while back, but mostly exploratory and not super coherent).
The current options for ik in python seem to be:
moveit/moveit2 - quite big, and tied into the ROS/ROS2 ecosystem. Quite painful to get working on macos.
https://github.com/Phylliade/ikpy - allowed me to make a good start, but the terminology mismatch with URDF is a bit jarring, and the types that mypy/pylance infers are a bit confusing (from memory).
https://github.com/UM-ARM-Lab/pytorch_kinematics - allows you to set initial position and will give you answers that don't quite converge if you need (useful because the SO-100 arm is not able to reach all positions/orientations). Feels like it's really designed for putting in the training loop in simulations or something, because everything is vectorised and the "i only have one robot and I want to control it in real-time" API is slightly less obvious as a result.
I stumbled across this library when searching crates.io. It seems to handle URDF well, and I expect it to have reasonable types that will result in an easy-to-follow python api.
My vague plan is to set things up with maturin and publish some wheels to pypi using some bogus crate name (alsuren-openrr-k-py or something) or just use it as a path/git dependency. If this works well then I can send you a PR and you can pick a better pypi project name to publish under.
Does this sound like a valuable thing?