将xacro格式文件转换为urdf格式并对其进行检查格式,并生成机器人模型的结构图
我在虚拟机的Ubuntu20.04中,运行Gazebo,加载XACRO文件的时候,如果XACRO文件有错误,很容易导致虚拟机卡死,一直没找到解决卡死的办法,只能将虚拟机关机,再打开,可想而知通过这种办法寻找文件中的错误,及纠错就显得很麻烦,这个时候就可以将XACRO文件转化为URDF文件,并通过check_urdf对其进行检查了,直至没有错误再在Gazebo中加载,具体过程如下: 1、在
我在虚拟机的Ubuntu20.04中,运行Gazebo,加载XACRO文件的时候,如果XACRO文件有错误,很容易导致虚拟机卡死,一直没找到解决卡死的办法,只能将虚拟机关机,再打开,可想而知通过这种办法寻找文件中的错误,及纠错就显得很麻烦,这个时候就可以将XACRO文件转化为URDF文件,并通过check_urdf对其进行检查了,直至没有错误再在Gazebo中加载,具体过程如下:
1、在终端运行roscore
2、在你要检查的文件所在的文件夹下,右键,选择在终端打开,输入以下命令
rosrun xacro xacro 要检查的文件.xacro > 要检查的文件.urdf
要将“要检查的文件”换成你需要进行检查的文件的名字,比如我要检查的文件全名是racecar.urdf.xacro,则其转换后的文件全名为racecar.urdf.urdf,则该文件的转换语句如下
rosrun xacro xacro racecar.urdf.xacro > racecar.urdf.urdf
这个时候,你会发现它生成了对应的urdf文件
3、用 check_urdf指令对该urdf文件进行检查,如下面的例子所示,其中后半段是上面生成的urdf的文件名
check_urdf racecar.urdf.urdf
当该文件有错误时,比如下图所示:
就可以根据提示去寻找错误了,将错误解决后再运行检查指令,就可以得到机器人模型中的层级关系,如下所示:
这表示已经没有错误了,可以尝试去Gazebo中加载了,但是上图的层级关系看起来并不是很形象,这个时候,我们可以运用urdf_to_graphiz命令去生成机器人模型的结构图了,该指令后面跟的是urdf文件的文件名,比如本文中的例子:
urdf_to_graphiz racecar.urdf.urdf
它会生成.gv, .pdf两种格式文件,如下所示:
我之前写过一篇名为 以阿克曼转向车为例对URDF和XACRO文件进行解读 的文章,链接如下:https://blog.csdn.net/qq_44339029/article/details/120682834?spm=1001.2014. 3001.5501(点击可跳转)
在那篇文章中,我通过对XACRO文件进行解读,手动绘制了,除轮系结构之外的,该机器人的结构图,如下所示(拖动或点击可看大图):
接下来,我们打开刚才生成的pdf文件,看一下它自动生成的该机器人完整的结构图,如下所示(拖动或点击可看大图):
有了上面的机器人模型的结构图,再对机器人的结构进行分析就很直观和方便了,对程序的理解也有很大的帮助
更多推荐
所有评论(0)