【RViz2】导入urdf模型时报错:Could not load resource xxx,Unable to open file xxx,Error retrieving file xxx

项目场景:

初学 ROS2,想要在 RViz2 中显示 urdf 模型。其中 .urdf 文件引用了外部的 meshes 文件夹。
在这里插入图片描述
在这里插入图片描述


问题描述

在 RViz 中接入机器人描述话题后,出现如下报错
在这里插入图片描述


原因分析:

根据报错说明,应该是 meshes 中的文件未能正确导入到环境变量中。
检查工作空间下,install/pkg/share 文件夹中的 meshes 文件是否正确显示。
发现并未存在 visual 和 collision 文件夹。
所以,我们需要修改 setup.py 文件,让其正确包含。


解决方案:

urdf 文件中的 mesh 导入,应该使用如下格式:

<mesh filename="package://webots_ros2_ur_demo/meshes/visual/base.dae"/>

而不是诸如<mesh filename="file://$(find ur5_pick_and_place)/meshes/visual/base.dae"/>之类的格式。

修正 setup.py 文件,在 data_files 参数中加入以下内容:

	('share/' + package_name + '/meshes/visual', [
        'meshes/visual/base.dae',
        'meshes/visual/forearm.dae',
        'meshes/visual/shoulder.dae',
        'meshes/visual/upperarm.dae',
        'meshes/visual/wrist1.dae',
        'meshes/visual/wrist2.dae',
        'meshes/visual/wrist3.dae',
    ]),
    ('share/' + package_name + '/meshes/collision', [
        'meshes/collision/base.stl',
        'meshes/collision/forearm.stl',
        'meshes/collision/shoulder.stl',
        'meshes/collision/upperarm.stl',
        'meshes/collision/wrist1.stl',
        'meshes/collision/wrist2.stl',
        'meshes/collision/wrist3.stl',
    ]),

结果如下:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43557907/article/details/125869467