最近在学习lidar_align用来标定lidar和IMU时,用自己的数据包进行标定,在全局优化的时候一直出现程序中断问题。
最终通过减少优化点的方法解决了问题,但不知道对准确性是否有影响。
具体方法如下:
找到sensors.h中的Scan类,将 keep_points_ratio的默认值从0.01改成0.001或者更小。
class Scan {
public:
struct Config {
float min_point_distance = 0.0;//lidar数据里面点的距离最小值
float max_point_distance = 100.0;//lidar数据里面点的距离的最大值
float keep_points_ratio = 0.01;//用于优化点的比例
float min_return_intensity = -1.0;//lidar数据里面点的强度的最小值
bool estimate_point_times = false;//是否估计lidar每个点的时间
bool clockwise_lidar = false;//lidar旋转的方向,默认逆时针
bool motion_compensation = true;//是不是需要进行运动补偿
float lidar_rpm = 600.0;//lidar的转速
};
最终能得到标定的结果。