初始提交:关节模组仿真平台

- 三接口契约:自包含 MJCF / 配置 schema / 报告计算规范
- Python 流水线:urdf_to_mjcf → generate_schema → simulate_report(validate_module 一键编排)
- 输入案例 urdf + 生成产物 output(自包含 MJCF/schema/报告/网格副本)
- 详细架构说明 docs/architecture.md
This commit is contained in:
2026-08-28 11:37:47 +08:00
commit 4240bb889a
34 changed files with 6294 additions and 0 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+126
View File
@@ -0,0 +1,126 @@
<?xml version="1.0" encoding="utf-8"?>
<robot name="planetary_joint_split_motor_demo">
<link name="base_link">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/fixed_structure.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="material_fixed_structure.stl">
<color rgba="0.62 0.68 0.72 1" />
</material>
</visual>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/motor_stator.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="material_motor_stator.stl">
<color rgba="0.30 0.34 0.38 1" />
</material>
</visual>
</link>
<link name="sun_link">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/sun_drive.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="material_sun_drive.stl">
<color rgba="0.95 0.62 0.16 1" />
</material>
</visual>
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/motor_rotor.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="material_motor_rotor.stl">
<color rgba="0.80 0.33 0.16 1" />
</material>
</visual>
</link>
<link name="carrier_link">
<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/carrier_link.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="material_carrier_link.stl">
<color rgba="0.28 0.56 0.82 1" />
</material>
</visual>
</link>
<link name="planet_0_link">
<visual>
<origin xyz="-0.0535 0.0239016371622 0.00217065450165" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/planet_0_link.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="planet_steel">
<color rgba="0.76 0.78 0.80 1" />
</material>
</visual>
</link>
<link name="planet_1_link">
<visual>
<origin xyz="-0.0535 -0.0138306605224 0.0196140977237" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/planet_1_link.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="planet_steel">
<color rgba="0.76 0.78 0.80 1" />
</material>
</visual>
</link>
<link name="planet_2_link">
<visual>
<origin xyz="-0.0535 -0.0100709766398 -0.0217847522253" rpy="0 0 0" />
<geometry>
<mesh filename="meshes/planet_2_link.stl" scale="0.001 0.001 0.001" />
</geometry>
<material name="planet_steel">
<color rgba="0.76 0.78 0.80 1" />
</material>
</visual>
</link>
<joint name="sun_input_joint" type="revolute">
<parent link="base_link" />
<child link="sun_link" />
<origin xyz="0 0 0" rpy="0 0 0" />
<axis xyz="1 0 0" />
<limit lower="-37.6991118431" upper="37.6991118431" effort="1" velocity="6.28318530718" />
</joint>
<joint name="carrier_output_joint" type="revolute">
<parent link="base_link" />
<child link="carrier_link" />
<origin xyz="0 0 0" rpy="0 0 0" />
<axis xyz="1 0 0" />
<limit lower="-37.6991118431" upper="37.6991118431" effort="1" velocity="6.28318530718" />
<mimic joint="sun_input_joint" multiplier="0.166666666666667" offset="0" />
</joint>
<joint name="planet_0_spin_joint" type="revolute">
<parent link="carrier_link" />
<child link="planet_0_link" />
<origin xyz="0.0535 -0.0239016371622 -0.00217065450165" rpy="0 0 0" />
<axis xyz="1 0 0" />
<limit lower="-37.6991118431" upper="37.6991118431" effort="1" velocity="6.28318530718" />
<mimic joint="sun_input_joint" multiplier="-0.416666666666667" offset="0" />
</joint>
<joint name="planet_1_spin_joint" type="revolute">
<parent link="carrier_link" />
<child link="planet_1_link" />
<origin xyz="0.0535 0.0138306605224 -0.0196140977237" rpy="0 0 0" />
<axis xyz="1 0 0" />
<limit lower="-37.6991118431" upper="37.6991118431" effort="1" velocity="6.28318530718" />
<mimic joint="sun_input_joint" multiplier="-0.416666666666667" offset="0" />
</joint>
<joint name="planet_2_spin_joint" type="revolute">
<parent link="carrier_link" />
<child link="planet_2_link" />
<origin xyz="0.0535 0.0100709766398 0.0217847522253" rpy="0 0 0" />
<axis xyz="1 0 0" />
<limit lower="-37.6991118431" upper="37.6991118431" effort="1" velocity="6.28318530718" />
<mimic joint="sun_input_joint" multiplier="-0.416666666666667" offset="0" />
</joint>
</robot>
+93
View File
@@ -0,0 +1,93 @@
{
"schema": "simplecad.temporary_split_motor_urdf_demo.v1",
"temporary_demo_only": true,
"project_sources_modified": false,
"formal_motor_definition_remains": "single immutable 3500 COTS assembly",
"split_motor": {
"stator_step": "/Users/jerry/Downloads/3500-motor/3500-Motor_part2-定子.STEP",
"rotor_step": "/Users/jerry/Downloads/3500-motor/3500-Motor_part2-转子.STEP",
"stator_sha256": "91cc6a3d9033e74ff4d78b9802ceae32def15d5222c9537d50e7f3dfebab937f",
"rotor_sha256": "15c15bd056593d9672b4b7c331446e76c24ebb241ae59c61734b467d10d24e3b",
"stator_solid_count": 37,
"rotor_solid_count": 9,
"original_motor_solid_count": 46,
"motor_placement": {
"origin": [
2.0,
0.0,
0.0
],
"x_axis": [
0.0,
-0.9883811652466841,
-0.15199563212673947
],
"y_axis": [
1.0,
0.0,
0.0
],
"z_axis": [
0.0,
-0.15199563212673947,
0.9883811652466841
]
},
"rotor_motion_group": "sun_link"
},
"kinematics": {
"driver": "sun_input_joint",
"axis": [
1,
0,
0
],
"rotor_sun_multiplier": 1.0,
"carrier_multiplier": 0.16666666666666666,
"planet_relative_multiplier": -0.4166666666666667,
"ring_fixed": true
},
"meshes": [
{
"path": "meshes/fixed_structure.stl",
"bytes": 1538584,
"sha256": "48754d3f41032aa1b43cd2ddb3d48442c70c558f85458135184200aa2e45dc9c"
},
{
"path": "meshes/motor_stator.stl",
"bytes": 28572384,
"sha256": "fa61093b5a1b97f0f6db070d05f1376492c449b068bac957b52a6201733fc58e"
},
{
"path": "meshes/sun_drive.stl",
"bytes": 112484,
"sha256": "dff39aab0a1a6df379c53459df2961ba4ad60682568693a6490a0cce3cae065e"
},
{
"path": "meshes/motor_rotor.stl",
"bytes": 526184,
"sha256": "5f0a58304dbfd785fc3fdc0aa3d2c2557fbc151e81adbd5f11da1ad9ee8686be"
},
{
"path": "meshes/carrier_link.stl",
"bytes": 508184,
"sha256": "eca27acef8eefe282f92c7042db02dcf0a65516c9a97b0aa7668dabc9110a8ff"
},
{
"path": "meshes/planet_0_link.stl",
"bytes": 159284,
"sha256": "6fb3cff6c91186f39f098c1e3e619f88af9be56fe31c81ed327b5e5f243ceaa5"
},
{
"path": "meshes/planet_1_link.stl",
"bytes": 159284,
"sha256": "53474223ba8cdc31d9353e2a237823e4ce93473c9c85135cd769db126452571d"
},
{
"path": "meshes/planet_2_link.stl",
"bytes": 159284,
"sha256": "1dd79f134d39b79350d9f39663f2b786002496289e3b8936793ac7a34d693864"
}
],
"urdf_sha256": "d5e3bf1625a639346d616334fd8677c6af97d86f8cc58dde082a7a9dd988801f"
}