如何将扫描数据(主题)保存在npy文件中?

时间:2019-11-18 02:31:36

标签: python linux numpy save ros

我是罗斯的新手

我正在尝试将LiDAR Laserscan数据保存到npy文件中,以在不启动ros的情况下检查我的测试代码。

我想要保存的理想形式是numpy数组文件,该文件包含每个Laserscan主题数据中的所有信息,例如标头(stamp,seq),角度数据(angle_min,-),范围。

我希望我的测试代码可以使用这些数据。看起来像

buffer = np.load('scan_save.npy', allow_pickle = True)

buffer[0] = prev_scan

for scan in buffer[1:]:

    scan.header.stamp - prev_scan.stamp = dt
    function(scan.ranges)
...

我不知道如何将所有扫描数据不仅保存在“范围”中,而且还保存在“标头,angle_min,time_increment”中

此外,我希望每次扫描订户获得扫描数据时都附加每个扫描数据

我只能做的是

scandata = msg.ranges # msg is Laserscan
np.save("~/scan_save", scandata)

1 个答案:

答案 0 :(得分:2)

我解决了这个问题!这是我的代码:)

通过此操作,我可以将所有主题另存为numpy数组

self.scan_data = np.array([]) # define it at __init__

'''at the scan callbalck function'''
buffer = msg # Laserscan msg from subscriber
self.scan_data = np.array(buffer)
self.save_scan = np.append(self.save_scan, scan_data)
np.save("~/record/scan", self.save_scan)