欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

将xacro格式文件转换为urdf格式并对其进行检查格式,并生成机器人模型的结构图

程序员文章站 2024-03-08 20:26:22
...

   我在虚拟机的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文件

将xacro格式文件转换为urdf格式并对其进行检查格式,并生成机器人模型的结构图

   3、用 check_urdf指令对该urdf文件进行检查,如下面的例子所示,其中后半段是上面生成的urdf的文件名

      check_urdf racecar.urdf.urdf

   当该文件有错误时,比如下图所示:

将xacro格式文件转换为urdf格式并对其进行检查格式,并生成机器人模型的结构图

   就可以根据提示去寻找错误了,将错误解决后再运行检查指令,就可以得到机器人模型中的层级关系,如下所示:

将xacro格式文件转换为urdf格式并对其进行检查格式,并生成机器人模型的结构图

   这表示已经没有错误了,可以尝试去Gazebo中加载了,但是上图的层级关系看起来并不是很形象,这个时候,我们可以运用urdf_to_graphiz命令去生成机器人模型的结构图了,该指令后面跟的是urdf文件的文件名,比如本文中的例子:

      urdf_to_graphiz racecar.urdf.urdf

   它会生成.gv, .pdf两种格式文件,如下所示:

将xacro格式文件转换为urdf格式并对其进行检查格式,并生成机器人模型的结构图

将xacro格式文件转换为urdf格式并对其进行检查格式,并生成机器人模型的结构图

   我之前写过一篇名为 以阿克曼转向车为例对URDF和XACRO文件进行解读 的文章,链接如下:https://blog.csdn.net/qq_44339029/article/details/120682834?spm=1001.2014. 3001.5501(点击可跳转)

   在那篇文章中,我通过对XACRO文件进行解读,手动绘制了,除轮系结构之外的,该机器人的结构图,如下所示(拖动或点击可看大图):

将xacro格式文件转换为urdf格式并对其进行检查格式,并生成机器人模型的结构图

   接下来,我们打开刚才生成的pdf文件,看一下它自动生成的该机器人完整的结构图,如下所示(拖动或点击可看大图):

将xacro格式文件转换为urdf格式并对其进行检查格式,并生成机器人模型的结构图

   有了上面的机器人模型的结构图,再对机器人的结构进行分析就很直观和方便了,对程序的理解也有很大的帮助