2.845

2023影响因子

(CJCR)

  • 中文核心
  • EI
  • 中国科技核心
  • Scopus
  • CSCD
  • 英国科学文摘

留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于垂直约束的激光扫描机构外参标定算法

熊峰 刘成菊 陈启军

熊峰, 刘成菊, 陈启军. 基于垂直约束的激光扫描机构外参标定算法. 自动化学报, 2021, 47(5): 1058−1066 doi: 10.16383/j.aas.c190264
引用本文: 熊峰, 刘成菊, 陈启军. 基于垂直约束的激光扫描机构外参标定算法. 自动化学报, 2021, 47(5): 1058−1066 doi: 10.16383/j.aas.c190264
Xiong Feng, Liu Cheng-Ju, Chen Qi-Jun. The external calibration algorithm for plane laser-scanning machanism based on vertical constraint. Acta Automatica Sinica, 2021, 47(5): 1058−1066 doi: 10.16383/j.aas.c190264
Citation: Xiong Feng, Liu Cheng-Ju, Chen Qi-Jun. The external calibration algorithm for plane laser-scanning machanism based on vertical constraint. Acta Automatica Sinica, 2021, 47(5): 1058−1066 doi: 10.16383/j.aas.c190264

基于垂直约束的激光扫描机构外参标定算法

doi: 10.16383/j.aas.c190264
基金项目: 国家自然科学基金重点项目(61573260, 61733013), 上海市科学技术委员会项目(18DZ1200804, 18DZ1206803)资助
详细信息
    作者简介:

    熊峰:同济大学电子与信息工程学院博士研究生. 2014年获得同济大学电子与信息工程学院学士学位. 主要研究方向为3D立体视觉, 机器人导航. E-mail: wozhiailuo@foxmail.com

    刘成菊:同济大学电子与信息工程学院教授. 2011年获得同济大学控制科学与工程系博士学位. 主要研究方向为双足机器人行走控制. 本文通信作者. E-mail: liuchengju@tongji.edu.cn

    陈启军:同济大学电子与信息工程学院教授. 1999年获得同济大学电气工程系博士学位. 主要研究方向为机器人与人工智能. E-mail: qjchen@tongji.edu.cn

The External Calibration Algorithm for Plane Laser-Scanning Machanism Based on Vertical Constraint

