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

Unexpected behavior when using passive joints in closed-loop kinematic chains #235

Closed
huemerj opened this issue Sep 14, 2023 · 2 comments
Closed

Comments

@huemerj
Copy link
Contributor

huemerj commented Sep 14, 2023

Probably related to #219, I experienced problems using passive joints when updating from 0.4.3 to 0.4.4 on humble.
More specifically, I simulate an actively controlled hydraulic cylinder acting on a passive joint in a closed-loop kinematic chain, which I need to get the state from.
As in #219, the passive joint is now fixed, even if it should be moving.

I narrowed down the problem to this part of the code, introduced in #177:

} else {
// Fallback case is a velocity command of zero
this->dataPtr->sim_joints_[j]->SetVelocity(0, 0.0);
}

@huemerj huemerj changed the title Unexpected behavior when using passive joints Unexpected behavior when using passive joints in closed-loop kinematic chains Sep 14, 2023
@destogl
Copy link
Member

destogl commented Sep 20, 2023

Thanks for reporting the issue. The issue is that we don't filter the passive joints. I propose to add a new map or vector with flags is joint is passive or not, and if it is passive, then we don't set the velocity here. A good place to fill this vector is after all interfaces are parsed on the line 296. A passive joints can be detected that there a no command interfaces, but only state interfaces.

@christophfroehlich
Copy link
Contributor

fixed with #237

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

3 participants