做一直播网站要多少钱,crm销售系统,wordpress仪表盘访问不了,学校网站建设和维护情况一个线激光点云处理工具类#xff0c;它包含了一系列的方法用于处理和分析线激光扫描得到的点云数据。提供的功能包括#xff1a; 通过文件或直接数据设置点云。计算线激光在机器人坐标系下的精度#xff0c;输出内点的平均距离、最大距离、最小距离、总点数和内点数。提供了… 一个线激光点云处理工具类它包含了一系列的方法用于处理和分析线激光扫描得到的点云数据。提供的功能包括 通过文件或直接数据设置点云。计算线激光在机器人坐标系下的精度输出内点的平均距离、最大距离、最小距离、总点数和内点数。提供了一种方法计算物体从当前位置回到地平面的变换矩阵。能够计算线激光与垂直平面的角度这对于确定线激光传感器的朝向非常有用。 工具类利用了pcl::sample_consensus::RANSAC算法和线模型(pcl::SampleConsensusModelLinepcl::PointXYZ)对线激光扫描得到的点云数据进行分析从而完成精度测量、变换计算以及角度测定等任务。 --------------------函数------------------- 构造函数创建一个新的点云指针将成员变量原始点云初始化为新创建的点云。将成员变量原始点云共享给点云指针。 析构函数:空。 设置点云数据通过文件名读取点云文件创建爱你一个点云对象读取点云文件将读取的点云复制到成员变量 原始点云。 设置点云数据通过传入点云对象 将传入的点云对象复制到成员变量。 获取点云的精度信息计算线激光点云在机器人坐标系下的精度通过内点索引。输入包含高度直通滤波的参数和距离基准最大容忍距离输出内点的平均距离、最大距离、最小距离以及点数和内点数。创建直通滤波器创建点云指针和滤波后点云指针将原始点云复制到点云指针对象设置滤波器的输入点云设置滤波字段z设置滤波范围执行滤波操作得到滤波后点云。设置输入点云为滤波后点云设置滤波字段x设置滤波范围执行滤波操作得到新的滤波后点云。获取滤波后点云的点数初始化内点数、总距离、最大距离、最小距离。遍历滤波后的点云{ 获取一个点更新最大距离点的x坐标更新最小距离如果当前点的x坐标与标准距离的差值大于容差则跳过。 累加距离累加内点数。}。 计算平均距离设置最大距离和最小距离。设置内点数。 获取回到地面的变换矩阵调用外部函数输入原始点云z的高度最大最小值x的直径最大最小值。最大局外点距离得到变换矩阵。 获取墙面俯仰角主要任务是通过拟合点云中的平面来计算墙面的俯仰角pitch angle并生成一个旋转矩阵 T将拟合的平面对齐到水平面 初始化变换矩阵为单位矩阵一个墙面上最少有20个点。创建滤波后点云指针遍历输入点云去除那些接近原点的点即 x, y, z 坐标都接近 0 的点并将剩余的点添加到 滤波后点云 中 . 拟合平面[ 定义平面模型的系数, 创建 ModelCoefficients 和 PointIndices 指针分别用于存储平面模型的系数和内点的索引,创建 SACSegmentation 对象 seg用于执行随机采样一致性RANSAC算法来拟合平面,设置 seg 的参数(优化模型系数模型类型为平面使用RANSAC方法距离阈值 )执行分割如果没有找到平面模型打印错误并返回获取平面模型系数]。 计算旋转矩阵[ 根据平面系数设置初始法向量目标法向量设置为0,0,1 创建旋转矩阵] 计算俯仰角。 计算线激光与垂直平面角度 创建滤波器和两个点云指针复制输入点云到点云指针对象滤波操作[对x轴执行滤波保留距离正负δ范围的点然后对z轴执行滤波保留在最小最大z范围内的点]。检查点数并在ZOY平面上拟合直线。定义4维向量 光线参数其中 (vx, vy) 是与线共线的归一化向量(x0, y0) 是线上的一个点。光线点向量遍历滤波后点云将点坐标y,z 添加到光线点向量。使用cv::fitLine为光条中心点进行直线拟合。输出光线参数。根据光线参数获取点斜式的点和斜率[如果 vy 非常小接近于0则认为直线与 x 轴平行角度为0. 使用 atan2f 函数计算直线方向向量的角度,将角度从弧度转换为度数。根据角度的正负值调整角度使其符合常规定义]。 Five Facts Lidar Companies Dont Want You To Know https://www.youtube.com/watch?vVuO3-TRuAP0ab_channelHesaiTechnology