Funds: Supported by National Natural Science Foundation of China (61573260, 61733013) and Science and Technology Commission of Shanghai Municipality (18DZ1200804, 18DZ1206803)
More Information
    Author Bio:

    XIONG Feng Ph.D. candidate at the College of Electronic and Information Engineering, Tongji University. He received his bachelor degree from Tongji University in 2014. His research interest covers 3D stereovision and robot navigation

    LIU Cheng-Ju Professor at the College of Electronic and Information Engineering, Tongji University. She received her Ph.D. degree in control science and engineering from Tongji University in 2011. Her main research interest is biped robot walking control. Corresponding author of this paper

    CHEN Qi-Jun Professor at the College of Electronic and Information Engineering, Tongji University. He received his Ph.D. degree in electrical engineering from Tongji University in 1999. His research interest covers robotics and artificial intelligence

  • 摘要:

    为了解决人造特征点标定法中特征匹配不精确等缺陷, 本文针对二轴传动的高精度平面激光扫描机构提出了利用线特征的垂直约束进行外参标定的新算法. 不仅如此, 在该算法中为了简化建立标定方程的流程, 避免计算与标定目标无关的冗余中间量, 提出了一种快速确定标定方程参数的方法. 首先将扫描结果按待标定参数标准值转换至同一坐标系形成点云, 再提取其中的线特征; 接着根据线特征的垂直约束建立外参方程, 并根据线特征的测量值和实际值间的转换计算方程参数; 最终, 将多次测量得到的方程组求解转化为最优化问题, 并得到外参的数值解. 在对比实验中, 本算法比基于特征点的标定方法表现更好.

  • 以激光传感器为核心的检测机构在诸如场景识别、定位导航等任务中得到了广泛应用. 在将扫描结果进行融合的过程中伴随着从传感器坐标系到固定坐标系的转换运算, 因此需要对机构进行外参标定.

    激光检测机构的工作原理多种多样, 外参标定的目标不尽相同, 相应的标定方法有所区别, 但使用人造特征点的某种约束进行标定的方法在各类激光系统中有广泛应用: 对于单线激光与摄像头联合系统, Zhang等[1]使用棋盘格角点构建标定平面, 并依据点面约束求解摄像头和激光传感器的安装关系; 针对摄像头与激光雷达的联合系统, Geiger等[2]使用多块棋盘格, 根据图像中的角点计算得到多个图像点云, 通过它和激光点云间的匹配与变换约束求解外参; Zou等[3]使用DoN (Difference of normals)特征计算激光点云中的标定平面, 并通过点面约束构建方程得到激光与全景联合系统的标定结果; 胡钊政等[4]等则通过采集棋盘格角点、建立虚拟三面体构造PNP (Perspective-n-point)问题混合测距系统的标定问题.

    除了特征点, 研究者们也提出利用其他空间特征进行外参标定: Atanacio-Jiménez 等[5]根据5个安装关系已知的标定平面在雷达坐标系中的位姿, 对激光雷达外参进行标定: Chen等[6]通过霍夫变换检测点云中的线特征, 利用相交约束对系统进行标定; Zhou等[7]根据直线和平面的共面约束构建标定方程, 并利用多项式系统的代数结构进行求解.

    为减少布局人造特征的工作量, 近年来也有学者提出直接使用场景中的天然特征进行标定: GomezOjeda等[8]使用场景中的拐角作为特征, 通过线面和点面约束对激光图像联合系统进行标定: Liao等[9]直接在图像和点云中采集场景内的线特征, 通过特征匹配关系迭代优化外参初值得到标定结果. Gong等[10]提出了一种无目标的双激光雷达系统标定方法, 通过局部地图的同构约束建立两个激光雷达的外参方程, 求解并完成标定. 平面扫描仪是一种纯激光扫描机构, 通过传动机构带动点型或线型激光探头, 完成对待检表面的检测, 在3D打印、缺陷检测、曲面重建等领域皆有应用. 虽然使用天然特征进行标定具有不需要预先制作标定物的优势, 但小型激光检测机构的工作空间狭小, 适合使用人造特征点进行标定[11]. 而本研究则指出, 使用特征点对平面扫描仪进行外参标定时, 存在特征点缺失、坐标不匹配以及形状畸变的缺陷, 因此需要设计新的标定算法.

    针对二轴机构传动的平面扫描仪, 本文提出利用线特征间的垂直约束进行外参标定的新算法, 解决了特征点缺失、不匹配以及形状畸变的问题. 不仅如此, 还提出了根据线特征测量值与实际值间的转换关系计算方程参数的方法, 减少了计算量, 简化了方程的建立流程.

    本节首先介绍研究中使用的平面扫描机构, 再对外参标定问题进行定义.

    高精度单线激光探头简图如图1所示. 探头从直线型出光口向待探测面射出固定数量为$ N $的平行光线, 每一线之间的间隔为$ \Delta d$. 由于探头只能探测一条线段上的深度信息, 所以需要额外的运动机构辅助探头完成对曲面的探测.

    图 1  激光探头与平面扫描机构
    Fig. 1  Laser and plane scaning mechanism

    二轴扫描机构简图亦如图1所示: 运动坐标系为直角坐标系, 两台直线电机分别与X轴、Y轴平行安装, X轴电机垂直安装于Y轴电机上, 可由Y轴电机带动沿运动轴运动. 两个直线电机的运动信息借由外部传感器, 例如编码器, 准确测出.

    以探头正中央扫描射线为Z轴, 射光方向的逆方向为Z轴正方向; 线型射光口作为 Y轴建立右手坐标系作为传感器坐标系$ S $, 如图1所示. 探头按照$ S $系的X轴、Y轴分别与X运动轴、Y运动轴平行的标准固定于X轴电机上. 两个电机的运动相互独立, 使探头能平行于$ XO_mY $平面做任意轨迹的运动.

    假设一次扫描含$ n $条扫描线, $S_i,\;i = 1,2,\cdots,n,\,$为各条扫描线被采集时对应的传感器坐标系, 其中$ S_1 $是探头开始测量后返回第1帧有效数据时的传感器坐标系. $ R_i = \left\{{{P}}_{ik}|k = 0,1,\cdots,N-1\right\} $是第 $ i $ 条扫描线的扫描结果, $ {{P}}_{ik} $是其中第k个扫描点在中的坐标, 根据第2.1节, ${{P}}_{ik} = \left(\Delta d\cdot k-\Delta d\left(N-1\right)/ \right.$$\left.2,0,h_{ik}\right) ^{\rm{T}}$, 深度信息$ h_{ik} $由探头测量得到.

    $ S_1 $作为基准坐标系, $ S_i $$ S_1 $的齐次变换矩阵为$ {M}_i^1 $(右上标代表目标坐标系, 右下标代表源坐标系). $ {{P}}_{ik} $$ S_1 $中的坐标为$ {{P}}_{ik}^1 $, $ {{P}}_{ik} $$ {{P}}_{ik}^1 $满足如下齐次变换关系

    $$ {{P}}_{ik}^1 = {M}_i^1{{P}}_{ik} $$ (1)

    式中, $ {{P}}_{ik} $$ {{P}}_{ik}^1 $为齐次形式.

    扫描点的坐标变换到统一坐标系下可形成点云. 根据式(1), 为形成准确点云, 需得到$ {M}_i^1 $的准确值.

    假设忽略打滑, 自旋等干扰, 探头的运动只由两个直线电机决定, $ {M}_i^1 $退化成平移矩阵

    $$M_i^1 = \left[ {\begin{array}{*{20}{c}} \bf{1}&{l_x^{1i}{X} + l_y^{1i}{Y}}\\ \bf{0}&1 \end{array}} \right]$$ (2)

    相应地, 式(1)可写为如下形式

    $$ {{P}}_{ik}^1 = {{P}}_{ik}+l_x^{1i}{{X}}+l_y^{1i}{{Y}} $$ (3)

    其中, $ l_x^{1i}, $ $ l_y^{1i} $是探头$ S_1 $从移动到$ S_i $在两个运动轴上的运动距离标量, 如第2.1节所述, 它们可通过外部传感器准确测量. ${X} = \left(x_x,y_x,z_x\right)^{\rm{T}}$, ${Y} = \left(x_y,y_y,z_y\right)^{\rm{T}}$分别为两个运动轴在$ S $系中的单位方向向量, 它们由直线电机和探头安装时的相对姿态决定. 这样, $ {M}_i^1 $的求解就转化为${X},$ $ {Y} $的求解.

    本文中, 外参标定的目标就是测算出${X},$ $ {Y} $的准确值.

    二轴传动的扫描机构工作空间狭小, 基于场景中天然特征的标定方法难以实现. 相比之下, 使用人工特征进行标定更有可行性.

    使用角特征点的标定方法[12]在图像处理领域有广泛应用. 对于纯激光检测系统, 也可以使用角点进行标定[13]. 研究中, 首先尝试使用这类方法进行标定.

    标定板平面作为XY平面, 垂直标定板方向为Z轴正方向建立世界坐标系$W .$ 标定板上某点在$ W $中的坐标为${{P}}_w,$$ S_1 $中的坐标为${{P}}_1 .$$ {{P}}_w $$ {{P}}_1 $满足如下齐次形式的关系

    $${{P}_1} = M_w^1{{P}_w},\quad M_w^1 = \left( {\begin{array}{*{20}{c}} R&{T}\\ \bf{0}&1 \end{array}} \right)$$

    $ R $为旋转矩阵. 考虑式(1), 若点$ {{P}} $$ S_i $中的齐次坐标为${{P}}_i ,$

    $$ {{P}}_i = {M}_1^i{{P}}_1 = {M}_1^i{M}_w^1{{P}}_w = {M}_w^i{{P}}_w $$ (4)

    $ {M}_1^i $$ {M}_i^1 $的逆变换, 根据式(2)单应性矩阵$ {M}_w^i $可表示为

    $$M_w^i = \left( {\begin{array}{*{20}{c}} {R}&{ - l_x^{1i}{X} - l_y^{1i}{Y} + {T}}\\ \bf{0}&1 \end{array}} \right)$$

    $ {{P}}_w $已知, $ {{P}}_i $由探头测量得到, 因此可通过式(4)求解得到${M}_w^i.$$ {{P}}_w $z分量为0, 确定$ {M}_w^i $需求解9个未知数. 一组对应的${{P}}_w,$ $ {{P}}_i $可提供三个方程, 一次扫描中需要三组对应点以求解$ {M}_w^i $.

    若在不同位置的扫描中得到了新的单应性矩阵${M}_w^j ,$ 那么可得到如下关系

    $$M_w^i - M_w^j = \left( {\begin{array}{*{20}{c}} \bf{0}&{\left( {l_x^{1j} - l_x^{1i}} \right){X} + \left( {l_y^{1j} - l_y^{1i}} \right){Y}}\\ \bf{0}&0 \end{array}} \right)$$

    上式是只与${X},$ $ {Y} $相关的标定方程. 两个不同的单应性矩阵, 可以确定一个方程. 如图2所示, 设计尺寸合适的棋盘格标定板使单条扫描线覆盖多个角特征点, 从而计算单应性矩阵.

    图 2  棋盘标定板与特征点缺失
    Fig. 2  Chess calibration board and lack of feature points

    实际测量中, 存在特征点缺失的现象: 图2中虚线为理想状态下扫描线覆盖域, 角点恰好能被扫描; 实线为实际扫描时扫描线覆盖域, 此时角点无法被探测. 角点位置反射条件变化快, 探测结果发生震荡, 也可能引起特征点缺失. 这些因素会使角点计算误差变大或者无法计算, 导致式(4)中$ {{P}}_w $$ {{P}}_i $坐标不匹配–即两者不对应同一点坐标, 引起单应性矩阵计算出现误差. 此外, 该方法需要通过计算单应性矩阵间接计算待标定量, 流程复杂.

    为解决特征点缺失与不匹配的缺陷, 如图3所示, 采用圆斑标定板替代棋盘格, 使用圆心特征点进行标定.

    图 3  圆斑标定板与扫描结果的形状畸变
    Fig. 3  Spot calibration board and shape distortion of scanning result

    控制探头扫描标定板, 根据式(3), 采用${X}_0 = $$\left(1,0,0\right)^{\rm{T}}$, ${Y}_0 = \left(0,1,0\right)^{\rm{T}}$将扫描结果统一变换到传感器坐标系$ S_1 $中, 然后利用RANSAC (Random sample consensus)算法[14]提取圆心坐标, 最后按照第2.1节中介绍的算法步骤完成标定.

    在第2.1节中, 计算$ {M}_w^i $需要单条扫描线覆盖多个特征点, 而控制探头运动时无法保证单条扫描线恰好覆盖多个圆心, 因此直接计算是行不通的. 为解决这个问题, 采用差值式方程

    $$ {C}_i-{C}_j = {M}_w^i{C}_{w1}-{M}_w^j{C}_{w2} $$ (5)

    式中, ${C}_{w1},$ $ {C}_{w2} $为两个圆心在$ W $中的坐标, ${C}_i,$ $ {C}_j $分别是它们在$S_i,$ $ S_j $中的坐标. RANSAC算法提取的圆心坐标是$ S_1 $中的坐标, 因此需要进行坐标转换得到${C}_i,$ $ {C}_j .$ 式(5)是$R ,$ ${X},$ $ {Y} $的方程, 这样避免了计算单应性矩阵.

    由于RANSAC使用更多扫描点的信息拟合圆心坐标, 鲁棒性强, 克服了特征点缺失与不匹配的缺陷[15]. 但该标定算法存在形状畸变的问题. 如图3所示, 采用${X}_0,$ $ {Y}_0 $对扫描结果进行平移变换得到完整点云, 若实际值${X},$ $ {Y} $偏离${X}_0,$ $ {Y}_0 $较大, 得到的点云会产生畸变, 测出的圆心位置出现偏差, 影响标定精度. 此外, 标定方程(5)还需要同时对$ R $进行求解, 而$ R $并不是标定目标, 属于冗余量.

    为解决以上缺陷, 本文提出一种利用直线特征以及垂直约束进行标定的算法以及方程参数的快速计算方法.

    假设标定板上两个不同的点分别在第$ i $$ j $条扫描线中被探测到, 它们在坐标系$ S_i $$ S_j $内的坐标分别为${{P}}_i = \left(x_{pi},0,z_{pi}\right)^{\rm{T}},$ ${{P}}_j = \left(x_{pj},0,z_{pj}\right)^{\rm{T}},$ 根据式(3), 它们在$ S_1 $中的坐标分别可表示为

    $$\begin{split} &{P}_i^1 = {{P}_i} + l_x^{1i}{X} + l_y^{1i}{Y}\\ &{P}_j^1 = {{P}_j} + l_x^{1j}{X} + l_y^{1j}{Y} \end{split}$$ (6)

    通过这两点的直线在$ S_1 $中方向向量$ {L}_A $可表示为

    $$ {L}_A = {{P}}_j^1-{{P}}_i^1 = {{P}}_A+l_x^A{X}+l_y^A{Y} $$ (7)

    其中,

    $$\begin{split} {{P}_A} &\!=\! {{P}_j} - {{P}_i} \!=\! \left( {{x_A},0,{z_A}} \right)^{\rm{T}} \!= \!\left( {{x_{pj}} - {x_{pi}},0,{z_{pj}} - {z_{pi}}} \right)^{\rm{T}},\\ l_x^A &= l_x^{1j} - l_x^{1i},\;\;l_y^A = l_y^{1j} - l_y^{1i}. \end{split}$$

    同理, 可测得另一条直线在$ S_1 $中的方向向量$ {L}_B $:

    $${{L}_B} = {{P}_B} + l_x^B{X} + l_y^B{Y}$$

    $ {L}_A\cdot {L}_B = 0 $, 将坐标值代入其中并展开可得到如下方程:

    $$ C_2+C_1+C_0 = 0 $$ (8)

    其中,

    $$\begin{split} {C_2} =\;& \left(l_x^Al_y^B + l_y^Al_x^B\right)({x_x}{x_y} + {y_x}{y_y} + {z_x}{z_y})\\ {C_1} =\;& \left({x_A}l_y^B + {x_B}l_x^A\right){x_x}\;+\\ & \left({x_A}l_y^B + {x_B}l_y^A\right){x_y}\;+\\ & \left({z_A}l_x^B + {z_B}l_x^A\right){z_x}\;+\\ & \left({z_A}l_y^B + {z_B}l_y^A\right){z_y}\\ {C_0} =\;& l_x^Al_x^B + l_y^Al_y^B \end{split}$$

    直接求解该方程很复杂. 注意到两个运动轴的运动互相独立, 可以分别对它们进行标定. 例如$ X $轴电机抱死, $ Y $轴电机运动, 即$l_x^A = l_x^B = 0,$ 则式(8)退化为关于$x_y ,$ $ z_y $的一次方程

    $$\left({x_A}l_y^B + {x_B}l_y^A\right){x_y} + \left({z_A}l_y^B + {z_B}l_y^A\right){z_y} + l_y^Al_y^B = 0$$

    按照上述推导过程, 确定该方程的参数需要在两条直线上各准确测量两个点的坐标, 增大了数据采集工作量. 为此, 本研究提出一种快速计算方程参数的方法.

    考虑$ X $轴电机固定、$ Y $轴电机工作的情况, 根据式(3), 采用$ {Y}_0 $将扫描结果变换到$ S_1 $坐标系中. 式(6)中$ {{P}}_i^1 $, $ {{P}}_j^1 $的测量值分别为

    $$\begin{array}{l} {\bar {{P}}^1_i} = ({x_{pi}},l_y^{1i},{z_{pi}}) ^{\rm{T}}= {{P}_i} + l_y^{1i}{{Y}_0}\\ {\bar {{P}}^1_j} = ({x_{pj}},l_y^{1j},{z_{pj}}) ^{\rm{T}}= {{P}_j} + l_y^{1j}{{Y}_0} \end{array}$$

    参考式(7), 此时$ {L}_A $的测量值为

    $$\bar{{L}}_A = {\bar {{P}}_j^1} - {\bar {{P}}_i^1} = {{P}_A} + l_y^A{{Y}_0}$$

    由上式可知:

    $${{P}_A} = \bar{{L}}_A - l_y^A{{Y}_0}$$

    将它代入式(7)可以得到$ {L}_A $真实值表示为

    $$ {L}_A = \bar{{L}}_A-l_y^A{Y}_0+l_y^A{Y} $$ (9)

    由式(9)可得如下结论: 探头只沿$ Y $轴运动, 采用$ {Y}_0 $按式(3)将扫描结果变换到$ S_1 $中, 对于标定板上的直线${L} ,$ 若其方向测量值是$\overline{{{L}}} = (a,b,c) ^{\rm{T}},$ 则实际值可表为${L} = (a,0,c) ^{\rm{T}}+b{Y} .$

    根据这个结论, 若$ {L}_1 $, $ {L}_2 $的测量值分别为$\bar{{L}}_1 = $$ (a_1,b_1,c_1) ^{\rm{T}}$, $\bar{{L}}_2 = (a_2,b_2,c_2) ^{\rm{T}}$, 方程(8)相应可写为

    $$ C_1+C_0 = 0 $$ (10)

    其中,

    $$\begin{array}{l} {C_1} = ({a_1}{b_2} + {b_1}{a_2}){x_y} + ({c_1}{b_2} + {b_1}{c_2}){z_y}\\ {C_0} = {a_1}{a_2} + {b_1}{b_2} + {c_1}{c_2} \end{array}$$

    式(10)是$ x_y $, $ z_y $的一次方程, 方程参数只由$ \bar{{L}}_1 $, $ \bar{{L}}_2 $决定, 它们通过RANSAC算法计算. 与第2.1节和第2.2节中的算法相比, 本算法在提取直线特征后, 无需计算中间量, 可直接得到标定方程, 简化了计算流程; 得到的标定方程不会引入冗余未知量, 减少了计算量.

    如第2.2节所述, 采用${X}_0 ,$ $ {Y}_0 $对扫描结果进行转换拼接, 得到的点云存在形状畸变问题. 但根据第1.2节中的假设, 探头只做平移运动, 直线段在畸变的点云中依然保持为直线段. 因此, 采用RANSAC算法计算$ \bar{{L}} $是可行的. 这样既避免了特征点缺失、不匹配的问题, 又克服了形状畸变的缺陷.

    $ {Y} $标定好后, 再标定${X}.$ 控制$X,$ $ Y $轴电机分别以速率$v_x ,$ $ v_y $同时匀速运动带动探头进行扫描. 采用$ {X}_0 $和标定好的$ {Y} $按式(3)将扫描结果变换到$ S_1 $坐标系中. 此时式(6)中${{P}}_i^1 ,$ $ {{P}}_j^1 $的测量值可表示为

    $$\begin{array}{l} {\bar {{P}}_i^1} = ({x_{pi}} + l_y^{1i}{x_y} + l_x^{1i},l_y^{1i}{y_y},{z_{pi}} + l_y^{1i}{z_y})^{\rm{T}}\\ {\bar {{P}}_j^1} = ({x_{pj}} + l_y^{1j}{x_y} + l_x^{1j},l_y^{1j}{y_y},{z_{pj}} + l_y^{1j}{z_y})^{\rm{T}} \end{array}$$

    参考式(7), $ {L}_A $的测量值表示为

    $$ \bar{{L}}_A = ({{P}}_A+l_y^A{Y})+l_x^A{X}_0 $$

    由于两个电机做匀速运动, $ \bar{{L}}_A $又可写为如下形式:

    $$ \bar{{L}}_A = ({{P}}_A+l_y^A{Y})+(l_y^A\cdot k){X}_0 $$

    其中, $ k = v_x/v_y $为两个电机的速率比. $ \bar{{L}}_A $$ Y $方向分量完全由$ {Y} $决定, 若测得$\bar{{L}}_A = (a_A,b_A,c_A) ^{\rm{T}}$, 那么$ l_y^A = b_A/y_y $.

    参考式(9)的推导, 可得出结论: 探头分别以速率$v_x ,$ $ v_y $沿$X ,$ $ Y $轴同时匀速运动, 采用${X}_0 ,$ $ {Y} $按式(3)将扫描结果变换到$ S_1 $中, 对于标定板上的直线${L} ,$ 若其方向测量值是$\bar{{L}}_A = (a,b,c) ^{\rm{T}},$ 则实际值可表示为${L} = (a-b\cdot k/y_y,b,c) ^{\rm{T}}+(b\cdot k/y_y){X}.$

    与标定Y轴类似, 若${L}_1 ,$ $ {L}_2 $的测量值分别为$\bar{{L}}_1 = (a_1,b_1,c_1) ^{\rm{T}},$ $\bar{{L}}_2 = (a_2,b_2,c_2) ^{\rm{T}} ,$ 则方程(10)中各项为

    $$\begin{split} {C_1} =\;& ({a_1}{m_2} + {a_2}{m_1} - 2{m_1}{m_2}){x_x}\\ & ({b_1}{m_2} + {b_2}{m_1}){y_x} + ({c_1}{m_2} + {c_2}{m_1}){z_x}\;+\\ {C_0} =\;& {a_1}{a_2} + {b_1}{b_2} + {c_1}{c_2}\;+\\ & 2{m_1}{m_2} - {a_1}{m_2} - {a_2}{m_1} \end{split}$$

    其中, $m_i = b_ik/y_y,$ $ i = 1,2 $.

    无论是对$ X $轴或是$ Y $轴进行标定, 在$ n $次测量后得到的方程组都表示成如下形式:

    $$ {A}_{n\times m}\cdot {V}+{B}_{n\times 1} = {0} $$ (11)

    在标定Y轴时$m = 2,$ ${V} = (x_y,z_y)^{\rm{T}} ;$ 在标定$ X $轴时$ m = 3, $ ${V} = (x_y,y_y,z_y)^{\rm{T}} .$ 在实践中该方程组的解析解不容易得到, 可以转化为如下形式的优化问题:

    $$\begin{split} &{\rm{min}}\;F({V})\\ &{\rm{s.t.}}\;f({V}) \le 0 \end{split}$$ (12)

    其中,

    $$\begin{split} &F({V}) = {\left\| {A \cdot {V} + B} \right\|^2}\\ &f({V}) = {{V}^{\rm{T}}}{V} - I \end{split}$$

    $ {I} $是单位矩阵. 由于${X},$ $ {Y} $都是单位向量, 所以标定X轴时约束条件为等式约束. 在转化为优化问题后可使用L-M方法[16]得到方程的数值解. 特别地, 对于$ Y $轴的标定, 根据文献[17], 可证明该优化问题是凸优化问题, 且可转化为二次规划问题, 并采用IRLS (Iteratively reweighted least squares)等方法进行求解[18].

    以标定$ {Y} $为例, 标定算法的步骤总结如下.

    算法1. 标定Y轴算法

    1 $k \gets 0$

    2 采用${Y}_0$按式(3)将第$k$轮扫描结果变换到坐标系$S_1$

    3${R^k} = \{ {\bar {{{P}}}_{ij}^k} |{\bar {{{P}}}_{ij}^k} = {{P}_{ij}^k} + {{Y}_0} \cdot l_i^k,\;{{P}_{ij}^k} \in R_i^k,\;$

    $i = 1, 2,\cdots,{n_k}, j = 0,1,\cdots, N - 1\} $

    4 使用RANSAC算法, 从$R^k$中提取测量值${\bar{{L}}_1}$, ${\bar{{L}}_2}$:

    ${L}_1=(a_1,b_1,c_1) ^{\rm{T}},\;{L}_2=(a_2,b_2,c_2) ^{\rm{T}}$

    5 计算真实值${L}_1$, ${L}_2$:

    ${L}_1=(b_1x_y+a_1,b_1y_y,c_1+ b_1z_y) ^{\rm{T}}$

    ${L}_2=(b_2x_y+a_2,b_2y_y,c_2+b_2z_y) ^{\rm{T}}$

    6 根据${L}_1\cdot{L}_2=0$建立式(10)

    7 $k \gets k+1.$$k>M-1$则执行步骤7, 否则执行步骤2

    8 得到$M$个方程, 求解方程组(12), 得到输出${Y}$

    算法输入为$ M $次扫描结果. 在第$ k $次扫描中, 探头沿Y轴运动得到了$ n_k $条扫描线$ {R_1^k,R_2^k,\cdots,R_{n_k}^k} $以及每条扫描线在$ Y $轴对应的测量位置$ {l_1^k,l_2^k,\cdots,l_{n_k}^k} $, 其中,

    $$\begin{split} R_i^k=\;& \{ {{P}_{ij}^k}|{{P}_{ij}^k}=\\ & \left(\Delta d \cdot j - {\Delta d(N - 1)}/{2},0,h_{ij}^k\right) ^{\rm{T}},\\ &\quad j = 0,1,\cdots,N - 1\} \end{split}$$

    其中, $ N $为每条扫描线包含的扫描点数量. 算法输出为${Y}.$ 实践中扫描结果可能会包含标定板外的点或平面, 因此执行算法前需要进行滤波以及平面提取[19]等预处理.

    研究中对算法进行了实机验证, 并进行了对比试验. 实验中使用的扫描机构如图4所示. 两台编码器运动当量已经标定过的伺服直线电机, 按照第1.1节所述方式进行安装. 探头固定于X轴电机的手摇升降台上, 它能调整探头到作业面的距离. 探头采用基恩士LJV7060激光轮廓仪, 光点间隔$ \Delta d $为 20 μm, 一条扫描线上的测量点数量$ N = 800 $, 深度的有效量程$ 60\pm 8\;{\rm{mm}} $. 扫描光束中掺杂了可见光, 方便人工进行粗定位.

    图 4  实际扫描机构
    Fig. 4  Real scanning mechanism

    上位机采用戴尔Optilex3020台式机. 电机控制器采用固高GTS-800运动控制卡, 它通过PCI总线与上位机通信. 激光探头采用LJV7001控制器进行控制, 它通过以太网接口与上位机通信. 探头使用编码器触发模式—编码器每输出固定个数的脉冲, 触发一次激光发射, 从而方便地实现均匀扫描. 触发信号源为Y轴编码器. 探头返回的一帧数据中包含各探测点深度数据以及触发时的编码器计数.

    软件主要包含两部分: 采集与预处理; 数值求解. 数据采集借助设备生产商提供的编程接口进行设计. 采集到的数据主要利用PCL (Point cloud library)库进行预处理[20], 并借助QT进行可视化. 数值求解部分使用MATLAB中的最优化工具箱以及python中的cvxopt功能包进行.

    以标定Y轴为例, 扫描与特征提取的流程如图5所示, 其中所有图片全部截取自自主编写的软件.

    图 5  标定板扫描与线特征提取过程
    Fig. 5  Scanning of calibration board and procedure of line feature extraction

    图5(a)中, X轴电机在指定位置固定, 控制探头沿Y轴匀速运动, 完成对阴影覆盖区域的扫描, 得到深度信息以及对应的扫描位置.

    图5(b)中, 采用$ {Y}_0 $将扫描结果按式(3)转换到统一坐标系$ S_1 $内, 进行滤波降噪后提取标定板平面的点云. 图中白色部分为有效点云数据, 黑色部分为背景.

    从点云中提取边界信息, 如图5(c)所示. 根据标定板表面点云的平整性以及在边界处的不连续性, 利用KD-Tree[21]统计每个点附近$ \eta $个最邻近点的重心与该点之间的距离, 若超过一定的阈值, 可认为该点为边界点. 图5(c)$ \eta = 8 $, $ \lambda = 0.01\;{\rm{mm}} $.

    从边界图中选择需要计算方向的一组垂线段, 如图5(d)中两个矩形框指示的段直线段. 应用RANSAC算法得到它们的方向向量作为线特征.

    图6, 摆放标定板时, 绕3个旋转轴转动标定板, 从而实现多次测量. 其中7次测量的结果如表1所示.

    图 6  标定板旋转
    Fig. 6  Rotation of calibration board
    表 1  测量结果
    Table 1  Measurement results
    直线 1 的方向向量直线 2 的方向向量
    $[0.99659, 0.03356,0.07539]$$[-0.04385,0.99904,0.00192]$
    $[-0.69945,0.71395,-0.03244]$$[0.71329,-0.03317,0.70008]$
    $[0.80461,0.58967,0.06998]$$[-0.58046,0.81253,-0.05343]$
    $[-0.61523,0.78755,-0.03541]$$[0.78759,0.61540,-0.03129]$
    $[0.79372,0.59944,0.10337]$$[-0.59260,0.80175,-0.07760]$
    $[0.87606,-0.47478,0.08426]$$[0.46701,0.88316,0.04391]$
    $[0.82421,-0.56561,0.02783]$$[0.56293,0.82555,-0.03971]$
    下载: 导出CSV 
    | 显示表格

    根据式(10), 得到式(11)的参数$ {A}_{7\times2} ,$ $ {B}_{7\times1} $如下:

    $$\begin{split} &{A_{7 \times 2}} = \left[ {\begin{array}{*{20}{c}} {0.99416}&{0.07539}\\ {0.01958}&{ - 0.04639}\\ {0.31149}&{0.02535}\\ {0.24166}&{ - 0.04643}\\ {0.28114}&{0.03636}\\ {0.55198}&{0.05357}\\ {0.36203}&{0.04544} \end{array}} \right]\\ &{B_{7 \times 1}} = \left[ {\begin{array}{*{20}{c}} { - 0.01003}\\ {0.00199}\\ {0.00834}\\ {0.00122}\\ {0.00223}\\ { - 0.00647}\\ { - 0.00407} \end{array}} \right] \end{split}$$

    使用cvxopt工具箱求解式(12)得到$ x_y $, $ z_y $的值分别为0.00405, 0.03730. 再根据$\left\| {Y} \right\| = 1$的约束, 求解得到$ y_y $, 完成对Y轴的标定.

    本研究设计了距离校验实验对标定结果进行精度校验: 控制探头按图7(a)中箭头指示的轨迹运行, 对圆斑标定板进行完整扫描; 采用已标定的$ {X} ,$ $ {Y} $将扫描结果统一转换到$ S_1 $坐标系中, 形成点云; 利用RANSAC算法提取圆心坐标, 计算标称间距为$\bar{D_i} = \Delta D\cdot i,\;{i = 1,2,\cdots,n}$的两个圆心点的实测距离$ D_i $, 如图7(b)所示. 定义如下指标衡量标定精度:

    图 7  距离校验
    Fig. 7  Distance check
    $${\gamma _n} = \frac{1}{n}\sum\limits_{i = 1}^n {\frac{{|{\bar {{D}}_i} - {D_i}|}}{{{\bar {{D}}_i} }}} \times 100\,{\text{%}} $$

    定制标定板的相邻圆心距$\Delta D = 3.75\;{\rm{mm}}$, 实验中取$ n = 6 $, 经过重复实验得到${\gamma _6} = 0.15\,{\text{%}}. $

    研究中还在实机平台上将新算法与基于角特征点以及基于圆心特征点的标定算法进行了比较.

    与基于角点特征的标定方法比较. 如图8所示, 使探头扫描线恰好覆盖标定板角点. 由于标定板实际摆放位置不完全准确、角点处反射条件变化激烈等原因, 探头无法准确扫描角点. 例如在图8中, 扫描线覆盖的角点在点云中变化成了线段区域. 实验中, 特征点缺失的现象出现频率高, 很难得到式(4)中与$ {{P}}_w $相匹配的$ {{P}}_i ,$ 无法计算单应性矩阵$ {M}_w^i, $ 使算法失效. 而本研究提出的标定方法在实验中则不存在这样的缺陷.

    图 8  使用棋盘格标定及扫描结果
    Fig. 8  Calibration with chessboard and scanning result

    与基于圆心特征的标定方法比较. 标定Y轴为例, 如第2.2节中所述, 使用圆心特征进行标定的详细步骤如下: 1)控制探头沿Y轴运动; 2)采用$ {Y}_0 $将扫描结果转换到$ S_1 $中, 得到点云, 使用RANSAC算法计算各个圆心在$ S_1 $的坐标; 3)计算各圆心在对应的传感器坐标系中的坐标; 4)根据圆心坐标, 确定标定方程(5); 5)通过多次测量得到$ {Y} $数值解. 两轴标定完成后, 在同样的实验环境下, 按第3.3节中的方法进行校验实验, 测得$ \gamma_6 = 0.94\,{\text{%}} $. 相比之下, 本文提出的标定方法精度更高.

    最后, 根据算法特点以及比较实验结果, 将本文算法与基于特征点的算法进行汇总比较, 指标包括: 1)采集特征后是否可以直接得到标定方程; 2)标定方程是否包含冗余未知量; 3)$ \gamma_6 $精度. 比较结果如表2.

    表 2  算法比较
    Table 2  Comparision between algorithms
    比较指标基于角点基于圆心本文算法
    指标 1)否 (需单应性矩阵)否 (需坐标变换)
    指标 2)
    指标 3)无 (算法难以实践)0.94 %0.15 %
    下载: 导出CSV 
    | 显示表格

    根据对比结果可以证明, 本文提出的标定算法比基于特征点的标定算法更适合对二轴传动的激光扫描机构进行外参标定, 而且精度更高.

    针对二轴传动的平面激光扫描机构, 本文提出了一种新的外参标定算法. 不同于使用特征点进行外参标定的方法, 本方法使用线特征以及垂直约束构造外参方程, 克服了常见标定方法中特征点缺失、不匹配以及形状畸变的缺陷. 此外, 文中还提出了一种根据线特征测量值与真实值转换关系快速计算方程参数的方法. 实机实验与对比实验表明, 本文提出的标定方法更适合进行激光扫描仪的外参标定而且精度满足测量需求.

  • 图  1  激光探头与平面扫描机构

    Fig.  1  Laser and plane scaning mechanism

    图  2  棋盘标定板与特征点缺失

    Fig.  2  Chess calibration board and lack of feature points

    图  3  圆斑标定板与扫描结果的形状畸变

    Fig.  3  Spot calibration board and shape distortion of scanning result

    图  4  实际扫描机构

    Fig.  4  Real scanning mechanism

    图  5  标定板扫描与线特征提取过程

    Fig.  5  Scanning of calibration board and procedure of line feature extraction

    图  6  标定板旋转

    Fig.  6  Rotation of calibration board

    图  7  距离校验

    Fig.  7  Distance check

    图  8  使用棋盘格标定及扫描结果

    Fig.  8  Calibration with chessboard and scanning result

    表  1  测量结果

    Table  1  Measurement results

    直线 1 的方向向量直线 2 的方向向量
    $[0.99659, 0.03356,0.07539]$$[-0.04385,0.99904,0.00192]$
    $[-0.69945,0.71395,-0.03244]$$[0.71329,-0.03317,0.70008]$
    $[0.80461,0.58967,0.06998]$$[-0.58046,0.81253,-0.05343]$
    $[-0.61523,0.78755,-0.03541]$$[0.78759,0.61540,-0.03129]$
    $[0.79372,0.59944,0.10337]$$[-0.59260,0.80175,-0.07760]$
    $[0.87606,-0.47478,0.08426]$$[0.46701,0.88316,0.04391]$
    $[0.82421,-0.56561,0.02783]$$[0.56293,0.82555,-0.03971]$
    下载: 导出CSV

    表  2  算法比较

    Table  2  Comparision between algorithms

    比较指标基于角点基于圆心本文算法
    指标 1)否 (需单应性矩阵)否 (需坐标变换)
    指标 2)
    指标 3)无 (算法难以实践)0.94 %0.15 %
    下载: 导出CSV
  • [1] Zhang Q, Pless R. Extrinsic calibration of a camera and laser range finder (improves camera calibration). In: Proceedings of the 2004 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), Sendai, Japan: IEEE, 2004. 8: 2301−2306
    [2] Geiger A, Moosmann F, Mer C, Schuster B. Automatic camera and range sensor calibration using a single shot. In: Proceedings of the 2012 IEEE International Conference on Robotics and Automation, Saint Paul, MN, USA: IEEE, 2012. 3936−3943
    [3] Zou C, He B W, Zhang L W, Zhang J W, Deng Z. An automatic calibration between an omni-directional camera and a laser rangefinder for dynamic scenes reconstruction. In: Proceeding of the 2016 IEEE International Conference on Robotics and Biomimetics, ROBIO 2016, Qingdao, China: IEEE, 2016. 1528−1534
    [4] 胡钊政, 赵斌, 李娜, 夏克文. 基于虚拟三面体的摄像机与二维激光测距仪外参数最小解标定新算法. 自动化学报, 2015, 41(11): 1951−1960

    Hu Zhao-Zheng, Zhao Bin, Li Na, Xia Ke-Wen. Minimal solution to extrinsic calibration of camera and 2D laser rangefinder based on virtual trihedron. Acta Automatica Sinica, 2015, 41(11): 1951−1960
    [5] Atanacio-Jiménez G, González-Barbosa J J, Hurtado-Ramos J B, Ornelas-Rodríguez F J, Jiménez-Hernández H, García-Ramirez, T. LiDAR velodyne HDL-64E calibration using pattern planes. International Journal of Advanced Robotic Systems, 2011, 8(5): 70−82 doi: 10.5772/45709
    [6] Chen Z, Yang X P, Zhang C X, Jiang S F. Extrinsic calibration of a laser range finder and a camera based on the automatic detection of line feature. In: Proceedings of the 9th International Congress on Image and Signal Processing, BioMedical Engineering and Informatics, CISP-BMEI 2016, Datong, China: IEEE, 2016. 448–453
    [7] Zhou L P, Deng Z D. A new algorithm for the extrinsic calibration of a 2D LIDAR and a camera. Measurement Science and Technology, 2014, 25(6): 065107
    [8] Gomez-Ojeda R, Briales J, Fernandez-Moral E, GonzalezJimenez J. Extrinsic calibration of a 2D laser-rangefinder and a camera based on scene corners. In: Proceedings of the 2015 IEEE International Conference on Robotics and Automation, Seattle, WA, USA: IEEE, 2015. 3611−3616
    [9] Liao Q H, Liu M, Tai L, Ye H Y. Extrinsic calibration of 3D range finder and camera without auxiliary object or human intervention [Online], available: https://arxiv.org/pdf/1703.04391.pdf, September 27, 2019
    [10] Gong Z, Wen C L, Wang C, Li J. A target-free automatic self-calibration approach for multibeam laser scanners. IEEE Transactions on Instrumentation and Measurement, 2018, 67(1): 238−240 doi: 10.1109/TIM.2017.2757148
    [11] 钱丽丹, 杨军伟. 基于精密运动的激光平面标定方法. 计算机工程, 2013, 39(4): 318−321 doi: 10.3969/j.issn.1000-3428.2013.04.073

    Qian Li-dan, Yang Jun-wei. Laser plane calibration method based on precise movement. Computer Engineering, 2013, 39(4): 318−321 doi: 10.3969/j.issn.1000-3428.2013.04.073
    [12] Zhang Z. A flexible new technique for camera calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330−1334 doi: 10.1109/34.888718
    [13] 程金龙, 冯莹, 曹毓, 雷兵, 魏立安. 车载激光雷达外参数的标定方法. 光电工程, 2013, 40(12): 89−94 doi: 10.3969/j.issn.1003-501X.2013.12.015

    Cheng Jin-Long, Feng Ying, Cao Yu, Lei Bing, Wei Li-An. Extrinsic calibration method for multiple lidars mounted on mobile vehicle. Opto-Electronic Engineering, 2013, 40(12): 89−94 doi: 10.3969/j.issn.1003-501X.2013.12.015
    [14] Raguram R, Chum O, Pollefeys M, Matas J, Frahm J M. USAC: A universal framework for random sample consensus. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2013, 35(8): 2022−2038 doi: 10.1109/TPAMI.2012.257
    [15] Feng D H, Zhang X, Zhang X, Chu W Q. RANSAC-based spatial circle fitting algorithm and its application on motion range detection of a manipulator. Optical Technique, 2016, 42(2): 156−160
    [16] 俞毓锋, 赵卉菁. 基于相机与摇摆激光雷达融合的非结构化环境定位. 自动化学报, 2019, 45(9): 1791−1798

    Yu Yu-Feng, Zhao Hui-Jing. Off-road localization using monocular camera and nodding LiDAR. Acta Automatica Sinica, 2019, 45(9): 1791−1798
    [17] Boyd S, Vandenberghe L [著], 王书宁, 许鋆, 黄晓霖 [译]. 凸优化. 北京: 清华大学出版社, 2013.

    Boyd S, Vandenberghe L [Author], Wang Shu-Ning, Xu Yun, Huang Xiao-Lin [Translator]. Convex Optimization. Beijing: Tsinghua University Press, 2013.
    [18] 谢理想, 万刚, 曹雪峰, 王庆贺, 王龙. 基于凸优化改进的相机全局位置估计方法. 自动化学报, 2018, 44(3): 506−516

    Xie Li-Xiang, Wan Gang, Cao Xue-Feng, Wang Qing-He, Wang Long. An improved method for camera location estimation through convex optimization. Acta Automatica Sinica, 2018, 44(3): 506−516
    [19] 吴燕雄, 李峰, 刘芳, 程丽娜, 郭丽丽. 平滑度欧氏聚类算法分割点云数据. 测控技术, 2016, 44(3): 506−516

    Wu Yan-Xiong, Li Feng, Liu Fang, Cheng Li-Na, Guo Li-Li. Point cloud segmentation using euclidean cluster extraction algorithm with the smoothness. Measurement and Control Technology, 2016, 44(3): 506−516
    [20] Rusu R B, Cousins S. 3D is here: Point cloud library (PCL). In: Proceedings of the 2011 IEEE International Conference on Robotics and Automation, Shanghai, China: IEEE, 2011. 1−4.
    [21] Li S H, Wang J X, Liang Z Q, Su L. Tree point clouds registration using an improved ICP algorithm based on kd-tree. In: Proceedings of the 2016 IEEE International Geoscience and Remote Sensing Symposium (IGARSS), Beijing, China: IEEE, 2016. 4545−4548
  • 期刊类型引用(3)

    1. 孙焱. 基于激光扫描的电子档案异构时态数据检测方法. 激光杂志. 2024(02): 229-233 . 百度学术
    2. 于尚红,袁方敏. 基于SteamVR激光扫描的点云图像界面交互设计. 激光杂志. 2023(07): 100-104 . 百度学术
    3. 司垒,王忠宾,李嘉豪,魏东,梁斌,肖俊鹏. 基于图像和激光点云融合的智能采面煤岩识别. 振动.测试与诊断. 2023(02): 254-262+407 . 百度学术

    其他类型引用(1)

  • 加载中
图(8) / 表(2)
计量
  • 文章访问数:  1048
  • HTML全文浏览量:  382
  • PDF下载量:  133
  • 被引次数: 4
出版历程
  • 收稿日期:  2019-03-29
  • 录用日期:  2019-09-24
  • 网络出版日期:  2021-05-21
  • 刊出日期:  2021-05-20

目录

/

返回文章
返回