【Gazebo入门教程】第八讲 Gazebo中的日志与回放

2023-05-16

【Gazebo入门教程】第八讲 Gazebo中的日志与回放

在这里插入图片描述

文章目录

  • 【Gazebo入门教程】第八讲 Gazebo中的日志与回放
    • 一、日志记录
      • 1. 日志内容介绍
      • 2. 日志记录
    • 二、日志回放
  • 总结

前言在之前的Gazebo教程中,我们系统的学习了如何使用Gazebo进行机器人模型的创建、仿真环境的创建,并随着一个又一个的实例完成了对于SDF建模和可视化建模两种建模手段的使用,最后通过对于控制器插件的研究和与ROS系统的连接,搭建起来整个仿真世界与真实世界的桥梁,本节博客,也是整个入门教程中的最后一节(暂时),将会重点讲述Gazebo中的日志与回放方法,辅助我们进行研究和学习。


一、日志记录

1. 日志内容介绍

在这里插入图片描述

  • 日志简介:Gazebo的日志文件常存储于压缩文件.log中,其中主要包含的是“世界状态”的变化,初始状态的描述包括仿真世界内一切事物的完整信息,从场景(Scene)到存在的实体。运行之后,每次仿真发生变化,新的世界状态都会被记录,具体内容如下:
  1. 仿真数据(例如当前模拟时间,物理迭代次数等);
  2. 场景内每个模型的状态(当然也包含模型内的每个链接和关节的状态),所谓状态,指的就是一些信息,比如瞬时姿态,速度,加速度,力等等;
  3. 当前世界内光源的位置;

2. 日志记录

  • 2.1 GUI记录:

\qquad 1. 开始仿真,点击右侧上方的Log Data图标,或者使用Ctrl + D

在这里插入图片描述

