FAST-LIVO2 icon indicating copy to clipboard operation
FAST-LIVO2 copied to clipboard

运行fast_livo2,播放60G的bag,内存不够用

Open uubird2025-collab opened this issue 1 month ago • 6 comments

@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

uubird2025-collab avatar Nov 08 '25 06:11 uubird2025-collab

值得注意的是,下载了官方了例子,CBD_Building_03.bag HKU_Main_Building.bag以及对应的配置文件,运行时也出现了内存占用稳步上涨地情形,官方的例子中,图片是800*640, 500K左右。 内存不断上涨是程序本身的逻辑限制,还是代码不完善导致的内存泄漏?

uubird2025-collab avatar Nov 10 '25 01:11 uubird2025-collab

值得注意的是,下载了官方了例子,CBD_Building_03.bag HKU_Main_Building.bag以及对应的配置文件,运行时也出现了内存占用稳步上涨地情形,官方的例子中,图片是800*640, 500K左右。 内存不断上涨是程序本身的逻辑限制,还是代码不完善导致的内存泄漏?

图片得resize为官方这样的尺寸吧,不然算力还紧张了

zhangqi-sudo avatar Nov 10 '25 05:11 zhangqi-sudo

做一个LRU内存管理即可

xinanqiurobotics avatar Nov 11 '25 11:11 xinanqiurobotics

做一个LRU内存管理即可

那需要改C++代码,您有改动后的代码可以分享吗,我感觉是内存泄漏,但是尝试了很多,没试出来哪个变量没释放。

uubird2025-collab avatar Dec 01 '25 05:12 uubird2025-collab

Thank you very much for your kind message. I am pleased to inform you that Xinan Qiu has received your email.

xinanqiurobotics avatar Dec 01 '25 05:12 xinanqiurobotics

是内存没释放,视觉地图和激光地图的voxel增长很夸张,你可以将两张地图的voxel数量打出来看一下,更改的话你可以参考一下fasterlio中对于局部地图的voxal管理

xinanqiurobotics avatar Dec 01 '25 05:12 xinanqiurobotics

做一个LRU内存管理即可

那需要改C++代码,您有改动后的代码可以分享吗,我感觉是内存泄漏,但是尝试了很多,没试出来哪个变量没释放。

https://github.com/yqmy0814/FAST-LIVO2

zq572412-prog avatar Dec 01 '25 10:12 zq572412-prog

做一个LRU内存管理即可

那需要改C++代码,您有改动后的代码可以分享吗,我感觉是内存泄漏,但是尝试了很多,没试出来哪个变量没释放。

https://github.com/yqmy0814/FAST-LIVO2

这里没改VIO的内存,有谁改过也可以分享一下

zq572412-prog avatar Dec 01 '25 10:12 zq572412-prog