ROS2 Humble中Fusion360导出URDF模型在RViz无显示问题求助
解决ACDC4Robot导出URDF在ROS2 Humble中RViz显示问题
一、修正文件目录结构
ROS2功能包需遵循标准资源目录结构(以my_package为例):
my_package/ ├── src/ ├── urdf/ # 存放URDF文件 │ ├── robot.urdf ├── meshes/ # 存放STL模型文件,与urdf目录同级 │ ├── base_link.stl ├── package.xml ├── CMakeLists.txt
不要将meshes目录嵌套在urdf下,ROS资源查找机制默认从包根目录开始检索。
二、正确配置URDF中的STL路径
URDF的mesh标签需使用ROS2支持的包路径格式,无需file://前缀,写法如下:
<mesh filename="package://my_package/meshes/base_link.stl" scale="0.001 0.001 0.001" />
注意:my_package需替换为你实际的功能包名称,大小写必须完全匹配。
三、完善功能包配置
修改package.xml:
添加资源导出声明与必要依赖,让ROS2能检索到urdf和meshes文件:<depend>rclcpp</depend> <depend>urdf</depend> <depend>rviz2</depend> <export> <build_type>ament_cmake</build_type> <urdf file="urdf/robot.urdf" /> </export>修改CMakeLists.txt:
添加安装指令,将urdf和meshes目录安装到ROS共享目录:install(DIRECTORY urdf meshes DESTINATION share/${PROJECT_NAME}/ ) ament_package()编译后ROS2才能正确识别这些资源。
四、RViz的正确设置
- 启动RViz后,添加
RobotModel插件。 - 推荐通过参数服务器加载URDF:
在终端执行命令将URDF加载到参数服务器:
然后在RViz的ros2 param set /robot_state_publisher robot_description "$(xacro my_package/urdf/robot.urdf)"RobotModel设置中,将Description Source选为Parameter,Description Parameter填写robot_description。
五、常见问题排查
- 验证STL文件完整性:用Fusion360重新导出或MeshLab打开检查是否损坏。
- 检查路径大小写:ROS2对路径大小写敏感,确保包名、文件名与URDF中的写法完全一致。
- 查看终端日志:启动RViz和
robot_state_publisher时,终端会输出路径错误提示,可根据信息定位问题。 - 确认缩放比例:ACDC4Robot导出模型单位多为毫米,
0.001缩放合理,若模型仍不显示可调整缩放值或检查模型原点位置。
内容的提问来源于stack exchange,提问作者blup bloop
相关产品推荐
相关产品推荐