\qquad 2. 存储位置:默认在~/.gazebo/log下,可以通过下图中的```Browse````进行修改:

在这里插入图片描述

\qquad 3. 开始录制后,字节数量随着模型和光源的移动进行增长(静止时不变),记录完毕后,打开
\qquad Recordings,可看到生成路径state.log,目录名按时间生成。


  • 2.2 命令行记录:

\qquad 1. 命令行可以记录任意时间仿真日志,例如用如下指令开启Gazebo,记录random_velocity.world

 	gazebo -r --record_path ~/logs/random_velocity worlds/random_velocity.world

在这里插入图片描述

\qquad 2. 命令行可通过gazebo --help查看多种后缀的功能,具体如下:

  1. -p arg--play arg: 播放一个日志文件
  2. -r--record:从Gazebo打开到关闭的期间,记录日志
  3. --record_encoding arg: 日志数据的压缩编码格式。选项为zlib(默认),bz2txt

\qquad 3. 测试:当Gazebo成功关闭时,日志才会终止,故可以通过ls目录查看是否生成日志state.log

	ls ~/logs/random_velocity/

  • 2.3 部分仿真记录:

\qquad 1. 概念:在任意时间点触发日志记录,主要通过gz log工具

\qquad 2. 使用方法:新建终端,使用如下命令:

	# 开始记录
	gz log -d 1
	
	# 停止记录
	gz log -d 0
	
	# 查看gz log的其他选项
	gz log --help

二、日志回放

  • 注意:当前并不支持使用GUI 进行回放日志,故这里只介绍使用命令行工具的方法;

  • 命令行方法:使用gz log工具处理日志文件,其中-u指启动暂停的日志:

	gz log -s -f ~/.gazebo/log/2022-08-23T024149.945167/gzserver/state.log

在这里插入图片描述

  • 日志中的世界描述如下:
<?xml version='1.0'?>
<gazebo_log>
<header>
<log_version>1.0</log_version>
<gazebo_version>7.0.0~pre1</gazebo_version>
<rand_seed>10622214</rand_seed>
<log_start>43 380000000</log_start>
<log_end>69 651000000</log_end>
</header>

<chunk encoding='txt'><![CDATA[
<sdf version ='1.6'>
<world name='default'>
  (...)
  <light name='sun' type='directional'>
    (...)
  </light>
  <model name='ground_plane'>
    (...)
  </model>
  <model name='double_pendulum_with_base'>
    (...)
  </model>
</world>
</sdf>]]></chunk>

--- Press space to continue, 'q' to quit ---
  • 使用空格后可以逐步浏览之后状态(只有改变的信息):
<chunk encoding='txt'><![CDATA[
<sdf version='1.6'>
<state world_name='default'>
<sim_time>43 380000000</sim_time>
<real_time>43 478499228</real_time>
<wall_time>1453763389 677873530</wall_time>
<iterations>43380</iterations>
<model name='double_pendulum_with_base'><pose>1.140 -1.074 -0.000 0.000 -0.000 0.000 </pose><scale>1.000 1.000 1.000</scale><link name='base'><pose>1.13998 -1.07367 -0.00000 0.00000 0.00000 -0.00042 </pose><velocity>-0.0000 0.0000 -0.0005 0.0004 0.0030 0.0001 </velocity></link><link name='lower_link'><pose>1.38969 -1.79815 1.41059 -2.45351 0.00000 -0.00042 </pose><velocity>0.0042 -0.2557 0.2659 1.9694 0.0048 0.0001 </velocity></link><link name='upper_link'><pose>1.13999 -1.07367 2.10000 2.33144 -0.00000 -0.00042 </pose><velocity>0.0063 -0.0008 -0.0005 -0.3739 0.0032 0.0001 </velocity></link></model><model name='ground_plane'><pose>0.000 0.000 0.000 0.000 -0.000 0.000 </pose><scale>1.000 1.000 1.000</scale><link name='link'><pose>0.00000 0.00000 0.00000 0.00000 -0.00000 0.00000 </pose><velocity>0.0000 0.0000 0.0000 0.0000 -0.0000 0.0000 </velocity></link></model></state></sdf>
]]></chunk>

--- Press space to continue, 'q' to quit ---

总结

  • 内容:本篇博客主要介绍了Gazebo中的日志与回放功能,帮助我们在学习和实际仿真中提高效率,并降低调试成本,本篇教程也是入门教程中的最后一节,希望大家都能有所收获,未来的RVIZ教程敬请期待。

在这里插入图片描述

  • 注意:本文参考了Gazebo官方网站以及古月居中的Gazebo有关教程、知乎Bruce的教程等,主要目的是方便自行查询知识,巩固学习经验,无任何商业用途。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Gazebo入门教程】第八讲 Gazebo中的日志与回放 的相关文章

  • 记录Debian11安装docker-desktop(一)

    64 TOC 一 首先系统安装Debian11 0linux系统 xff0c 并修改配置信息 1 切换安装源为alibaba debian 11 x bullseye 1 1编辑sudo vim etc apt sources list文件
  • docker环境安装运行tomcat8.5

    1 docker pull tomcat 8 5 56 2 mkdir opt tomcat 3 cd opt tomcat 4 docker run d p 8080 8080 v opt tomcat webapps usr local
  • SessionFactory中getCurrentSession地址的对比

    1 首先 xff0c 建立一个静态factory方法 xff0c 提供给CurrentSession public class CongUtil public static SessionFactory getUtil Configurat
  • springMVC中bean容器:bean.xml的配置

    lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt beans xmlns 61 34 http www springframework org schema beans 34
  • Maven+spring +dubbo+zookeeper

    maven 43 springmvc 43 dubbo 43 zookeeper 为什么要用dubbo xff1f 还是让官方来解释吧 xff1a http dubbo io User 43 Guide zh htm http dubbo
  • window环境搭载elasticsearch学习(一)

    前言 xff1a 没太大比较 xff0c 因为工作项目需要 短时间运用elasticsearch做一个简单demo并能够实现一些简单操作 xff0c 所以选择用了windows环境 估计会比较多的坑 xff0c 让我们积极入坑吧 一 官网下
  • window环境搭载elasticsearch学习(三)--中文分词器

    前言 系统 xff1a Windows10 elasticsearch版本 xff1a 5 6 6 中文分词版本 xff1a 5 6 6 xff08 需要与elasticsearch版本匹配 xff09 maven版本 xff1a 3 5
  • 基于Windows10基于Linux的C语言笔记Ⅰ

    这玩意儿就是自己的学习笔记 xff0c 不过 xff0c 也可以用来入门学习C语言 However xff0c 你需要 xff1a 学习C语言兴致 xff0c Windows10 xff08 或者你有一台Linux系统的电脑 xff09 x
  • PDF文件中电子签名(安全性、有效性、合法性)验证指南

    电子合同是电子签名较为常见的一种应用方式 xff0c 目前大多数的的电子合同与电子文书都采用PDF的文件格式 本文以PDF格式的电子合同为例解释如何验证电子签名的安全性 有效性与合法性 xff08 下文统称 验签 xff09 xff0c 同
  • 数据结构专题——二叉树

    什么是二叉树 通俗的讲就是树上每一个节点最多有两个子节点 官方的递归定义是 xff1a 要么二叉树没有根节点 xff0c 是一颗空树要么二叉树由根结点 左子树 右子树组成 xff0c 且左右子树也都是二叉树 这里有两种特殊的二叉树 满二叉树
  • CSS filter滤镜属性使用

    前言 CSS的滤镜filter属性 xff0c 可以对网页中的图片进行类似Photoshop图片处理的效果 xff0c 通过CSS对图像进行处理 xff0c CSS的filter属性可以得到一些类似PS的滤镜效果 浏览器支持情况 xff1a
  • vtk中的剪裁

    在VTK中 xff0c 我们通常需要的并不是严格标准的几何体 xff0c 我们需要对这些几何体进行加工 xff0c 修改其内容 xff0c 得到我们想要的效果 xff0c 下面结合例子介绍如何在VTK中实现对几何体的裁剪 要对几何体进行裁剪
  • Ubuntu18.04搭建jenkins,并关联Github

    一 Ubuntu搭建jenkins 1 安装Java环境 sudo apt install openjdk 11 jre headless 创建一个Jenkins目录 xff0c 并进入 mkdir Jenkins cd Jenkins 3
  • 使用FOFA进行资产收集

    使用FOFA进行资产收集 FOFA是一款空间搜索引擎 它可以通过进行网络空间测绘快速进行网络资产匹配FOFA官方地址 https fofa so 我们使用FOFA进行搜索资产的时候他是不区分大小写的 xff1b 并且我们可以使用一些逻辑连接
  • python针对文本的操作

    Python文件的处理 1 我们可以把文件想象成一个仓库 xff1b 可以供我们操作使用 针对文件的操作流程为 xff1a 打开文件并且创建对象 xff1b 对该文件内容进行 读取 写入 删除 修改等操作 关闭并且保存 2 常用操作函数 o
  • 【CVE-2016-3088】 Activemq文件上传以及弱口令

    CVE 2016 3088 PUT方法上传文件 自建环境 漏洞描述 Apache ActiveMQ是美国阿帕奇 xff08 Apache xff09 软件基金会的一套开源的消息中间件 Apache ActiveMQ 5 14 0之前5 x版
  • Apache SSI 远程命令执行漏洞

    apache ssi 文件上传导致的命令执行 漏洞描述 如果目标服务器开启了SSI与CGI支持 这样我们就可以上传一个可执行的shtml文件 漏洞复现过程 1 访问文件上传页面进行上传可执行文件shtml文件 2 访问我们上传成功的shtm
  • Linux周期计划及开启自启动

    Linux 周期计划 linux的周期计划是由crond服务控制 systemctl status crond 进行查看服务运行状态 Linux 周期计划可分 系统性周期计划 用户周期性计划 系统性周期计划 xff1a etc cronta
  • Tableau实现增量刷新

    为了节省tableau的刷新时间 xff0c 有时候我们只需要增量刷新就可以了 xff0c 设置如下图 选择菜单栏的 数据 提取刷新 所有行 增量刷新 xff0c 然后再选择对应的增量标识符就可以了 xff0c 比如我选择的是日期 DOB
  • 潘多拉盒子 使用 hd-idle 硬盘休眠设置

    潘多拉盒子 使用 hd idle 硬盘休眠设置 潘多拉或OpenWrt路由器你去 挂载点 那里去看路径 比如你挂载的是 dev sda5 xff08 1 2 3 5看自己路由器挂载硬盘的情况 xff09 路径 xff0c 那么硬盘休眠就写这

随机推荐