6.5 URDF优化_xacro
场景
前面 URDF 文件构建机器人模型的过程中,存在若干问题。
问题1:在设计关节的位置时,需要按照一定的规则计算,规则是固定的,但是在 URDF 中依赖于人工计算,存在不便,容易计算失误,且当某些参数发生改变时,还需要重新计算。
问题2:URDF中的部分内容是高度重复的,比如车轮的设计实现,不同轮子只是部分参数不同,形状、颜色、翻转量都是一致的,在实际应用中,构建复杂的机器人模型时,更是易于出现高度重复的设计,按照一般的编程思想涉及到重复代码应该考虑封装、复用,但是在之前的URDF文件中并没有相关操作。
......
如果在一般编程语言中遇到类似问题,我们可以通过变量结合函数解决。对应的,在 ROS 中也给出了类似编程的优化方案,该方案称之为:Xacro。
概念
Xacro 是 XML Macros 的缩写,Xacro 是一种 XML 宏语言,是可编程的 XML。
Xacro 可以声明变量,可以通过数学运算求解;可以使用流程控制控制执行顺序;还可以通过宏封装、复用功能,从而提高代码复用率以及程序的安全性。
作用
较之于纯粹的 URDF 实现,可以编写更安全、精简、易读性更强的机器人模型文件,且可以提高编写效率。