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

[BUG] DART IK problem instances don’t have same bounds as robot #179

Open
ell0ry opened this issue Mar 19, 2021 · 1 comment
Open

[BUG] DART IK problem instances don’t have same bounds as robot #179

ell0ry opened this issue Mar 19, 2021 · 1 comment
Assignees
Labels
bug Something isn't working

Comments

@ell0ry
Copy link
Collaborator

ell0ry commented Mar 19, 2021

Expected Behavior

When asking robowflex::darts::TSR for a solution, one is provided that both satisfies the underlying TSR constraint and the allowed bounds for the robot.

Current Behavior

Sometimes, a collision satisfying configuration is provided that doesn’t obey the robot’s bounds. This is due to the associated DART IK module’s (robowflex::darts::TSR::ik_) problem not having the correct bounds set. Currently, they are all set to (-infinity, infinity).

Possible Solution

When setting up the robowflex::darts::TSR for a given state space, look for the associated robot and manually set the bounds. This involves getting the robot object, getting the associated joint bounds, and setting them correctly

@ell0ry ell0ry added the bug Something isn't working label Mar 19, 2021
@ell0ry ell0ry self-assigned this Mar 19, 2021
@ell0ry
Copy link
Collaborator Author

ell0ry commented Mar 19, 2021

Attempted to solve this by getting the problem instance and setting the bounds prior to using robowflex::darts::TSR::ik_->getProblem()->setLowerBounds() and robowflex::darts::TSR::ik_->getProblem()->setUpperBounds(). This didn’t actually seem to work as solutions were still provided with invalid joint values.

Looking into the source code for dart::dynamics::InverseKinematics, whenever we call anything that solves the IK instance, the problem bounds are reset here. The bounds are set to those from the skeleton of the body node associated with the IK module.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant