Add standalone Huoyi training project

This commit is contained in:
huangweifeng
2026-10-13 21:25:03 +08:00
commit 1aeeb34653
69 changed files with 7312 additions and 0 deletions
+28
View File
@@ -0,0 +1,28 @@
BSD 3-Clause License
Copyright (c) 2024, DeepRoboticsLab
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,92 @@
{
"source_dir": "/home/ycpy/huangweifeng/hwf_workspace/rl_training_huoyi/rl_training/deep_robotics_model/M20/M20_urdf/meshes_solenopsis",
"grid_mm": 2.0,
"maximum_vertex_displacement_mm": 1.7320508075688772,
"source_faces": 2146372,
"optimized_faces": 234820,
"source_bytes": 107319356,
"optimized_bytes": 11741756,
"meshes": [
{
"file": "base_link.STL",
"source_vertices": 568586,
"source_faces": 1140292,
"optimized_vertices": 35724,
"optimized_faces": 86170,
"source_bytes": 57014684,
"optimized_bytes": 4308584
},
{
"file": "fl_knee.STL",
"source_vertices": 54172,
"source_faces": 108311,
"optimized_vertices": 6368,
"optimized_faces": 14405,
"source_bytes": 5415634,
"optimized_bytes": 720334
},
{
"file": "fl_wheel.STL",
"source_vertices": 71661,
"source_faces": 143210,
"optimized_vertices": 11121,
"optimized_faces": 22793,
"source_bytes": 7160584,
"optimized_bytes": 1139734
},
{
"file": "fr_knee.STL",
"source_vertices": 54172,
"source_faces": 108311,
"optimized_vertices": 6363,
"optimized_faces": 14398,
"source_bytes": 5415634,
"optimized_bytes": 719984
},
{
"file": "fr_wheel.STL",
"source_vertices": 71668,
"source_faces": 143224,
"optimized_vertices": 11122,
"optimized_faces": 22796,
"source_bytes": 7161284,
"optimized_bytes": 1139884
},
{
"file": "hl_knee.STL",
"source_vertices": 54172,
"source_faces": 108311,
"optimized_vertices": 6340,
"optimized_faces": 14346,
"source_bytes": 5415634,
"optimized_bytes": 717384
},
{
"file": "hl_wheel.STL",
"source_vertices": 71660,
"source_faces": 143208,
"optimized_vertices": 11120,
"optimized_faces": 22790,
"source_bytes": 7160484,
"optimized_bytes": 1139584
},
{
"file": "hr_knee.STL",
"source_vertices": 54172,
"source_faces": 108311,
"optimized_vertices": 6331,
"optimized_faces": 14331,
"source_bytes": 5415634,
"optimized_bytes": 716634
},
{
"file": "hr_wheel.STL",
"source_vertices": 71653,
"source_faces": 143194,
"optimized_vertices": 11121,
"optimized_faces": 22791,
"source_bytes": 7159784,
"optimized_bytes": 1139634
}
]
}
@@ -0,0 +1,292 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Solenopsis fire-ant, generated from the 2026 SolidWorks STEP assembly.
Units: metre, kilogram, radian, kg*m^2.
Coordinate conversion: (x,y,z)_URDF = (z,x,y)_SolidWorks.
All inertia tensors are about each rigid body's own centre of mass.
Visual geometry uses the STEP-derived STL files in
../meshes_solenopsis_visual at a millimetre-to-metre scale of 0.001.
Collision geometry remains primitive boxes and cylinders.
The 0.127 kg gap between the supplied rigid-group masses and the supplied
whole-robot mass is lumped into base_link at the reported base COM. Thus
base mass is 17.274 + 0.127 = 17.401 kg, while its reported COM and inertia
tensor are unchanged. No spatial distribution is invented for that mass.
-->
<robot name="Solenopsis_fire_ant">
<link name="base_link">
<inertial>
<origin xyz="-0.000072 0.000171 0.076892" rpy="0 0 0"/>
<mass value="17.401"/>
<inertia ixx="0.133964838" ixy="-0.000732466" ixz="0.000157104"
iyy="0.363696493" iyz="0.000165399" izz="0.450717599"/>
</inertial>
<visual>
<geometry>
<mesh filename="../meshes_solenopsis_visual/base_link.STL" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 0.0788" rpy="0 0 0"/>
<geometry>
<box size="0.706 0.310 0.1714"/>
</geometry>
</collision>
</link>
<!-- Front-left. Left-link tensors use the exact proper rotation
(x,y,z)_link = (-z,-x,y)_SolidWorks-module. -->
<link name="fl_knee">
<inertial>
<origin xyz="-0.000040 -0.001088 -0.158988" rpy="0 0 0"/>
<mass value="0.955"/>
<inertia ixx="0.014124479" ixy="0.000002919" ixz="0.000004851"
iyy="0.014470094" iyz="-0.000261898" izz="0.000478899"/>
</inertial>
<visual>
<geometry>
<mesh filename="../meshes_solenopsis_visual/fl_knee.STL" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin xyz="0 -0.0005 -0.15575" rpy="0 0 0"/>
<geometry>
<box size="0.088 0.031 0.3765"/>
</geometry>
</collision>
<collision>
<origin xyz="0 -0.02625 0" rpy="1.570796326795 0 0"/>
<geometry>
<cylinder length="0.0205" radius="0.01995"/>
</geometry>
</collision>
</link>
<joint name="fl_knee_joint" type="revolute">
<origin xyz="0.117577164466 0.167 0.070" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="fl_knee"/>
<axis xyz="0 -1 0"/>
<limit lower="-2.792" upper="2.809" effort="75.0" velocity="17.8024"/>
</joint>
<link name="fl_wheel">
<inertial>
<origin xyz="-0.000002 0.059326 -0.000009" rpy="0 0 0"/>
<mass value="1.340"/>
<inertia ixx="0.003296552" ixy="0.000000144" ixz="-0.000000077"
iyy="0.005826562" iyz="0.000000424" izz="0.003296995"/>
</inertial>
<visual>
<geometry>
<mesh filename="../meshes_solenopsis_visual/fl_wheel.STL" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0.0457795 0" rpy="1.570796326795 0 0"/>
<geometry>
<cylinder length="0.082959" radius="0.098804"/>
</geometry>
</collision>
</link>
<joint name="fl_wheel_joint" type="continuous">
<origin xyz="0 0 -0.300" rpy="0 0 0"/>
<parent link="fl_knee"/>
<child link="fl_wheel"/>
<axis xyz="0 -1 0"/>
<limit effort="28.68" velocity="109.956"/>
</joint>
<!-- Front-right. Right-link tensors use the exact proper rotation
(x,y,z)_link = (z,x,y)_SolidWorks-module. -->
<link name="fr_knee">
<inertial>
<origin xyz="0.000040 0.001088 -0.158988" rpy="0 0 0"/>
<mass value="0.955"/>
<inertia ixx="0.014124479" ixy="0.000002919" ixz="-0.000004851"
iyy="0.014470094" iyz="0.000261898" izz="0.000478899"/>
</inertial>
<visual>
<geometry>
<mesh filename="../meshes_solenopsis_visual/fr_knee.STL" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0.0005 -0.15575" rpy="0 0 0"/>
<geometry>
<box size="0.088 0.031 0.3765"/>
</geometry>
</collision>
<collision>
<origin xyz="0 0.02625 0" rpy="1.570796326795 0 0"/>
<geometry>
<cylinder length="0.0205" radius="0.01995"/>
</geometry>
</collision>
</link>
<joint name="fr_knee_joint" type="revolute">
<origin xyz="0.117577164466 -0.167 0.070" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="fr_knee"/>
<axis xyz="0 -1 0"/>
<limit lower="-2.792" upper="2.809" effort="75.0" velocity="17.8024"/>
</joint>
<link name="fr_wheel">
<inertial>
<origin xyz="0.000002 -0.059326 -0.000009" rpy="0 0 0"/>
<mass value="1.340"/>
<inertia ixx="0.003296552" ixy="0.000000144" ixz="0.000000077"
iyy="0.005826562" iyz="-0.000000424" izz="0.003296995"/>
</inertial>
<visual>
<geometry>
<mesh filename="../meshes_solenopsis_visual/fr_wheel.STL" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin xyz="0 -0.0457795 0" rpy="1.570796326795 0 0"/>
<geometry>
<cylinder length="0.082959" radius="0.098804"/>
</geometry>
</collision>
</link>
<joint name="fr_wheel_joint" type="continuous">
<origin xyz="0 0 -0.300" rpy="0 0 0"/>
<parent link="fr_knee"/>
<child link="fr_wheel"/>
<axis xyz="0 -1 0"/>
<limit effort="28.68" velocity="109.956"/>
</joint>
<link name="hl_knee">
<inertial>
<origin xyz="-0.000040 -0.001088 -0.158988" rpy="0 0 0"/>
<mass value="0.955"/>
<inertia ixx="0.014124479" ixy="0.000002919" ixz="0.000004851"
iyy="0.014470094" iyz="-0.000261898" izz="0.000478899"/>
</inertial>
<visual>
<geometry>
<mesh filename="../meshes_solenopsis_visual/hl_knee.STL" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin xyz="0 -0.0005 -0.15575" rpy="0 0 0"/>
<geometry>
<box size="0.088 0.031 0.3765"/>
</geometry>
</collision>
<collision>
<origin xyz="0 -0.02625 0" rpy="1.570796326795 0 0"/>
<geometry>
<cylinder length="0.0205" radius="0.01995"/>
</geometry>
</collision>
</link>
<joint name="hl_knee_joint" type="revolute">
<origin xyz="-0.117577164466 0.167 0.070" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="hl_knee"/>
<axis xyz="0 -1 0"/>
<limit lower="-2.809" upper="2.792" effort="75.0" velocity="17.8024"/>
</joint>
<link name="hl_wheel">
<inertial>
<origin xyz="-0.000002 0.059326 -0.000009" rpy="0 0 0"/>
<mass value="1.340"/>
<inertia ixx="0.003296552" ixy="0.000000144" ixz="-0.000000077"
iyy="0.005826562" iyz="0.000000424" izz="0.003296995"/>
</inertial>
<visual>
<geometry>
<mesh filename="../meshes_solenopsis_visual/hl_wheel.STL" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0.0457795 0" rpy="1.570796326795 0 0"/>
<geometry>
<cylinder length="0.082959" radius="0.098804"/>
</geometry>
</collision>
</link>
<joint name="hl_wheel_joint" type="continuous">
<origin xyz="0 0 -0.300" rpy="0 0 0"/>
<parent link="hl_knee"/>
<child link="hl_wheel"/>
<axis xyz="0 -1 0"/>
<limit effort="28.68" velocity="109.956"/>
</joint>
<link name="hr_knee">
<inertial>
<origin xyz="0.000040 0.001088 -0.158988" rpy="0 0 0"/>
<mass value="0.955"/>
<inertia ixx="0.014124479" ixy="0.000002919" ixz="-0.000004851"
iyy="0.014470094" iyz="0.000261898" izz="0.000478899"/>
</inertial>
<visual>
<geometry>
<mesh filename="../meshes_solenopsis_visual/hr_knee.STL" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0.0005 -0.15575" rpy="0 0 0"/>
<geometry>
<box size="0.088 0.031 0.3765"/>
</geometry>
</collision>
<collision>
<origin xyz="0 0.02625 0" rpy="1.570796326795 0 0"/>
<geometry>
<cylinder length="0.0205" radius="0.01995"/>
</geometry>
</collision>
</link>
<joint name="hr_knee_joint" type="revolute">
<origin xyz="-0.117577164466 -0.167 0.070" rpy="0 0 0"/>
<parent link="base_link"/>
<child link="hr_knee"/>
<axis xyz="0 -1 0"/>
<limit lower="-2.809" upper="2.792" effort="75.0" velocity="17.8024"/>
</joint>
<link name="hr_wheel">
<inertial>
<origin xyz="0.000002 -0.059326 -0.000009" rpy="0 0 0"/>
<mass value="1.340"/>
<inertia ixx="0.003296552" ixy="0.000000144" ixz="0.000000077"
iyy="0.005826562" iyz="-0.000000424" izz="0.003296995"/>
</inertial>
<visual>
<geometry>
<mesh filename="../meshes_solenopsis_visual/hr_wheel.STL" scale="0.001 0.001 0.001"/>
</geometry>
</visual>
<collision>
<origin xyz="0 -0.0457795 0" rpy="1.570796326795 0 0"/>
<geometry>
<cylinder length="0.082959" radius="0.098804"/>
</geometry>
</collision>
</link>
<joint name="hr_wheel_joint" type="continuous">
<origin xyz="0 0 -0.300" rpy="0 0 0"/>
<parent link="hr_knee"/>
<child link="hr_wheel"/>
<axis xyz="0 -1 0"/>
<limit effort="28.68" velocity="109.956"/>
</joint>
</robot>
+18
View File
@@ -0,0 +1,18 @@
# Robot Models Repository
This repository contains 3D models for three Deep Robotics robots: **Lite3**, **M20**, and **X30**. Each model is provided in MJCF, URDF, and USD formats. To visualize the model and do some measuring, I recommend using this [tool](https://viewer.robotsfan.com/). Just drag your folder to the web page and you can see everything.
<span style="color: red;">**Note**</span>: This repository only contains low resolution files. To download the high resolution files, please use [this link](https://drive.google.com/drive/folders/1EOELXUYSBPEJeD0rUIkJxnlLMDr6IHBV?usp=sharing)
## Model Overview
**Note**: High resolution models are good for new simulators like isaaclab/isaacsim but old simulators like pybullet cannot open files this big.
| Robot Model | High Resolution Image | Low Resolution Image |
|:-----------:|:---------------------:|:--------------------:|
| **Lite3** | <img src="./images/lite3_high_res.png" width="200" /><br>Lite3/Lite3_urdf/urdf/Lite3_high_res.urdf | <img src="./images/lite3.png" width="200" /><br>Lite3/Lite3_urdf/urdf/Lite3.urdf |
| **X30** | <img src="./images/x30_high_res.png" width="200" /><br>X30/X30_urdf/urdf/X30_high_res.urdf | <img src="./images/x30.png" width="200" /><br>X30/X30_urdf/urdf/X30.urdf |
| **M20** | <img src="./images/m20_high_res.png" width="200" /><br>M20/M20_urdf/urdf/M20_high_res.urdf | <img src="./images/m20.png" width="200" /><br>M20/M20_urdf/urdf/M20.urdf |
## Contributors
See the [Contributors](Contributors.md) page for a list of contributors.