friction cone test
This commit is contained in:
45
examples/pybullet/examples/frictionCone.py
Normal file
45
examples/pybullet/examples/frictionCone.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import pybullet as p
|
||||
import time
|
||||
import math
|
||||
|
||||
p.connect(p.GUI)
|
||||
useMaximalCoordinates = False
|
||||
|
||||
p.setGravity(0,0,-10)
|
||||
plane=p.loadURDF("plane.urdf",[0,0,-1],useMaximalCoordinates=useMaximalCoordinates)
|
||||
|
||||
p.setRealTimeSimulation(0)
|
||||
|
||||
|
||||
velocity = 1
|
||||
num = 40
|
||||
p.configureDebugVisualizer(p.COV_ENABLE_GUI,0)
|
||||
p.configureDebugVisualizer(p.COV_ENABLE_RENDERING,1)#disable this to make it faster
|
||||
p.configureDebugVisualizer(p.COV_ENABLE_TINY_RENDERER,0)
|
||||
|
||||
for i in range (num):
|
||||
print("progress:",i,num)
|
||||
|
||||
x = velocity*math.sin(2.*3.1415*float(i)/num)
|
||||
y = velocity*math.cos(2.*3.1415*float(i)/num)
|
||||
print("velocity=",x,y)
|
||||
sphere=p.loadURDF("sphere_small_zeroinertia.urdf", flags=p.URDF_USE_INERTIA_FROM_FILE, useMaximalCoordinates=useMaximalCoordinates)
|
||||
p.changeDynamics(sphere,-1,lateralFriction=0.02)
|
||||
#p.changeDynamics(sphere,-1,rollingFriction=10)
|
||||
p.changeDynamics(sphere,-1,linearDamping=0)
|
||||
p.changeDynamics(sphere,-1,angularDamping=0)
|
||||
p.resetBaseVelocity(sphere,linearVelocity=[x,y,0])
|
||||
|
||||
prevPos = [0,0,0]
|
||||
for i in range (2048):
|
||||
p.stepSimulation()
|
||||
pos = p.getBasePositionAndOrientation(sphere)[0]
|
||||
if (i&64):
|
||||
p.addUserDebugLine(prevPos,pos,[1,0,0],1)
|
||||
prevPos = pos
|
||||
|
||||
p.configureDebugVisualizer(p.COV_ENABLE_RENDERING,1)
|
||||
|
||||
|
||||
while (1):
|
||||
time.sleep(0.01)
|
||||
Reference in New Issue
Block a user