1. Gazbo 简介
Gazebo是一个很强大的物理仿真平台,能够对环境、传感器、物体的物理性质(如:重力、阻力等)进行仿真。本系列教程将通过一个案例从机器人模型搭建、传感器插件添加、仿真环境搭建、建图和导航避障等整个。
详细描述见下方博客(https://blog.csdn.net/kevin_chan04/article/details/78467218)
2.建立室外环境模型
Gazebo 可以仿真室内和室外环境,室内环境的很多模型已经有了,在这里不再介绍。
模型官方下载地址https://bitbucket.org/osrf/gazebo_models/downloads/
如果建立室内环境可以考虑参考下方的博客(https://blog.csdn.net/qq_36355662/article/details/80030372)
在建立室外环境模型时,参考了下方博客
(https://blog.csdn.net/saltedfish_mountain/article/details/88784350)
2.1下载并安装Blendar 软件
由于本人在VM上安装的ROS,为了节省空间,所以安装了windows x64位的软件,软件是从Blendar 官网下的(一个免费开源软件),Blendar 官网地址 直接解压缩,无需安装就可以直接运行。
如果需要汉化的,可以参照B站的Blendar教程。
2.2 制作并导出.dae 文件
由于个人需要,我需要建立一个果园的环境,所以需要制作果树的.dae 文件,果树的制作对于Blendar 是有相关教程的。可以去Blendar 视频教程中查看。按照教程中去制作,也可以从网上搜索一个,这里不介绍如何制作,从网上直接下载一个,由3Dmax做好的。
2.3导出dae文件并放到urdf里
- 在gazebo中支持的三维仿真文件简介:
1.sdf文件和urdf文件、xacro文件都可以加载dae等三维模型文件。
2.xacro文件是urdf文件的改进版,urdf文件只能在rviz等中显示,不能在仿真器中显示出来。
3.xacro文件可以在gazebo仿真器中显示出来,相对urdf文件,xacro文件增加了更多的属性设置标签。
**在gazebo中 仅支持.sdf 的模型文件。.sdf文件是单个的模型文件。而world文件是单个sdf文件(模型)的组织者,world文件可以使用sdf文件定义的单个模型去定义一个大的“世界”,当然这个世界是模拟的世界,是有许多的模型构成的。
步骤1:将.dae 文件放置ubuntu 的新建文件夹中(自己命名,此处命名为tree)
步骤2编写.world 文件并运行
<?xml version="1.0"?>
<sdf version="1.4">
<world name="default">
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://ground_plane</uri>
</include>
<model name="tree">
<pose>0 0 0.49 0 1.57079 0</pose>
<static>true</static>
<link name="up">
<visual name="visual">
<geometry>
<mesh><uri>file://tree.dae</uri></mesh>
</geometry>
</visual>
</link>
</model>
</world>
</sdf>
保存好world文件,将dae文件与.world文件放在同一个文件夹中。打开命令行,cd 到保存world的文件夹,运行
gazebo tree.world
步骤3:加载empty_sky.world
<?xml version="1.0"?>
<sdf version="1.4">
<world name="default">
<scene>
<sky>
<clouds>
<speed>12</speed>
</clouds>
</sky>
</scene>
<include>
<uri>model://sun</uri>
</include>
<include>
<uri>model://ground_plane</uri>
</include>
<model name="tree">
<pose>0.206439 0.142394 -0.025496 1.57079 0.007548 1.5708 </pose>
<static>true</static>
<link name="up">
<visual name="visual">
<geometry>
<mesh><uri>file://tree.dae</uri></mesh>
</geometry>
</visual>
</link>
</model>
</world>
</sdf>
其中scence 为添加的天空