问题描述

利用sw_urdf_exporter插件可以方便快捷的导出urdf package,省去了用户自己编写urdf文件的过程。但是,由于该插件导出的link是.STL格式,因此每个连杆都不带纹理,即丢失了在solidworks中的颜色信息,这样模型文件在rviz中就显得很单调。

解决方案

ROS的URDF目前只支持两种格式的模型文件,STL与DAE。其中,.STL文件只记录了文件的三维坐标信息,没有纹理信息。DAE则是另一种xml格式的模型文件,可以包含文件的纹理等信息。所以我们可以将.STL文件替换成.DAE文件,让自己的机器人在rviz中携带漂亮的纹理信息。

  • Step1:首先通过sw_urdf_exporter插件生成urdf package包;
  • Step2:在solidworks中将每个link保存成.IGES格式(注意单位设置成mm),具体保存选项如下图1所示,要特别注意输出坐标系的选择。
  • Step3:安装3d max 2015,安装opencollada插件。在导入.IGES前,先设置3d max的单位信息,具体设置如下图2所示;
  • Step4:导入每个link的.IGES模型,另存为OpenCOLLASA(*.DAE)格式,具体保存选项如下图3所示;

  • Step5:将urdf package中【meshes】文件夹内的所有.STL文件替换为.DAE文件;
  • Step6:修改urdf package中【urdf】文件夹内的.urdf文件,将mesh元素后缀改为.DAE。注意collision元素不需要修改,仍为.STL。

注意事项

  • 在SolidWorks中将每个link另存为.IGES时,要注意每个link坐标系要与你利用sw_urdf_exporter插件进行urdf package时的坐标系保持一致;
  • 利用sw_urdf_exporter插件导出urdf package时最好自己建立每个link的坐标系,如果是机械臂的话根据DH建系法则进行建系就可以;
  • 注意base_link的z轴要竖直向上,不然在rviz中模型是倒着放的。

SimLab Plugins for solidworks

使用上述方法生成的文件后缀名为.DAE,这种文件在rviz中可以正常显示,但是在gazebo中无法加载,gazebo会出现卡死的情况。

还有一种方法可以生成带纹理的模型,就是使用SimLab Plugins插件直接将solidworks模型生成.dae文件。笔者亲测通过这种方法生成的模型可以同时在rviz和gazebo中显示,但该插件没有坐标系对齐功能, 只能跟默认原点坐标系对齐,导出时要特别注意,否则你的模型跟DH坐标系不一致就会出现各连杆之间有一段距离(这个距离就是默认坐标系跟连杆坐标系之间的距离),好像没有装配的感觉。

下载资源

  • opencollada:OpenCOLLADA Tools · KhronosGroup/OpenCOLLADA Wiki · GitHub(安装2015版本)
  • sw_urdf_exporter:sw_urdf_exporter - ROS Wiki
  • SimLab Plugins for solidworks:Solidworks_Collada_Exporter

