通过修改livox loam源代码来提高算法效率

通过修改livox loam源代码来提高算法效率

看过代码的都知道,我们一般使用的kd-tree是pcl自带的,然后使用的时候肯定会有删除节点的情况,删除节点是一个很消耗时间的动作,因为删除节点有可能会需要重建树。
所以我的思路是,重写kd-tree,在节点的struct中我们添加boolean属性:

struct KD_TREE_NODE
{
    // 该节点对应的点坐标
    PointType point;
    // 划分轴
    int division_axis;  
    int TreeSize = 1;
    int invalid_point_num = 0;
    int down_del_num = 0;
    bool point_deleted = false;
    bool tree_deleted = false; 
    bool point_downsample_deleted = false;
    bool tree_downsample_deleted = false;
    bool need_push_down_to_left = false;
    bool need_push_down_to_right = false;
    bool working_flag = false;
    pthread_mutex_t push_down_mutex_lock;
    float node_range_x[2], node_range_y[2], node_range_z[2];   
    // 左右子节点
    KD_TREE_NODE *left_son_ptr = nullptr;
    KD_TREE_NODE *right_son_ptr = nullptr;
    // 父节点
    KD_TREE_NODE *father_ptr = nullptr;
    // For paper data record
    float alpha_del;
    float alpha_bal;
};

point_deleted和tree_deleted这两个属性初始都是false,当一个节点不被需要的时候,point_deleted会被设置为true,当以这个节点为root的子树中的节点都不被需要的时候,tree_deleted会被设置为true。然后我们最后在去处理节点,节省了很多时间。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LOAM-Livox是基于Livox激光雷达的LOAM(Lidar Odometry and Mapping)算法的一个变种。与传统的LOAM算法相比,LOAM-Livox算法在激光雷达硬件上有所改进和优化。 LOAM-Livox算法的原理和传统LOAM算法类似,也是通过激光雷达数据进行机器人的定位和建图。它同样包括前端和后端两个模块。 前端模块主要负责激光雷达数据的处理和特征提取。LOAM-Livox使用了Livox激光雷达的点云数据,并针对Livox激光雷达的特点进行了适应性调整。由于Livox激光雷达使用了固定角度分辨率和固定线数的设计,LOAM-Livox算法首先对点云数据进行去噪和滤波处理。然后,它使用曲率特征来提取特征点,并进行特征匹配。 后端模块通过优化方法对特征点的匹配关系进行优化,从而估计机器人的位姿和构建地图。LOAM-Livox算法使用了基于因子图的非线性优化方法,通过最小化特征点匹配误差来优化机器人位姿,同时考虑了激光雷达的时间同步和畸变校正。 整个算法的核心思想仍然是通过特征点提取和匹配来估计机器人的位姿变化,并通过优化算法进一步优化位姿和地图。LOAM-Livox算法在适应Livox激光雷达硬件特点的同时,保持了LOAM算法的实时性和精度。 总结来说,LOAM-Livox算法是基于Livox激光雷达的LOAM算法的一个变种,通过对Livox激光雷达数据的处理和特征提取,以及优化方法,实现了机器人的定位和建图功能。它在适应特定激光雷达硬件上有一定的优势,并广泛应用于无人驾驶、机器人导航等领域。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值