扩展卡尔曼滤波详解

2023-05-16

Extened Kalman Filter

简单介绍

卡尔曼滤波详解讲解的基本的卡尔曼滤波算法是通过一个线性随机差分方程来估计当前状态,但是如果状态估计关系以及测量关系使非线性的怎么办,而且在实际使用中大部分的问题都是非线性的,所以提出了扩展卡尔曼滤波算法来解决非线性问题。

基本模型

扩展卡尔曼滤波算法和基本的线性卡尔曼滤波算法的基本模型在形式上很相近,也是包含状态方程和测量方程两个,只不过变量间的计算关系不是线性的。

扩展卡尔曼滤波的状态方程,利用非线性随机差分方程(non-Linear Stochastic Difference equation)利用上一个系统状态估计当前系统状态:
x k = f ( x k − 1 , u k − 1 , w k − 1 ) x_k = f(x_{k-1}, u_{k-1}, w_{k-1}) xk=f(xk1,uk1,wk1)
如果像卡尔曼一样忽略 u u u 控制输入(在下面都是忽略该项,不重复了),得到:
x k = f ( x k − 1 , 0 , w k − 1 ) ( 1.1 ) x_k = f(x_{k-1}, 0, w_{k-1}) \qquad {(1.1)} xk=f(xk1,0,wk1)(1.1)
加上对于当前状态的测量方程:
z k = h ( x k , v k ) ( 1.2 ) z_k = h(x_k, v_k) \qquad {(1.2)} zk=h(xk,vk)(1.2)
这里的参数含义就不解释了,和上面的相同,主要是:

k − 1 k-1 k1 k k k 分别表示上一状态和当前状态;

x ∈ R n x \in R^n xRn 表示要估计的状态;

u ∈ R l u \in R^l uRl 表示可选的控制输入,一般在实际使用中忽略;

z ∈ R m z \in R^m zRm 表示测量值;

w ∈ R n w \in R^n wRn 表示过程噪声,主要是从上一状态进入到当前状态时,会有许多外界因素的干扰;

v ∈ R m v \in R^m vRm 表示测量噪声,主要是任何测量仪器都会有一定的误差;

f f f 表示从上一状态到当前状态的非线性映射方程;

h h h 表示状态和测量之间的非线性映射方程;

在上面转换矩阵 A A A B B B H H H 是随着状态变化的,在这里没有添加下标,假设是不变的。

上面提到的过程噪声 w w w 和测量噪声 v v v 假设是相互独立的(之间没有关系,无相互影响),且是高斯白噪声,意思是这些噪声在离散的状态上是没有关系的(互相独立的, 每个时刻的噪声都是独立的)且 服从高斯分布:
p ( w ) ∼ N ( 0 , Q ) ( 1.3 ) p ( v ) ∼ N ( 0 , R ) ( 1.4 ) p(w) \sim N(0, Q) \qquad {(1.3)} \\ p(v) \sim N(0, R) \qquad {(1.4)} p(w)N(0,Q)(1.3)p(v)N(0,R)(1.4)

Q ∈ R n × n Q \in R^{n \times n} QRn×n 表示过程噪声 w w w 的协方差矩阵,表示 w w w 向量元素之间的相关关系;

R ∈ R m × m R \in R^{m \times m} RRm×m 表示测量噪声 v v v 的协方差矩阵,表示 v v v 向量元素之间的相关关系;

在上面协方差矩阵 Q Q Q R R R 是随着状态变化的,在这里假设是不变的。

基本公式

上面是给出了扩展卡尔曼滤波的整体思路和基本模型,在这里一步步分解来看扩展卡尔曼滤波的推导过程。首先确定了扩展卡尔曼滤波的基本模型,那么下一步是怎样根据这个模型来不断求取后面的状态。

首先定义几个变量:

x ^ k ˉ \bar{\hat{x}_k} x^kˉ 表示仅仅利用过程先验知识求出的当前状态的先验状态估计(a priori state estimate),不考虑过程噪声的情况下;

