中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

印刷網(wǎng)站建設(shè)建立網(wǎng)站怎么搞

印刷網(wǎng)站建設(shè),建立網(wǎng)站怎么搞,網(wǎng)站建設(shè)任務(wù)書,網(wǎng)頁設(shè)計素材源文件多傳感器融合定位十一-基于濾波的融合方法Ⅱ1. 編碼器運動模型及標(biāo)定1.1 編碼器基礎(chǔ)知識1.2 編碼器運動模型1.2.1 旋轉(zhuǎn)半徑求解1.2.2 角速度求解1.2.3 線速度求解1.2.4 位姿求解1.3 編碼器的標(biāo)定1.3.1 輪子半徑標(biāo)定1.3.2 輪子與底盤中心距離標(biāo)定2. 融合編碼器的濾波方法2.1 核心…

多傳感器融合定位十一-基于濾波的融合方法Ⅱ

  • 1. 編碼器運動模型及標(biāo)定
    • 1.1 編碼器基礎(chǔ)知識
    • 1.2 編碼器運動模型
      • 1.2.1 旋轉(zhuǎn)半徑求解
      • 1.2.2 角速度求解
      • 1.2.3 線速度求解
      • 1.2.4 位姿求解
    • 1.3 編碼器的標(biāo)定
      • 1.3.1 輪子半徑標(biāo)定
      • 1.3.2 輪子與底盤中心距離標(biāo)定
  • 2. 融合編碼器的濾波方法
    • 2.1 核心思路
    • 2.2 觀測量定義
    • 2.3 觀測方程推導(dǎo)
  • 3. 融合運動約束的濾波方法
  • 4. 融合點云特征的濾波方法
    • 4.1 整體思路
    • 4.2 濾波模型
    • 4.3 位姿更新
    • 4.4 相似工作

Reference:

  1. 深藍(lán)學(xué)院-多傳感器融合
  2. 多傳感器融合定位理論基礎(chǔ)

文章跳轉(zhuǎn):

  1. 多傳感器融合定位一-3D激光里程計其一:ICP
  2. 多傳感器融合定位二-3D激光里程計其二:NDT
  3. 多傳感器融合定位三-3D激光里程計其三:點云畸變補(bǔ)償
  4. 多傳感器融合定位四-3D激光里程計其四:點云線面特征提取
  5. 多傳感器融合定位五-點云地圖構(gòu)建及定位
  6. 多傳感器融合定位六-慣性導(dǎo)航原理及誤差分析
  7. 多傳感器融合定位七-慣性導(dǎo)航解算及誤差分析其一
  8. 多傳感器融合定位八-慣性導(dǎo)航解算及誤差分析其二
  9. 多傳感器融合定位九-基于濾波的融合方法Ⅰ其一
  10. 多傳感器融合定位十-基于濾波的融合方法Ⅰ其二
  11. 多傳感器融合定位十一-基于濾波的融合方法Ⅱ
  12. 多傳感器融合定位十二-基于圖優(yōu)化的建圖方法其一
  13. 多傳感器融合定位十三-基于圖優(yōu)化的建圖方法其二
  14. 多傳感器融合定位十四-基于圖優(yōu)化的定位方法
  15. 多傳感器融合定位十五-多傳感器時空標(biāo)定(綜述)

1. 編碼器運動模型及標(biāo)定

1.1 編碼器基礎(chǔ)知識

在這里插入圖片描述
編碼器感應(yīng)輪子的旋轉(zhuǎn),并在旋轉(zhuǎn)時輸出脈沖,脈沖數(shù)與轉(zhuǎn)過的角度呈線性比例關(guān)系

脈沖對應(yīng)的是角度增量,有時也用增量除以時間,轉(zhuǎn)成輪子轉(zhuǎn)動的角速度輸出。

需要注意的是,編碼器只是各種轉(zhuǎn)角測量方式中的一種,其他還有輪速計、霍爾傳感器等,本課程以編碼器為例子講解模型,但同樣適用于其他形式的傳感器。

編碼器安裝方式有單輪、雙輪、三輪,本課程推導(dǎo)僅圍繞雙輪差分模型進(jìn)行展開。
該模型中,需要用到以下變量:

  • rL\boldsymbol{r}_LrL?:左輪半徑
  • rR\boldsymbol{r}_RrR?:右輪半徑
  • d\boldsymbolvxwlu0yf4d:輪子離底盤中心的距離
  • ωL\boldsymbol{\omega}_LωL?:左輪自轉(zhuǎn)角速度
  • ωR\boldsymbol{\omega_R}ωR?:右輪自轉(zhuǎn)角速度
  • vL\boldsymbol{v}_LvL?:左輪線速度
  • vR\boldsymbol{v}_RvR?:右輪線速度

實際使用時,標(biāo)定完成后, rL\boldsymbol{r}_LrL?、rR\boldsymbol{r}_RrR?、d\boldsymbolvxwlu0yf4d 為固定參數(shù), ωL\boldsymbol{\omega}_LωL?ωR\boldsymbol{\omega}_RωR? 為測量值,而 vL\boldsymbol{v}_LvL?vR\boldsymbol{v}_RvR? 可以通過下式計算得到:
vL=ωLrLvR=ωRrR\begin{aligned} \boldsymbol{v}_L & =\boldsymbol{\omega}_L \boldsymbol{r}_L \\ \boldsymbol{v}_R & =\boldsymbol{\omega}_R \boldsymbol{r}_R \end{aligned} vL?vR??=ωL?rL?=ωR?rR??

1.2 編碼器運動模型

在這里插入圖片描述

