博客
关于我
pointcloud_to_laserscan源码改动,实现激光雷达前部识别
阅读量:591 次
发布时间:2019-03-11

本文共 1024 字,大约阅读时间需要 3 分钟。

激光雷达的0点位置在接口处,源码的范围为[-3.1416-3.1416]逆时针排列。在制定激光雷达参数时,必须确保angular_max大于angular_min,并根据实际环境进行相关调整。

pointcloud_to_laserscan_nodelet.cpp源文件中,以下是关键的代码片段所关注的参数设置:

// 检查点云的高度是否在合理范围内if (*iter_z > max_height_ || *iter_z < min_height_) {    NODELET_DEBUG("rejected for height %f not in range (%f, %f)\n", *iter_z, min_height_, max_height_);    continue;}// 检查点云的投影范围是否在合理范围内double range = hypot(*iter_x, *iter_y);if (range < range_min_ || range > range_max_) {    NODELET_DEBUG("rejected for range %f not in range [%f, %f]\n", range, range_min_, range_max_);    continue;}// 检查角度是否在激光雷达的有效范围内double angle = atan2(*iter_y, *iter_x);if (angle < output.angle_min || angle > output.angle_max) {    NODELET_DEBUG("rejected for angle %f not in range [%f, %f]\n", angle, output.angle_min, output.angle_max);    continue;}

此外,激光雷达的映射范围角度增量设置应与实际部署环境相符。由于angular_max必须大于angular_min,建议在初始化时设置为以下范围:

angle_min_: -M_PI  // 开始角度angle_max_: M_PI   // 结束角度angle_increment_: M_PI / 180.0 // 单个角度点的增量

通过以上设置,可以确保激光雷达的扫描范围在逻辑上是自洽的,避免因角度范围设置错误导致的扫描异常。

转载地址:http://dmntz.baihongyu.com/

你可能感兴趣的文章
Objective-C实现状态模式(附完整源码)
查看>>
Objective-C实现狄克斯特拉算法(附完整源码)
查看>>
Objective-C实现狄克斯特拉算法(附完整源码)
查看>>
Objective-C实现猜数字游戏(附完整源码)
查看>>
Objective-C实现猜数字算法(附完整源码)
查看>>
Objective-C实现猴子爬山算法(附完整源码)
查看>>
Objective-C实现环形缓冲区(附完整源码)
查看>>
Objective-C实现生产者和消费者问题(附完整源码)
查看>>
Objective-C实现生产者消费者问题(附完整源码)
查看>>
Objective-C实现生成 Mandelbrot 曼德勃罗集图像算法 (附完整源码)
查看>>
Objective-C实现生成崩溃dump文件 (附完整源码)
查看>>
Objective-C实现生成数组的所有不同排列算法(附完整源码)
查看>>
Objective-C实现生成正态分布数据(附完整源码)
查看>>
Objective-C实现生成随机高斯分布(附完整源码)
查看>>
Objective-C实现用 PIL 改变对比度算法(附完整源码)
查看>>
Objective-C实现用二维数组实现矩阵的转置(附完整源码)
查看>>
Objective-C实现用半正弦公式计算两个坐标之间的距离算法 (附完整源码)
查看>>
Objective-C实现用卡方解密凯撒算法(附完整源码)
查看>>
Objective-C实现用蒙特卡洛方法计算圆周率PI算法(附完整源码)
查看>>
Objective-C实现用递归计算给定数的幂算法(附完整源码)
查看>>