810 lines
29 KiB
XML
810 lines
29 KiB
XML
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
|
|
||
|
|
<mujoco model="right_arm_eye_to_hand">
|
||
|
|
|
||
|
|
<!-- =========================================================
|
||
|
|
Compiler
|
||
|
|
========================================================= -->
|
||
|
|
<compiler angle="radian"
|
||
|
|
meshdir="meshes/"/>
|
||
|
|
|
||
|
|
<option timestep="0.001"
|
||
|
|
gravity="0 0 -9.81"
|
||
|
|
integrator="implicitfast"/>
|
||
|
|
|
||
|
|
<default>
|
||
|
|
<joint damping="10"
|
||
|
|
armature="0.001"/>
|
||
|
|
</default>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =========================================================
|
||
|
|
Visual
|
||
|
|
========================================================= -->
|
||
|
|
<visual>
|
||
|
|
<global offwidth="1280"
|
||
|
|
offheight="720"/>
|
||
|
|
|
||
|
|
<map znear="0.02"
|
||
|
|
zfar="5"/>
|
||
|
|
</visual>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =========================================================
|
||
|
|
Assets
|
||
|
|
========================================================= -->
|
||
|
|
<asset>
|
||
|
|
|
||
|
|
<!-- ================= Right arm meshes ================= -->
|
||
|
|
|
||
|
|
<mesh name="PELVIS_S"
|
||
|
|
file="PELVIS_S.STL"/>
|
||
|
|
|
||
|
|
<mesh name="R_SHOULDER_P_S"
|
||
|
|
file="R_SHOULDER_P_S.STL"/>
|
||
|
|
|
||
|
|
<mesh name="R_SHOULDER_R_S"
|
||
|
|
file="R_SHOULDER_R_S.STL"/>
|
||
|
|
|
||
|
|
<mesh name="R_SHOULDER_Y_S"
|
||
|
|
file="R_SHOULDER_Y_S.STL"/>
|
||
|
|
|
||
|
|
<mesh name="R_ELBOW_R_S"
|
||
|
|
file="R_ELBOW_R_S.STL"/>
|
||
|
|
|
||
|
|
<mesh name="R_WRIST_P_S"
|
||
|
|
file="R_WRIST_P_S.STL"/>
|
||
|
|
|
||
|
|
<mesh name="R_WRIST_Y_S"
|
||
|
|
file="R_WRIST_Y_S.STL"/>
|
||
|
|
|
||
|
|
<mesh name="R_WRIST_R_S"
|
||
|
|
file="R_WRIST_R_S.STL"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- ================= Skybox ================= -->
|
||
|
|
|
||
|
|
<texture name="skybox"
|
||
|
|
type="skybox"
|
||
|
|
builtin="gradient"
|
||
|
|
rgb1="0.4 0.6 0.8"
|
||
|
|
rgb2="0 0 0"
|
||
|
|
width="512"
|
||
|
|
height="512"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- ================= Floor ================= -->
|
||
|
|
|
||
|
|
<texture name="grid"
|
||
|
|
type="2d"
|
||
|
|
builtin="checker"
|
||
|
|
width="512"
|
||
|
|
height="512"
|
||
|
|
rgb1="0.2 0.3 0.4"
|
||
|
|
rgb2="0.1 0.2 0.3"
|
||
|
|
mark="cross"
|
||
|
|
markrgb="0.8 0.8 0.8"/>
|
||
|
|
|
||
|
|
<material name="grid_floor"
|
||
|
|
texture="grid"
|
||
|
|
texrepeat="5 5"
|
||
|
|
rgba="1 1 1 1"
|
||
|
|
emission="0.9"
|
||
|
|
specular="0.5"
|
||
|
|
shininess="1"
|
||
|
|
reflectance="0.3"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- ================= AprilTag =================
|
||
|
|
tag36h11 family
|
||
|
|
|
||
|
|
Hand Tag H:
|
||
|
|
ID = 0
|
||
|
|
texture = tag36_11.png
|
||
|
|
|
||
|
|
Screen Tag G:
|
||
|
|
ID = 1
|
||
|
|
texture = tag36_11_00001.png
|
||
|
|
|
||
|
|
Both texture planes are 37.5 mm x 37.5 mm. The PNG quiet zone
|
||
|
|
leaves a 30 mm x 30 mm detectable black tag region.
|
||
|
|
=========================================== -->
|
||
|
|
|
||
|
|
<!-- Hand Tag H : tag36h11 ID 0 -->
|
||
|
|
<texture name="hand_apriltag_tex"
|
||
|
|
type="2d"
|
||
|
|
file="../april_tag/tag36_11.png"/>
|
||
|
|
|
||
|
|
<!-- The +Z face is the visible face for external_touch_cam. -->
|
||
|
|
<material name="hand_apriltag_mat"
|
||
|
|
texture="hand_apriltag_tex"
|
||
|
|
texrepeat="1 1"
|
||
|
|
rgba="1 1 1 1"
|
||
|
|
emission="1"
|
||
|
|
specular="0"
|
||
|
|
shininess="0"
|
||
|
|
reflectance="0"/>
|
||
|
|
|
||
|
|
<!-- Screen Tag G : tag36h11 ID 1 -->
|
||
|
|
<texture name="screen_apriltag_tex"
|
||
|
|
type="2d"
|
||
|
|
file="../april_tag/tag36_11_00001.png"/>
|
||
|
|
|
||
|
|
<material name="screen_apriltag_mat"
|
||
|
|
texture="screen_apriltag_tex"
|
||
|
|
texrepeat="-1 -1"
|
||
|
|
rgba="1 1 1 1"
|
||
|
|
emission="1"
|
||
|
|
specular="0"
|
||
|
|
shininess="0"
|
||
|
|
reflectance="0"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- ================= Screen material ================= -->
|
||
|
|
|
||
|
|
<material name="screen_material"
|
||
|
|
rgba="0.04 0.05 0.06 1"
|
||
|
|
specular="0.25"
|
||
|
|
shininess="0.4"/>
|
||
|
|
|
||
|
|
<material name="screen_frame_material"
|
||
|
|
rgba="0.15 0.15 0.15 1"
|
||
|
|
specular="0.2"
|
||
|
|
shininess="0.3"/>
|
||
|
|
|
||
|
|
</asset>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =========================================================
|
||
|
|
World
|
||
|
|
========================================================= -->
|
||
|
|
|
||
|
|
<worldbody>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =====================================================
|
||
|
|
Ground
|
||
|
|
===================================================== -->
|
||
|
|
|
||
|
|
<geom name="floor"
|
||
|
|
type="plane"
|
||
|
|
pos="0 0 0"
|
||
|
|
size="0 0 0.05"
|
||
|
|
material="grid_floor"
|
||
|
|
condim="3"
|
||
|
|
friction="1 0.005 0.0001"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =====================================================
|
||
|
|
Robot support
|
||
|
|
===================================================== -->
|
||
|
|
|
||
|
|
<geom name="robot_stand_visual"
|
||
|
|
size="0.05 0.6"
|
||
|
|
pos="0 0 0.6"
|
||
|
|
type="cylinder"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="1"
|
||
|
|
density="0"
|
||
|
|
rgba="0.25 0.25 0.28 1"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =====================================================
|
||
|
|
Fixed touch screen
|
||
|
|
|
||
|
|
screen center:
|
||
|
|
world = [0, -1.05, 1.25]
|
||
|
|
|
||
|
|
screen size:
|
||
|
|
width = 500 mm
|
||
|
|
height = 300 mm
|
||
|
|
|
||
|
|
Front surface points toward +Y,
|
||
|
|
i.e. toward robot.
|
||
|
|
|
||
|
|
Screen plane for Eye-to-Hand:
|
||
|
|
approximately y = -1.045
|
||
|
|
|
||
|
|
normal toward robot:
|
||
|
|
n_world = [0, 1, 0]
|
||
|
|
===================================================== -->
|
||
|
|
|
||
|
|
<body name="touch_screen"
|
||
|
|
pos="0.62 -0.2 0.95"
|
||
|
|
euler="0 0.1 1.57">
|
||
|
|
|
||
|
|
<!-- Back/frame -->
|
||
|
|
<geom name="screen_frame"
|
||
|
|
type="box"
|
||
|
|
size="0.265 0.012 0.165"
|
||
|
|
material="screen_frame_material"
|
||
|
|
contype="1"
|
||
|
|
conaffinity="1"/>
|
||
|
|
|
||
|
|
<!-- Actual screen glass -->
|
||
|
|
<geom name="screen_surface"
|
||
|
|
type="box"
|
||
|
|
pos="0 0.013 0"
|
||
|
|
size="0.25 0.002 0.15"
|
||
|
|
material="screen_material"
|
||
|
|
contype="1"
|
||
|
|
conaffinity="1"
|
||
|
|
friction="0.5 0.005 0.0001"/>
|
||
|
|
|
||
|
|
<!--
|
||
|
|
Touch surface center.
|
||
|
|
|
||
|
|
This is the point that should be used later
|
||
|
|
when defining the screen plane.
|
||
|
|
-->
|
||
|
|
<site name="screen_center"
|
||
|
|
pos="0 0.015 0"
|
||
|
|
size="0.006"
|
||
|
|
rgba="1 0 0 1"/>
|
||
|
|
|
||
|
|
<!-- Four visual reference points -->
|
||
|
|
<site name="screen_top_left"
|
||
|
|
pos="-0.25 0.015 0.15"
|
||
|
|
size="0.004"
|
||
|
|
rgba="1 1 0 1"/>
|
||
|
|
|
||
|
|
<site name="screen_top_right"
|
||
|
|
pos="0.25 0.015 0.15"
|
||
|
|
size="0.004"
|
||
|
|
rgba="1 1 0 0"/>
|
||
|
|
|
||
|
|
<site name="screen_bottom_left"
|
||
|
|
pos="-0.25 0.015 -0.15"
|
||
|
|
size="0.004"
|
||
|
|
rgba="1 1 0 1"/>
|
||
|
|
|
||
|
|
<site name="screen_bottom_right"
|
||
|
|
pos="0.25 0.015 -0.15"
|
||
|
|
size="0.004"
|
||
|
|
rgba="1 1 0 1"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =================================================
|
||
|
|
Screen AprilTag G : tag36h11 ID 1
|
||
|
|
|
||
|
|
Screen local frame:
|
||
|
|
- screen plane axes are local X and Z
|
||
|
|
- screen front normal is local +Y
|
||
|
|
|
||
|
|
The screen front surface is at local y = 0.015 m.
|
||
|
|
The tag is placed at the upper-right corner and
|
||
|
|
lifted by 0.1 mm to avoid z-fighting.
|
||
|
|
|
||
|
|
Texture plane size:
|
||
|
|
37.5 mm x 37.5 mm
|
||
|
|
|
||
|
|
Detectable black tag size:
|
||
|
|
30 mm x 30 mm
|
||
|
|
================================================= -->
|
||
|
|
|
||
|
|
<body name="SCREEN_APRILTAG"
|
||
|
|
pos="0.235 0.0151 0.135"
|
||
|
|
euler="-1.57079632679 0 0">
|
||
|
|
|
||
|
|
<geom name="SCREEN_APRILTAG_GEOM"
|
||
|
|
type="box"
|
||
|
|
size="0.01875 0.01875 0.0001"
|
||
|
|
material="screen_apriltag_mat"
|
||
|
|
rgba="1 1 1 1"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="2"/>
|
||
|
|
|
||
|
|
<!-- Non-rendered Screen Tag center Ground Truth -->
|
||
|
|
<site name="SCREEN_APRILTAG_SITE"
|
||
|
|
pos="0 0 0"
|
||
|
|
size="0.002"
|
||
|
|
rgba="0 1 0 0"/>
|
||
|
|
|
||
|
|
</body>
|
||
|
|
|
||
|
|
</body>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =====================================================
|
||
|
|
Fixed external Eye-to-Hand camera
|
||
|
|
|
||
|
|
IMPORTANT:
|
||
|
|
- The camera is placed slightly to the left of the robot and
|
||
|
|
aimed at the screen center, like a human viewing from the
|
||
|
|
left-front side.
|
||
|
|
- Screen front normal is local +Y.
|
||
|
|
- MuJoCo camera looks along its local -Z.
|
||
|
|
|
||
|
|
The optical axis is deliberately yawed toward the screen
|
||
|
|
center instead of being exactly fronto-parallel. This keeps
|
||
|
|
the Hand Tag visible while the arm moves in front of the
|
||
|
|
screen.
|
||
|
|
===================================================== -->
|
||
|
|
|
||
|
|
<body name="external_camera_mount"
|
||
|
|
pos="0.7 -0.2 0.9"
|
||
|
|
euler="0 0.4 1.57">
|
||
|
|
|
||
|
|
<geom name="external_camera_body"
|
||
|
|
type="box"
|
||
|
|
pos="0.18 0.55 0"
|
||
|
|
size="0.025 0.035 0.018"
|
||
|
|
rgba="0.1 0.1 0.1 1"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"/>
|
||
|
|
|
||
|
|
<site name="external_touch_cam_site"
|
||
|
|
pos="0.18 0.55 0"
|
||
|
|
size="0.008"
|
||
|
|
rgba="1 0.2 0.2 1"/>
|
||
|
|
|
||
|
|
<camera name="external_touch_cam"
|
||
|
|
pos="0.18 0.55 0"
|
||
|
|
xyaxes="
|
||
|
|
-0.950 0.311 0
|
||
|
|
0 0 1
|
||
|
|
"
|
||
|
|
fovy="50"/>
|
||
|
|
|
||
|
|
</body>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =====================================================
|
||
|
|
Robot
|
||
|
|
===================================================== -->
|
||
|
|
|
||
|
|
<body name="PELVIS_S"
|
||
|
|
pos="0 0 1.2">
|
||
|
|
|
||
|
|
<!-- Pelvis visual -->
|
||
|
|
<geom pos="0 0 0"
|
||
|
|
quat="1 0 0 0"
|
||
|
|
type="mesh"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="1"
|
||
|
|
density="0"
|
||
|
|
rgba="0.698039 0.698039 0.698039 1"
|
||
|
|
mesh="PELVIS_S"/>
|
||
|
|
|
||
|
|
<!-- Pelvis collision -->
|
||
|
|
<geom pos="0 0 0"
|
||
|
|
quat="1 0 0 0"
|
||
|
|
type="mesh"
|
||
|
|
rgba="0.698039 0.698039 0.698039 1"
|
||
|
|
mesh="PELVIS_S"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =================================================
|
||
|
|
R_SHOULDER_P
|
||
|
|
================================================= -->
|
||
|
|
|
||
|
|
<body name="R_SHOULDER_P_S"
|
||
|
|
pos="0 -0.0945 0.042">
|
||
|
|
|
||
|
|
<inertial
|
||
|
|
pos="-0.00982259 -0.0704593 -1.1507e-06"
|
||
|
|
quat="0.706163 0.705933 0.0386962 0.0386741"
|
||
|
|
mass="0.880738"
|
||
|
|
diaginertia="0.000584874 0.000465648 0.000443849"/>
|
||
|
|
|
||
|
|
<joint name="R_SHOULDER_P"
|
||
|
|
pos="0 0 0"
|
||
|
|
axis="0 -1 0"
|
||
|
|
range="-3.14 3.14"
|
||
|
|
actuatorfrcrange="-120 120"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="1"
|
||
|
|
density="0"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_SHOULDER_P_S"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_SHOULDER_P_S"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- ===============================================
|
||
|
|
R_SHOULDER_R
|
||
|
|
=============================================== -->
|
||
|
|
|
||
|
|
<body name="R_SHOULDER_R_S"
|
||
|
|
pos="0.035 -0.0765 0">
|
||
|
|
|
||
|
|
<inertial
|
||
|
|
pos="-0.0346025 -0.0917393 1.86281e-08"
|
||
|
|
quat="0.609323 0.358823 -0.609303 0.358778"
|
||
|
|
mass="0.594788"
|
||
|
|
diaginertia="0.000414771 0.000407636 0.000294296"/>
|
||
|
|
|
||
|
|
<joint name="R_SHOULDER_R"
|
||
|
|
pos="0 0 0"
|
||
|
|
axis="1 0 0"
|
||
|
|
range="-0.78 1.57"
|
||
|
|
actuatorfrcrange="-120 120"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="1"
|
||
|
|
density="0"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_SHOULDER_R_S"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_SHOULDER_R_S"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =============================================
|
||
|
|
R_SHOULDER_Y
|
||
|
|
============================================= -->
|
||
|
|
|
||
|
|
<body name="R_SHOULDER_Y_S"
|
||
|
|
pos="-0.035 -0.1475 0">
|
||
|
|
|
||
|
|
<inertial
|
||
|
|
pos="-0.00440977 -0.086362 -7.58792e-09"
|
||
|
|
quat="0.705001 0.704998 0.054559 0.0545441"
|
||
|
|
mass="0.563406"
|
||
|
|
diaginertia="0.000329815 0.000297341 0.000211019"/>
|
||
|
|
|
||
|
|
<joint name="R_SHOULDER_Y"
|
||
|
|
pos="0 0 0"
|
||
|
|
axis="0 -1 0"
|
||
|
|
range="-3.14 3.14"
|
||
|
|
actuatorfrcrange="-80 80"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="1"
|
||
|
|
density="0"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_SHOULDER_Y_S"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_SHOULDER_Y_S"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- ===========================================
|
||
|
|
R_ELBOW_R
|
||
|
|
=========================================== -->
|
||
|
|
|
||
|
|
<body name="R_ELBOW_R_S"
|
||
|
|
pos="0.034 -0.1025 0">
|
||
|
|
|
||
|
|
<inertial
|
||
|
|
pos="-0.0335624 -0.06032 -2.97736e-07"
|
||
|
|
quat="0.674756 0.674714 -0.211333 -0.211667"
|
||
|
|
mass="0.393572"
|
||
|
|
diaginertia="0.000189078 0.000181042 0.000139034"/>
|
||
|
|
|
||
|
|
<joint name="R_ELBOW_R"
|
||
|
|
pos="0 0 0"
|
||
|
|
axis="1 0 0"
|
||
|
|
range="0 2.05"
|
||
|
|
actuatorfrcrange="-80 80"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="1"
|
||
|
|
density="0"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_ELBOW_R_S"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_ELBOW_R_S"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =========================================
|
||
|
|
R_WRIST_P
|
||
|
|
========================================= -->
|
||
|
|
|
||
|
|
<body name="R_WRIST_P_S"
|
||
|
|
pos="-0.034 -0.0965 0">
|
||
|
|
|
||
|
|
<inertial
|
||
|
|
pos="-1.39657e-10 -0.0675973 0.0192006"
|
||
|
|
quat="0.530481 0.467537 -0.467537 0.530481"
|
||
|
|
mass="0.442332"
|
||
|
|
diaginertia="0.000489142 0.000476754 9.72811e-05"/>
|
||
|
|
|
||
|
|
<joint name="R_WRIST_P"
|
||
|
|
pos="0 0 0"
|
||
|
|
axis="0 -1 0"
|
||
|
|
range="-3.14 3.14"
|
||
|
|
actuatorfrcrange="-50 50"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="1"
|
||
|
|
density="0"
|
||
|
|
rgba="0.647059 0.619608 0.588235 1"
|
||
|
|
mesh="R_WRIST_P_S"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
rgba="0.647059 0.619608 0.588235 1"
|
||
|
|
mesh="R_WRIST_P_S"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =======================================
|
||
|
|
R_WRIST_Y
|
||
|
|
======================================= -->
|
||
|
|
|
||
|
|
<body name="R_WRIST_Y_S"
|
||
|
|
pos="0 -0.1525 0.039">
|
||
|
|
|
||
|
|
<inertial
|
||
|
|
pos="-0.00464136 -5.06426e-10 -0.0341254"
|
||
|
|
quat="0.298107 0.641196 0.641196 0.298107"
|
||
|
|
mass="0.235738"
|
||
|
|
diaginertia="6.00636e-05 5.8497e-05 4.579e-05"/>
|
||
|
|
|
||
|
|
<joint name="R_WRIST_Y"
|
||
|
|
pos="0 0 0"
|
||
|
|
axis="0 0 1"
|
||
|
|
range="-0.78 0.78"
|
||
|
|
actuatorfrcrange="-50 50"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="1"
|
||
|
|
density="0"
|
||
|
|
rgba="0.647059 0.619608 0.588235 1"
|
||
|
|
mesh="R_WRIST_Y_S"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
rgba="0.647059 0.619608 0.588235 1"
|
||
|
|
mesh="R_WRIST_Y_S"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =====================================
|
||
|
|
R_WRIST_R / hand
|
||
|
|
===================================== -->
|
||
|
|
|
||
|
|
<body name="R_WRIST_R_S"
|
||
|
|
pos="0.03 0 -0.039">
|
||
|
|
|
||
|
|
<inertial
|
||
|
|
pos="-0.0201642 -0.11075 -0.00598955"
|
||
|
|
quat="0.483404 0.529786 -0.463203 0.520663"
|
||
|
|
mass="0.504366"
|
||
|
|
diaginertia="0.00027189 0.000186086 0.000130629"/>
|
||
|
|
|
||
|
|
<joint name="R_WRIST_R"
|
||
|
|
pos="0 0 0"
|
||
|
|
axis="1 0 0"
|
||
|
|
range="-0.26 1.57"
|
||
|
|
actuatorfrcrange="-50 50"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- ===============================
|
||
|
|
Wrist / hand mesh
|
||
|
|
=============================== -->
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="1"
|
||
|
|
density="0"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_WRIST_R_S"/>
|
||
|
|
|
||
|
|
<geom type="mesh"
|
||
|
|
rgba="0.890196 0.890196 0.913725 1"
|
||
|
|
mesh="R_WRIST_R_S"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =================================================
|
||
|
|
Robot TCP
|
||
|
|
|
||
|
|
Same location as original:
|
||
|
|
R_FINGER_TIP_FIXED
|
||
|
|
|
||
|
|
================================================= -->
|
||
|
|
|
||
|
|
<site name="R_FINGER_TIP_SITE"
|
||
|
|
pos="0.00684256 -0.284077 0.00801525"
|
||
|
|
size="0.006"
|
||
|
|
rgba="0 1 1 1"/>
|
||
|
|
|
||
|
|
<!-- Hand-mounted camera copied from dual_arm.xml. -->
|
||
|
|
<camera name="hand_cam"
|
||
|
|
pos="-0.01212 -0.17655 0.07506"
|
||
|
|
quat="3.17467e-11 -3.17467e-11 0.707107 0.707107"
|
||
|
|
fovy="60"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- fingertip visual -->
|
||
|
|
<geom name="R_FINGER_TIP_VISUAL"
|
||
|
|
type="sphere"
|
||
|
|
size="0.004"
|
||
|
|
pos="0.00684256 -0.284077 0.00801525"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
rgba="0 1 1 1"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- fingertip collision
|
||
|
|
for later physical screen contact
|
||
|
|
-->
|
||
|
|
<geom name="R_FINGER_TIP_COLLISION"
|
||
|
|
type="sphere"
|
||
|
|
size="0.004"
|
||
|
|
pos="0.00684256 -0.284077 0.00801525"
|
||
|
|
contype="1"
|
||
|
|
conaffinity="1"
|
||
|
|
rgba="0 1 1 0.25"/>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =================================================
|
||
|
|
Hand AprilTag H : tag36h11 ID 0
|
||
|
|
3 cm AprilTag mounted on BACK OF HAND
|
||
|
|
|
||
|
|
Texture plane full width:
|
||
|
|
0.0375 m
|
||
|
|
|
||
|
|
Detectable black tag width:
|
||
|
|
0.030 m
|
||
|
|
|
||
|
|
MuJoCo box size is HALF-size:
|
||
|
|
0.01875 x 0.01875
|
||
|
|
|
||
|
|
thickness:
|
||
|
|
0.0006 m
|
||
|
|
|
||
|
|
half thickness:
|
||
|
|
0.0003
|
||
|
|
|
||
|
|
It is fixed rigidly to R_WRIST_R_S.
|
||
|
|
|
||
|
|
Current position is on upper/back side of hand,
|
||
|
|
slightly downstream from wrist camera area.
|
||
|
|
|
||
|
|
The tag front surface normal is local +Z.
|
||
|
|
================================================= -->
|
||
|
|
|
||
|
|
<body name="R_HAND_APRILTAG"
|
||
|
|
pos="0.00684256 -0.254077 0.00801525"
|
||
|
|
euler="-1.57079632679 0 0">
|
||
|
|
|
||
|
|
<geom name="R_HAND_APRILTAG_GEOM"
|
||
|
|
type="box"
|
||
|
|
size="0.01875 0.01875 0.0003"
|
||
|
|
material="hand_apriltag_mat"
|
||
|
|
rgba="1 1 1 1"
|
||
|
|
contype="0"
|
||
|
|
conaffinity="0"
|
||
|
|
group="2"/>
|
||
|
|
|
||
|
|
<!-- Non-rendered Hand Tag center Ground Truth -->
|
||
|
|
<site name="R_HAND_APRILTAG_SITE"
|
||
|
|
pos="0 0 0"
|
||
|
|
size="0.002"
|
||
|
|
rgba="1 0 1 0"/>
|
||
|
|
|
||
|
|
</body>
|
||
|
|
|
||
|
|
|
||
|
|
</body>
|
||
|
|
</body>
|
||
|
|
</body>
|
||
|
|
</body>
|
||
|
|
</body>
|
||
|
|
</body>
|
||
|
|
</body>
|
||
|
|
</body>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =====================================================
|
||
|
|
Lighting
|
||
|
|
===================================================== -->
|
||
|
|
|
||
|
|
<light name="top_light"
|
||
|
|
mode="fixed"
|
||
|
|
directional="true"
|
||
|
|
diffuse="0.7 0.7 0.7"
|
||
|
|
specular="0.3 0.3 0.3"
|
||
|
|
pos="0 0 3"
|
||
|
|
dir="0 0 -1"/>
|
||
|
|
|
||
|
|
<!-- Add some front lighting for AprilTag -->
|
||
|
|
<light name="front_light"
|
||
|
|
mode="fixed"
|
||
|
|
directional="false"
|
||
|
|
diffuse="0.5 0.5 0.5"
|
||
|
|
specular="0.1 0.1 0.1"
|
||
|
|
pos="0.4 -0.5 2.0"
|
||
|
|
dir="-0.3 -0.5 -0.4"/>
|
||
|
|
|
||
|
|
</worldbody>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =========================================================
|
||
|
|
Actuators
|
||
|
|
Keep original RIGHT ARM actuator names.
|
||
|
|
|
||
|
|
This is important because existing:
|
||
|
|
mujoco_motors
|
||
|
|
mujoco_right_arm
|
||
|
|
|
||
|
|
uses these right-arm joints.
|
||
|
|
========================================================= -->
|
||
|
|
|
||
|
|
<actuator>
|
||
|
|
|
||
|
|
<position name="R_SHOULDER_P_pos"
|
||
|
|
joint="R_SHOULDER_P"
|
||
|
|
kp="2000"
|
||
|
|
ctrlrange="-3.14 3.14"/>
|
||
|
|
|
||
|
|
<position name="R_SHOULDER_R_pos"
|
||
|
|
joint="R_SHOULDER_R"
|
||
|
|
kp="2000"
|
||
|
|
ctrlrange="-0.78 1.57"/>
|
||
|
|
|
||
|
|
<position name="R_SHOULDER_Y_pos"
|
||
|
|
joint="R_SHOULDER_Y"
|
||
|
|
kp="2000"
|
||
|
|
ctrlrange="-3.14 3.14"/>
|
||
|
|
|
||
|
|
<position name="R_ELBOW_R_pos"
|
||
|
|
joint="R_ELBOW_R"
|
||
|
|
kp="1500"
|
||
|
|
ctrlrange="0 2.05"/>
|
||
|
|
|
||
|
|
<position name="R_WRIST_P_pos"
|
||
|
|
joint="R_WRIST_P"
|
||
|
|
kp="800"
|
||
|
|
ctrlrange="-3.14 3.14"/>
|
||
|
|
|
||
|
|
<position name="R_WRIST_Y_pos"
|
||
|
|
joint="R_WRIST_Y"
|
||
|
|
kp="800"
|
||
|
|
ctrlrange="-0.78 0.78"/>
|
||
|
|
|
||
|
|
<position name="R_WRIST_R_pos"
|
||
|
|
joint="R_WRIST_R"
|
||
|
|
kp="800"
|
||
|
|
ctrlrange="-0.26 1.57"/>
|
||
|
|
|
||
|
|
</actuator>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- =========================================================
|
||
|
|
Optional initial pose
|
||
|
|
|
||
|
|
This pose keeps the right arm roughly facing the screen.
|
||
|
|
We can adjust this later after actually running Viewer.
|
||
|
|
|
||
|
|
========================================================= -->
|
||
|
|
|
||
|
|
<keyframe>
|
||
|
|
|
||
|
|
<key name="home"
|
||
|
|
qpos="
|
||
|
|
0
|
||
|
|
0
|
||
|
|
0
|
||
|
|
0
|
||
|
|
0
|
||
|
|
0
|
||
|
|
0
|
||
|
|
"/>
|
||
|
|
|
||
|
|
</keyframe>
|
||
|
|
|
||
|
|
|
||
|
|
</mujoco>
|