原文链接:https://blog.csdn.net/wilylcyu/article/details/51754495
转载说明:感谢原作者!如有侵权,请联系我删除,谢谢!

说明:此文仅针对Learning ROS for Robotics Programming - Second Edition这本书中的第八章的内容。

一、使用gazebo创建建筑
1 . 打开building editor

(1) . 开启gazebo

$ gazebo

(2). 按Ctrl+B打开编辑器

2. 图形用户接口

编辑器由三部分组成:
(1) Palette,在这里可以选择建筑的特征和材料。
(2) 2D View,可以导入floor计划嵌入墙,窗,门和台阶。
(3) 3D View,建筑物的预览,能够设计建筑物不同部分的颜色和纹理。

3. 导入floor计划

导入一个用来创建建筑的模板。
点击here获得floor计划,然后按一下步骤进行:
(1) 点击Import按钮。导入图像目录会出现。
(2)step1:选择之前保存在电脑中的图片,此图片放在文件夹内。

(3) step2:确定图像中墙的正确的尺度。
(4)图像会出现在2D View中。

4. 添加墙、窗和门


5. 编辑建筑

编辑墙、门和窗过程,双击相应要编辑的内容,即可出现参数框,按自己的要求编辑即可。



可以按需要对墙等增加纹理。

6. 保存建筑

保存会创建一个建筑的目录,SDF和配置文件。在保存前,在Palette中给建筑一个名字。


在顶部菜单,选择File,然后Save As(或者Ctrl+S)。一个目录将会出现提供来选择模型存储的位置。

Note:保存位置要在.gazebo/models目录下。
保存后,即可退出,一旦退出后,此建筑便不可编辑。

二、将编辑完成的建筑用于仿真使用
1. 在/usr/share/gazebo-6.6/worlds目录下创建filename1.world文件,添加以下文本:
<?xml version="1.0" ?>
<sdf version="1.5"><world name="default"><include><uri>model://ground_plane</uri></include><include><uri>model://sun</uri></include><include><uri>model://Robot_house</uri></include></world>
</sdf>

这里可能需要更改worlds文件夹的权限:

$ sudo su
$ chmod -R 777 文件夹路径

2. 在gazebo_ros/launch 目录下创建名为
filename2.launch的文件,添加如下文本:

<?xml version="1.0"?>
<launch><!-- We resume the logic in empty_world.launch, changing only the name of the world to be launched --><include file="$(find gazebo_ros)/launch/empty_world.launch"><arg name="world_name" value="worlds/filename2.world"/> <!-- Note: the world_name is with respect to GAZEBO_RESOURCE_PATH environmental variable --><arg name="paused" value="false"/><arg name="use_sim_time" value="true"/><arg name="gui" value="true"/><arg name="headless" value="false"/><arg name="debug" value="false"/></include></launch>
3. 最后在gazebo_mapping_robot.launch文件中,将willowgarage_world.launch替换为filename2.launch。最终运行即可。

[转]使用gazebo中的building editor创建一个建筑环境并用于仿真相关推荐

  1. mybatis 动态字段与表中不一样_mybatis创建一个或多个新用户 insert 字段和表名不确定时动态添加问题...

    创建用户: /** * 创建一个或多个新用户 insert 字段和表名不确定时动态添加 */ @Test public void createAccount() { String lineColumn ...

  2. html中单选怎么写,创建一个单选框的html代码是

    创建一个单选框的 HTML 代码是: A. B. html中单选按钮控件标签用法解析及如单选1单选2单选3单选4/**注意:name值一定要相同才能够单选,要默认选项. 工人 在HTML中用来插入一个 ...

  3. python中set()函数==》创建一个无序不重复的元素集(创将一个集合)

    描述 set顾名思义是集合,里面不能包含重复的元素,接收一个可迭代对象作为参数 set() 函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集.差集.并集等. 语法 set 语 ...

  4. java 在面板中加入标签_创建一个JTabbedPane面板,为每一个标签设置一个名称

    [java]代码库package three; //这段程序主要是创建一个JTabbedPane面板,为每一个标签设置一个名称 import javax.swing.*; import java.aw ...

  5. Unity Editor 创建一个精灵

    创建一个2D项目 1.打开 unity Hub 2.点击新项目 3.选择2D模版,并修改项目名称 创建场景-Scene 1.点击左上角的File,选择New Scene, 快捷键:Ctrl + N 2 ...

  6. java中io流如何创建一个文件_,Java中Io流操作-File类的常用操作-创建文件,创建文件夹...

    package com.hxzy.IOSer; import java.io.File; import java.io.IOException; public class Demo03 { publi ...

  7. 在vue中使用three.js创建一个简单的立体图形

    安装 npm install three --save 使用 页面直接引入import * as THREE from 'three' <template><div><d ...

  8. 通过‘PyQt6‘中的QWidget类创建一个含有按钮的窗口 1

    1.首先搭建一个基本的窗口 ,代码如下: import sys from PyQt6.QtWidgets import QApplication,QWidgetclass Add_func(QWidg ...

  9. 如何保证myone在同一进程中最多仅能创建一个实例 java,程序员笔试考试题和案(java).doc...

    程序员笔试考试题和案(java) Oracle数据库属于以下哪种数据库类型?B A . 网状数据库 B. 关系数据库 C. 层次数据库 D. 面向对象的关系数据库 转发HTTP请求一般有两种方法,re ...

最新文章

  1. 皮一皮:现在想想真是幸运...
  2. leetcode算法题--目标和
  3. Ancient China Story of Shen-《Kung Fu Panda 2》
  4. Python爬虫之旅_高性能异步爬虫
  5. Web应用程序体系结构– Spring MVC – AngularJs堆栈
  6. Media所有参数汇总
  7. 新版CSDN中如何快速转载别人的CSDN博客,详细方法与步骤!!!
  8. WSPSRV.EXE错误导致ISA中断
  9. 雷电模拟器 脚本_精灵盛典辅助雷电模拟器使用教程
  10. python apscheduler执行_如何使Python apscheduler在后台运行
  11. 机器学习—LightGBM的原理、优化以及优缺点
  12. 编译OpenJDK8:Your cygwin is too old. You are running but at least cygwin 1.7 is required
  13. Windows 内核会换为 Linux 吗?
  14. Centos7下载和安装教程
  15. 大厂面试为什么总考算法?如何避开算法面试?
  16. CKEditor5系列三:创建一个功能相对完善的插件
  17. 复旦大学2017--2018学年第一学期(17级)高等代数I期末考试第八大题解答
  18. 什么是数据资产管理?5个角度帮你参透数据资产管理
  19. 手把手学STM32(一)
  20. 大数据时代--风控系统

热门文章

  1. 启动万维网发布服务(W3SVC)
  2. fatal error C1083: Cannot open include file: 'ceconfig.h': No such file or directory
  3. 可爱妈妈对我的\情色\教育
  4. 子域名查询DNS记录查询
  5. [Python图像处理] 七.图像阈值化处理及算法对比
  6. RxSwift之UI控件UIGestureRecognizer扩展的使用
  7. iOS之从N个数里面取M个数的组合算法
  8. Uncaught TypeError: Cannot read property ‘getters‘ of undefined
  9. Python with...as... 语法深入解析
  10. 使用pytz模块进行时区转换及时间计算