配置:
Ubuntu20.04
Solidworks2016
sw2urdf1.5.1(GitHub下载链接)
MeshLab(GitHub下载链接)
目标
本文希望在Solidworks中自己完成障碍物建模,并且导入Rviz中,进行机械臂运动的碰撞分析等探索。
|-----------------------------------------------------------------------------------------------
总的来说可以分为:模型导出+导出文件优化+导入Rviz 三大步骤。
|-------------------------------------------------------------------------------------------------
最简化的来说,我们只要获得模型的dae文件就可以了。但这里尽量将过程做的更标准些,方便后来者学习和理解。
模型导出
建模
- 先看下我的模型,注意我是假设机器人就在原点,x向前,z向上的坐标关系,并将模型直接建立在我希望放置的位置,这会使得后续的步骤更加方便。
转轴和坐标系标注
机器人描述urdf格式中最不可缺的就是转轴axis和坐标系coordinate,所以我们在模型导出前先进行这些参数的标注。
- 转轴:我们可以通过 特征-参考几何体-基准轴 来进行标注。我这里为了方便,先在草图上画了点划线,然后直接把这个点划线作为基准轴,方便不少。
- 坐标系:我这里就是希望和建模的坐标系一致就可以了,于是我通过模型上的边线确定方向。
- 成品如下。记得最好坐标系和转轴改为英文名。
导出
我使用的sw2urdf是1.5.1版本,貌似特性和网上看的一些教程不太一样,只有最基础的导出功能,但也够用。后期升级下solidworks顺便更新下sw2urdf。
- 简单说下sw2urdf怎么用:下载对应的版本后直接安装,重启solidworks后先在插件栏添加这个插件。然后就可以用了
- 点击 工具-File-Expert as URDF中,进行导出。这里我取消了勾选。
- 导出成品
导出文件优化
优化的话主要是将stl转化为最重要的dae文件,以及修改一下urdf文件。
.stl->.dae (核心)
- 打开MeshLab软件,先导入生成的air_door.stl文件, 最好将.STL改为.stl。
- File-Export Mesh as ,选择
.dae
即可导出dae文件
urdf文件修改(这里用不到urdf文件,看看就行)
- 打开这个urdf发现有两个
.STL
却没有.dae
。 - 要注意的是 visual标签下的应该是
.dae
; 而 collision 标签下的应该是.stl
。(.dae
,即COLLADA文件,是一种用于3D模型和动画的开放标准,它支持复杂的纹理和材质效果。.stl
,即Stereolithography文件,是一种简单的3D模型,因为不包含纹理颜色和材质,所以在碰撞检测中性能较高。) - 所以这里做了三个步骤,一个是将标签里的.stl修改为.dae文件;然后我这里texture材质是空的,直接加载会有问题,所以直接删掉;还有大写的.STL改为.stl。
这些步骤完成后,我一般习惯把生成的整个导出的包放到自己workspace目录src文件夹下,作为一个package,虽然这里没有package.xml。
导入Rviz
-
导入Rviz用的其实就是dae文件。
-
首先启动rviz
-
打开Scene Objects,将Box类型换选为Mesh from File,导入自己生成的.dae文件,调整位置,并点击发布,即可看到我们的障碍物。
文章来源:https://www.toymoban.com/news/detail-607616.html
好文推荐
操作的过程中参考了这几篇文章,写的很不错,但并不完全适用自己的情况。结合这些文章和自己的探索,最终完成了自定义障碍物的导入。
文章一
文章二
文章三文章来源地址https://www.toymoban.com/news/detail-607616.html
到了这里,关于Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!