项目场景:
初学 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',
]),
结果如下: