Gazebo/Rviz仿真打开URDF模型

2023-05-16

当我们通过Solidworks成功导出URDF模型之后,我们当然很希望在ROS中观察到自己导入的模型。ROS中有两个非常好的插件,一个是RViz另一个是Gazebo。其中RViz类似一个可视化平台,而Gazebo则是一个虚拟仿真平台,它两搭配,简直卧龙凤雏

我们首先看一看自己导出的URDF模型文件:

 其中最有用的,当属launch文件夹以及urdf文件夹。

我们打开launch文件夹,如下:

可以看到,launch文件夹中有两个后缀为.launch文件,第一个display.launch是可以在Rviz中展示的文件,gazebo.launch是可以在Gazebo中展示的文件。

我们复制整个robot2600_20到ROS工作空间下,我们放在了catkin_ws里面的src文件夹下:

 然后在catkin_ws根目录下执行catkin_make编译一下。注意这里需要首先更新一下路径,既在catkin_ws目录下执行devel/setup.bash,我想这一步大家学了的肯定晓得,只是希望大家保险一点。

在Rviz中展示机械臂

 双击打开launch文件夹中的display.launch文件,将其中的default="False"改为default="True"并保存文件。

 然后在catkin_ws目录下执行roslaunch robot2600_20 display.launch,就可以打开两个窗口,分别如下:为了保险,可以先执行devel/setup.bash更新一下路径,当然后面我会较大家避免每一编译都要先更新路径的方法。

 

 第一个窗口就是可视化窗口,大家看到红色不要怕,确实是报错,但是不要怕,还没设置好。报错的原因在于你还没设置需要固定的坐标系。

我们点击map这里的下拉三角形,选择base_link作为固定,然后随便点一下空白处,红色就会消失,变成绿色。

 然后点击左下角的Add

 

 选择RobotModel,然后点击OK

 这样模型就能够顺利展示了,哈哈!是不是很棒?

 这时候,出现的第二个界面就能够使用了,随便滑动一些,可以看看关节状态。

 

 大家有没有想起来,在我们用Solidworks导出URDF模型的时候,设置了每一个关节的状态为revolute,这是一个限制关节角度的类型,我叫大家都设置成了-3.14到3.14,既360度无死角旋转?

可以通过这个Rviz的这个控件来观察一下我们每一个关节的角度限制范围,记下来,就可以回去重新修改啦!当然,可能不是很准确,但是大差不差的,因为我们操作机械臂的时候不可能每次都旋转到极限吧?

当然,这是个很笨的方法如果有更加准确的方法,记得评论告诉我哦!

在Gazebo中展示机械臂

在Gazebo中展示机械臂的方法类似,但是请记住,Gazebo它是一个仿真平台,我们就可以把Gazebo中的机械臂当成真实的机械臂

在同样的条件下运行roslaunch  robot2600_20  gazebo.launch,请先刷新一下路径,确保顺利执行。然后我们就可以看到我们的仿真机械臂啦!

这样,机械臂就顺利出现在了我们的仿真环境中了,但是的但是的但是,大家可能一下就看到,这个机械臂怎么瘫倒在地上了?而且还不停的抖动,似乎中毒了。有的人的机械臂甚至在天上飞~~

大家千万不要怕!这是很正常的现象!不要心慌慌的去直接搜索如何让机械臂支棱起来!

由于篇幅原因,一下子还写不清楚,我后面会给大家解释如何让它支棱起来,并让它结合Moveit进行路径规划。这一章如果太长,解释不明白,大家记不住!没有印象。绝对不能让大家继续踩我走过的坑

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gazebo/Rviz仿真打开URDF模型 的相关文章

随机推荐

  • Faster R-CNN网络架构

    Faster R CNN网络架构原理解析 Anchor的第一个分支是一个分类分支负责判断途中有没有东西 xff0c 但是不会判断物品 第二个分支是回归分支表示Anchor和真实值有多远最终提取的候选框尽量向真实值靠拢 RPN层是如何提取候选
  • Faster R-CNN原理详解

    Faster R CNN原理详解 首先将RPN输出以及将anchor解码 xff0c 然后对预测框进行clip xff0c 然后对预测狂进行过滤 xff0c filter将面积太小的过滤掉 xff0c 然后将分数较低的去掉 xff0c NM
  • linux出现“INFO: task xxxxxx: 634 blocked for more than 120 seconds.”的3种解决方案

    1 问题描述 最近搭建的一个linux最小系统在运行到241秒时在控制台自动打印如下图信息 xff0c 并且以后每隔120秒打印一次 仔细阅读打印信息发现关键信息是 hung task timeout secs xff0c 第一次遇到这样的
  • vue中的计算属性和侦听器

    vue中的计算属性和侦听器 computed xff08 计算属性 xff09 在模板中放入太多的逻辑不但难以维护 xff0c 就连作者自身在看到代码的时候可能都难以理解 vue开发了计算属性 xff0c 计算属性是依赖于本身的响应式以来进
  • vue-列表的渲染

    vue 列表的渲染 vue的列表渲染指令是基于v for的 xff0c 官方文档中是这么说的 v for 指令需要使用 item in items 形式的特殊语法 xff0c 其中 items 是源数据数组 xff0c 而 item 则是被
  • vue-事件处理

    vue 事件处理 一般使用v on来进行事件监听 xff0c 在监听DOM事件时会触发一部分的js代码 使用v on xxx或 64 xxx绑定事件 xff0c xxx指 事件名 事件的回调要写在methods对象中 xff0c 最终会放在
  • R-CNN算法优化策略

    R CNN算法优化策略 1 xff0c 两阶段检测的进阶模型 首先进行数据处理 xff0c 然后输入backbone得到特征图 xff0c 然后进入RPN中提取候选区域roi xff0c 然后再ROI Align提取特争 xff0c 然后送
  • 一篇文章让你从入门到彻底学会Java

    一篇文章让你从入门到彻底学会Java 文章目录 一篇文章让你从入门到彻底学会Java第一个Java程序 43 基础知识详解Java的对象和类Java中的数据类型Java变量类型Java运算符Java中的循环Java 条件语句Java中的sw
  • vue-进入/离开&列表过渡

    vue 进入 离开 amp 列表过渡 在 CSS 过渡和动画中自动应用 class可以配合使用第三方 CSS 动画库 xff0c 如 Animate css在过渡钩子函数中使用 JavaScript 直接操作 DOM可以配合使用第三方 Ja
  • vue中的路由基础

    vue中的路由 在使用vue router之前 xff0c 首先需要安装该插件 首先在cmd中使用npm install vue router进行插件的安装 xff0c 如果要在工程项目中使用它必须通过Vue use 明确地安装路由功能 就
  • 前端面试的基础四十小问(前20问)

    文章目录 1 什么是HTML语义化 xff1f 2 标签title与alt属性的区别是什么 xff1f 3 iframe的优缺点 xff1f 4 介绍一下CSS的盒子模型 xff1f 5 垂直居中的几种方式 xff1f 6 rgba和opa
  • 前端面试题--react与vue的区别

    前端面试题 react与vue的区别 首先从架构层面来看 xff0c vue是MVVM架构 xff0c 是一个灵活易用的渐进式双向绑定 xff0c 而react并没有准确的架构模式 xff0c react准确的架构模式是调和器和渲染器 xf
  • 前端面试题--详解flex

    前端面试题 详解flex Flex是指弹性盒子布局的意思 Flex的主要作用是 xff1a 解决元素居中问题 xff0c 自动弹性伸缩 xff0c 自动适配不同大小的屏幕和移动端 Flex的术语解释 xff1a 二成员 xff1a 容器和项
  • Linux系统中sysctl命令详解 sysctl -p、sysctl -a、sysctl -w

    sysctl命令用于运行时配置内核参数 xff0c 这些参数位于 proc sys目录下 sysctl配置与显示在 proc sys目录中的内核参数 xff0e 可以用sysctl来设置或重新设置联网功能 xff0c 如IP转发 IP碎片去
  • 前端面试题--vue的父子组件通信

    前端面试题 vue的父子组件通信 比较常见的就是父组件为控制组件子组件为视图组件 父组件传递数据给子组件使用 xff0c 遇到业务逻辑操作时子组件触发父组件的自定义事件 子组件接受使用父组件的数据 xff0c 这里的数据包括属性和方法 xf
  • 前端面试题--了解并简单介绍一下typescript

    前端面试题 了解并简单介绍一下typescript TypeScript是JavaScript的超集 xff0c 具有可选的类型并可以编译为纯JavaScript 从技术上讲TypeScript就是具有静态类型的 JavaScript 向J
  • HashMap MAXIMUM_CAPACITY 为什么设置成1 << 30---Java源码

    为什么是1 lt lt 30因为2个因素造成的 正如上楼的 MrAmity 所说 xff0c HashMap在确定数组下标Index的时候 xff0c 采用的是 length 1 amp hash的方式 xff0c 只有当length为2的
  • MATLAB循环结构与嵌套循环

    循环结构又称为重复结构 xff0c 是利用计算机运算速度快以及能进行逻辑控制得我特点来重复执行默写操作 while循环 while语句多用于循环次数不确定的情况 xff0c 而对于循环次数确定的情况 xff0c 使用for语句更方便 针对不
  • 机械臂(4)–正向求解

    最近准备研究下机械臂的运动分析 xff0c 本文记录相关过程 关于运动求解 xff0c 鄙人才疏学浅 xff0c 很多内容没有深入理解 xff0c 只是简单知道这个是什么 xff0c 代表什么意思 xff0c 怎么用 xff0c 关于原理了
  • Gazebo/Rviz仿真打开URDF模型

    当我们通过Solidworks成功导出URDF模型之后 xff0c 我们当然很希望在ROS中观察到自己导入的模型 ROS中有两个非常好的插件 xff0c 一个是RViz另一个是Gazebo 其中RViz类似一个可视化平台 xff0c 而Ga