模型准备
CAD
提供的原始模型如下:
该模型存在的问题:
- 单位问题:
CAD
出图的是mm
为单位,但是mujoco
建模这边用的是以m
为单位的; - 原点问题:
CAD
作图时,没有坐标原点的概念,为了能更好的控制模型的位置,需要确定模型的原点,将物体的某一个特征点移动到(0, 0, 0)
- 姿态问题:暂无
模型处理
姿态:关于模型姿态问题,暂时不处理,需要在作图时保障与坐标轴平行
位置纠偏
- 在
CC
里把模型打开 - 统一度量衡,对模型整体进行缩放,操作:
CC
->Edit
->scale
- 查看模型属性,主要是
Global box center
这个参数 - 然后根据
Box dimension
计算需要平移的值 - 平移模型, 操作:
CC
->Edit
->Apply transformation
模型文件XML编写
<mujoco model="air_condition_outdoor">
<asset>
<mesh file="./meshes/air_condition_outdoor.stl" name="base" scale="0.5 0.5 0.5"/>
</asset>
<worldbody>
<body>
<body name="object">
<inertial pos="0 0 0" mass="0.05" diaginertia="0.002 0.002 0.002" />
<geom pos="0. 0. 0.0" quat="1 0 0 0 " mesh="base" type="mesh" solimp="0.998 0.998 0.001" solref="0.001 1" density="100" friction="1 1 1" group="0" condim="4" rgba="0.839 0.839 0.839 1"/>
<geom pos="-0.1001 -0.0564 0.264" size="0.002 0.005" quat="0 0 0.707 0.707" type="cylinder" rgba="1. 0. 0. 1.0" solimp="0.998 0.998 0.001" solref="0.02 1" density="100" friction="0.95 0.3 0.1" group="0" condim="4" />
<geom pos=" 0.1001 -0.0564 0.264" size="0.002 0.005" quat="0 0 0.707 0.707" type="cylinder" rgba="1. 0. 0. 1.0" solimp="0.998 0.998 0.001" solref="0.02 1" density="100" friction="0.95 0.3 0.1" group="0" condim="4" />
<geom pos="-0.1001 -0.0564 0.27" size="0.002 0.005" quat="0 0 0 1.0" type="cylinder" rgba="1. 0. 0. 1.0" solimp="0.998 0.998 0.001" solref="0.02 1" density="100" friction="0.95 0.3 0.1" group="0" condim="4" />
<geom pos=" 0.1001 -0.0564 0.27" size="0.002 0.005" quat="0 0 0 1.0" type="cylinder" rgba="1. 0. 0. 1.0" solimp="0.998 0.998 0.001" solref="0.02 1" density="100" friction="0.95 0.3 0.1" group="0" condim="4" />
</body>
<body name="visual">
<inertial pos="0 0 0" mass="0.05" diaginertia="0.002 0.002 0.002" />
<geom pos="0 0 0" mesh="base" type="mesh" conaffinity="0" contype="0" group="0" mass="0.0001" rgba="0.8 0.8 0.8 0.1"/>
</body>
<site rgba="0 0 0 0" size="0.005" pos="0 0 -0.004" name="bottom_site"/>
<site rgba="0 0 0 0" size="0.005" pos="0 0 0.004" name="top_site"/>
<site rgba="0 0 0 0" size="0.005" pos="0. 0. 0" name="horizontal_radius_site"/>
<site rgba="0 0 0 0" size="0.005" pos="-0.1001 -0.0564 0.1295" name="hole_0_site"/>
</body>
</worldbody>
</mujoco>