• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学

人工智能 gpeng832 3164次浏览 0个评论

  URDF(Universal Robot Description Format)——通用机器人描述格式,它是ROS里边使用的一种机器人的描述文件,包含的内容有:连杆、关节,运动学和动力学参数、可视化模型、碰撞检测模型等。   到目前为止,本文的主要内容有两个:(1)将solidworks里绘制的三连杆机械臂的三维模型转化为URDF文件,并在rviz中打开;(2)在rviz中测试该模型的逆运动学。  

一, 将Solidworks模型转化为URDF文件

  【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学  

下载sw_urdf_exporter插件:

  下载ROS提供的solidworks转urdf的插件安装文件(链接)—sw2urdfSetup.exe,安装之后再打开solidworks(如果你的solidworks版本无法加载插件的话,多试几个版本,本人使用的是2014版本)后会在菜单栏上的自定义选项旁边箭头下找到“插件”,并点击,如下图所示:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学  

加载插件:

  进入如下界面,选择“SW2URDF”插件并选择,点击确定加载,如下图:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学  

绘制机械臂的简易模型:

  本文要研究的是平面三连杆构型的机械臂,一般我们习惯将关节的轴设为Z轴,故在绘制机械臂模型的时候,注意将各个关节的轴的坐标定义准确,如下一步骤和图片所示。  

添加坐标系和转轴:

  在绘制各个连杆的零件图的时候,添加各自的坐标系和转轴(其实就是下一个连杆的关节轴),点击菜单栏中的“插入”->“参考几何体”->“坐标系”,“基准轴”,5个连杆的坐标系和转轴如下图所示,从左至右连杆的名称分别为:base_link(coordinate0,axis0),link1(coordinate1,axis1),link2(coordinate2,axis2),link3(coordinate3,axis3),gripper(coordinate_gripper)。   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学  

在URDF界面设置坐标系和转轴:

  打开要转换的模型的装配体,如下图所示,在工具栏上出现file选项,点击出现Export to URDF,左边会出现URDF Exportor的属性界面:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   下面是分别对各个连杆的坐标系和转轴进行设置,使用了前面添加的坐标系和轴,具体来说就是: link1的坐标系为coordinate1,绕axis0旋转,关节类型:revolute; link2的坐标系为coordinate2,绕axis1旋转,关节类型:revolute; link3的坐标系为coordinate3,绕axis2旋转,关节类型:revolute; gripper的坐标系为coordinate_gripper,绕axis3,它是固定(fixed)关节。 然后点击“preview and export”:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学  

设置关节极限

  需要在红框处填写上界和下界,否则在运行的时候会出错,然后点击“finish”,会生成package文件,注意默认生成的名字带有后缀.SLDASM,需要将其改成不带下标点并且全都为小写字母的名称,否则编译会出错。   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学  

生成package文件

  生成的package文件如下图所示:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   可以在urdf文件夹里找到生成的urdf文件。  

修正package文件内容

  我在测试的时候发现生成的package文件里有些是错误的,直接编译是无法通过的,需要修正的地方有三个:(1)package.xml里的的作者邮箱;(2)将urdf文件夹的名字改为robots;(3)将display.launch里的一个参数改成“True”。   如下所示,默认生成的package.xml里的email是不合法的,只要改成合法的email就可以了。  

  </description>
  <author>me</author>
  <maintainer email="me2email.com" /> //改为合法的email
  <license>BSD</license>
  <buildtool_depend>catkin</buildtool_depend>
  <build_depend>roslaunch</build_depend>

  如下所示,display.launch文件里的里的False改为True,否则无法打开Joint State Publish工具。  

<launch>
  <arg
    name="model" />
  <arg
    name="gui"
    default="False" />//将False改为True
  <param
    name="robot_description"
    textfile="$(find manipulator34)/robots/manipulator34.urdf" />

 

ROS下测试

  通过roslaunch 命令启动display.launch以后,在rviz的界面中将Global Options下的Fixed Frame 由map改为base_link(自己定义的基座的名字),最终效果如下图所示:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学

二, 在rviz中进行逆运动学测试

  本部分的内容是使用Moveit提供的setup_assistant来配置机械臂的package文件,需要使用到上一部分生成的URDF文件。 使用命令  

roslaunch moveit_setup_assistant setup_assistant.launch

  打开setup_assistant:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   点击Create New Moveit Configuration Package 导入URDF文件(在上一部分已经生成的文件中找到URDF文件)   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   设置Self-Collision,点击Generate Default Collsion Matrix :   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   设置Virtual Joints,Parent Frame Name应设为world_frame:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   Planning Groups设置名称,选择运动学求解器,然后点击Add Kin. Chain:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   把base_link设置为Base Link,把gripper设置为Tip Link:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   设置一个Robot Pose:     【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   End Effectors 和Passive Joints 没有设置,暂时不知道这两项有什么用。 作者信息的邮箱的格式一定要准确:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   然后生成配置文件,选择目录和package的名称。 运行package 的demo.launch,在rviz中点击机械臂末端的小球和箭头,随着末端位置的变化,机械臂的构型会逐渐变化,这就是求解逆运动学的过程。   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   还可以给定一个起始位置和终点位置,使用OMPL提供的规划器进行运动规划:   【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学   暂时还不知道如何在rviz中添加障碍物,以后慢慢琢磨。  


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明【ROS学习】Solidworks模型转化为URDF文件格式+三连杆机械臂示例+逆运动学
喜欢 (0)

您必须 登录 才能发表评论!

加载中……