x ^ k \hat{x}_k x^k 表示利用测量值 z k z_k zk 求出的当前状态的后验状态估计(a posteriori state estimate),也是最终求得的状态;

需要注意的是,卡尔曼滤波的最终目标是求 x ^ k \hat{x}_k x^k ,这是对当前状态的最优估计。

根据上面的定义忽略过程噪声可以得到:
x ^ k ˉ = f ( x ^ k − 1 , u k − 1 , 0 ) \bar{\hat{x}_k} = f(\hat{x}_{k-1}, u_{k-1}, 0) x^kˉ=f(x^k1,uk1,0)
通常都是忽略 u u u 这个可选的控制输入(以后加入该变量的话也是非常方便的):
x ^ k ˉ = f ( x ^ k − 1 , 0 , 0 ) ( 2.1 ) \bar{\hat{x}_k} = f(\hat{x}_{k-1}, 0, 0) \qquad {(2.1)} x^kˉ=f(x^k1,0,0)(2.1)
然后同理忽略测量噪声可以得到:
z k ˉ = h ( x ^ k ˉ , 0 ) \bar{z_k} = h(\bar{\hat{x}_k}, 0) zkˉ=h(x^kˉ,0)

z k ˉ \bar{z_k} zkˉ 表示忽略测量噪声根据当前先验状态得到的无噪声测量值。

然后可以重写上面的模型(很好理解,就是把缺失的那部分在累加上,这样变成一个线性模型更好处理):
x k ≈ x ^ k ˉ + A ( x k − 1 − x ^ k − 1 ) + W w k − 1 z k ≈ z k ˉ + H ( x k − x ^ k ˉ ) + V v k x_k \approx \bar{\hat{x}_k} + A(x_{k-1} - \hat{x}_{k-1}) + Ww_{k-1} \\ z_k \approx \bar{z_k} + H(x_k - \bar{\hat{x}_k}) + Vv_k xkx^kˉ+A(xk1x^k1)+Wwk1zkzkˉ+H(xkx^kˉ)+Vvk

x k x_k xk z k z_k zk 表示真实状态和测量向量;

x ^ k ˉ \bar{\hat{x}_k} x^kˉ z k ˉ \bar{z_k} zkˉ 表示利用上面两个公式计算的无噪声情况下的状态和测量向量;

w k w_k wk v k v_k vk 表示过程和测量噪声;

A A A 表示函数 f f f 相对于 x x x 的偏导数的雅克比矩阵:
A [ i , j ] = ∂ f [ i ] ∂ x [ j ] ( x ^ k − 1 , 0 , 0 ) A_{[i, j]} = \frac{\partial{f_{[i]}}}{\partial{x_{[j]}}}(\hat{x}_{k-1}, 0, 0) A[i,j]=x[j]f[i](x^k1,0,0)
W W W 表示函数 f f f 相对于 w w w 的偏导数的雅克比矩阵:
W [ i , j ] = ∂ f [ i ] ∂ w [ j ] ( x ^ k − 1 , 0 , 0 ) W_{[i, j]} = \frac{\partial{f_{[i]}}}{\partial{w_{[j]}}}(\hat{x}_{k-1}, 0, 0) W[i,j]=w[j]f[i](x^k1,0,0)
H H H 表示函数 h h h 相对于 x x x 的偏导数的雅克比矩阵:
H [ i , j ] = ∂ h [ i ] ∂ x [ j ] ( x ^ k ˉ , 0 , 0 ) H_{[i, j]} = \frac{\partial{h_{[i]}}}{\partial{x_{[j]}}}( \bar{\hat{x}_k}, 0, 0) H[i,j]=x[j]h[i](x^kˉ,0,0)
V V V 表示函数 h h h 相对于 v v v 的偏导数的雅克比矩阵:
V [ i , j ] = ∂ h [ i ] ∂ v [ j ] ( x ^ k ˉ , 0 , 0 ) V_{[i, j]} = \frac{\partial{h_{[i]}}}{\partial{v_{[j]}}}( \bar{\hat{x}_k}, 0, 0) V[i,j]=v[j]h[i](x^kˉ,0,0)
注意因为 x x x 是随着 k k k 变化的,所以上面的雅克比矩阵 A , W , H , V A, W, H, V A,W,H,V 也都是随着 k k k 变化的(应该是有下标的,在这里忽略了,下面的公式也都忽略了),和线性卡尔曼滤波算法是不同的。

然后可以定义先验估计误差:
e x k ˉ ≡ x k − x ^ k ˉ \bar{e_{x_k}} \equiv x_k - \bar{\hat{x}_k} exkˉxkx^kˉ
同时定义测量残差:
e z k ˉ ≡ z k − z ˉ k \bar{e_{z_k}} \equiv z_k - \bar{z}_k ezkˉzkzˉk
把上面的新模型带入得到:
e x k ˉ ≈ A ( x k − 1 − x ^ k − 1 ) + ε k e z k ˉ ≈ H ( x k − x ^ k ˉ ) + η k ≈ H e x k ˉ + η k \bar{e_{x_k}} \approx A(x_{k-1} - \hat{x}_{k-1}) + \varepsilon_k \\ \begin{aligned} \bar{e_{z_k}} & \approx H(x_k - \bar{\hat{x}_k}) + \eta_k \\ & \approx H\bar{e_{x_k}} + \eta_k \end{aligned} exkˉA(xk1x^k1)+εkezkˉH(xkx^kˉ)+ηkHexkˉ+ηk
上面提到的 ε \varepsilon ε η \eta η 表示新的随机变量,分别服从:
p ( ε k ) ∼ N ( 0 , W Q W T ) p ( η k ) ∼ N ( 0 , V R V T ) p(\varepsilon_k) \sim N(0, WQW^T) \\ p(\eta_k) \sim N(0, VRV^T) p(εk)N(0,WQWT)p(ηk)N(0,VRVT)
现在是不是感觉上面的公式特别想线性卡尔曼滤波里面的基本模型,只不过在这里是估计误差 e x k ˉ \bar{e_{x_k}} exkˉ 而不是状态 x k x_k xk 。假设估计的结果是 e ^ k \hat{e}_k e^k ,那么可以获得后验状态估计:
x ^ k = x ^ k ˉ + e ^ k \hat{x}_k =\bar{\hat{x}_k} + \hat{e}_k x^k=x^kˉ+e^k
然后又有:
p ( e x k ˉ ) ∼ N ( 0 , E [ e x k ˉ e ˉ x k T ] ) p(\bar{e_{x_k}}) \sim N(0, E[\bar{e_{x_k}}\bar{e}_{x_k}^T]) p(exkˉ)N(0,E[exkˉeˉxkT])
可以设置初始的 e x k ˉ = 0 \bar{e_{x_k}} = 0 exkˉ=0 ,利用基本的卡尔曼滤波方法去推导,得到:
e ^ k = K k e z k ˉ \hat{e}_k = K_k\bar{e_{z_k}} e^k=Kkezkˉ
这个求解过程就转换为了线性卡尔曼滤波算法了,那么最后的状态的估计(带入上面的公式):
x ^ k = x ^ k ˉ + e ^ k = x ^ k ˉ + K k e z k ˉ = x ^ k ˉ + K k ( z k − z ˉ k ) = x ^ k ˉ + K k ( z k − h ( x ^ k ˉ , 0 ) ) \begin{aligned} \hat{x}_k & = \bar{\hat{x}_k} + \hat{e}_k \\ & = \bar{\hat{x}_k} + K_k\bar{e_{z_k}} \\ & = \bar{\hat{x}_k} + K_k(z_k - \bar{z}_k) \\ & = \bar{\hat{x}_k} + K_k(z_k - h(\bar{\hat{x}_k}, 0)) \end{aligned} x^k=x^kˉ+e^k=x^kˉ+Kkezkˉ=x^kˉ+Kk(zkzˉk)=x^kˉ+Kk(zkh(x^kˉ,0))
其他三个公式很自然的就是上面利用基本卡尔曼滤波算法求解 e x k ˉ \bar{e_{x_k}} exkˉ 的基本公式。

