<link name="trunk">
        <visual>
            <origin rpy="0 0 0" xyz="0 0 0"/>
            <geometry>
                <!-- <box size="0.1 0.2 0.3"/> -->
                <mesh filename="$(find biped_robot)/meshes/base_link.STL" scale="1 1 1/>
            </geometry>
            <material name="white">
                <color rgba="0 0 0 1" />
            </material>
        </visual>
        <collision>
            <origin rpy="0 0 0" xyz="0 0 0"/>
            <geometry>
                <mesh filename="$(find biped_robot)/meshes/base_link.STL" scale="1 1 1/>
            </geometry>
        </collision>

        <xacro:Box_inertial_matrix m="${trunk_mass}" l="1" w="1" h="1">
            <origin rpy="0 0 0" xyz="0 0 0"/>
         </xacro:Box_inertial_matrix>
    </link>

用的vmware跑的Ubuntu22.04,ros2,gazebo运行很正常,自己编写一些简单的urdf没有任何问题。

上面就是一部分代码,模型导入的路径不知道是不是这样写的,但gazebo里能看到路径。gazebo的visual里的三维尺寸也有数据,但就是看不到模型,感觉是没导进去,因为如果collsion也用导入模型的话它会穿过地面一直往下掉,就是没有碰撞的判定。可奇怪的是我自己手动在gazebo里添加stl文件的话又是正常的能看到,说明gazebo是可以加载stl文件的,但通过xacro或者urdf来导入的话就是不行。

实在没辙了,给我xacro文件的人没遇到过这种情况,但他用的是双系统,我不确定这有没有影响,求解答。