運動模型的作用是,使用前述已知量,求解以下變量:
ω\boldsymbol{\omega}ω : 底盤中心的角速度
v\boldsymbol{v}v : 底盤中心的線速度
r\boldsymbol{r}r : 底盤中心圓弧運動旋轉(zhuǎn)半徑

1.2.1 旋轉(zhuǎn)半徑求解

雙輪差分模型下,左右輪圓弧運動的角速度相等,且等于底盤中心圓弧運動的角速度(兩個輪子的自轉(zhuǎn)角速度是相同的),因此有:
ω=vLr?d=vRr+d\boldsymbol{\omega}=\frac{\boldsymbol{v}_L}{\boldsymbol{r}-\boldsymbolvxwlu0yf4}=\frac{\boldsymbol{v}_R}{\boldsymbol{r}+\boldsymbolvxwlu0yf4} ω=r?dvL??=r+dvR??由此可以得出:
vL(r+d)=vR(r?d)\boldsymbol{v}_L(\boldsymbol{r}+\boldsymbolvxwlu0yf4)=\boldsymbol{v}_R(\boldsymbol{r}-\boldsymbolvxwlu0yf4) vL?(r+d)=vR?(r?d)移項可得:
(vR?vL)r=(vR+vL)d\left(\boldsymbol{v}_R-\boldsymbol{v}_L\right) \boldsymbol{r}=\left(\boldsymbol{v}_R+\boldsymbol{v}_L\right) \boldsymbolvxwlu0yf4 (vR??vL?)r=(vR?+vL?)d從而可以得到:
r=vR+vLvR?vLd\boldsymbol{r}=\frac{\boldsymbol{v}_R+\boldsymbol{v}_L}{\boldsymbol{v}_R-\boldsymbol{v}_L} \boldsymbolvxwlu0yf4 r=vR??vL?vR?+vL??d

1.2.2 角速度求解

把旋轉(zhuǎn)半徑的求解結(jié)果,代入角速度公式,即可得到:
ω=vLvR+vLvR?vLd?d=vR?vL2d\boldsymbol{\omega}=\frac{\boldsymbol{v}_L}{\frac{\boldsymbol{v}_R+\boldsymbol{v}_L}{\boldsymbol{v}_R-\boldsymbol{v}_L} \boldsymbolvxwlu0yf4-\boldsymbolvxwlu0yf4}=\frac{\boldsymbol{v}_R-\boldsymbol{v}_L}{2 \boldsymbolvxwlu0yf4} ω=vR??vL?vR?+vL??d?dvL??=2dvR??vL??

1.2.3 線速度求解

利用旋轉(zhuǎn)角速度和旋轉(zhuǎn)半徑的結(jié)果,可以直接得到線速度:
v=ωr=vR?vL2dvR+vLvR?vLd=vR+vL2\boldsymbol{v}=\boldsymbol{\omega} \boldsymbol{r}=\frac{\boldsymbol{v}_R-\boldsymbol{v}_L}{2 \boldsymbolvxwlu0yf4} \frac{\boldsymbol{v}_R+\boldsymbol{v}_L}{\boldsymbol{v}_R-\boldsymbol{v}_L} \boldsymbolvxwlu0yf4=\frac{\boldsymbol{v}_R+\boldsymbol{v}_L}{2} v=ωr=2dvR??vL??vR??vL?vR?+vL??d=2vR?+vL??

1.2.4 位姿求解

在這里插入圖片描述
假設(shè) xk,yk,θk\boldsymbol{x}_k, \boldsymbol{y}_k, \boldsymbol{\theta}_kxk?,yk?,θk? 為當(dāng)前時刻位姿,xk?1,yk?1,θk?1\boldsymbol{x}_{k-1}, \boldsymbol{y}_{k-1}, \boldsymbol{\theta}_{k-1}xk?1?,yk?1?,θk?1? 為上一時刻的位姿,則有:
θk=θk?1+ωΔtxk=xk?1+vΔtcos?(θk?1)yk=yk?1+vΔtsin?(θk?1)\begin{aligned} & \boldsymbol{\theta}_k=\boldsymbol{\theta}_{k-1}+\boldsymbol{\omega} \Delta t \\ & \boldsymbol{x}_k=\boldsymbol{x}_{k-1}+\boldsymbol{v} \Delta t \cos \left(\boldsymbol{\theta}_{\boldsymbol{k - 1}}\right) \\ & \boldsymbol{y}_k=\boldsymbol{y}_{k-1}+\boldsymbol{v} \Delta t \sin \left(\boldsymbol{\theta}_{\boldsymbol{k}-1}\right) \end{aligned} ?θk?=θk?1?+ωΔtxk?=xk?1?+vΔtcos(θk?1?)yk?=yk?1?+vΔtsin(θk?1?)?其中:
Δt=tk?tk?1\Delta t=t_k-t_{k-1} Δt=tk??tk?1?

1.3 編碼器的標(biāo)定

標(biāo)定可以理解為運動模型求解過程的反向過程,具體是指在已知底盤中心線速度、角速度的情況下,求解輪子半徑、輪子離底盤中心距離等。
已知量:
vvv:底盤中心的線速度
ω\omegaω:底盤中心的角速度
待求解量:
rL\boldsymbol{r}_LrL?:左輪半徑
rR\boldsymbol{r}_RrR?:右輪半徑
d\boldsymbolvxwlu0yf4d:輪子離底盤中心的距離
實際標(biāo)定時,線速度、角速度由其他傳感器提供(比如雷達(dá)點云和地圖匹配),且為了簡化模型,認(rèn)為雷達(dá)裝在底盤中心正上方。(這里雷達(dá)最好的方法是先建好一個點云地圖,然后在點云地圖里面匹配,然后拿它做觀測,去提供線速度和角速度的結(jié)果,而不要用激光里程計-----里程計本身就是有累計誤差的)

