robopal.demos.demo_grasping 源代码
import numpy as np
from robopal.envs import RobotEnv
from robopal.robots.diana_med import DianaGrasp
[文档]
class GraspingEnv(RobotEnv):
def __init__(self,
robot=DianaGrasp,
render_mode='human',
control_freq=20,
enable_camera_viewer=False,
controller='CARTIK',
is_interpolate=False,
):
super().__init__(
robot=robot,
render_mode=render_mode,
control_freq=control_freq,
enable_camera_viewer=enable_camera_viewer,
controller=controller,
is_interpolate=is_interpolate,
)
if __name__ == "__main__":
env = GraspingEnv()
env.reset()
action = env.get_body_pos('green_block') - np.array([0.0, 0.0, 0.32])
for t in range(int(100)):
env.mj_data.actuator('0_gripper_l_finger_joint').ctrl[0] = 0.03
env.mj_data.actuator('0_gripper_r_finger_joint').ctrl[0] = 0.03
env.step(np.concatenate([action, np.array([1, 0, 0, 0])]))
for t in range(int(100)):
env.mj_data.actuator('0_gripper_l_finger_joint').ctrl[0] = -0.02
env.mj_data.actuator('0_gripper_r_finger_joint').ctrl[0] = -0.02
env.step(np.concatenate([action, np.array([1, 0, 0, 0])]))
action += np.array([0.0, 0.0, 0.32])
for t in range(int(1e5)):
env.mj_data.actuator('0_gripper_l_finger_joint').ctrl[0] = -0.02
env.mj_data.actuator('0_gripper_r_finger_joint').ctrl[0] = -0.02
env.step(np.concatenate([action, np.array([1, 0, 0, 0])]))
env.close()