pybullet_envs.deep_mimic: use getLinkStates for faster 'getReward'
pybullet_envs.deep_mimic: add profile timers for each thread to optimize training
This commit is contained in:
@@ -12,6 +12,7 @@ from pybullet_envs.deep_mimic.learning.rl_world import RLWorld
|
||||
from pybullet_utils.logger import Logger
|
||||
from pybullet_envs.deep_mimic.testrl import update_world, update_timestep, build_world
|
||||
import pybullet_utils.mpi_util as MPIUtil
|
||||
from mpi4py import MPI
|
||||
|
||||
args = []
|
||||
world = None
|
||||
@@ -20,9 +21,15 @@ world = None
|
||||
def run():
|
||||
global update_timestep
|
||||
global world
|
||||
|
||||
rank = MPI.COMM_WORLD.Get_rank()
|
||||
name = "timings"+str(rank)+".json"
|
||||
slot = world.env._pybullet_client.startStateLogging(world.env._pybullet_client.STATE_LOGGING_PROFILE_TIMINGS,name)
|
||||
count=1000
|
||||
done = False
|
||||
while not (done):
|
||||
count-=1
|
||||
if (count<0):
|
||||
world.env._pybullet_client.stopStateLogging(slot)
|
||||
update_world(world, update_timestep)
|
||||
|
||||
return
|
||||
|
||||
@@ -822,6 +822,9 @@ class HumanoidStablePD(object):
|
||||
jointIndices = range(num_joints)
|
||||
simJointStates = self._pybullet_client.getJointStatesMultiDof(self._sim_model, jointIndices)
|
||||
kinJointStates = self._pybullet_client.getJointStatesMultiDof(self._kin_model, jointIndices)
|
||||
if useArray:
|
||||
linkStatesSim = self._pybullet_client.getLinkStates(self._sim_model, jointIndices)
|
||||
linkStatesKin = self._pybullet_client.getLinkStates(self._kin_model, jointIndices)
|
||||
for j in range(num_joints):
|
||||
curr_pose_err = 0
|
||||
curr_vel_err = 0
|
||||
@@ -859,10 +862,15 @@ class HumanoidStablePD(object):
|
||||
vel_err += w * curr_vel_err
|
||||
|
||||
is_end_eff = j in self._end_effectors
|
||||
|
||||
if is_end_eff:
|
||||
|
||||
linkStateSim = self._pybullet_client.getLinkState(self._sim_model, j)
|
||||
linkStateKin = self._pybullet_client.getLinkState(self._kin_model, j)
|
||||
if useArray:
|
||||
linkStateSim = linkStatesSim[j]
|
||||
linkStateKin = linkStatesKin[j]
|
||||
else:
|
||||
linkStateSim = self._pybullet_client.getLinkState(self._sim_model, j)
|
||||
linkStateKin = self._pybullet_client.getLinkState(self._kin_model, j)
|
||||
linkPosSim = linkStateSim[0]
|
||||
linkPosKin = linkStateKin[0]
|
||||
linkPosDiff = [
|
||||
|
||||
Reference in New Issue
Block a user