Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Library/executable with inverse kinematics for multiple robot types. #220

Open
de-vri-es opened this issue Oct 14, 2015 · 0 comments
Open

Comments

@de-vri-es
Copy link
Contributor

The current API for inverse kinematics prevents linking a library or executable with more than one type of inverse kinematics. The only way to choose is by defining UR5_PARAMS or UR10_PARAMS, but the kinematic functions end up with the same name so linking both together is impossible.

I would propose to fix this by adding a second overload for each of the kinematics functions accepting an additional parameter containing the kinematic parameters of the robot.

The behaviour of the original function not accepting such a struct can remain unchanged, so that defining UR5_PARAMS or UR10_PARAMS effectively sets the default robot type used when no kinematic parameter struct is given. This way, anything that works now will continue to work the same way.

I believe this can be done without decreasing performance of at least the original kinematics functions, but this should be verified with measurements.

In addition we could define kinematic functions for each of the supported robot types (for example ur_kinematics::inverse5(...)) for easy access and possibly slightly improved performance over the generic functions that accept a kinematic parameters struct (again, should be measured).

I would like to implement these changes and perform measurements, but before starting on them I'd like to know if such changes would be welcome :)

Also, I would like to base this on #218, but that should already be useful on it's own.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant