网站建设与维护课程设计,建设工程包括什么工程,建设景区网站要有的内容,seo综合排名优化0. 内容 1. 旋转运动学
角速度的推导#xff1a; 左ω∧\omega^{\wedge}ω∧#xff0c;而ω\omegaω是在z轴方向运动#xff0c;θ′[0,0,1]T\theta^{\prime}[0,0,1]^Tθ′[0,0,1]T 两边取模后得到结论#xff1a; 线速度大小半径 * 角速度大小 其中#xff0c;对旋转矩…0. 内容 1. 旋转运动学
角速度的推导 左ω∧\omega^{\wedge}ω∧而ω\omegaω是在z轴方向运动θ′[0,0,1]T\theta^{\prime}[0,0,1]^Tθ′[0,0,1]T 两边取模后得到结论 线速度大小半径 * 角速度大小 其中对旋转矩阵求导根据第一章的结论 还有绿色箭头的公式下面的推导看的不是很明白 实际上是把R的导数变成求极限的形式但是这个极限怎么求的我不是很理解然后就是下面这个公式 Rω∧(Rω)∧RR\omega^\wedge(R\omega)^\wedge RRω∧(Rω)∧R aRib∗aba R_{ib}*a^baRib∗ab表示body下的加速度在III系下的表示仍是body下的加速度只是表示在III系。 知道了这个科氏力之后测量出科氏力以及运动的速度就能知道角速度了这就是gyro的一个基本原理。
2. IMU测量模型及运动模型 光纤陀螺仪一般较贵原理是光跑一圈路程是2πr2\pi r2πr但如果在旋转那就是2πrx2\pi rx2πrx测量出来这个x用光速再进行相关计算就得到此时的角速度。
陀螺仪测角速度要两个轴一个主动运动轴一个敏感轴敏感轴用于预测量科氏力 音叉振动陀螺 音叉两端左方向相反的正弦运动什么叫正弦运动音叉不是固定的吗 同一时刻其速度相反±v受到的科氏力大小相同方向相反F整个音叉收到向右的力为f左右也都为f把受到的力相减抵消之后就能测出两倍科氏力2F同时知道自然块运动的速度就能算出科氏力。
科氏力为2v∗ω2v*\omega2v∗ω 这个G-sensitivity是灵敏度系数比如机械振动会不会对IMU测量数据造成影响如果不那么灵敏就不会影响如果比较灵敏就需要考虑IMU减震等。
加速度计是否需要考虑科氏力影响 不需要。 因为 1.即使开始加速时质量块会加速但最终会达到平衡速度v0最终的科氏力为0 2.加计不是主动驱动的高速运动会很缓慢地动最终速度为0。
3. IMU误差模型
3.1 误差模型 3.2 确定性误差
确定性误差有bias和scale
bias随着时间会累积使得位姿的误差perrp_{err}perr越来越大scale可看成是原始物理v,ωv,\omegav,ω与ADC后的传感器输出值之间的比值需要标定。
scale是尺度Misalignment是轴偏如yz轴投影到x轴上的轴偏。 不考虑bias时测量出的laxsxx∗axmxy∗aymxz∗azl_{ax}s_{xx}*a_x m_{xy}*a_y m_{xz}*a_zlaxsxx∗axmxy∗aymxz∗az尺度轴偏矩阵主对角线为尺度其他为轴偏。 其他确定性误差还有
运行误差(每次都不一样)温度相关误差温度补偿或者标定方法。环境相关误差高度室内外等
六面法标定bias和scale分别将xzy三个轴朝上或者下放置测出的应该是±g但是会受到bias影响.于是blupldown2b \frac{l^{up}l^{down}}{2}b2lupldown就是两倍bias的均值反之相减绝对值就是2g2g2g一除就是尺度scale。
3.2.1 六面法标定acc l1l_1l1 ~ l6l_6l6是加速度测量值Sb是待标定的尺度轴偏矩阵和biasa1a_1a1 ~ a6a_6a6是加速度的理论值其中g9.81g9.81g9.81是标量。如此可以标定出SSS和bbb。 LS[a1,a2,a3,a4,a5,a6]bLS[a_1, a_2,a_3,a_4,a_5,a_6]bLS[a1,a2,a3,a4,a5,a6]b 最小二乘法能够求出S和b共12个元素。
3.2.2 六面法标定gyro
同理标定gyro也可以使用这种方法需要有一个角速度较为精确的转台也用6面相对加计此时我们知道较为精确的角速度ω1\omega_1ω1~ω6\omega_6ω6即可标出gyro的尺度、轴偏、bias。
3.2.3 温度标定
一般采用soak method精度较高。
3.3 IMU随机误差
3.3.1 IMU随机误差的介绍
bias的导数满足高斯分布n(t)n(t)n(t)注意是导数而不是bias本身这个bias的分布被称为随机游走random walk。
ADC采样时间段内认为数据是常数采集的数据理想数据bias和随机游走的噪声带来的部分这个不是常数所以需要进行积分 仅考虑高斯白噪声时假设bias和n(t)是相互独立的的协方差计算推导 这里的τ\tauτ实际上就是一个自变量可以是x,y,zx,y,zx,y,z等任意一个是因为ttt在这里要代表时间所以使用了τ\tauτ作为这里的自变量。本身高斯白噪声是满足高斯分布n(t)n(t)n(t)的就如(13)式所定义。 协方差相关补充 方差是协方差的特殊情况方差实际上是对自身的协方差即D(X)Cov(X,X)D(X)Cov(X,X)D(X)Cov(X,X)也就是X的二阶原点矩。
补充对于一二阶矩的定义一阶矩是期望E(X)E(X)E(X)二阶原点矩是E(X2)E(X^2)E(X2)二阶非原点矩E(((X−E(X))2)E(\quad((X-E(X))^2\quad)E(((X−E(X))2)平方是因为如果E(X)E(X)E(X)不为有0时若出现了负值则会使整体二阶矩偏大如果加了平方就相当于加上了绝对值就更能体现偏离均值的范围。 这里的协方差标准写法应该是Cov(nd2[k])Cov(n_d^2[k])Cov(nd2[k])写法做了省略Cov(nd[k],nd[k])D(nd[k])E(nd2[k])−E(nd[k])2E(nd2[k])Cov(n_d[k],n_d[k])D(n_d[k])E(n_d^2[k])-E(n_d[k])^2E(n_d^2[k])Cov(nd[k],nd[k])D(nd[k])E(nd2[k])−E(nd[k])2E(nd2[k])(因为这里nd[k]n_d[k]nd[k]是均值为0的高斯分布所以E(nd[k])0\bm{E(n_d[k])0}E(nd[k])0方差平方的期望-期望的平方)不好理解内部展开就是下面项目的相乘 假设高斯白噪声是独立的n(τ)n(t)n(\tau)n(t)n(τ)n(t)只有特定项时间相差为1时相乘才会有值是狄拉克函数δ(t1−t2)1(当且仅当t1−t21时)\delta(t_1-t_2)1(当且仅当t_1-t_21时)δ(t1−t2)1(当且仅当t1−t21时) 右因为前面有 在tΔtt~\Delta tt Δt时间内只有一个时刻能使狄拉克函数为1所以内层积分为1外层积分为 (tΔt)−ΔtΔt(t\Delta t)-\Delta t\Delta t(tΔt)−ΔtΔt 消掉分母即得协方差σ2Δt\frac{\sigma^2}{\Delta t}Δtσ2。 同理下面的协方差写法也是做了省略省略过程见上。 看起来像是开方的σ\sigmaσ那一项相当于是服从一个N(0,1)N(0,1)N(0,1)分布。
结论bias随即游走噪声方差从连续到离散之间需要∗Δt*\sqrt{\Delta t}∗Δt。这个推导最后的开放有些看不懂具体更详细的需要看论文
3.3.2 IMU随机误差的标定
主要是标定协方差用于IMU选型确定使用什么灵敏度类型的IMU random walk noise的标定 艾伦方差的标定的论文 斜率-0.5处t1时的值是高斯白噪声方差的大小斜率0.5t3处值是bias random walk的方差的大小具体为什么需要去看论文。功率谱靶向量
数据仿真部分 主要是标定Acc和Gyro的bias的random walk的方差使用Kalibr_allan
3.4 IMU数学模型
尺度因子如果标定的话会对精度有小幅提升MSCKF什么黎明杨做的VINS-MONO用过 加计数学模型加速度计的测量数据由尺度轴偏矩阵重力分量高斯白噪声bias等构成。
陀螺仪数学模型 下面这篇论文对MSCKF进行了非常详细的建模如果有兴趣可以看。
4. 运动模型离散时间处理欧拉法中值法
如何使用这些数据获得pose 这里需要强调重力加速度gwg^wgw前面的符号是跟坐标系定义有关的如果是东北天那就是-如果是北东地就是整体上自洽即可。 基于导数四元数导数的⊗\bm{\otimes}⊗是四元数乘法可以积分计算位置速度旋转
欧拉法进行近似假设在每个积分间隔内被积函数值保持不变即k~k1时刻的积分使用k时刻的值 关于四元数的更新 qωbk1qωbkq′Δtq⊗[10]q⊗[012ωΔt]q提出来q⊗[112ωΔt]\begin{align} q_{\omega b_{k1}} q_{\omega b_k}q^{\prime}\Delta t \\ q \otimes \begin{bmatrix} 1 \\ 0 \end{bmatrix} q \otimes \begin{bmatrix} 0 \\ \frac{1}{2}\omega \Delta t \end{bmatrix} \\ q提出来q \otimes \begin{bmatrix} 1 \\ \frac{1}{2}\omega \Delta t \end{bmatrix} \\ \end{align} qωbk1q提出来qωbkq′Δtq⊗[10]q⊗[021ωΔt]q⊗[121ωΔt]
相较于欧拉法中值法使用了kk1时刻的积分的均值稍微准一点。 由于k-k1时间较短可以使用第k时刻的bias来矫正第k1时刻的acc和gyro的值
5. IMU数据仿真
两种方式产生IMU仿真数据
指定轨迹方程求一阶导二阶导得加速度等IMU仿真数据。已有pose轨迹但不知道方程使用B-Spline产生IMU仿真数据。
由于四元数导数 所以四元数更新如上。 SO(3)更新也如上更直观的方式是转换成欧拉角需要将body系下的角速度转换为欧拉角速度。 粗略的理解 旋转顺序是固定的先绕哪个轴再绕哪个轴 最后转的x轴所以x轴的角速度就是dψdt\frac{d\psi}{dt}dtdψ 绕y轴转完之后还要绕x轴转个ψ\psiψ所以y轴的角速度要乘一个R(ψ)R(\psi)R(ψ) 绕z轴转完之后还绕yx分别转了θ\thetaθ和ψ\psiψ所以z方向的角速度要多乘个R(ψ)R(θ)R(\psi)R(\theta)R(ψ)R(θ)
所以就得到了Inertial-body系下的角速度转换矩阵求逆就得从body-Inernial下的转换。 6. 作业 Reference
1. MSCKF详细建模推导国外硕士论文 2. Allan方差曲线论文 3. 离散和连续的IMU随机误差方差推导 4. 6面法标定误差自己之前看过abstract的
2014 ICRAA Robust and Easy to Implement Method for IMU Calibration without External Equipments
5. IMU数据仿真时IMU body系下的角速度转化为欧拉角速度课件 6. 利用B SplineB样条和已有IMU数据你拟合方程产生IMU数据