文章:SL Sensor: An open-source, real-time and robot operating system-based structured light sensor for high accuracy construction robotic applications
作者:Teng Foong Lam * , Hermann Blum, Roland Siegwart, Abel Gawel
编辑:点云PCL
欢迎各位加入免费知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。
公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起交流一起进步,有兴趣的可联系微信:920177957。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。
摘要
许多建筑机器人任务需要高精度的3D表面信息,例如自动水泥抛光或机器人石膏喷涂。然而,目前在市场上发现的消费级深度相机对于这些需要毫米级精度的任务来说不够精确。本文介绍了SL传感器,这是一种结构光传感解决方案,能够利用相移轮廓(PSP)编码技术在5Hz下产生高保真点云。将SL传感器与两款商用深度相机Azure Kinect和RealSense L515进行了比较。实验表明,SL传感器在室内表面重建应用中的精度和准确性都超过了这两款设备。此外,为了证明SL传感器作为机器人应用的结构化光敏研究平台的能力,开发了一种运动补偿策略,当传统的PSP方法仅在传感器静止时工作时,该策略允许SL传感器在线性运动期间工作。现场实验表明,SL传感器能够对喷涂表面进行高度详细的重建。基于机器人操作系统(ROS)的软件和SL传感器的示例硬件构建是开源的。
主要贡献
尽管已有结构光扫描的开源实现重建,但据我们所知,SL传感器是第一个开源结构光扫描仪项目,不仅提供了软件,还提供了可使用容易获得的组件和开源电子设备进行的有文档记录的硬件构建示例。此外,SL Sensor与成熟的ROS中间件完全兼容,能够轻松集成到现有机器人系统中。总之,本文的贡献包括:
主要内容
A 硬件
图2.SL传感器
内置SL传感器如图2所示。它包含两个工业互补金属氧化物半导体(CMOS)RGB相机(1440×1080分辨率)和一个数字光处理(DLP)投影仪(912×1140分辨率)。相机和投影仪是由Versavis板触发的硬件,便于图案投影和图像采集的同步。SL传感器还具有一个IMU,该IMU未用于所提出的算法,但可在未来用于需要运动估计的SL运动补偿策略,例如视觉惯性里程计。摄像机和投影仪的位置应确保在扫描距离传感器0.3–1.0米的物体时,它们的视野重叠。在此配置中,SL传感器的尺寸为24.6×15.8×18.8 cm。请注意,可以通过减小相机投影仪基线使传感器更加紧凑,但代价是更大的深度不确定性。对于相机镜头,我们选择使用变焦镜头,以便可以将焦点微调到特定的扫描范围。此外,所选择的相机镜头具有可调节的光圈。这使得用户能够根据表面的颜色和材质调整光圈,以确保捕获的图像不会过度曝光。
硬件触发
图3,允许SL传感器以5 Hz的频率进行扫描的触发时间表
为了实现高速扫描,投影仪和相机是由开源Versavis板触发的硬件,单次扫描的触发时间表如图3所示。当投影仪以5 Hz触发时,相机以30 Hz触发,并设置为在每次触发后投影整个图案序列。每个图案曝光两次,以确保每个图像将捕获单个图案的全部投影,而不管任何固有的图像捕获延迟。在计算机端,投影仪触发Versavis节点通过ROS发布的定时,以识别接收到的图像。
确保线性强度响应
PSP解码过程假定投影光的强度和相机测量的强度具有线性关系。为了实现这一点,需要关闭所有相机图像处理选项(如伽马校正、自动增益控制等)。此外,投影仪设置为图案模式,在该模式下,它显示存储在闪存中的模式,而无需任何额外的图像处理。这是在HDMI反馈显示图像的更好选择,其中投影仪自动对需要使用附加步骤进行补偿的图像应用伽马校正。
B 传感器校准
需要对传感器进行校准,以获得参(固有矩阵和镜头畸变系数)以及外参(相机和投影仪相对位姿)。我们采用了Bouguet提出的众所周知的透镜畸变模型,该模型由5个系数组成,其中3个为径向畸变,2个为切向畸变。SL传感器的校准在每对摄像机-投影仪之间分别进行。这对于我们当前的使用情况是足够的,其中深度估计过程在任何给定时间仅使用一对相机-投影仪,但如果未来的应用需要,它可以扩展到联合校准序列。利用摄像机和投影仪的棋盘坐标,使用OpenCV的摄像机校准和3D重建库估计两个设备的内参和外参。SL传感器的完整校准步骤如下:
C 软件
SL传感器软件是在机器人操作系统(ROS)框架下编写的。这确保了它可以轻松地与ROS用户社区提供的现有机器人包和解决方案一起使用或集成到其中。主要重建流程分为4个主要ROS节点(图4)。
图4.SL传感器软件系统框图
nodelet的使用实现了子进程之间图像的高效零拷贝指针传递,同时仍确保了流水线的模块化。解码器和三角化节点的一部分改编自SL Studio软件包的代码。
实验与评价
首先验证了开源传感器系统能够提供多投影结构光系统所期望的质量,并且与标准机器人传感器相比,这种提高的精度能够实现建筑机器人的新型传感应用。然后在受控实验中评估了描述的新型运动补偿策略。最后,我们在建筑工地上进行了一个更大的真实世界实验,验证了多投影结构光与我们的运动补偿策略相结合的提高的精度可以用于以高细节大型表面。
静态试验
我们将SL Sensor与两款商用级深度相机进行了比较Azure Kinect和RealSense-L515,这些深度相机通常用于移动机器人的深度传感应用。请注意,这里所有实验,所有的传感器都放置在距离被扫描物体约50厘米的地方,并且在温度被调节到20℃左右的室内进行扫描、 这是为了确保测试在报告的扫描范围和评估传感器的工作温度范围内进行。为了评估传感器精度,扫描了定制评估板(图5)。
图5.用于圆锥拟合精度测试的定制评估板
该板由6个安装在玻璃板上的金属圆锥体组成,涂有一层精细的非反射白色涂料。根据3D点云进行圆锥拟合(每个传感器10次扫描),并计算圆锥和所有其他圆锥之间的距离。使用计量级GOM ATOS Core 300结构光扫描仪获得地面真实距离,其精度约为10μm。圆锥拟合试验的结果如表1所示。
对于SL传感器,计算的距离与地面真实值的偏差小于1mm,1→ 4从左摄像头测量的距离。总的来说,左侧摄像头的表现比顶部摄像头稍差。这主要是因为相机的方向导致一些锥体仅被部分扫描(图6)。
图6.从定制评估板的评估传感器获得的点云
尽管如此,SL传感器在精度和测量不确定性方面都优于其他两个传感器。为了评估传感器精度,我们对每个传感器的平坦、白色、哑光表面进行了10次连续静态扫描,并分析了扫描过程中每个像素的测量深度如何变化。精度测试的结果如图7所示。
图7.每个设备中每个像素的深度标准偏差图
Azure Kinect的图呈波浪形,其中一半像素的测量不确定度接近于零,而另一半则在连续扫描中出现了一些读数变化(深度标准偏差约为0.3 mm)。RealSense L515表现更差,图像中的几个点记录的深度标准偏差值超过0.7 mm。SL传感器表现最好,从其以深蓝色为主的图中可以清楚地看到。请注意,SL传感器的绘图周围有一个黑色边框。这些是未观察到投射光的图像区域,因此未对其进行评估。对于所有三个图,我们计算了具有有效深度信息的所有像素的深度标准偏差的平均值和最大值(表2)。
SL传感器报告的最小平均值和最大值几乎比从Azure Kinect和Realsense L515获得的值低四倍。因此,我们可以得出结论,SL传感器是测试的传感器中最精确的。
总之,尽管Azure Kinect和Realsense L515的扫描范围明显更大(Azure Kinct的扫描范围为0.5-5.46米,Realsence L515为0.25-9.0米),实验证实,SL传感器所使用的用于表面相互作用的多投影结构光扫描在预期范围内的精度和准确度方面优于这些商业级传感器,我们得出结论,我们的开源SL传感器工作正常。
表面质量样品的扫描
表面粗糙度是确定施工现场预制结构表面光洁度质量的关键指标。为了确定SL传感器对表面粗糙度进行分类和评估的潜力,我们使用它扫描了四个17×17 cm的石膏石膏样品(图8),石膏石膏是建筑内部常用的表面处理材料。
图8.测量的表面质量样品的照片
在扫描期间,将石膏样品放置在距离传感器50厘米的地方。然后使用扫描的30cm2斑块来计算与每个提取斑块的最佳拟合平面的正交距离的经验标准差(ESD)。我们将这些值与[58]中报告的ESD值进行了比较,该值测量了相同的样品,但使用了GOM ATOS Core 300结构光扫描仪和Lucid Helios飞行时间(ToF)深度相机。
从表3中的结果可以看出,尽管Helios的所有样品的ESD值没有明显差异,但SL传感器能够检测到样品粗糙度增加的趋势。
沿直线轨道扫描
我们的运动补偿策略首先在单模式序列上进行了测试,其中我们在50厘米的距离处拍摄了白色掩模的图像。顶部相机用于扫描,并投影垂直3+3图案。每个图像后,传感器向右线性移动2mm。
图9.具有(右)和不具有(左)扫描mask运动补偿的3D点云图像
图9显示了使用和不使用运动补偿时产生的扫描。很明显,我们的运动补偿策略能够消除由线性运动引起的失真。我们还在图10所示的位置拍摄了所得深度图像的横截面,横截面图进一步证实了我们的运动补偿策略的有效性,因为它能够消除面罩前额上发现的1-2毫米深的运动波纹。
图10:左:扫描面罩的图像,黄线显示了横截面的位置 右:面罩扫描前额区域的横截面图
使用自适应投影扫描喷涂石膏墙
运动补偿通过沿着结构移动扫描器并将单个扫描记录在一起,实现了对大于传感器视野的结构的扫描。为了证明SL传感器在实际施工机器人任务中的这种能力,我们将SL传感器连接到MABI Speedy 12机械臂上,该机械臂以大约0.0125 m/s的速度沿直线轨迹移动传感器,同时在扫描期间保持传感器壁距离为0.3–0.5 m。传感器扫描了室内制造工件的两个区域,如图11所示。
图11.左:实验装置的图像。右:扫描的喷涂墙面的两个区域的图像。黄色和青色框分别划分50厘米水平扫描和30厘米垂直扫描的区域,箭头指示了扫描方向
我们利用传感器的自适应特性,在每个区域上组合水平和垂直轨迹,在这两个运动之间切换投影图案和用于三角测量的相机。对于每个区域,我们使用运动补偿的3+3模式3D扫描进行了50 cm水平和30 cm垂直扫描。然后使用libpointmatcher库中的成对点对平面迭代最近点算法(ICP)将单个扫描合并在一起。为了进行比较,我们使用精度为2mm的Leica Nova MS50激光扫描仪(本文中称为TLS)对两个区域进行了扫描。然后,使用泊松曲面重建将来自TLS和SL传感器的点云转换为网格。虽然TLS的精度低于单个SL传感器扫描,但它允许我们量化由于点云配准导致的累积误差偏差。为了比较TLS和SL传感器的网格,我们首先使用点对点ICP将它们对齐。接下来,我们使用3D点云处理软件CloudCompare计算了SL传感器网格和TLS网格顶点之间的云厚(C2M)距离。所得网格和C2M距离直方图如图12和图13所示。
图12.TLS和SL传感器从垂直通道实验中生成的网格的比较
图13.TLS和SL传感器从水平通过实验中生成的网格的比较
请注意,对于C2M距离的热图,偏离TLS网格小于1mm的点为白色。从视觉上看,SL传感器的网格与TLS生成的网格匹配良好。表4给出了更多的定量结果。该表显示,99%的SL传感器网格顶点与TLS网格的垂直和水平通道偏差分别小于2mm和3mm。由于执行的成对点云配准的数量越多,误差累积就越大,因此水平通过的偏差预计会稍大。这由R1水平通道的偏差热图直观地显示,其中SL传感器网格的左侧部分与TLS网格匹配良好,但我们在最后配准点云的右侧观察到较大的偏差。
SL传感器和TLS网格之间存在较大偏差的另一个原因是SL传感器能够捕捉TLS无法捕捉的细微细节。
图14.图13中标记的A和B区域的特写图
如图14所示,与整个区域光滑的TLS网格相比,SL传感器网格成功地再现了实际工件照片中出现的小边缘和小脊。TLS网格中这种不准确的疑似原因是,由于工件的起伏性质,这些表面被定向为远离TLS的激光发射器,因此只能获得这些区域的稀疏点云,导致捕获的细节减少。
总结
在这项工作中,我们介绍了一种新的开源结构光扫描解决方案。与现有的传感器解决方案相比,我们的SL传感器通过ROS中间件框架与现有的机器人软件集成,使其能够适应定制的3D扫描程序。本文描述了我们的软件架构、硬件设置和标定程序,并验证了传感器达到了亚毫米精度。我们将其与机器人应用中常用的传感器以及商用高精度扫描仪进行了比较,得出结论,我们的传感器在详细的施工应用中达到了足够的精度。我们进一步验证了我们的新型运动补偿策略的有效性,该策略能够在线性运动下进行高精度PSP扫描,并展示了我们的传感器在现实世界中根据机器人的预期运动在多种模式之间切换的能力。
未来的工作将把SL传感器在线性运动期间的扫描能力扩展到任意6个自由度运动。可能的解决方案可以包括更稳健的运动补偿策略或自适应模式投影方法,其中当传感器静止时,我们使用PSP模式,当检测到运动时,我们切换到另一种更能容忍运动的模式。此外,可以探索多路点云配准策略,以减少扫描过程中的错误累积,并最终生成更准确的合成点云。