EMOTIONAI / Stride_bot-main /src /pybullet_debugger.py
Nausad's picture
Upload 16 files
a01b303 verified
import pybullet as p
import time
import numpy as np
import sys
class pybulletDebug:
def __init__(self):
#Camera paramers to be able to yaw pitch and zoom the camera (Focus remains on the robot)
self.cyaw=90
self.cpitch=-7
self.cdist=0.30
time.sleep(0.5)
self.xId = p.addUserDebugParameter("x" , -0.02 , 0.02 , 0.)
self.yId = p.addUserDebugParameter("y" , -0.02 , 0.02 , 0.)
self.zId = p.addUserDebugParameter("z" , -0.02 , 0.02 , 0.)
self.rollId = p.addUserDebugParameter("roll" , -np.pi/4 , np.pi/4 , 0.)
self.pitchId = p.addUserDebugParameter("pitch" , -np.pi/4 , np.pi/4 , 0.)
self.yawId = p.addUserDebugParameter("yaw" , -np.pi/4 , np.pi/4 , 0.)
self.LId = p.addUserDebugParameter("L" , -0.50 , 1 , 0.)
self.LrotId = p.addUserDebugParameter("Lrot" , -1.50 , 1.50 , 0.)
self.angleId = p.addUserDebugParameter("angleWalk" , -180. , 180. , 0.)
self.periodId = p.addUserDebugParameter("stepPeriod" , 0.1 , 3. , 1.0)
self.step_dur_asym = p.addUserDebugParameter("step_dur_asym" , -2 , 2. , 0.0)
self.trotId = p.addUserDebugParameter("TROT" , 1 , 0 , 1)
self.boundId = p.addUserDebugParameter("BOUND" , 1 , 0 , 1)
def cam_and_robotstates(self , boxId):
#orientation of camara
cubePos, cubeOrn = p.getBasePositionAndOrientation(boxId)
p.resetDebugVisualizerCamera( cameraDistance=self.cdist, cameraYaw=self.cyaw, cameraPitch=self.cpitch, cameraTargetPosition=cubePos)
keys = p.getKeyboardEvents()
#Keys to change camera
if keys.get(104): #H
self.cyaw+=1
if keys.get(102): #F
self.cyaw-=1
if keys.get(116): #T
self.cpitch+=1
if keys.get(103): #G
self.cpitch-=1
if keys.get(122): #Z
self.cdist+=0.01
if keys.get(120): #X
self.cdist-=0.01
if keys.get(27): #ESC
p.disconnect()
time.sleep(2)
# sys.exit()
#read position from debug
pos = np.array([p.readUserDebugParameter(self.xId),p.readUserDebugParameter(self.yId), p.readUserDebugParameter(self.zId)])
orn = np.array([p.readUserDebugParameter(self.rollId),p.readUserDebugParameter(self.pitchId), p.readUserDebugParameter(self.yawId)])
L = p.readUserDebugParameter(self.LId)
Lrot = p.readUserDebugParameter(self.LrotId)
angle = p.readUserDebugParameter(self.angleId)
T = p.readUserDebugParameter(self.periodId)
trot=p.readUserDebugParameter(self.trotId)
bound=p.readUserDebugParameter(self.boundId)
if trot==1:
offset=[0.5, 0., 0., 0.5]
elif bound==1:
offset=[0.5, 0.5, 0., 0.]
else:
offset=[0.5, 0., 0., 0.5]
return pos , orn , L , angle , Lrot , T , p.readUserDebugParameter(self.step_dur_asym), offset