in roboschool/gym_urdf_robot_env.py [0:0]
def reset(self):
if self.scene is None:
self.scene = self.create_single_player_scene()
if not self.scene.multiplayer:
self.scene.episode_restart()
pose = cpp_household.Pose()
#import time
#t1 = time.time()
self.urdf = self.scene.cpp_world.load_urdf(
os.path.join(os.path.dirname(__file__), "models_robot", self.model_urdf),
pose,
self.fixed_base,
self.self_collision)
#t2 = time.time()
#print("URDF load %0.2fms" % ((t2-t1)*1000))
self.ordered_joints = []
self.jdict = {}
self.parts = {}
self.frame = 0
self.done = 0
self.reward = 0
dump = 0
r = self.urdf
self.cpp_robot = r
if dump: print("ROBOT '%s'" % r.root_part.name)
if r.root_part.name==self.robot_name:
self.robot_body = r.root_part
for part in r.parts:
if dump: print("\tPART '%s'" % part.name)
self.parts[part.name] = part
if part.name==self.robot_name:
self.robot_body = part
for j in r.joints:
if dump: print("\tALL JOINTS '%s' limits = %+0.2f..%+0.2f effort=%0.3f speed=%0.3f" % ((j.name,) + j.limits()) )
if j.name[:6]=="ignore":
j.set_motor_torque(0)
continue
j.power_coef, j.max_velocity = j.limits()[2:4]
self.ordered_joints.append(j)
self.jdict[j.name] = j
#print("ordered_joints", len(self.ordered_joints))
self.robot_specific_reset()
self.cpp_robot.query_position()
s = self.calc_state() # optimization: calc_state() can calculate something in self.* for calc_potential() to use
self.potential = self.calc_potential()
self.camera = self.scene.cpp_world.new_camera_free_float(self.VIDEO_W, self.VIDEO_H, "video_camera")
return s