六自由度机械臂SolidWorks模型转换为URDF模型

  • 一、工具下载
    • 1.1 下载SolidWorks
    • 1.2 下载URDF插件
  • 二、建立机械臂坐标系
    • 2.1 概要
    • 2.2 建立坐标系
  • 三、转换URDF文件
    • 3.1 加载URDF插件
    • 3.2 配置机械臂参数
    • 3.3 修改各连杆颜色
    • 3.4 修正URDF文件

一、工具下载

1.1 下载SolidWorks

本文所使用的建模软件为SolidWorks 2018,软件(含破解器)下载地址如下:

https://pan.baidu.com/s/1JnU5cXiXVAL58RfCxjCN3w
提取码:dfu2
压缩包解压密码:0daydown

1.2 下载URDF插件

  • URDF插件【官方下载】地址如下:

     http://wiki.ros.org/sw_urdf_exporter
    
  • URDF插件【网盘下载】地址如下:

     链接:https://pan.baidu.com/s/1OjHHbYYVexuZKGd3veA33w 提取码:j59t
    

二、建立机械臂坐标系

2.1 概要

在ROS中使用MoveIt!和Rviz对机械臂进行运动学求解,机械臂各个关节的坐标系建立可以直接在SolidWorks内完成。针对机械臂每一个关节,通常将基准轴与关节坐标系的Z轴重合,如下图所示。

2.2 建立坐标系

  • 】若建立的机械臂各关节能直接添加基准轴,可省略第2步。
  1. 在SolidWorks功能区,点击【参考几何体】。
  2. 选择【点】,在机械臂基座上点击一个圆柱面(该圆柱面中心通常与第一个关节旋转轴在同一条线上);在第一个关节位置,点击电机旋转轴所对应圆柱面,建立了第二个点;以此类推,直到机械臂第六个关节旋转轴的点建立完成;综上,一共建立了7个点。
  3. 选择【基准轴】,由于机械臂基座为静止状态,没有旋转运动,因此无需建立基准轴。从第一个关节开始,依次点击第2步所建立的点,完成基准轴的建立;综上,一共建立了6个基准轴。
  4. 选择【坐标系】,点击机械臂基座的“点”,将Z轴方向设成垂直机械臂基座朝上(Z轴参考面选择一个与底座平行的任意面即可),为便于区分,将基座标系命名为坐标系0,X轴方向和Y轴方向根据自身需求设置;从第一个关节到第六个关节,Z轴的方向统一设置成与第3步建立的基准轴重合 ,X轴方向和Y轴方向根据自身需求设置,坐标系命名为:坐标系1、坐标系2…坐标系6;综上,一共建立了7个坐标系。

三、转换URDF文件

3.1 加载URDF插件

在SolidWorks顶部菜单栏点击【工具】,点击最下方三角形图案,往下翻阅,点击【File】→【Export as URDF】,如下图所示。

3.2 配置机械臂参数

第一步:

  • 【Link Name】:填写机械臂的基座名称,通常命名为base_link。
  • 【Global Origin Coordinate System】:机械臂基座所对应参考坐标系,选择坐标系0。
  • 【Link Components】:选择组成机械臂基座(base_link)的所有零件,如下图所示蓝色部分。
  • 【Number of child links】:与机械臂基座(base_link)连接的子连杆数量,此处为1个。
  • 点击base_link下的Empty_Link。


第二步:

  • 【Link Name】:填写机械臂基座的子连杆名称,便于区分,将该子连杆命名为second。
  • 【Joint Name】:填写关节名称,该关节连接的2个连杆为:base_link和second,便于区分,将该关节命名为joint_base_second。
  • 【Reference Coordinate System】:连杆second所对应的坐标系,选择坐标系1。
  • 【Reference Axis】:连杆second的旋转轴,选择基准轴1。
  • 【Joint Type】:关节类型,选择旋转类型。
  • 【Link Components】:选择组成连杆second的所有零件,如下图所示蓝色部分。
  • 【Number of child links】:与连杆second连接的子连杆数量,此处为1个。
  • 点击second下的Empty_Link