1.3.1 輪子半徑標(biāo)定

由于速度的求解公式為:
v=vR+vL2=ωRrR+ωLrL2\boldsymbol{v}=\frac{\boldsymbol{v}_R+\boldsymbol{v}_L}{2}=\frac{\boldsymbol{\omega}_R \boldsymbol{r}_R+\boldsymbol{\omega}_L \boldsymbol{r}_L}{2} v=2vR?+vL??=2ωR?rR?+ωL?rL??它可以重新寫為:
[ωRωL][rRrL]=2v\left[\begin{array}{ll} \boldsymbol{\omega}_R & \boldsymbol{\omega}_L \end{array}\right]\left[\begin{array}{l} \boldsymbol{r}_R \\ \boldsymbol{r}_L \end{array}\right]=2 \boldsymbol{v} [ωR??ωL??][rR?rL??]=2v當(dāng)有多組測量值時,可以構(gòu)成如下方程組:
[ωR0ωL0ωR1ωL1??ωRNωLN][rRrL]=[2v02v1?2vN]\left[\begin{array}{cc} \boldsymbol{\omega}_{R 0} & \boldsymbol{\omega}_{L 0} \\ \boldsymbol{\omega}_{R 1} & \boldsymbol{\omega}_{L 1} \\ \vdots & \vdots \\ \boldsymbol{\omega}_{R N} & \boldsymbol{\omega}_{L N} \end{array}\right]\left[\begin{array}{l} \boldsymbol{r}_R \\ \boldsymbol{r}_L \end{array}\right]=\left[\begin{array}{c} 2 \boldsymbol{v}_0 \\ 2 \boldsymbol{v}_1 \\ \vdots \\ 2 \boldsymbol{v}_N \end{array}\right] ?ωR0?ωR1??ωRN??ωL0?ωL1??ωLN???[rR?rL??]=?2v0?2v1??2vN???這是典型的最小二乘問題,可用最小二乘標(biāo)準(zhǔn)形式計算。

1.3.2 輪子與底盤中心距離標(biāo)定

由于角速度的求解公式為:
ω=vR?vL2d\boldsymbol{\omega}=\frac{\boldsymbol{v}_R-\boldsymbol{v_L}}{2 \boldsymbolvxwlu0yf4} ω=2dvR??vL??在經(jīng)過輪子半徑標(biāo)定之后,分子上的兩項可認(rèn)為是已知量,因此可以得到:
d=vR?vL2ω\boldsymbolvxwlu0yf4=\frac{\boldsymbol{v}_R-\boldsymbol{v}_L}{2 \boldsymbol{\omega}} d=2ωvR??vL??雖然可直接求解,但是為了抑制噪聲帶來的影響,因多次采樣計算取平均。

2. 融合編碼器的濾波方法

2.1 核心思路

在上一節(jié)課濾波模型的基礎(chǔ)上增加編碼器進(jìn)行融合,有一種非常簡單的方法,即使用編碼器解算的速度作為觀測量,加入原來模型的觀測方程中,而其他環(huán)節(jié)保持不變。

2.2 觀測量定義

編碼器提供的是載體系下的速度觀測,在前 (x)(\mathrm{x})(x)-左 (y)(\mathrm{y})(y)-上(z)坐標(biāo)系的定義下,x\mathrm{x}x 方向的速度分量是已知的 vxb=vm\boldsymbol{v}_x^b=\boldsymbol{v}_mvxb?=vm?。 另外,在以車作為載體的情況下,由于車的側(cè)向和天向沒有運動,因此又有 vyb=0\boldsymbol{v}_y^b=0vyb?=0vzb=0\boldsymbol{v}_z^b=0vzb?=0。
基于此,我們可以認(rèn)為 bbb 系 3 個維度的速度分量都是可觀測的。

2.3 觀測方程推導(dǎo)

