使用SolidWorks导出urdf模型时,可能会遇到urdf模型与SolidWorks模型中的零件位姿不一致的问题。当SolidWorks装配体模型中包含多个相同零件时,更容易遇到这种问题。
问题描述
下面使用一个demo说明这个问题。一个base_link
上面安装四个相同的零件, 分别为p1, p2, p3, p4
, 可以看出模型在SolidWorks中显示是正常的,urdf参数配置也是正常的。
当在Rviz中显示生成的urdf文件时,各零件相对位姿是错误的。不同SolidWorks装配体生成的urdf模型中,各零件的错乱程度可能不同。
改变零件透明度,可以看到Rviz中的TF坐标与SolidWorks中定义的坐标系是一致的。这意味着问题出在了生成物体STL模型的过程中,使用urdf插件导出零件模型时,没有输出零件与坐标系准确的位姿关系。
解决办法
如果你遇到类似的问题,可以尝试重新单独生成各零件的STL模型,确保正确配置输出坐标系。
不需要重新配置urdf,直接使用新生成的STL文件替换掉原来urdf包中的STL文件即可。
下面是替换STL模型后在Rviz中的显示效果,各零件相对位姿关系与SolidWorks中一致。