第三步:

  • 【Link Name】:填写连杆second的子连杆名称,将该子连杆命名为third。
  • 【Joint Name】:填写关节名称,该关节连接的2个连杆为:连杆second和连杆third,将该关节命名为joint_second_third。
  • 【Reference Coordinate System】:连杆third所对应的坐标系,选择坐标系2。
  • 【Reference Axis】:连杆third的旋转轴,选择基准轴2。
  • 【Joint Type】:关节类型,选择旋转类型。
  • 【Link Components】:选择组成连杆third的所有零件,如下图所示蓝色部分。
  • 【Number of child links】:与连杆third连接的子连杆数量,此处为1个。
  • 点击third下的Empty_Link。


第四步:

  • 【Link Name】:填写连杆third的子连杆名称,将该子连杆命名为fourth。
  • 【Joint Name】:填写关节名称,该关节连接的2个连杆为:连杆third和连杆fourth,将该关节命名为joint_third_fourth。
  • 【Reference Coordinate System】:连杆fourth所对应的坐标系,选择坐标系3。
  • 【Reference Axis】:连杆fourth的旋转轴,选择基准轴3。
  • 【Joint Type】:关节类型,选择旋转类型。
  • 【Link Components】:选择组成连杆fourth的所有零件,如下图所示蓝色部分。
  • 【Number of child links】:与连杆fourth连接的子连杆数量,此处为1个。
  • 点击fourth下的Empty_Link。


第五步:

  • 【Link Name】:填写连杆fourth的子连杆名称,将该子连杆命名为fifth。
  • 【Joint Name】:填写关节名称,该关节连接的2个连杆为:连杆fourth和连杆fifth,将该关节命名为joint_fourth_fifth。
  • 【Reference Coordinate System】:连杆fifth所对应的坐标系,选择坐标系4。
  • 【Reference Axis】:连杆fifth的旋转轴,选择基准轴4。
  • 【Joint Type】:关节类型,选择旋转类型。
  • 【Link Components】:选择组成连杆fifth的所有零件,如下图所示蓝色部分。
  • 【Number of child links】:与连杆fifth连接的子连杆数量,此处为1个。
  • 点击fifth下的Empty_Link。


第六步:

  • 【Link Name】:填写连杆fifth的子连杆名称,将该子连杆命名为sixth。
  • 【Joint Name】:填写关节名称,该关节连接的2个连杆为:连杆fifth和连杆sixth,将该关节命名为joint_fifth_sixth。
  • 【Reference Coordinate System】:连杆sixth所对应的坐标系,选择坐标系5。
  • 【Reference Axis】:连杆sixth的旋转轴,选择基准轴5。
  • 【Joint Type】:关节类型,选择旋转类型。
  • 【Link Components】:选择组成连杆sixth的所有零件,如下图所示蓝色部分。
  • 【Number of child links】:与连杆sixth连接的子连杆数量,此处为1个。
  • 点击sixth下的Empty_Link。


第七步:

  • 【Link Name】:填写连杆sixth的子连杆名称(也即末端执行器的名称),将该子连杆命名为seventh。
  • 【Joint Name】:填写关节名称,该关节连接的2个连杆为:连杆sixth和连杆seventh,将该关节命名为joint_sixth_seventh。
  • 【Reference Coordinate System】:连杆seventh所对应的坐标系,选择坐标系6。
  • 【Reference Axis】:连杆seventh的旋转轴,选择基准轴6。
  • 【Joint Type】:关节类型,选择旋转类型。
  • 【Link Components】:选择组成连杆seventh的所有零件,如下图所示蓝色部分。
  • 【Number of child links】:与连杆seventh连接的子连杆数量,此处为0个。


