《论文阅读》Poisson Surface Reconstruction for LiDAR Odometry and Mapping

本文介绍了将泊松表面重建技术应用于激光雷达里程计和建图的方法。通过逐点法向量计算、点云配准及射线与三角形网格交点的匹配,实现精确的局部地图构建。在处理过程中,采用迭代优化的位姿估计,并通过密度筛选过滤无效点和动态对象。最终,通过局部和全局地图更新策略,确保了定位和导航的精度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

留个笔记自用

Poisson Surface Reconstruction for LiDAR Odometry and Mapping

做什么

Lidar Odometry激光雷达里程计,里程计作为移动机器人相对定位的有效传感器,为机器人提供了实时的位姿信息。移动机器人里程计模型决定于移动机器人结构和运动方式,即移动机器人运动学模型。
简单来说,里程计是一种利用从移动传感器获得的数据来估计物体位置随时间的变化而改变的方法
在这里插入图片描述
用建图的方式来理解,要实现机器人的定位与导航,就需要知道机器人走了多远,往哪走,也就是初始位姿和终点位姿,只有知道了里程计,才能准确将机器人扫描出来的数据进行构建。

做了什么

在这里插入图片描述
这里的方法是将地图表示为通过泊松表面重建计算的三角形网格,在一系列过去的扫描中以滑动窗口的方式执行表面重建,可以获得非常精确的局部地图,这种地图是环境的几何精确表示

怎么做

整体过程分为三步,输入是一个整体的点云集,第一步,计算逐点法向量,第二步,将扫描点云注册(register,也可以称为点云配准)到分别的局部地图上,第三步,将注册的扫描融合到全局地图上
首先是第一步,逐点法向量计算
这里采用的方法是将点云集球面投影至2D平面,就像大多数Odometry论文做的Range-Image一样,然后在2D层次上与上下左右邻域计算cross product也就是叉乘得到各点法向量结果
然后是第二步和第三步,局部点云配准和全局地图,这是文章的核心
这里采用的方法是迭代进行点云集的点云与三角形网格的数据进行数据关联来确定匹配对应关系,采用的关联方法是ray-triangle也就是射线三角形网格交点的方法,具体方法是这样的
首先对于时间帧t-1和t,将估计的位姿转换Tt-1∈R4×4应用在t-1帧上。将现在的扫描作为初始对准,构造N个射线在这里插入图片描述
每个ri在这里插入图片描述
其中在这里插入图片描述 在这里插入图片描述
这里的o是模拟原点,模拟的是估计的传感器位置,d是传感器方向,pi是现在这个扫描中的所有点,Ttk是第k个迭代的预测位姿转换,ttk∈R4是大T的平移部分,简单来说就是以估计传感器位置为原点,从原点射出n条射线传过这n个点,而这个估计是迭代式的,是由每次估计的位姿转换得到的
将每条射线(经过每个点云的点的射线)与三角形网格的交点设置为qi,法线设置为ni,然后就可以设置loss去计算扫描和网格之间的相对转换
然后再做一下离群点剔除在这里插入图片描述
简单来说就是防止射线与三角形网格的交点过远或者直接没有交点的情况
最后就是设置优化目标
在这里插入图片描述
这里的E()就是前面有提到的相对转换误差,这里的设计方法有很多,文中提到的比如论文《A Method for Registration of 3D Shapes》中的,论文《Efficient variants of the ICP algorithm》中的,具体的就不做了解了,只要了解大致用处就行。
这里的pi和qi设计与前面相同,点与点对应的网格交点,C则是表示属于这个对应关系(离群点剔除之后)
在这里插入图片描述
也就是第k个迭代得到的位姿转换,简单来说这里的意思就是,根据当前迭代得到的位姿转换转换点p,最小化每个点p和其对应的交点q的Point-Plane误差
然后是最核心的部分,三角形网格的构造方法
在这里插入图片描述
常见的三维表面重建的方法是建立一个函数f(R3->R),这个函数的作用就是找点数据的底层表面,这里采用的是泊松表面重建,这种方法借鉴了之前的论文《Screened poisson surface reconstruction》
在这里插入图片描述
具体的方法论文里没有提到,就说反正这么用了,需要更加深入研究的是这个网格在SLAM中的使用,就略过了
接下来针对泊松重建做了一些改进,由于该文用到的部分数据集是外部数据集,外围空间不存在完整的封闭表面,但泊松重建是对每个点恢复表面,所以可能出现天空也被重建成封闭的情况,这种情况需要避免
这里采用的方法很简单,对于网格上的顶点v计算它的密度,也就是在原点云中有多少个点是支持这个重建的表面顶点的,根据密度进行筛选,也就是这里的深度图
在这里插入图片描述
这里还提到了有趣的一点,这种密度图的方法还过滤掉了场景中的动态对象,由于移动对象表面上的3D点通常只支持少量的网格点,是因为每次扫描表面位置均会产生变化,而这些低密度点就不会给它重建表面
最后是局部地图和全局地图的方法
这里的方法是将N次最近的扫描构建局部地图,全局仅用于可视化,在最初的N次扫描中禁用网格重建模块,依靠点到面的ICP去估计位姿,然后再每N次扫描配准后更新全局网格

