2
\$\begingroup\$

I am trying to create a balancing board using Unity Physics. Below are the steps that I followed to achieve my result and I got unexpected Unity Physics.

  1. Balancing-bar and base are connected through a sphere and sphere is having a fixed joint with balancing-bar and I freeze y,z rotation and all the positions of the sphere and base's all position and rotation are fixed.

  2. Balancing-bar is having a rigid body with Mass, Drag and Angular Drag 5,1,5 respectively and rotation on y and z are Freeze. Balancing bar is connected to the sphere using Hinge Joint. below I attached an Image for understanding.

enter image description here

I created a video for understanding.

Video Link

Problems:
1. When I throw an object a bit above from my balancing-board then it that side of bar automatically pulls down.

enter image description here
(Both objects is having the same mass=1 and both are 4 Meter far from the pivot point and on "Let's check" button I just turn off board's isKinematic)

  1. When I do the same before Unlocking the isKinematic it works perfectly well.

enter image description here

I am just blank here what to do next or where I did the mistake, any help is appreciated.

\$\endgroup\$
3
\$\begingroup\$

To create a weighing balance that will return to the original position, the horizontal beam must be positioned below the axis of rotation. Read more here.

In your case, the center of mass for the boxes plus the beam is above the rotational axis. The net force will not help move the beam toward the original position, as a weighing balance does.

I see at least two ways of fixing this. One way is to change your seesaw construction into a weighing balance, with the boxes hanging down below the beam. Another way would be to shift the center of mass for the boxes below the beam. In a unity script, do something like this:

rigidbody.centerOfMass = Vector3 (0, -2, 0);

You might need to shift the CM more or less depending on your setup. I've added a GIF showing a that the shifted center of mass approach works (using p2.js physics engine). The small circles at the bottom are the center of mass positions for the boxes.

enter image description here

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ Thanks man, from your two suggestion I am not able to implement the first one because I am implementing a see-saw(teeter-totter) here. I tried your second solution but it seems there is no change in output (I think your solution is correct). Meanwhile, I think the real see-saw have the same result. because when the first person seats on see-saw make it lean towards to him/her and when the 2nd person seats with the same mass and distance do not make any change in see-saw and to apply any change 2nd person need to apply some force downwards. I don't know if my thinking is correct or not \$\endgroup\$ – Kartik Shah Jul 19 '18 at 6:30
  • 1
    \$\begingroup\$ Ok. I think you are right, a real-world see-saw would probably not go back to the horizontal position either, even if you use it with someone of the exact same weight... In any case, I managed to create the second solution in a 2D physics engine and it seems to work! See my update to the answer. \$\endgroup\$ – schteppe Jul 19 '18 at 11:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.