当前位置: 首页 > news >正文

gazebo 查看URDF模型(转sdf)

目录

  • 写在前面的话
  • 整体流程
    • 1 获取SDF文件
      • 1.1 xcaro文件转 urdf
      • 1.2 urdf 文件转 sdf
    • 2 新建config文件
    • 3 启动gazebo
    • 4 插入URDF模型并查看
      • 4.1 gazebo 启动慢的情况
      • 4.2 gazebo 查看模型卡死的问题
        • 模型简化前
        • 模型简化后
  • 参考文章

写在前面的话

本文是基于上一篇的工作 urdf ( xacro ) 的 collision碰撞参数设置,根据已有的 xacro 文件,如何通过 gazebo 仿真软件进行可视化仿真?

整体流程

文件的结构如下图,models文件夹下包含一个car_urdf文件夹,里面有 model.configmodel.sdf 文件和一个 meshes 文件夹(存储.stl文件)

models
car_urdf
----meshes (存储.stl文件)
----model.config (指定.sdf文件的位置)
----model.sdf (由xacro文件转化)

在这里插入图片描述

1 获取SDF文件

1.1 xcaro文件转 urdf

路径根据自己情况自行修改

ros2 run xacro xacro car_urdf.urdf.xacro > car_urdf.urdf

在这里插入图片描述

1.2 urdf 文件转 sdf

gz 是 gazebo 的的一个工具包

gz sdf -p car_urdf.urdf > ../models/car_urdf/model.sdf

提醒:这个注意模型的路径问题,确保car_urdf文件夹下面包含meshes文件夹,且文件夹包含所有的模型文件。

在这里插入图片描述

2 新建config文件

<?xml version="1.0" ?>
<model><name>car_urdf</name><version>1.0</version><sdf version="1.6">model.sdf</sdf><author><name></name><email></email></author><description></description>
</model>

3 启动gazebo

在这里插入图片描述

4 插入URDF模型并查看

操作:insert > Add Path > 选择models文件夹 > Open

在这里插入图片描述

可以看到左边路径窗口多了一个car_urdf,双击,然后在主界面单击即可看到车子。

在这里插入图片描述

4.1 gazebo 启动慢的情况

原因是 gazebo 每次启动都要去加载模型库,它会去查找/home/.gazebo/models目录下的模型文件,没找到的话要进行联网下载,要想启动快的画,直接去下载模型文件放到 .gazebo 文件夹的 models 目录下,这个网上很多教程。

home 目录下没找到 .gazebo 文件夹的话,是因为默认.开头文件会隐藏,键盘按下 Ctrl+H 就可以解除隐藏查看。

cd ~/.gazebo/lsmkdir -p modelslscd ~/.gazebo/models/wget http://file.ncnynl.com/ros/gazebo_models.txtls

在这里插入图片描述

4.2 gazebo 查看模型卡死的问题

我从 solidworks 导出的 .stl 模型文件是比较复杂的,三维面数量很大,这对处理器的要求会高很多,很容易出现卡死的问题。

因此需要对这些模型文件进行简化,用meshlab打开三维模型,然后按下图操作:Filters > Remeshing,Simplification and Reconstruction > Simplification: Quadric Edge collapse Decimation

在这里插入图片描述

然后会出现弹窗,修改Target number of faces参数即可,调小就可以,点 Apply 后可以查看修改后的模型效果,点菜单栏的保存文件(会有一个弹窗,点OK即可)就会覆盖原有文件保存,不想覆盖的就选择另存即可。

在这里插入图片描述
在这里插入图片描述

模型简化前

内存:248.1 KB

在这里插入图片描述

模型简化后

内存:50.1 KB

在这里插入图片描述

参考文章

1 gazebo导入sdf模型
2 ROS入门(三):gazebo详解


http://www.mrgr.cn/news/21437.html

相关文章:

  • LeetCode 3176.求出最长好子序列 I:动态规划(DP)
  • 修改密码模块中对轮询接口响应用户失效问题的处理
  • 基于ASP+ACCESS的教师信息管理系统
  • 西方社会学理论教程(侯均生)笔记
  • SprinBoot+Vue应急信息管理系统的设计与实现
  • ctfshow-web入门-sql注入(web237-web240)insert 注入
  • 【人工智能学习笔记】2_数据处理基础
  • 超强台风摩羯逼近!或成大陆史上最强登陆台风,防御措施需到位
  • 深入了解 Lombok 的 `@SneakyThrows` 注解
  • Keysight U8031A DC power supply
  • DFS 算法:洛谷B3625迷宫寻路
  • C和指针:字符串
  • Python 从入门到实战10(流程控制-选择语句)
  • 2024 年高教社杯全国大学生数学建模竞赛B题第二问详细解题思路(终版)
  • Redis 缓存深度解析:穿透、击穿、雪崩与预热的全面解读
  • WebGL系列教程一(开篇)
  • isxdigit函数讲解 <ctype.h>头文件函数
  • 认知杂谈51
  • 【LeetCode】15.三数之和
  • Chrome下载视频的插件