在编写xacro文件时候遇到的问题总结:
一、XML parsing error: mismatched tag: line **, column *
提示某一行有问题,一定要注意检查标签格式是否正确,
当其指向末行</robot>时,要检查前文中某行标签是否完整,比如我出错是由于引用宏时,末尾忘记加上结束标记 /
<xacro:base > ❌
<xacro:base /> ✔
因此要养成好习惯,运行前多检查格式
二、Invalid <param> tag: Cannot load command parameter [robot_description]: command [['/opt/ros/noetic/lib/xacro/xacro', '--inorder',
或许关键点不在--inorder,看看这行红字上方是否有标出其他的错误
三、Failed to build tree: parent link [base_link] of joint [base_left_motor_joint] not found.
这是因为我将base_link所在模块进行了宏定义,但是引用格式出错,导致base_link不存在
notic版本引用宏定义时,要在前面加上<xacro:>,即:
<xacro:neme param1="value1" param2="value2".../>
该条参考:ROS 20.04版本(noetic 版本 ) ROS的xacro模型优化问题_丘 WH的博客-CSDN博客
四、Unable to parse component [-1*0.12] to a double (while parsing a vector value)
调用常量定义和数学公式的时候,一定要注意格式:
<origin xyz="0 0 ${number}*${plate_height}" rpy="0 0 0" /> ❌
<origin xyz="0 0 ${number*plate_height}" rpy="0 0 0" /> ✔
即便是几个常量的计算,也要写在一个{ }里。