自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Echo的专栏

About math, algorithm and drone!

  • 博客(19)
  • 资源 (9)
  • 收藏
  • 关注

原创 ·完整·单纯形算法(Simplex Algorithm),附C源码

前段时间参加了华为的2017软件精英挑战赛,用到了单纯形算法求解线性规划问题,学习了正单纯形,对偶单纯形以及割平面法并用C语言实现了完整的simplex算法。单纯形算法是用来求解线性规划问题的,其被用在了众多SMT Solver中,如Yices, Z3等,都是基于的单纯形算法,其算法效率在最坏情况下为指数级别,不过实现证明其效率在大多数情况下都是令人满意的。标准形式max{b+∑1

2017-04-14 07:16:26 10697 3

翻译 5个Linux下的串口终端工具

1. cu 指令$ cu -l /dev/device -s baud-rate-speed$ cu -l /dev/ttyS0 -s 19200退出则输入 ~. 2. screen 指令$ screen /dev/device baud-rate$ screen /dev/ttyS0 19200$ screen /dev/ttySUSB0 19200,cs8...

2018-03-05 01:23:58 39022 2

原创 浅谈四轴飞行器控制—四元数姿态控制

四元数被广泛应用于四轴飞行器的姿态解算与姿态控制中,跟欧拉角相比具有许多优点,如计算量小,且不会有万像锁的问题 。四元数可以表示如下: q=[wxyz]=cos(θ)+u^sin(θ)q=\begin{bmatrix}w & x & y & z\end{bmatrix}=\cos(\theta)+\hat u\sin(\theta) 其中u^=[uxuyuz]\hat u=\begin{bm

2017-08-30 20:47:32 9853 3

原创 一个非常适合python入门和学习的网站

废话不多说,直接给链接:https://www.tutorialspoint.com/python/index.htm十分清楚和详细的讲解支持在线编程Have fun!

2017-08-17 22:32:40 2501

原创 C语言矩阵运算库(Light Matrix)

最近在做卡尔曼滤波和最小二乘的一些算法,都需要运用到矩阵的运算,所以索性就写了个纯C的矩阵库(Light Matrix),只所以叫Light Matrix,因为目前只包含了矩阵的基本运算,尽量做到短小精悍。目前支持矩阵的加,减,乘,转置,行列式,伴随矩阵和逆矩阵,后续有时间会继续更新,可以关注我的github(https://github.com/zjc666/LightMatrix) 如果发现

2017-08-09 04:14:37 30536 20

原创 惯性导航——扩展卡尔曼滤波(一)

对于无人机的惯性导航系统,系统的状态方程是非线性的,根据扩展卡尔曼滤波方程:Predict x^k|k−1=f(x^k−1|k−1,uk−1)Pk|k−1=Fk−1Pk−1|k−1FTk−1+Qk−1\begin{equation}\begin{split}& \hat{x}_{k|k-1}=f(\hat{x}_{k-1|k-1},u_{k-1}) \\& P_{k|k-1}=F_{k-1}

2017-08-05 06:18:30 13192

原创 姿态解算(二),姿态更新

根据1阶Runge-Kutta可以得到四元数的更新方程为: q˙=0.5q⋅Ωbnb\dot{q}=0.5q\cdot\Omega_{nb}^b 其中Ωbnb=[0,ωbx,ωby,ωbz]\Omega_{nb}^b=[0,\omega_x^b,\omega_y^b,\omega_z^b] ,表示在b系测的的b系相对于n系的角速度。 利用四元数乘法的矩阵形式,可以得到: q˙=⎡⎣⎢⎢⎢w˙

2017-08-01 23:00:30 3446 2

原创 姿态解算(一),坐标系变换

bb系:body坐标系 nn系:navigation坐标系,即NED(北东地)坐标系 Cnb:C_b^n:从b系 转换到n系 Cbn:C_n^b:从n系 转换到b系 四元数q=[w,x,y,z]q=[w,x,y,z]矢量vbv^b可以直接利用四元数将其在n系中表示为vnv^n. 首先定义一个四元数vb′v^{b'},它的虚部等于vbv^b的相应分量,标量分量为0,即: vb=xi+yj+z

2017-08-01 21:45:17 9885

原创 矩阵乘法的直观理解

对于矩阵A=[acbd] \begin{bmatrix} a& b\\ c& d \end{bmatrix}与矩阵B=[egfh] \begin{bmatrix} e& f\\ g& h \end{bmatrix}相乘,我们一般的做法是将左矩阵的行乘上右矩阵的列然后做加法,即: C=A∗B=[ae+bgce+dgaf+bhcf+dh]C=A*B=

2017-05-27 21:00:53 5183

原创 复数与相位(旋转)

在信号与系统中,我们经常会遇到对于一个信号s(t)=cos(ωt+θ)s(t)=\cos(\omega t+\theta),乘上一个复数ejϕe^{j\phi},即s(t)∗ejϕs(t)*e^{j\phi}表示对原信号s(t)s(t)移动相位ϕ\phi。 那么如何理解乘上一个ejϕe^{j\phi}可以表示相位的移动呢?这里需要用到欧拉公式,具体可以参看我另外一篇博文:欧拉公式 cos(ωt

2017-05-20 04:07:42 37050

转载 奇异值分解(SVD)原理详解及推导

在网上看到有很多文章介绍SVD的,讲的也都不错,但是感觉还是有需要补充的,特别是关于矩阵和映射之间的对应关系。前段时间看了国外的一篇文章,叫A Singularly Valuable Decomposition The SVD of a Matrix,觉得分析的特别好,把矩阵和空间关系对应了起来。本文就参考了该文并结合矩阵的相关知识把SVD原理梳理一下。   SVD不仅是一个数学问题,在工程应

2017-05-19 15:46:21 745

原创 Vim光标跳转(函数跳转)

光标跳转:ctrl+o: 返回上一次光标所在位置ctrl+i: 跟ctrl+o的作用相反,即回到返回前的位置函数跳转如果安装了ctags, 并且已经使用ctags -R *命令生成tags文件,那么可以使用ctrl+]来查找函数的位置使用ctrl+o返回跳转前的位置(这里用 ctrl+t也可以)变量跳转:[+ctrl+i:跳转到变量和#define定

2017-05-10 22:09:19 1078

原创 vim代码自动对齐

自动对齐:(gg=G)在命令模式下(即非“插入”等编辑模式),先输入gg,这时候光标会移动到第一行第一个字符,然后按 “=” 号之后切换成大写,再按一下G,这时候光标会移到最后一行的第一个字符,这时候就可以看到代码被排得整整齐齐了!"gg"将光标移动到代码首部,"="表示对齐指令,"G"表示代码尾部,所以执行"gg=G"后,该文件的所有代码都将对其如果只需要将一部分代码对齐,可

2017-05-04 02:17:49 14170

转载 在vim中执行shell指令

简介: vim 是十分强大的文本编辑工具,但有一些事它做不了。本文简单说说在不离开 vim 编辑器的情况下,执行 shell 命令、工具。 1. 进入 shell (1)在 vim 中执行 :shell 或 :sh,当退出当前 shell 时,就会回到 vim; (2)也可以使用 ctr-z 进入 shell, 然后执行 fg 回到 vim。 上述功能可用于下述场景:

2017-05-04 02:00:33 2215

原创 傅里叶级数

如上图所示,傅里叶级数的思想是把一个周期函数 分解成一系列的三角函数: f(t)=A0+∑n=1∞ansin(nωt+ϕ)f(t) = A_0+\sum_{n=1}^\infty a_n\sin(n\omega t+\phi) 其中原函数f(t)f(t)的周期T=2πωT=\frac{2\pi}{\omega}。应该说,傅里叶是个天才,能够想到用无数个三角函数来表示任意的周期函数。但傅里叶认为,

2017-05-01 05:21:26 2975

原创 Linux环境下如何编译和运行opencv程序

使用opencv\sources\samples\c目录下提供的build_all.sh脚本,可以直接编译所有的.c和.cpp文件#!/bin/shif [ $# -gt 0 ] ; then base=`basename $1 .c` echo "compiling $base" gcc -ggdb `pkg-config opencv --cflags --libs` $

2017-05-01 00:47:42 1458

原创 欧拉公式

欧拉公式(英语:Euler’s formula,又称尤拉公式)是在复分析领域的公式,将三角函数与复数指数函数相关联,因其提出者莱昂哈德·欧拉而得名。尤拉公式提出,对任意实数 xx,都存在: ejx=cosx+isinxe^{jx}=\cos{x}+i\sin{x} 其中jj是虚数单位。由上式,我们可以推导出: sinϕ=12j(ejϕ−e−jϕ)\sin{\phi}=\frac{1}{2j}(

2017-04-29 01:39:57 140866 3

原创 信号卷积

卷积的定义:(f⊗g)(t)=∫∞−∞f(u)g(t−u)du(f\otimes g)(t)=\int_{-\infty}^{\infty}f(u)g(t-u)du卷积的物理意义:首先从表达式进行分析,对于任意一个时刻tt,输出信号为信号g(t−u)g(t-u)在另一个信号f(u)f(u)上的加权叠加,其中g(t−u)g(t-u)可以看成加权值,g(t−u)g(t-u)可以看成是g(t)g(t)在时

2017-04-29 00:55:14 1230

原创 NRF24L01无线模块

最近在准备9月份的电子设计大赛,这几天没什么事,就写了一些模块的驱动。今天学习了一下无线模块NRF24L01,由于手上有好几块原子的STM32的板子,于是首先参考了一下原子的程序,然后又看了一下NRF24L01的资料,现在把心得和体会记录下来。 一、模块介绍(1) 2.4Ghz 全球开放ISM 频段免许可证使用(2) 最高工作速率2Mbps,高效GFSK调制,抗干扰能力强,特别适合

2013-08-11 20:54:08 2124

C#入门经典

关于C#入门的一本好书,不可多得的经典哦~~~~

2014-05-22

C++程序设计谭浩强100%25完整

C++谭浩强教程完整版 谭教授的书还是一如既往的详细和易懂

2013-07-18

The C programming Language

国外的C语言经典教程 在学习C语言的同时还能学学英语,不要怕难,仔细看是能看懂的

2013-07-18

C语言面试大全

C语言面试题目大全 里面有各大公司的面试题目

2013-07-18

C函数速查手册

C语言的函数速查手册,包含了标准C库的几乎所有函数,有详细的函数定义形式和例子,非常好的参考手册。

2013-07-18

C语言程序设计(谭浩强)

学习C语言的最经典教材,适合初学者入门,讲的非常详细

2013-07-18

Linux下简易聊天软件

在Linux的命令行下实现的简易聊天软件,可以进行群聊和私聊。分为服务器端和客户端,他们采用TCP协议进行通信。 使用方法: 首先运行Server程序,他需要带一个端口号参数(例如8888) 然后运行Client程序,他需要两个参数,第一个是服务器的IP,如果是和本机进行连接,则输入127.0.0.1,第二个参数为刚刚服务器输入的端口号。 进入之后 就可以进行数据的发送和接收 进入之后可以运行的命令: /list:查看在线用户 /All:群聊 /用户名:私聊 /q:下线

2013-07-18

香农编码和哈弗曼编码

用C语言编写的香农编码和哈弗曼算法程序,开发环境为VC++6.0

2013-07-18

俄罗斯方块

在windos下用C开发的俄罗斯方块游戏,支持单人模式和双人对战模式,功能强大。内付程序源代码,并有详细的代码解释

2013-05-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除