diff --git a/MUJOCO_LOG.TXT b/MUJOCO_LOG.TXT new file mode 100644 index 0000000..330f128 --- /dev/null +++ b/MUJOCO_LOG.TXT @@ -0,0 +1,3 @@ +Mon Nov 1 15:55:46 2021 +ERROR: Could not open activation key file mjkey.txt + diff --git a/README.md b/README.md index 5276af6..72590a3 100644 --- a/README.md +++ b/README.md @@ -1 +1,4 @@ -# unitree_mujoco \ No newline at end of file +# Introduction +[MuJoCo](https://mujoco.org/) stands for Multi-Joint dynamics with Contact. It is a physics engine for simulation and has been open source. To relise more details, see these repositories: [MuJoCo](https://github.com/deepmind/mujoco) and [MuJuCo-py](https://github.com/openai/mujoco-py). + +In this repo, some mujoco example scripts and the xml files of different Unitree robots are provided. diff --git a/data/a1/meshes/calf.stl b/data/a1/meshes/calf.stl new file mode 100644 index 0000000..2040968 Binary files /dev/null and b/data/a1/meshes/calf.stl differ diff --git a/data/a1/meshes/hip.stl b/data/a1/meshes/hip.stl new file mode 100644 index 0000000..5187033 Binary files /dev/null and b/data/a1/meshes/hip.stl differ diff --git a/data/a1/meshes/thigh.stl b/data/a1/meshes/thigh.stl new file mode 100644 index 0000000..9a7b00e Binary files /dev/null and b/data/a1/meshes/thigh.stl differ diff --git a/data/a1/meshes/thigh_mirror.stl b/data/a1/meshes/thigh_mirror.stl new file mode 100644 index 0000000..ce9e43e Binary files /dev/null and b/data/a1/meshes/thigh_mirror.stl differ diff --git a/data/a1/meshes/trunk.stl b/data/a1/meshes/trunk.stl new file mode 100644 index 0000000..d433933 Binary files /dev/null and b/data/a1/meshes/trunk.stl differ diff --git a/data/a1/urdf/a1.urdf b/data/a1/urdf/a1.urdf new file mode 100644 index 0000000..1b5bf3c --- /dev/null +++ b/data/a1/urdf/a1.urdf @@ -0,0 +1,719 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + diff --git a/data/a1/urdf/a1.xml b/data/a1/urdf/a1.xml new file mode 100644 index 0000000..2963f6b --- /dev/null +++ b/data/a1/urdf/a1.xml @@ -0,0 +1,139 @@ + + + diff --git a/data/aliengo/meshes/calf.stl b/data/aliengo/meshes/calf.stl new file mode 100644 index 0000000..8af5b2f Binary files /dev/null and b/data/aliengo/meshes/calf.stl differ diff --git a/data/aliengo/meshes/hip.stl b/data/aliengo/meshes/hip.stl new file mode 100644 index 0000000..59383c4 Binary files /dev/null and b/data/aliengo/meshes/hip.stl differ diff --git a/data/aliengo/meshes/thigh.stl b/data/aliengo/meshes/thigh.stl new file mode 100644 index 0000000..1d0469d Binary files /dev/null and b/data/aliengo/meshes/thigh.stl differ diff --git a/data/aliengo/meshes/thigh_mirror.stl b/data/aliengo/meshes/thigh_mirror.stl new file mode 100644 index 0000000..fbfc5e3 Binary files /dev/null and b/data/aliengo/meshes/thigh_mirror.stl differ diff --git a/data/aliengo/meshes/trunk.stl b/data/aliengo/meshes/trunk.stl new file mode 100644 index 0000000..ee2732b Binary files /dev/null and b/data/aliengo/meshes/trunk.stl differ diff --git a/data/aliengo/urdf/aliengo.urdf b/data/aliengo/urdf/aliengo.urdf new file mode 100644 index 0000000..dc11a7a --- /dev/null +++ b/data/aliengo/urdf/aliengo.urdf @@ -0,0 +1,718 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + transmission_interface/SimpleTransmission + + hardware_interface/EffortJointInterface + + + hardware_interface/EffortJointInterface + 1 + + + + + diff --git a/data/laikago/meshes/calf.stl b/data/laikago/meshes/calf.stl new file mode 100644 index 0000000..1db8fa3 Binary files /dev/null and b/data/laikago/meshes/calf.stl differ diff --git a/data/laikago/meshes/hip.stl b/data/laikago/meshes/hip.stl new file mode 100644 index 0000000..1621dcd Binary files /dev/null and b/data/laikago/meshes/hip.stl differ diff --git a/data/laikago/meshes/thigh.stl b/data/laikago/meshes/thigh.stl new file mode 100644 index 0000000..f827016 Binary files /dev/null and b/data/laikago/meshes/thigh.stl differ diff --git a/data/laikago/meshes/thigh_mirror.stl b/data/laikago/meshes/thigh_mirror.stl new file mode 100644 index 0000000..0fd133f Binary files /dev/null and b/data/laikago/meshes/thigh_mirror.stl differ diff --git a/data/laikago/meshes/trunk.stl b/data/laikago/meshes/trunk.stl new file mode 100644 index 0000000..6626045 Binary files /dev/null and b/data/laikago/meshes/trunk.stl differ diff --git a/data/laikago/urdf/laikago.urdf b/data/laikago/urdf/laikago.urdf new file mode 100644 index 0000000..e2b9c4b --- /dev/null +++ b/data/laikago/urdf/laikago.urdf @@ -0,0 +1,393 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mujoco_py_test.py b/mujoco_py_test.py new file mode 100644 index 0000000..af1c78f --- /dev/null +++ b/mujoco_py_test.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +""" +Shows how to toss a capsule to a container. +""" +from re import T +from mujoco_py import load_model_from_path, MjSim, MjViewer +import os +import math +import keyboard + +model = load_model_from_path("/home/bobzhu/Unitree/Mujoco/unitree_mujoco_git/unitree_mujoco/data/a1/urdf/a1.xml") +sim = MjSim(model) + +viewer = MjViewer(sim) + +sim_state = sim.get_state() + +i = 0 +if_increase = True + +desired_speed = [0.0] * 12 +desired_pos = [0.0] * 12 +Kp_vel= 7.0 +Ki_vel = 0.8 + +Kp_pos= 10.0 + +q_vel_former = [0.0] * 12 + +speed_command = [0.0] * 12 +speed_error = [0.0] * 12 +speed_error_former = [0.0] * 12 + +angle_error = [0.0] * 12 + + +k = 0 +increase = True +while True: + + #sim.set_state(sim_state) + + # if k > 50: + # increase = False + # elif k < -50: + # increase = True + + # if increase: + # k+=1 + # else: + # k-=1 + + # # print(desired_pos) + # for i in range(12): + # desired_pos[i] = 0.0 + + # q_pos_meas = sim.data.get_joint_qpos(sim.model.joint_names[i]) + + # angle_error[i] = desired_pos[i] - q_pos_meas + + # if angle_error[i] < - math.pi: + # angle_error[i] = 2 * math.pi + angle_error[i] + # elif angle_error[i] >= math.pi: + # angle_error[i] = angle_error[i] - 2 * math.pi + + # desired_speed[i] = Kp_pos * angle_error[i] + + # q_vel_meas = sim.data.get_joint_qvel(sim.model.joint_names[i]) + # #print(sim.data.get_joint_qvel(sim.model.joint_names[0])) + + # speed_error[i] = desired_speed[i] - q_vel_meas + # speed_command[i] += Kp_vel * (speed_error[i] - speed_error_former[i]) + Ki_vel * speed_error[i] + # speed_error_former[i] = speed_error[i] + + # if speed_command[i] > 33.5: + # speed_command[i] = 33.5 + # elif speed_command[i] < -33.5: + # speed_command[i] = -33.5 + + # sim.data.ctrl[i] = speed_command[i] + + #sim.data.ctrl[:] = k / 10 + + #print(joint_name, sim.data.get_joint_qpos(joint_name), sim.data.get_joint_qvel(joint_name)) + sim.step() + viewer.render() + #print(" ") + + if os.getenv('TESTING') is not None: + break