bullet3/examples/pybullet/gym/pybullet_examples/sceneAabb.py
2021-04-05 19:50:46 -07:00

43 lines
847 B
Python

import pybullet as p
import time
import numpy as np
import pybullet_data
p.connect(p.GUI)
p.setAdditionalSearchPath(pybullet_data.getDataPath())
p.loadURDF("plane.urdf")
p.loadURDF("sphere2.urdf",[0,0,2])
dt = 1./240.
p.setTimeStep(dt)
def getSceneAABB():
aabbMins=[]
aabbMaxs=[]
for i in range(p.getNumBodies()):
uid = p.getBodyUniqueId(i)
aabb = p.getAABB(uid)
aabbMins.append(np.array(aabb[0]))
aabbMaxs.append(np.array(aabb[1]))
if len(aabbMins):
sceneAABBMin = aabbMins[0]
sceneAABBMax = aabbMaxs[0]
for aabb in aabbMins:
sceneAABBMin = np.minimum(sceneAABBMin,aabb)
for aabb in aabbMaxs:
sceneAABBMax = np.maximum(sceneAABBMax,aabb)
print("sceneAABBMin=",sceneAABBMin)
print("sceneAABBMax=",sceneAABBMax)
getSceneAABB()
while (1):
p.stepSimulation()
time.sleep(dt)