JokerJohn / LIO_SAM_6AXIS

LIO_SAM for 6-axis IMU and GNSS.
608 stars 121 forks source link

用相同的数据,降低numberOfCores这个参数,建图有时候会飘,不说很稳定 #60

Closed zhao-zhibo closed 10 months ago

zhao-zhibo commented 10 months ago

我对建图的消耗核数和点云处理时间有要求,然后我修改了在yaml文件中修改了numberOfCores,改为1之后,建图有时候会飘,我不确定是不是因为这个参数引起的飘。 而且我在laserCloudInfoHandler加了个计时器,发现单帧处理点云的耗时是200ms,我雷达的采样率是10HZ,这种情况下耗时是不是有点高呢,可以降低耗时吗? 还有一个疑问是关于local path的,在对齐gps和lio的轨迹之后,local path还在打转,过一会儿它才被拉回来,这个现象主要是为什么呢? 2023-11-17 18-32-14屏幕截图

JokerJohn commented 10 months ago

numberOfCores在这个参数在后端corner和surf点在scan2map优化的时候,搜索KNN corrseepondence使用, openmp的问题。 你这个单帧初始时间有点高了,可以提高点的voxel 采样尺寸。 local path如果你指的是IMU预测的橙色 path,可以不必关心,因为这个path需要新的lidar pose和IMU观测,在一个窗口里面进行优化才会拉回来GPS坐标系附近。

zhao-zhibo commented 10 months ago

@JokerJohn numberOfCores: 我这个数据很特殊,没有闭环,所以应该不涉及后端估计。您说的这个最低核数是不是只能配置为1呢?我想降低一下核数 单帧初始化时间:你说的提高尺寸是odometrySurfLeafSize mappingCornerLeafSize mappingSurfLeafSize,带来的收益是降低数据量吧? local path:我指的local path是粉红色那个线,漂移很大,这个我理解应该是雷达匹配得到的path吧? 2023-11-18 11-33-41屏幕截图

JokerJohn commented 10 months ago

@zhao-zhibo 主要调整下downsampleRate. odometrySurfLeafSize mappingCornerLeafSize mappingSurfLeafSize这些参数一般室内一套室外一套不变。

image

“我这个数据很特殊,没有闭环,所以应该不涉及后端估计。”,我指的是后端这个cpp,你构建整个graph->优化,这就是后端,只是没有闭环因子而已。 “最低核数是不是只能配置为1呢?我想降低一下核数”,这个是opemmp的问题,看下面代码,不想多线程可以注释。

image

“local path:我指的local path是粉红色那个线,漂移很大,这个我理解应该是雷达匹配得到的path吧?”,你的理解错了,橙色线是IMU用上一次优化得到新的bias预测的几s内的位姿轨迹,橙色线抖动是正常的,它只做预测,最终建图还是靠雷达。 “在对齐gps和lio的轨迹之后,local path还在打转,过一会儿它才被拉回来”。对齐轨迹后,还需要一段时间,等IMU子图才会rest滑窗,积累了一些GNSS ENU系下的雷达位姿,新预测的橙色轨迹才会拉到GNSS ENU系下。这是正常的,不影响精度。

zhao-zhibo commented 10 months ago

@JokerJohn 谢谢您对上面问题的一一解答,我看了代码,代码中有保存在enu坐标系下的位姿。然后看了下发布者,是不是没有发布者发布这个位姿出去呢?

JokerJohn commented 10 months ago

@zhao-zhibo 系统最终保留的位姿就是ENU下的位姿,发布在lio_sam_6axis/mapping/odometry话题下。