摘要
文章主要记录一下一个三轴机械臂的sw文件转urdf格式的操作方法,本人是一名大学生,想记录一下自己的学习过程,文章有不对的地方请各位指出,互相学习,这个机械臂的sw文件来自B站:晴晴的机械臂。
目录
准备工作:
安装必要的软件工具:
软件版本:SolidWorks2021
ROS:ubuntu20.04-ros-noetic版本
插件:sw2urdfSetup2021.exe
插件下载:SolidWorks用户可以通过安装ROS官方提供的sw_urdf_exporter插件实现URDF格式的模型导出。具体操作步骤如下:首先访问wiki.ros.org/sw_urdf_exporter获取sw2urdfSetup.exe安装程序,下载完成后运行安装向导,待安装程序配置完毕后,SolidWorks软件将新增URDF导出功能模块,用户即可直接在SolidWorks环境中将模型转换为ROS适用的URDF格式文件。
安装插件
1.打开网址可以看到Download Installer,点击这个会跳转下一个窗口。
2.选择自己对应的sw版本我的sw是2021版本所以这里我选择了2021版本,如果是2021版本以上的solidwords没有对应的新版本插件那么2021也可以用。
3.下载好之后双击打开,然后选择自己想要安装到的位置(这个安装位置没有要求),之后我们打开SolidWorks,在工具tools中就可以看见插件了。
开始建立机械臂的urdf文件
1.基准轴的建立
用solidworks打开对应的装配体文件
这里我们首先要建立机械臂的基准轴
这样第一个就建立好了
这里特别要主要的地方是需要给建立好的基准轴改名为“joint_1”,这个名称最终会成为urdf里面的名称,所以尽力还是不要用默认的
以此类推建立好三个基准轴
2.插入点
因为要建立坐标系所以我们这里插入一些点(这个点就不用改名了它本身不会导入到urdf里)这里我们用“圆中心”来给底座添加一个点
还是用“圆中心”添加第二个点
“圆中心”添加第三个点
“圆中心”添加第四个点
这样我们整个的辅助点就添加完成了
3.坐标轴的建立
我们上面插入了辅助点,这个辅助点的作用就是用来当作我们坐标的原点,辅助建立坐标系(这里需要特别注意的地方是:我们机械臂的第一个坐标系和最后一个坐标系是最重要的千万不能错,因为将来我们要控制机械臂的时候或者要进行一些运算,所有的位姿都是基于末端这个坐标系,也就是末端坐标系是相对于基坐标系的位姿)
先选择这个点1,然后点击坐标系
让z轴朝上x轴朝前
这样第一个坐标系就建立好了,之所以这样做是因为要和rviz里面的对应
剩下的坐标系都是以此类推,建立好以后就如图所示:
4.使用SW_URDF工具
建立base_link,然后选住我们base_link包含的物件,注意这里选择的坐标系1,因为和base_link固连的是坐标系1
点击这个向上的箭头,可以看出我们的每一轴都是有子级和父级关系的
双击Empty_Link会跳转到这个页面,然后修改名称和选择固件
同理操作第三个
最后一个
检查一下选择的没有问题就点击Preview and Export..
等待完成后会弹出这个窗口
选择joint_1然后给关节限位进行一些参数的设定,转动范围设置到-3.14~3.14(单位是弧度)、力的大小设置200、速度大小设置为20(这些参数都可以根据你实际的进行修改)
这里我们把底座的这个参数改的大一些,因为你要导入到Gazebo里面是物理仿真环境,底座太轻会倒,也可以修改机械臂的颜色RGB最后一个是透明度,然后link_1、link_2、link_3重复上面的步骤就可以了(只有base_link需要修改重量其他不用)没有问题点击右下角
最后会弹出保存文件,这个文件的名称一定一定要修改因为你要是默认名称保存,装配体后缀有个.SLDASM,这个名称会保存到你所有的路径下面,后期你在ros里面使用的时候很不方便
5.在Ubuntu中打开(Rviz)
创建一个工作空间,把生成的文件放到里面,打开到对应目录
打开我们的display.launch文件,修改为True
执行下面的命令:
这里我们点击Add把机器人的模型添加进来
选择机器人模型然后修改Fixed Frame为:base_link
选择base_link
这个时候就可以拖动这个小插件,可以看到机械臂进行了转动