由于導(dǎo)航解算得到的是 www 系下得速度,而速度觀測是 bbb 系下得,因此需要推導(dǎo)二者之間的誤差關(guān)系,才能得到相應(yīng)的觀測方程。
推導(dǎo)方法仍按照第6講的固定套路進(jìn)行。

  1. 寫出不考慮誤差時的方程:
    vb=Rbwvw\boldsymbol{v}^b=\boldsymbol{R}_{b w} \boldsymbol{v}^w vb=Rbw?vw
  2. 寫出考慮誤差時的方程:
    v~b=R~bwv~w\tilde{\boldsymbol{v}}^b=\tilde{\boldsymbol{R}}_{b w} \tilde{\boldsymbol{v}}^w v~b=R~bw?v~w
  3. 寫出真實值與理想值之間的關(guān)系:
    v~b=vb+δvbv~w=vw+δvwR~bw=R~wbT=(Rwb(I+[δθ]×))T=(I?[δθ]×)Rbw\begin{aligned} & \tilde{\boldsymbol{v}}^b=\boldsymbol{v}^b+\delta \boldsymbol{v}^b \\ & \tilde{\boldsymbol{v}}^w=\boldsymbol{v}^w+\delta \boldsymbol{v}^w \\ & \tilde{\boldsymbol{R}}_{b w}=\tilde{\boldsymbol{R}}_{w b}^T=\left(\boldsymbol{R}_{w b}\left(\boldsymbol{I}+[\delta \boldsymbol{\theta}]_{\times}\right)\right)^T \\ & =\left(\boldsymbol{I}-[\delta \boldsymbol{\theta}]_{\times}\right) \boldsymbol{R}_{b w} \end{aligned} ?v~b=vb+δvbv~w=vw+δvwR~bw?=R~wbT?=(Rwb?(I+[δθ]×?))T=(I?[δθ]×?)Rbw??
  4. 把3)中的關(guān)系帶入2)式:
    vb+δvb=(I?[δθ]×)Rbw(vw+δvw)\boldsymbol{v}^b+\delta \boldsymbol{v}^b=\left(\boldsymbol{I}-[\delta \boldsymbol{\theta}]_{\times}\right) \boldsymbol{R}_{b w}\left(\boldsymbol{v}^w+\delta \boldsymbol{v}^w\right) vb+δvb=(I?[δθ]×?)Rbw?(vw+δvw)
  5. 把1)中的關(guān)系帶入4)式:
    Rbwvw+δvb=(I?[δθ]×)Rbw(vw+δvw)\boldsymbol{R}_{b w} \boldsymbol{v}^w+\delta \boldsymbol{v}^b=\left(\boldsymbol{I}-[\delta \boldsymbol{\theta}]_{\times}\right) \boldsymbol{R}_{b w}\left(\boldsymbol{v}^w+\delta \boldsymbol{v}^w\right) Rbw?vw+δvb=(I?[δθ]×?)Rbw?(vw+δvw)
  6. 化簡方程:
    δvb=Rbwδvw?[δθ]×Rbwvw=Rbwδvw?[δθ]×vb=Rbwδvw+[vb]×δθ\begin{aligned} \delta \boldsymbol{v}^b & =\boldsymbol{R}_{b w} \delta \boldsymbol{v}^w-[\delta \boldsymbol{\theta}]_{\times} \boldsymbol{R}_{b w} \boldsymbol{v}^w \\ & =\boldsymbol{R}_{b w} \delta \boldsymbol{v}^w-[\delta \boldsymbol{\theta}]_{\times} \boldsymbol{v}^b \\ & =\boldsymbol{R}_{b w} \delta \boldsymbol{v}^w+\left[\boldsymbol{v}^b\right]_{\times} \delta \boldsymbol{\theta} \end{aligned} δvb?=Rbw?δvw?[δθ]×?Rbw?vw=Rbw?δvw?[δθ]×?vb=Rbw?δvw+[vb]×?δθ?

根據(jù)前一章內(nèi)容,狀態(tài)量為
δx=[δpδvδθδbaδbω]\delta \boldsymbol{x}=\left[\begin{array}{c} \delta \boldsymbol{p} \\ \delta \boldsymbol{v} \\ \delta \boldsymbol{\theta} \\ \delta \boldsymbol_a \\ \delta \boldsymbol_\omega \end{array}\right] δx=?δpδvδθδba?δbω???而融合編碼器以后,觀測量變?yōu)?br /> y=[δp ̄δv ̄bδθ ̄]\boldsymbol{y}=\left[\begin{array}{c} \delta \overline{\boldsymbol{p}} \\ \delta \overline{\boldsymbol{v}}^b \\ \delta \overline{\boldsymbol{\theta}} \end{array}\right] y=?δp?δvbδθ??其中 δv ̄b\delta \overline{\boldsymbol{v}}^bδvb 的觀測值可以通過下式獲得
δv ̄b=v~b?vb=R~bwv~w?[vm00]\delta \overline{\boldsymbol{v}}_b=\tilde{\boldsymbol{v}}^b-\boldsymbol{v}^b=\tilde{\boldsymbol{R}}_{b w} \tilde{\boldsymbol{v}}^w-\left[\begin{array}{c} \boldsymbol{v}_m \\ 0 \\ 0 \end{array}\right] δvb?=v~b?vb=R~bw?v~w??vm?00??此時的觀測方程 y=Gtδx+Ctn\boldsymbol{y}=\boldsymbol{G}_t \delta \boldsymbol{x}+\boldsymbol{C}_t \boldsymbol{n}y=Gt?δx+Ct?n 中的各變量應(yīng)重新寫為
Gt=[I300000Rbw[vb]×0000I300]Ct=[I3000I3000I3]n=[nδpˉxnδpˉynδpˉznδvˉxbnδvˉybnδvˉzbnδθˉxnδθˉynδθˉz]T\begin{aligned} & \boldsymbol{G}_t=\left[\begin{array}{ccccc} \boldsymbol{I}_3 & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \boldsymbol{R}_{b w} & {\left[\boldsymbol{v}^b\right]_{\times}} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \boldsymbol{I}_3 & \mathbf{0} & \mathbf{0} \end{array}\right] \\ & \boldsymbol{C}_t=\left[\begin{array}{ccc} \boldsymbol{I}_3 & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \boldsymbol{I}_3 & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \boldsymbol{I}_3 \end{array}\right] \\ & \boldsymbol{n}=\left[\begin{array}{lllllllll} n_{\delta \bar{p}_x} & n_{\delta \bar{p}_y} & n_{\delta \bar{p}_z} & n_{\delta \bar{v}_x^b} & n_{\delta \bar{v}_y^b} & n_{\delta \bar{v}_z^b} & n_{\delta \bar{\theta}_x} & n_{\delta \bar{\theta}_y} & n_{\delta \bar{\theta}_z} \end{array}\right]^T \end{aligned} ?Gt?=?I3?00?0Rbw?0?0[vb]×?I3??000?000??Ct?=?I3?00?0I3?0?00I3???n=[nδpˉ?x???nδpˉ?y???nδpˉ?z???nδvˉxb???nδvˉyb???nδvˉzb???nδθˉx???nδθˉy???nδθˉz???]T?隨后,便可以使用新的觀測方程,不改變其他方程,直接按照原有流程進(jìn)行Kalman濾波融合。

