diff --git a/public/urdf/g1/g1_body29_hand14.urdf b/public/urdf/g1/g1_body29_hand14.urdf index 798dbe59b43b2c4c54f0857406eb440ad40f09af..156a5fd524b08ae54b0123f589f9f0948dc5f4c7 100644 --- a/public/urdf/g1/g1_body29_hand14.urdf +++ b/public/urdf/g1/g1_body29_hand14.urdf @@ -1,1476 +1,1476 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/urdf/g1/meshes/head_link.stl b/public/urdf/g1/meshes/head_link.STL similarity index 100% rename from public/urdf/g1/meshes/head_link.stl rename to public/urdf/g1/meshes/head_link.STL diff --git a/public/urdf/g1/meshes/left_ankle_pitch_link.stl b/public/urdf/g1/meshes/left_ankle_pitch_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_ankle_pitch_link.stl rename to public/urdf/g1/meshes/left_ankle_pitch_link.STL diff --git a/public/urdf/g1/meshes/left_ankle_roll_link.stl b/public/urdf/g1/meshes/left_ankle_roll_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_ankle_roll_link.stl rename to public/urdf/g1/meshes/left_ankle_roll_link.STL diff --git a/public/urdf/g1/meshes/left_elbow_link.stl b/public/urdf/g1/meshes/left_elbow_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_elbow_link.stl rename to public/urdf/g1/meshes/left_elbow_link.STL diff --git a/public/urdf/g1/meshes/left_elbow_link_merge.stl b/public/urdf/g1/meshes/left_elbow_link_merge.STL similarity index 100% rename from public/urdf/g1/meshes/left_elbow_link_merge.stl rename to public/urdf/g1/meshes/left_elbow_link_merge.STL diff --git a/public/urdf/g1/meshes/left_hand_index_0_link.stl b/public/urdf/g1/meshes/left_hand_index_0_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hand_index_0_link.stl rename to public/urdf/g1/meshes/left_hand_index_0_link.STL diff --git a/public/urdf/g1/meshes/left_hand_index_1_link.stl b/public/urdf/g1/meshes/left_hand_index_1_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hand_index_1_link.stl rename to public/urdf/g1/meshes/left_hand_index_1_link.STL diff --git a/public/urdf/g1/meshes/left_hand_middle_0_link.stl b/public/urdf/g1/meshes/left_hand_middle_0_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hand_middle_0_link.stl rename to public/urdf/g1/meshes/left_hand_middle_0_link.STL diff --git a/public/urdf/g1/meshes/left_hand_middle_1_link.stl b/public/urdf/g1/meshes/left_hand_middle_1_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hand_middle_1_link.stl rename to public/urdf/g1/meshes/left_hand_middle_1_link.STL diff --git a/public/urdf/g1/meshes/left_hand_palm_link.stl b/public/urdf/g1/meshes/left_hand_palm_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hand_palm_link.stl rename to public/urdf/g1/meshes/left_hand_palm_link.STL diff --git a/public/urdf/g1/meshes/left_hand_thumb_0_link.stl b/public/urdf/g1/meshes/left_hand_thumb_0_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hand_thumb_0_link.stl rename to public/urdf/g1/meshes/left_hand_thumb_0_link.STL diff --git a/public/urdf/g1/meshes/left_hand_thumb_1_link.stl b/public/urdf/g1/meshes/left_hand_thumb_1_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hand_thumb_1_link.stl rename to public/urdf/g1/meshes/left_hand_thumb_1_link.STL diff --git a/public/urdf/g1/meshes/left_hand_thumb_2_link.stl b/public/urdf/g1/meshes/left_hand_thumb_2_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hand_thumb_2_link.stl rename to public/urdf/g1/meshes/left_hand_thumb_2_link.STL diff --git a/public/urdf/g1/meshes/left_hip_pitch_link.stl b/public/urdf/g1/meshes/left_hip_pitch_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hip_pitch_link.stl rename to public/urdf/g1/meshes/left_hip_pitch_link.STL diff --git a/public/urdf/g1/meshes/left_hip_roll_link.stl b/public/urdf/g1/meshes/left_hip_roll_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hip_roll_link.stl rename to public/urdf/g1/meshes/left_hip_roll_link.STL diff --git a/public/urdf/g1/meshes/left_hip_yaw_link.stl b/public/urdf/g1/meshes/left_hip_yaw_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_hip_yaw_link.stl rename to public/urdf/g1/meshes/left_hip_yaw_link.STL diff --git a/public/urdf/g1/meshes/left_knee_link.stl b/public/urdf/g1/meshes/left_knee_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_knee_link.stl rename to public/urdf/g1/meshes/left_knee_link.STL diff --git a/public/urdf/g1/meshes/left_rubber_hand.stl b/public/urdf/g1/meshes/left_rubber_hand.STL similarity index 100% rename from public/urdf/g1/meshes/left_rubber_hand.stl rename to public/urdf/g1/meshes/left_rubber_hand.STL diff --git a/public/urdf/g1/meshes/left_shoulder_pitch_link.stl b/public/urdf/g1/meshes/left_shoulder_pitch_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_shoulder_pitch_link.stl rename to public/urdf/g1/meshes/left_shoulder_pitch_link.STL diff --git a/public/urdf/g1/meshes/left_shoulder_roll_link.stl b/public/urdf/g1/meshes/left_shoulder_roll_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_shoulder_roll_link.stl rename to public/urdf/g1/meshes/left_shoulder_roll_link.STL diff --git a/public/urdf/g1/meshes/left_shoulder_yaw_link.stl b/public/urdf/g1/meshes/left_shoulder_yaw_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_shoulder_yaw_link.stl rename to public/urdf/g1/meshes/left_shoulder_yaw_link.STL diff --git a/public/urdf/g1/meshes/left_wrist_pitch_link.stl b/public/urdf/g1/meshes/left_wrist_pitch_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_wrist_pitch_link.stl rename to public/urdf/g1/meshes/left_wrist_pitch_link.STL diff --git a/public/urdf/g1/meshes/left_wrist_roll_link.stl b/public/urdf/g1/meshes/left_wrist_roll_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_wrist_roll_link.stl rename to public/urdf/g1/meshes/left_wrist_roll_link.STL diff --git a/public/urdf/g1/meshes/left_wrist_roll_rubber_hand.stl b/public/urdf/g1/meshes/left_wrist_roll_rubber_hand.STL similarity index 100% rename from public/urdf/g1/meshes/left_wrist_roll_rubber_hand.stl rename to public/urdf/g1/meshes/left_wrist_roll_rubber_hand.STL diff --git a/public/urdf/g1/meshes/left_wrist_yaw_link.stl b/public/urdf/g1/meshes/left_wrist_yaw_link.STL similarity index 100% rename from public/urdf/g1/meshes/left_wrist_yaw_link.stl rename to public/urdf/g1/meshes/left_wrist_yaw_link.STL diff --git a/public/urdf/g1/meshes/logo_link.stl b/public/urdf/g1/meshes/logo_link.STL similarity index 100% rename from public/urdf/g1/meshes/logo_link.stl rename to public/urdf/g1/meshes/logo_link.STL diff --git a/public/urdf/g1/meshes/pelvis.stl b/public/urdf/g1/meshes/pelvis.STL similarity index 100% rename from public/urdf/g1/meshes/pelvis.stl rename to public/urdf/g1/meshes/pelvis.STL diff --git a/public/urdf/g1/meshes/pelvis_contour_link.stl b/public/urdf/g1/meshes/pelvis_contour_link.STL similarity index 100% rename from public/urdf/g1/meshes/pelvis_contour_link.stl rename to public/urdf/g1/meshes/pelvis_contour_link.STL diff --git a/public/urdf/g1/meshes/right_ankle_pitch_link.stl b/public/urdf/g1/meshes/right_ankle_pitch_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_ankle_pitch_link.stl rename to public/urdf/g1/meshes/right_ankle_pitch_link.STL diff --git a/public/urdf/g1/meshes/right_ankle_roll_link.stl b/public/urdf/g1/meshes/right_ankle_roll_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_ankle_roll_link.stl rename to public/urdf/g1/meshes/right_ankle_roll_link.STL diff --git a/public/urdf/g1/meshes/right_elbow_link.stl b/public/urdf/g1/meshes/right_elbow_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_elbow_link.stl rename to public/urdf/g1/meshes/right_elbow_link.STL diff --git a/public/urdf/g1/meshes/right_elbow_link_merge.stl b/public/urdf/g1/meshes/right_elbow_link_merge.STL similarity index 100% rename from public/urdf/g1/meshes/right_elbow_link_merge.stl rename to public/urdf/g1/meshes/right_elbow_link_merge.STL diff --git a/public/urdf/g1/meshes/right_hand_index_0_link.stl b/public/urdf/g1/meshes/right_hand_index_0_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hand_index_0_link.stl rename to public/urdf/g1/meshes/right_hand_index_0_link.STL diff --git a/public/urdf/g1/meshes/right_hand_index_1_link.stl b/public/urdf/g1/meshes/right_hand_index_1_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hand_index_1_link.stl rename to public/urdf/g1/meshes/right_hand_index_1_link.STL diff --git a/public/urdf/g1/meshes/right_hand_middle_0_link.stl b/public/urdf/g1/meshes/right_hand_middle_0_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hand_middle_0_link.stl rename to public/urdf/g1/meshes/right_hand_middle_0_link.STL diff --git a/public/urdf/g1/meshes/right_hand_middle_1_link.stl b/public/urdf/g1/meshes/right_hand_middle_1_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hand_middle_1_link.stl rename to public/urdf/g1/meshes/right_hand_middle_1_link.STL diff --git a/public/urdf/g1/meshes/right_hand_palm_link.stl b/public/urdf/g1/meshes/right_hand_palm_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hand_palm_link.stl rename to public/urdf/g1/meshes/right_hand_palm_link.STL diff --git a/public/urdf/g1/meshes/right_hand_thumb_0_link.stl b/public/urdf/g1/meshes/right_hand_thumb_0_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hand_thumb_0_link.stl rename to public/urdf/g1/meshes/right_hand_thumb_0_link.STL diff --git a/public/urdf/g1/meshes/right_hand_thumb_1_link.stl b/public/urdf/g1/meshes/right_hand_thumb_1_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hand_thumb_1_link.stl rename to public/urdf/g1/meshes/right_hand_thumb_1_link.STL diff --git a/public/urdf/g1/meshes/right_hand_thumb_2_link.stl b/public/urdf/g1/meshes/right_hand_thumb_2_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hand_thumb_2_link.stl rename to public/urdf/g1/meshes/right_hand_thumb_2_link.STL diff --git a/public/urdf/g1/meshes/right_hip_pitch_link.stl b/public/urdf/g1/meshes/right_hip_pitch_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hip_pitch_link.stl rename to public/urdf/g1/meshes/right_hip_pitch_link.STL diff --git a/public/urdf/g1/meshes/right_hip_roll_link.stl b/public/urdf/g1/meshes/right_hip_roll_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hip_roll_link.stl rename to public/urdf/g1/meshes/right_hip_roll_link.STL diff --git a/public/urdf/g1/meshes/right_hip_yaw_link.stl b/public/urdf/g1/meshes/right_hip_yaw_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_hip_yaw_link.stl rename to public/urdf/g1/meshes/right_hip_yaw_link.STL diff --git a/public/urdf/g1/meshes/right_knee_link.stl b/public/urdf/g1/meshes/right_knee_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_knee_link.stl rename to public/urdf/g1/meshes/right_knee_link.STL diff --git a/public/urdf/g1/meshes/right_rubber_hand.stl b/public/urdf/g1/meshes/right_rubber_hand.STL similarity index 100% rename from public/urdf/g1/meshes/right_rubber_hand.stl rename to public/urdf/g1/meshes/right_rubber_hand.STL diff --git a/public/urdf/g1/meshes/right_shoulder_pitch_link.stl b/public/urdf/g1/meshes/right_shoulder_pitch_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_shoulder_pitch_link.stl rename to public/urdf/g1/meshes/right_shoulder_pitch_link.STL diff --git a/public/urdf/g1/meshes/right_shoulder_roll_link.stl b/public/urdf/g1/meshes/right_shoulder_roll_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_shoulder_roll_link.stl rename to public/urdf/g1/meshes/right_shoulder_roll_link.STL diff --git a/public/urdf/g1/meshes/right_shoulder_yaw_link.stl b/public/urdf/g1/meshes/right_shoulder_yaw_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_shoulder_yaw_link.stl rename to public/urdf/g1/meshes/right_shoulder_yaw_link.STL diff --git a/public/urdf/g1/meshes/right_wrist_pitch_link.stl b/public/urdf/g1/meshes/right_wrist_pitch_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_wrist_pitch_link.stl rename to public/urdf/g1/meshes/right_wrist_pitch_link.STL diff --git a/public/urdf/g1/meshes/right_wrist_roll_link.stl b/public/urdf/g1/meshes/right_wrist_roll_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_wrist_roll_link.stl rename to public/urdf/g1/meshes/right_wrist_roll_link.STL diff --git a/public/urdf/g1/meshes/right_wrist_roll_rubber_hand.stl b/public/urdf/g1/meshes/right_wrist_roll_rubber_hand.STL similarity index 100% rename from public/urdf/g1/meshes/right_wrist_roll_rubber_hand.stl rename to public/urdf/g1/meshes/right_wrist_roll_rubber_hand.STL diff --git a/public/urdf/g1/meshes/right_wrist_yaw_link.stl b/public/urdf/g1/meshes/right_wrist_yaw_link.STL similarity index 100% rename from public/urdf/g1/meshes/right_wrist_yaw_link.stl rename to public/urdf/g1/meshes/right_wrist_yaw_link.STL diff --git a/public/urdf/g1/meshes/torso_constraint_L_link.stl b/public/urdf/g1/meshes/torso_constraint_L_link.STL similarity index 100% rename from public/urdf/g1/meshes/torso_constraint_L_link.stl rename to public/urdf/g1/meshes/torso_constraint_L_link.STL diff --git a/public/urdf/g1/meshes/torso_constraint_L_rod_link.stl b/public/urdf/g1/meshes/torso_constraint_L_rod_link.STL similarity index 100% rename from public/urdf/g1/meshes/torso_constraint_L_rod_link.stl rename to public/urdf/g1/meshes/torso_constraint_L_rod_link.STL diff --git a/public/urdf/g1/meshes/torso_constraint_R_link.stl b/public/urdf/g1/meshes/torso_constraint_R_link.STL similarity index 100% rename from public/urdf/g1/meshes/torso_constraint_R_link.stl rename to public/urdf/g1/meshes/torso_constraint_R_link.STL diff --git a/public/urdf/g1/meshes/torso_constraint_R_rod_link.stl b/public/urdf/g1/meshes/torso_constraint_R_rod_link.STL similarity index 100% rename from public/urdf/g1/meshes/torso_constraint_R_rod_link.stl rename to public/urdf/g1/meshes/torso_constraint_R_rod_link.STL diff --git a/public/urdf/g1/meshes/torso_link_rev_1_0.stl b/public/urdf/g1/meshes/torso_link_rev_1_0.STL similarity index 100% rename from public/urdf/g1/meshes/torso_link_rev_1_0.stl rename to public/urdf/g1/meshes/torso_link_rev_1_0.STL diff --git a/public/urdf/g1/meshes/waist_constraint_L.stl b/public/urdf/g1/meshes/waist_constraint_L.STL similarity index 100% rename from public/urdf/g1/meshes/waist_constraint_L.stl rename to public/urdf/g1/meshes/waist_constraint_L.STL diff --git a/public/urdf/g1/meshes/waist_constraint_R.stl b/public/urdf/g1/meshes/waist_constraint_R.STL similarity index 100% rename from public/urdf/g1/meshes/waist_constraint_R.stl rename to public/urdf/g1/meshes/waist_constraint_R.STL diff --git a/public/urdf/g1/meshes/waist_roll_link.stl b/public/urdf/g1/meshes/waist_roll_link.STL similarity index 100% rename from public/urdf/g1/meshes/waist_roll_link.stl rename to public/urdf/g1/meshes/waist_roll_link.STL diff --git a/public/urdf/g1/meshes/waist_roll_link_rev_1_0.stl b/public/urdf/g1/meshes/waist_roll_link_rev_1_0.STL similarity index 100% rename from public/urdf/g1/meshes/waist_roll_link_rev_1_0.stl rename to public/urdf/g1/meshes/waist_roll_link_rev_1_0.STL diff --git a/public/urdf/g1/meshes/waist_support_link.stl b/public/urdf/g1/meshes/waist_support_link.STL similarity index 100% rename from public/urdf/g1/meshes/waist_support_link.stl rename to public/urdf/g1/meshes/waist_support_link.STL diff --git a/public/urdf/g1/meshes/waist_yaw_link.stl b/public/urdf/g1/meshes/waist_yaw_link.STL similarity index 100% rename from public/urdf/g1/meshes/waist_yaw_link.stl rename to public/urdf/g1/meshes/waist_yaw_link.STL diff --git a/public/urdf/g1/meshes/waist_yaw_link_rev_1_0.stl b/public/urdf/g1/meshes/waist_yaw_link_rev_1_0.STL similarity index 100% rename from public/urdf/g1/meshes/waist_yaw_link_rev_1_0.stl rename to public/urdf/g1/meshes/waist_yaw_link_rev_1_0.STL diff --git a/src/app/[org]/[dataset]/[episode]/episode-viewer.tsx b/src/app/[org]/[dataset]/[episode]/episode-viewer.tsx index e00e8abf3ebb86829f1bff729973d1d2445c5920..723a55f9c527eaea0fbbd6165ce4426546412bda 100644 --- a/src/app/[org]/[dataset]/[episode]/episode-viewer.tsx +++ b/src/app/[org]/[dataset]/[episode]/episode-viewer.tsx @@ -188,6 +188,17 @@ function EpisodeViewerInner({ setCrossEpData(null); }, [datasetInfo.repoId]); + // Eagerly load the URDFViewer bundle + warm the STL geometry cache while + // the user is on the Episodes tab, so the 3D Replay tab opens faster. + useEffect(() => { + if ( + hasURDFSupport(datasetInfo.robot_type) && + datasetInfo.codebase_version >= "v3.0" + ) { + void import("@/components/urdf-viewer"); + } + }, [datasetInfo.robot_type, datasetInfo.codebase_version]); + // Hydrate UI state from sessionStorage after mount (avoids SSR/client mismatch) useEffect(() => { const stored = sessionStorage.getItem("activeTab"); diff --git a/src/components/urdf-viewer.tsx b/src/components/urdf-viewer.tsx index 1b33bc8ad084550ff27385b064bf25e7e46b63af..6fe4d25f7a505c7aa82289fc462bef3820ed6870 100644 --- a/src/components/urdf-viewer.tsx +++ b/src/components/urdf-viewer.tsx @@ -27,6 +27,12 @@ import type { DatasetMetadata } from "@/utils/parquetUtils"; const SERIES_DELIM = CHART_CONFIG.SERIES_NAME_DELIMITER; const DEG2RAD = Math.PI / 180; +// Module-level geometry cache — survives component remounts (tab switches, +// episode navigations). Avoids re-fetching and re-parsing STL files. +const stlGeometryCache = new Map(); +// In-flight promise cache — prevents duplicate simultaneous fetches +const stlGeometryLoading = new Map>(); + function getRobotConfig(robotType: string | null) { const lower = (robotType ?? "").toLowerCase(); if (lower.includes("g1") || lower.includes("unitree")) { @@ -292,46 +298,64 @@ function RobotScene({ ); return; } - // STL files — apply custom materials - const stlLoader = new STLLoader(mgr); - stlLoader.load( - url, - (geometry) => { - let color = "#FFD700"; - let metalness = 0.1; - let roughness = 0.6; - if (isG1) { - const lower = url.toLowerCase(); - const isWhitePart = - lower.includes("contour") || - lower.includes("roll_link") || - lower.includes("logo") || - lower.includes("rubber") || - lower.includes("constraint") || - lower.includes("support"); - color = isWhitePart ? "#c0c0c0" : "#2a2a2a"; - metalness = 0.3; - roughness = 0.5; - } else if (url.includes("sts3215")) { - color = "#1a1a1a"; - metalness = 0.7; - roughness = 0.3; - } else if (isOpenArm) { - color = url.includes("body_link0") ? "#3a3a4a" : "#f5f5f5"; - metalness = 0.15; - roughness = 0.6; - } - const material = new THREE.MeshStandardMaterial({ + // STL files — apply custom materials, with module-level geometry cache + const makeMesh = (geometry: THREE.BufferGeometry) => { + let color = "#FFD700"; + let metalness = 0.1; + let roughness = 0.6; + if (isG1) { + const lower = url.toLowerCase(); + const isWhitePart = + lower.includes("contour") || + lower.includes("roll_link") || + lower.includes("logo") || + lower.includes("rubber") || + lower.includes("constraint") || + lower.includes("support"); + color = isWhitePart ? "#c0c0c0" : "#2a2a2a"; + metalness = 0.3; + roughness = 0.5; + } else if (url.includes("sts3215")) { + color = "#1a1a1a"; + metalness = 0.7; + roughness = 0.3; + } else if (isOpenArm) { + color = url.includes("body_link0") ? "#3a3a4a" : "#f5f5f5"; + metalness = 0.15; + roughness = 0.6; + } + return new THREE.Mesh( + geometry, + new THREE.MeshStandardMaterial({ color, metalness, roughness, side: isOpenArm ? THREE.DoubleSide : THREE.FrontSide, - }); - onLoad(new THREE.Mesh(geometry, material)); - }, - undefined, - (err) => onLoad(new THREE.Object3D(), err as Error), - ); + }), + ); + }; + + const cached = stlGeometryCache.get(url); + if (cached) { + onLoad(makeMesh(cached)); + return; + } + + // Deduplicate in-flight requests for the same URL + let loading = stlGeometryLoading.get(url); + if (!loading) { + loading = new Promise((resolve, reject) => { + new STLLoader(mgr).load(url, resolve, undefined, reject); + }).then((geometry) => { + stlGeometryCache.set(url, geometry); + stlGeometryLoading.delete(url); + return geometry; + }); + stlGeometryLoading.set(url, loading); + } + loading + .then((geometry) => onLoad(makeMesh(geometry))) + .catch((err) => onLoad(new THREE.Object3D(), err as Error)); }; loader.load( urdfUrl,