配置:
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文件,调整位置,并点击发布,即可看到我们的障碍物。

好文推荐

操作的过程中参考了这几篇文章,写的很不错,但并不完全适用自己的情况。结合这些文章和自己的探索,最终完成了自定义障碍物的导入。
文章一
文章二
文章三

Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用相关推荐

  1. solidworks导出urdf文件并在ROS中显示

    01 solidworks导出urdf文件 官网下载插件:http://wiki.ros.org/sw_urdf_exporter 然后到github上下载插件,虽然我是solidworks2022, ...

  2. python导入自定义模块_ubuntu下Python导入自定义模块的方法

    ubuntu下Python导入自定义模块的方法 当在python程序中导入自定义模块时,若出现"Import Error:no module named xxx"表明系统在pyth ...

  3. 卡饭输入法制作和导入自定义词库

    卡饭输入法导入自定义词库 卡饭输入法下载 导入自定义词库 深蓝词库转换器 搜狗词库 制作词库 导入词库 转换好的搜狗词库[自取] 卡饭输入法下载 点击下载卡饭输入法 , 如果已经安装请跳过 导入自定义 ...

  4. ros中自定义msg消息并用其他功能包调用

    注:本篇文章仅作为学习笔记,如有侵权,请联系删除. 目录 一.创建msg消息 1.在src目录创建自定义的msg功能包. 2.修改自定义msg功能包内的package.xml文件 3.修改自定义msg ...

  5. ROS中catkin_make install的用法

    ROS中catkin_make install的用法 ROS中catkin_make install的用法 catkin_make的原理 catkin_make install指令学习记录 ROS中c ...

  6. ROS中阶笔记(五):机器人感知—机器视觉

    ROS中阶笔记(五):机器人感知-机器视觉 文章目录 1 ROS中的图像数据 1.1 二维图像 1.1.1 安装安装usb_cam 1.1.2 显示图像数据 1.2 三维图像(kinect) 2 摄像 ...

  7. python语言中、外部模块先导入、再使用_python引入导入自定义模块和外部文件--转载Sumomo的博客...

    项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包 如果是web 下,比如说django ,那么你新建一个app,把你需要导入的说用东东,都写到这个app中,然后在setting中的app ...

  8. kaggle中如何导入自定义的模块

    问题:kaggle如何导入自定义的模块? 如何给正在写的kernel导入和使用之前自己已经编写的函数和类? 解决方法 方法1 使用下图红框中所示的上传数据集命令上传自己写的py文件,然后把它copy到 ...

  9. python中外部模块不用导入可以直接使用吗_python引入导入自定义模块和外部文件...

    python引入导入自定义模块和外部文件:项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包. 如果是web 下,比如说django ,那么你新建一个app,把你需要导入的说用东东,都写到 ...

最新文章

  1. BAT 批处理命令 - 获取时间并进行自定义年月日、时分秒格式实例演示
  2. 【深度学习】2个经典的练手CNN源码与MNIST数据集测试结果
  3. 从接触FPGA开始...
  4. C#调用C++的dll文件方法
  5. CEF编译 执行gn args out\Release_GN_x86异常
  6. 京东云 | AI人才联合培养计划
  7. echarts 3d地图_用Echarts绘制地图-绘制省级地图
  8. java初级开发一系列的工具安装配置
  9. BT 与 Magnet 的下载方式及原理
  10. c语言混响,混响插件(2cAudio Aether)
  11. 现代多媒体通信技术【问答、分析、论述】
  12. banq修复_慧荣SM3271AB U盘量产加密及修好图文详细教程
  13. Only variable references should be returned by reference
  14. 3.17 Inappropriate Intimacy 狎昵关系
  15. Apache Pulsar 生态项目 RocketMQ-on-Pulsar 新增 3 位腾讯 Maintainer
  16. matlab向后误差,matlab-误差棒
  17. 南邮——计算机图像学——光照、冯氏光照模型
  18. slack 开源系统_Slack团队聊天的5种开源替代品
  19. 中国智能控制器行业“十四五”投资规划及前景趋势报告2022~2028年
  20. 掘地三尺搞定 Redis 与 MySQL 数据一致性问题

热门文章

  1. #读书笔记# 刷新你的金钱观 《富爸爸穷爸爸》
  2. 《增长黑客》的背后逻辑是什么?(二)
  3. PCB 丝印规范及要求
  4. 编辑器之神——vim编辑器(详细、完整)
  5. C语言计算礼炮声响次数(代码原创)
  6. mindjet mindmanager2021 v20.2.201 中文版如何创建制作思维导图教程分享
  7. 盘古团队发布 iOS 9.3.3 越狱工具,不但能“越狱”还能“回监狱”
  8. 抖音上二次元虚拟主播直播方案
  9. Malware Traffic Classification Using Convolutional Neural Network for Representation Learning代码复现的问题
  10. XML文件中不允许出现的字符