SLAM从入门到精通(数据回放工具之rosbag)

news2024/11/23 19:25:21

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        前面我们学习了hector-slam、gmapping slam两种slam方法。当时我们操作的时候,是通过手动操作的方法来建图的。但是这里面可能存在一个问题,因为建图的时候,我们只能选择一种slam建图方法。如果我们想针对同一种场景用不同的slam算法,比较下它们的建图效果,这个时候就没有办法了。好在ros给我们提供了一个数据回放的工具,即rosbag。

        rosbag好处蛮多的,最主要的就两个。一个是方便学习。对于刚开始ros入门的同学来说,可能自身缺少相应的传感器,无法对算法进行分析和测试。但是有了rosbag之后,数据可以按照之前的速度进行回放处理,这个时候即使没有传感器,没有实际数据,也可以对算法进行单步调试的。第二个好处就是debug了。这个比较显而易见。对于部分复杂的场景,用rosbag来分析问题是再好不过了。现场fae人员描述得再好,都不如一个rosbag文件来得踏实。

        下面我们就用小乌龟行走的场景,看下rosbag应该怎么使用。

1、第一步打开roscore

        这个比较好理解,roscore是所有消息的分发器,它肯定第一个被启动。

2、依次打开turtlesim_node和turtle_teleop_key

        前者是打开小乌龟的界面,后者是实际操作。两者的命令是,

rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

3、打开rosbag工具

        在用turtle_teleop_key操作小乌龟之前,我们需要用rosbag记录一下所有的话题和消息。对应的命令是,

rosbag record -a

        输入完毕之后,我们就可以在当前目录下看到生成了一个bag文件,

feixiaoxing@feixiaoxing-VirtualBox:~/Desktop$ ls
2023-10-13-16-44-52.bag  catkin_ws  wpr_simulation-master.zip

        这个bag文件就是系统记录的数据包了。

4、操作小乌龟,继续生成bag文件

        所有操作都准备好了,就可以操作小乌龟了。让小乌龟各个方向都走一走,最好是走出一个图案出来。这样在后续rosbag回放的时候,可以看下生成的图案和当前的图案是否一致。等图案生成后,就可以关闭turtlesim_node、turtle_teleop_key、rosbag了。

5、确认bag文件是否正确

        为了验证bag文件是否正确,可以输入rosbag info 2023-10-13-16-44-52.bag的方法来进一步确认下,

feixiaoxing@feixiaoxing-VirtualBox:~/Desktop$ rosbag info 2023-10-13-16-44-52.bag 
path:        2023-10-13-16-44-52.bag
version:     2.0
duration:    1:07s (67s)
start:       Oct 13 2023 16:44:52.39 (1697186692.39)
end:         Oct 13 2023 16:46:00.20 (1697186760.20)
size:        607.8 KB
messages:    8646
compression: none [1/1 chunks]
types:       geometry_msgs/Twist [9f195f881246fdfa2798d1d3eebca84a]
             rosgraph_msgs/Log   [acffd30cd6b6de30f120938c17c593fb]
             turtlesim/Color     [353891e354491c51aabe32df673fb446]
             turtlesim/Pose      [863b248d5016ca62ea2e895ae5265cf9]
topics:      /rosout                    6 msgs    : rosgraph_msgs/Log  
             /rosout_agg                3 msgs    : rosgraph_msgs/Log  
             /turtle1/cmd_vel         191 msgs    : geometry_msgs/Twist
             /turtle1/color_sensor   4223 msgs    : turtlesim/Color    
             /turtle1/pose           4223 msgs    : turtlesim/Pose

6、数据回放与验证

        有了bag文件,其实下面就可以通过回放的方法来进一步验证了。验证的步骤也不复杂,主要分成这三步。第一,打开roscore;第二,打开turtlesim_node;第三步,这里用rosbag play 2023-10-13-16-44-52.bag来代替turtle_teleop_key了。可以观察一下,确认小乌龟生成的图案和之前保存的图案是否一致。如果一致,基本代表整个过程都是ok的。

