ROS2高效进阶 -- ROS2高级组件之gazebo11学习 -- 模型库和编辑模型

本文介绍了如何使用Gazebo在ROS2环境中构建三维物理世界,包括下载模型、模型格式(sdf和urdf)、GazeboModelEditor的使用、SolidWorks模型转换以及导入逼真模型的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述
这篇文章主要讲怎么用gazebo构建一个物理世界,并将其保存下来用于加载机器人模型。

ROS2入门21讲——学习笔记(二)常用工具部分15-21讲中的第18,19讲中,我们讲解了 ros的数据可视化显示工具 rviz,这里我们讲解 ros的三维仿真工具 Gazebo。rviz 本身不生产数据,只是可视化显示数据,而Gazebo相当于构建一个物理世界,在仿真环境内,可以创建机器人模型,测试机器人算法,可以生产数据。在接触真实的机器人模型之前,比如 TurtleBot,最好先通过Gazebo ,在仿真环境下,学习机器人构建和仿真测试。
在这里插入图片描述

参考资料

  1. ROS2入门21讲——学习笔记(二)常用工具部分15-21讲中的第18,19讲,详细介绍了gazebo和rviz
  2. Gazebo官方教程
  3. 机器人学习–Gazebo学习–模型库和编辑模型

1. 下载模型文件

首次启动gazebo时,建议先下载一些模型来提高一些可玩性,不然只能用一些软件里自带的立方体,球体等。
下面有几个模型的网站
gazebo_models
加拿大 YORK大学团队 制作了一些3d 模型库

在这里插入图片描述
这些模型下载下来后放到 /home/user/.gazebo/models 文件夹中即可,以后使用gazebo时会自行加载
如下图所示:
在这里插入图片描述
sdf与urdf

在gazebo仿真中常见的两种模型格式:sdf、urdf(以及xacro,是urdf的扩展)。

简单理解,sdf是gazebo的“儿子”,urdf是ROS的“儿子”,后来gazebo和ROS俩兄弟联手,所以urdf成了gazebo的干儿子,但是sdf没有成为ROS的干儿子。所以ROS中其他的模型工具(比如rviz)对sdf模型就不怎么友好了。但是sdf作为gazebo的亲儿子,它的模型描述能力整体高于urdf。
到底选择哪种格式,我觉得主要看需求。如果大量依仗ROS的功能,就选择urdf;反之,选择sdf。

2. 模型建立方法

2.1 gazebo model editor

gazebo左上角选项有模型编辑器,可以方便地编辑简单模型。简单模型包括三种:球、圆柱、立方体。本方法建立的模型为sdf。这种方法适用于模型比较简单的时候,对我来说,本方法,做小测试的时候可能用一用,整体用的不多。
在这里插入图片描述

可以看到只有三个
在这里插入图片描述
此外,同一菜单下的building editor可以很方便地建立墙。
在这里插入图片描述
在这里插入图片描述
画完之后保存得到sdf文件,直接在gazebo中调用即可。
在这里插入图片描述

2.2 SolidWorks模型转urdf

通过使用SolidWorks插件sw_urdf可以将sw装配体转化成urdf模型。插件生成一个ROS包,(通常需要经过小修改)可以在ubuntu中编译运行。具体方法如:https://blog.csdn.net/zhangjiali12011/article/details/78313110
本方法不一定总是能得到想要的结果。当sw装配体配合比较复杂的时候,转换效果可能会非常差,尤其是队友的把sw装配体的配合设置得比较奇怪的时候。
虽然有时候不能直接得到urdf,但可以通过SolidWorks导出零件的stl模型,再编辑urdf代码引用该stl模型。这种方法有两个问题:①需要自己加关节②无法得到有纹理的模型。

B站视频(SolidWorks模型制作转换)
从Solidworks中导出URDF模型

2.3 建立其他好看的模型

看别人的gazebo模型经常花花绿绿的,长得很逼真的样子,通过上面几种方法是很难弄出来的,这个时候就需要请出大名鼎鼎的dae。urdf和sdf都支持引用dae模型文件,而且支持度都很好(就是可以把逼真的dae模型很好地显示出来)。常用的建立dae模型的软件有sketchup和blender。
sketchup网上有**版,操作方式有点像SolidWorks。
blender是个开源的软件,个人觉得长的比sketchup好看。b站上有很好的使用教程。在ubuntu中直接使用二进制安装的blender是无法导出dae文件的,需要到官网上下载安装包(当然速度是超慢的,可以到国内的一些软件平台下载)。
需要注意的是,gazebo无法显示图片,或者说效果极其差。所以在建立dae模型的时候,不要直接插入图片,而是要将图片作为纹理插入。
当然其他的可以导出dae的软件也都是可以的,比如3dmax、Photoshop等,但相对于sketchup和blender来说,这两个软件的体量都是相当大的。

sketchup官网

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值