总结

1.主要方法就是用了泊松重建,用构造逐点射线和三角形网格交点的方法去进行位姿优化,挺好的一种方法
2.文章没有用到太多DL的方法,之类的重建和交点设计是否可以用到DL,这是一个值得考虑的问题

<think>嗯,用户想了解如何使用ST188反射光电传感器进行转速测量。首先,我需要回忆一下ST188的基本工作原理。根据引用[1],ST188由高发射功率的红外光电二极管和高灵敏度的光电晶体管组成,检测距离可调,用于非接触检测。反射传感器通常是检测物体反射回来的红外光,所以当有物体靠近时,反射光会被接收器捕捉到,从而产生信号变化。 接下来,转速测量的原理应该是通过检测物体(比如旋转轴上的标记)经过传感器的次数,计算单位时间内的次数来得到转速。这通常需要将旋转物体贴上反光条或者开孔,这样每转一圈,传感器就能检测到一次或多次脉冲信号。 然后,硬件连接方面,ST188有三个引脚:VCC、GND和输出。输出信号应该是数字信号,当检测到物体时输出低电平或高电平。需要将这个信号连接到微控制器的GPIO口,通过中断或轮询的方检测电平变化。 在软件处理部分,需要编写程序来捕捉脉冲信号,记录时间间隔。比如,使用定时器来计算两个上升沿或下降沿之间的时间,从而计算转速。公应该是转速=60/(T*N),其中T是周期,N是每转的脉冲数。 可能还需要考虑去抖动处理,因为机械接触或传感器可能会有噪声,导致误触发。可以通过软件延时或硬件滤波来解决。 另外,引用[2]提到E18-D80NK的检测距离可调,虽然这里讨论的是ST188,但可能ST188也有类似的调节机制,需要调整传感器与被测物体的距离,确保反射信号有效。引用[3]中的雨量传感器测试方法可能对模拟旋转标记的测试有参考价值,比如如何设置不同的测试条件。 最后,应用场景可能包括电机转速检测、打印机纸张检测等。需要确保用户了解安装注意事项,比如反光条的大小、传感器的距离调整,以及环境光干扰的可能影响。</think>### ST188反射光电传感器转速测量方法及原理 #### 一、测量原理 1. **反射检测** ST188通过发射红外光并接收物体反射的光信号实现非接触检测。当旋转物体表面存在反光标记(如反光条或凹槽)时,传感器会因反射光强度变化产生脉冲信号[^1]。 转速计算公: $$n = \frac{60 \cdot f}{N}$$ 其中,$n$为转速(r/min),$f$为脉冲频率(Hz),$N$为旋转体每转的标记数。 2. **信号生成机制** - **标记通过时**:反射光增强 → 接收管导通 → 输出低电平 - **无标记时**:反射光减弱 → 接收管截止 → 输出高电平 #### 二、硬件实现步骤 1. **传感器安装** - 调整检测距离至4~13mm(通过电位器或机械结构) - 标记宽度需大于传感器响应时间对应的弧长 - 示例安装示意图: ``` [旋转盘] ← 反光标记 → [ST188传感器] ``` 2. **电路连接** ```text ST188引脚: VCC → 5V GND → GND OUT → 微控制器GPIO(需上拉电阻) ``` #### 三、软件处理流程 1. **脉冲计数法** ```python # 伪代码示例(基于定时中断) count = 0 start_time = 0 def interrupt_handler(): global count count += 1 # 定时计算转速 def calculate_rpm(): period = current_time - start_time frequency = count / period rpm = 60 * frequency / N # N为每转标记数 count = 0 start_time = current_time return rpm ``` 2. **周期测量法** 使用微控制器输入捕获功能,测量相邻脉冲的时间间隔$T$,则: $$n = \frac{60}{N \cdot T}$$ #### 四、注意事项 1. **抗干扰设计** - 添加RC低通滤波器(推荐值:R=10kΩ, C=0.1μF) - 软件去抖动(采样间隔>1ms) - 避免环境光直射传感器[^2] 2. **参数优化** - 标记对比度:建议反射率差>30% - 最大可测转速:$$n_{max} = \frac{60}{2t_r \cdot N}$$ 其中$t_r$为传感器响应时间(ST188约0.5ms) #### 五、典型应用场景 1. 电机转速监控 2. 打印机辊筒转速检测 3. 工业传送带速度测量[^3]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值