2. 中国科学院沈阳自动化研究所 机器人学国家重点实验室,辽宁 沈阳 110016;
3. 辽宁省水下机器人重点实验室,辽宁 沈阳 110016
2. State Key Laboratory of Robotics, Shenyang Institute of Automation, Chinese Academy of Sciences, Shenyang 110016, China;
3. Key Laboratory of Marine Robotics of Liaoning Province, Shenyang 110016, China
自主水下机器人[1](Autonomous Underwater Vehicle,AUV)为集传感、通信、导航、控制、推进等技术于一体的常用海洋观测探测设备,已经广泛应用于深海、极地的科考任务。在北极地区执行任务的AUV受到海面冰层的阻隔,常用的卫星和声学导航等方法受到限制。在航行过程中惯导和DVL[2]逐渐累积误差,不仅会导致AUV偏离任务航线,还有可能致使AUV未能到达目标冰洞进行回收。视觉定位在水质良好的极地具有良好性能,基于自然特征的视觉里程计[3]存在累积误差不宜使用,基于人工标记的视觉定位系统可以计算AUV绝对位置用于校正导航。与一般场景不同的是,本文仅在AUV行进路线上间隔部署标记,当AUV获取到标记定位特征成像位置时,通过位姿解算校正导航,确保AUV航线准确并最终在小尺寸冰洞中安全回收。然而,冰下标记的成像亮度容易出现波动,致使标记特征的成像位置存在误差,以及在AUV偏离航线航线时标记可能出现在视野边缘,都对位姿解算方法提出挑战。
目前,对于视觉定位标记位姿解算的研究主要分为2种,一种是针对特定视觉定位标记提出的标记位姿解算方法;另一种是针对PnP问题提出的通用相机位姿解算方法。PAN G等[4]设计了一种六定位特征的二维码,构建标记位姿和图像中6个特征点之间的线性方程,实现标记与相机相对位姿的直接解算;M. F. ASWAD等[5]对构建的线性方程组进行参数简化,使用标记4个特征点即可解算位姿;M. UZUNOGLU等[6]使用SVD分解求解构建的线性方程组,获取最小二乘解;OLSON E等[7]设计了AprilTag标记,在求解线性方程后对获得的旋转矩阵进行极分解,提高标记姿态解算的精度。由于解算标记位姿是一个典型的PnP问题,因此可以使用PnP问题通用求解方法。KE T等[8]设计了一种基于罗德里格斯变换关联特征点求解P3P问题的方法,使用牛顿法求解4次方程组,完成相机的位姿解算;S. ZHUANG等[9]将特征点理论成像位置和实际位置之间的距离作为优化目标,使用L-BFGS算法迭代计算相机位姿;M. LOURAKIS等[10]将特征点理论空间位置与成像投影线之间的距离作为优化目标,使用Grobner算法解算相机位姿;K. RIKU等[11]设计了一种稀疏搜索麻雀算法迭代计算相机位姿;S. GARRIDO-JURADO等[12]设计了Aruco标记,使用COLLINST等[13]基于无穷小平面的相机位姿评估方法(IPPE),完成Aruco标记的位姿解算。目前,Aruco标记已被应用于多个视觉定位工程项目,然而对于校正冰下AUV导航这一应用场景,位姿解算方法需要对2个方面的问题进行改进。一方面,水下标记成像亮度波动造成标记角点存在定位误差,位姿解算需要整合多帧图像中标记的位置信息,实现更高精度的位姿解算。另一方面,AUV对Aruco标记的识别和位姿解算存在滞后,解算过程中载体持续运动,因此需要对滞后的结果进行修正。
本文针对冰下AUV导航校正的应用场景,提出了通过优化AUV视野中Aruco标记角点的成像误差,校正冰下AUV导航位置的方法CNOEM(The method to correct the navigation position of under-ice AUV by optimizing the imaging error of the Aruco marker corners recognized by the AUV camera)。首先,本文将校正周期开始时的AUV坐标系记为起始坐标系,在一个周期内基于多帧图像对起始坐标系在世界坐标系中的位姿进行优化,在周期结束时基于优化后的位姿校正导航。其次,本文设计了一种基于起始坐标系位姿,计算标记在各相机坐标系中理论位置的方法,结合标记特征点的实际成像位置,可以计算成像误差。之后,本文设计了从标记成像误差到起始坐标系位姿误差的传播方法,通过误差反向传播,可以迭代优化起始坐标系的位姿。最后,本文方法针对GPU平台进行并行优化,有效提高方法的计算效率。在仿真、水池和外场试验中通过与常用方法对比,证明方法的有效性。
1 CNOEM方法设计 1.1 方法原理图1所示为相机成像的原理,将世界坐标系记为
|
图 1 相机成像原理图 Fig. 1 The principle diagram of camera imaging |
| $ Z_i^{\text{O}}{\left[ {\begin{array}{*{20}{c}} {{u_i}}&{{v_i}}&1 \end{array}} \right]^{\text{T}}} = \boldsymbol {KT}_{\text{W}}^{\text{O}}\left[ {\begin{array}{*{20}{c}} {P_i^{\text{W}}} \\ 1 \end{array}} \right]。$ | (1) |
式中:
| $ \boldsymbol K = \left[ {\begin{array}{*{20}{c}} {{k_1}}&0&{{u_0}}&0 \\ 0&{{k_2}}&{{v_0}}&0 \\ 0&0&1&0 \end{array}} \right]。$ | (2) |
式中:
| $ n_{\text{V}}^{\text{W}} = \left[ {\begin{array}{*{20}{c}} \alpha &\beta &\gamma &X&Y&Z \end{array}} \right]。$ | (3) |
式中:
| $ {{\boldsymbol{T}}_{\text{V}}^{\text{W}} = {\text{J}}\left( {n_{\text{V}}^{\text{W}}} \right) = \left[ {\begin{array}{*{20}{c}} {{\rm{c}}\gamma *{\rm{c}}\beta - {\rm{s}}\gamma *{\rm{s}}\alpha *{\rm{s}}\beta }&{ - {\rm{s}}\gamma *{\rm{c}}\alpha }&{{\rm{c}}\gamma *{\rm{s}}\beta + {\rm{s}}\gamma *{\rm{s}}\alpha *{\rm{c}}\beta }&X \\ {{\rm{s}}\gamma *{\rm{c}}\beta + {\rm{c}}\gamma *{\rm{s}}\alpha *{\rm{s}}\beta }&{{\rm{c}}\gamma *{\rm{c}}\alpha }&{{\rm{s}}\gamma *{\rm{s}}\beta - {\rm{c}}\gamma *{\rm{s}}\alpha *{\rm{c}}\beta }&Y \\ { - {\rm{c}}\alpha *{\rm{s}}\beta }&{{\rm{s}}\alpha }&{{\rm{c}}\alpha *{\rm{c}}\beta }&Z \\ 0&0&0&1 \end{array}} \right]}{。} $ | (4) |
式中:
当AUV导航
|
图 2 方法原理图 Fig. 2 The principle diagram of the method |
将校正的
| $ n_{\text{V}}^{\text{W}} = {{\text{J}}^{ - 1}}\left( {{\boldsymbol{T}}_{\text{V}}^{\text{W}}} \right) = {\left[ {\begin{array}{*{20}{c}} {{\text{arcsin}}\left( {{\boldsymbol{T}}_{\text{V}}^{\text{W}}\left( {3,2} \right)} \right)} \\ {{\text{arctan}}\left( {{\boldsymbol{T}}_{\text{V}}^{\text{W}}\left( {3,1} \right),{\boldsymbol{T}}_{\text{V}}^{\text{W}}\left( {3,3} \right)} \right)} \\ {{\text{arctan}}\left( {{{ - }}{\boldsymbol{T}}_{\text{V}}^{\text{W}}\left( {1,2} \right),{\boldsymbol{T}}_{\text{V}}^{\text{W}}\left( {2,2} \right)} \right)} \\ {{\boldsymbol{T}}_{\text{V}}^{\text{W}}\left( {1,4} \right)} \\ {{\boldsymbol{T}}_{\text{V}}^{\text{W}}\left( {2,4} \right)} \\ {{\boldsymbol{T}}_{\text{V}}^{\text{W}}\left( {3,4} \right)} \end{array}} \right]^{\text{{{T}}}}}。$ | (5) |
式中:
在水下环境中,受光照影响标记的成像亮度存在波动,使得算法识别的标记角点位置存在误差。为减小该误差对位姿解算精度造成的影响,本文设计了基于多帧图像的AUV导航校正方法。同时,方法还有效解决了标记识别造成的解算结果滞后性问题。在本文的AUV系统中,将各特征点和坐标系做以下命名。将多帧图像中识别的全部标记按识别时间顺序编号
| $ Z_i^{{\text{O}}j}{\left[ {\begin{array}{*{20}{c}} {u_i^j}&{v_i^j}&1 \end{array}} \right]^{\text{{{T}}}}} = {{\boldsymbol{K}}^j}\left[ {\begin{array}{*{20}{c}} {P_i^{{\text{O}}j}} \\ 1 \end{array}} \right],$ | (6) |
| $ \begin{array}{*{20}{c}} {z_i^{{\text{O}}j} = {f^j}}&{X_i^{{\text{O}}j} = Z_i^{{\text{O}}j}\dfrac{{x_i^{{\text{O}}j}}}{{z_i^{{\text{O}}j}}}}&{Y_i^{{\text{O}}j} = Z_i^{{\text{O}}j}\dfrac{{y_i^{{\text{O}}j}}}{{z_i^{{\text{O}}j}}}} 。\end{array} $ | (7) |
式中:
| $ p_i^{{\text{O}}j} = \left[ {\begin{array}{*{20}{c}} {x_i^{{\text{O}}j}} \\ {y_i^{{\text{O}}j}} \\ {z_i^{{\text{O}}j}} \end{array}} \right] = {\left[ {\begin{array}{*{20}{c}} {\dfrac{{u_i^j - u_0^j}}{{k_1^j}}{f_j}}&{\dfrac{{v_i^j - v_0^j}}{{k_2^j}}{f_j}}&{{f_j}} \end{array}} \right]^{\text{{{T}}}}}。$ | (8) |
起始坐标系记为
方法在一个校正周期内校正导航值
图3所示为误差计算过程中各参数的关系图。
|
图 3 参数关系图 Fig. 3 The relationship diagram of the parameters |
| $ {\boldsymbol{T}}_{\text{W}}^{\text{F}} = {\text{J}}\left( {n_{\text{W}}^{\text{F}}} \right),$ | (9) |
| $ {\boldsymbol{T}}_{\text{W}}^{{\text{O}}j} = {\boldsymbol{T}}_{\text{F}}^{{\text{O}}j}{\boldsymbol{T}}_{\text{W}}^{\text{F}},$ | (10) |
| $ P_i^{{\text{O}}j} = {\boldsymbol{T}}_{\text{W}}^{{\text{O}}j}P_i^{{\text{W}}j},$ | (11) |
| $ {E^j} = \sum\limits_i {{{\left( {L_i^j} \right)}^2}} = \sum\limits_i {\frac{{{{\left| {p_i^{{\text{O}}j} \times ( - P_i^{{\text{O}}j})} \right|}^2}}}{{{{\left| {p_i^{{\text{O}}j}} \right|}^2}}}}。$ | (12) |
式(12)中的
| $ {{{E^j} = \displaystyle\sum\limits_i {\dfrac{{{{\left( {Y_i^{{\text{O}}j}z_i^{{\text{O}}j} - Z_i^{{\text{O}}j}y_i^{{\text{O}}j}} \right)}^2} + {{\left( {X_i^{{\text{O}}j}z_i^{{\text{O}}j} - Z_i^{{\text{O}}j}x_i^{{\text{O}}j}} \right)}^2} + {{\left( {X_i^{{\text{O}}j}y_i^{{\text{O}}j} - Y_i^{{\text{O}}j}x_i^{{\text{O}}j}} \right)}^2}}}{{{{\left( {x_i^{{\text{O}}j}} \right)}^2} + {{\left( {y_i^{{\text{O}}j}} \right)}^2} + {{\left( {z_i^{{\text{O}}j}} \right)}^2}}}}}}。$ | (13) |
该公式求解多组三维点到直线距离的平方和,将定位特征理论位置
误差反向传播过程中,首先对式(13)中的
| $ {{eP_i^{{\text{O}}j} = \left[ {\begin{array}{*{20}{c}} {eX_i^{{\text{O}}j}} \\ {eY_i^{{\text{O}}j}} \\ {eZ_i^{{\text{O}}j}} \end{array}} \right] = {E^j}\left[ {\begin{array}{*{20}{c}} {2\dfrac{{z_i^{{\text{O}}j}\left( {X_i^{{\text{O}}j}z_i^{{\text{O}}j} - Z_i^{{\text{O}}j}x_i^{{\text{O}}j}} \right) + y_i^{{\text{O}}j}(X_i^{{\text{O}}j}y_i^{{\text{O}}j} - Y_i^{{\text{O}}j}x_i^{{\text{O}}j})}}{{{{\left( {x_i^{{\text{O}}j}} \right)}^2} + {{\left( {y_i^{{\text{O}}j}} \right)}^2} + {{\left( {z_i^{{\text{O}}j}} \right)}^2}}}} \\ {2\dfrac{{z_i^{{\text{O}}j}\left( {Y_i^{{\text{O}}j}z_i^{{\text{O}}j} - Z_i^{{\text{O}}j}y_i^{{\text{O}}j}} \right) - x_i^{{\text{O}}j}(X_i^{{\text{O}}j}y_i^{{\text{O}}j} - Y_i^{{\text{O}}j}x_i^{{\text{O}}j})}}{{{{\left( {x_i^{{\text{O}}j}} \right)}^2} + {{\left( {y_i^{{\text{O}}j}} \right)}^2} + {{\left( {z_i^{{\text{O}}j}} \right)}^2}}}} \\ {2\dfrac{{ - y_i^{{\text{O}}j}\left( {Y_i^{{\text{O}}j}z_i^{{\text{O}}j} - Z_i^{{\text{O}}j}y_i^{{\text{O}}j}} \right) - x_i^{{\text{O}}j}(X_i^{{\text{O}}j}z_i^{{\text{O}}j} - Z_i^{{\text{O}}j}x_i^{{\text{O}}j})}}{{{{\left( {x_i^{{\text{O}}j}} \right)}^2} + {{\left( {y_i^{{\text{O}}j}} \right)}^2} + {{\left( {z_i^{{\text{O}}j}} \right)}^2}}}} \end{array}} \right]}}。$ | (14) |
其次,对式(11)中
| $ e{\boldsymbol{T}}_{\text{W}}^{{\text{O}}j} = \sum\limits_i {\left[ {\begin{array}{*{20}{c}} {eX_i^{{\text{O}}j}} \\ {eY_i^{{\text{O}}j}} \\ {eZ_i^{{\text{O}}j}} \end{array}} \right]{{\left[ {\begin{array}{*{20}{c}} {X_i^{{\text{W}}j}} \\ {Y_i^{{\text{W}}j}} \\ {Z_i^{{\text{W}}j}} \\ 1 \end{array}} \right]}^{\text{{{T}}}}}}。$ | (15) |
然后,对式(10)中
| $ e{\boldsymbol{T}}_{\text{W}}^{{\text{F}}j} = {\left( {{\boldsymbol{T}}_{{\text{O}}j}^{\text{F}}} \right)^{\text{s}}}{\text{ }}e{\boldsymbol{T}}_{\text{W}}^{{\text{O}}j}。$ | (16) |
式中:上标
随后,对式(9)中
| $\left\{ \begin{array}{l}e{\alpha }^{j}=\text{sum}\left(e{{\boldsymbol{T}}}_{\text{W}}^{\text{F}j}\bigodot\mathop {{\boldsymbol{T}}_{\text{W}}^{\text{F}}}\limits^ \bullet\left(\alpha \right)\right),\\ e{\beta }^{j}=\text{sum}\left(e{{\boldsymbol{T}}}_{\text{W}}^{\text{F}j}\bigodot\mathop {{\boldsymbol{T}}_{\text{W}}^{\text{F}}}\limits^ \bullet\left(\beta \right)\right),\\ e{\gamma }^{j}=\text{sum}\left(e{{\boldsymbol{T}}}_{\text{W}}^{\text{F}j}\bigodot\mathop {{\boldsymbol{T}}_{\text{W}}^{\text{F}}}\limits^ \bullet\left(\gamma \right)\right)。\end{array} \right.$ | (17) |
式中:
| $ \left\{\begin{split} &{ \mathop {{\boldsymbol{T}}_{\text{W}}^{\text{F}}}\limits^ \bullet \left( \alpha \right) = \left[ \begin{array}{*{20}{c}} { -{\text{s}}\beta \cdot {\text{s}}\gamma \cdot {\text{c}}\alpha }&{ {\text{s}}\alpha \cdot {\text{s}}\gamma }&{ {\text{s}}\gamma \cdot {\text{c}}\alpha \cdot {\text{c}}\beta }&0 \\ { {\text{s}}\beta \cdot {\text{c}}\alpha \cdot {\text{c}}\gamma }&{ - {\text{s}}\alpha \cdot {\text{c}}\gamma }&{ - {\text{c}}\alpha \cdot {\text{c}}\beta \cdot {\text{c}}\gamma }&0 \\ { {\text{s}}\alpha \cdot {\text{s}}\beta }&{ {\text{c}}\alpha }&{ - {\text{s}}\alpha \cdot {\text{c}}\beta }&0 \end{array} \right]},\\ & {\mathop {{\boldsymbol{T}}_{\text{W}}^{\text{F}}}\limits^ \bullet \left( \beta \right) = \left[ \begin{array}{*{20}{c}} { - {\text{s}}\beta \cdot {\text{c}}\gamma - {\text{s}}\alpha \cdot {\text{s}}\gamma \cdot {\text{c}}\beta }&0&{{\text{c}}\beta \cdot{\text{c}}\gamma - {\text{s}}\alpha \cdot {\text{s}}\beta \cdot {\text{s}}\gamma }&0 \\ { - {\text{s}}\beta \cdot {\text{s}}\gamma + {\text{s}}\alpha \cdot {\text{c}}\beta \cdot {\text{c}}\gamma }&0&{{\text{s}}\gamma \cdot {\text{c}}\beta + {\text{s}}\alpha \cdot {\mathrm{s}}\beta \cdot {\text{c}}\gamma }&0 \\ { - {\text{c}}\alpha \cdot {\text{c}}\beta }&0&{ -{\text{s}}\beta \cdot {\text{c}}\alpha }&0 \end{array} \right]},\\ & {\mathop {{\boldsymbol{T}}_{\text{W}}^{\text{F}}}\limits^ \bullet \left( \gamma \right) = \left[ \begin{array}{*{20}{c}} { - {\text{s}}\gamma \cdot {\text{c}}\beta - {\text{s}}\alpha \cdot {\text{s}}\beta \cdot {\text{c}}\gamma }&{ - {\text{c}}\alpha \cdot {\text{c}}\gamma }&{ - {\text{s}}\beta \cdot {\text{s}}\gamma + {\text{s}}\alpha \cdot {\text{c}}\beta \cdot {\text{c}}\gamma }&0 \\ {{\text{c}}\beta \cdot {\text{c}}\gamma - {\text{s}}\alpha \cdot {\text{s}}\beta \cdot {\text{s}}\gamma }&{ - {\text{s}}\gamma \cdot {\text{c}}\alpha }&{{\text{s}}\beta \cdot \text{{\text{c}}}\gamma + {\text{s}}\alpha \cdot {\text{s}}\gamma \cdot {\text{c}}\beta }&0 \\ 0&0&0&0 \end{array} \right]}。\end{split}\right. $ | (18) |
相应的,对式(9)中
| $ \left\{\begin{gathered} e{X^j} = e{\boldsymbol{T}}_{\text{W}}^{{\text{F}}j}\left( {1,4} \right),\\ e{Y^j} = e{\boldsymbol{T}}_{\text{W}}^{{\text{F}}j}\left( {2,4} \right),\\ e{Z^j} = e{\boldsymbol{T}}_{\text{W}}^{{\text{F}}j}\left( {3,4} \right)。\\ \end{gathered}\right. $ | (19) |
之后,更新误差
| $ e{n^j} = \left[ {\begin{array}{*{20}{c}} {e{\alpha ^j}}&{e{\beta ^j}}&{e{\gamma ^j}}&{e{X^j}}&{e{Y^j}}&{e{Z^j}} \end{array}} \right]。$ | (20) |
最后,根据
为提高计算速度,本文方法针对CUDA平台进行了并行计算优化。由于单个标记计算过程中使用的线程数一般不超过16,GPU最小线程并行数为32,因此将GPU线程块的尺寸设为32,每个块负责2个标记的计算,各线程块的计算相互独立,所有标记同时计算。对于计算中的矩阵相乘,均采用一个GPU线程求解结果矩阵一个元素的策略。对于计算中结构较为复杂的矩阵特别设计了用于计算矩阵元素的核函数,即在GPU上运行的代码。
使用向量
| $\left\{ {\begin{gathered} para = {\left[ {s\alpha }\ \ {s\beta }\ \ {s\gamma }\ \ {c\alpha }\ \ {c\beta }\ \ {c\gamma }\ \ X\ \ Y\ \ Z\ \ 0\ \ 1\ \ { - 1} \right]_{1\times 12}} ,\\ Inde{x_1} = {\left[ {10,4,5,11,2,3,...} \right]_{1\times 36}},\\ Inde{x_2} = {\left[ {{\text{0,11,2,0,1,2,10,2,0,4,4,10,5,0,1,6,11,5,0,4}}} \right]_{1\times 20}}。\\[-1pt] \end{gathered}} \right. $ | (21) |
计算
为测试CNOEM的导航校正精度,设计了仿真试验。试验时AUV匀速前进,每次试验在世界坐标系中选取不同位置,生成标记物的角点及其在成像平面的像素坐标,并对坐标分量施加高斯噪声,同时生成基于导航位置计算的标记角点理论位置,如图4所示。
|
图 4 标记角点成像误差修正示例 Fig. 4 The example of correcting the imaging error for marker corner points |
其中,圆点为标记特征在视野中的实际成像位置;方形为初始化
|
|
表 1 相机主要参数 Tab.1 Main parameters of camera |
导航校正仿真试验中,对2个相机视野中标记角点成像的横纵坐标分别施加高斯噪声
|
|
表 2 仿真试验主要参数 Tab.2 Main parameters of simulation test |
将噪声标准差
|
|
表 3 导航校正仿真试验误差 Tab.3 The error of simulation test for navigation correction |
导航校正仿真试验结果表明,CNOEM的解算误差主要受成像噪声、AUV速度和标记距离3个条件的影响。方法位姿解算的误差随标记距离的增加、成像造成的增强以及AUV速度的增加而逐渐增大。在所有条件下CNOEM的误差均小于IPPE,平均误差仅为IPPE的21.7%。在标记距离较远且处于视野边缘的情况下,CNOEM的误差减小了一个数量级,例如在L=15 m、X=0.4L和Y=0.2L的条件下,CNOEM的平均误差仅为IPPE的10.3%。
对仿真试验中CNOEM的收敛时间进行测试,将
|
|
表 4 仿真试验算法收敛时间 Tab.4 The algorithm convergence time of simulation test |
导航校正仿真试验结果表明,本文算法的收敛速度主要受
在AUV导航
|
图 5 位姿解算仿真试验误差 Fig. 5 The simulation test error of position solution |
为测试CNOEM在2~12 m距离上的位姿解算精度,设计了水池试验。图6(a)所示是设计的水池试验,将AUV投放到水池中,拖动AUV在标记前以约0.1 m/s的速度往复运动,使用AUV的左侧相机收集视频数据。图6(b)为收集的图像之一,将世界坐标系定在标记的中心处如图1中
|
图 6 水池试验图 Fig. 6 Pool test image |
水池试验的主要参数如表5所示。
|
|
表 5 水池试验参数 Tab.5 Pool test parameters |
根据AUV往复运动中的一次逼近和一次远离数据分别计算相机坐标系在世界标系中的位置,对于解算结果,计算临近20个求解结果的标准差,在2~12 m的距离上,每隔0.25 m划分一个距离区间,将计算的标准差根据距离分配到各区间上,再对每个区间内的标准差求平均,将其作为误差制成折线图,逼近试验和远离试验的误差如图7所示。在2次试验中,CNOEM求解的结果表现出了更好的稳定性,求解结果的平均误差为IPPE的66%,对于9 m以上的标记平均误差为IPPE的48%。
|
图 7 水池试验误差对比 Fig. 7 The error comparison of pool test |
图8所示为位姿解算仿真试验与逼近试验的结果,可以看到2种方法的水池试验和仿真试验结果都具有较好一致性,可以认为本文仿真试验中使用的噪声模型和试验条件,能够较好模拟水下AUV靠近标记的过程。因此使用该噪声模型和仿真条件的导航校正仿真试验,其试验结果可较为真实的反应CNOEM的实际性能。
|
图 8 水池试验与仿真试验误差对比 Fig. 8 The error comparison of pool test and simulation test |
为测试CNOEM在冰下环境中的位姿解算精度,设计了外场试验。如图9所示将AUV投放到冰下,控制AUV靠近标记,识别标记角点获取试验数据。
|
图 9 外场试验图 Fig. 9 Outfield test image |
试验中受湖水浑浊度的限制,识别算法仅在2.5 m距离内可以稳定识别标记,且标记角点位置相比水池试验存在更大误差。试验中,将标准差划分区间的宽度设为0.1 m,2种方法的试验结果如图10所示,在更强噪声条件下,CNOEM表现出了更高的稳定性,位姿解算误差为IPPE的36.6%。
|
图 10 外场试验误差对比 Fig. 10 The error comparison of outfield test |
本文提出的一种基于Aruco标记冰下AUV的导航校正方法CNOEM,通过迭代减小视野中标记角点理论空间位置与实际成像投影线之间的距离,实现AUV导航位置的校正。该方法可以同时处理多帧图像中标记的位置信息,对于水下标记成像亮度不稳定,标记角点成像位置存在的误差,具有良好的适应性。在导航校正仿真试验中,其平均误差仅为常用算法IPPE的21.7%,当标记标记距离较远且处于视野边缘的情况下,CNOEM相较于IPPE的精度提升了一个数量级。在位姿解算仿真、水池和外场试验中,CNOEM的平均误差分别为IPPE的50.9%、66%和36.6%。试验结果表明,CNOEM相较于常用算法表现出了更好的精度。仿真和水池试验结果的一致性有效证明了本文仿真中噪声模型和试验条件的合理性。此外,CNOEM针对GPU平台进行并行优化,单次迭代的运行时间仅为CPU平台的0.8%,平均收敛时间为0.018 s,具有良好的实时性。
| [1] |
黄学涛, 贾福鑫, 肖泽鸿, 等. 自主水下航行器在极地的应用现状与关键技术[J]. 舰船科学技术, 2024, 46(16): 1-9. HUANG X T, JA F X, XIAO Z H, et al. The current status and key technologies of autonomous underwater vehicles in polar applications[J]. Ship Science and Technology, 2024, 46(16): 1-9. |
| [2] |
宋德勇, 刘浩. 极地自主水下机器人研究现状和关键技术[J]. 船电技术, 2020, 40(9): 36−39. SONG D Y, LIU H. Present status and key technology of autonomous underwater vehicle for investigation in polar region[J]. Marine Electric & Electronic Engineering, 2020, 40(9): 36−39. |
| [3] |
丁文东, 徐德, 刘希龙, 等. 移动机器人视觉里程计综述[J]. 自动化学报, 2018, 44(3): 385-400. DING W D, XU D, LIU X L, et, al. A survey on visual odometry for mobile robots[J]. Journal of Automatica Sinica, 2018, 44(3): 385-400. |
| [4] |
PAN G, LIANG A H, LIU J, et al. 3-D Positioning system based QR code and monocular vision[C]//2020 5th International Conference on Robotics and Automation Engineering (ICRAE). 2020.
|
| [5] |
M. F. ASWAD, P. H. Rusmin and R. N. Fatimah. Marker-based detection and pose estimation of custom pallet using camera and laser rangefinder[C]//2023 International Seminar on Intelligent Technology and Its Applications (ISITIA), Surabaya, Indonesia, 2023.
|
| [6] |
M. UZUNOGLU, R. B. ŞAHİN and M. MERCİMEK. Vision-based position estimation with markers for quadrotors[C]//2022 International Congress on Human-Computer Interaction, Optimization and Robotic Applications (HORA), Ankara, Turkey, 2022.
|
| [7] |
OLSON E. AprilTag: a robust and flexible visual fiducial system[C]//Robotics and Automation (ICRA), 2011 IEEE International Conference on. IEEE, 2011.
|
| [8] |
KE T, ROUMELIOTIS S I. An efficient algebraic solution to the perspective-three-point problem[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2017.
|
| [9] |
S. ZHUANG, Z. ZHAO, L. CAO, et al. A robust and fast method to the perspective-n-point problem for camera pose estimation[J]. Sensors Journal, 2023, 23(11): 11892−11906.
|
| [10] |
M. LOURAKIS, G. TERZAKIS. A globally optimal method for the PnP problem with MRP rotation parameterization[C]//2020 25th International Conference on Pattern Recognition (ICPR), Milan, Italy, 2021.
|
| [11] |
K. RIKU AND K. MATSUSHIMA. Solving PnP problem using improved sparrow search algorithm[C]//2024 International Symposium on Intelligent Signal Processing and Communication Systems (ISPACS), Kaohsiung, Taiwan, 2024.
|
| [12] |
GARRIDO-JURADO S , MU?OZ-SALINAS R , MADRID-CUEVAS F J , et al. Automatic generation and detection of highly reliable fiducial markers under occlusion[J]. Pattern Recognition, 2014, 47(6): 2280−2292.
|
| [13] |
COLLINS T , BARTOLI A. Infinitesimal plane-based pose estimation[J]. International Journal of Computer Vision, 2014, 109(3): 252−286.
|
2025, Vol. 47
