基于SDFormat创建ROS+Gazebo仿真世界和模型
一、 前提知识
1.什么是XML?
(xml小白,若下面的理解有误,欢迎前辈们指出)
XML全称为可扩展标记语言(EXtensible Markup Language),类似于HTML,不同的是XML旨于传输数据,而非显示数据。要理解这句话,首先需要明白XML没有预定义的标签,这不像HTML,对于HTML,浏览器会根据预定义的标签读取HTML文件,显示给用户;而XML的标签是由用户自己定义,也就意味着需要用户自己编写解析器,去解析XML文件中的自定义标签。从而我们可以在不同的平台上运行自己的解析器,通过传输XML实现数据的传输,这就体现出了XML旨于传输数据,而非显示数据
2.什么是SDFormat
SDFormat全称为仿真描述格式(Simulation Description Format),是一种用来描述机器人仿真环境和仿真实体的XML格式。最初,SDFormat只是Gazebo机器人仿真的一部分;目前,已经发展为可以描述整个机器人实体、灯光,静态/动态对象等全面的描述格式。具体地讲,SDFormat基于XML自定义了一些标签,Gazebo通过相应的解析器,可以把sdf格式的模型文件加载到Gazebo中。
参考链接:http://sdformat.org/
标签说明:http://sdformat.org/spec
二、使用教程
可直接参考该网页How to create a gazebo model using SDF,该教程中存在两个问题,已经在我的另一篇文章中说明。
三、重点说明:
在SDFormate的标签说明中提到,在一个SDFormt文件中,可以在sdf标签中添加多个model标签,也可以在world标签中添加model标签。但是在Gazebo加载sdf模型的实际使用中,略有差异。
经过实际操作,我们应该已经了解到,用ROS把sdf模型文件加载到Gazebo中,需要建立launch、world和models三个文件夹,调用过程分为三步:(1).launch文件调用.world文件,(2).world文件调用model.config文件,(3).config文件调用.sdf文件。实际上,.world和.sdf文件都是SDFormt格式的模型/世界描述文件,但(1)和(3)这两个调用过程中,Gazebo解析器解析过程有微小差异,即:对于(1)的.world文件,可以像前面讲的可以在sdf标签中添加多个model标签,也可以在world标签中添加多个model标签;对于(3)的.sdf文件,只能在sdf标签中添加一个model标签,也就是说每个.sdf文件中只能有一个模型,正如这篇文章中讲的Models defined in other files。
基于SDFormat创建ROS+Gazebo仿真世界和模型相关推荐
- ROS | Gazebo仿真—阿克曼(Ackermann)四轮小车模型
ROS | Gazebo仿真-阿克曼(Ackermann)四轮小车模型 1. 仿真描述 2. Gazebo简介 2.1 Gazebo的典型用途 2.2 Gazebo的主要特点 3. ros_contr ...
- ROS开发笔记(5)——基于 python 开发 Turtlebot3 Gazebo仿真环境下键盘操控移动机器人(Teleop-bot )
前文中记录了随机移动机器人的开发过程,本文内容为Turtlebot3 Gazebo仿真环境下Teleop-bot 键盘操控移动机器人,主要包含以下几个部分: 1.键盘驱动(按键驱动发布keys话题) ...
- ROS+Gazebo仿真差速小车并实现控制
本工程的功能包有两个,分别用于gazebo仿真与键盘控制运动 功能包原文件如下: diff_wheeled_robot_control : https://huffie.lanzouw.com/iXi ...
- 【开源项目分享】用于机器人崎岖地形导航的高程图创建及Gazebo仿真
简介 该项目是由苏黎世联邦理工学院(自治系统实验室和机器人系统实验室)开发,用于创建以机器人为中心的高程图,以实现崎岖地形的自主导航任务. 项目演示 https://www.bilibili.com/ ...
- 【教程一】基于Jackal底盘模型搭建ROS Gazebo仿真
一.创作背景 现在到网上搜索"Gazebo小车仿真"这个关键词,出来的内容要么就是Turtlebot系列或者Husky系列,要么就是从零搭建自己的小车模型...那么如果你既不想使用 ...
- ros gazebo 仿真出现No p gain specified for pid的解决方法
ros 运行gazebo出现 [ERROR] [1552391843.842820971, 0.313000000]: No p gain specified for pid. Namespace: ...
- 【ROS】ROS入门笔记-Gazebo仿真与实物测试篇
前面我们学习了ROS的一些基础知识,现在我们来学习ROS环境下的Gazebo仿真. 本文所需的源码下载地址为 https://github.com/guyuehome/guyueclass 文章目录 ...
- Gazebo仿真平台模型搭建与修改
ROS进阶教程(一)Gazebo仿真平台模型搭建与修改 文件讲解 Models 文件 World文件 Launch文件 模型编辑 可视化操作 配置文件编辑 仿真操作流程 完成model建模 world ...
- 教程 | 阿克曼结构移动机器人的gazebo仿真(九)
第九章.模型替换以及TEB调参技巧 1.前言 上节内容让小车在gazebo仿真环境中实现导航,本节内容重点介绍一下gazebo仿真中的模型替换方法以及TEB调参的技巧. 2.模型替换 阿克曼小车项目从 ...
最新文章
- 扩展cocos slider控件,支持禁用置灰
- OUYA游戏开发快速入门教程
- HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题
- php 8 jit,PHP8正式版发布,带来了注解和JIT
- C# 实现 rtc_通过Xlua实现unity热更新的一个小例子
- h3c交换机配置telnet_H3C路由器交换机配置 命令行操作基础 视频学习
- Transformations on DStreams之updateStateByKey 的使用和状态累加
- 【VR】Leap Motion 官网文档 FingerModel (手指模型)
- CentOS 官网下载 iso 镜像
- 一文搞懂经济数据中M0 M1 M2
- Descriptive Essay文章内容怎么写?
- 2016阿里巴巴校招内推offer (by 伟伯)
- 用严密的数学语言证明:周长相同时,圆面积最大
- html表格标题中副标题,excel数据表格制作副标题-如何在excel图表中添加标题?
- vue安装及创建运行
- android自定义UI模板图文详解
- JavaWeb,使用servlet/jsp时页面跳转的两种方式:转发和重定向
- php调用相册其他的图片代码,远程调用163网易相册的代码PHP版本
- 基于RT-Thread的两轮平衡小车设计
- 《程序员2013精华本》