Hinges put themselves over +90 degree while self-correcting for a singular limit

Dominik Janiec shared this bug 2 years ago
Reported

Glossary


  • singular limit: when Hing's both Lower and Upper Limits are set to the same value, e.g. 0 degree
  • self-correcting: when Hing's current angle is over its specified limits, that Hinge will rotate automatically to be within that - it needs to get power and be Toggled on.

Reproduce steps

  1. Have a Hinge with Braking torque set to the same value as its Torque - thus when turn off, it will keep its angle, but it still can move when needed and powered.
  2. Put it in any angle greater than -85 degree, and set any non-zero Velocity, then Toggle it off.
  3. Set a singular limit at an angle which is smaller than: current - 5 deg, e.g. -90 degree.
  4. Power on that Hinge and observe how it tries to "turn itself right side out".

Here are two examples of this bug. Background Hinge shows the desired position defined by the singular-limit of visible Hinge, and then observed results after foreground is Toggled on. There are two cases with positive and negative Velocity to show that it is not dependent on its value.

e4393e6e201c6e74e9cb7d68895becb18fc12f5ff8a27e63ef94c861b80afbf1aa5d342215972fd55cc25f1e36023395


6a84987724d0d859401f1c591cc724e5e812d8b891fa134f010e46f156c6a90ed53a59157763cf62518eb071c0d8ef15

Notes

  • This broken behavior always happens when the singular limit is in the negative direction of movement from the current angle of Hinge.
  • When the singular limit is in the positive direction, a Hinge self-corrects rightly regardless of its sign of Velocity - e.g. angle is -90 degree and limits at -45 degree; or angle is 6 degree and limits at 90 degree.
  • In case of setting the singular limit within less than 5 degree from the current angle of Hinge (regardless of direction or Velocity), that Hinge will automatically "snap" itself into expected position (even thought it still Toggled off).

I've also prepared a test world to check that behavior, and blueprint of example grid:

One can wonder why I need to set that singular-limit on my Hinges. Well, I'm designing a self-collapsing mining arm, which should wind up itself into its sleeve. Thus, I've come up with the idea that I can use Timer blocks to narrow the limits of my Hinges to 0 degree, which should make my arm to straighten up and allow Pistons to easily retract it. But now, to execute that trick, I need to use additional Sensors to put Hinges at negative angle, so it will not break itself with this bug.


I would not need any of that, if those mechanical blocks could be set to specific position values from Timer blocks, i.e. features implemented from topics:

Replies (1)

photo
1

Hello, Dominik,

thanks for letting us know and for the world where this can be tested and the issue observed.

I did put it into our internal system.

Kind Regards

Keen Software House: QA Department

Leave a Comment
 
Attach a file