Objects snapping into equilibrium position
Posted: Tue Oct 12, 2021 6:54 pm
The "Hello Bullet World!" example from the Quickstart Guide with the R2D2 URDF runs fine. Changing that to the "objects/mug.urdf" file and keeping the default orientation at first seems to have no impact. However, if the initial orientation of the mug is changed, then it will snap back into the default orientation as if it was being pulled by a magnet (see https://pasteboard.co/CzVYGdu9w6jr.gif; I use the mouse to move slightly the mug; the rest is the Bullet's doing). So far I haven't found any explanation for this in the documentation or the forums. Why does this happen, and how can I disable it?
Here is the code I'm using
Here is the code I'm using
Code: Select all
import pybullet as p
import pybullet_data
physicsClient = p.connect(p.GUI) # or p.DIRECT for non-graphical version
p.setAdditionalSearchPath(pybullet_data.getDataPath()) #optionally
p.setGravity(0,0,-10)
planeId = p.loadURDF("plane.urdf")
startPos = [0,0,1]
startOrientation = [1, 0, 0, 0] # p.getQuaternionFromEuler([0,0,0])
boxId = p.loadURDF("objects/mug.urdf",startPos, startOrientation)
#set the center of mass frame (loadURDF sets base link frame) startPos/Orn
p.resetBasePositionAndOrientation(boxId, startPos, startOrientation)
logID = p.startStateLogging(p.STATE_LOGGING_VIDEO_MP4, "snapping.mp4")
for i in range (2000):
p.stepSimulation()
time.sleep(1./240.)
p.stopStateLogging(logID)
cubePos, cubeOrn = p.getBasePositionAndOrientation(boxId)
print(cubePos,cubeOrn)
p.disconnect()