feixiaoxing@feixiaoxing-VirtualBox:~/Desktop$ rosbag play 2023-10-13-16-44-52.bag 
[ INFO] [1697186826.134207057]: Opening 2023-10-13-16-44-52.bag

Waiting 0.2 seconds after advertising topics... done.

Hit space to toggle paused, or 's' to step.
 [DELAYED]  Bag Time: 1697186692.394805   Duration: 0.000000 / 67.807504   Delay [RUNNING]  Bag Time: 1697186692.394805   Duration: 0.000000 / 67.807504         [RUNNING]  Bag Time: 1697186692.394805   Duration: 0.000000 / 67.807504         [RUNNING]  Bag Time: 1697186692.396400   Duration: 0.001595 / 67.807504         [RUNNING]  Bag Time: 1697186692.496650   Duration: 0.101844 / 67.807504         [RUNNING]  Bag Time: 1697186692.596853   Duration: 0.202048 / 67.807504         [RUNNING]  Bag Time: 1697186692.639153   Duration: 0.244348 / 67.807504         [RUNNING]  Bag Time: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1091299.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

统信UOS 1060系统新增备份

原文链接:统信UOS 1060系统新增备份 hello,大家好啊,今天给大家带来关于统信UOS 1060系统备份还原的系列内容的第二篇文章,系统新增备份,我们可以将系统新增备份到u盘中,后面需要的话,可以进行还…

Raven2靶机渗透

1. 信息收集 1.1 主机探测 sudo arp-scan -l1.2 端口扫描 nmap -p- -A 192.168.16.185开放了80端口,尝试登录网址查看信息,通过浏览器插件找出指纹 1.3 目录扫描 访问登录界面,发现remember Me怀疑是shiro界面 登录/vendor/界面&#xff0…

springboot中如何进行测试用例数据的随机设定

测试用例数据设定 测试用例数据通常采用随机值进行测试,使用SpringBoot提供的随机数为其赋值 1.在application.yml中设置随机值 testcast:book:id: ${random.int} # 随机整数id2: ${random.int(10)} # 10以内随机数type: ${random.int(10,20)} # …

谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)rust解法

有一个5*5的网格,其中恰好有一个格子是空的,其他格子各有一个字母。一共有4种指令:A, B, L, R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列(以数字0结束),输出指…

模板进阶和反向迭代器

文章目录 模板非类型模板参数模板特化函数模板特化类模板特化 模板分离编译 反向迭代器 模板 非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。 非类型形参&#xff0c…

黑龙江省人口与社会经济数据集(2015-2016年)

摘要 a. 数据内容(数据文件/表名称,包含的观测指标内容) 黑龙江省人口与社会经济数据集(2015-2016年)反映了黑龙江省社会经济、人口和劳动力、农业生产、金融、旅游、卫生、教育、社会保障等情况,包含年末…

MTC证书|欧盟与英国金属类产品清关新要求

英国禁止进口俄钢材的通告内容 从2023年 9 月 30 日起,欧盟和英国将对在第三国加工的特定钢铁产品实施新的制裁,这些产品包含俄罗斯原产的钢铁原料。进口商需要在进口时申报进口货物是否合规。 MTC认证 欧盟严抓MTC认证 获悉,从10月1日起&a…

倒置边框半径卡片