最后得到了上面五个方程式,是经典的扩展卡尔曼滤波的五个基本公式,利用这五个公式就可以完成卡尔曼滤波的求解过程。根据迭代过程分成两个方程集合,一个是time update方程,一个是measurement update方程,如下:

Time UpdateMeasurement Update
x ^ k ˉ = f ( x ^ k − 1 , 0 , 0 ) \bar{\hat{x}_k} = f(\hat{x}_{k-1}, 0, 0) x^kˉ=f(x^k1,0,0) K k = P k ˉ H k T ( H k P k ˉ H k T + V k R V k T ) − 1 K_k = \bar{P_k}H_k^T(H_k\bar{P_k}H_k^T + V_kRV_k^T)^{-1} Kk=PkˉHkT(HkPkˉHkT+VkRVkT)1
P k ˉ = A k P k − 1 A k T + W k Q W k T \bar{P_k} = A_kP_{k-1}A_k^T + W_kQW_k^T Pkˉ=AkPk1AkT+WkQWkT x ^ k = x ^ k ˉ + K k ( z k − h ( x ^ k ˉ , 0 ) ) \hat{x}_k = \bar{\hat{x}_k} + K_k(z_k - h(\bar{\hat{x}_k}, 0)) x^k=x^kˉ+Kk(zkh(x^kˉ,0))
P k = ( I − K k H k ) P k ˉ P_k = (I - K_kH_k)\bar{P_k} Pk=(IKkHk)Pkˉ

迭代过程

得到上面的基本公式以后,就可以计算计算后面的状态,但是公式中有一些参数是未知的,需要定义,如下:

u u u 变量一般来说是被忽略的;

f f f h h h 函数是根据实际提供的;

R R R 一般来说是相对简单可以求到的,就是仪器的噪声协方差;

Q Q Q 就很难直接的获得,也没有特定的方法,一般是系统过程比较稳定,也就是没有过程噪声;

A , W , H , V A, W, H, V A,W,H,V 等雅克比矩阵是根据函数求得的,是随时变化的;

z z z 所有状态的的测量值都是由仪器测量得到的是已知的;

对于 R R R Q Q Q 的取值来说不是特别重要,虽然可能这两个参数估计的不是很准确(不可能符合纯粹的高斯或者正太分布),但是实际情况中卡尔曼滤波算法也可以得到整的比较准确态估计,但是需要记住的是:

The better you estimate the noise parameters, the better estimates you get.

那么这样只需要传入基本的 x ^ 0 \hat{x}_0 x^0 P 0 P_0 P0 就可以了,一般来说需要进行指定。对于 x ^ 0 \hat{x}_0 x^0 来说不需要什么技巧,因为随着卡尔曼滤波算法的运行, x x x 会逐渐的收敛。但是对于 P 0 P_0 P0 ,一般不要取0,因为这样可能会令卡尔曼完全相信你给定的 x ^ 0 \hat{x}_0 x^0 是系统最优的,从而使算法不能收敛。

算法迭代过程和基本卡尔曼滤波类似。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

