5

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

 11 months ago
source link: https://blog.csdn.net/feixiaoxing/article/details/133814278
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

嵌入式-老费 已于 2023-10-13 17:30:01 修改 阅读量43 点赞数

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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

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

3、打开rosbag工具

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

rosbag record -a

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

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

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

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

05346fcea54d4a54ae83f4874555f04b.png

5、确认bag文件是否正确

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



newCodeMoreWhite.png

6、数据回放与验证

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

[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:

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK