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

这篇具有很好参考价值的文章主要介绍了Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

配置:
Ubuntu20.04
Solidworks2016
sw2urdf1.5.1(GitHub下载链接)
MeshLab(GitHub下载链接)

目标

本文希望在Solidworks中自己完成障碍物建模,并且导入Rviz中,进行机械臂运动的碰撞分析等探索。
|-----------------------------------------------------------------------------------------------
总的来说可以分为:模型导出+导出文件优化+导入Rviz 三大步骤。
|-------------------------------------------------------------------------------------------------
最简化的来说,我们只要获得模型的dae文件就可以了。但这里尽量将过程做的更标准些,方便后来者学习和理解。

模型导出

建模

  • 先看下我的模型,注意我是假设机器人就在原点,x向前,z向上的坐标关系,并将模型直接建立在我希望放置的位置,这会使得后续的步骤更加方便。
  • Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人

转轴和坐标系标注

机器人描述urdf格式中最不可缺的就是转轴axis和坐标系coordinate,所以我们在模型导出前先进行这些参数的标注。

  • 转轴:我们可以通过 特征-参考几何体-基准轴 来进行标注。我这里为了方便,先在草图上画了点划线,然后直接把这个点划线作为基准轴,方便不少。
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人
  • 坐标系:我这里就是希望和建模的坐标系一致就可以了,于是我通过模型上的边线确定方向。
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人
  • 成品如下。记得最好坐标系和转轴改为英文名。
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人

导出

我使用的sw2urdf是1.5.1版本,貌似特性和网上看的一些教程不太一样,只有最基础的导出功能,但也够用。后期升级下solidworks顺便更新下sw2urdf。

  • 简单说下sw2urdf怎么用:下载对应的版本后直接安装,重启solidworks后先在插件栏添加这个插件。然后就可以用了
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人
  • 点击 工具-File-Expert as URDF中,进行导出。这里我取消了勾选。
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人
  • 导出成品
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人

导出文件优化

优化的话主要是将stl转化为最重要的dae文件,以及修改一下urdf文件。

.stl->.dae (核心)

  • 打开MeshLab软件,先导入生成的air_door.stl文件, 最好将.STL改为.stl
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人
  • File-Export Mesh as ,选择.dae即可导出dae文件
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人

urdf文件修改(这里用不到urdf文件,看看就行)

  • 打开这个urdf发现有两个.STL却没有.dae
  • 要注意的是 visual标签下的应该是.dae ; 而 collision 标签下的应该是.stl。(.dae ,即COLLADA文件,是一种用于3D模型和动画的开放标准,它支持复杂的纹理和材质效果。.stl,即Stereolithography文件,是一种简单的3D模型,因为不包含纹理颜色和材质,所以在碰撞检测中性能较高。)
  • 所以这里做了三个步骤,一个是将标签里的.stl修改为.dae文件;然后我这里texture材质是空的,直接加载会有问题,所以直接删掉;还有大写的.STL改为.stl。
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人

这些步骤完成后,我一般习惯把生成的整个导出的包放到自己workspace目录src文件夹下,作为一个package,虽然这里没有package.xml。

导入Rviz

  • 导入Rviz用的其实就是dae文件。

  • 首先启动rviz
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人

  • 打开Scene Objects,将Box类型换选为Mesh from File,导入自己生成的.dae文件,调整位置,并点击发布,即可看到我们的障碍物。
    Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人

Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用,ROS,机器人

好文推荐

操作的过程中参考了这几篇文章,写的很不错,但并不完全适用自己的情况。结合这些文章和自己的探索,最终完成了自定义障碍物的导入。
文章一
文章二
文章三文章来源地址https://www.toymoban.com/news/detail-607616.html