3. 融合運動約束的濾波方法

很多時候,硬件平臺并沒有編碼器,不能直接使用上一小節(jié)的模型,但是車本身的運動特性(即側(cè)向速度和天向速度為0)仍然可以使用。

它對觀測量帶來的改變僅僅是少了一個維度(xxx 方向),而推導(dǎo)方法并沒有改變,因此此處直接給出該融合模式下的推導(dǎo)結(jié)果。

新的觀測量為
y=[δp ̄[δv ̄b]yzδθ ̄]\boldsymbol{y}=\left[\begin{array}{c} \delta \overline{\boldsymbol{p}} \\ {\left[\delta \overline{\boldsymbol{v}}^b\right]_{y z}} \\ \delta \overline{\boldsymbol{\theta}} \end{array}\right] y=?δp?[δvb]yz?δθ??[?]yz[\bullet]_{y z}[?]yz? 表示只取三維向量或矩陣的后2行

此時的觀測方程 y=Gtδx+Ctn\boldsymbol{y}=\boldsymbol{G}_t \delta \boldsymbol{x}+\boldsymbol{C}_t \boldsymbol{n}y=Gt?δx+Ct?n 中的各變量應(yīng)重新寫為
Gt=[I300000[Rbw]yz[[vb]×]yz0000I300]Ct=[I3000I2000I3]n=[nδpˉxnδpˉynδpˉznδvˉybnδvˉzbnδθˉxnδθˉynδθˉz]T\begin{aligned} & \boldsymbol{G}_t=\left[\begin{array}{ccccc} \boldsymbol{I}_3 & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & {\left[\boldsymbol{R}_{b w}\right]_{y z}} & {\left[\left[\boldsymbol{v}^b\right]_{\times}\right]_{y z}} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \boldsymbol{I}_3 & \mathbf{0} & \mathbf{0} \end{array}\right] \\ & \boldsymbol{C}_t=\left[\begin{array}{ccc} \boldsymbol{I}_3 & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \boldsymbol{I}_2 & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \boldsymbol{I}_3 \end{array}\right] \\ & \boldsymbol{n}=\left[\begin{array}{llllllll} n_{\delta \bar{p}_x} & n_{\delta \bar{p}_y} & n_{\delta \bar{p}_z} & n_{\delta \bar{v}_y^b} & n_{\delta \bar{v}_z^b} & n_{\delta \bar{\theta}_x} & n_{\delta \bar{\theta}_y} & n_{\delta \bar{\theta}_z} \end{array}\right]^T \end{aligned} ?Gt?=?I3?00?0[Rbw?]yz?0?0[[vb]×?]yz?I3??000?000??Ct?=?I3?00?0I2?0?00I3???n=[nδpˉ?x???nδpˉ?y???nδpˉ?z???nδvˉyb???nδvˉzb???nδθˉx???nδθˉy???nδθˉz???]T?隨后的Kalman流程仍然與之前保持一致。

4. 融合點云特征的濾波方法

4.1 整體思路

以IMU做狀態(tài)預(yù)測,以特征中的點-面距離、點-線距離為約束(觀測),修正誤差。
在這里插入圖片描述
論文題目:LINS: A Lidar-Inertial State Estimator for Robust and Efficient Navigation

