我的机械网

搜索
查看: 1303|回复: 6

[推荐] SolidWorks与urdf的小叉车机器人模型建立

[复制链接]

102

主题

-95

回帖

21

积分

小白会员

Rank: 1

积分
21
发表于 2018-1-8 17:10:37 | |阅读模式
各位网友请注意:我的机械网所有附件、百度网盘提取码、机械资料、PDF资料、压缩包文件均需要回帖后才能下载!

先上一张图,ROS下的urdf模型可以引入基于SolidWorks的STL和dae文件,所谓的网格文件mesh。对于一个底盘和只有3个轮子的小车模型来说,使用URDF就够了。对于模型复杂点的,像我这样不喜欢代码量多的来说,就喜欢SolidWorks了。

1、模型简介

先说一下,上图模型的组成,大约有8部分组成(后轮在下面,没有显示出来)。这是一个实验小叉车的模型,前面两个轮子是从动轮,属于后驱动后转向的三轮车。名字叫做tech。

2、3维图工具SolidWorks介绍

小编安装的是SolidWorks2017 64位的,读者可以自行百度如何安装SolidWorks,最好是2017版本的。接下来就是安装SolidWorks里使用的SolidWorks to URDF Exporter插件。网址http://wiki.ros.org/action/fullsearch/SW_urdf_exporter?action=fullsearch&context=180&value=linkto%3A%22sw_urdf_exporter%22。百度关键词“SolidWorks urdf”也可以找到相关的资料。下载之后,双击安装就行了,会自己识别插件。

如果使用装配体(就是零件组装装个机器人)生成整个urdf包的话也可以,刚学习的时候使用的是这种方法。就是自己的电脑配置不高,只有第一次能够正确生成,第二次就卡死了。这种方法,urdf,launch还有CMakeList都自动生成了。我的2017版本的在工具->File->Export as URDF。我现在使用的是先建立零件图,生成STL文件。再在ROS下新建包,然后在URDF里边调用STL文件。

3、建立SolidWorks零件图

以叉车底座为例,选取基准面,在基准面画草图,再在特征里边进行一些拉伸或者切除操作。这个也可以进行一些简单的百度教程。就不用润色了,没有作用。这里要特别注意画图区域左下角的3个带颜色的坐标轴,也是符合右手或者笛卡尔坐标系的。下一步就是另存为STL文件,别忘记了配置STL的选项,不更改原图的坐标系。其实修改了的话,可以自己在ROS下修改,自己可以尝试一下。下面再对所有的零件图另存为STL。选择SolidWorks的原因是可以建立一些复杂的模型。

4、建立URDF包。

仿照ROS的初级教程,建立URDF的包。接下来这个包会包括urdf,launch以及节点。在src目录下建立包,多了一个urdf的支持。

jin@ubuntu:~/catkin_ws/src$ catkin_create_pkg tech_description std_msgs rospy roscpp urdf

Created file tech_description/package.xml

Created file tech_description/CMakeLists.txt

Created folder tech_description/include/tech_description

Created folder tech_description/src

Successfully created files in /home/jin/catkin_ws/src/tech_description. Please adjust the values in package.xml.

这里生成关于机器人模型的源码文件夹、编译文件和配置文件等信息。

建立urdf和launch的文件夹,分别存放建立模型的.urdf和启动文件.launch和画图生成的三维模型信息.STL文件。

jin@ubuntu:~/catkin_ws/src/tech_description$ mkdir urdf launch meshes

jin@ubuntu:~/catkin_ws/src/tech_description$ ls

CMakeLists.txt include launch meshes package.xml src urdf

把windows下画好的STL文件复制到meshes文件夹里边。

建立tech.urdf

这里先画了一个底座和一台电脑,电脑的屏幕是可以折叠的,使用的是revolute,必须添加约束才可以正确运行,没有约束会报错的。可以使用中间的控件控制电脑的折叠角度。

先建立一个launch文件,简单的启动一下,看看效果。urdf_tutorial里边的一些文件也是可以参照的。当然,还得复制urdf_tutorial里边的urdf.rviz文件。就是配置一下urdf模型在rviz里边显示的参数。

但是这样还不算完成,因为后面运行的时候有时候会报错,有时候进行base_link到odom转换的时候零件的位置和方向转换错误。因为我们是复制的人家的urdf.rviz,使用的别人的link名称,我们有自己的link名称,但是没有在rviz里边声明,那么我们在urdf.rviz声明一下。添加如下类型的代码。

在rviz里边选择添加RobotModel,选择Fixed Frame的类型为base_link。当然,为了方便我已经在刚才的urdf.rviz里边修改了这些参数。

按照第二步,把link一个个的添加上去就可以了,再通过joint将两个link连接起来。因为我画图的时候,每个零件图都是有长宽高各种参数的,需要读者在制作自己的模型的时候,可以灵活的改变自己的模型参数。

urdf的最终版本

这个是最终版本的URDF,这里可以使用窗口中的滑块对各个零件进行运动控制,其中,前轮、后轮可以旋转(continuous),笔记本电脑和后轮转向机构使用的是有约束的转动关节(revolute),升高架和叉子使用的是平移(prismatic)。下一步需要通过命令使模型运动起来,再下一步通过cpp程序对各个模块或者零件进行运动控制。

5、查看link的关系

jin@ubuntu:~/catkin_ws/src/tech_description/urdf$ urdf_to_graphiz tech.urdf

jin@ubuntu:~/catkin_ws/src/tech_description/urdf$ urdf_to_graphiz tech.urdf

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 一键登录:

x
发表于 2018-1-9 09:17:55 |
博山煎饼谢谢小函师傅提供的资料。
发表于 2018-12-6 07:02:06 |
6735462436

5

主题

5402

回帖

3万

积分

论坛元老

Rank: 8Rank: 8

积分
37073
发表于 2018-12-8 00:37:50 |
小函师傅
发表于 2021-12-1 22:05:45 |
好好学习楼主的帖子!
发表于 2021-12-1 22:17:57 |
今天上网不回帖,回帖就回精华帖!

0

主题

5571

回帖

3万

积分

论坛元老

Rank: 8Rank: 8

积分
38854
发表于 2021-12-3 11:58:31 |
楼主的帖子越来越有深度了!
快速回复 返回顶部 返回列表