一种水下机器人单目视觉定位方法 |
|||||||
申请号 | CN201610207731.2 | 申请日 | 2016-04-05 | 公开(公告)号 | CN105890589A | 公开(公告)日 | 2016-08-24 |
申请人 | 西北工业大学; | 发明人 | 高剑; 孙笑笑; 严卫生; 张福斌; 夏飞; 崔荣鑫; | ||||
摘要 | 本 发明 提出一种 水 下 机器人 单目视觉 定位 方法,结合多普勒和 陀螺仪 测得水下机器人在载体系下的线速度和 角 速度 ,得到 状态方程 ;取4个已知在全局系下坐标的静止特征点,通过 坐标系 变化,得到特征点在图像系下的 位置 ,得到量测方程;已知k?1时刻的状态向量和其协方差矩阵,通过Unscented变换方法,求得Sigma点;再通过一次时间更新,估计k时刻的量测值;结合多普勒和陀螺仪测得航行器在载体系下的线速度和角速度,全局系下的特征点在图像系下的位置,可以得到k时刻量测值,经过量测更新,估计k时刻的状态向量,并得到k时刻状态向量的协方差矩阵。本发明突破了几何法中特征点的布置必须满足特定条件这一限制,弥补了EKF滤波只能估计位置信息这一 缺陷 ,能同时估计位置信息和欧拉角。 | ||||||
权利要求 | 1.一种水下机器人单目视觉定位方法,其特征在于:包括以下步骤: |
||||||
说明书全文 | 一种水下机器人单目视觉定位方法技术领域背景技术[0002] 随着海洋开发事业的迅速发展,水下施工和建设项目越来越多,对于水下作用手段的性能要求也越来越高。水下机器人只有获得到高精度的位置和姿态信息才能实现精确控制,水下定位是水下机器人发展需要解决的关键技术之一。长期以来,人们一直致力于水声定位技术的研究,在水下机器人中长距离的目标定位及导航等方面取得了很好的研究成果,但由于水声定位系统数据更新频率低,在近距离测量中声学系统的稳定性和精度还有待进一步提高。 [0004] 目前的水下机器人视觉定位主要采用几何法和扩展卡尔曼滤波(Extended Kalman Filter,EKF)算法。几何法通过机器人上安装的相机获取视觉目标上的n个特征点在图像系下的位置坐标,利用PnP(Perspective-n-Point)算法求解了机器人相对于目标位置和姿态并在室内水池进行了实验,实验结果证明了该方法的可行性。但PnP算法在求解过程中存在着多解和鲁棒性差等问题,为了得到唯一解,特征点的布置必须满足特定条件,因此限制的其使用范围。扩展卡尔曼滤波(Extended Kalman Filter,EKF)算法估计出了机器人相对于目标的位置,利用获得位置信息进行水下机器人的运动控制,该方法已完成了水下物体打捞、水下动力定位和水下电缆插拔等实验并取得了成功。但目前利用EKF滤波的方法只用来估计机器人的位置,并没有考虑机器人的欧拉角,导致方法在实际使用中不能够有效用于水下机器人的控制。 发明内容[0005] 为了避免现有技术的不足之处,本发明提出非线性无迹卡尔曼滤波(Unscented Kalman Filter,UKF)的方法联合估计水下机器人的状态和参数。 [0006] 根据水下机器人数学模型,结合多普勒和陀螺仪测得水下机器人在载体系下的线速度和角速度,得到状态方程;取4个已知在全局系下坐标的静止特征点,在水下机器人动力学模型的基础上,通过坐标系变化,得到可知全局系下的特征点在图像系下的位置,得到量测方程;已知k-1时刻的状态向量和其协方差矩阵,通过Unscented变换方法,求得Sigma点;再通过一次时间更新,估计k时刻的量测值;结合多普勒和陀螺仪测得航行器在载体系下的线速度和角速度,全局系下的特征点在图像系下的位置,可以得到k时刻量测值,经过量测更新,估计k时刻的状态向量,并得到k时刻状态向量的协方差矩阵。 [0007] 本发明的技术方案为: [0008] 所述一种水下机器人单目视觉定位方法,其特征在于:包括以下步骤: [0009] 步骤1:设置计算时刻k=0,并设置水下机器人在k=0时刻的系统状态向量初值:x(k)=[x(k) y(k) z(k) φ(k) θ(k) ψ(k) u(k) v(k) w(k) p(k) q(k) r(k)]T其中[x(k) y(k) z(k)]T是水下机器人在全局坐标系下的位置,[φ(k) θ(k) ψ(k)]T是水下机器人的欧拉角, 是水下机器人在载体坐标系下的线速度以及角速度, 为n维实数域; [0010] 并根据设置的水下机器人在k=0时刻的系统状态向量初值,计算水下机器人在k=0时刻的状态方差矩阵 xi(0)为系统状态向量中的元素; [0011] 步骤2:根据k-1时刻得到的系统状态向量量测值 和后验状态方差矩阵P(k-1),结合k时刻多普勒和陀螺仪测得水下机器人在载体坐标系下的线速度和角速度,估计k时刻水下机器人的系统状态向量量测值 和后验状态方差矩阵P(k): [0012] 步骤2.1:计算Sigma点集χ(k-1): [0013] [0014] [0015] [0016] 其中n为系统状态向量的维数,χi(k-1)为点集χ(k-1)的第i列,Pi(k-1)为P(k-1)的第i列,λ是UT变换参数; [0017] 步骤2.2:将步骤2.1得到的Sigma点集χ(k-1)代入系统状态项得到变换后的Sigma点集χ(k/k-1): [0018] [0019] 其中χi(k/k-1)为点集χ(k/k-1)的第i列,系统状态项为: [0020] [0021] 其中T是控制周期,R为载体坐标系转换到全局坐标系下的坐标转换矩阵; [0022] 步骤2.3:根据步骤2.2得到的变换后的Sigma点集χ(k/k-1),进行均值加权得到系统状态向量的预测均值 [0023] [0024] 其中Wi是UT变换权值;进行协方差加权得到系统状态向量的预测方差[0025] [0026] 其中 是系统噪声的协方差矩阵; [0027] 步骤2.4:将步骤2.2得到的变换后的Sigma点集χ(k/k-1)代入量测项进行非线性变换: [0028] zi(k/k-1)=h[χi(k/k-1),k/k-1],i=0,…,2n [0029] 其中量测项为: [0030] h[x(k),k]=[[mj(k) nj(k)]×4 u(k) v(k) w(k) p(k) q(k) r(k)]T(mj(k),nj(k))为第j个特征点在图像坐标系下的坐标,j=1,2,3,4: [0031] [0032] 为第j个特征点在全局坐标系下的坐标,fx和fy分别是相机的两个焦距,相机坐标系与水下机器人的载体坐标系重合;并加权求和计算得到系统量测量的预测值: [0033] [0034] 步骤2.5:计算更新的状态方差: [0035] [0036] [0037] 其中 是量测噪声的协方差矩阵;计算增益矩阵: [0038] [0039] 估计k时刻水下机器人的系统状态向量量测值 为: [0040] [0041] 其中 为量测噪声;k时刻水下机器人的后验状态方差矩阵P(k)为: [0042] [0043] 有益效果 [0044] 本发明与几何法和EKF滤波的方法相比,突破了几何法中特征点的布置必须满足特定条件这一限制,弥补了EKF滤波只能估计位置信息这一缺陷,能同时估计位置信息和欧拉角,大大拓展了使用范围。附图说明 [0045] 本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中: [0046] 图1:视觉导航系统示意图 [0047] 图2:机器人在全局系下的运动轨迹 [0049] 图4:实际位姿(黑)和估计位姿(红) [0050] 图5:实际位姿与UKF估计位姿的误差 具体实施方式[0051] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。 [0052] 本实施例基于非线性无迹卡尔曼滤波(Unscented Kalman Filter,UKF)方法的原理是根据水下机器人数学模型,结合多普勒和陀螺仪测得水下机器人在载体系下的线速度和角速度,得到状态方程;取4个已知在全局系下坐标的静止特征点,在水下机器人动力学模型的基础上,通过坐标系变化,得到可知全局系下的特征点在图像系下的位置,得到量测方程;已知k-1时刻的状态向量和其协方差矩阵,通过Unscented变换方法,求得Sigma点;再通过一次时间更新,估计k时刻的量测值;结合多普勒和陀螺仪测得航行器在载体系下的线速度和角速度,全局系下的特征点在图像系下的位置,可以得到k时刻量测值,经过量测更新,估计k时刻的状态向量,并得到k时刻状态向量的协方差矩阵。 [0053] 具体步骤为: [0054] 步骤1:设置计算时刻k=0,并设置水下机器人在k=0时刻的系统状态向量初值:x(k)=[x(k) y(k) z(k) φ(k) θ(k) ψ(k) u(k) v(k) w(k) p(k) q(k) r(k)]T其中[x(k) y(k) z(k)]T是水下机器人在全局坐标系下的位置,[φ(k) θ(k) ψ(k)]T是水下机器人的欧拉角, 是水下机器人在载体坐标系下的线速度以及角速度, 为n维实数域; [0055] 并根据设置的水下机器人在k=0时刻的系统状态向量初值,计算水下机器人在k=0时刻的状态方差矩阵 xi(0)为系统状态向量中的元素; [0056] 步骤2:根据k-1时刻得到的系统状态向量量测值 和后验状态方差矩阵P(k-1),结合k时刻多普勒和陀螺仪测得水下机器人在载体坐标系下的线速度和角速度,估计k时刻水下机器人的系统状态向量量测值 和后验状态方差矩阵P(k): [0057] 步骤2.1:计算Sigma点集χ(k-1): [0058] [0059] [0060] [0061] 其中n为系统状态向量的维数,χi(k-1)为点集χ(k-1)的第i列,Pi(k-1)为P(k-1)的第i列,λ是UT变换参数; [0062] 步骤2.2:将步骤2.1得到的Sigma点集χ(k-1)代入系统状态项得到变换后的Sigma点集χ(k/k-1): [0063] [0064] 其中χi(k/k-1)为点集χ(k/k-1)的第i列,系统状态项为: [0065] [0066] 其中T是控制周期,R为载体坐标系转换到全局坐标系下的坐标转换矩阵; [0067] 步骤2.3:根据步骤2.2得到的变换后的Sigma点集χ(k/k-1),进行均值加权得到系统状态向量的预测均值 [0068] [0069] 其中Wi是UT变换权值;进行协方差加权得到系统状态向量的预测方差[0070] [0071] 其中 是系统噪声的协方差矩阵; [0072] 步骤2.4:将步骤2.2得到的变换后的Sigma点集χ(k/k-1)代入量测项进行非线性变换: [0073] zi(k/k-1)=h[χi(k/k-1),k/k-1],i=0,…,2n [0074] 其中量测项为: [0075] h[x(k),k]=[[mj(k) nj(k)]×4 u(k) v(k) w(k) p(k) q(k) r(k)]T(mj(k),nj(k))为第j个特征点在图像坐标系下的坐标,j=1,2,3,4: [0076] [0077] 为第j个特征点在全局坐标系下的坐标,fx和fy分别是相机的两个焦距,相机坐标系与水下机器人的载体坐标系重合;并加权求和计算得到系统量测量的预测值: [0078] [0079] 步骤2.5:计算更新的状态方差: [0080] [0081] [0082] 其中 是量测噪声的协方差矩阵;计算增益矩阵: [0083] [0084] 估计k时刻水下机器人的系统状态向量量测值 为: [0085] [0086] 其中 为量测噪声;k时刻水下机器人的后验状态方差矩阵P(k)为: [0087] [0088] 具体到本实施例 [0089] 当k=0时,设置初值 [0090] [0091] P(0)=diag(10,10,10,10π/180,10π/180,10π/180,1,1,1,π/180,π/180,π/180)[0092] 以根据k-1=0时刻得到的系统状态向量量测值 和后验状态方差矩阵P(k-1),结合k时刻多普勒和陀螺仪测得水下机器人在载体坐标系下的线速度和角速度,估计k=1时刻水下机器人的系统状态向量量测值 和后验状态方差矩阵P(k): [0093] 步骤2.1:计算Sigma点集χ(k-1): [0094] [0095] [0096] [0097] 其中n=12,λ是UT变换参数,λ=-12+1.2000e-05;得到Sigma点集[0098] [0099] 步骤2.2:将步骤2.1得到的Sigma点集χ(k-1)代入系统状态项得到变换后的Sigma点集χ(k/k-1): [0100] [0101] 其中χi(k/k-1)为点集χ(k/k-1)的第i列,系统状态项为: [0102] [0103] 其中T是控制周期,R为载体坐标系转换到全局坐标系下的坐标转换矩阵。 [0104] 结合多普勒和惯性测量单元测得水下机器人在载体坐标系下的线速度和角速度,取系统噪声 可得状态方程 [0105] [0106] 本实施例T=0.01,得到 [0107] [0108] 本实施例得到变换后的Sigma点集为: [0109] [0110] 步骤2.3:根据步骤2.2得到的变换后的Sigma点集χ(k/k-1),进行均值加权得到系统状态向量的预测均值 [0111] [0112] 其中Wi是UT变换权值;本实施例中 [0113] [0114] 进行协方差加权得到系统状态向量的预测方差 [0115] [0116] 其中 是系统噪声的协方差矩阵,取 [0117] [0118] 得到 [0119] [0120] 步骤2.4:将步骤2.2得到的变换后的Sigma点集χ(k/k-1)代入量测项进行非线性变换: [0121] zi(k/k-1)=h[χi(k/k-1),k/k-1],i=0,…,2n [0122] 其中量测项为: [0123] h[x(k),k]=[[mj(k) nj(k)]×4 u(k) v(k) w(k) p(k) q(k) r(k)]T(mj(k),nj(k))为第j个特征点在图像坐标系下的坐标,j=1,2,3,4:取4个已知在工作空间的静特征点的全局坐标系下坐标,在水下机器人动力学模型的基础上,通过坐标系变化,得到可知全局坐标系下的特征点在图像坐标系下的位置 [0124] [0125] 为第j个特征点在全局坐标系下的坐标,fx和fy分别是相机的两个焦距,相机坐标系与水下机器人的载体坐标系重合;4个已知在全局坐标系下静止特征点的坐标O1(0.25 0.25 0)、O2(0.25 -0.25 0)、O3(-0.25 -0.25 0)和O4(-0.25 0.25 0),单位为m,相机的内参数fx=1000Pixel,fy=1000Pixel,图像坐标系的原点就是图像的中心。特征点在图像坐标系下的位置为 [0126] [0127] 得到非线性变换后的: [0128] [0129] 并加权求和计算得到系统量测量的预测值: [0130] [0131] 得到 [0132] [0133] 步骤2.5:计算更新的状态方差: [0134] [0135] [0136] 其中 是量测噪声的协方差矩阵;得到 [0137] [0138] [0139] 计算增益矩阵: [0140] [0141] 得到 [0142] [0143] 估计k时刻水下机器人的系统状态向量量测值 为: [0144] [0145] 其中 为量测噪声; [0146] [0147] 得到 [0148] [0149] k时刻水下机器人的后验状态方差矩阵P(k)为: [0150] [0151] 得到 [0152] [0153] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。 |