4.2 濾波模型

  1. 狀態(tài)定義
    位姿定義:
    xwbk:=[pwbk,qwbk]\mathbf{x}_w^{b_k}:=\left[\mathbf{p}_w^{b_k}, \mathbf{q}_w^{b_k}\right] xwbk??:=[pwbk??,qwbk??]相對位姿相關(guān):
    xbk+1bk:=[pbk+1bk,vbk+1bk,qbk+1bk,ba,bg,gbk]\mathbf{x}_{b_{k+1}}^{b_k}:=\left[\mathbf{p}_{b_{k+1}}^{b_k}, \mathbf{v}_{b_{k+1}}^{b_k}, \mathbf{q}_{b_{k+1}}^{b_k}, \mathbf_a, \mathbf_g, \mathbf{g}^{b_k}\right] xbk+1?bk??:=[pbk+1?bk??,vbk+1?bk??,qbk+1?bk??,ba?,bg?,gbk?]狀態(tài)量:
    δx:=[δp,δv,δθ,δba,δbg,δg]\delta \mathbf{x}:=\left[\delta \mathbf{p}, \delta \mathbf{v}, \delta \boldsymbol{\theta}, \delta \mathbf_a, \delta \mathbf_g, \delta \mathbf{g}\right] δx:=[δp,δv,δθ,δba?,δbg?,δg]狀態(tài)量修正:
    xbk+1bk=?xbk+1bk?δx=[?pbk+1bk+δp?vkbk+δv?qbk+1bk?exp?(δθ)?ba+δba?bg+δbg?gbk+δg]\mathbf{x}_{b_{k+1}}^{b_k}={ }^{-} \mathbf{x}_{b_{k+1}}^{b_k} \boxplus \boldsymbol{\delta} \mathbf{x}=\left[\begin{array}{c} -\mathbf{p}_{b_{k+1}}^{b_k}+\boldsymbol{\delta} \mathbf{p} \\ -\mathbf{v}_k^{b_k}+\boldsymbol{\delta} \mathbf{v} \\ -\mathbf{q}_{b_{k+1}}^{b_k} \otimes \exp (\boldsymbol{\delta} \boldsymbol{\theta}) \\ -\mathbf_a+\boldsymbol{\delta} \mathbf_a \\ -\mathbf_g+\delta \mathbf_g \\ -\mathbf{g}^{b_k}+\boldsymbol{\delta} \mathbf{g} \end{array}\right] xbk+1?bk??=?xbk+1?bk???δx=??pbk+1?bk??+δp?vkbk??+δv?qbk+1?bk???exp(δθ)?ba?+δba??bg?+δbg??gbk?+δg??其中 ?xbk+1bk{ }^{-} \mathbf{x}_{b_{k+1}}^{b_k}?xbk+1?bk?? 表示預(yù)測值。

  2. 狀態(tài)方程
    δx˙(t)=Ftδx(t)+Gtw\delta \dot{\mathbf{x}}(t)=\mathbf{F}_t \delta \mathbf{x}(t)+\mathbf{G}_t \mathbf{w} δx˙(t)=Ft?δx(t)+Gt?w其中
    Ft=[0I000000?Rtbk[a^t]×?Rtbk0?I300?[ω^t]×0?I30000000000000000000]Gt=[0000?Rtbk0000?I30000I30000I30000]w=[naT,ngT,nbaT,nbgT]T\begin{aligned} \mathbf{F}_t & =\left[\begin{array}{cccccc} 0 & \mathbf{I} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & -\mathbf{R}_t^{b_k}\left[\hat{\mathbf{a}}_t\right]_{\times} & -\mathbf{R}_t^{b_k} & \mathbf{0} & -\mathbf{I}_3 \\ 0 & 0 & -\left[\hat{\omega}_t\right]_{\times} & \mathbf{0} & -\mathbf{I}_3 & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \end{array}\right] \quad \mathbf{G}_t=\left[\begin{array}{cccc} \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ -\mathbf{R}_t^{b_k} & \mathbf{0} & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & -\mathbf{I}_3 & \mathbf{0} & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{I}_3 & \mathbf{0} \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{I}_3 \\ \mathbf{0} & \mathbf{0} & \mathbf{0} & \mathbf{0} \end{array}\right] \\ \mathbf{w} & =\left[\mathbf{n}_a^T, \mathbf{n}_g^T, \mathbf{n}_{b_a}^T, \mathbf{n}_{b_g}^T\right]^T \end{aligned} Ft?w?=?000000?I00000?0?Rtbk??[a^t?]×??[ω^t?]×?000?0?Rtbk??0000?00?I3?000?0?I3?0000??Gt?=?0?Rtbk??0000?00?I3?000?000I3?00?0000I3?0??=[naT?,ngT?,nba?T?,nbg?T?]T?

  3. 觀測方程
    觀測的計算與loam中前后幀匹配的思想一致,都是計算 點-面、點-線的殘差
    其中
    p^ilk=(Rlb)T(Rbk+1bk(Rlbpilk+1+plb)+pbk+1bk?plb)\hat{\mathbf{p}}_i^{l_k}=\left(\mathbf{R}_l^b\right)^T\left(\mathbf{R}_{b_{k+1}}^{b_k}\left(\mathbf{R}_l^b \mathbf{p}_i^{l_{k+1}}+\mathbf{p}_l^b\right)+\mathbf{p}_{b_{k+1}}^{b_k}-\mathbf{p}_l^b\right) p^?ilk??=(Rlb?)T(Rbk+1?bk??(Rlb?pilk+1??+plb?)+pbk+1?bk???plb?)為了計算觀測方程,需要計算殘差對狀態(tài)量的雅可比
    Hk=?f?p^ilk??p^ilk?δx\mathbf{H}_k=\frac{\partial \mathbf{f}}{\partial \hat{\mathbf{p}}_i^{l_k}} \cdot \frac{\partial \hat{\mathbf{p}}_i^{l_k}}{\partial \delta \mathbf{x}} Hk?=?p^?ilk???f???δx?p^?ilk???上式中包含兩部分,第一部分已經(jīng)講過,此處只推導(dǎo)第 二部分。
    除了旋轉(zhuǎn)和平移外,殘差項對其它量的導(dǎo)數(shù)均為 0 。
    a.對平移求導(dǎo)
    ?p^ilk?δp=?[(Rlb)?(Rbk+1bk(Rlbpilk+1+plb)+pbk+1bk?plb)]?δp=?[(Rlb)?pbk+1bk]?δp=(Rlb)?\begin{aligned} & \frac{\partial \hat{\mathbf{p}}_i^{l_k}}{\partial \delta \mathbf{p}} \\ = & \frac{\partial\left[\left(\mathbf{R}_l^b\right)^{\top}\left(\mathbf{R}_{b_{k+1}}^{b_k}\left(\mathbf{R}_l^b \mathbf{p}_i^{l_{k+1}}+\mathbf{p}_l^b\right)+\mathbf{p}_{b_{k+1}}^{b_k}-\mathbf{p}_l^b\right)\right]}{\partial \delta \mathbf{p}} \\ = & \frac{\partial\left[\left(\mathbf{R}_l^b\right)^{\top} \mathbf{p}_{b_{k+1}}^{b_k}\right]}{\partial \delta \mathbf{p}} \\ = & \left(\mathbf{R}_l^b\right)^{\top} \end{aligned} ===??δp?p^?ilk????δp?[(Rlb?)?(Rbk+1?bk??(Rlb?pilk+1??+plb?)+pbk+1?bk???plb?)]??δp?[(Rlb?)?pbk+1?bk??]?(Rlb?)??b.對旋轉(zhuǎn)求導(dǎo)
    ?p^ilk?δx=?[(Rlb)T(Rbk+1bk(Rlbpilk+1+plb)+pbk+1bk?plb)]?δθ=(Rlb)T?[Rbk+1bk(Rlbpilk+1+plb)]?Rbk+1bk?Rbk+1bk?δθ=?(Rlb)T[Rbk+1bk(Rlbpilk+1+plb)]×Rbk+1bkJr?1(θ)=?(Rlb)TRbk+1bk[Rlbpilk+1+plb]×Rbkbk+1Rbk+1bkJr?1(θ)=?(Rlb)TRbk+1bk[Rlbpilk+1+plb]×Jr?1(θ)\begin{aligned} & \frac{\partial \hat{\mathbf{p}}_i^{l_k}}{\partial \delta \mathbf{x}} \\ = & \frac{\partial\left[\left(\mathbf{R}_l^b\right)^T\left(\mathbf{R}_{b_{k+1}}^{b_k}\left(\mathbf{R}_l^b \mathbf{p}_i^{l_{k+1}}+\mathbf{p}_l^b\right)+\mathbf{p}_{b_{k+1}}^{b_k}-\mathbf{p}_l^b\right)\right]}{\partial \delta \boldsymbol{\theta}} \\ = & \left(\mathbf{R}_l^b\right)^T \frac{\partial\left[\mathbf{R}_{b_{k+1}}^{b_k}\left(\mathbf{R}_l^b \mathbf{p}_i^{l_{k+1}}+\mathbf{p}_l^b\right)\right]}{\partial \mathbf{R}_{b_{k+1}}^{b_k}} \frac{\partial \mathbf{R}_{b_{k+1}}^{b_k}}{\partial \delta \boldsymbol{\theta}} \\ = & -\left(\mathbf{R}_l^b\right)^T\left[\mathbf{R}_{b_{k+1}}^{b_k}\left(\mathbf{R}_l^b \mathbf{p}_i^{l_{k+1}}+\mathbf{p}_l^b\right)\right]_{\times} \mathbf{R}_{b_{k+1}}^{b_k} \boldsymbol{J}_r^{-1}(\boldsymbol{\theta}) \\ = & -\left(\mathbf{R}_l^b\right)^T \mathbf{R}_{b_{k+1}}^{b_k}\left[\mathbf{R}_l^b \mathbf{p}_i^{l_{k+1}}+\mathbf{p}_l^b\right]_{\times} \mathbf{R}_{b_k}^{b_{k+1}} \mathbf{R}_{b_{k+1}}^{b_k} \boldsymbol{J}_r^{-1}(\boldsymbol{\theta}) \\ = & -\left(\mathbf{R}_l^b\right)^T \mathbf{R}_{b_{k+1}}^{b_k}\left[\mathbf{R}_l^b \mathbf{p}_i^{l_{k+1}}+\mathbf{p}_l^b\right]_{\times} \boldsymbol{J}_r^{-1}(\boldsymbol{\theta}) \end{aligned} =====??δx?p^?ilk????δθ?[(Rlb?)T(Rbk+1?bk??(Rlb?pilk+1??+plb?)+pbk+1?bk???plb?)]?(Rlb?)T?Rbk+1?bk???[Rbk+1?bk??(Rlb?pilk+1??+plb?)]??δθ?Rbk+1?bk????(Rlb?)T[Rbk+1?bk??(Rlb?pilk+1??+plb?)]×?Rbk+1?bk??Jr?1?(θ)?(Rlb?)TRbk+1?bk??[Rlb?pilk+1??+plb?]×?Rbk?bk+1??Rbk+1?bk??Jr?1?(θ)?(Rlb?)TRbk+1?bk??[Rlb?pilk+1??+plb?]×?Jr?1?(θ)?預(yù)測 :
    δxtτ=(I+FtτΔt)δxtτ?1Ptτ=(I+FtτΔt)Ptτ?1(I+FtτΔt)T+(GiτΔt)Q(GttΔt)TKk,j=PkHk,jT(Hk,jPkHk,jT+Jk,jMkJk,jT)?1\begin{aligned} & \delta \mathbf{x}_{t_\tau}=\left(\mathbf{I}+\mathbf{F}_{t_\tau} \Delta t\right) \delta \mathbf{x}_{t_{\tau-1}} \\ & \mathbf{P}_{t_\tau}=\left(\mathbf{I}+\mathbf{F}_{t_\tau} \Delta t\right) \mathbf{P}_{t_{\tau-1}}\left(\mathbf{I}+\mathbf{F}_{t_\tau} \Delta t\right)^T+\left(\mathbf{G}_{i_\tau} \Delta t\right) \mathbf{Q}\left(\mathbf{G}_{t_t} \Delta t\right)^T \\ & \mathbf{K}_{k, j}=\mathbf{P}_k \mathbf{H}_{k, j}^T\left(\mathbf{H}_{k, j} \mathbf{P}_k \mathbf{H}_{k, j}^T+\mathbf{J}_{k, j} \mathbf{M}_k \mathbf{J}_{k, j}^T\right)^{-1} \end{aligned} ?δxtτ??=(I+Ftτ??Δt)δxtτ?1??Ptτ??=(I+Ftτ??Δt)Ptτ?1??(I+Ftτ??Δt)T+(Giτ??Δt)Q(Gtt??Δt)TKk,j?=Pk?Hk,jT?(Hk,j?Pk?Hk,jT?+Jk,j?Mk?Jk,jT?)?1?迭代觀測: Δxj=Kk,j(Hk,jδxj?f(?xbk+1bk?δxj))\Delta \mathbf{x}_j=\mathbf{K}_{k, j}\left(\mathbf{H}_{k, j} \delta \mathbf{x}_j-f\left({ }^{-} \mathbf{x}_{b_{k+1}}^{b_k} \boxplus \boldsymbol{\delta} \mathbf{x}_j\right)\right)Δxj?=Kk,j?(Hk,j?δxj??f(?xbk+1?bk???δxj?))
    δxj+1=δxj+Δxj\delta \mathbf{x}_{j+1}=\delta \mathbf{x}_j+\Delta \mathbf{x}_j δxj+1?=δxj?+Δxj?后驗方差: Pk+1=(I?Kk,nHk,n)Pk(I?Kk,nHk,n)T+Kk,nMkKk,nT\mathbf{P}_{k+1}=\left(\mathbf{I}-\mathbf{K}_{k, n} \mathbf{H}_{k, n}\right) \mathbf{P}_k\left(\mathbf{I}-\mathbf{K}_{k, n} \mathbf{H}_{k, n}\right)^T+\mathbf{K}_{k, n} \mathbf{M}_k \mathbf{K}_{k, n}^TPk+1?=(I?Kk,n?Hk,n?)Pk?(I?Kk,n?Hk,n?)T+Kk,n?Mk?Kk,nT?

