Windows下模拟鼠标与键盘输入,及其在LabVIEW中的运用

前两天,我正在开开心心地撸着我的python,“领导”(没有其他合适的称谓了 )突然找到我说,他需要一个dll(动态链接库),功能是实现鼠标在指定的位置实现单击、双击、右击以及键盘输入,因为人家的软件是成品,没有可提供的接口使用。然后他就走了,剩下一脸懵逼的我。

继续阅读“Windows下模拟鼠标与键盘输入,及其在LabVIEW中的运用”

SLAM中的基础数学2:李群与李代数

本节我们主要说说李群和李代数。笔者的专业是机械工程及其自动化,方向还是冶金机械,所以,对李群李代数的理解就停留在“这个东西是这个样子啊”的水平。但是我还是要说一说,从我的经验来讲,对跟我一样的工程类的学生应该是一点启发的。当然我最想说明的是,不要畏惧新的未学过的知识,你越是害怕它,就越是不懂它在说什么。只要按照书上的或者前人的思路一步一步走,不懂的地方反复琢磨,最后都能知道它在讲什么有什么用。好了,废话不要说得太多了,现在开始。

继续阅读“SLAM中的基础数学2:李群与李代数”

卡尔曼滤波

话不多说,我这里先给出我们的系统的模型方程,状态转移方程:

$$x_k=Ax_{k-1}+u_k+w$$

测量方程:

$$z_k=Cx_k+v$$

需要说明的是,这里的\(A、C、w、v\)也可以是随\(k\)变化的,但是为了简便,也符合绝大部分的工程应用实际,我们假定它们是固定的常数和时平稳,并不影响对结果的讨论。其中\(w\sim N(0,R)\),\(v\sim N(0,Q)\)

然后我这里给出相应的滤波过程:

  1. 预测\begin{equation}\bar{x}_k=A_k\hat{x}_{k-1}+u_k\label{eq:1}\\ \bar{P}_k =A_k\hat{P}_{k-1}{A_k}^T+R\end{equation}
  2. 更新\begin{equation}K=\bar{P}_k{C}^T{(C\bar{P}_k{C}^T+Q)}^{-1}\\ \hat{x}_k=\bar{x}_k+K(z_k-C\bar{x}_k)\\ \hat{P}_k=(I-KC)\bar{P}_k\end{equation}

继续阅读“卡尔曼滤波”