diff --git a/examples/pybullet/examples/frictionCone.py b/examples/pybullet/examples/frictionCone.py new file mode 100644 index 000000000..88e4b966d --- /dev/null +++ b/examples/pybullet/examples/frictionCone.py @@ -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) \ No newline at end of file