You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
Original report (archived issue) by Michael Grey (Bitbucket: mxgrey, GitHub: mxgrey).
Calling
Joint::SetPosition(0, angle)
will set the joint position incorrectly on aHingeJoint
for some ranges ofangle
, and the outcome varies between physics engines. Gazebo7 does not supportJoint::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, ifangle
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.The text was updated successfully, but these errors were encountered: