自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (3)
  • 收藏
  • 关注

原创 cmake 之add_definitions使用误区

需要实现,在cmake中定义宏定义,可以:1) 在code中可以使用;2) 在cmake中可以识别是否已定义。

2023-11-08 16:10:26 527

原创 如何把ethz-asl/rovio项目跑起来

如何把ethz-asl/rovio项目跑起来

2023-04-17 15:27:10 515 1

原创 【笔记】Pade Approximations

Padé Approximations是一种对pure delay使用常规传函进行近似替换的方法,matlab提供了的一个库函数pade。在传递函数中,用e−τs表示纯延时pure delay环节,它对信号的幅值不会有任何影响,只会影响信号的相位。

2022-12-20 23:12:05 2409

原创 float数据存储与转换:简单易懂

float数据是如何存储的,很多时候我不必关心过多的细节,但是有时候又很重要,了解一些计算机的基础知识,也是趣味无穷。

2022-07-15 16:53:22 1845

原创 【笔记】自适应卡尔曼滤波 Adaptive Extended Kalman Filter

一般情况下,kalman中的Q、R都是根据经验、实验或数据手册得到的,但是有些参数是无法获得的,尤其是过程噪声,就需要通过不断试凑确定参数,显然是不靠谱的。这个文章提供一种自适应调整Q、R的方法,不需要精确的初值,就可以获得较高的滤波精度。...

2022-07-12 18:47:35 14760 21

原创 J-link 绿灯不亮--重新刷固件(免积分下载程序)

手上有一个V8版本的JLink,再次使用时绿灯不亮,驱动也不能正常识别,上网查询大概率是固件出问题了,需要重新刷固件。

2022-06-14 22:47:36 702

原创 【matlab】Simulink 微分模块的线性化问题

之前在一个simulink模型进行模型的线性化分析时,发现得到传递函数结果和预期总是有差别,排查一番,发现是微分模块“惹的祸”。

2022-06-10 12:09:21 10712 2

原创 【MATLAB】计算2个信号之间的delay

finddelay()计算2个信号之间的delay,matlab提供了一个非常便利的函数finddelay.d = finddelay(x,y)x, y 是两个时间序列的数据,长度可以不相等,返回值d是delay的大小,单位是sample,而不是时间。d = finddelay(x,y, maxlag)可以指定最大的delay区间是多少。使用这个工具可以很方便计算一个信号经过滤波后造成的延时有多少,控制系统目标值与跟踪值之间的delay。也可以在绘图的时候,对齐两个曲线。matla

2022-05-26 16:43:37 2145

原创 使用VMware 安装mac os系统 遇到鼠标键盘无法使用的问题

问题在VMware安装上mac OS系统的教程有很多,我很不幸,遇到了一些问题,找了半天也没有找打解决方法。我参考的安装方法链接如下:https://www.jb51.net/article/199011.htm然后遇到类似这样的问题https://bbs.pcbeta.com/viewthread-923597-1-1.htmlhttps://discussionschinese.apple.com/thread/250902614就在提示选择安装语言之前出现了这样的图片,鼠标和键盘无法使用

2022-01-23 23:21:04 5511 1

原创 Ubuntu(18.04)不能上网解决办法

问题及现象Ubuntu的虚拟机(18.04)总是莫名就不能上网了。使用ifconfig -a 查看,ensxx(xx为虚拟机分配的id号)对应的网卡有mac地址,但是没有分配ip地址。Network中也没有Wired的选项。临时解决方案使用 sudo dhclient ensxx,可以重新获取到ip,就可以正常上网了,但是重启后失效。永久解决方案后来终于找到永久解决的办法。sudo service network-manager stop sudo rm /var/lib/Network

2021-11-03 21:55:33 4644 6

原创 基于ESKF的IMU姿态融合【附MATLAB代码】

1 什么是ESKF1.1 定义1.2 特点2 基本公式Xk+1=f(Xk)X_{k+1}=f(X_k)Xk+1​=f(Xk​)Xt,k+1=f(Xt,k)+wkX_{t,k+1}=f(X_t,k)+w_kXt,k+1​=f(Xt​,k)+wk​2 原理在短时间尺度上,使用gyro进行角度预测,在长时间尺度上,使用acc进行校准。3...

2021-08-28 12:57:43 6540 19

原创 关于C++ 回调函数(callback) 精简且实用

1 关于回调函数1.1 定义回调函数的定义,可以很严(复)谨(杂),也可以很简(随)单(意)。其实与其研究定义,还不如讨论为什么需要回调函数,回调函数能干些啥。在我看来,回调函数不是在函数的定义上区别于普通函数,而是在调用的方式有区别,因为归根到底,他们都是代码中芸芸众生的普普通通的函数,即“回调函数”的重点在“回调”这两个字。以花钱为例,花钱买衣服叫消费,花钱买股票叫投资,都是花钱,但是方式不同,意义也不同。​下图列举了普通函数执行和回调函数调用的区别。对于普通函数,就是按照实现设定的逻辑

2021-08-08 09:14:49 36468 17

原创 一文读懂群延时(Group Delay):非常简单易懂

0 目的本文用非常通俗易懂语言说明什么是群延时(Group Delay),让你在几分钟之内建立对群延时感性认识,如果你恰好对它的概念和作用比较模糊,那么这篇文章非常适合你。这篇文章是我读一篇英文document后,根据自己的理解整理而得,文末有链接。1 什么是群延时本文将不使用数学公式的情况下解释什么是group delay 群延时,以及它的作用。群延时的定义很简单:相位与频率比值的负导数。对于大多数人来讲,它无足轻重,但是搞滤波器的人来讲,就显得尤为重要了。Why the Name “Grou

2021-06-15 23:37:41 64278 23

原创 git reflog: 手残党的后悔药

在日常使用git过程中,我很少会用到git reflog这条命令,用的少,并不代表不重要,甚至课可以说非常重要,为什么这么讲呢?事情的经过是这样的。半年前,我在一个项目git库拉出一个分支写了一个算法,当时觉得算法还未充分验证,所以没有及时push到远程仓库,只是在本地提交了commit。后来忙于其它工作,把这件事给忘了。前一阵子,由于本地的branch太多,实在不好管理和查找,有很多已经不会再用的“古老”branch,于是“大刀阔斧”的一顿清理,很不幸,当时写的算法分支被毫不知情git branch -

2021-05-08 00:33:59 994 1

原创 手把手推导APM的 sqrt_controller控制器

前言玩过无人机的朋友对APM应该都不会陌生,如果是搞过多旋翼飞控且读过代码,肯定遇到过sqrt_controller控制器,它频繁的在位置、姿态控制中出现,所以非常有必要搞清楚这个控制原理。下面以高度控制器为例来分析。高度控制APM的高度控制采用PID串级3环控制,即外环位置控制,中间速度控制,内环速度控制,如下图所示。今天要讨论的sqrt_controller就是应用于位置控制器中。位置控制器的输出是速度控制器的参考reference输入,如果采用单P控制,其输出vel_ref = pos_e

2020-12-07 16:37:30 1963 9

原创 简洁明了的搞清楚四元数和旋转矩阵的关系及使用

文章目录1 混淆的哪里?2 两种旋转2.1 回答第一个问题2.2 回答第二个问题3 总结1 混淆的哪里?关于四元数和旋转矩阵,使用过程中很容易迷糊,很重要的原因是没有区分好『坐标系的旋转』和『向量的旋转』。不想看详细的说明过程可以直接看总结部分。2 两种旋转下面首先来区分这两种旋转。以一个飞机为例,假设惯性系为N(XYZ)系(下图中的黑色坐标系),B系(X’Y’Z’)与飞机固连(下图...

2020-03-05 20:48:49 2093 2

原创 Linux批量解压当前目录的压缩文件

解压单个压缩文件如果目录下有一个test.tar.gz的压缩文件,使用命令可以将文件解压在当前路径。tar xzvf test.tar.gz一次解压所有的压缩文件ls *.tar.gz | xargs -n1 tar xzvf如果有更方便、更快捷的方法,可以留言讨论。...

2020-02-28 15:54:21 1840

原创 如何从0到1写一个非常简单CMakeLists

1. 前言[废话]使用Linux进行编程开发,怎么能不会编写CMakelist呢,要不然自己创造的code都不能编译、运行、调试。对于我们这种非计算机科班出身的人来讲,程序编译链接等底层原理都不是很清楚,再加上CmakeList一些语法、关键字不好记也不好理解,但是不能因为难而望而却步。对于像我这样的实用为主的攻城狮来讲,功能简单够用就行,学习一些简单的语法,够平时调试算法就行,这样难度也就...

2020-02-23 01:03:03 541

原创 g++ 手动编译程序

1 what about g++?g++是GNU组织推出的C++编译器。它不但可以用来编译传统的C++程序,也可以用来编译现代C++,比如C++11/14等。g++的基本语法格式如下: g++ [选项] 准备编译的文件 [选项] [目标文件]2 如何编译文件?2.1 单个文件如果只有单个文件main.cppg++ main.cpp -o main或g++ -o main m...

2020-02-22 20:31:41 897 1

原创 std::chrono库的使用

std::chrono学习笔记chrono是一个模版库,提供关于日期和时间的一些功能。常用的有三个:duration、time_point、clock。在使用时,需要包含chrono头文件。#include <chrono>durationduration表示一段时间,也就是持续时间,是一个时间的长度,比如1个小时、35秒、33毫秒,所以本地的系统时间是否准确对它没有影响。...

2020-02-09 21:48:55 4138

原创 四元数微分求角速度【离散】

在姿态解算中,我们一般会利用角速度w和当前的四元数q(k)预测下一时刻的四元数q(k+1),但是有时候我们需要根据四元数反过来求角速度。四元数的微分令q(t)是一个单位四元数函数,ω(t)是由q(t)确定的角速度。则q(t)的导数为:在t+Δt时刻,旋转可以描述为q(t+Δt)。在Δt过程中,物体坐标系在经过了q(t)旋转的前提下,又经过了额外的微...

2019-07-23 10:47:19 9241 3

原创 MATLAB的plot的坐标轴同步: linkaxes

今天发现了一个很实用但是很少被大家使用的命令:linkaxes我们通常会遇到这样的情况,有两个多个曲线绘制在不同的plot中,当对一个曲线放大时,另一个曲线并不会放大,特别是想观察相同x轴坐标,y轴的数据,此时需要手动调整很久,最后往往的得不到很好的效果,费时费力。在MATLAB的help中,linkaxes的说明如下。也就说可以同步指定2D绘图的坐标轴。举一个栗子fi...

2019-05-20 15:39:33 9195

原创 alpha-beta filter αβ滤波器

很多年前,就开始使用alpha-beta滤波了,但是一直都没有对该滤波算法进行总结,网上相关的资料也不是太丰富。目录简介滤波方程滤波参数的选择滤波器的其它变种Alphafilter :α滤波器Alpha beta gamma filter :αβγ滤波简介alpha-beta滤波(αβ滤波)是一种可用于状态估计、数据平滑的滤波器,如果对kalman滤波有了...

2019-05-16 08:36:27 24635 7

原创 arcmin 弧分的转换

arcmin 弧分的转换arcmin定义arcmin定义前一段时间接触到arcmin(弧分)这个角度单位,这个单位平时用的比较少,上百度查一下,各中说法的都有,最后上wiki上看了比较权威的解释。arcmin的全名是arc minute,表示1°的1/60,虽然名称中包含了“弧”这个词,但是与弧度一点关系都没有,其实与我们平时说的“度分秒”中的“分”是一个意思。wiki关于arcmin的...

2019-03-20 08:54:22 13516

原创 教训-单片机TTL串口电平不稳定

目前的一个项目中,需要使用单片机的串口通讯,由于外部设备的串口电平为TTL电平,故在应用中,将单片机的串口IO与外部设备上直接相连的。但是在后来的调试中,暂时不需要连接外部设备,发现单片机总是会莫名的进入串口中断,仔细检查后才发现单片机的串口IO直接从单片机中引出来,由于没有接设备,连接线直接悬空,也没有进行任何上拉或下拉的处理,从而导致电平信号不稳定,频繁进入中断。...

2017-04-12 15:43:40 8222

原创 ardupilot编译出错:'__builtin_bswap16' was not declared in this scope

我做APM的二次开发基于windows系统,环境的配置见:Building ArduPilot for Pixhawk/PX4 on Windows with Make以前做基于APM飞控开发都是基于3.3之前的版本,后来想看看最新代码的更新情况,于是上github重新clone最新版本,不料编译总是报错,但是当前的编译环境配置之前都用的好好的,这次不行了,百度了好

2016-09-23 10:37:13 2351

J-Link V8 刷出厂固件需要的各种程序。

● J-link V8出厂固件 ● 固件下载软件 ● J-Link v5.0软件

2022-06-14

attitude estimate based on ESKF.rar

在很多工程应用里都需要获得物体的姿态信息,而通过imu估计姿态应该最广。 仅使用imu获取姿态信息有很多算法,本文讨论基于ESKF(Error-State Kalman Filter)的算法,该附件是算法的MATLAB程序,并附有imu的仿真数据。

2021-08-28

g++练习程序.zip

g++是GNU组织推出的C++编译器。它不但可以用来编译传统的C++程序,也可以用来编译现代C++,比如C++11/14等。 使用提供的程序,可以按照blog的教程进行练习。

2020-02-22

空空如也

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

TA关注的人

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