第八步:

  • 点击【Preview and Export】,显示下图关节属性配置界面,界面左端显示了六自由度机械臂的六个关节名称。
  • 依次点击六个关节,在界面右端【Limit*】选项中设置关节极限角度范围,通常设为±90°,也即下界-1.57弧度,上界1.57弧度。
  • 其余选项默认即可,点击界面右下角【Next】。

3.3 修改各连杆颜色

  • 通过设定RGB颜色通道和Alpha透明度通道,将六自由度机械臂各个连杆设为不同颜色,便于后续修改机械臂参数以及在ROS环境中更直观模拟机械臂运动。

  • 机械臂基座(base_link):RGB通道设为111,Alpha透明度通道设为1,如下图所示,以此类推。

  • 连杆second:RGB通道设为000,Alpha透明度通道设为1。

  • 连杆third:RGB通道设为001,Alpha透明度通道设为1。

  • 连杆fourth:RGB通道设为011,Alpha透明度通道设为1。

  • 连杆fifth:RGB通道设为111,Alpha透明度通道设为1。

  • 连杆sixth:RGB通道设为110,Alpha透明度通道设为1。

  • 连杆seventh:RGB通道设为101,Alpha透明度通道设为1。

  • 点击界面右下角【Export URDF and Meshes】导出URDF文件包,选择保存路径,并将文件包命名为arm(小写)。

3.4 修正URDF文件

进入上述导出的文件夹arm,需做如下两处改动:

  • 进入launch文件夹,以文本方式打开display.launch,将第6行代码中False改为True。
<launch><argname="model" /><argname="gui"default="False" /><paramname="robot_description"textfile="$(find arm)/urdf/arm.urdf" /><paramname="use_gui"value="$(arg gui)" /><nodename="joint_state_publisher"pkg="joint_state_publisher"type="joint_state_publisher" /><nodename="robot_state_publisher"pkg="robot_state_publisher"type="state_publisher" /><nodename="rviz"pkg="rviz"type="rviz"args="-d $(find arm)/urdf.rviz" />
</launch>
  • 在arm文件夹,以文本方式打开package.xml文件,将第10行代码email的内容修改为自己的邮箱。
<package format="2"><name>arm</name><version>1.0.0</version><description><p>URDF Description package for arm</p><p>This package contains configuration data, 3D models and launch files
for arm robot</p></description><author>TODO</author><maintainer email="TODO@email.com" /><license>BSD</license><buildtool_depend>catkin</buildtool_depend><depend>roslaunch</depend><depend>robot_state_publisher</depend><depend>rviz</depend><depend>joint_state_publisher</depend><depend>gazebo</depend><export><architecture_independent /></export>
</package>

