自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PX4代码解析(6)

上一节介绍了PX4姿态估计调用函数的流程,这一节分享一下我对PX4姿态解算的解读.首先,要理解PX4姿态解算的程序,要先从传感器的特性入手,这里主要介绍的传感器有加速度计,磁力计,陀螺仪.

2022-11-30 22:24:27 2845 1

原创 大疆嵌入式工程师面试

大疆2023嵌入式面试

2022-08-17 09:41:41 2458 2

原创 gcc与Makefile

gcc使用与Makefile编写

2022-07-19 16:20:10 2937

原创 四旋翼滑模控制

一、引言之前介绍了四旋翼建模与pid双环控制器设计,本次打算分享一下四旋翼滑模控制器的设计,参考文献(韩业壮,华容.四旋翼飞行器的RBF网络自适应滑模控制[J].电光与控制,2017,24(11):22-27.)二、控制器设计四旋翼的模型在我之前的博客(四旋翼无人机Matlab建模)已经介绍过,这里不再赘述,四旋翼的模型如下:{x¨=u1m(sψsϕ+cψcϕsθ)−k1mx˙+d1y¨=u1m(sψsθcϕ−cψsϕ)−k2my˙+d2z¨=u1mcθcϕ−g−k3mz˙+d3ϕ¨=θ˙ψ˙(Iyy

2022-04-11 16:43:11 8217 36

原创 PX4代码解析(5)

一、前言我所讨论的PX4代码是基于v1.11版本,该版本与之前的版本有不少不同,其中一个比较大的区别在于新版本大部分用到了C++中模板,使得代码没有以前那么容易理解,因此我在后面介绍PX4的姿态估计,控制等重要算法代码时会介绍一部分类与模板的知识,方便大家理解代码。接下来几章我将讨论我对PX4代码姿态估计的理解,主要的文件是PX4_Firmware/src/modules/attitude_estimator_q/attitude_estimator_q_main.cpp,我的理解不一定正确,一家之言,

2022-03-12 21:27:43 3500 7

原创 PX4代码解析(4)

一、引言二

2022-03-05 17:18:17 3405 1

原创 px4代码解析(3)

书接上文

2021-11-03 20:46:51 3379 5

原创 PX4代码解析(2)

前言在大致了解PX4代码架构后,我们需要了解PX4的通信机制。在PX4代码架构中,通信总线主要分为两个部分,一是内部通信总线uORB,二是外部通信总线Mavlink,

2021-11-01 10:39:01 4601 6

原创 PX4代码解析(1)

前言做pixhawk飞控有一段时间了,但在学习过程中遇到许多困难,目前网上找不到比较完整的PX4学习笔记,我打算结合自己理解,写写自己对PX4源码的理解,不一定对,只是希望与各位大佬交流交流,同时梳理一下无人机知识。目前打算分享以下几个内容:代码架构;通信协议;姿态解算算法,控制算法。先这样,后面想到再加。本章先来聊聊px4代码结构一、代码整体结构既然要聊px4代码结构,那就先把px4代码结构图放出来,因为px4源码仍然在不断更新迭代,因此老版本与新版本目录结构可能有些不同,我的代码解析参考版本为V

2021-10-26 22:00:57 7180

原创 解决‘.../rqt_virtual_joy/plugin.xml‘ has no Root Element问题

问题描述在使用rqt组件时,在终端输入rqt,往往会报下面的错误Skipped loading plugin with error: XML Document ‘/opt/ros/melodic/share/rqt_virtual_joy/plugin.xml’ has no Root Element. This likely means the XML is malformed or missing…解决方案先进入‘/opt/ros/melodic/share/rqt_virtual_joy/文件

2021-09-11 10:51:51 892 5

原创 linux上从github下载代码缓慢解决办法

因为github服务器在国外,所以国内用户下载代码较慢,解决办法如下:修改hosts文件

2021-09-02 11:15:20 5344 5

原创 matlab求负数分数幂问题

问题描述在使用matlab时,我们经常会求某一个数字的分数幂,例如求x的1/3次幂,一般在matlab写作x^(1/3)。当x大于等于0时,这个值没什么问题,但当x小于0时,往往会出现计算失误,例如求-1的1/3次方,我们需要的结果往往是-1,但在matlab结果如下图经过matlab计算后,会得到一个虚数结果,这个结果往往是我们不需要的。这是因为Matlab很多运算都是按照复数规则进行的,比如矩阵的转置等等,在我们需要实数根时,需要进行一些处理。解决方案1.使用nthroot()函数nthro

2021-08-27 15:42:42 5285 1

原创 四旋翼双环PID控制

在我上篇博客《四旋翼无人机Matlab建模》中,我建立了四旋翼的模型,并在simulink中搭建了仿真,但并没有设计控制器。本章便针对四旋翼设计最常见的串级PID控制器,本篇文章主要从两个部分讲述控制器设计,一是理论部分,二是实践部分,阅读本文需要了解PID算法,推荐阅读https://blog.csdn.net/nemol1990/article/details/45131603一、理论部分在四旋翼的控制中,最常见也是最方便使用的控制便是PID控制。主要是因为PID算法简单,适应性强,不依赖模型。

2021-08-01 11:16:58 11316 72

原创 四旋翼无人机Matlab建模

本文主要分享一下四旋翼无人机的建模过程,然后在Matlab的simulink模块搭建起四旋翼无人机的模型,下一章将结合这个模型设计双环PID控制器并调节参数。一、无人机建模过程

2021-07-19 16:03:21 29248 51

原创 ros基础知识(1)

之前在毕设时用到了ROS,但后来就没怎么使用了,现在回头整理资料的时候觉得这个技能不能荒废了,因此打算复习整理一下并写在博客里,方便和大家讨论学习,我打算从最基础的东西开始介绍。一、Linux与 Ubuntu在开始介绍ROS之前,我先来介绍一下Linux与Ubuntu。20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix、DOS和macOS这几种。Unix价格昂贵,不能运行于PC;DOS显得简陋,且源代码被软件厂商严格保密;MacOS是一种专门用于

2021-07-13 22:31:04 367

原创 变结构滑模控制抖振处理(1)------动态滑模法

5.21

2021-06-07 22:27:05 14345 32

原创 PX4环境git submodule update --init --recursive失败的解决办法

最近开始搭建PX4环境,搭建是需要从github下载工程,然后使用语句git submodule update --init --recursive更新工程子模块,但往往由于网络原因这一步需要很久,甚至会失败。因为github是外网,在上面下载代码会受到很大限制,往往会出现下面的问题:即无法连接到github,查阅了相关资料后,我发现了解决更新子模块失败的方法:1.打开你下载的PX4源码,即Firmware文件夹,找到其中的.gitmodules,如下图:2…gitmodules有以上格式,path

2021-04-24 15:34:00 8059 12

原创 VS2019C++代码出现cout不明确

最近在使用VS2019写c++代码时,出现了以下问题![在这里插入图片描述](https://img-blog.csdnimg.cn/20210418091920839.png#pic_center)查了很多资料,我看网上大概出现的解决办法有以下几种:1.把using namespace std注释后保存,然后在取消注释,问题可以解决我本以为这个问题不过如此,就去试了试,很显然对我来说不怎么管用,如果上述方法没用的话,可以试试第二种方法2.检查代码是否有问题,有没有出现花括号{}不配对的情况,改

2021-04-18 09:35:52 5528

原创 终端滑模(Terminal滑模)理解

一、什么是终端滑模在前面所介绍的滑模控制中,我们是选取了一个线性的滑模面s,使系统达到滑模面后,误差逐渐收敛到0,收敛的速度可以通过调节滑模面的参数来实现。后来人们为了使滑模控制有更好的性能,便想到将滑模面设计成非线性函数,于是就产生终端滑模.二、终端滑模形式...

2021-04-05 15:11:05 24916 109

原创 通俗理解滑模变结构(2)

一、仿真接上一节的内容,用Matlab simulink模块搭建模块,搭建模型如下:前面control是控制器部分,model是我们上一节的对象。给定x1初始值为3,x2,x3的初始值为0,仿真时间为10s,仿真结果如下图所示x1x2x3从图中可以看出,x1,x2,x3都会收敛到0,说明上节设计的镇定控制器成功,simulink模型我放在文章结尾,自取,用的是matlab2018a。此时,我们用示波器观察u,会发现图如下:这个u出现了一个黄色的带,这就是滑模变结构控制中的抖振,这是

2021-01-26 21:54:05 6841 13

原创 通俗理解滑模变结构控制(1)

这里写自定义目录标题1.什么是滑模变结构控制1.什么是滑模变结构控制在开始介绍滑模变结构控制之前,最好先学习一些线性控制的基础,知道什么是李亚普诺夫函数,怎么判断系统稳定性,有一点相轨迹的基础。有了这些基础知识才可以理解这篇文章。好了,废话不多说了,让我们开始滑模变结构控制之旅吧。我们先从一个例子开始吧,假设有一个二阶系统如下:{x1˙=x2x2˙=2x2−x1+u\left\{\begin{matrix}\dot{x_{1}}=x_{2}\\\dot{x_{2}}=2x_{2}-x_{1}+u

2021-01-20 20:49:42 20764 22

原创 卡尔曼滤波原理(2)

三、卡尔曼五大公式推导相信大家已经看了我的上一篇文章吧,其实上一篇通过例子讲了卡尔曼滤波思想,卡尔曼滤波又称最优递归数字处理算法,他就是一处理数据的算法,目的是获取更为准确的数据。接下来,我要开始超级硬核的推导,推导非常详细,而且容易立即额,希望你们可以和我一起推导相信大家都了解过状态方程与观测器吧,现代控制理论比较基础的内容,我举一个简单的例子,就是控制中最常见的弹簧阻尼系统,如图1该系统的力平衡方程可以用以下式子表示(不明白的可以去https://wenku.baidu.com/view/f800

2020-10-27 10:05:53 364

原创 卡尔曼滤波原理理解(1)

一、什么是卡尔曼滤波简单来说,卡尔曼滤波器是一个“optimal recursive data processing algorithm(最优递归数据处理算法)”。在自然界中往往存在各种不确定性,不管是传感器测量的数据还是系统模型计算得到的数据,往往不是物体真实的值,存在各种各样的干扰,卡尔曼滤波就是从有干扰的数据中获取最优(最接近真实)的数据。二、卡尔曼滤波基础先来看一个简单的例子,我们用一把尺子来测一个硬币的直径,如图1,我们测量多组硬币的直径,用...

2020-10-25 22:24:00 546 2

原创 github下载慢的解决办法

github是对工科以及互联网比较有用的一个网站,但是其下载速度实在是顶不住网上真实下载速度解决办法:1.复制你要下载文件的下载链接,2.将链接复制到迅雷下载,开始体验飞一般的下载速度(相对于网站上下载)...

2020-02-25 16:15:21 321

原创 matelab中simulink报错改正方法

在进行电力电子simulink仿真时,如果出现“Error in embedded hardware settings on Hardware Implementation pane of Configuration Parameters dialog box: "native word size" specifies a value of 64, but it must match on...

2019-05-30 22:06:25 6364 4

动态滑模控制仿真.rar

配合我的博客中《变结构滑模控制抖振处理(1)------动态滑模法》仿真

2021-06-07

terminal滑模.rar

terminal滑模仿真

2021-04-05

滑模变结构控制.rar

matlab2018a,有simulink模型和s函数编写的代码

2021-01-27

空空如也

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

TA关注的人

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