ROS启动gazebo.launch时XML标签不匹配错误求助
问题解决步骤
错误根源
XML标签不匹配导致xacro编译失败(返回码2),进而触发RLException无法加载robot_description,核心问题在my_robot.gazebo第129行第8列的XML标签闭合错误。
具体排查与修复
- 直接定位到文件第129行,检查前后的XML标签:
- 查看该行是开始标签还是闭合标签,确认对应的配对标签是否存在、拼写是否正确(比如是否把
</inertial>写成</inertia>,或者遗漏了</gazebo>这类闭合标签) - 检查标签嵌套逻辑,比如是否存在
<collision>标签内嵌套的<geometry>没闭合就直接闭合了<collision>的情况
- 查看该行是开始标签还是闭合标签,确认对应的配对标签是否存在、拼写是否正确(比如是否把
- 用工具快速校验XML合法性:
在终端执行命令:
工具会直接输出具体的标签错误位置和原因,方便快速定位xmllint /home/jainvrushab5/v_ws/src/my_robot_description/urdf/my_robot.gazebo - 修复后先单独验证xacro编译:
执行命令:
若没有报错,再重新运行xacro /home/jainvrushab5/v_ws/src/my_robot_description/urdf/my_robot.gazeboroslaunch my_robot_description gazebo.launch即可
常见示例错误
比如第129行附近存在遗漏闭合标签的情况:
<gazebo reference="base_link"> <material>Gazebo/Red</material> <!-- 此处遗漏了</gazebo>闭合标签 -->
只需补上</gazebo>即可解决。
内容的提问来源于stack exchange,提问作者Vrushab Jain
相关产品推荐
相关产品推荐