ROS学习—【在solidworks环境中将六自由度机械臂转换为URDF模型】相关推荐

  1. 六自由度机械臂的solidworks模型图及分享

    之前曾经在一个机械臂制造商的网站上浏览过一款机械臂 603桌面级六自由度机械臂. 于是便想使用该款机械臂来学习ros. 于是我便使用了solidworks将这款机械臂按照一比一的比例画了出来,但是长度 ...

  2. 六自由度机械臂建模仿真(matlab程序),有控制面板,标价即为真实价格,代码可流畅运行

    六自由度机械臂建模仿真(matlab程序),有控制面板,标价即为真实价格,代码可流畅运行 1.机器人运动学正逆解.动力学建模仿真与轨迹规划,雅克比矩阵求解 2.蒙特卡洛采样画出末端执行器工作空间 3. ...

  3. 大象机器人推出史上最紧凑的六自由度机械臂-mechArm

    2020年,秉持"Enjoy Robots World"的愿景和使命,在保留大部分工业型机器人功能的前提下,大象机器人与M5stack 强强联合共同出品了myCobot --全球最 ...

  4. ROS学习笔记(1)6轴机器臂的URDF文件的生成并用rviz和moveit显示

    时间:2018-12 地点:杭州 作者:潜龙 邮箱:chenhfxy@163.com ========================================================= ...

  5. 六自由度机械臂基于力传感器的末端力控及拖动示教

    ​近年来,工业机器人的运用范围不断扩大,金属成形.铸造行业.冶金行业等多种工业制造领域都可以见到机器人忙碌的身影,但是随着工艺标准的提升,越来越多的制造工艺仅靠工业机器人传统的位置控制难以胜任.如:精 ...

  6. ros melodic控制真实机械臂之urdf模型生成

    目录 一.solidworks及sw_urdf_repoter插件安装 二.在solidworks中为机械臂模型加入坐标系 三.用插件导出urdf模型 四.在ros中验证导出的模型是否成功 如果需要控 ...

  7. SolidWorks导出机械臂的URDF模型各个关节坐标系设置

    郑重提示:为了记录自己在学习过程中遇到的问题,所以记录了这篇博客..在后面学习的过程中发现之前这篇博客记录的导出URDF模型坐标系设置方法存在一些问题,不好写DH参数表,,更更要命的是,好些朋友都收藏 ...

  8. ROS下dobot(magician)机械臂的URDF模型 有兴趣的可以下载来玩

    大家好,看到很多人想玩ROS来控制Dobot,我这里有一个URDF模型分享给大家.下载链接https://download.csdn.net/download/qq_42145185/10818360 ...

  9. 人的手臂的自由度的数目以及六自由度机械臂的限制

    声明:非原创,侵权必删. 摘自(9 条消息)人的手臂有几个自由度? - 知乎 https://www.zhihu.com/question/36475827/answer/77655656 人的手臂有 ...

  10. 六自由度机械臂正向运动学与姿态绘制with matlab

    如果不依赖机器人工具箱,希望自己通过作图显示机械臂某一时刻的工作姿态怎么来实现呢.首先我们知道原理是通过姿态的旋转变换以及平移变换来实现末端坐标的计算.计算完成后的将关节点连接起来便构成了机械臂在某一 ...

最新文章

  1. 不同表结构数据迁移_数据结构:哈希 哈希函数 哈希表
  2. 【python练习】支付宝自动偷取能量
  3. 全球及中国汽车涂料市场前景态势与投资渠道分析报告2022版
  4. layui表格更改一列数据_layui数据表格隐藏列的方法介绍
  5. CoreAnimation编程指南(简介)转自:http://www.dreamingwish.com/
  6. Win 10 安装 Maven 与 Maven 知识点扫盲
  7. Lenovo Quick Fix:在Win7系统镜像中注入USB3.0和NVMe驱动解决无法安装Win7的问题
  8. recipe terminated with fatal error: spawn xelatex enoent.
  9. BF2地图下载 战地系列非官方单机地图集
  10. “绿多多”绿色资产资讯:良设板+“空间优造”亮相雄安 绿色生态进击!
  11. 《管理学》第九章 沟通
  12. gif图怎么压缩大小?在线压缩gif技巧
  13. 组合数学(二)排列数和组合数
  14. 在职研究生(多重继承)Python
  15. Python 爬虫篇#笔记02# | 网页请求原理 和 抓取网页数据
  16. 自己动手搭建Fabric网络,修改当前工作目录名之后出现的错误
  17. SRE(运维)最重要的是什么,看这一篇就够了
  18. js 根据空格截取字符串
  19. 美团2021校招笔试-编程题(通用编程试题,第1场)1. 小美的送花线路
  20. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--quark renderer代码分析 第十二篇 绘画系统分析(3):连线(line)

热门文章

  1. python学习笔记7-读取pdf并输出到excel
  2. 编译原理第三版课后习题
  3. python 存储对象_Python使用redis存储对象
  4. 需求分析,我们应当怎样做
  5. 智能优化算法——遗传算法原理(附代码)
  6. windows内核基础
  7. 一些斗鱼TV Web API [Some DouyuTv API]
  8. deep|Bayes(4)
  9. 从零开始撸一个ajax框架
  10. ZZH:魔兽世界之000:MPQ