add segmask_linkindex.py example using p.getCameraImage(320,200,flags=p.ER_SEGMENTATION_MASK_OBJECT_AND_LINKINDEX)
to extract object unique id and link index from segmentation mask in getCameraImage
This commit is contained in:
@@ -9,21 +9,22 @@ for i in range (10):
|
||||
p.setGravity(0,0,-10)
|
||||
|
||||
|
||||
for i in range (500):
|
||||
p.stepSimulation()
|
||||
#for i in range (500):
|
||||
# p.stepSimulation()
|
||||
|
||||
|
||||
|
||||
saveState = 1
|
||||
|
||||
if saveState:
|
||||
for i in range (500):
|
||||
p.stepSimulation()
|
||||
p.saveBullet("state.bullet")
|
||||
else:
|
||||
p.restoreState(fileName="state.bullet")
|
||||
|
||||
for i in range (10):
|
||||
print("pos[",i,"]=",p.getBasePositionAndOrientation(i))
|
||||
|
||||
#saveState = 0
|
||||
|
||||
#if saveState:
|
||||
# for i in range (500):
|
||||
# p.stepSimulation()
|
||||
# p.saveBullet("state.bullet")
|
||||
#else:
|
||||
# p.restoreState(fileName="state.bullet")
|
||||
|
||||
|
||||
|
||||
while (p.getConnectionInfo()["isConnected"]):
|
||||
time.sleep(1)
|
||||
42
examples/pybullet/examples/segmask_linkindex.py
Normal file
42
examples/pybullet/examples/segmask_linkindex.py
Normal file
@@ -0,0 +1,42 @@
|
||||
import pybullet as p
|
||||
p.connect(p.GUI)
|
||||
r2d2 = p.loadURDF("r2d2.urdf",[0,0,1])
|
||||
for l in range (p.getNumJoints(r2d2)):
|
||||
print(p.getJointInfo(r2d2,l))
|
||||
|
||||
p.loadURDF("r2d2.urdf",[2,0,1])
|
||||
p.loadURDF("r2d2.urdf",[4,0,1])
|
||||
|
||||
p.getCameraImage(320,200,flags=p.ER_SEGMENTATION_MASK_OBJECT_AND_LINKINDEX)
|
||||
segLinkIndex=1
|
||||
verbose = 0
|
||||
|
||||
while (1):
|
||||
keys = p.getKeyboardEvents()
|
||||
#for k in keys:
|
||||
# print("key=",k,"state=", keys[k])
|
||||
if ord('1') in keys:
|
||||
state = keys[ord('1')]
|
||||
if (state & p.KEY_WAS_RELEASED):
|
||||
verbose = 1-verbose
|
||||
if ord('s') in keys:
|
||||
state = keys[ord('s')]
|
||||
if (state & p.KEY_WAS_RELEASED):
|
||||
segLinkIndex = 1-segLinkIndex
|
||||
#print("segLinkIndex=",segLinkIndex)
|
||||
flags = 0
|
||||
if (segLinkIndex):
|
||||
flags=p.ER_SEGMENTATION_MASK_OBJECT_AND_LINKINDEX
|
||||
|
||||
img = p.getCameraImage(320,200,flags=flags)
|
||||
#print(img[0],img[1])
|
||||
seg=img[4]
|
||||
if (verbose):
|
||||
for pixel in seg:
|
||||
if (pixel>=0):
|
||||
obUid = pixel & ((1<<24)-1)
|
||||
linkIndex = (pixel >> 24)-1
|
||||
print("obUid=",obUid,"linkIndex=",linkIndex)
|
||||
|
||||
|
||||
p.stepSimulation()
|
||||
Reference in New Issue
Block a user