4.3 位姿更新

xwbk+1=[pwbk+1qwbk+1]=[Rbkbk+1(pwbk?pbk+1bk)qbkbk+1?qwbk]\mathbf{x}_w^{b_{k+1}}=\left[\begin{array}{c} \mathbf{p}_w^{b_{k+1}} \\ \mathbf{q}_w^{b_{k+1}} \end{array}\right]=\left[\begin{array}{c} \mathbf{R}_{b_k}^{b_{k+1}}\left(\mathbf{p}_w^{b_k}-\mathbf{p}_{b_{k+1}}^{b_k}\right) \\ \mathbf{q}_{b_k}^{b_{k+1}} \otimes \mathbf{q}_w^{b_k} \end{array}\right] xwbk+1??=[pwbk+1??qwbk+1???]=[Rbk?bk+1??(pwbk???pbk+1?bk??)qbk?bk+1???qwbk???]

4.4 相似工作

論文題目:FAST-LIO: A Fast, Robust LiDAR-inertial Odometry Package by Tightly-Coupled Iterated Kalman Filter

http://www.risenshineclean.com/news/6692.html

相關(guān)文章:

  • 杭州品牌網(wǎng)站制作培訓(xùn)班
  • 寵物店做網(wǎng)站的論文深圳網(wǎng)絡(luò)推廣
  • 專業(yè)網(wǎng)站推廣引流外鏈圖片
  • 英文網(wǎng)站模板改成中文成都百度快照優(yōu)化排名
  • 免費域名申請哪個網(wǎng)站好百度營銷客戶端
  • 自己創(chuàng)業(yè)做原公司一樣的網(wǎng)站武漢網(wǎng)站排名提升
  • 找設(shè)計公司上哪個網(wǎng)站網(wǎng)絡(luò)營銷課程主要講什么內(nèi)容
  • 做電商要有網(wǎng)站嗎seo關(guān)鍵詞排名優(yōu)化報價
  • 做網(wǎng)站找哪家怎么創(chuàng)建網(wǎng)站?
  • 動態(tài)網(wǎng)站做優(yōu)化搭建網(wǎng)站需要什么技術(shù)
  • 建設(shè)銀行上海分行網(wǎng)站網(wǎng)站seo快速排名優(yōu)化的軟件
  • 儀征網(wǎng)站建設(shè)友鏈查詢站長工具
  • 手機(jī)開網(wǎng)店用什么軟件seo優(yōu)化排名
  • 婚紗攝影的網(wǎng)站怎么做推廣網(wǎng)站哪個好
  • 做網(wǎng)站怎樣辦營業(yè)執(zhí)照搜狗網(wǎng)頁版入口
  • 用vs做網(wǎng)站如何連接數(shù)據(jù)庫最新國內(nèi)你新聞
  • 手機(jī)版網(wǎng)站建設(shè)百度競價包年推廣是怎么回事
  • 財政部網(wǎng)站官網(wǎng) PPP項目建設(shè)關(guān)鍵詞排名查詢網(wǎng)站
  • 網(wǎng)站建設(shè)對產(chǎn)品推銷作用大嗎百度云搜索引擎入口盤多多
  • 黑龍江建設(shè)廳網(wǎng)站官網(wǎng)做網(wǎng)站優(yōu)化哪家公司好
  • 給網(wǎng)站整一個客服 怎么做鳳凰網(wǎng)全國疫情實時動態(tài)
  • 上海網(wǎng)站建設(shè)設(shè)計公司排名無錫百度推廣開戶
  • 上海網(wǎng)站建設(shè)免費推薦上海網(wǎng)站排名優(yōu)化怎么做
  • 常用wap網(wǎng)站開發(fā)工具 手機(jī)網(wǎng)站制作軟件競價托管咨詢微競價
  • 企業(yè)做網(wǎng)站的流程某個網(wǎng)站seo分析實例
  • 網(wǎng)站開發(fā)與應(yīng)用專業(yè)最近國際新聞大事
  • 杭州做網(wǎng)站的公司哪家好網(wǎng)站優(yōu)化推廣培訓(xùn)
  • 網(wǎng)站如何發(fā)布和推廣怎么自己做一個網(wǎng)站
  • 網(wǎng)站建設(shè)前期準(zhǔn)備衡水網(wǎng)站優(yōu)化推廣
  • 最火的做牛排沙拉網(wǎng)站深圳將進(jìn)一步優(yōu)化防控措施