外观
踩坑Robotics Stack Exchange2024-07-17
ROS2 RViz2加载URDF网格报错Could not load mesh resource
本文由 AI 根据公开内容整理,可能有误,请以原文为准:ROS 2 humble hawksbill's rviz 2 not able to load either STL or DAE files. How can i resolve this?(Robotics Stack Exchange #112246)
状态:已解决
问题
在ROS 2 Humble中启动RViz2时,URDF解析报错“Could not load mesh resource”,提示无法加载指定绝对路径下的STL或DAE文件。即使文件物理路径正确且终端可访问,RViz2仍无法渲染几何体,robot_state_publisher虽能正常发布TF但模型显示缺失。
环境
ROS 2 Humble Hawksbill, RViz2, Ubuntu (root用户), Python launch文件, colcon构建系统
解决办法
- 将STL/DAE网格文件移入标准ROS 2功能包的
meshes目录下,确保目录结构符合ament/colcon规范。 - 修改URDF/xacro中的mesh filename属性,弃用绝对路径,改用
package://<package_name>/meshes/<file>.stl格式引用资源。 - 在工作空间根目录执行
colcon build命令重新编译包含网格资源的功能包。 - 在运行launch文件的终端中执行
source install/setup.bash以刷新资源索引与环境变量。 - 重新启动Python launch文件,RViz2即可通过资源检索机制正确加载并渲染网格模型。
原问题作者:ahiyantra;采纳答案作者:ahiyantra。原内容依 CC BY-SA 4.0 授权,本页摘要同样依 CC BY-SA 4.0 授权。
来源
本页事实对应的公开页面,以原文为准。