ROS学习—【在solidworks环境中将六自由度机械臂转换为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>
  <arg
    name="model" />
  <arg
    name="gui"
    default="False" />
  <param
    name="robot_description"
    textfile="$(find arm)/urdf/arm.urdf" />
  <param
    name="use_gui"
    value="$(arg gui)" />
  <node
    name="joint_state_publisher"
    pkg="joint_state_publisher"
    type="joint_state_publisher" />
  <node
    name="robot_state_publisher"
    pkg="robot_state_publisher"
    type="state_publisher" />
  <node
    name="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>
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值