MuJoCo 模拟自行拆卸 - 关节未固定在主体上

问题描述 投票:0回答:1

我目前正在开展一个项目,该项目要求我使用 SolidWorks 中的预制网格来模拟 MuJoCo 中的手臂。这是到目前为止我的代码:

<mujoco model="RX-5001-V005-Defeatured">
    <compiler angle="degree" />
    <option timestep="0.01"/>
    <visual>
        <headlight ambient="0.5 0.5 0.5"/>
    </visual>

    <asset>
        <mesh name="base" file="Base Defeatured.STEP-1.obj" />
        <mesh name="ab" file="AB Defeatured.STEP-1.obj" />
        <mesh name="rxclaw" file="RX-1049 part.STEP-1.obj" />
        <mesh name="longtube" file="Long Tube Defeatured.STEP-1.obj" />
        <mesh name="joint1" file="Joint Defeatured.STEP-1.obj" />
        <mesh name="joint2" file="Joint Defeatured.STEP-2.obj" />
        <mesh name="joint3" file="Joint Defeatured.STEP-3.obj" />
        <mesh name="joint4" file="Joint Defeatured.STEP-4.obj" />
        <mesh name="joint5" file="Joint Defeatured.STEP-5.obj" />
    </asset>
    <worldbody>


        <body name="base" pos="0 0 0" euler="0 180 0">
            <geom type="mesh" mesh="base" />
        <body name="joint4" euler="0 0 0">
                <geom type="mesh" mesh="joint4" />
                <joint name="joint4" type="hinge" pos="0 0 0" axis="0 0 1" />
        
        <body name="longtube" pos="0 0 0" euler="0 0 0">
                <geom type="mesh" mesh="longtube" />
            <body name="joint3" euler="0 0 0">
                <geom type="mesh" mesh="joint3" />
                <joint name="joint3" type="hinge" pos="0 0 0" axis="0 1 0"/>
            </body>
            <body name="joint5" euler="0 0 0">
                    <geom type="mesh" mesh="joint5" />
                    <joint name="joint5" type="hinge" pos="0 0 0" axis="0 1 0" />
            </body>

            </body>
            </body>
        </body>

<!--Joint 2 + AB, and Joint 3 fly off-->

    <body name="joint2" euler="0 180 0">
            <geom type="mesh" mesh="joint2" />
            <joint name="joint2" type="hinge" pos="0 0 0" axis="0 0 1" />
        <body name="ab" pos="0 0 0" euler="0 0 0">
            <geom type="mesh" mesh="ab" />
        <body name="joint1" euler="0 0 0">
                <geom type="mesh" mesh="joint1" />
                <joint name="joint1" type="hinge" pos="0 0 0" axis="0 0 1" />
            <body name="rxclaw" pos="0 0 0" euler="0 0 0">
                    <geom type="mesh" mesh="rxclaw" />
                </body>
            </body>
            </body>
        </body>

    </worldbody>

</mujoco>

加载后,手臂看起来应该是这样的:加载时的模型 然而,当我取消暂停模拟时,关节全部开始移动: 关节飞起来

我的模型崩溃的原因可能是什么?

我尝试过减少身体之间的摩擦,但没有效果。我的 MuJoCo 模拟器的 GUI 在侧面不可见,但有时当我运行模拟时,会看到一个绿色轮廓(我认为是每个网格的碰撞箱),并且我可以看到它们都接触或在另一个碰撞箱内。这会是我的问题的根源吗(网格文件本身的原始对齐方式?)。

xml simulation mujoco
1个回答
0
投票

事实证明,我的网格文件本身没有正确导入(它们的中心不在自身上,而是在空间中随机的某个地方。)我只是将每个网格导出到搅拌机中并将它们重新居中,然后当我导入网格化模拟按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.