扩展卡尔曼滤波详解 的相关文章

  • 程序员三十岁之后要考虑什么?

    程序员三十岁之后要考虑什么 xff1f 周六受邀参加了触控科技CocoaChina开发者社区举办的 34 移动游戏人才培养和创业机会 的沙龙 其间被问到一个问题 xff1a 程序员三十岁之后该怎么办 xff1f 三十岁后该怎么办 xff1f
  • 房卡麻将分析之"一键入局"

    地方棋牌 xff0c VR AR技术 xff0c 请关注公众号 xff1a 34 红孩儿的游戏开发之路 房卡麻将分析之 34 一键入局 34 房卡麻将通过微信邀请好友加入房间进行游戏 xff0c 大大方便了玩家进行麻将游戏 这也凸显了微信对
  • 房卡麻将分析之"防作弊处理"

    房卡麻将分析之 34 防作弊处理 34 棋牌游戏最重要的一个特点就是人与人对局 xff0c 因为玩家各自的不可见 xff0c 就存在着一些作弊的可能性和漏洞 对于手机房卡麻将游戏 xff0c 大家最讨厌的问题就是作弊 如何防止玩家作弊 xf
  • 房卡麻将分析之“缺人玩法”

    一般玩麻将都是四个人 xff0c 遇到 三缺一 怎么办 xff1f 大多数情况下 xff0c 玩家只好等待或叫人 xff0c 这无疑增加了玩家的等待时间 xff0c 同时也减缓了房卡的消耗速度 其实四个人并不是玩麻将的硬性条件 xff0c
  • 房卡麻将分析之“代开房间”

    什么是代开房间 代开房间 xff0c 就是可以创建一个新的房间 xff0c 让其它玩家加入 为什么要做代开房间 xff08 1 xff09 可以帮助没有房卡的朋友开房 xff0c 提升未买卡玩家玩游戏的积级性 xff08 2 xff09 代
  • 信号量sem_wait()的使用

    闲来无事 xff0c 我给大家讲下UNIX Linux下信号量函数的使用 首先你得知道什么叫信号量 xff0c 什么时候要用信号量 这个嘛 xff0c 主要就是用来保护共享资源的 xff0c 也就是说如果你想限制某个 xff08 些 xff
  • 房卡麻将分析之“俱乐部功能”

    什么是俱乐部 群主 xff08 代理 xff09 创建俱乐部后 xff0c 可以邀请自已的群成员成为自已的俱乐部会员 xff0c 方便管理 俱乐部玩法由创始人设置 xff0c 只有俱乐部成员才能加入 xff0c 并且俱乐部房间全部消耗创始人
  • 红孩儿网狐Cocos经典棋牌开发教程-卞安-专题视频课程

    红孩儿网狐Cocos经典棋牌开发教程 4750人已学习 课程介绍 由知名Cocos技术讲师红孩儿讲解的基于网狐源码进行棋牌开发的系列教程 课程收益 1 快速理解掌握网狐棋牌的源码框架 2 能够学会使用网狐棋牌快速换皮产品 3 能够在网狐棋牌
  • STM32F407VET6 普通 IO 口模拟串口发送数据

    1 只实现了 xff0c 使用普通 IO 口模拟串口的发送 xff0c 没有实现接收 2 由于是模拟发送的是 TTL 电平 xff0c 所以在使用串口助手验证发送数据的准确性时 xff0c 应该使用 USB 转 TTL xff0c 而不能使
  • 虹科知识分享|关于阻塞函数和非阻塞函数

    在CAN和LIN相关的开发库里 xff0c 不可避免的会出现 收 和 发 的函数 如何快速有效的处理数据 xff0c 是开发中重要的事项 但实际上单路CAN由于波特率的限制 xff0c 数据量并不会很大 xff1a 以常用的500k为例 x
  • 车用技术总线 | 从应用角度了解下LIN总线

    注意 xff1a 本文约4850字 xff0c 完整阅读时间约13分钟 主要内容 LIN总线概述 LIN总线的应用 示例 xff1a LIN总线和CAN总线的窗户控制 LIN总线的信号报文 记录LIN总线数据 LIN总线数据记录应用案例 本
  • 工业通讯 | CAN基础内容详解(二)——物理层

    往期回顾 工业通讯 CAN基础内容详解 xff08 一 xff09 物理层主要完成设备间的信号传送 xff0c 把各种信号转换成物理信号 xff0c 并将这些信号传输到其他目标设备 在这一层中 xff0c CAN bus对信号电平 通信时使
  • 04ROS中的头文件与源文件

    ROS中的头文件与源文件 本节主要介绍ROS的C 43 43 实现中 xff0c 如何使用头文件与源文件的方式封装代码 xff0c 具体内容如下 设置头文件 xff0c 可执行文件作为源文件 xff1b 分别设置头文件 xff0c 源文件与
  • TX2系统安装

    手头新拿到块TX2 xff0c 从零开始搞 xff0c 特此记录以备后续查看 xff0d 2017 07 16 乐 参考官方网址 JetPack下载网址 准备刷机环境 下载JetPack L4T 3 1 linux x64 run pc环境
  • 单片机是嵌入式的子类

    1系统组成结构上的区别 xff08 1 xff09 单片机基本结构 单片机由运算器 控制器 存储器 输入输出设备构成 xff08 2 xff09 嵌入式系统成部分 嵌入式系统一般由嵌入式微处理器 外围硬件设备 嵌入式操作系统 特定的应用程序
  • STM32串口协议概念及结构体初始化详解+串口点灯+串口收发程序

    文章目录 一 串口通信协议简介1 RS232标准2 USB转串口3 原生的串口到串口 二 初始化结构体解1 USART初始化结构体2 同步时钟初始化结构体3 编程时需要用到的固件库函数 三 串口点灯代码实现1 USART C文件2 USAR
  • 无人机光流定位系列——(一)原理剖析

    这次参加深圳的高交会 xff0c 在qualcomm展区看到了多款mini无人机 xff0c 大家稍微细心一点就可以发现这些无人机都使用了一种叫光流定位的技术 xff0c 很多人可能都还不明白光流定位是个什么东西 xff0c 是如何进行定位
  • 现代控制理论2——状态空间分析法

    注 xff1a 本文是在MOOC平台上学习西北工业大学 现代控制理论基础 xff08 郭建国 赵斌 郭宗易 xff09 的课程进行随笔记录与整理 一 状态空间描述的相关概念 1 系统模型包括 xff1a 内部结构 xff0c 以及内部结构反
  • 输出调节——内模原理(1)

    浏览了百度和部分文献 xff08 主要为 xff1a 调节问题系统综述 xff0c 线性系统的内模原理 xff09 xff0c 在此尝试进行一些归纳 一 问题描述 输出调节问题 xff1a output regulation problem

