ROS笔记(二) SolidWorks to URDF 并实现可视化

尝试过写urdf和xacro,没有试过使用SolidWorks导出模型。
使用SolidWorks 2016
使用SolidWorks to URDF Exporter工具:点这里
SolidWorks_2016帮助文档:点这里

使用SolidWorks画出各个零件,再在新建装配图将各个零件配合起来。
ROS笔记(二) SolidWorks to URDF 并实现可视化_第1张图片
插入基准轴后使用URDF Exporter工具。(通过后续的感受和理解,此处还应插入坐标系,软件自动计算的坐标系有的会反转方向)
如何使用这个工具网上教程很多:点这里
将导出的文件放入ubuntu工作空间下,运行launch文件 夹中的display.launch,选定坐标系,再添加机器人模型,就可将模型显示在rviz中。模型倾倒,和坐标系有关。
ROS笔记(二) SolidWorks to URDF 并实现可视化_第2张图片
在urdf代码中添加一个base_link和base_link_joint用于修正模型位置。


    
  

    

    

    

  

再次运行display.launch,拖动GUI按钮就可以改变各个关节的角度。
ROS笔记(二) SolidWorks to URDF 并实现可视化_第3张图片

至此SolidWorks导出URDF并显示完成。

xacro比URDF更方便,将URDF修改为xacro。

在工作空间/src下新建功能包:

// catkin_create_pkg mydog_description urdf xacro

ROS笔记(二) SolidWorks to URDF 并实现可视化_第4张图片
meshes:放置SolidWorks导出的模型渲染文件
urdf:存放机器人模型的URDF。
重命名导出的URDF为xacro。
ROS笔记(二) SolidWorks to URDF 并实现可视化_第5张图片
在robot name 后加上:

// xacro="http://www.ros.org/wiki/xacro"

ROS笔记(二) SolidWorks to URDF 并实现可视化_第6张图片
在xacro模型下可以定义常量,于是定义了两个常量,代码相应位置做常量使用的替换即可。
例如:
ROS笔记(二) SolidWorks to URDF 并实现可视化_第7张图片

编辑launch启动文件

主要是加载xacro并在rviz中显示。
下面launch文件是在rviz中显示机器人的一种固定形态,只需修改对应文件夹名字。
在launch文件夹下创建display.launch



    

    
  
    

    
    
    


配置好坐标系,添加机器人模型就可以在rviz中看到模型并通过GUI改变关节角度了。
接着再来修改模型姿态(重新定义关节角度)使得模型初始状态更规范:
打开xacro模型代码,修改 简单说origin表示的是child link坐标系相对于parent link坐标系的距离和旋转, xyz和rpy
比如:

 (y轴旋转90度) 

这个角度产生于SolidWorks装配图零件配合时的姿态还和产生的坐标系有关。由于SolidWorks使用不熟悉,并没有在软件里规范,只是拖到了大概的位子,于是在xacro代码中修改,可以通过一边修改一边通过rviz来查看。一共修改了4条腿,共12个关节的rpy。
ROS笔记(二) SolidWorks to URDF 并实现可视化_第8张图片
检查URDF模型整体结构:
在urdf文件夹下执行 urdf_to_graphiz+要检查的urdf文件

urdf_to_graphiz mydog_description.xacro 

会在当前路径下创建一个pdf文件
ROS笔记(二) SolidWorks to URDF 并实现可视化_第9张图片

将模型导入gazebo

在urdf文件添加link惯性碰撞属性,gazebo标签,为joint添加传动装置,添加gazebo控制插件后。
同样的在工作空间/src下新建功能包名为:mydog_gazebo
创建launch文件夹和world文件夹。
launch文件夹下新建文本mydog_world.launch



  
 
  
  
  
  
  

  
  

    
    
    
    
    
  

  
  

  
  




即把模型加入gazebo中。
ROS笔记(二) SolidWorks to URDF 并实现可视化_第10张图片
遇到的一些问题:
1.之前也使用过SolidWorks2018,rviz出现过很多零件漂浮,是URDF Exporter插件和2018有不兼容的问题存在。
2.生成过程中都遇到过零件散落问题。
ROS笔记(二) SolidWorks to URDF 并实现可视化_第11张图片
ROS笔记(二) SolidWorks to URDF 并实现可视化_第12张图片
在bilibili中SUES木鸢机甲工作室 转发古月居视频 还提到:“在SolidWorks中装配体基座,也就是第一个零件的坐标系应该是Z轴朝上,其他都是y轴朝上,这个非常重要。古月居老师在这个视频里的SW2URDF的插件版本是比较老的了,新的版本就会出现这个坐标系问题。”
我之前使用的是自动生成坐标系和基准轴或许是电脑配置问题导致坐标系没有计算好,可能出现零件散落。
我在实际操作中还感觉到,有时需要重复操作,比如上一步设置了参数,到下一步再切回去参数就没有了,有时候计算不出惯性参数,有时候插件的设置会重置到初始状态,感觉是兼容性问题。

在手动插入基准轴和坐标系后,导出URDF没有再出现过零件散落。
3.gazebo模型点击运行后,模型出现侧翻。
可能是和SolidWorks原点位子有关。
找资料,说的是要让重心和原点重合。使用“配合”,首先找到你模型的重心,然后找到你坐标系的原点位置,将两个“配合”就行,将你小车的重心和坐标原点的重心设置重合就行。
我的版本实际操作不行,报错过定义。我是通过装配第一个固定件的时候放置零件,使原点大致接近到重心位子。更好的解决方法还没找到,但是这样设定后导出的urdf模型到gazebo不再侧翻 。

你可能感兴趣的:(ROS笔记)