Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用
配置:
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的下载和使用相关推荐
- solidworks导出urdf文件并在ROS中显示
01 solidworks导出urdf文件 官网下载插件:http://wiki.ros.org/sw_urdf_exporter 然后到github上下载插件,虽然我是solidworks2022, ...
- python导入自定义模块_ubuntu下Python导入自定义模块的方法
ubuntu下Python导入自定义模块的方法 当在python程序中导入自定义模块时,若出现"Import Error:no module named xxx"表明系统在pyth ...
- 卡饭输入法制作和导入自定义词库
卡饭输入法导入自定义词库 卡饭输入法下载 导入自定义词库 深蓝词库转换器 搜狗词库 制作词库 导入词库 转换好的搜狗词库[自取] 卡饭输入法下载 点击下载卡饭输入法 , 如果已经安装请跳过 导入自定义 ...
- ros中自定义msg消息并用其他功能包调用
注:本篇文章仅作为学习笔记,如有侵权,请联系删除. 目录 一.创建msg消息 1.在src目录创建自定义的msg功能包. 2.修改自定义msg功能包内的package.xml文件 3.修改自定义msg ...
- ROS中catkin_make install的用法
ROS中catkin_make install的用法 ROS中catkin_make install的用法 catkin_make的原理 catkin_make install指令学习记录 ROS中c ...
- ROS中阶笔记(五):机器人感知—机器视觉
ROS中阶笔记(五):机器人感知-机器视觉 文章目录 1 ROS中的图像数据 1.1 二维图像 1.1.1 安装安装usb_cam 1.1.2 显示图像数据 1.2 三维图像(kinect) 2 摄像 ...
- python语言中、外部模块先导入、再使用_python引入导入自定义模块和外部文件--转载Sumomo的博客...
项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包 如果是web 下,比如说django ,那么你新建一个app,把你需要导入的说用东东,都写到这个app中,然后在setting中的app ...
- kaggle中如何导入自定义的模块
问题:kaggle如何导入自定义的模块? 如何给正在写的kernel导入和使用之前自己已经编写的函数和类? 解决方法 方法1 使用下图红框中所示的上传数据集命令上传自己写的py文件,然后把它copy到 ...
- python中外部模块不用导入可以直接使用吗_python引入导入自定义模块和外部文件...
python引入导入自定义模块和外部文件:项目中想使用以前的代码,或者什么样的需求致使你需要导入外部的包. 如果是web 下,比如说django ,那么你新建一个app,把你需要导入的说用东东,都写到 ...
最新文章
- BAT 批处理命令 - 获取时间并进行自定义年月日、时分秒格式实例演示
- 【深度学习】2个经典的练手CNN源码与MNIST数据集测试结果
- 从接触FPGA开始...
- C#调用C++的dll文件方法
- CEF编译 执行gn args out\Release_GN_x86异常
- 京东云 | AI人才联合培养计划
- echarts 3d地图_用Echarts绘制地图-绘制省级地图
- java初级开发一系列的工具安装配置
- BT 与 Magnet 的下载方式及原理
- c语言混响,混响插件(2cAudio Aether)
- 现代多媒体通信技术【问答、分析、论述】
- banq修复_慧荣SM3271AB U盘量产加密及修好图文详细教程
- Only variable references should be returned by reference
- 3.17 Inappropriate Intimacy 狎昵关系
- Apache Pulsar 生态项目 RocketMQ-on-Pulsar 新增 3 位腾讯 Maintainer
- matlab向后误差,matlab-误差棒
- 南邮——计算机图像学——光照、冯氏光照模型
- slack 开源系统_Slack团队聊天的5种开源替代品
- 中国智能控制器行业“十四五”投资规划及前景趋势报告2022~2028年
- 掘地三尺搞定 Redis 与 MySQL 数据一致性问题
热门文章
- #读书笔记# 刷新你的金钱观 《富爸爸穷爸爸》
- 《增长黑客》的背后逻辑是什么?(二)
- PCB 丝印规范及要求
- 编辑器之神——vim编辑器(详细、完整)
- C语言计算礼炮声响次数(代码原创)
- mindjet mindmanager2021 v20.2.201 中文版如何创建制作思维导图教程分享
- 盘古团队发布 iOS 9.3.3 越狱工具,不但能“越狱”还能“回监狱”
- 抖音上二次元虚拟主播直播方案
- Malware Traffic Classification Using Convolutional Neural Network for Representation Learning代码复现的问题
- XML文件中不允许出现的字符