我是罗斯的新手
我正在尝试将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)
答案 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)