基于扩展卡尔曼滤波的视觉惯性融合定位详解
一、背景与问题
1.1 核心问题
问题描述:
- 无人机需要精确跟踪目标,但仅依赖GNSS定位存在严重局限性
- 在复杂或受限环境下(如室内、城市峡谷、信号干扰区域),GNSS信号可能失效或严重受干扰
- 仅依赖GNSS的无人机无法完成自主跟踪任务
解决方案:
提出基于扩展卡尔曼滤波(EKF)的视觉惯性紧耦合定位方案,融合:
- 视觉信息:从标记检测得到的几何约束
- 惯性信息:IMU提供的加速度和角速度数据
核心目标:
实时估计目标与无人机之间的相对位置与姿态,为后续轨迹跟踪提供关键的状态估计支持
二、符号定义与坐标系( 3.1节)
2.1 目的
解决的问题:
- 不同传感器输出数据在不同坐标系中
- 需要统一的坐标变换规则才能进行数据融合
2.2 关键符号定义
| 符号 | 含义 | 作用 |
|---|
| W | 世界坐标系 | 全局参考系 |
| o | 目标坐标系 | 目标标记的参考系 |
| c | 相机坐标系 | 相机成像参考系 |
| i | IMU坐标系 | 惯性测量单元参考系 |
| TAB | 从B到A的刚体变换 | 坐标系转换 |
| pic,qic | 相机在IMU系下的位置和四元数 | 外参标定结果 |
| Ric | 从相机到IMU的旋转矩阵 | 外参标定结果 |
| x^ | 估计值 | 状态估计 |
| C(.) | 四元数转旋转矩阵 | 坐标变换工具 |
- 统一语言:为后续所有推导提供一致的符号体系
- 坐标对齐:确保不同传感器数据能在统一框架下处理
- 数学基础:为后续的坐标变换和状态估计奠定基础
三、相机与IMU联合标定(3.2节)
3.1 目的
核心问题:
- 相机和IMU安装在不同位置,有不同的坐标系
- 需要知道它们之间的相对位置和姿态(外参)
- 两者采样频率不同,存在时间同步问题
3.2 标定内容
空间标定:
- 旋转矩阵 Ric:相机相对于IMU的旋转
- 平移向量 pic:相机相对于IMU的位置
时间标定:
- 时间延迟 Δt:补偿相机和IMU之间的时间差
常用工具:
- Kalibr:支持多种相机和IMU类型的联合标定平台
场景设定
无人机状态:
- 位置:p=[x,y,z]T(世界坐标系)
- 速度:v=[vx,vy,vz]T
- 姿态:q(四元数,表示朝向)
- IMU零偏:ba,bw(加速度计和陀螺仪零偏)
传感器:
- IMU:100Hz,提供加速度am和角速度wm
- 相机:30Hz,看到地面标记点,得到像素坐标
目标: 融合IMU和相机数据,估计无人机的位置、速度、姿态
四、扩展卡尔曼滤波原理(3.3.1节)
4.1 目的
解决的问题:
- 经典卡尔曼滤波只能处理线性系统
- 无人机运动模型和观测模型都是非线性的
- 需要将非线性系统线性化处理
4.2 EKF算法流程
初始化(k=0时刻)
状态:
x^0=[p0,v0,q0,ba0,bw0]T
协方差:
P0=diag([σp2,σv2,σq2,σba2,σbw2])
含义:
初始位置、速度、姿态、零偏的估计及其不确定性
4.2.1 系统模型
状态预测模型:
xk=f(xk−1,uk−1)+wk−1
- 含义:
- xk:k时刻的真实状态(未知)
- f(xk−1,uk−1):用上一时刻状态和控制输入,通过运动模型计算当前状态
- wk−1:过程噪声(模型不完美、外界干扰等)
目的:描述状态如何随时间变化。
观测模型:
zk=h(xk)+vk
- 含义:
- zk:传感器测量值
- h(xk):从状态到观测的映射(如相机将3D位置投影为2D像素)
- vk:观测噪声(传感器误差)
- 目的:描述如何从状态得到观测。
4.2.2 预测步骤
1. 状态预测:
x^k∣k−1=f(x^k−1∣k−1,uk−1)
- x^k∣k−1:基于k−1时刻信息,对k时刻状态的预测
- 用上一时刻的估计和控制输入,通过运动模型预测当前状态
目的:在没有新观测时,先给出预测。
输入:
- 上一时刻状态:x^k−1∣k−1=[pk−1,vk−1,qk−1,ba,k−1,bw,k−1]T
- IMU测量:uk−1=[am,wm](加速度和角速度)
输出:
- x^k∣k−1=[pk,vk,qk,ba,k,bw,k]T
2. 线性化状态转移函数:
Fk−1=∂x∂fx=x^k−1∣k−1,u=uk−1∈Rn×n
- Fk−1:状态转移函数f在估计点x^k−1∣k−1处的雅可比矩阵
- 将非线性f在局部线性化,近似为f(x)≈f(x^)+F⋅(x−x^)
为什么:系统模型f和观测模型h是非线性的,卡尔曼滤波的协方差传播需要线性模型;所以EKF在局部线性化,用雅可比矩阵近似非线性关系
3. 协方差预测:
Pk∣k−1=Fk−1Pk−1∣k−1Fk−1T+Qk−1
- Pk∣k−1:预测状态的不确定性(协方差)
- Fk−1Pk−1∣k−1Fk−1T:通过线性化模型传播上一时刻的不确定性
- Qk−1:过程噪声协方差(模型误差带来的不确定性)
目的:量化预测的不确定性,为后续融合提供权重依据。
等待相机观测
频率:
- IMU:100Hz(每10ms一次)
- 相机:30Hz(每33ms一次)
如果此时没有新的相机图像,继续用IMU预;如果有新的相机图像,进入更新步骤
4.2.3 更新步骤- 当相机图像到达时
1. 观测预测:
z^k=h(x^k∣k−1)
目的:与真实观测对比,得到残差。
输入:
- 预测状态:x^k∣k−1=[pk,vk,qk,⋯]T
- 地面标记点位置:pmarkerw(世界坐标系)
观测模型:
- 1、标记点在世界坐标系的位置:pmarkerw
- 2、转换到相机坐标系:
pmarkerc=C(qcw)T(pmarkerw−pk),qcw是相机相对于世界的姿态
- 投影到像素坐标:
z^k=[uv]=fxpmarker,zcpmarker,xc+cxfypmarker,zcpmarker,yc+cy
fx,fy是焦距,cx,cy是主点
输出:
- z^k=[u,v]T(预测的像素坐标)
基于预测状态,计算标记点应该在图像中的位置
残差计算
zk=[uactual,vactual]T
rk=zk−z^k=[uactual−uvactual−v]
- 含义:残差大:预测偏差大,需要修正;残差小:预测较准
2. 线性化观测函数:
Hk=∂x∂hx=x^k∣k−1∈Rl×n
- Hk:观测函数h在预测点处的雅可比矩阵
- 将非线性h在局部线性化
目的:为计算卡尔曼增益和协方差更新提供线性近似。
3. 计算卡尔曼增益:
Kk=Pk∣k−1HkT(HkPk∣k−1HkT+Rk)−1
卡尔曼增益的意义 直观理解:
情况1:相机很准,IMU预测不准
- Rk很小(相机误差小)
- Pk∣k−1很大(预测不确定)
- 结果:Kk较大,更信任相机观测
情况2:相机不准,IMU预测较准
- Rk很大(相机误差大)
- Pk∣k−1较小(预测较确定)
- 结果:Kk较小,更信任IMU预测
目的:决定预测与观测的融合权重。
4. 状态更新:
x^k∣k=x^k∣k−1+Kk(zk−z^k)
- x^k∣k:融合后的状态估计
- zk−z^k:观测残差(实际观测与预测观测的差)
- Kk(zk−z^k):用残差修正预测,修正量由Kk加权
目的:用观测修正预测,得到更准确的状态估计
- 如果Kk较大(更信任相机),修正幅度大
- 如果Kk较小(更信任IMU),修正幅度小
结果:
x^k∣k=[pkupdated,vkupdated,qkupdated,⋯]T,融合后的状态估计,通常比单独使用IMU或相机更准确
5. 协方差更新:
Pk∣k=(I−KkHk)Pk∣k−1
- Pk∣k:更新后的不确定性
- I−KkHk:融合后不确定性降低
- 融合观测后,不确定性通常减小
目的:更新不确定性,为下一时刻提供基础
完整时间线示例
时刻 t0:
时刻 t1(10ms后,IMU数据到达):
- 预测:用IMU数据预测状态
- 更新协方差
- 继续等待相机
时刻 t2(20ms后,IMU数据到达):
- 预测:用IMU数据预测状态
- 更新协方差
- 继续等待相机
时刻 t3(33ms后,相机图像到达):
- 预测:用IMU数据预测状态
- 观测:用相机数据计算残差
- 融合:计算卡尔曼增益,更新状态
- 结果:得到融合后的状态估计
时刻 t4(40ms后,IMU数据到达):
预测:用IMU数据预测状态
继续等待相机
...
EKF在无人机IMU+相机融合中的工作方式:用IMU做高频预测,用相机做低频修正IMU累积误差,通过不确定性权重实现自适应融合
五、小扰动模型(3.3.2节)
5.1 目的
核心问题:
- 无人机状态包含旋转和位姿,属于非欧几里得空间(李群SO(3)和SE(3))
- 传统欧几里得空间的简单加法不适用于旋转和位姿
- 直接加法会破坏旋转的约束(单位四元数必须在单位球面上)
5.2 李群与李代数
李群(Lie Group):
- 同时具有群结构和流形结构
- 可以表示连续可微的变换(如旋转、位姿)
- 例子:SO(3)(旋转群)、SE(3)(刚体变换群)
李代数(Lie Algebra):
- 李群在单位元处的切空间
- 具有欧几里得向量空间的性质
- 可以进行加性建模和线性化分析
5.3 小扰动模型
问题的根源:旋转不能直接相加
问题的本质
普通数字(位置):
- 当前位置:p=[1,2,3]
- 想移动:Δp=[0.1,0.2,0.3]
- 新位置:pnew=p+Δp=[1.1,2.2,3.3]
旋转(四元数):
- 当前旋转:q=[0.707,0.707,0,0](绕Z轴转90度)
- 想加一个小扰动:Δq=[0.1,0.1,0.1,0.1]
- 直接相加:qnew=q+Δq 会破坏单位约束
问题: 旋转不能直接相加,但EKF需要线性化,线性化需要“相加”的概念
基本思想
- 将状态表示为参考状态加上小扰动
- 使用指数映射将李代数元素映射回李群
第一步:在“切空间”中表示误差
- 把误差表示成旋转向量 δθ(3维向量,可以相加)
- 这个向量在“切空间”中,是欧几里得空间
第二步:映射回旋转群
- 用指数映射把切空间的误差映射回旋转群
- 得到的新旋转仍然是有效的旋转
类比:想象一个球面(旋转群),在球面上某点的切平面(切空间/李代数),在切平面上做加法,然后投影回球面
数学表示
基本的小扰动模型: R=exp(ξ∧)R^
其中:
- R^:参考旋转(当前估计的旋转)
- ξ:扰动向量(6维:3个旋转 + 3个平移)
- ξ∧:将向量转为反对称矩阵
- exp(ξ∧):指数映射,将切空间的扰动映射回旋转群
- R:扰动后的旋转(仍在旋转群中)
用切空间的扰动表示旋转的变化,通过指数映射保证结果仍是有效旋转
反对称矩阵:
对于向量ξ=(a,b,c):
ξ∧=0c−b−c0ab−a0
将3维向量转为3×3反对称矩阵, 用于指数映射的计算
四元数的小扰动:
R(q)=R(δq⊗q^)≈exp(δθ∧)R(q^)
- q^:参考四元数
- δq:四元数扰动
- δθ:旋转向量(3维)
- exp(δθ∧):将旋转向量转为旋转矩阵
- 近似:当扰动很小时,四元数乘法近似等于指数映射
- 四元数不能直接相加,旋转向量可以相加,用旋转向量近似四元数扰动
线性近似:
R(q)P≈(I+δθ∧)R^P
线性化旋转操作:当扰动很小时,用线性近似代替非线性操作
EKF的问题:
需要线性化:f(x)≈f(x^)+F⋅(x−x^)
但旋转不能直接相减:q−q^ 没有意义
解决方案:
- 主状态用四元数(保持约束)
- 误差状态用旋转向量(可以相减)
- 通过小扰动模型连接两者
无人机旋转估计
1.场景设定
无人机状态:
- 位置:p=[1,2,3]
- 速度:v=[0.1,0.2,0.3]
- 旋转:q=[0.707,0.707,0,0](绕Z轴转90度)
IMU测量:
- 角速度:w=[0.1,0.05,0.02](弧度/秒)
- 时间步: Δt=0.01 秒
相机观测(稍后到达):
- 实际观测:zk=[320,240](像素坐标)
- 预测观测:z^k=[315,245](基于预测状态)
2.预测步骤
用IMU的角速度数据更新无人机的旋转:
qk=qk−1⊗exp(21wΔt)
计算旋转增量:
21wΔt=21×[0.1,0.05,0.02]×0.01=[0.0005,0.00025,0.0001]
这是0.01秒内的旋转增量(旋转向量形式)
转换为四元数:
exp(21wΔt)
将旋转向量转换为四元数。当角度很小时,可以近似为:
qincrement≈[1,0.0005,0.00025,0.0001]
四元数乘法:
qk=qk−1⊗qincrement
先应用当前旋转 qk−1,再应用增量旋转 qincrement
结果:
qk=[0.707,0.707,0.0001,0.00005](近似值)
- 步骤2:误差状态传播(线性)——目的: 预测误差状态如何随时间变化
在切空间中传播误差:
Δθk=F⋅Δθk−1
其中 F 是雅可比矩阵,在切空间中计算。
传播误差 = 误差如何从一个时刻传递到下一个时刻
当前时刻有误差,下一时刻误差会变化(可能增大、减小、或改变方向),这个过程就是误差传播
例子:IMU测量角速度有误差:wmeasured=wtrue+noise,用这个测量值预测旋转,预测也会有误差,误差会累积和传播
场景:
估计的旋转:q^=[0.707,0.707,0,0](绕Z轴转90度)
真实的旋转:qtrue=[0.707,0.707,0.01,0.01](稍微不同)
误差:
Δθ=[0.01,0.01,0.01],可以相加
从预测误差切空间中使用线性运算,为了适应EKF的需要,直到用EKF去更新误差值,这之后误差值与预测值的"加法"就要在旋转群中完成
3.更新步骤(当相机观测到达时)
用预测状态计算期望观测:
z^k=h(q^k)
rk=zk−z^k
例:rk=zk−z^k=[320,240]−[315,245]=[5,−5]
Δθnew=Δθold+K⋅rk
K是卡尔曼增益,用观测残差修正IMU预测的误差,在切空间中线性更新:
因为误差状态是旋转向量,可以相加,而主状态是四元数,不能直接相加,因此在切空间中更新误差,再映射回主状态
- 步骤4:映射回主状态(旋转群中的“加法”:误差值“加上”预测值)
qnew=exp(Δθnew∧)⊗qold
指数映射将切空间中的误差映射回旋转群中的主状态,但可能不是单位四元数
确保 qnew 仍是单位四元数。
六、无人机状态描述(3.3.3节)
6.1 目的
核心任务:
- 明确系统状态的建模
- 定义完整的状态向量,包含所有需要估计的量
6.2 IMU状态向量
xIMU=[(pwi)T(vwi)T(qwi)T(bw)T(ba)T]T
各分量含义:
- pwi∈R3:IMU在世界坐标系下的位置
- vwi∈R3:IMU在世界坐标系下的速度
- qwi:IMU在世界坐标系下的姿态(四元数)
- bw∈R3:陀螺仪零偏
- ba∈R3:加速度计零偏
6.3 相机状态向量
xc=[(pic)T(qic)T(pow)T(qow)T]T
各分量含义:
- pic,qic:相机在IMU系下的位置与姿态(外参)
- pow,qow:世界坐标系到视觉框架坐标系的位置与姿态
6.4 整体状态向量
x=[xIMUTxcT]T
维度: 30维向量
状态组成:
- IMU状态:16维(3+3+4+3+3)
- 相机状态:14维(3+4+3+4)
6.5 意义
- 完整描述:涵盖了无人机定位所需的所有状态信息
- 融合基础:为视觉和惯性数据融合提供统一的状态空间
- 估计目标:明确了需要实时估计的所有变量
七、误差状态方程
7.1 目的
核心问题:
- 所有姿态采用单位四元数表示,约束在单位球面上
- 直接进行标准加法线性化在EKF中不适用
- 需要引入误差状态的思想
7.2 误差状态定义
基本思想:
- 主状态:使用四元数等非线性表示
- 误差状态:使用小扰动(旋转向量)表示误差
- 误差状态在欧几里得空间中,可以进行线性运算
IMU误差状态:
x~IMU=[(Δpwi)T(Δvwi)T(δθwi)T(Δbw)T(Δba)T]T
相机误差状态:
x~c=[(Δpci)T(δθci)T(Δpow)T(δθow)T]T
误差状态关系:
x~=x^−x
其中δθ表示旋转向量(小扰动)
7.3 运动学建模
IMU测量值处理:
w^=wm−b^w
a^=am−b^a
其中:
- w^,a^:角速度和加速度的估计值
- wm,am:角速度和加速度的测量值
7.4 连续时间误差状态方程
位置误差:
Δp˙iw=Δviw
速度误差:
Δv˙iw=−C(q^wi)(a^i)δθiw−C(q^wi)Δba−C(q^wi)na
姿态误差:
δθ˙iw=−(w^i)δθiw−Δbw−nw
零偏误差:
Δb˙w=nbw,Δb˙a=nba
外参误差(假设不变):
Δp˙ic=0,δq˙ic=0
视觉框架误差(假设不变):
Δp˙ow=0,δq˙ow=0
矩阵形式:
x~˙=A~x~+Bn
其中:
- A~:30×24系统矩阵
- B:24×12输入矩阵
- n:噪声向量 n=[naT nbT nwT nbwT]T
7.5 意义
- 线性化基础:误差状态在欧几里得空间,可以进行线性化
- 保持约束:主状态(四元数)保持单位约束
- 误差传播:可以准确描述状态不确定性的传播
- 更新机制:误差更新后可以重置,保持主状态合理性
八、状态传播与离散化
8.1 目的
核心问题:
- EKF预测阶段需要基于系统运动模型进行时间更新
- 实际系统需要采用离散的时间观测和计算
- 需要对连续时间的非线性模型进行数值积分离散化
8.2 四元数微分方程
四元数运动学:
q˙=21Ω(w)q
Ω(w)矩阵:
Ω(w)=[−w∧−wTw0]
这是一个4×4反对称矩阵,用于四元数微分。
8.3 龙格-库塔4阶方法
为什么使用RK4?
- 系统非线性程度较高
- RK4提供较高的数值精度
- 适合实时系统
速度积分(RK4):
k1v=C(qt)⋅a^+g
k2v=C(qt+Δt/2)⋅a^+g
k3v=C(qt+Δt/2)⋅a^+g
k4v=C(qt+Δt)⋅a^+g
位置积分(RK4):
k1p=vt
k2p=vt+2Δtk1v
k3p=vt+2Δtk2v
k4p=vt+Δtk3v
最终更新:
vt+Δt=vt+6Δt(k1v+2k2v+2k3v+k4v)
pt+Δt=pt+6Δt(k1p+2k2p+2k3p+k4p)
8.4 四元数更新
小角度近似:
qt+Δt=δq⊗qt
归一化:
四元数更新后需要归一化以保证四元数规范性(单位四元数约束)
8.5 误差协方差传播
状态转移矩阵:
Φt=exp(A~Δt)≈I+A~Δt+21A~2Δt2+61A~3Δt3
使用三阶泰勒展开近似指数矩阵。
协方差传播:
Pt+Δt=ΦtPtΦtT+Qt
协方差定义:
Pt=E[ΔxΔxT]
过程噪声协方差:
Qt=∫0ΔtΦτBQcBTΦτTdτ
8.6 意义
- 数值稳定性:RK4方法提供高精度数值积分
- 实时性:离散化使得可以在实际系统中实现
- 不确定性传播:准确刻画系统在预测阶段的状态不确定性变化
- 计算效率:线性化误差状态传播,计算复杂度可控
九、观测模型(3.3.4节)
9.1 目的
核心任务:
- 将视觉信息(标记点像素坐标)转换为对系统状态的观测
- 建立观测模型,用于EKF的更新步骤
9.2 视觉观测模型
单个标记点的像素坐标:
zi=Sledi=[pcl]z1[fx00fycxcy]pcl
其中:
- Sledi:第i个LED的像素坐标
- [⋅]z:取向量的z坐标
- pcl:LED标记在相机坐标系下的位置
- fx,fy:相机焦距
- cx,cy:相机主点坐标
LED在相机坐标系下的位置:
pcl=(C(qcw)C(qwl)C(qlp))T{plp−[C(qcw)(C(qwl)plw+pwl)+pcw]}
这是一个复杂的坐标变换,涉及多个坐标系的转换。
9.3 观测模型
组合所有标记点:
z^=h(x^)
观测残差:
r=z−h(x^)
线性化:
r≈HΔx+n
其中:
- H:观测模型对误差状态的雅可比矩阵
- n:观测噪声
9.4 意义
- 几何约束:视觉信息提供与目标标记点之间的几何约束
- 状态更新:观测残差用于更新系统状态估计
- 融合基础:将视觉信息纳入统一的滤波框架
十、雅可比矩阵计算
10.1 目的
核心任务:
- 计算观测模型对误差状态的雅可比矩阵H
- 这是EKF更新步骤的关键计算
10.2 链式求导法则
单个标记点的雅可比矩阵:
Hi=∂x^∂h(x^)=∂p^cl∂h(x^)∂x^∂p^cl
第一部分:观测对相机坐标的导数
∂p^cl∂hi(x^)=fx000fy0cxcy0c1000c10−c2a−c2b0
其中p^cl=[aT bT cT]T
10.3 位置导数
对IMU位置的导数:
∂pwi∂p^cl=−(C(qwi)C(qci))T
对相机位置的导数:
∂pci∂p^cl=−C(qci)T
10.4 旋转导数(小扰动模型)
关键问题:
- 旋转变量属于李群,不能直接求导
- 必须使用小扰动模型
一阶扰动理论:
f(exp(δθ∧)R)≈f(R)+J⋅δθ
右扰动:
∂δθ∂R(θ+δθ)⋅a≈−R(θ)⋅a∧⋅Jr(θ)
右雅可比:
Jr(θ)=I−∥θ∥21−cos∥θ∥θ∧+∥θ∥3∥θ∥−sin∥θ∥(θ∧)2
具体导数:
- ∂δθw∂pcl:对IMU姿态的导数
- ∂δθi∂pcl:对相机外参姿态的导数
- ∂δθo∂pcl:对视觉框架姿态的导数
10.5 全局雅可比矩阵
组合所有特征点:
将所有特征点的雅可比矩阵组合成2n×27维的全局雅可比矩阵H,其中n是标记点数量。
10.6 意义
- 线性化关键:雅可比矩阵是EKF线性化的核心
- 计算效率:链式求导法则分解复杂计算
- 几何正确性:小扰动模型保证旋转导数的几何正确性
- 实时性:虽然计算复杂,但可以高效实现
十一、EKF更新过程
11.1 完整流程
1. 观测模型线性化:
2. 应用EKF更新:
- 计算卡尔曼增益K
- 更新状态估计x^
- 更新协方差矩阵P
3. 关键注意事项:
- 测量误差协方差矩阵R由测量传感器确定
- 姿态更新时必须使用小扰动模型
- 不能直接在欧几里得空间进行简单加法
11.2 更新公式回顾
卡尔曼增益:
K=Pk∣k−1HT(HPk∣k−1HT+R)−1
状态更新:
x^k∣k=x^k∣k−1+K(z−h(x^k∣k−1))
协方差更新:
Pk∣k=(I−KH)Pk∣k−1
11.3 意义
- 融合完成:成功将视觉和惯性信息融合
- 实时估计:提供目标与无人机之间的相对位置与姿态
- 状态支持:为后续轨迹跟踪提供关键的状态估计支持
十二、整体系统总结
12.1 解决的问题
- GNSS失效问题:在复杂环境下提供可靠的定位
- 传感器融合:有效融合视觉和惯性信息
- 实时性要求:满足无人机实时跟踪的需求
- 精度要求:提供高精度的位置和姿态估计
12.2 技术亮点
- 小扰动模型:正确处理旋转和位姿的非线性特性
- 误差状态EKF:保持主状态的几何约束
- 联合标定:精确的传感器外参和时间同步
- 数值积分:RK4方法保证数值精度
12.3 应用价值
- 自主导航:为无人机提供可靠的自主定位能力
- 目标跟踪:支持精确的目标跟踪任务
- 复杂环境:在GNSS失效环境下仍能工作
- 实时性能:满足实时系统的计算要求
十三、关键数学概念总结
13.1 坐标系变换
- 刚体变换:TAB表示从B到A的变换
- 旋转矩阵:C(q)从四元数q计算旋转矩阵
- 坐标变换链:世界→IMU→相机→目标
13.2 李群与李代数
- SO(3):三维旋转群
- SE(3):三维刚体变换群
- 指数映射:exp(ξ∧)将李代数映射到李群
- 小扰动:δθ表示旋转向量
13.3 状态估计
- 主状态:使用四元数等非线性表示
- 误差状态:使用小扰动表示误差
- 协方差传播:描述状态不确定性的演化
13.4 数值方法
- RK4积分:高精度数值积分
- 泰勒展开:近似矩阵指数
- 链式求导:计算复杂雅可比矩阵
十四、实际实现考虑
14.1 计算效率
- 稀疏矩阵:利用雅可比矩阵的稀疏性
- 并行计算:标记点处理可以并行
- 优化库:使用高效的线性代数库
14.2 数值稳定性
- 四元数归一化:每次更新后归一化
- 协方差正定性:确保协方差矩阵正定
- 数值阈值:避免除零等数值问题
14.3 鲁棒性
- 异常检测:检测和剔除异常观测
- 初始化:良好的初始状态估计
- 故障处理:传感器失效时的处理策略
结语
基于扩展卡尔曼滤波的视觉惯性融合定位方案是一个完整的、理论严谨的、工程实用的定位系统。它通过巧妙的数学工具(小扰动模型、误差状态EKF)解决了非线性系统状态估计的难题,通过传感器融合(视觉+惯性)解决了GNSS失效环境下的定位问题,为无人机的自主跟踪任务提供了可靠的状态估计支持。