到了这里,关于Rviz中如何导入自定义障碍物 | 从建模到导出urdf到导入rviz | Ros中如何导入障碍物 | sw2urdf的下载和使用 | MeshLa的下载和使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • unity-障碍物和空气墙的设置

    建个游戏对象,然后给他添加2d碰撞盒子属性 把它放到相机下面,让它成为相机的所属的子组,跟随相机一起移动通过。 创建新的标签便于碰撞确认操作。 ** ** 判断我们游戏操控的物体是否在空气墙上: 额外 : 可以被跨越一类的物体的判断(地刺一类) ​ 其实步骤都和上

    2024年02月13日
    浏览(36)
  • 第九章动态规划——不同路径(二)有障碍物

    目录 力扣题号:63. 不同路径 II - 力扣(LeetCode) 题目描述 示例 提示 思路 解法一:动态规划 (1)dp数组的下标及其含义 (2)确定递推公式 (3)初始化递推数组 (4)确定遍历顺序 (5)根据题意推出dp数组对照 障碍物处理 代码实现 总结 注:下述题目描述和示例均来自力

    2024年04月23日
    浏览(23)
  • Unity3D物体自动躲避障碍物

            2017.4.4f1         物体向前发射一个射线,检测到碰撞后,根据碰撞信息选择新的方向。最终结果如下。 通过发射虚拟胶囊体来检测碰撞api bool Physics.CapsuleCast (Vector3 point1, Vector3 point2, float radius, Vector3 direction, out RaycastHit hit, float maxDistance)  points参数如图所示,

    2023年04月24日
    浏览(46)
  • Apollo规划决策算法仿真调试(5):动态障碍物绕行

    Apollo (阿波罗)是一个开放的、完整的、安全的平台,将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统,快速搭建一套属于自己的自动驾驶系统。Apollo 自动驾驶开放平台为开发者提供了丰富的车辆、硬件选择,强大的环境感知、高精定位、路径规划、车辆控制等

    2024年02月09日
    浏览(37)
  • 百度Apollo规划算法——OBB障碍物检测代码解析

    本文主要分析Apollo代码中函数 bool Box::HasOverlap(const Box2d box) const {} 的数学原理。 在阅读此部分代码时,第一遍没看懂return的一堆什么意思,百度之后说是采用OBB原理,所以就去了解下OBB原理,回来看还是没太明白,直到看到了博客[1],通过博主的图解才有了进一步的了解,但

    2024年02月14日
    浏览(27)
  • Unity代码实现角色碰到障碍物,损失血量或死亡

    1、角色设置 在PlayerController脚本中(挂载在角色上)       maxHealth :最大血量,用于约束角色血量不超过最大血量       currentHealth :当前血量,用于记录角色血量变化      在Start函数中设置当前血量为最大血量      编写一个减少血量的函数,参数为碰到障碍与减少

    2024年02月12日
    浏览(50)
  • Python 动态规划 实现机器人躲避障碍物获取最短路径

    要设计一种算法来寻找机器人从左上角移动到右下角的路径,可以使用动态规划来解决这个问题。下面是一种可能的算法: 创建一个处理机器人运动的函数 find_path ,函数接受一个矩阵 grid 作为参数,用于表示机器人移动的网格环境,该矩阵一个由 0 和 1 组成的二位列表,其

    2024年04月09日
    浏览(33)
  • 动态规划解“不同路径问题”(所有路径、有障碍物时的所有路径)

    题目1:不同路径(求到达右下角的所有路径) 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径?    解题思路

    2024年02月14日
    浏览(32)
  • ROS从入门到精通2-7:Gazebo仿真之动态生成障碍物

    本专栏旨在通过对ROS的系统学习,掌握ROS底层基本分布式原理,并具有机器人建模和应用ROS进行实际项目的开发和调试的工程能力。 🚀详情:《ROS从入门到精通》 动态生成障碍物在机器人工程领域应用非常广泛,例如 机器人导航与路径规划 :动态生成障碍物可以用于评估

    2024年02月11日
    浏览(107)
  • 基于图像识别的自动驾驶汽车障碍物检测与避障算法研究

    基于图像识别的自动驾驶汽车障碍物检测与避障算法研究是一个涉及计算机视觉、机器学习、人工智能和自动控制等多个领域的复杂问题。以下是对这个问题的研究内容和方向的一些概述。 障碍物检测 障碍物检测是自动驾驶汽车避障算法的核心部分,它需要从车辆的感知数

    2024年02月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包