随机推荐

  • RGB-D相机建图——2、openvins安装、测试与连接自己设备

    基础内容贴推荐 xff1a https zhuanlan zhihu com p 93814423 https blog csdn net weixin 39752599 article details 105906652 https zh
  • RGB-D相机建图——3、使用kalibr进行相机标定

    Kalibr 视觉惯性校准工具箱 官方网站 xff1a https github com ethz asl kalibr Kalibr是一个工具箱 xff0c 可以解决以下校准问题 xff1a 多摄像机校准 xff1a 具有非全局共享重叠视
  • 02.构建项目流程梳理及总结

    02 构建项目流程梳理及总结
  • Nuttx学习入门

    Nuttx学习 NuttX 是一个实时操作系统 RTOS xff0c 强调标准合规性和占用空间小 可从 8 位扩展到 64 位微控制器环境 xff0c NuttX 中的主要管理标准是 POSIX 和 ANSI 标准 NuttX 的主要环境依
  • 软件测试之如何介绍自己的项目

    测试人员在找工作的过程中 xff0c 通常有一个问题是很难绕开的 就是要如何向别人介绍自己之前做过的项目 要解决这个问题 xff0c 大致可以分为如下几个步骤 xff1a 1 对项目进行基本介绍 2 说明自己负责测试的模块 3 针对部分模块
  • FreeRTOS多任务管理

    文章目录 1 任务1 1 任务简介1 2 任务调度1 3 任务的状态 就绪态 运行态 阻塞态 挂起态 1 4 空闲任务 2 动态创建两个任务2 1 定义动态内存空间的堆2 2 定义任务函数2 3 定义 任务控制块 指针2 4 动态创建任务
  • 计算机类期刊投稿心得 [ 添加中...现35种 ]

    1 杂志名称 计算机应用研究 杂志文章包含专业 建模 xff0c 仿真 xff0c 网络 xff0c 人工智能 xff0c 比较杂 投稿联系方式 http www arocmag com 注册在线投稿审稿 投稿费用 250元 页 杂志级别
  • Minix下的汇编

    Minix下的汇编 大多数的编译器 xff0c 如Turbo C C 43 43 xff0c Borland C C 43 43 xff0c M C C 43 43 xff0c GCC xff0c VC 43 xff0c 编译过程都是 xf
  • 解决Xshell 7 报错 “要继续使用此程序,您必须应用最新的更新或使用新版本”

    1 先创建一个文本文档 xff0c 同时把该文档名称和后缀改为xshell7 bat xff1b 2 打开编辑这个xshell7 bat文件 xff0c 并且把以下文字复制进去 xff0c 注意set XSHELL 61 这一项需要改成你自
  • 多任务操作系统的任务切换

    在学习OS时 xff0c 对于多任务操作系统的任务切换 xff0c 一直不能理解 xff1a 控制权是怎么么回到调度程序上的 xff1f 记得在描述任务切换时 xff0c 一般都是这么描述的 xff1a 在每一个时钟滴答 xff0c 都将检
  • Minix下的汇编2

    似乎minix平台并没有带一个真正的汇编编译器 xff0c 看看makefile xff0c 几乎都是清一色的用cc来编译汇编代码的 而且 xff0c 即使是一个最简单功能的汇编程序 xff0c 也少不了一个 main 标签 在minix的
  • 原来在/var/spool/mail中

    fetchmail会把从mail server收到的邮件投递到 var spool mail 中去 而mutt也会自动地到 var spool mail里取信 xff0c 解码 xff0c 并显示 但 xff0c fetchmail的速度不
  • 汉字编码标准与识别(一)代码页(Code Page)初识

    BBS水木清华站 精华区 发信人 yanglc 魂归燕园 别理我 xff0c 烦着呢 信区 Linux 标 题 汉字编码标准与识别 一 发信站 BBS 水木清华站 Sat Apr 29 17 19 05 2000 http www linu
  • 让xpdf支持中文(C++primer中文版)

    首先到http www linuxfans org nuke modules php name 61 Site Downloads amp op 61 geninfo amp did 61 2385下载一个打了补丁的xpdf 安装 xff0
  • Xpdf-3 for MDK

    http www linuxfans org nuke modules php name 61 Site Downloads amp op 61 geninfo amp did 61 2385 Xpdf 3 for MDK 类别 其它软件
  • 不同公司的牛

    本文转自 C 43 43 Builder 研究 http www ccrun com other go asp i 61 264 amp d 61 sgz5id 传统公司 xff1a 你有两头母牛 你卖掉一头 xff0c 买了一头公牛 你的
  • 从词法分析开始

    刚开始时 xff0c 用lex的确是很方便 xff0c 但是这样却不能将词法分析的思想实践出来 最好的方法还是自己写一个lex 当然龙书上写得很详细了 xff0c 但是写得再详细 xff0c 把它实现出来还是很难的 我的计划是 xff1a
  • Python 获取当前路径几种方法

    Python 获取当前路径的几种方法 绝对路径 1 os path 方法 span class token comment coding utf 8 span span class token comment usr bin python
  • [pixhawk笔记]2-飞行模式

    本文翻译自px4官方开发文档 xff1a https dev px4 io en concept flight modes html xff0c 有不对之处 xff0c 敬请指正 pixhawk的飞行模式如下 xff1a MANUAL xf
  • 扩展卡尔曼滤波详解

    Extened Kalman Filter 简单介绍 卡尔曼滤波详解讲解的基本的卡尔曼滤波算法是通过一个线性随机差分方程来估计当前状态 xff0c 但是如果状态估计关系以及测量关系使非线性的怎么办 xff0c 而且在实际使用中大部分的问题都