Skip to content
This repository was archived by the owner on Feb 3, 2025. It is now read-only.

Joint::SetPosition does not set the position correctly for some position ranges on HingeJoint #2430

Closed
osrf-migration opened this issue Feb 22, 2018 · 2 comments
Labels
7 Gazebo 7 bug Something isn't working major

Comments

@osrf-migration
Copy link

Original report (archived issue) by Michael Grey (Bitbucket: mxgrey, GitHub: mxgrey).


Calling Joint::SetPosition(0, angle) will set the joint position incorrectly on a HingeJoint for some ranges of angle, and the outcome varies between physics engines. Gazebo7 does not support Joint::SetPosition(~) at all for DART or Simbody, so I will disregard those in this issue.

In ODE, if angle is outside the range [-pi, pi], then the resulting position will be wrapped into that range. In Bullet, if angle is outside the range [-pi, pi] and it is too far from the current joint angle (~0.3 radians), then the position will be wrapped into [-pi, pi].

In a few minutes, I'll be creating a pull request that fixes these issues for Gazebo7 and introduces a regression test for them. This issue is being posted for posterity, and so that we have an Issue to reference for this.

@osrf-migration
Copy link
Author

Original comment by Michael Grey (Bitbucket: mxgrey, GitHub: mxgrey).


See Pull Request #2892

@osrf-migration
Copy link
Author

Original comment by Steve Peters (Bitbucket: Steven Peters, GitHub: scpeters).


  • changed state from "new" to "resolved"

pull request #2892

@osrf-migration osrf-migration added major bug Something isn't working 7 Gazebo 7 labels Apr 20, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
7 Gazebo 7 bug Something isn't working major
Projects
None yet
Development

No branches or pull requests

1 participant