700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ROS学习—【在solidworks环境中将六自由度机械臂转换为URDF模型】

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

时间:2024-05-05 21:58:33

相关推荐

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

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

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

一、工具下载

1.1 下载SolidWorks

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

/s/1JnU5cXiXVAL58RfCxjCN3w 提取码:dfu2压缩包解压密码:0daydown

1.2 下载URDF插件

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

/sw_urdf_exporter

URDF插件【网盘下载】地址如下:

链接:/s/1OjHHbYYVexuZKGd3veA33w 提取码:j59t

二、建立机械臂坐标系

2.1 概要

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

2.2 建立坐标系

】若建立的机械臂各关节能直接添加基准轴,可省略第2步。 在SolidWorks功能区,点击【参考几何体】。选择【点】,在机械臂基座上点击一个圆柱面(该圆柱面中心通常与第一个关节旋转轴在同一条线上);在第一个关节位置,点击电机旋转轴所对应圆柱面,建立了第二个点;以此类推,直到机械臂第六个关节旋转轴的点建立完成;综上,一共建立了7个点。选择【基准轴】,由于机械臂基座为静止状态,没有旋转运动,因此无需建立基准轴。从第一个关节开始,依次点击第2步所建立的点,完成基准轴的建立;综上,一共建立了6个基准轴。选择【坐标系】,点击机械臂基座的“点”,将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 filesfor arm robot</p></description><author>TODO</author><maintainer email="TODO@" /><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>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。