效果展示 CSS 知识点 实现多曲面的思路 实现整体布局 <div class"card"><div class"img_box"></div><div class"content"><div class"price"></div></div> </div>.card {position…

微信小程序入门开发教程

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《微信小程序开发实战》。&#x1f3af;&#x1f3a…

【LeetCode】11. 盛最多水的容器

1 问题 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;你不能倾斜容器…

[自用] win 10安装cuda 10.2和cuDNN 10.2

之前已经安装cuda 10.0和cuDNN 10.0 参考博文&#xff1a; https://blog.csdn.net/qq_50677040/article/details/132131346 https://blog.csdn.net/weixin_67615387/article/details/128807503 安装目录&#xff1a; cmd验证

Android百度地图sdk设置Marker不同颜色

使用百度地图sdk&#xff0c;在地图上画一个marker图标很简单&#xff0c;如下 private fun drawMark(point: LatLng){var resId R.mipmap.icon_device//这个资源是一张图片//构建Marker图标val bitmap BitmapDescriptorFactory.fromResource(resId)//构建MarkerOption&#…

计算机视觉:池化层的作用是什么?

本文重点 在深度学习中,卷积神经网络(CNN)是一种非常强大的模型,广泛应用于图像识别、目标检测、自然语言处理等领域。而池化层作为CNN中的一个关键步骤,扮演着优化神经网络、提升深度学习性能的重要角色。本文将深入探讨池化层的作用及其重要性,帮助读者更好地理解和应…

计算机网络 实验四 子网划分(网络层)

实验目的&#xff1a; 通过实验掌握下列知识&#xff1a; ① 熟悉子网掩码算法和网关&#xff0c;掌握子网划分方法。 ② 了解路由器的作用&#xff0c;掌握静态路由的基本配置。 实验过程分析&#xff1a; 静态路由基本配置 按照拓扑图接线【截图】。PC_1和PC_2设置IP地址…

实时美颜技术的崭新时代:美颜SDK开发与应用

美颜技术的崭新时代已经来临&#xff0c;实时美颜SDK的开发和应用成为数字世界中不可或缺的一部分。从社交媒体到视频直播&#xff0c;实时美颜技术已经在各种应用中取得了广泛成功&#xff0c;吸引了数百万用户。本文将深入探讨实时美颜技术的发展、SDK的开发&#xff0c;以及…

计算机网络 实验五 RIP与OSPF实验(网络层算法)

实验目的&#xff1a; 通过实验掌握下列知识&#xff1a; 1. 掌握RIP路由协议基本原理&#xff0c;熟悉RIP协议基本配置。 2. 掌握OSPF路由协议基本原理&#xff0c;熟悉配置单区域OSPF。 实验过程分析&#xff1a; RIP协议基本配置 按照拓扑图接线【截图】。对RTA进行RI…

java智慧停车系统源码

java智慧停车系统源码 技术架构&#xff1a; 后端开发语言java&#xff0c;采用最新springcloudalibaba版本开发&#xff0c;框架oauth2springboot2.6(可升级到3.0)doubble3.2&#xff0c;使用nacos, seata&#xff0c;sentinel&#xff0c;&#xff0c;数据库mysql/mongodb/…

【经验】解决重置 Windows 10 时报错:“无法找到介质” 的错误

按以下流程走&#xff1a; 管理员方式打开cmd输入命令: reagentc /info如果Enabled为空&#xff0c;则说明没有设置正确找到以下三个文件&#xff1a; WinRE.wimboot.sdiReAgent.XML 下载地址&#xff1a;http://www.winwin7.com/Soft/XTBD-555.html?_t1577956053 将这3个文…

Windows 10 用 Hyper-V 安装 Ubuntu

0、快速创建&#xff08;已启用Hyper-V&#xff09; &#xff08;默认安装路径&#xff1a;C:\Users\Public\Documents\Hyper-V\Virtual hard disks&#xff09; 可通过设置更改&#xff1a; 安装操作系统 1、启用 Windows 功能&#xff1a;Hyper-V 然后重启电脑 2、搜索 …

微信小程序开发者账号注册

✨博文作者&#xff1a;烟雨孤舟 &#x1f496; 喜欢的可以 点赞 收藏 关注哦~~ ✍️ 作者简介: 一个热爱大数据的学习者 ✍️ 笔记简介&#xff1a;作为微信小程序云开发爱好者&#xff0c;以下是个人总结的学习笔记&#xff0c;如有错误&#xff0c;请多多指教&#xff01;…