运行fast_livo2,播放60G的bag,内存不够用
@xuankuzcr 郑博士,你好:
我录制了总计60G的bag,,图片是2400*2000的,雷达是Mid360,每4G分一个包,总计15个。 当我运行fast_livo2,然后rosbag play时,每播放一个,内存就会上涨,每个包会导致内存上涨2G。我的内存总共是16G,很快就占满了。但实际上生辰的点云数量并不多。这严重限制了对大场景的使用。似乎所有的照片一直在内存中,没有释放。希望得到郑博士的指导,非常感谢。 我的配置文件如下: common: img_topic: "/left_camera/image" lid_topic: "/livox/lidar" imu_topic: "/livox/imu" img_en: 1 lidar_en: 1 ros_driver_bug_fix: false
extrin_calib: extrinsic_T: [-0.02542454, -0.02329, 0.037658] #[-0.011, -0.02329, 0.04412]
extrinsic_R: [0.9397,0,-0.3420, 0,1,0, 0.3420,0,0.9397]
Rcl: [ -0.017039, -0.999801, 0.010364, 0.008505, -0.010510, -0.999908, 0.999819, -0.016949, 0.008683] Pcl: [ -0.066981, -0.064700, -0.008057]
time_offset: imu_time_offset: 0.0 img_time_offset: 0.1 exposure_time_init: 0.0
preprocess: point_filter_num: 1 filter_size_surf: 0.1 lidar_type: 1 # Livox Avia LiDAR scan_line: 4 blind: 0.1
vio: max_iterations: 5 outlier_threshold: 1000 # 78 100 156 #100 200 500 700 infinite img_point_cov: 100 # 100 1000 patch_size: 8 patch_pyrimid_level: 4 normal_en: true raycast_en: false inverse_composition_en: false exposure_estimate_en: true inv_expo_cov: 0.1
imu: imu_en: true imu_int_frame: 30 acc_cov: 0.5 # 0.2 gyr_cov: 0.3 # 0.5 b_acc_cov: 0.0001 # 0.1 b_gyr_cov: 0.0001 # 0.1
lio: max_iterations: 5 dept_err: 0.02 beam_err: 0.05 min_eigen_value: 0.0025 # 0.005 voxel_size: 0.5 max_layer: 2 max_points_num: 50 layer_init_num: [5, 5, 5, 5, 5]
local_map:
map_sliding_en: false
half_map_size: 100
sliding_thresh: 8
uav: imu_rate_odom: false gravity_align_en: true #false
publish: dense_map_en: false pub_effect_point_en: false pub_plane_en: false pub_scan_num: 1 blind_rgb_points: 0.0
evo: seq_name: "Building_01" pose_output_en: false
pcd_save: pcd_save_en: true colmap_output_en: true# need to set interval = -1 filter_size_pcd: 0.15 interval: -1
值得注意的是,下载了官方了例子,CBD_Building_03.bag HKU_Main_Building.bag以及对应的配置文件,运行时也出现了内存占用稳步上涨地情形,官方的例子中,图片是800*640, 500K左右。 内存不断上涨是程序本身的逻辑限制,还是代码不完善导致的内存泄漏?
值得注意的是,下载了官方了例子,CBD_Building_03.bag HKU_Main_Building.bag以及对应的配置文件,运行时也出现了内存占用稳步上涨地情形,官方的例子中,图片是800*640, 500K左右。 内存不断上涨是程序本身的逻辑限制,还是代码不完善导致的内存泄漏?
图片得resize为官方这样的尺寸吧,不然算力还紧张了
做一个LRU内存管理即可
做一个LRU内存管理即可
那需要改C++代码,您有改动后的代码可以分享吗,我感觉是内存泄漏,但是尝试了很多,没试出来哪个变量没释放。
Thank you very much for your kind message. I am pleased to inform you that Xinan Qiu has received your email.
是内存没释放,视觉地图和激光地图的voxel增长很夸张,你可以将两张地图的voxel数量打出来看一下,更改的话你可以参考一下fasterlio中对于局部地图的voxal管理
做一个LRU内存管理即可
那需要改C++代码,您有改动后的代码可以分享吗,我感觉是内存泄漏,但是尝试了很多,没试出来哪个变量没释放。
https://github.com/yqmy0814/FAST-LIVO2
做一个LRU内存管理即可
那需要改C++代码,您有改动后的代码可以分享吗,我感觉是内存泄漏,但是尝试了很多,没试出来哪个变量没释放。
https://github.com/yqmy0814/FAST-LIVO2
这里没改VIO的内存,有谁改过也可以分享一下