【ROS问题】在Rviz中显示带有纹理信息的模型文件相关推荐

  1. 禾赛40M如何成功在rviz中显示点云数据

    禾赛40M如何成功在rviz中显示点云数据 文章目录 禾赛40M如何成功在rviz中显示点云数据 前言 一.安装雷达的ROS驱动包 二.启动雷达 三.启动rviz查看点云 1.启动launch文件与r ...

  2. sw模型转urdf,并在gazebo和rviz中显示

    sw模型转urdf,并在gazebo和rviz中显示 1.sw模型转urdf 1.1建立机器人的三维模型 1.2机器人三维模型预处理 1.3装配 1.4建立坐标系 2.显示 2.1.在gazebo中显 ...

  3. 玩转四旋翼无人机(在rviz中显示飞机)

    如何在rviz中显示一个四旋翼? rviz中可以将订阅的姿态轨迹信息三维显示,这样不需要任何代码就可以三维可视化定位结果,十分方便.但是如何加载一个机器人(四旋翼)的模型呢? 所以这里借鉴hector ...

  4. android sdcard 不存在,在android中显示sdcard上不存在的文件的提醒

    以下代码可正常运行,并播放sd卡上的音乐文件. 我想在sdcard上不存在音乐文件("不存在的音乐文件")时显示警报. 我该写些什么?在android中显示sdcard上不存在的文 ...

  5. ROS(Noetic)学习笔记 创建机器人URDF模型并在rviz中显示过程中遇到的一些问题

    背景环境: Ubuntu 20.04 ROS-Noetic 所学教程:<ROS机器人开发实践>chapter 6_2 问题描述及解决方法: 报错:无法启动节点<robot_state ...

  6. ROS——rplidar在rviz中三维显示

    需求分析   rplidar A1和rplidar A2使用相同的接口和SDK,因此可以均可以使用该代码.官方的DEMO实现了激光雷达的二维扫描,并将扫描结果事实显示在rviz中,可以满足基本的需求. ...

  7. fighting(3)从机tr_prefix设置,并使之可以于rviz中显示

    要控制多个机器人,必然要于rviz上显示各机器人,需要设置tf_prefix,使得地图信息可以传递给各机器人的odom 1.从机设置 1.1 tf_prefix设置robot_description及 ...

  8. java 下载文件大小_如何在浏览器中显示使用角度5下载的文件的文件大小?

    我使用答案中的代码在角度5中实现了文件下载: 我有一个spring boot后端,它发送一个http响应对象,它有文件字节数组作为主体和内容类型,内容配置和内容长度 . 我不得不允许暴露的 Heade ...

  9. 关于.rdc文件导入Blender软件时失败报错的解决办法(从谷歌地图中获取带纹理的倾斜模型数据)

    文章目录 写在前面 一.如何获取谷歌地图中带纹理的倾斜模型数据 1.传送门 2.注意事项 二.遇到问题:导入.rdc文件后报错 三.解决办法:更换软件版本 1.版本选择 2.注意事项 四.写在最后 写 ...

最新文章

  1. [JLOI2013]地形生成
  2. C#编程(十二)----------函数
  3. Android短视频开发都需要什么技术?
  4. python能参加奥赛吗-家长们注意了!关于信息学奥赛(NOIP),你需要知道这些...
  5. [转] MySQL 查询表数据大小的总结
  6. python函数之作用域
  7. Go语言学习Day02
  8. mysql-5.6.24-win32解决没有my.ini并且修改编码
  9. JXTA.pdf及其源代码、Practical JXTA II
  10. mysql查询数据1168_mysql merge报错ERROR 1168
  11. vijos- P1385盗窃-月之眼 (水题 + python)
  12. 关于WIN10开机启动慢的一些问题解决
  13. 遥感应用分析原理与方法(第2版)
  14. 无社交,不创业:2017松松兄弟上海聚会剧透
  15. 上海应用技术大学计算机研究生院,计算机考研调剂|2018年上海应用技术大学计算机学院计算机大类考研调剂信息...
  16. JVM错误日志hs_err_pid****.log分析
  17. bzoj1038 [ZJOI2008]瞭望塔(半平面交)
  18. C# 模仿微信生成九宫图头像
  19. Java shiro权限管理框架视频教程
  20. 大数据和云计算技术周报(第169期)

热门文章

  1. Cisco3560 交换机密码恢复实例
  2. @container 规则
  3. 磁盘配额(quota)
  4. 亚马逊、Lazada、Shopee、速卖通、eBay、Wish测评自养号运营知识——环境搭建技术详解
  5. 1.08 docker Cloud和docker企业版
  6. 《炬丰科技-半导体工艺》 纳米掩膜蚀刻
  7. Linux统计当前目录下的所有文件数目
  8. 斐波那契数列的第n项(矩阵快速幂)
  9. 王小波的灾难——由《王小波全集》想到的
  10. 数据清洗到实现数据可视化