Skip to content

python bindings? #147

@alsuren

Description

@alsuren

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions