分享

cartographer_record_bz

 海漩涡 2017-10-13


1、不闭合 若闭合点很难完全闭合,可尝试调整costraint_builder.min_score评分值。 SPARSE_POSE_GRAPH.constraint_builder.min_score
该值越小越容易闭合,即要求精度变低。


2、IMU 建议IMU的角速度和线加速度都要发布。并根据IMU数据的准确性调整IMU 的估计位姿的方差(方法越大则越不信任该数据)。也可调整IMU的相关权重:( trajectory_builder_2d.lua文件中)
orientation_model_variance角速度权重 position_model_variance velocity_model_variance线加速度权重 (因此,IMU主题数据中的方差信息填不填写没影响)


3、odom数据方差 cartographer中odom的方差并不是从/odom主题中读取,而是从配置文件的 constant_odometry_translational_variance和 constant_odometry_rotational_variance参数获取,因此/odom 中的方差信息填不填写不影响:(astra_camera_2d.lua文件中)

constant_odomtry_translational_variance = 1e-7,
constant_odomtry_rotational_variance = 1e-7,

(走廊长度变长或变短时需要增加里程计的权重;平行环境变成交叉的,多半是数据角度问题,此时应该提高IMU的权重,减少配置文件中其方差值)


4、num_laser_fans参数 影响全局匹配和局部匹配的权衡。越小说明传感器累计误差比较大,要更注重全局匹配。

5、地图提前闭合问题 建图时离应该闭合的时候还有距离就闭合了。是因为环境相似,此时可继续再往前走,由于它提前闭环,前面肯定会出现不能闭环的情况,这时候就会自己发现闭环错误,从而修正了。
三种解决方法:
①、继续往前走,走到下一个特征明显的地方,等待重新闭环
②、增大里程计权重(前提是里程计准确),修改odom中的方差值(协方差值若全写0,则表示odom完全没误差)
③、减小cartographer里面的配置文件astra_camera_2d.lua里面的huber_scale(该参数为激光匹配的权重(即闭环权重))
注意:减少闭环权重会使得闭环变慢。
 
里程计还要融合其它数据之后得出的数据(如:IMU等)才是真正跟激光对比的数据。若将里程计的方差都写0,则表示里程计完全没误差,建图时理论上就会忽略里程计之外的其他数据。(但是单个数据的方差为零,不能使得融合出来的数据方差为零)


6、SPARSE_PISE_GRAPH.optimize_every_n_scans
指定每多少帧闭环一次,增大该值会减少闭环次数。减少闭环压力,不用过于频繁的匹配,传感器的误差不会瞬间增大的很快。
(30改为75)

7、real_time_correlative_scan_matcher中的rotation_delta_cost_weight (1e-1改为2e-1) 提高局部闭环的时候对odom的角度置信度,局部闭环的时候odom 还是挺准的,也是为了解决当时工厂的错误闭环,但要说到减少闭环压力的话,主要还是 30改为75,不用过于频繁的匹配,传感器的误差不会瞬间增大得很快




    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多