Closed seanXMU closed 9 months ago
使用visualize.launch能正常显示点云,但是优化会直接崩溃退出。请问是什么问题呢?
发现是ba.hpp 的615行 remove_outlier函数中
double threshold = residuals[std::floor((1-ratio)*voxhess.plvec_voxels.size())-1];
residuals会变成residuals[-1]导致段错误,系统崩溃。请问有什么解决方法吗
发现是ba.hpp 的615行 remove_outlier函数中
double threshold = residuals[std::floor((1-ratio)*voxhess.plvec_voxels.size())-1];
residuals会变成residuals[-1]导致段错误,系统崩溃。请问有什么解决方法吗
我也碰到了这种错误,感觉得自己修改下代码
我也遇到了这个问题,请问是否有解决的方法
发现是ba.hpp 的615行 remove_outlier函数中
double threshold = residuals[std::floor((1-ratio)*voxhess.plvec_voxels.size())-1];
residuals会变成residuals[-1]导致段错误,系统崩溃。请问有什么解决方法吗
@seanXMU @gongjun136 @zezeuser 如果是这个原因,说明整个场景没有检测到平面,plvec_voxels.size()=0
。我的建议是voxel_size、eigen_ratio都调大一点(如果现在很小的话),如果是使用默认参数还有这个问题。可以把点云截图放上来看看,让我判断一下hba无法找到平面的原因。
发现是ba.hpp 的615行 remove_outlier函数中
double threshold = residuals[std::floor((1-ratio)*voxhess.plvec_voxels.size())-1];
residuals会变成residuals[-1]导致段错误,系统崩溃。请问有什么解决方法吗
@seanXMU @gongjun136 @zezeuser 如果是这个原因,说明整个场景没有检测到平面,
plvec_voxels.size()=0
。我的建议是voxel_size、eigen_ratio都调大一点(如果现在很小的话),如果是使用默认参数还有这个问题。可以把点云截图放上来看看,让我判断一下hba无法找到平面的原因。发现是ba.hpp 的615行 remove_outlier函数中
double threshold = residuals[std::floor((1-ratio)*voxhess.plvec_voxels.size())-1];
residuals会变成residuals[-1]导致段错误,系统崩溃。请问有什么解决方法吗
您好,我也是同样的问题,这是我的场景(r3live dataset),用visualize.launch启动
将eigen_ratio调到0.3, voxel_size调到6.0能够不报错运行,但第二次运行launch报错,但我好像修改了一个错误的voxel_size值,我修改的是:
hba.cpp 71 ot->quater_length = voxel_size / 6.0; (4.0->6.0) 但这确实导致了我可以正常运行一次,不改这个,只改eigen_value反而运行不了